DATA
CRTC_ARG
DATA
CODE
MAIN
|
SEGMENT
ASSUME
DB
DB
ENDP
SEGMENT
ASSUME
PROC
MOV
MOV
MOV
MOV
MOV
MOV
AND
OR
MOV
MOV
INT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
MOV
XOR |
DS:DATA
38H,28H,2DH,0AH,7FH,06H,64H,70H
02H,01H,06H,07H,00H,00H,00H,00H
CS:CODE
FAR
AX,DATA
DS,AX
AX,40H
ES,AX
BX,10H
AX,WORD PTR ES:[BX]
AX,0CFH
AX,20H
WORD PTR ES:[BX],AX
AX,0004H
10H
AL,3
DX,3BFH
DX,AL
AL,2
DX,3B8H
DX,AL
DX,3B4H
SI,OFFSET CRTC_ARG
CX,16
AH,AH
|
;初始化DS寄存器
;ES寄存器指向BIOS数据区
;BX指向显示卡标志字
;取得显示卡标志字
;设成CGA标志
;设置CGA显示模式4
;允许第二显示页
;允许图形模式
;DX指向HGC卡CRTC索引寄存器
;SI指向CRTC初始化数据表
;设置16个CRTC寄存器
;索引值清0
|
INITCRTC:
MAIN
CODE |
MOV
OUT
INC
LODSB
OUT
INC
DEC
LOOP
CLD
MOV
MOV
MOV
XOR
MOV
REP
MOV
MOV
OUT
MOV
INT
ENDP
ENDS
END
|
AL,AH
DX,AL
DX
DX,AL
AH
DX
INITCRTC
CX,2000H
AX,0B800H
ES,AX
DI,DI
AX,0
STOSW
AL,8AH
DX,3B8H
DX,AL
AH,4CH
21H
MAIN
|
;输出CRTC寄存器索引
;DX指向数据端口
;取得一个CRTC初始化值
;并输出
;索引下一个CRTC寄存器
;DX指向索引端口
;设置全部16个CRTC寄存器
;清除显示缓冲区
;允许显示及APA格式
;结束程序
|