Îáðàáîòêà ïðåðûâàíèé îò ïîñëåäîâàòåëüíîãî
Ôèã. 8. 17 Îáðàáîòêà ïðåðûâàíèé îò ïîñëåäîâàòåëüíîãî êàíàëà (íà÷àëî)
0000 0040[ DW 64 DUP (?)
????
]
0080 STACK ENDS
0000 CODE SEGMENT
ASSUME CS:CODE
0000 0049 R BUFFER_POINTER DW BUFFER
0002 SET_INTERRUPT PROC FAR
0002 2B C0 SUB AX,AX
0004 8E D8 MOV DS,AX
ASSUME DS:ABS0 ; Àäðåñàöèÿ ïî ñåãìåíòíîìó ðåãèñòðó DS
; â îáëàñòü âåêòîðîâ ïðåðûâàíèé
;----- Óñòàíîâêà ïðåðûâàíèÿ
0006 C7 06 002C R 0024 R MOV ASYNC_INTERRUPT,offset INT_HANDLER
000C 8C 0E 002C R MOV ASYNC_INTERRUPT,CS ; Çàíåñåíèå âåêòîðà ïðåðûâàíèÿ
0010 BA 03F9 MOV DX,03F9H ; Ðåãèñòð ðàçðåøåíèÿ ïðåðûâàíèé
0013 B0 04 MOV AL,04H ; Ïðåðûâàíèå ïî ïðèåìó èç êàíàëà
0015 EE OUT DX,AL
0016 E4 21 IN AL,21H ; Ðåãèñòð ìàñêè ïðåðûâàíèé 8259
0018 24 F7 AND AL,0F7H ; Çàíåñåíèå 0 â ðàçðÿä 3
001A E6 21 OUT 21H,AL ; Ïðåðûâàíèå íå ìàñêèðóåòñÿ
001C BA 03FC MOV DX,3FCH ; Ðåãèñòð óïðàâëåíèÿ ìîäåìîì
001F B0 08 MOV AL,08H ; ðàçðÿä OUT2
0021 EE OUT DX,AL
0022 EB FE HERE: JMP HERE ; Êîíåö çàäàíèÿ ðåæèìà ðàáîòû ïîñëåäîâàòåëü-
Ñîäåðæàíèå Íàçàä Âïåðåä