گرافیک مستقیم VGA
برنامه وارد حالت گرافیکی کلاسیک 320×200 با 256 رنگ میشود و بدون استفاده از کتابخانههای سنگین، مستقیماً با حافظه تصویر و palette کار میکند.
این برنامه یک دموی کوچک DOS/VGA است که با وجود حجم بسیار کم، صحنهای چشمگیر ایجاد میکند: زمینهای با رنگهای پلاسمایی و افق آبی، به همراه کرهای که از توپهای کوچک تشکیل شده و به شکل سهبعدی میچرخد.
جذابیت پروژه در تضاد بین اندازه فایل و خروجی تصویری آن است. فایل اجرایی TPSPHERE.COM حدود 917 بایت حجم دارد، اما هنگام اجرا تصویری تولید میکند که از یک فایل COM کوچک انتظار نمیرود؛ نمونهای زیبا از برنامهنویسی فشرده و مستقیم با اسمبلی.
نام نمایشی پروژه Tiny Plasma Sphere است و نام فایل اجرایی DOS آن TPSPHERE.COM در نظر گرفته شده است.
خروجی برنامه یک صحنهی گرافیکی زنده است؛ ترکیبی از رنگهای متحرک، افق آبی و یک کره ساختهشده از تعداد زیادی توپ کوچک که با تغییر زاویه دید، حس عمق و چرخش ایجاد میکند.
برنامه وارد حالت گرافیکی کلاسیک 320×200 با 256 رنگ میشود و بدون استفاده از کتابخانههای سنگین، مستقیماً با حافظه تصویر و palette کار میکند.
رنگهای پایین تصویر و افق با جدولهای محاسبهشده و تغییرات palette شکل میگیرند. نتیجه، حس حرکت و عمق است؛ با کدی بسیار کوچک و فشرده.
نقاط روی کره محاسبه و چرخانده میشوند، سپس بر اساس عمق مرتب میشوند تا توپهایی که عقبتر هستند قبل از توپهای جلوتر رسم شوند و حس سهبعدی بهتر دیده شود.
این پروژه نمونهای از سبک برنامهنویسی بسیار فشرده در محیط DOS است؛ جایی که برنامه تقریباً همه چیز را خودش میسازد: جدولهای کمکی، رنگها، بافر تصویر و محاسبات لازم برای چرخش.
.COM با مدل TINYدر برنامهنویسی امروزی معمولاً برای چنین خروجیای به runtime، library، asset و فایلهای جانبی زیادی نیاز داریم. اما این برنامه تقریباً همه چیز را در چند صد بایت کد و داده فشرده کرده است.
همین موضوع باعث میشود پروژه برای علاقهمندان Assembly، DOS demo scene، گرافیک low-level و بهینهسازی کد بسیار جالب باشد. اینجا زیبایی خروجی فقط از گرافیک آماده نمیآید؛ از محاسبه، محدودیت، خلاقیت و کنترل مستقیم سختافزار میآید.
بسته دانلودی این پروژه آماده است و شامل فایل اجرایی TPSPHERE.COM، سورس اسمبلی، تصویر خروجی و توضیحات کوتاه برای اجرای دمو است.