Add README.md
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rka / paroff / trigg.ra
1 DEVICE=13*10 / CLOCK DEVICE CODE
2 /
3 DST=7445
4 DAD=7443
5 CAM=7621
6 DLD=DAD CAM
7 DDZ=DST CAM / DOUBLE PRECISION DEPOSIT ZERO
8 /
9 /
10 CLZE=6000!DEVICE / ONE'S IN AC CLEAR CLOCK ENABLE REGISTER
11 CLSK=6001!DEVICE / SKIP IF CLOCK OVERFLOWS OR ST FIRED
12 CLDE=6002!DEVICE /ONE'S IN AC SET CLOCK ENABLE REGISTER
13 CLED=6004!DEVICE / CLOCK ENABLE TO AC
14 CLSA=6005!DEVICE / CLOCK STATUS REG. TO AC AND AC ONES CLEAR STATUS REG.
15 CLBA=6006!DEVICE / CLOCK BUFFER/PRESET TO AC
16 CLCA=6007!DEVICE / COUNT REGISTER TO BUFFER/PRESET AND TO AC
17 /
18 /
19 SETCLK, 0
20 CLA
21 CLED / ENABLE BITS --> AC
22 CLZE / CLEAR ENABLE REGISTER
23 CLA CMA / -1 --> AC
24 CLSA / CLEAR STATUS REGISTER
25 CLA
26 CLAB / STOP THE CLOCK
27 ISZ ONCE / ONCE ONLY ONQUI INITIALISATION
28 JMP AROUND
29 JMS% XONQI+1 / PLACE CLOCK ONTO THE INTERRUPT CHAIN
30 CLSK
31 ADDR INTCLK / CLOCK INTERRUPT ROUTINE
32 AROUND,
33 CLA
34 DCA ONCE
35 SWP / MQ --> AC
36 DCA SAACMQ+1 / SAVE MQ
37
38 DDZ; STRIG / CLEAR SCHMITT TRIGG REGISTERS
39 DCA STRIG+2
40 DDZ; TIME / AND TIME REGISTER
41 TAD SAACMQ+1/ RESTORE MQ
42 MQL
43 TAD CLENAB / CLOCK BITS --> AC
44 CLDE / AND START THE CLOCK
45 CIF CDF
46 JMP% SETCLK
47 /
48 /
49 SAACMQ, 0;0
50 XONQI, ADDR ONQI
51 STRIG, 0;0;0
52 TIME, 0;0 / HOLDS TIME BETWEEN STRIGG INTERRUPTS
53 ONCE, -1
54 /
55 \f/ INTERRUPT SERVICE ROUTINE
56 /
57 INTCLK, 0
58 DST; SAACMQ
59 CAM
60 TAD KSTRIG
61 DCA ITEMP0
62 CLSA
63 DCA CFLAG
64 CLCA
65 CLBA / TIME OF STRIG --> MQ
66 MQL
67 TAD CFLAG
68 CLSA / CLEAR CLOCK STATUS REGISTER
69 CLA / POSSIBLE THERE WAS AN EVENT SO WE
70 TAD CFLAG / ONLY THE EVENTS WE KNOW!
71 SPA CLA / OVERFLOW FLAG?
72 CLA IAC / THEN WE ADD 4096
73 DAD; TIME / MQ HOLDS COUNTER
74 DST; TIME /
75 /
76 CAM
77 TAD CFLAG / CLOCK STATUS --> AC
78 JMP DOTRIG
79 LOP2, ISZ ITEMP0
80 RAR CLL
81 SZL
82 ISZ% ITEMP0
83 DOTRIG, AND P377
84 SZA
85 JMP LOP2
86 JMS% XSERV / SPECIAL TRIGGER SERVICE ROUTINE
87 \1a