ностальгии псто
Aug. 2nd, 2018 06:48 pmЕсли поднапрячься и начать вспоминать, что я забыл из жизни программиста в начале 90-х, то какие-то вещи всплывают:
- оптимизация CONFIG.SYS для освобождения базовой памяти
- близкие и далекие указатели в Turbo C
- XOR AX, AX быстрее, чем MOV AX, 0
- int13h и int21h
Но есть штуки, которые я сам никогда бы не вспомнил, уверен, сгинувшие в пучине, и только если вдруг где-то встречаю упоминание, то сначала неловкость такая, было же что-то такое, было... и потом - пневмопочтой из этой самой пучины в сознательную память - боже мой, да, было, ДА -
https://en.wikipedia.org/wiki/Mode_X
Какое это было прекрасное извращение!
Вместо обычнного разрешения 320x200 в нем делался виртуальный экран в 4 раза больше, так, что реальный экран можно внутри этого виртуального перемещать. Но как писать в память виртуального экрана, если она занимает до 256kb, а в один сегмент 16-битного процессора умещается только 64kb? Делим виртуальный экран на четыре "пласта": первый содержит только биты 0,1 каждого пикселя, второй биты 2,3 итд. В любой данный момент времени 64kb экранного буфера подключены к одному из пластов. Каждый байт держит цвет сразу четырей пикселей, но только два бита из восьми для каждого пикселя. Вот тут объясняется подробнее, если неясно: https://web.archive.org/web/20160414072210/http://fly.srk.fer.hr/GDM/articles/vgamodex/vgamx1.html
Какой это был простор для мысли оптимизатора!
- оптимизация CONFIG.SYS для освобождения базовой памяти
- близкие и далекие указатели в Turbo C
- XOR AX, AX быстрее, чем MOV AX, 0
- int13h и int21h
Но есть штуки, которые я сам никогда бы не вспомнил, уверен, сгинувшие в пучине, и только если вдруг где-то встречаю упоминание, то сначала неловкость такая, было же что-то такое, было... и потом - пневмопочтой из этой самой пучины в сознательную память - боже мой, да, было, ДА -
https://en.wikipedia.org/wiki/Mode_X
Какое это было прекрасное извращение!
Вместо обычнного разрешения 320x200 в нем делался виртуальный экран в 4 раза больше, так, что реальный экран можно внутри этого виртуального перемещать. Но как писать в память виртуального экрана, если она занимает до 256kb, а в один сегмент 16-битного процессора умещается только 64kb? Делим виртуальный экран на четыре "пласта": первый содержит только биты 0,1 каждого пикселя, второй биты 2,3 итд. В любой данный момент времени 64kb экранного буфера подключены к одному из пластов. Каждый байт держит цвет сразу четырей пикселей, но только два бита из восьми для каждого пикселя. Вот тут объясняется подробнее, если неясно: https://web.archive.org/web/20160414072210/http://fly.srk.fer.hr/GDM/articles/vgamodex/vgamx1.html
Какой это был простор для мысли оптимизатора!