A large commit.
[pdp8.git] / sw / src / life / intr.pa
1 /********************************************************************
2 /********************************************************************
3 / INTERRUPT HANDLING
4
5 PAGE
6
7 IHAND, DCA INTAC / SAVE AC
8 RAR
9 DCA INTLNK / AND LINK
10
11 KSF / SKIP IF KEYBOARD FLAG SET
12 SKP
13 JMP TTIHAN / HANDLE TELETYPE INPUT
14
15 TSF / SKIP IF PRINTER FLAG SET
16 SKP
17 JMP TTOHAN / HANDLE TELETYPE OUTPUT
18
19 HLT / OH, AN UNKNOWN INTERRUPT!
20
21 IEND, CLA CLL / RESTORE LINK
22 TAD INTLNK
23 RAL
24 TAD INTAC / RESTORE AC
25 ION / SWITCH ON INTERRUPT AGAIN
26 JMP I INTR / RETURN FROM INTERRUPT
27
28 / INTERRUPT TIME BACKUPS OF AC AND LINK
29 INTAC, 0 / INTERRUPT BACKUP AC
30 INTLNK, 0 / INTERRUPT BACKUP OF LINK
31
32 /********************************************************************
33 / TELETYPE INPUT HANDLER
34
35 TTIHAN,
36 KRB / READ AND CLEAR FLAG
37 AND K177 / MASK TO 7 BITS - I HATE PARITY!
38 DCA KBCHAR / SAVE FOR USE
39
40 TAD KBCHAR
41 TAD CKDMPS
42 SNA
43 JMS I XDUMPS / SOURCE DUMP (DEBUG)
44
45 CLA CLL
46 TAD KBCHAR
47 TAD CKDMPT
48 SNA
49 JMS I XDUMPT / TARGET DUMP (DEBUG)
50
51 CLA CLL
52 TAD KBCHAR
53 TAD CKDUMP
54 SNA
55 JMS I XDUMP / NORMAL DUMP
56
57 CLA CLL
58 TAD KBCHAR
59 TAD CKKILL
60 SNA
61 JMP I XEXIT
62
63 CLA CLL
64 TAD KBCHAR
65 TAD CKHALT
66 SNA
67 HLT
68
69 JMP IEND
70
71 K177, 177
72 KBCHAR, 0
73
74 / COMMAND KEYS
75
76 CKDUMP, -104 / D
77 CKDMPS, -123 / S
78 CKDMPT, -124 / T
79
80 CKKILL, -3 / CTRL-C
81 CKHALT, -10 / CTRL-H
82