Во времена оны на Корвете бродили две игрушки в текстовом режиме, из далеких времен CP/M
Catchum - PacMan
Ladder - бегалка прыгалка, из нее в итоге на корвете сделали Jamper, это и есть Ladder но в граф режиме.
но они были расчитаны на экран 80x25, и на 64x16 явно не влазили ...
потом появились "драйвера" 25.com и 32.com
которые делали 6 пиксельный экаран 83x25 или 83x32
и как-то даже пробежали правильно сконфигуренные Ladder и Catchum
но убежали они ....
в теме рядом, Максагор недавно выложил конфигураторы для них, и я решил воскресить эти игры.
Запустил конфигуратор, он хочет управляющи коды, стандартные корветовские не сработали
взял иду и полез смотреть эти "драйвера", оказалось интересно, но про это позже
в общем такое впечатление что "драйвер" делался под эти игрушки
ибо из управляющи кодов у него ТОЛЬКО
CR,LF,BS,BEEP,
Inversion On,Inversion OFF (криво работающие) (но забавно реализованые) (ESC 'a', ESC 'b')
Cursor On, Cursor OFF (ESC ':', ESC ';')
CLS - 0x1A
GOTOXY (ESC '=' ROW+0x20,Column+0x20) или ESC 'T'
и всё
но этим играм больше и не надо, только CLS & GOTOXY
в аттачи образ диска
сначала надо запустить 25.com
потом catchum или ladder
32.com я не включил, ибо как не странно оно глючит.
----
забавное про "драйвера"
работает он не шибко быстро, особенно скрол экрана, но к сожалению выхода то и нет особого,
ибо это не просто LDIR области,
сначала надо "стереть" то место куда будет скопирована другая строка
а только потом ее записать
в результате скролл экрана выливается в 16k+16k записи и 16к чтений
на самом деле чуть меньше, но не суть важно тут, всё равно дофига.
это полные версии биосов, а не драйвера в прямом смысле
стандартный биос ходит в ПЗУ для вывода символа, а этот сам рисует
что они выкинули - не смотрел, но можно кое что выкинуть, там кода не шибко много.
самое главное, где держать знакогенератор, это уже существенно
2к как минимум (256*8 = 2048), в памяти его нет ...
вот как это выглядит на экране
а вот что на самом деле в видеопамяти
один слой (синий) - это то что на экране
остальные слои выключены, тут это АЦЗУ (текстовые экран) и второй слой
а во втором слое и лежит 4 копии знакогенератора
4 - потому что фонт 6 битный, и для быстрого вывода он сдвинут
в нужное место,
и каждый байт знакогенератора занимает 2 для скорости.
плюс в первых 8 байтах еще хранится 4 "маски"
он используется для вывода курсора и для стерания (там нужны 1 в тех битах которые стирать)
Код:
00000000 11111111
4000: 111111.. ........
4002: ......11 1111....
4004: 11...... ....1111
4008: ..111111 ........
это небольшая оптимизация, ибо в теории должно быть так
00000000 11111111 22222222
111111.. ........ ........
......11 1111.... ........
........ ....1111 11......
........ ........ ..111111
в итоге сам вывод - достаточно быстрый, особенно если отключить курсор
сами .com файлы, программируют LUT, готовят эти 4 фонта
перегружают биос и выходят.
разница в 25.com и 32.com почти только в 25 y*10, в 32- y*8
фонты то одни
есть еще мелкие отличия и баги, но это уже мелочи.