طراحی و تولید برنامه های کاربردی ویندوز ... و البته بعضاً چیزهای نامربوط
برنامه نویسان امروزی ویژوال بیسک دات نت! دلتان میخواهد اولین ورژن ویژوال بیسیک محصول 1991 میلادی را ببینید؟! سبکبال و سبکبار تنها در ۴۳۸ کیلوبایت بدون نیاز به نصب! هنوز هم میتوان باهاش برای ویندوز برنامه نوشت، اون هم برنامه هایی پرتابل که در WIN 3.1 گرفته تا WIN7 قابل اجرا هستند. این هم روش و شبه کدهای مربوط به پروژه نه چندان آسان بازيابي فضاي فايل با استفاده از پشته پيوندي که دوستان زیادی خواسته بودند تا در سی پلاس انجام دهم. عمليات مورد نياز: · جستجوي ترتيبي براي پيدا کردن رکوردي با يک فيلد معين · انجام عمل درج و حذف رکورد · بازيابي فضاي فايل با استفاده از پشته پيوندي نکته: براي سادگي طول رکوردها ثابت فرض شود. اصول پیاده سازی: در این روش وقتی رکوردی حذف می شود، آدرس رکورد حذف شده قدیمی از هیدر به مکان رکورد در حال حذف فعلی نوشته می شود (در یکی از فیلدهای آن که بهتر است فیلد وضعیت باشد)، این آدرس معمولاً در ابتدا که چیزی حذف نشده عدد منهای یک است که در هیدر قرار دارد. سپس بلافاصله آدرس رکورد در حال حذف کنونی به هیدر منتقل می شود. //Writen by: Saleh , www.winprog.blogfa.com void Person_Manager::Delete() { int found=0; long RecordAddress; char LstName[16]; clrscr(); cout<<"Enter LastName To Find And Delete It's Record: "; cin>>LstName; clrscr(); FILE *File; File=fopen("DataBase.dat","r+b"); while (fread(&person, sizeof(person),1,File)) { if (strcmp(person.LastName, LstName) == 0 && strcmp(person.Status, "OK") == 0) { RecordAddress = ftell(File)-sizeof(person); fseek(File, RecordAddress, 0); ltoa(GetHeaderValue(), person.Status, 10); // Write address of last deleted record from header to here... fwrite(&person, sizeof(person), 1, File); found=1; break; } } SetHeaderValue(RecordAddress); // Save Current Deleted Record Address To Header... fclose(File); if (found == 0) cout<<"'"< cout<<"Press Enter..."; getch(); } وقتی رکورد جدیدی قرار است نوشته شود به هیدر نگاه می کنیم، اگر مقدار آن منهای یک باشد به معنی این است که هیچ فضای حذف شده ای وجود ندارد و باید رکورد جدید را به انتهای فایل اضافه کنیم، در غیر اینصورت اشاره گر فایل را به مکانی که هیدر نشان می دهد منتقل می کنیم مقدار فیلد وضعیت آن را که به یک مکان حذف شده زائد دیگر در فایل اشاره می کند در هیدر می نویسیم و آن نقطه را با رکورد جدید بروز رسانی می کنیم. //Writen by: Saleh , www.winprog.blogfa.com void Person_Manager::Add() { clrscr(); strcpy(person.Status, "OK"); cout<<"Enter LastName: "; cin>>person.LastName; cout<<"Enter FirstName: "; cin>>person.FirstName; cout<<"Enter Address: "; cin>>person.Address; cout<<"Enter City: "; cin>>person.City; cout<<"Enter State: "; cin>>person.State; cout<<"Enter PostCode: "; cin>>person.PostCode; long HdrValue = GetHeaderValue(); if (HdrValue == -1) // There is no deleted record... { fstream File("DataBase.dat",ios::app | ios::binary); File.write((char *) &person, sizeof(person)); File.close(); } else { // Move file pointer to place that header say... And get last deleted record address Person per; FILE *file; file=fopen("DataBase.dat","r+b"); fseek(file, HdrValue, 0); fread(&per, sizeof(per),1,file); fseek(file, HdrValue, 0); fwrite(&person, sizeof(person), 1, file); fclose(file); // Set header value to the last deleted address SetHeaderValue(atol(per.Status)); } } در این صورت است که ما فضای زائد و حذف شده فایل را دوباره بازیابی کرده و مورد استفاده قرار می دهیم، روش فوق زمانی جواب می دهد که طول رکوردها ثابت فرض شود. ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ ارادتمند شما، صالح از باغ می برند چراغانیات کنند یه موقع شدیداً معتقد بودم که پول، طرفدار و طرفدار قدرت می آورد، اما الان دیگه با ديدن تصوير بالا نظرم کلاً عوض شده، تازه فهمیدم که همه قدرتهای زمینی از هر اندازه و بزرگی که باشند پوشالی اند و نباید گول خورده و دچار توهم شویم! موقعی که قدرت دستمونه نه صرفاً برا رضای خدا بلکه به خاطر خودمون هم که شده مراقب باشیم تا مورچه ای رو له نکنیم!!!!!! فقط قابل توجه برنامه نویسان ویندوز : بلاخره بعد از ماه ها کار طاقت فرسای من و همکارانم در شرکت نرم افزاری مبین ملکان، یکی از ارزشمندترین محصولات این شرکت پا به عرصه وجود گذاشت (Mobinsoft Native Farsi Framework) چهار چوب کاری فارسی بومی برای پلت فورمهای ویندوز با نام تجاری اختصاری NFF. اما این چهارچوب کاری به چه دردی می خورد، همه برنامه نویسان تجربه کرده اند که وقتی نرم افزاری به زبان فارسی می نویسند همیشه برای نشر آن مشکل داشته و دارند مثل عدم پشتیبانی ویندوز مشتری از زبانهای راست به چپ و عدم وجود فونتهای فارسی، به هم ریختگی کاراکترها، مشکلات تاریخ شمسی و یونیکد و ...، حتماً همیشه در پشتیبانی نرم افزارهایی که به فارسی نوشته اید دچار مشکل هستید و گاهی شاید بارها مجبور شوید که فقط جهت نصب برنامه تیم پشتیبانی را روانه محل کار مشتری کنید. حالا این فریم ورک همه این مشکلات را حل کرده است طوری که با داشتن آن می توانید بدون نگرانی از نوع سکوی ویندوز (انگلیسی یا فارسی یا...) نرم افزار فارسی طراحی کنید کنترلهایی همراه این فریم ورک ارائه شده اند که کاملاً بومی فارسی هستند یعنی فارسی را ذاتاً پشتیبانی می کنند اگر عبارت فینگلیش هم در خصوصیت متن آنها قرار دهید اتوماتیک به فارسی یونیکد نمایش و اکسپورت می دهند نیز از راست به چپ بدون توجه به سیستم عامل پشتیبانی می کنند این کنترلها شامل کنترلهای استاندارد نظیر لیبل و تکست باکس و لیست باکس و کمبو باکس و دیتا گرید و...می باشند. نیز این فریم ورک شامل یک درایور پایگاه داده کاملاً استند الاون (بی نیاز از هرگونه افزونه) می باشد که توسط شرکت مبین ساخته شده است در صورتی که از این موتور پایگاه داده به جای اکسس و اسکیو ال و ... استفاده کنید می توانید مطمئن شوید که نرم افزار شما در مقصد کاری بدون درگیر شدن با مشکلات درایورهای پایگاه داده می تواند بدون مشکل کار کند این درایور تقریباً سریعتر از اس کیو ال می باشد زیرا بسیاری از امکانات اس کیو ال را که شما هیچگاه لازم ندارید در بر نمی گیرد. نمونه ای از یک دیتاگرید از این فریم ورک: توجه کنید که مطابق کد های زیر این دیتاگرید بدلیل عدم پشتیبانی سیستم عامل از فارسی با کارکترهای فینگلیش ایجاد شده مثلاً فینگلیش 'ردیف' شده vndt اما ملاحضه می کنید که کنترل فوق چگونه بومی فارسی شده است: Me.FarsiGrid1.Cols = 3 Me.FarsiGrid1.embFontIndex = 1 For i = 1 To 50000
پروژه شبیه سازی شبکه تلفن های سلولی (همراه) که در ويژوال بیسیک کلاسیک نوشته ام، این پروژه زیرساخت کلیه امکانات صوتی یک شبکه تلفن سلولی را در بر میگیرد فقط اینجا به جای امواج حامل موبایل در لایه فیزیکی از پکت های آی پی استفاده شده است. ازامکانات آن می توان به تعریف و ایجاد شماره تلفن های جدید در سرور ثبت شماره و تعریف پین کد (شبیه سازی سیمکارت) گرفته تا کالر آیدی و تشخیص خاموش بودن گوشی (نرم افزار کلاینت مقابل) و تعیین کیفیت صدا با توجه به سرعت شبکه اشاره کرد، پی سی باید دارای میکروفون و بلندگو (کارت صوتی) باشد. در حال حاضر می توان توسط این نرم افزار در هر سازمانی که دارای شبکه محلی است یک سیستم تلفن سانترال با هزینه صفر برپا کرد. http://www.mobinsoft.com آمدن عید مبارک بادت، وان مواعید که کردی نرود از یادت.
ای شاهد افلاکی در مستی و در پاکی من چشم ترا مانم تو اشک مرا مانی در سینه سوزانم مستوری و مهجوری در دیده بیدارم پیدایی و پنهانی من زمزمه عودم تو زمزمه پردازی من سلسله موجم تو سلسله جنبانی از آتش سودایت دارم من و دارد دل داغی که نمی بینی دردی که نمی دانی نگرانی بزرگترین حماقت بشر است چون باور کنید ۹۹ درصد نگرانیهای ما هرگز به وقوع نمی پیوندند. مرد را دردی اگر باشد خوش است درد بی دردی علاجش آتش است بی دردی ابتذال می آورد و ابهّت و شکوه مردانگی را از بین می برد... اگر برنامه نویس ویژوال بیسیک هستید و فایلی دارید که برنامه شما در زمان اجرا به آن نیاز خواهد داشت و دوست دارید که آن را به فایل اجرایی تولید شده تان الحاق کنید (Embed) برنامه زیر را دانلود کنید، این برنامه را برای این منظور برای خودم نوشته بودم که همینک در اختیار شما دوستان عزیز هم قرار می دهم. برای مثال من فونتی داشتم که با کمک این برنامه تبدیل به یک ماژول کد کردم و هر موقع لازم بود دستور اکسترکت آن را فراخوانی می کردم و فونت را مورد استفاده قرار می دادم بدون اینکه نگران وجود آن در پوشه فونت ویندوز بوده باشم. استفاده از این برنامه آسان است، هر فایلی را روی آیکون این برنامه دراگ دروپ کنید ماژول کد آن ساخته می شود البته سعی کنید فایلهایی با سایز معقول را انتخاب کنید. مدتی است روی یک پروژه انیمیشن سه بعدی ایرانی کار می کنم، کار نسبتاً زیادی لازم نبود تا به کاراکتر سمت چپ پوشش اسلامی دهم، در واقع کاراکتر سمت راست حالت با حجاب کاراکتر سمت چپ است. زیبایی زن زمانی که در حجاب است دوچندان می شود یا نه؟ دمي با غم به سر بردن جهان يک سر نميارزد به مي بفروش دلق ما کز اين بهتر نميارزد شکوه تاج سلطاني که بيم جان در او درج است کلاهي دلکش است اما به ترک سر نميارزد سلام طراحی سیستم عامل کار بسیار طاقت فرسایی است، دانش زیاد و پشتکار فراوانی می خواهد. در هر حال اگر به این فکر افتادید که خودتان سیستم عامل طراحی کنید می توانید کیت توسعه سیستم های عامل دیسکی Disk Operating System شرکت نرم افزاری مبین ملکان را سفارش دهید، این کیت به همراه ابزارگان مربوطه شامل آموزش های لازم نیز می باشد توسط این کیت می توانید پس از ساختن سیستم عامل، بسته ای جهت نصب سیستم کنار سیستم عامل هایی چون XP و Seven ایجاد کنید به طوری که کاربر ان از طریق منوی انتخاب سیستم عاملها در شروع به کار کامپیوتر سیستم عامل شما را انتخاب و بارگذاری خواهند کرد. سیستم عامل بسیار ساده زیر را در زبان اسمبلی نوشته ام که فقط از دو دستور Cls و Reboot پشتیبانی می کند. این هم کدهای این سیستم عامل بسیار ساده در اسمبلی: 1 - کد های هسته (Kernel.asm) : include MobinLib.inc 2 - کتابخانه ماکرو (MobinLib.inc) : mobindata segment para 'data' چگونه می توان آرام خوابید و از زندگی لذت برد وقتی بدانی که می توانستی جانی را نجات دهی و ندادی. آیا لذت زندگی یک انسان جز در آرامش روان و راحتی وجدان است؟ اما در نظر عوام زندگی به جز گونه حیوانی آن چیز دیگری نیست. به همین دلیل حتی ثانیه ای از عمر را حاضر نیستند به خاطر دیگران مشوش کنند شخصی را جلوی آنها می کشند و می ترسند کاری کنند مبادا شاید بازخواست شوند! مبادا چند روز عیش دنیوی فلاکت بارشان مخدوش شود و به دردسر بیافتند برای آنها جان یک انسان به اندازه چند روز دردسر نمی ارزد!!! آنها عذاب وجدان را نمی فهمند گاهی من تعجب می کنم که آیا این جماعت روح دارند و محشور خواهند شد؟! به خدا الاغ بارکش صد می ارزد به چنین افراد بی خاصیت و بی اثر، بوی گند اینها مشام هر انسانی را می آزارد. ضمن عرض پوزش از کلیه دوستانی که در کامنتهای خصوصی در خواست انجام پروژه و یا سورس کد می کنند. باید به اطلاع این دوستان برسانم که متاسفانه بنده فرصت انجام این کارها را ندارم و اساساْ این وبلاگ به این منظور ایجاد نشده است. گرچه هر موقع میسر شود سورس کدی در وبلاگ قرار می دهم. #include "iostream.h" ای ز غم فراق تو جان مرا شکایتی اکثر برنامه نویسان، ترس مرموزی از PHP دارند و کمتر کسی دوروبرش می پلکد، ولی واقعاً اینگونه است؟ نه خیر! اگر تا به حال با C برنامه نویسی کرده باشید باید بگم که PHP خیلی از سختگیری های C را حذف کرده و خیلی امکانات به درد به خوری هم به آن اضافه کرده در واقع کسی که C می داند کمتر از یک روز کاری برای یاد گیری PHP نیاز دارد. از نظر امنیت کد شاید عده ای برایش خرده گرفته اند ولی نرم افزارهایی هستند که چنان تغییراتی در سورس اولیه می دهند که خود برنامه نویسش هم 100 سال زمان می خواهد تا سورس را بازیابی کند تازه خیلی از نرم افزارها نظیر جاوا و حتی سی شارپ نیز روی امنیت کد پافشاری نمی کنند. تنها مشکلی که PHP داره مثل برخی آدم های بدقیافه بدشانس ظاهر نامرتب و خشن کدهاست که آن هم بیشتر بدلیل انعطاف بیش از حد آن است. مثلاً در این زبان برای چسپاندن رشته ها به هم از نقطه (.) استفاده می شود و از " و ' همزمان می تواند استفاده کند که در سایر زبانها دیده نمی شود. $str = "ali " . "is a good boy." . ' he is "5" years old.' . "from 'tehran'." . '\'yes.\''; result: ali is a good boy.he is "5" years old.from 'tehran'.'yes.' یا امکان زیر که نام تابع را از رشته بگیری و فراخوانی کنی امکانیه که در هر زبانی به سادگی میسر نیست: function func1() { return "test1"; } function func2() { return "test2"; } if ($x==1) $fnc="func1"; else $fnc="func2"; $fnc(); به هر حال اینها را گفتم که بدانید من روزی به کمتر از سی شارپ برای طراحی سایت رضایت نمی دادم و همیشه از ظاهر PHP وحشت داشتم ولی مدت کوتاهی است که به PHP روی آورده ام و از قدرت نهفته آن واقعاً شگفت زده شدم، باید بگم که سی شارپ با امکانات آماده خودش بسیاری از ما برنامه نویسان را بدآموز کرده. آیا تا به حال به پشت پرده یک دیتاگرید که از آماده اش در سی شارپ استفاده می کنید فکر کردید آیا تا به حال به فکرتان خطور کرده که خودتان همانند آن را در سطح LOWLEVEL بسازید. شاید فکر کنید چه فایده! اما اگر روزی خواستید یک سایت فوق العاده امن نظیر سایتی که اطلاعات مهمی را پردازش و تحویل کاربر می دهد (مثلاٌ روی یک دیتا گرید) به طوری که نباید در طول مسیر انتقال شنود شود تازه خواهید فهمید که یک دیتا گرید در سطح LOWLEVEL باید ساخت که برخی سلول های آن قابلیت استفاده از RSA را داشته باشند. و اینکار در PHP به سادگی قابل پیاده سازی است. سلام حتماً متوجه شده اید که امروزه چقدر تعداد ویروسهای عزغ وزغی نظیر ویروسهای اتوران زیاد شده؟ اغلب شکل کلی این ویروسها و عملکردشان شبیه به هم است و به اصطلاح ژنریک هستند یعنی از یک سری سورس های فاش شده اقتباس شده اند و اغلب نویسنده های آنها برنامه نویسان بسیار مبتدی و جویای نام می باشند. من خودم و شاید خیلی های دیگه برای پاک کردن این ویروسها متوسل آنتی ویروسها نمی شوند و خود اقدام به پاکسازی دستی سیستم خود می کنند چرا که مدتی طول می کشد که در پایگاه داده شرکتهای آنتی ویروس وارد شوند وگاهی هم اغلب این افتخار را نمی یابند و گرچه زیاد خطرناک نیستند ولی بدلیل ایجاد مزاحمت و هدر دادن منابع سیستم ما ناگزیریم آنها را پاک کنیم که خود گاهی زمان زیادی را هدر می دهد. فکر می کنید کسی که یک ویروس اتوران می سازد خیلی باسواد است؟ فکر می کنید ویروس خطرناک آن است که اطلاعات را تخریب کند یا خیلی بچه گانه چند فایل را خراب یا دستکاری کند؟فکر می کنید چیزی که چند خط حرف شیطنت آمیز روی مانیتور بنویسد یا نوار وظیفه را غیر فعال کند یا فولدر آپشن را ناپدید سازد یک ویروس است؟ نه نه نه، هر یک از موارد فوق یک شوخی فوق العاده بی مزه و بی نهایت سبک سری برای یک برنامه نویس حرفه ای است. بسیاری از شما بدون آنکه بدانید قربانی ویروسهای بسیار حرفه ای بوده اید که بارها از منابع سیستم شما برای اهداف خاصی استفاده کرده اند نظیر جاسوسی یا ارتباطات نامعمول شبکه ای که اگر تا به حال متهم نشده اید بسیار خوش شانس بوده اید. طراحان چنین ویروسهایی برنامه نویسان قدّر قدرتی هستند که اشراف کاملی بر ساختار سیستمهای عامل و پروتکل های شبکه و نرم افزارهای تحت شبکه نظیر انواع مرورگرها و باگها و شکافهای نهفته در آنها دارند، آنها ویروسهایی را می نویسند که همانند یک کرم از کامپیوتری به کامپیوتر دیگر می خزد دیواره های آتش را رد می کند آنتی ویروسها را فریب می دهد و خود را به راحتی تکثیر می کند، چنین ویروسهایی همانند اعضای یک ارتش سری در اختیار نویسنده خود هستند و همیشه گوش به فرمان و منتظر اجرای اوامر هستند. اگر مردید یا شیرزنید از این ویروسها بنویسید! و تورا به خدا بیشتر از این حال مردم را به هم نزنید. سلام این هم یک نرم افزار جالب که در VB6 طراحی کردم و اسمش هم را بلاگفا ریلیتید گذاشتم که کارش بدست آوردن سریع لیست آخرین وبلاگهای به روز شده و آدرس آخرین پست آنها به همراه لینک نظردهی به آخرین پست ارسال شده هر کدام از وبلاگهاست، شاید فکر کنید این یک اسپامر است اما من اینطور فکر نمی کنم. در صورت نیاز با آدرس winprgadv@gmail.com تماس بگیرید. سلام عده ای از دوستان کدهای اسکرول رشته در اسمبلی را خواسته بودند که امروز در اختیارشان قرار میدهم، کدهایی که در زیر می بینید کارهایی فراتر از اسکرول ساده را انجام می دهند و روتینهای ارزشمندی از اسمبلی هستند که ممکن است خیلی به دردتان بخورد. این هم سورس کد برنامه ای که در اسمبلی نوشته ام تا متن را با کمک کلیدهای جهتی اسکرول کند، جهت کامپایل و اجرای صحیح از Masm استفاده کنید. .286p MaxString Equ 81 Code Segment Byte Public Data Segment Word Public Stak Segment Word Stack Dummy Segment Para Public End دانلود جواب تمرینات به صورت زیپ اگر به هر دلیل موفق به دانلود نشدید به ادامه مطلب مراجعه فرمایید تا مستقیماً تمرینات را مشاهده نمایید، امیدوارم مفید واقع شود. زبان بیسیک دیگر منزوی نیست، کسانی سالها برای این زبان زحمت کشیدند تا آن را قدرتمند سازند از جمله اینها یک آمریکایی به نام کوین دیگنس بنیانگذار گروه توسعه زبان بیسیک میانه BCX می باشد که ده سال پیش گروه اینترنتی به این نام را در یاهو ایجاد کرد، برنامه نویسان زیادی از سراسر دنیا در توسعه این زبان سورس باز نقش داشته و دارند، خود من نیز چندین تابع مفید به این زبان افزوده ام، یک محیط RAD قوی نیز برای آن نوشته ام، شایان ذکر است که این زبان در حال حاضر بسیار قدرتمند و سریع ( قابل رقابت با C ) می باشد و در عین حال ماهیت بیسیک و سادگی و انعطافش را نگه داشته است. برنامه هایی که با این نسل از بیسیک نوشته می شوند انگار که با اسمبلی نوشته شده اند! این زبان CROSS PLATEFORM است یعنی رده وسیعی از سیستم عاملها را پشتیبانی میکند، میتوانید با آن برنامه ای بنویسید که هم در لینوکس و هم در ویندوز و هم در Win CE اجرا شود! اگر می خواهید با این زبان بیشتر آشنا شوید به آدرسهای مرتبط زیر مراجعه کنید، اگر خواسته باشید از فعالیتهای من در این طرح سراغی گرفته باشید نام مستعار من Shbuyira است. http://en.academic.ru/dic.nsf/enwiki/709182 http://groups.yahoo.com/group/BCX http://basic-compiler.com/download/index.php?dir=Visual_ESP Download Latest Version Of Visual ESP Kevin Diggins A man who changed the world of Basic Language, BCX Leader
About BCX سلام شرکت نرم افزاری مبین ملکان تا پایان خرداد ۸۹ نسخه سریع ویرایش دوم نرم افزار طراحی نقشه فرش را عرضه خواهد کرد. این نرم افزار قابلیت رقابت با نسخ مشابه خود که قیمتهای گزافی دارند را خواهد داشت. قیمت پایه این نسخه به ازای هر کپی ۳۹ هزار تومان برآورد شده است که در مقایسه با نرم افزارهای مشابه موجود در بازار تا ۸ برابر ارزانتر عرضه می شود. این نرم افزار مستقیماْ روی بوم شطرنجی می نویسد و بی واسطه طرح به نقشه فرش تبدیل می شود بنابراین در سیستمهای ضعیف (رم پایین تر از یک گیگ و پردازنده کمتر از ۳ گیگ) کند عمل میکند. تصویر دلخواه شما تنها با یک کلیک روی بوم چسبانده شده و همان لحظه تبدیل به نقشه می شود در ضمن حین ترسیم طبق پالت مورد نظر شما کاهش رنگ داده می شود البته با کمترین تغییرات و افت ممکن، ابزارهای معمولی ترسیم خط و دایره و مستطیل و ... جزو امکانات ذاتی سیستم هستند و ابزار Brush قوی نرم افزار شامل صدها طرح آماده لچک و ترنج و ... می باشد که کاربر با چند کلیک و استفاده از امکان تقارن سازی نرم افزار قادر به خلق جلوه های بدیعی خواهد بود، زوم سریع به کاربران امکان می دهد که گره ها را به هر ابعادی در آورند و در همان حالت چاپ کنند، این امکان برایشان فراهم آمده که شماره رنگ را نیز دیده و چاپ کنند، می توانند گره ها را حذف کرده و فقط شماره را ببینند، تبدیل یا زمانی برای رندر صرف نخواهد شد چون کار شما بی واسطه و هنگام ترسیم به نقشه تبدیل می شود. نرم افزار کاملاً بومی ویندوز نوشته شده و سرعت زیاد و حجم کم و عدم نیاز به نصب و پشتیبانی از گروه وسیعی از سکوهای ویندوز (XP , Vista , Seven , 2000, 98) از جمله مزایای آن می باشد. علاقه مندان می توانند قبل از عرضه نهایی نظرات و پیشنهادات خود را در زمینه امکانات و قیمت و سایر زمینه ها در این وبلاگ یا سایت رسمی ما www.mobinsoft.com ارائه دهند، قبلاً از توجه شما متشکریم. ![]()
![]()
تا کاج جشنهای زمستانیات کنند
پوشاندهاند «صبح» تو را «ابرهای تار»
تنها به این بهانه که بارانیات کنند
یوسف! به این رها شدن از چاه دل مبند
این بار میبرند که زندانیات کنند
ای گل گمان مکن به شب جشن میروی
شاید به خاک مردهای ارزانیات کنند
یک نقطه بیش فرق رحیم و رجیم نیست
ز نقطهای بترس که شیطانیات کنند
آب طلب نکرده همیشه مراد نیست
گاهی بهانهای است که قربانیات کنند![]()
![]()
بیداری ستاره در چشم جویباران
آینه نگاهت پیوند صبح و ساحل
لبخند گاه گاهت صبح ستاره باران
باز آ که در هوایت خاموشی جنونم
فریادها برانگیخت از سنگ کوهساران
ای جویبار جاری زین سایه برگ مگریز
کاینگونه فرصت از کف دادند بیشماران
گفتی به روزگاری مهری نشسته گفتم
بیرون نمیتوان کرد حتی به روزگاران
بیگانگی ز حد رفت ای آشنا مپرهیز
زین عاشق پشیمان سرخیل شرمساران
پیش از من و تو بسیار بودند و نقش بستند
دیوار زندگی را زینگونه یادگاران
وین نغمه محبت بعد از من و تو ماند
تا در زمانه باقیست آواز باد و باران![]()
Me.FarsiGrid1.ColWidth(1) = 1000
Me.FarsiGrid1.ColWidth(2) = 1800
Me.FarsiGrid1.ColWidth(3) = 2200
Me.FarsiGrid1.ColText(1) = "vndt"
Me.FarsiGrid1.ColText(2) = "jhdlv"
Me.FarsiGrid1.ColText(3) = "j,qdphj"
Me.FarsiGrid1.FontSize = 12
Me.FarsiGrid1.RowsHeight = 500
Me.FarsiGrid1.AddListItem i & vbTab & Timer & vbTab & Date$
Next i
![]()
![]()

![]()
![]()

![]()
![]()
![]()
![]()
داستان فیلمنامه، بخشهایی از زندگی فضیل بن عیاض می باشد. فضیل که در عصر امام صادق (ع) زندگی می کرد، در ابتدا به راهزنی و دزدی مشغول بود. اما بر اثر یک انقلاب روحی که در او پدید آمد، راهزنی و دزدی را کنار گذاشت و توبه کرد و در زمره ی عارفان و مردان حق قرار گرفت. آنچه که در زندگی این عارف بزرگ، قابل تأمل می باشد؛ توجه به این نکته است که تغییر و تحول در ابعاد شخصیتی یک انسان، تصادفی نیست و انسان باید زمینه های این تغییر و تحولات را در خود ایجاد کرده باشد. درونمایه و هدف اصلی این انیمیشن نیز، بررسی این زمینه ها در شخص فضیل عیاض می باشد. نقل است که فضیل، در عین حال که به غارت اموال کاروانها و دزدی می پرداخت، نمازهای واجب روزانه را به جماعت اقامه می کرد. هرکسی از یارانش نیز در نماز جماعت، حاضر نمی شد؛ او را از خود می راند. به یارانش توصیه ی اکید کرده بود که در هنگام هجوم به کاروانها برای غارت اموال آنها، با زنان و کودکان کاروان کاری نداشته باشند و کوچکترین آزاری به آنها نرسانند. هر کسی از یارانش از این توصیه، تعدی و سرپیچی می کرد، سخت تنبیه می شد. به هنگام غارت اموال کاروانها، همه ی دارایی افراد را به غارت نمی برد و بخشی از آن مال را برای صاحبش باقی می گذاشت. نسبت به ادای نماز در اول وقت آن، حساسیت عجیبی داشت و...
در یک توصیف کلی از شخصیت فضیل بن عیاض- قبل از تحول روحی که در او پدید آمد – می توان گفت که در عین حال که به کار ناپسند و غیر شرعی دزدی و راهزنی، مشغول بود، انسان جوانمرد و «دل رحمی» به شمار می رفت...
قسمت پایانی انیمیشن، صحنه ای را نشان می دهد که فضیل با شنیدن آیه ای از قرآن، متحول می شود و توبه می کند. دزدی و راهزنی را کنار می گذارد و در زمره ی عارفان در می آید.
![]()
.model small
.stack 100h
.data
message db "Saleh's Simple OS Version 1.0", 10, 13, "(C) Copyright 2010-2011 by Saleh hajiaghazadeh!.", 0h
prompt db 10,13,"Shell>", 0h
bad_cmd db 10,13,"Bad command or filename.", 0h
cmd_size equ 256
cmd db cmd_size dup(?)
boot_cmd db "reboot"
cls_cmd db "cls"
.code
main proc
; Load ds with data segment
mov ax, @data
mov ds, ax
cls
print_si message
get_cmd:
print_si prompt
get_string cmd, cmd_size
strcompare cmd, boot_cmd, 6, 0
je restart
strcompare cmd, cls_cmd, 3, 0
je clearscr
print_si bad_cmd
jmp get_cmd
jmp done
restart:
reboot
clearscr:
cls
gotoxy 0h,-1h
jmp get_cmd
done:
main endp
end main
boot_vector DW 00000h ; Offset of reboot vector
DW 0FFFFh
mobindata ends
;********** print string **************
print_si macro str_to_print
local print, done
lea si, str_to_print
print:
mov al, [si]
cmp al, 0h ; if 0 null is detected then it is end of string
jz done
mov ah,0eh
int 10h
inc si
jmp print
done:
endm
print_si2 macro
local print, done
print:
mov al, [si]
cmp al, 0h
jz done
mov ah,0eh
int 10h
inc si
jmp print
done:
endm
;********** cls , set 80x25 color text mode ************
cls macro
mov ah,0h
mov al,03h
int 10h
endm
;************* wait for a key *********
wait_for_key macro
mov ah, 0h
int 16h
endm
;*************** reboot *********
reboot macro
assume ds:mobindata
mov ax,40h
mov es,ax
mov word ptr es:[72h], 1234h
jmp dword ptr boot_vector
endm
;******************* get string ************
get_string macro input_buffer, buffer_size
local empty_buffer, wait_for_a_key, add_to_buffer, empty_buffer, exit
lea di, input_buffer
mov dx, buffer_size
mov cx, 0 ; char counter.
cmp dx, 1 ; buffer too small?
jbe empty_buffer ;
dec dx ; reserve space for last zero.
wait_for_a_key:
mov ah, 0 ; get pressed key.
int 16h
cmp al, 0Dh ; 'return' pressed?
jz exit
cmp al, 8 ; 'backspace' pressed?
jne add_to_buffer
jcxz wait_for_a_key ; nothing to remove!
dec cx
dec di
putc 8 ; backspace.
putc ' ' ; clear position.
putc 8 ; backspace again.
jmp wait_for_a_key
add_to_buffer:
cmp cx, dx ; buffer is full?
jae wait_for_a_key ; if so wait for 'backspace' or 'return'...
mov [di], al
inc di
inc cx
mov ah, 0eh ; print the key
int 10h
jmp wait_for_a_key
exit:
mov al,0h ; null byte
mov [di],al ; mark end of input string
mov di, 0 ; terminate by null
empty_buffer:
endm
;************************* putc ************
putc macro char
mov al, char
mov ah, 0eh
int 10h
endm
;*************************** gotoxy
gotoxy macro col, row
mov ah, 02h
mov bh,0h ; page number
mov dh, row
mov dl, col
int 10h
endm
;************************** getxy
getxy macro
mov ah,03h
mov bh,00h; page number
int 10h
;x=dl dh=y begl=cl endl=ch
endm
;****************************** string compare, caution the str1 must have null byte (0h) at the end, and str1>str2 *****************
StrCompare macro str1, str2, size
local done, comp_age
mov ah,size
lea si,str1
lea di,str2
dec di
comp_age:
inc di
dec ah
lodsb ;load al with next char from str1
cmp [di],al
jne done
cmp ah,0h
jne comp_age
done:
lodsb
cmp al,0 ; check to terminator char it is usally 0h (null byte)
;use je to jump if str1=str2
endm![]()
![]()
![]()
![]()
![]()
#include "conio.h"
struct List *Rear=NULL;
struct List *Front=NULL;
struct List
{
int Data;
struct List *Link;
};
void Insert(int Item)
{
struct List *Temp;
Temp=new List;
if (Rear!=NULL)
{
Temp->Data=Item;
Temp->Link=Rear->Link;
Rear->Link=Temp;
}
else
{
Temp->Data=Item;
Rear=Temp;
Front=Temp;
Temp->Link=NULL;
}
}
int Delete()
{
int Item;
struct List *Temp;
Temp=Front;
if (Front==NULL)
{
cout<<"Quee is empty.";
return -1;
}
else
{
Item=Temp->Data;
Front=Front->Link;
delete Temp;
if (Front==NULL) Rear=NULL;
return Item;
}
return -1;
}
void main()
{
while(1)
{
clrscr();
cout<<"Quee Implementation using a 'Linked List':\n";
cout<<"1 - Insert\n";
cout<<"2 - Delete\n";
cout<<"3 - About\n";
cout<<"4 - Exit";
char c=getch();
if (c=='4')break;
switch (c)
{
case '1':
int item;
clrscr();
cout<<"Enter item to Insert: ";
cin>>item;
Insert(item);
break;
case '2':
clrscr();
int ret=Delete();
if (ret!=-1) cout<
break;
case '3':
clrscr();
cout<<"Writen by Saleh hajiaghazadeh.";
getch();
break;
}
}
}
![]()
بر در تو نشستهام منتظر عنایتی
گر چه بمیرم از غمت هم نکنی به من نظر
ور همه خون کنی دلم، هم نکنم شکایتی
ورچه نثار تو کنم جان، نرهم ز درد تو
نیست از آنکه تا ابد عشق تو را نهایتی
دل ز فراق گشت خون، جان به لب آمد از غمت
زحمتم آید، ار کنم از غم تو حکایتی
برد ز من هوای تو جان عزیز، ای دریغ
کشت مرا جفای تو بیسبب جنایتی
گرچه برانی از برم باز نگردم از درت
چون ز در عنایتت یافتهام هدایتی
خسته عراقی آن توست، دور مکن ز درگهش
تا نرود فغان کنان از تو به هر ولایتی
![]()
![]()
![]()
![]()
Code Ends
Data Ends
DW 256 DUP (?)
Stak Ends
Dummy Ends
Code Segment
Assume CS:Code,DS:Data,ES:Nothing,SS:Stak
Mov BX,Seg Data
Mov DS,BX ;Set data segment
Mov BX,Seg Dummy ;End of pgm
Mov AX,CS ;Start of pgm
Sub BX,AX ;Calc pgm size
Add BX,16 ;Paragraphs in Stack + 1
Mov AH,4AH ;Shrink mem
Int 21h ;Thru Dos
Push DS
Pop AX
Mov ES,AX ;Set ES to DS
Mov DefSeg,AX ;DefSeg defaults to DS
Mov $DataSeg,AX ;Set $DataSeg to DS
Call GetCursor
Push 3
Call Screen
Mov SI,Offset $tring_01
Call PrintStr
Call SetCursor
Call DoCrLf
Mov SI,Offset $tring_02
Call PrintStr
Call SetCursor
Call DoCrLf
Mov SI,Offset $tring_03
Call PrintStr
Call SetCursor
Call DoCrLf
Call DoCrLf
Mov SI,Offset $tring_04
Call PrintStr
Call SetCursor
Call DoCrLf
Call DoCrLf
Mov SI,Offset $tring_05
Call PrintStr
Call KBInput
Mov SI,Offset $_0_
Mov DI,Offset A1$
Call MoveStr
Mov SI,Offset $tring_07
Call PrintStr
Call KBInput
Mov SI,Offset $_0_
Mov DI,Offset A2$
Call MoveStr
Mov SI,Offset $tring_09
Call PrintStr
Call KBInput
Mov SI,Offset $_0_
Mov DI,Offset A3$
Call MoveStr
Mov SI,Offset $tring_11
Call PrintStr
Call KBInput
Mov SI,Offset $_0_
Mov DI,Offset A4$
Call MoveStr
Call ShowGuid
Mov $Ycur,12
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A1$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov $Ycur,13
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A2$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov LK,-72
DoLoop_01:
Xor AX,AX
Call GetKey
Mov K,AX
Cmp K,27
Je _True_01
Jmp _EndIf_01
_True_01:
Mov AL,0
Mov AH,4Ch
Int 21h
_EndIf_01:
Cmp K,-80
Je _True_02
Jmp _EndIf_02
_True_02:
Call ShowGuid
Mov $Ycur,12
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A3$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov $Ycur,13
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A4$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov AX,K
Mov LK,AX
_EndIf_02:
Cmp K,-72
Je _True_03
Jmp _EndIf_03
_True_03:
Call ShowGuid
Mov $Ycur,12
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A1$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov $Ycur,13
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A2$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov AX,K
Mov LK,AX
_EndIf_03:
Cmp K,-77
Je _True_04
Jmp _EndIf_04
_True_04:
Cmp LK,-72
Je _True_05
Jmp _EndIf_05
_True_05:
Call ShowGuid
Mov $Ycur,12
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A1$
Mov AX,11
Mov BX,20
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov $Ycur,13
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A2$
Mov AX,11
Mov BX,20
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Jmp _EndIf_05A
_EndIf_05:
Call ShowGuid
Mov $Ycur,12
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A3$
Mov AX,11
Mov BX,20
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov $Ycur,13
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A4$
Mov AX,11
Mov BX,20
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
_EndIf_05A:
_EndIf_04:
Cmp K,-75
Je _True_06
Jmp _EndIf_06
_True_06:
Cmp LK,-72
Je _True_07
Jmp _EndIf_07
_True_07:
Call ShowGuid
Mov $Ycur,12
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A1$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov $Ycur,13
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A2$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Jmp _EndIf_07A
_EndIf_07:
Call ShowGuid
Mov $Ycur,12
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A3$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
Mov $Ycur,13
Mov $Xcur,35
Call ClrWork
Mov SI,Offset A4$
Mov AX,1
Mov BX,10
Call Mid$
Call Concat_2
Mov DI,Offset S$
Call Assign
Mov SI,Offset S$
Call PrintStr
Call SetCursor
Call DoCrLf
_EndIf_07A:
_EndIf_06:
Jmp DoLoop_01
DoLoop_01A:
ExitToDos:
Mov AH,4Ch
Xor AL,AL
Int 21h
Showguid Proc Near
Public Showguid
Push BP
Mov BP,SP
Call Cls
Mov SI,Offset $tring_16
Call PrintStr
Call SetCursor
Call DoCrLf
Mov SP,BP
Pop BP
Ret
Showguid Endp
GetCursor Proc Near
Mov AH,3
Xor BH,BH
Int 10h
Xor AX,AX
Mov AL,DL
Inc AL
Mov $Xcur,AX
Mov AL,DH
Inc AL
Mov $Ycur,AX
Ret
GetCursor Endp
SetCursor Proc Near
Mov DX,$Xcur
Dec DL
Mov AX,$Ycur
Mov DH,AL
Dec DH
Mov AH,2
Int 10h
Ret
SetCursor Endp
MoveStr Proc Near
Cld
MoveStr1:
Lodsb
Stosb
Or AL,AL
Jnz MoveStr1
Ret
MoveStr Endp
Len Proc Near
Push CX
Push SI
Push DI
Mov DI,SI
Xor AL,AL
Mov CX,0ffffh
Cld
Repnz Scasb
Not CX
Dec CX
Mov AX,CX
Pop DI
Pop SI
Pop CX
Ret
Len Endp
Concat Proc Near
Push CX
Push DI
Push SI
Push SI
Push DI
Pop SI
Call Len
Mov BX,AX
Pop SI
Call Len
Mov CX,AX
Inc CX
Pop SI
Pop DI
Add DI,BX
Cld
Rep Movs Byte Ptr[DI],Byte Ptr ES:[SI]
Pop CX
Ret
Concat Endp
Concat_2 Proc Near
Mov SI,Offset $_1_
Mov DI,Offset $_0_
Call Concat
Ret
Concat_2 Endp
Cls Proc Near
Push BP
Mov $Xcur,1
Mov $Ycur,1
Mov AH,0Fh
Int 10h
Cmp AL,3
Jg ClsGraphics
Mov AH,06
Xor AL,AL
Mov BX,$Attr
Mov BH,BL
Xor CX,CX
Mov DH,24
Mov DL,79
Int 10h
Xor BX,BX
Xor DX,DX
Mov AH,02
Int 10h
Jmp ClsEnd
ClsGraphics:
Mov BX,BgColor
Xchg BH,BL
Xor CX,CX
Mov DL,79
Mov DH,43
Mov AX,0600h
Int 10h
ClsEnd:
Pop BP
Ret
Cls Endp
PrintStr Proc Near
Call Len
Push AX
Mov CX,AX
Cmp CX,0
Jle PS_3
Mov BX,$Attr
Mov AX,$Ycur
Mov DI,$Xcur
Push DS
Push ES
Dec AX
Dec DI
Cmp DI,0
Jg PS_1
Xor DI,DI
PS_1:
Mov DX,80
Mul DX
Add DI,AX
Shl DI,1
Mov AX,0B000H
Mov ES,AX
Mov AH,0FH
Int 10H
Cmp AL,07H
Je PS_2
Mov AX,0B800H
Mov ES,AX
PS_2:
Cld
Movsb
Mov ES:[DI],BL
Inc DI
Loop PS_2
Pop ES
Pop DS
PS_3:
Pop AX
Add $Xcur,AX
Ret
PrintStr Endp
DoCrLf Proc Near
Mov $Xcur,1
Inc $Ycur
Cmp $Ycur,26
Jne CrLf_1
Dec $Ycur
CrLf_1:
Mov DX,Offset $CrLf
Mov AH,9
Int 21h
Mov BX,$Xcur
Mov DL,BL
Dec DL
Mov BX,$Ycur
Mov DH,BL
Dec DH
Xor BX,BX
Mov AH,2
Int 10h
Ret
DoCrLf Endp
kbInput Proc Near
Mov AX,$Xcur
Mov $Var1,AX
Mov AX,$Ycur
Mov $Var2,AX
Call SetCursor
Xor BX,BX
Mov CX,255
Mov DX,Offset $_0_
Mov AH,3fh
Int 21h
Mov $Var3,AX
Mov SI,Offset $_0_
Dec SI
KBFindCR:
Inc SI
Mov AL,ES:[SI]
Cmp AL,13
Jne KBFindCR
Xor AX,AX
Mov ES:[SI],AL
Call GetCursor
Ret
kbInput Endp
ClrWork Proc Near
Mov DI,Offset $_0_
Xor AX,AX
Mov [DI],AX
Ret
ClrWork Endp
Assign Proc Near
Mov SI,Offset $_0_
Call MoveStr
Ret
Assign Endp
Mid$ Proc Near
Push BX
Push AX
Call ClrWork
Cld
Mov DI,Offset $_1_
Pop AX
Add SI,AX
Dec SI
Pop CX
Rep Movs Byte Ptr[DI],Byte Ptr ES:[SI]
Mov [DI],Byte Ptr 0
Ret
Mid$ Endp
Getkey Proc Near
Xor AX,AX
Int 16h
Cmp AL,0
Je GetKey_1
Xor AH,AH
Jmp GetKey_2
GetKey_1:
Mov AL,AH
Xor AH,AH
Neg AX
GetKey_2:
Ret
GetKey Endp
Screen Proc Near
Push BP
Mov BP,SP
Mov AL,[BP+4]
Xor AH,AH
Int 10h
Mov AX,1
Mov $Xcur,AX
Mov $Ycur,AX
Pop BP
Ret 02
Screen Endp
ShowHideCursor Proc Near
Cmp AX,0
Je Sh1
Mov CL,13
Mov CH,12
Mov AH,01
Int 10h
Jmp Sh2
Sh1:
Xor CL,CL
Mov CH,1
Mov AH,1
Int 10h
Sh2:
Ret
ShowHideCursor Endp
Code Ends
Data Segment
$Xcur DW 1
$Ycur DW 1
$Attr DW 7
$CrLf DB 13,10,'$'
$CrLf2 DB 13,10,0
FgColor DW 7
BgColor DW 0
Err DW 0
DefSeg DW 0
$DataSeg DW 0
$Empty DB 0,0
$Var0 DW 0
$Var1 DW 0
$Var2 DW 0
$Var3 DW 0
$tring_01 DB "Multiline Text Scrolling Program",0
$tring_02 DB "Writen by : Saleh hajiaghazadeh",0
$tring_03 DB "Well Compile with Microsoft Masm 5.10",0
$tring_04 DB "You can enter 4 line, each line must be contain 20 character!",0
$tring_05 DB "Please enter text line 1 : ",0
$tring_07 DB "Please enter text line 2 : ",0
$tring_09 DB "Please enter text line 3 : ",0
$tring_11 DB "Please enter text line 4 : ",0
LK DW 0
K DW 0
$tring_16 DB "Press arrow keys to view lines and ESC for exit",0
$_0_ DB MaxString DUP(?)
$_1_ DB MaxString DUP(?)
A1$ DB MaxString DUP(?)
A2$ DB MaxString DUP(?)
A3$ DB MaxString DUP(?)
A4$ DB MaxString DUP(?)
S$ DB MaxString DUP(?)
Data Ends![]()
:ادامه مطلب:![]()

The result can then be compiled using any of several C/C++ compilers including: Microsoft VC++, Borland Free Compiler, Digital Mars, Mingw32, Watcom, Lcc-Win32 Compiler, and Pelles C Compiler. Code generated by BCX is compiled into 32-bit, native object code, Windows GUI programs, console mode programs, and Dynamic Link Libraries.
Kevin Diggins authored and developed BCX from 1999 until late 2010 when he released the source code under a generous modified GPL. Kevin programmed the BCX translator, wrote the original Windows help file, and packaged them with a number of programming tools before making BCX open source in 2004. Mike Henning made significant improvements to BCX and continues to lend his talents when he can. Robert Wishlaw is a long time user of BCX and has contributed to the BCX runtimes and numerous bug fix fixes and tweaks. Robert's greatest contribution has been converting the original helpfile to the current BCX Programmer's Reference Help (BCXHELP.CHM) at the Yahoo Forum (link below). Wayne Halsdorf is often credited for his many advanced contributions to BCX, including the hash search, and dynamic allocation system.In 2006, Saleh Hajiagazadeh Buygoot created an advanced VB-Like IDE for BCX users and makes it available free of charge at the BCX Yahoo forum.
![]()
![]()
90/11/05
| |
90/09/30
| |
گاهی که به خیال خود به خوشبختی رسیده ای، بیشتر اندیشه کن و گاهی که در اندیشه خود بدبختی بیشتر به حکمت خداوند بیاندیش....
90/08/04
| |
90/08/02
| |
ای مهربان تر از برگ در بوسه های باران
90/06/05
| |
90/03/23
| |
سلام
90/03/17
| |
89/12/28
| |
تحسین برانگیزترین مورد در وجود هیتلر نترسی او بود البته اگر این ادعادی وی درست بوده باشد که (( من هیچ گاه ترس را درک نکردم )).
89/12/21
| |
89/12/20
| |
89/12/16
| |
89/12/07
| |
89/11/29
| |
کار تولید انیمیشن فضیل عیاض از امروز بیست و ششم بهمن در دستور کار واحد انیمیشن شرکت نرم افزاری مبین ملکان قرار گرفت، قرار است این انیمیشن تاریخی 30 دقیقه ای تا اوایل تابستان سال آینده آماده اکران شود.
89/11/26
| |
89/10/28
| |
سلام دوستان عزیز و بازهم یک موضوع بی ربط
89/10/16
| |
سلام
مسئله : تعیین حاصلضرب دو ماتریس n ×n که در آن n توانی از 2 است.
پیچیدگی این الگوریتم از لحاظ ضرب، جمع و تفریق بهتر از پیچیدگی درجه سوم است.
نکته : روش استراسن در مورد ضرب ماتریس های 2×2 ارزش چندانی ندارد.
سورس کد مربوط را می توانید از اینجا دانلود کنید. و در توربو سی اجرا کنید.
89/09/02
| |
سلام
89/09/02
| |
وبلاگی به آدرس زیر اطلاعات و پستهای سایر وبلاگها خصوصاً وبلاگ مرا را بدون ذکر منبع و با نام خود در وبلاگ خود درج میکند، شما اسم این کار را چی می گذارید!
89/07/24
| |
این یک پیاده سازی صف با استفاده از لیست پیوندی است در سی پلاس، نوشتم برای دوستانی که هنوز ساختمان داده را پاس نکرده اند.
89/07/24
| |
89/06/31
| |
89/06/15
| |
89/05/16
| |
89/04/17
| |
89/04/06
| |
سلام همکلاسیهای عزیز:
89/03/31
| |
BCX, a free software programming application, translates BASIC source code to C/C++ source code for compiling with any number of Win32 compilers. BCX is written in BCX BASIC, making it a self-translating translator. BCX is a small command line tool that takes a BASIC source code file and outputs a C/C++ source code file.
89/02/26
| |
89/02/20
| |


