Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | FIELD1 PCHAR\r |
2 | JA #ST / JUMP TO FPP ROUTINE'S START\r | |
3 | TEXT +PCHAR +\r | |
4 | \r | |
5 | EXTERN #RETRN / NEEDED FOR TRAP3 RETURN\r | |
6 | EXTERN ONQI / FIDDLE SOMETHING INTO SKIP CHAIN\r | |
7 | EXTERN #DISMS / DISMISS JUMP LIST\r | |
8 | EXTERN #HANG / HANG ROUTINE\r | |
9 | \r | |
10 | TOCHR=4 / LOCATION OF TTY STATUS WORD\r | |
11 | / POSITIVE=CHARACTER IN QUEUE\r | |
12 | / NEGATIVE=BUSY\r | |
13 | / ZERO=IDLE\r | |
14 | \r | |
15 | TCF=6042 / CLEAR TELEPRINTER FLAG\r | |
16 | TSF=6041 / TEST TELEPRINTER FLAG\r | |
17 | \r | |
18 | / **************************************************************\r | |
19 | / PDP-8 CODE\r | |
20 | \r | |
21 | PC8, CLA CLL\r | |
22 | \r | |
23 | CDF 0 \r | |
24 | SWAIT, CLA CLL / WAIT FOR SYSTEM TO BE DONE WITH TTY\r | |
25 | TAD% PTOCHR / TELEPRINTER STATUS\r | |
26 | SZA\r | |
27 | JMP SWAIT / KEEP ON WAITING\r | |
28 | CDF 10 / BACK TO DATA FIELD 1\r | |
29 | \r | |
30 | TAD FIRST / FIRST CALL?\r | |
31 | SZA \r | |
32 | JMP NOTFST\r | |
33 | \r | |
34 | ISZ FIRST\r | |
35 | \r | |
36 | JMS% PONQI+1 / REGISTER OUR ROUTINE TO SKIP CHAIN\r | |
37 | TSF / SKIP TO BE USED\r | |
38 | ADDR HANDLE / POINTER TO OUR HANDLER \r | |
39 | \r | |
40 | TAD DISMIS+1 / SET UP TO CALL HANG\r | |
41 | DCA HLOC\r | |
42 | \r | |
43 | \r | |
44 | NOTFST, IOF / THIS SHOULD BE DONE WITHOUT INTERRUPT!\r | |
45 | \r | |
46 | TAD CHAR / LOAD CHARACTER TO PRINT\r | |
47 | TLS / AND PRINT IT\r | |
48 | \r | |
49 | ISZ ACTIVE / ENABLE OUR INT HANDLER\r | |
50 | \r | |
51 | CIF 0 / #HANG IS IN FIELD 0\r | |
52 | JMS% HANG+1\r | |
53 | HLOC, 0 / LOCATION WHERE #HANG COUPLES INTO\r | |
54 | \r | |
55 | ION / INTERRUPT BACK ON\r | |
56 | \r | |
57 | CIF CDF 0\r | |
58 | JMP% RET+1 / GO HOME TO FPP LAND\r | |
59 | \r | |
60 | /***************\r | |
61 | \r | |
62 | HANDLE, 0 / OUR INTERRUPT HANDLER, CALLED FROM FIELD 1\r | |
63 | CLA CLL\r | |
64 | TAD ACTIVE\r | |
65 | SNA / ACTIVE FLAG?\r | |
66 | JMP% HANDLE / NOT ACTIVE, LEAVE INTERRUPT UNPROCESSED\r | |
67 | CLA\r | |
68 | DCA ACTIVE / NOW INACTIVE\r | |
69 | TCF / CLEAR TTY FLAG\r | |
70 | CIF CDF 0\r | |
71 | JMP% DISMIS+1 / INT PROCESSED\r | |
72 | \r | |
73 | /***************\r | |
74 | \r | |
75 | \r | |
76 | RET, ADDR #RETRN\r | |
77 | PONQI, ADDR ONQI / PUT SOMETHING ONTO SKIP CHAIN\r | |
78 | HANG, ADDR #HANG\r | |
79 | DISMIS, ADDR #DISMS\r | |
80 | \r | |
81 | PTOCHR, TOCHR\r | |
82 | FIRST, 0 / FLAG FOR INITAL SETUP\r | |
83 | ACTIVE, 0 / FLAG TO INACTIVATE INT HANDLER\r | |
84 | #CHAR, 0;0 / HERE GOES THE 3-WORD FROM FPP\r | |
85 | CHAR, 0 / THAT'S WHAT WE PRINT\r | |
86 | \r | |
87 | \r | |
88 | \r | |
89 | / **************************************************************\r | |
90 | / FPP-12 CODE\r | |
91 | \r | |
92 | BASE 0 / STAY ON THE CALLER'S BASE\r | |
93 | #PCBAS, ORG .+3 / OUR BASE PAGE \r | |
94 | #PTR, ORG .+3 / POINTER\r | |
95 | #ARGP1, ORG .+3\r | |
96 | #XR, ORG .+10 / INDEX REGISTERS\r | |
97 | \r | |
98 | #ST, / START OF FPP ROUTINE\r | |
99 | STARTD / 24 BIT DATA ONLY\r | |
100 | \r | |
101 | 0210 /FLDA 30 / GET RETURN JA\r | |
102 | FSTA# #GOBAK / PUT TO RETURN LOCATION\r | |
103 | \r | |
104 | 0200 /FLDA 0 / JA AROUND ARGUMENTS\r | |
105 | \r | |
106 | BASE #PCBAS\r | |
107 | SETX #XR / USE OWN INDEX REGISTERS\r | |
108 | SETB #PCBAS / OUR BASE\r | |
109 | \r | |
110 | FSTA #PTR / TO POINTER\r | |
111 | \r | |
112 | LDX 0,1 / 0 TO INDEX REG 1\r | |
113 | \r | |
114 | FLDA% #PTR,1+ / LOAD FROM (#PTR)+INDEX1 \r | |
115 | FSTA #ARGP1 / FIRST ARGUMENT POINTER\r | |
116 | \r | |
117 | STARTF / BACK TO FLOATING POINT MODE\r | |
118 | FLDA% #ARGP1 / LOAD THE ACTUAL ARGUMENT TO FAC.\r | |
119 | ALN 0 / MAKE INTEGER OF IT\r | |
120 | FSTA CHAR / STORE INTO PDP-8 ROUTINE'S BUFFER\r | |
121 | \r | |
122 | TRAP3 PC8 / FIRE UP PDP-8\r | |
123 | \r | |
124 | STARTF / BACK TO 3-WORD MODE (STILL NEEDED?)\r | |
125 | #GOBAK, 0;0 / RETURN JUMP (FILLED IN ABOVE) \r | |
126 | \r | |
127 | END\r |