صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 49

نام تاپیک: ترکیب Text Mode و Graphic Mode

  1. #1
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044

    ترکیب Text Mode و Graphic Mode

    آیا راهی برای ترکیب حالت متنی و گرافیکی هست؟
    یعنی زمانی که داریم یک تکس رو نشون میدیم بتونیم کار گرافیکی هم بکنیم.

  2. #2
    میتونی یک برنامهء کنسول ایجاد کنی و هدر مربوط به ویندوز رو اضافه کنی و هر وقت خواستی پیام یا پنجره های دلخواهت رو بسازی و نمایش بدی
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  3. #3
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    ضمن تشکر از شما دوست عریز
    ولی منظور من در داس و سی تحت داس بود.
    در واقع هدف ساخت سیستمی است که بتواند در یک لحضه هر دو مد را نمایش دهد.
    امکان این کار باید باشه یکی از دوستان استفاده از CRC Control را پیشنهاد کرد.

    ممکنه در این مورد توضح بدید؟

  4. #4
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    یعنی این سوال جوابی نداره؟!
    پس چطوی تو بانکها این کار رو کردن و یا مثلا در زرنگار رمانی که دارید فوت رو عوض میکنید!!!

  5. #5
    سلام
    CRC Check چه ربطی به گرافیک دارد؟ ضمنا در مود گرافیک میشه متن نشون داد ولی برعکسش نمیشه. چون در مود متن به پیکسلهای صفحه دسترسی ندارید و فقط کاراکتر رو متوجه میشه. ولیکن یه راه کلکی هست. در کارتهای VGA به بالا در واقع توانایی نمایش ۵۱۲ کاراکتر (به جای ۲۵۶) کاراکتر همزمان وجود داره. خیلی از برنامه های قدیمی از این موضوع استفاده میکردند و در ۲۵۶ کاراکتر اول فونتهای متنی و در ۲۵۶ کاراکتر دوم جدول فونتش رو خودشون تعریف میکردند تا بشه یک سری شکلهای گرافیکی رو هم نمایش داد. برای اینکار باید بیت مپ مورد نظر رو اول به یک سری مربع ۱۶*۸ تبدیل کنید بعد هر کدوم از این مربعها رو به عنوان یک فونت به سیستم بدین. اوونوقت با در واقع نوشتن این کاراکترها، بیت مپ اولیه روی صفحه ظاهر میشه.
    ممنون علی

  6. #6
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    نقل قول نوشته شده توسط seyedof
    سلام
    CRC Check چه ربطی به گرافیک دارد؟ ضمنا در مود گرافیک میشه متن نشون داد ولی برعکسش نمیشه. چون در مود متن به پیکسلهای صفحه دسترسی ندارید و فقط کاراکتر رو متوجه میشه. ولیکن یه راه کلکی هست. در کارتهای VGA به بالا در واقع توانایی نمایش ۵۱۲ کاراکتر (به جای ۲۵۶) کاراکتر همزمان وجود داره. خیلی از برنامه های قدیمی از این موضوع استفاده میکردند و در ۲۵۶ کاراکتر اول فونتهای متنی و در ۲۵۶ کاراکتر دوم جدول فونتش رو خودشون تعریف میکردند تا بشه یک سری شکلهای گرافیکی رو هم نمایش داد. برای اینکار باید بیت مپ مورد نظر رو اول به یک سری مربع ۱۶*۸ تبدیل کنید بعد هر کدوم از این مربعها رو به عنوان یک فونت به سیستم بدین. اوونوقت با در واقع نوشتن این کاراکترها، بیت مپ اولیه روی صفحه ظاهر میشه.
    ممنون علی
    راستش ربطش رو نمیدونم!!!
    اون یه توصیه از طرف دوستی بود که حالا بهش دسترسی ندارم.


    اما اگر اشتباه نکنم چیزی که گفتید در مورد ساخت فونت در داس بود، درسته؟
    اما من از ترکیب این دو مد حرف میزنم.
    میدونم که در کارت گرافیک حافطه این دو مد فرق میکنه ولی میشه بگید مثلا در نرم افزارهای بانک زمانی که فیلد امضا نشون داشده میشه اونها چز کار کردن، چون من خودم صبح ها در بانک هستم میبینم که این کار شده!!!
    ما کاملا در مد متنی هستیم ولی زمانی که امضا مشتری دیده میشه در همون حالت متنی قسمتی از صفحه گرافیکی میشه و امضا به نمایش در میاد در حالی که ما بقی قسمتها به شکل متنی هستن!!!!!
    چطور چنین چیزی امکان داره؟
    یا واقعا مد مد گرافیکی هست یا ترکیبی از این دو مد هست.
    این کار چطور امکان پذیر شده؟!

  7. #7
    سلام
    اگر دقت کنید چیزی که من توضیح دادم دقیقا ترفندی بود برای نمایش گرافیک در مود متن نه در مورد ساخت فونت در داس.
    در واقع اوون گرافیکها هم با یک سری فونت ساخته میشن چون نمایش گرافیک در مود متن غیر ممکن است.
    نمونه اش لوگویی است که بایوس سیستم موقع روشن شدن کامپیوتر نشون میده.

    ممنون علی

  8. #8
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    نقل قول نوشته شده توسط seyedof
    سلام
    اگر دقت کنید چیزی که من توضیح دادم دقیقا ترفندی بود برای نمایش گرافیک در مود متن نه در مورد ساخت فونت در داس.
    در واقع اوون گرافیکها هم با یک سری فونت ساخته میشن چون نمایش گرافیک در مود متن غیر ممکن است.
    نمونه اش لوگویی است که بایوس سیستم موقع روشن شدن کامپیوتر نشون میده.

    ممنون علی
    تشکر :flower:

  9. #9
    سلام

    از کجا مطمئنید که در مد متن هستید؟
    ____________________________
    همه چیز را همگان دانند و همگان هنوز از مادر زاده نشده اند. (بزرگمهر حکیم)

  10. #10
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    ضمن تشکر از همه دوستانی که به این موضوع توجه کردن میخوام خواهش کنم که اگر ممکن هست برنامه ای رو که فرستام رو کنترل کنید و نتیجه آنالیز خودتون رو بگید ، که آیا این برنامه در مد تکست هست یا گرافیک و چطور چنین کاری کرده.

    لطفا برنامه را در داس(Command or CMD) اجرا کنیدو قبل از اجرا دستوی را اجرا کنید که صفحه پر از کاراکتر شود مثلا Dir یا چیزی شبیح این.

    خواهش میکنم نتیجه برسیتون رو به من هم بگید.

  11. #11
    سلام
    اگه می خوای توی مد گرافیک بنویسی settext و settextxy()

    و برای خواندن هم می تونی کلید بخونی

  12. #12
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    نقل قول نوشته شده توسط rezaTavak
    سلام

    از کجا مطمئنید که در مد متن هستید؟
    سعی میکنم چند عکس از این برنامه رو اینجا بزارم تا شما هم پیرامون آن نظر بدید.

  13. #13
    سلام
    تونستید این مساله رو حل کنید؟

    البته شما فایلی نگذاشتید.
    اما من خودم برنامه ای رو دیدم که تو محیط تکست گرافیک نمایش میداد.
    چطوری رو نمیدونم.
    لطفا نتیجه تحقیقتونو بگید.

  14. #14
    احتمالا صبحت دوست شما پیرامون CRT Controller بوده.
    برنامه زیر رو در مد داس اجرا کنید تا ببینید که مد متن با همه محدودیت‌ها کارهای جالبی می‌شه در اون انجام داد. دقیقا از 256 مجموعه دوم کاراکترها استفاده شده.
    فایل های ضمیمه فایل های ضمیمه

  15. #15
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    383
    نقل قول نوشته شده توسط PalizeSoftware
    احتمالا صبحت دوست شما پیرامون CRT Controller بوده.
    برنامه زیر رو در مد داس اجرا کنید تا ببینید که مد متن با همه محدودیت‌ها کارهای جالبی می‌شه در اون انجام داد. دقیقا از 256 مجموعه دوم کاراکترها استفاده شده.
    بی انصاف لاقل سورس رو هم میزاشتی
    فقط می خواستی ما رو بزاری تو کف :kaf: :kaf:

  16. #16
    باور کنید که سورس از بین رفته والا حتما می‌ذاشتم. برمی‌گرده به 4-5 سال پیش که با اسمبلی حال می‌کردم.
    جالب بدونید که این برنامه با QBasic 7+Assembly‌ نوشته شده بود.
    برنامه‌های دیگه‌ای هم در این زمینه داشتم که اون ها هم منهدم شدند.
    نمونه‌اش دیکشنری خط فرمان که قابلیت نمایش عکس رو هم داشت.
    باز می‌گردم تا ببینم اگه چیزی دیگه پیدا کردم حتما براتون بذارم.

  17. #17
    این هم یه نمونه دیگه (قصد حال گیری ندارم)
    می‌خوام دوستان با نمونه‌هایی در این زمینه آشنا بشن.
    فایل های ضمیمه فایل های ضمیمه

  18. #18
    خیلی جالبه.
    اولیه خیلی باحال بود.
    چطوری اینجوریش کرده بودی؟

    ولی اونی که من دیده بودم گرافیک تو داس بود.
    متونی که تو صفحه بود سر جاشون بود فقط بک گراندش به رنگ قرمز بصورت طیفی بالا و پایین میرفت.

    یعنی تو هر سطح کاراکتر 5 - 6 رنگ مختلف بود در صورتی که تو محیط تکست بصورت عادی یک رنگ بکگراند داریم و یک رنگ فورگراند.


    یادمه تو فاکسپرو هم یه همچین چیزی رو ساپورت میکرد.
    یعنی اگه وی جی ای جواب میداد تصاویر بیتمپ رو هم نمایش میداد.
    البته من ندیدم چنین کاری بکنه ولی دستورش بود (میگردم دستور فاکس پروش رو پیدا میکنم).
    نمیدونم چطوری فقط میدونم میشه.
    راستی یه سوال
    چطوری میشه تو داس گرافیک 16 ملیون رنگ رو ساپورت کرد؟
    اینم میدونم میشه اونم با سرعت خیلی بالا ولی چطوریش رو نمیدونم.

    یه برنامه بود تو داس به اسم See که همه فرمت عکسی رو ساپورت میکرد (16 ملیون رنگ) اونم با سرعت و رزولوشن بالا

    کسی میدونه چطور میشه که ایطور میشه؟

  19. #19
    دوست عزیز در محیط داس هم براحتی می‌شه تعداد رنگ 16 میلیونی داشت.
    اما کارت شما باید استاندارد (Super VGA(SVGA رو ساپورت کنه (که امروزه همه کارتها این رو پشتیبانی می‌کنند)
    در کارت‌های SVGA‌ شما قابلیت فعال سازی مد‌های VESA رو دارید که مثلا می‌تونید مد 1024×768 رو با 16 میلیون رنگ داشته باشید. ضمن اینکه روتین‌های گزافیکی رو خودتون دیگه باید پیاده کنید و دسترسی مستقیم به حافظه کارت گرافیک رو داشته باشید.

  20. #20
    برنامه زیر هم با QBasic 7 نوشته شده که البته اسمبلی مثل همیشه استفاده شده.
    در محیط داس اجرا کنید(ممکنه در داس-ویندوز پرش داشته باشه)
    اگه سورس این چند برنامه اخیر رو پیدا کردم حتما تقدیم علاقه‌مندان خواهم کرد
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip CP.zip‏ (20.2 کیلوبایت, 39 دیدار)

  21. #21
    آفرین.
    خود خودشه
    همین برنامس
    خوب حالا میشه بگی چطوری ساخته شده؟
    چطوری مود vesa رو فعال کنم؟
    یا چطور باهاش کار کنم؟

  22. #22
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    383
    اگر پیدا نکردی کمی در مورد کاری که انجام دادی توضیح بده که از چه روشی استفاده کردید

  23. #23
    چشم توضیح می‌دم ولی بهتر هست که در بخش اسمبلی مطرح بشه. اینطور نیست؟
    اول بپردازیم به چگونگی لود فونت‌ها در جدول دوم، یعنی فعال ساختن 512 کاراکتر در یک زمان.
    منتظر باشید

  24. #24
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    383
    چشم توضیح می‌دم ولی بهتر هست که در بخش اسمبلی مطرح بشه. اینطور نیست؟
    اول بپردازیم به چگونگی لود فونت‌ها در جدول دوم، یعنی فعال ساختن 512 کاراکتر در یک زمان.
    منتظر باشید
    من تو قسمت اسمبلی منتظرم .....

    راتسی همون طور که ایران پی سی گفت یک توضیح هم در مورد دسترسی به مود های بالاتر رو هم بده
    چون تو مد 1024*768 و 24 بیتی مقدار حافظه ای که رو باید به تمام صحفه برای دسترسی داشت 2359296 بایت میشه در حالی که داس بیشتر 65535 بایت رو نمی تونه دسترسی داشته باشه یک روش بود که با سویچ کردن بانک میشد به کل صحفه نمایش دسترسی داشت در این مورد هم یک توضیحی بده

  25. #25
    چشم به محض آماده کردن مطلب حتما می‌ذارم.

    چون تو مد 1024*768 و 24 بیتی مقدار حافظه ای که رو باید به تمام صحفه برای دسترسی داشت 2359296 بایت میشه در حالی که داس بیشتر 65535 بایت رو نمی تونه دسترسی داشته باشه یک روش بود که با سویچ کردن بانک میشد به کل صحفه نمایش دسترسی داشت در این مورد هم یک توضیحی بده
    در این مدها شما با بلوک‌ها سر رو کار دارید که امکان آدرس دهی رو فراهم می‌کنه.
    راستی ابزار زیر رو هم ببینید تا با مدهای VESA که لیست می‌کنه و کارت گرافیک شما پشتیبانی می‌کنه آشنا بشید.
    فایل های ضمیمه فایل های ضمیمه

  26. #26
    کاربر دائمی آواتار sasan_vm
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    زاهدان
    پست
    494
    سلام
    این هم یک مثال دیگه البته با سورس کامل
    فایل های ضمیمه فایل های ضمیمه

  27. #27
    سلام به همگی.
    خیلی عالیه.
    یعنی میخواید بفرمایید که اون سی پ1 که فایلش رو گذاشتید گرافیکی نبوده؟
    من با 512 کاراکتر کار کردم ولی این مدلیش رو ندیده بودم.
    تا جایی که یادمه رنگ فور کالر بالای 7 میشد 256 کاراکتر بعدی.
    اسم تاپیک اسمبلیتونو هم اینجا بگید.
    در ضمن اون قضیه فول کالر رو هم فراموش نکنید.
    خیلی از آشنایی با شما و این سایت خوشحالم.

  28. #28
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    383
    این هم یک مثال دیگه البته با سورس کامل
    آخ که من میمیرم واسه سورس

  29. #29
    سلام.
    هر دوتا برنامه رو دیدم.
    خیلی جالب بود.

    تو اون برنامه وسا اینفو مدهای وسا رو دیدم.
    شماره همشون بزرگتر از 255 بود و با وقفه معمولی نمیشد بهش دسترسی داشت.
    میشه بگید چطور میشه به مودهای وسا سوئیچ کرد؟

    ممنون

  30. #30
    منو نا امید نکنید لطفا.
    اینجا هر شب چند تا جواب خوب توش بود
    اما امشب ؟؟؟؟؟؟





    اینم از فردای دیشب.


    یکی بیاد جواب ما رو بده دیگه.
    آخرین ویرایش به وسیله Iran-PC : دوشنبه 14 آذر 1384 در 21:28 عصر

  31. #31
    جناب پالیز و آقا ساسان :

    خیلی ممنون خیلی توجه کردید.
    آخه یکی بیاد جواب بده دیگه.

  32. #32
    آقا خودمفهمیدم چطور باید سوییچ کرد.
    حالا بگید چطور میشه اطلاعات رو بلوک بلوک توش نوشت یا ازش خوند.؟
    امان از بی سوادی.
    پی سی اینترن دارم اما سواد خوندنشو ندارم.
    شماها هم که اصلا تحویل نمیگیرید یه جواب خشک و خالی بدید

  33. #33
    سلام
    من قبلا اینکارها رو زیاد کردم ولی مال زمان داس بود و خیلیهاش رو فراموش کردم اما به هر حال چیزهایی که یادم مونده توضیح میدم.
    اول در مورد نمایش گرافیک در مود متن :

    در کارتهای VGA به بالا قابلیت نمایش 512 کاراکتر به جای 256 عدد وجود دارد. ترفند به این صورت است. شما یک بلوک روی صفحه نمایش در نظر میگیرید به نحوی که اندازه اش بر حسب کاراکتر از 256 کاراکتر بیشتر نشه. مثلا 16 در 16 کاراکتر یا 8 در 32 کاراکتر. این از این.در مود متنی عادی ابعاد صفحه بر حسب کاراکتر 80 در 25 است.
    حالا میریم سراغ پیکسل. هر کاراکتر در مود عادی متن دارای 16 پیکسل ارتفاع و 8 پیکسل عرض است. در واقع حرف A انگلیسی مانند تمام کاراکترهای دیگر یک ماتریس از نقاط تعریف شده است که مثلا فارسی سازها هم با تعریف این آرایه میتوانند در مود متن شکل حروف فارسی را تعریف کنند. پس تا اینجا معلوم شد که میتونیم برای هر کاراکتر هر شکلی که بر حسب پیکسل ابعادش 8 در 16 پیکسل است قرار دهیم.
    خب وقتی بشود اینکار رو کرد چون این شکل میتونه هر چیزی باشه پس میتونیم از این قابلیت برای نمایش گرافیک در مود متن استفاده کنیم. به این صورت که اوون بلوکی که در مرحله اول گفته شد اندازه اش از 256 کاراکتر بیشتر نباشه (مثلا 16 در 16 کاراکتر) میتونه به عنوان یک بلوک گرافیکی در نظر گرفته بشه. به اینصورت که توی این 256 کاراکتر شما کاراکترهای 0 تا 255 رو نمایش میدهید. در حالت عادی یک جدول نمایش داده میشه که توش همه حروف و علائم اسکی قراردارند. حالا به صورت پیکسلی اگر فکر کنید در واقع روی صفحه یک بلوکی دارید که 8x16 پیکسل عرض و 16x16 پیکسل ارتفاع داره. فقط روشن و خاموش کردن پیکسلها روی این صفحه گرافیکی مجازی با مودهای گرافیکی فرق میکنه. اینکار به اینصورت است که شما وقتی میخواهید یک پیکسل به مختصات x , y رو روشن کنید باید اول بفهمید که توی اوون بلوک شما این پیکسل روی کدوم کاراکتر میفته. بعد برید و شکل ماتریسی اوون کاراکتر رو به نحوی تغییر بدید که توش اوون پیکسل روشن شده باشه. بلافاصله پس از تغییر شکل اوون کاراکتر پیکسل مربوطه روی صفحه روشن خواهد شد.

    حالا چرا توی مود 512 کاراکتری. اینکار رو توی مود 256 کاراکتری هم میشه انجام داد و هیچ مشکلی نداره. فقط مسپله اینه که چون با اینکار جدول ماتریس شکل کاراکترها رو تغییر میدهید دیگه شکل حروف و علایم هم عوض میشه و دیگه نمیتونید متنی رو همزمان نمایش بدهید. ولیکن در حالت 512 کاراکتری شما میتونید 256 کاراکتر اول رو به نمایش متون و جدول استاندارد فونت اختصاص بدید و این بازیهای تغییر شکل و گرافیکی رو توی 256 کاراکتر دوم انجام بدین.

    سوییچ کردن بین جدول کاراکتر اول و دوم و همچنین تغییر شکل ماتریس حروف بعضا توسط وقفه های مربوط به گرافیک که فکر کنم وقفه شماره 10 بود امکانپذیره اما بعضی از کارها رو نمیشه با این وقفه انجام داد و براش باید شما مستقیما به پورتهای کارت گرافیک دستورات مربوطه رو بفرستید. توضیح دقیق اینکه چه اعدادی باید نوشته بشه و چگونگی تمام کارهایی که گفتم در کتاب PC Intern و به صورت بهتر در کتابی به نام PC Underground توضیح داده شده.
    همونطور که توی جوابهای قبلیم در این تاپیک نوشته بودم لوگوی بایوس هم در ابتدای روشن شدن سیستم نمایش داده میشه از همین تکنیک برای نمایش گرافیک در مود متن استفاده میکنه. البته ناگفته نماند که از نظر تعداد رنگ و یک سری مسائل دیگه محدودیتهایی داره.


    و اما در مورد VESA
    کارتهای گرافیک تا استاندارد EGA فقط قابلیت نمایش 16 رنگ رو داشتند. از VGA به بعد مودی با وضوح 320x200 با 256 رنگ اضافه شد. بایوس فقط از همین مود پشتیبانی میکنه در حالیکه کارتهای VGA قابلیت نمایش یک سری مودهای غیر استاندارد دیگه رو هم داشتند که اینکار از طریق برنامه نویسی مستقیم پورتها امکان پذیر بود. بعد از اوومدن SVGA وضوح های بالاتر مثل 1024 در 768 و همچنین تعداد رنگ بالاتر هم ایجاد شد. متاسفانه هر سازنده کارت گرافیک ساز خودش رو میزد و یک استاندارد واحد برای نمایش گرافیک در این مودهای جدید وجود نداشت. برای همین خیلی از بازیهای اوون موقع همراهشون کلی فایل درایور مختلف بود که بسته به نوع و مدل کارت گرافیک از توابع مناسب اوون کارت استفاده میکردند! بعد از یک مدت با اجماع سازندگان کارتهای گرافیکی و جلوگیری از هرج و مرج و پیچیدگی یک استاندارد وضع کردند به اسم VESA که فکر کنم آخرین ورژنش VESA 2.0 اینا بود. در این استاندارد نحوه رفتن به مودهای گرافیکی جدید و با وضوح و رنگ بالا و همچنین نحوه خواندن و نوشتن روی رم کارت گرافیک و ارتباط با ناحیه مختص گرافیک در رم سیستم که یک نوع Mapping است تعیین شده بود. چون ناحیه 64 کیلوبایتی در حافظه که در آدرس 0xa000 قراردارد جهت خیلی از مودهای گرافیکی VESA کافی نیست و باید انتقال اطلاعات بین این ناحیه و رم کارت گرافیک از طریق یک سری بلوک و پنجره صورت میگرفت. این عملیات تا حدودی کند و پر دردسر هم بود.
    در این استاندارد برخی کارتها قابلیت داشتند به اسم LFB یا Linear Frame Buffer که برای گیم نویسان و کسانی که مایل به عملیات سریع گرافیکی در مودهای وسا بودند بسیار مفید بود. چون به جای عملیاتی مانند Windowing و غیره به وسیله LFB شما میتوانستید درست مانند مودهای قدیمی اطلاعات مربوط به تصویر رو در یک آدرس به صورت کاملا خطی و پشت سرهم بنویسید یا بخونید. سرعتش هم بالا بود.
    برای دوستانی که در داس مایل به استفاده از این مودها هستند هم یک سری کتابخانه برای اینکار هست هم یک تعدادی راه انداز bgi (مال توربوسی و توربو پاسکال) هست که برای کار با این مودها تولید شده اند. اگر مایل هستید خودتون اینکارها رو بکنید مطالعه راهنمای استاندارد VESA 2.0 توصیه میشه که توش همه این موارد رو توضیح داده و میتونید نحوه استفاده از این مودها رو یاد بگیرید.
    اگر بتونم یک سری از برنامه های قدیمی که تحت داس نوشته بودم بودم رو پیدا کنم برای شما میفرستم. در زمان داس این کارهای گرافیکی برای خودش جذابیتهای زیادی داشت.
    ممنون علی

  34. #34
    با تشکر از جناب seyedof‌ که توضیحات مقدماتی رو آوردند.
    بالاخره تاپیک مربوطه به نمایش 512 کاراکتر بطور همزمان در بخش اسمبلی ایجاد شد
    ملاحظه بفرمائید:
    http://www.barnamenevis.org/sh...ad.php?t=33929

  35. #35
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    383
    آقای seyedof‌ خیلی ممنون واقعا آموزنده بود

  36. #36
    نقل قول نوشته شده توسط seyedof
    سلام
    من قبلا اینکارها رو زیاد کردم ولی مال زمان داس بود و خیلیهاش رو فراموش کردم اما به هر حال چیزهایی که یادم مونده توضیح میدم.
    اول در مورد نمایش گرافیک در مود متن :

    در کارتهای VGA به بالا قابلیت نمایش 512 کاراکتر به جای 256 عدد وجود دارد. ترفند به این صورت است. شما یک بلوک روی صفحه نمایش در نظر میگیرید به نحوی که اندازه اش بر حسب کاراکتر از 256 کاراکتر بیشتر نشه. مثلا 16 در 16 کاراکتر یا 8 در 32 کاراکتر. این از این.در مود متنی عادی ابعاد صفحه بر حسب کاراکتر 80 در 25 است.
    حالا میریم سراغ پیکسل. هر کاراکتر در مود عادی متن دارای 16 پیکسل ارتفاع و 8 پیکسل عرض است. در واقع حرف A انگلیسی مانند تمام کاراکترهای دیگر یک ماتریس از نقاط تعریف شده است که مثلا فارسی سازها هم با تعریف این آرایه میتوانند در مود متن شکل حروف فارسی را تعریف کنند. پس تا اینجا معلوم شد که میتونیم برای هر کاراکتر هر شکلی که بر حسب پیکسل ابعادش 8 در 16 پیکسل است قرار دهیم.
    خب وقتی بشود اینکار رو کرد چون این شکل میتونه هر چیزی باشه پس میتونیم از این قابلیت برای نمایش گرافیک در مود متن استفاده کنیم. به این صورت که اوون بلوکی که در مرحله اول گفته شد اندازه اش از 256 کاراکتر بیشتر نباشه (مثلا 16 در 16 کاراکتر) میتونه به عنوان یک بلوک گرافیکی در نظر گرفته بشه. به اینصورت که توی این 256 کاراکتر شما کاراکترهای 0 تا 255 رو نمایش میدهید. در حالت عادی یک جدول نمایش داده میشه که توش همه حروف و علائم اسکی قراردارند. حالا به صورت پیکسلی اگر فکر کنید در واقع روی صفحه یک بلوکی دارید که 8x16 پیکسل عرض و 16x16 پیکسل ارتفاع داره. فقط روشن و خاموش کردن پیکسلها روی این صفحه گرافیکی مجازی با مودهای گرافیکی فرق میکنه. اینکار به اینصورت است که شما وقتی میخواهید یک پیکسل به مختصات x , y رو روشن کنید باید اول بفهمید که توی اوون بلوک شما این پیکسل روی کدوم کاراکتر میفته. بعد برید و شکل ماتریسی اوون کاراکتر رو به نحوی تغییر بدید که توش اوون پیکسل روشن شده باشه. بلافاصله پس از تغییر شکل اوون کاراکتر پیکسل مربوطه روی صفحه روشن خواهد شد.

    حالا چرا توی مود 512 کاراکتری. اینکار رو توی مود 256 کاراکتری هم میشه انجام داد و هیچ مشکلی نداره. فقط مسپله اینه که چون با اینکار جدول ماتریس شکل کاراکترها رو تغییر میدهید دیگه شکل حروف و علایم هم عوض میشه و دیگه نمیتونید متنی رو همزمان نمایش بدهید. ولیکن در حالت 512 کاراکتری شما میتونید 256 کاراکتر اول رو به نمایش متون و جدول استاندارد فونت اختصاص بدید و این بازیهای تغییر شکل و گرافیکی رو توی 256 کاراکتر دوم انجام بدین.

    سوییچ کردن بین جدول کاراکتر اول و دوم و همچنین تغییر شکل ماتریس حروف بعضا توسط وقفه های مربوط به گرافیک که فکر کنم وقفه شماره 10 بود امکانپذیره اما بعضی از کارها رو نمیشه با این وقفه انجام داد و براش باید شما مستقیما به پورتهای کارت گرافیک دستورات مربوطه رو بفرستید. توضیح دقیق اینکه چه اعدادی باید نوشته بشه و چگونگی تمام کارهایی که گفتم در کتاب PC Intern و به صورت بهتر در کتابی به نام PC Underground توضیح داده شده.
    همونطور که توی جوابهای قبلیم در این تاپیک نوشته بودم لوگوی بایوس هم در ابتدای روشن شدن سیستم نمایش داده میشه از همین تکنیک برای نمایش گرافیک در مود متن استفاده میکنه. البته ناگفته نماند که از نظر تعداد رنگ و یک سری مسائل دیگه محدودیتهایی داره.


    و اما در مورد VESA
    کارتهای گرافیک تا استاندارد EGA فقط قابلیت نمایش 16 رنگ رو داشتند. از VGA به بعد مودی با وضوح 320x200 با 256 رنگ اضافه شد. بایوس فقط از همین مود پشتیبانی میکنه در حالیکه کارتهای VGA قابلیت نمایش یک سری مودهای غیر استاندارد دیگه رو هم داشتند که اینکار از طریق برنامه نویسی مستقیم پورتها امکان پذیر بود. بعد از اوومدن SVGA وضوح های بالاتر مثل 1024 در 768 و همچنین تعداد رنگ بالاتر هم ایجاد شد. متاسفانه هر سازنده کارت گرافیک ساز خودش رو میزد و یک استاندارد واحد برای نمایش گرافیک در این مودهای جدید وجود نداشت. برای همین خیلی از بازیهای اوون موقع همراهشون کلی فایل درایور مختلف بود که بسته به نوع و مدل کارت گرافیک از توابع مناسب اوون کارت استفاده میکردند! بعد از یک مدت با اجماع سازندگان کارتهای گرافیکی و جلوگیری از هرج و مرج و پیچیدگی یک استاندارد وضع کردند به اسم VESA که فکر کنم آخرین ورژنش VESA 2.0 اینا بود. در این استاندارد نحوه رفتن به مودهای گرافیکی جدید و با وضوح و رنگ بالا و همچنین نحوه خواندن و نوشتن روی رم کارت گرافیک و ارتباط با ناحیه مختص گرافیک در رم سیستم که یک نوع Mapping است تعیین شده بود. چون ناحیه 64 کیلوبایتی در حافظه که در آدرس 0xa000 قراردارد جهت خیلی از مودهای گرافیکی VESA کافی نیست و باید انتقال اطلاعات بین این ناحیه و رم کارت گرافیک از طریق یک سری بلوک و پنجره صورت میگرفت. این عملیات تا حدودی کند و پر دردسر هم بود.
    در این استاندارد برخی کارتها قابلیت داشتند به اسم LFB یا Linear Frame Buffer که برای گیم نویسان و کسانی که مایل به عملیات سریع گرافیکی در مودهای وسا بودند بسیار مفید بود. چون به جای عملیاتی مانند Windowing و غیره به وسیله LFB شما میتوانستید درست مانند مودهای قدیمی اطلاعات مربوط به تصویر رو در یک آدرس به صورت کاملا خطی و پشت سرهم بنویسید یا بخونید. سرعتش هم بالا بود.
    برای دوستانی که در داس مایل به استفاده از این مودها هستند هم یک سری کتابخانه برای اینکار هست هم یک تعدادی راه انداز bgi (مال توربوسی و توربو پاسکال) هست که برای کار با این مودها تولید شده اند. اگر مایل هستید خودتون اینکارها رو بکنید مطالعه راهنمای استاندارد VESA 2.0 توصیه میشه که توش همه این موارد رو توضیح داده و میتونید نحوه استفاده از این مودها رو یاد بگیرید.
    اگر بتونم یک سری از برنامه های قدیمی که تحت داس نوشته بودم بودم رو پیدا کنم برای شما میفرستم. در زمان داس این کارهای گرافیکی برای خودش جذابیتهای زیادی داشت.
    ممنون علی
    علی جان سلام.
    خیلی خیلی لطف کردید.
    ممنون.
    اینی که توصیه کردید اسم کتابه؟
    همین راهنمای استاندارد وسا رو میگم.
    من میخوام خودم اینکار رو انجام بدم.
    بهش نیازی ندارم اما کنجکاویش اذیتم میکنه.
    اگه همین روش پنجره پنجره ایش رو هم یادم بدید خودش خیلی عالی میشه.
    ممنون از همه

  37. #37
    سلام
    PC Intern و PC Underground دو کتاب هستند البته در اوونها در مورد VESA چیزی نداره. برای استفاده از قابلیتهای VESA کارت گرافیک شما باید BIOS اوون رو داشته باشه که البته فکر کنم کارتهای جدید همه دارند اگر نداشت باید یک برنامه به اسم UNIVBE رو اجرا کنید تا به صورت نرم افزاری VESA BIOS را شبیه سازی میکنه.
    VESA 2.0 یک راهنما داره که توی اینترنت جستجو کنید حتما پیدا میشه. کتاب نیست یک فایل text است که توش توابع VESA رو توضیح داده.
    راستی یکی از برنامه های قدیمیم رو پیدا کردم ولی باید کمپایلش کنم با Turbo Pascal که متاسفانه رو ویندوز 2000 انگار بورلند پاسکال اجرا نمیشه. اگر کسی راهش رو میدونه بگه تا من ردیفش کنم و بفرستم.
    ممنون علی

  38. #38
    سلام.
    پی سی اینترن رو دارم.
    کمی در مورد وسا نوشته.
    اما چون انگلیسیه و من هم تو این قضیه ضعیف پس ...
    من وقتی تو مد وسا سوییچ مشم یه صفحه میاد که تمیز نیست یعنی توش پیکسلهایی هست که من رسم نکردم.
    البته رزولوشنش احتمالا درسته ولی تعداد رنگ ساپورتیش و طریقه خوندن و نوشتن توش رو نمیدونم.
    میشه این فایلتون رو بدید و کمی توضیح بدید راجع به وسا؟
    یعنی طریقه رسم پیکسلها از روی حافظه.
    و اون ال اف بی رو هم اگه توضیح بدی که دیگه خیلی لطف کردی در حق ما.
    قربانت.
    محمدرضا
    علی جان همون پاسکالشو بده.

    من پاسکالم از سیم بهتره.

  39. #39
    من وقتی تو مد وسا سوییچ مشم یه صفحه میاد که تمیز نیست یعنی توش پیکسلهایی هست که من رسم نکردم.
    دقیق یادم نیست ولی اون زمان که کار می‌کردم اگه اشتباه نکنم باید شماره مد رو با عددی جمع می‌کردیم تا بافر گرافیکی رو پاک کنه. چون در زمان سوییچ به VESA بافر پاک نمیشه محتویاتش اینجوری دیده می‌شه.
    اگه پیدا کردم برات می‌ذارم.

  40. #40
    پیدا کردم، اگه بیت 15 از شماره مد رو ست کنید بافر پاک نمیشه.
    این دو فایل رو هم ببینید تا بیشتر راجع به VESA‌ بدونید.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله PalizeSoftware : چهارشنبه 16 آذر 1384 در 23:29 عصر دلیل: جایگزینی فایل ضمیمه از rar به zip برای اونهایی که مشکل دارند

صفحه 1 از 2 12 آخرآخر

تاپیک های مشابه

  1. مشکل BDI MODE در Grid های پیشرفته
    نوشته شده توسط Fardin_Lord در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: چهارشنبه 09 اسفند 1391, 17:10 عصر
  2. استفاده از وقفه ها در protected mode
    نوشته شده توسط Delphi Coder در بخش توسعه‌ی هسته‌ی سیستم عامل
    پاسخ: 8
    آخرین پست: پنج شنبه 27 دی 1386, 17:20 عصر
  3. اجرا برنامه در Safe Mode
    نوشته شده توسط sabair در بخش برنامه نویسی در 6 VB
    پاسخ: 12
    آخرین پست: پنج شنبه 19 مهر 1386, 11:58 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •