Ôóíêöèè ââîäà-âûâîäà äèñïëåÿ - ÷àñòü 4
ìîíîõðîìíîãî äèñïëåÿ, âû ñìîæåòå ñäåëàòü ýòî, çàïèñàâ íîâûå ñèìâîëû
èëè àòðèáóòû â áóôåð äèñïëåÿ ïî àäðåñó 0B000H. Ýòî íå èçìåíèò
ïîëîæåíèÿ êóðñîðà, íî èçìåíèò êàðòèíêó.  ýòîì ñëó÷àå åñëè âû
õîòèòå èçìåíÿòü òåêñò îäíîâðåìåííî íà öâåòíîì è ìîíîõðîìíîì
äèñïëåÿõ, âû äîëæíû íàïèñàòü ñîáñòâåííóþ ïðîãðàììó îáñëóæèâàíèÿ
ìîíîõðîìíîãî äèñïëåÿ. Èëè âû ìîæåòå âûÿñíèòü, êàêèå çíà÷åíèÿ íàäî
èçìåíèòü â ïîëå äàííûõ BIOS, ÷òîáû êóðñîð ïåðåøåë íàçàä, è
âûïîëíèòü íóæíûå äåéñòâèÿ, íå èíèöèàëèçèðóÿ àäàïòåð êàæäûé ðàç.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:06:26
Ôèã. 9.7 Ïåðåêëþ÷åíèå íà öâåòíîé äèñïëåé Page 1-1
PAGE ,132
TITLE Ôèã. 9.7 Ïåðåêëþ÷åíèå íà öâåòíîé äèñïëåé
0000 STACK SEGMENT STACK
0000 0040[ DW 64 DUP (?)
????
]
0080 STACK ENDS
0000 ABS0 SEGMENT AT 0
0410 ORG 410H
0410 EQUIP_FLAG LABEL BYTE ; Áóäåò èçìåíÿòüñÿ òîëüêî ìëàäøèé
0410 ABS0 ENDS ; áàéò ïîëÿ ôëàãîâ
0000 CODE SEGMENT
ASSUME CS:CODE,DS:ABS0
COLOR PROC FAR
0000 1E PUSH DS ; Àäðåñ âîçâðàòà â ÄÎÑ
0001 2B C0 SUB AX, AX
0003 50 PUSH AX
0004 8E D8 MOV DS, AX ; Çàãðóçêà àäðåñà ñåãìåíòà ABS0 â ðåãèñòð DS
0006 80 26 0410 R CF AND EQUIP_FLAG, 11001111b ; Óêàçàíèå íà öâåòíîé äèñïëåé êàê
000B 80 0E 0410 R 20 OR EQUIP_FLAG, 00100000b ; íà îñíîâíîé (ðåæèì 80*25)
0010 B8 0003 MOV AX, 3
0013 CD 10 INT 10H ; Ñáðîñ äèñïëåÿ
0015 C3 RET ; Âîçâðàò â ÄÎÑ
COLOR ENDP
0016 CODE ENDS
END
Ôèã. 9.7 Ïåðåêëþ÷åíèå íà öâåòíîé äèñïëåé
Ñîäåðæàíèå Íàçàä Âïåðåä