📄 sy9-8259.asm
字号:
DATA SEGMENT
MESS DB 'TPC pci card Interrupt',13,10,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
CLI ;关中断
MOV DX,IOPORT_CENT+68H ;设置TPC卡中断使能
IN AX,DX
OR AX,0900H
OUT DX,AX
MOV AL,71H ;保存原中断向量
MOV AH,35H
INT 21H
PUSH ES
PUSH BX
MOV DX,OFFSET INTT ;设置新中断向量
MOV AX,SEG INTT
MOV DS,AX
MOV AL,71H
MOV AH,25H
INT 21H
IN AL,21H ;读出IMR
;AND AL,71H
AND AL,0FBH
OUT 21H,AL
IN AL,0A1H
AND AL,0FDH
OUT 0A1H,AL
;OUT 21H,AL ;设置新IMR内容
;LEA DX,MESS ;显示提示信息
;MOV AH,09H
;INT 21H
STI
MOV CX,10
START1:
MOV AH,01H
INT 16H
JNZ EXIT
CMP CX,0
JZ EXIT
JMP START1
;CMP COUNTER,0
;JG START1 ;中断10次退出
;CLI ;关中断
EXIT:
IN AL,21H
OR AL,04H
OUT 21H,AL
IN AL,0A1H
OR AL,02H
OUT 0A1H,AL
;POP AX
;OUT 21H ,AL ;恢复IMR
POP BX ;恢复原中断
POP ES
MOV AX,ES
MOV DS,AX
MOV DX,BX
MOV AX,2571H
INT 21H
MOV DX,IOPORT_CENT+68H ;关闭9054的中断
IN AX,DX
AND AX,0F7FFH
OUT DX,AX
MOV AH,4CH
INT 21H
INTT:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MESS
MOV AH,09H
INT 21H
DEC CX
MOV AL,20H
OUT 0A0H,AL
OUT 20H,AL
IRET
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -