Через 0x4000 она обращается не к видеопамяти, а к данным. Сделано это, чтобы выгадать 2-3 байта ;) То же самое относится и к использованию значений регисторв ax,si,di по умолчанию.
Все идет хорошо, если запущенно мало ДОС-прог и адреса 4000h:xxxx никем не заняты. Вот у меня свободные адреса начинаются уже с 1414h:
Addr. Total bytes Program or device driver
----- ----------- --------------------------
020Fh 18,048 Device=DISPLAY
0678h 1,152 Device=HIMEM
06C1h 2,848 Device=IFSHLP
0774h 816 Device=SETVER
07A8h 544 IFS=
07CBh 608 IFS=
0DB8h 6,928 KEYB
0F7Ch 13,376 WINICE
12B0h 3,808 win
1391h 4,896 vmm32
1414h 569,008 <largest free area>
---
А если будет запущено больше ДОСовских прог и что-нибудь попадет на 4000h:xxxx, то эта демка мигом все подвесит :)
|