Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | SECT PCHAR \r |
2 | JA #ST / JUMP IN\r | |
3 | TEXT +PCHAR +\r | |
4 | \r | |
5 | SECT8 MUH\r | |
6 | FNOP\r | |
7 | TEXT +PCHAR8+\r | |
8 | \r | |
9 | EXTERN #RETRN\r | |
10 | \r | |
11 | \r | |
12 | / PDP-8 SUBROUTINE!\r | |
13 | \r | |
14 | TCF=6042 / CLEAR TELEPRINTER FLAG\r | |
15 | TOCHR, 4 / LOCATION OF TTY STATUS\r | |
16 | / POSITIVE=CHARACTER IN QUEUE\r | |
17 | / NEGATIVE=BUSY\r | |
18 | / ZERO=IDLE\r | |
19 | \r | |
20 | PC8, CLA CLL\r | |
21 | \r | |
22 | RDF\r | |
23 | DCA DFIELD / SAVE DATA FIELD\r | |
24 | \r | |
25 | CDF 0 \r | |
26 | BLOOP, CLA CLL\r | |
27 | TAD% TOCHR / TELEPRINTER STATUS\r | |
28 | SZA\r | |
29 | JMP BLOOP \r | |
30 | CLA CLL CML RAR\r | |
31 | DCA% TOCHR / SET BUSY\r | |
32 | \r | |
33 | TAD DFIELD / DATA FIELD RESTORATION\r | |
34 | TAD CDFXX\r | |
35 | DCA .+1\r | |
36 | CDF 0 / WILL BE OVERWRITTEN\r | |
37 | \r | |
38 | TAD CHAR2 / LOAD CHARACTER TO PRINT\r | |
39 | \r | |
40 | TLS / OUT!\r | |
41 | \r | |
42 | / TSF\r | |
43 | / JMP .-1 / WAIT TO BE DONE WITH CHARACTER\r | |
44 | \r | |
45 | \r | |
46 | CIF CDF 0\r | |
47 | JMP% RETURN+1\r | |
48 | \r | |
49 | DFIELD, 0\r | |
50 | CDFXX, CDF 0 / INSTRUCTION TEMPLATE\r | |
51 | RETURN, ADDR #RETRN\r | |
52 | CHAR, 1234\r | |
53 | CHAR1, 4321\r | |
54 | CHAR2, 1234\r | |
55 | 0;0;0;0;0;0;0;0\r | |
56 | \r | |
57 | \r | |
58 | /FPP code here; using the rest of the SECT8 page.\r | |
59 | \r | |
60 | \r | |
61 | \r | |
62 | / **************************************************************\r | |
63 | \r | |
64 | BASE 0\r | |
65 | \r | |
66 | / PCHAR(CHAR)\r | |
67 | \r | |
68 | \r | |
69 | #PCBAS, 7007\r | |
70 | 7017\r | |
71 | 7027\r | |
72 | B1, 7107\r | |
73 | 7117\r | |
74 | 7127\r | |
75 | B2, 7207\r | |
76 | 7217\r | |
77 | 7227\r | |
78 | B3, 7307\r | |
79 | 7317\r | |
80 | 7327\r | |
81 | B4, 7407\r | |
82 | 7417\r | |
83 | 7427\r | |
84 | B5, 7507\r | |
85 | 7517\r | |
86 | 7527\r | |
87 | PTR,\r | |
88 | B6, 7607\r | |
89 | 7617\r | |
90 | 7627\r | |
91 | ARGP1,\r | |
92 | B7, 7607\r | |
93 | 7617\r | |
94 | 7627\r | |
95 | \r | |
96 | XR, ORG .+30\r | |
97 | \r | |
98 | \r | |
99 | #ST, / START OF FPP ROUTINE\r | |
100 | STARTD / 24 BIT DATA ONLY\r | |
101 | \r | |
102 | 0210 /FLDA 30 / GET RETURN JA\r | |
103 | FSTA #GOBAK / PUT TO RETURN LOCATION\r | |
104 | \r | |
105 | 0200 /FLDA 0 / JA AROUND ARGUMENTS\r | |
106 | \r | |
107 | BASE #PCBAS\r | |
108 | SETX XR / USE OWN INDEX REGISTERS\r | |
109 | SETB #PCBAS / OUR BASE\r | |
110 | \r | |
111 | FSTA #PCBAS / TO POINTER\r | |
112 | \r | |
113 | LDX 0,1 / 0 TO INDEX REG 1\r | |
114 | \r | |
115 | FLDA% #PCBAS,1+ / LOAD FROM #PCBAS+INDEX1 \r | |
116 | FSTA ARGP1 / ADDRESS OF ARGUMENT 1\r | |
117 | \r | |
118 | STARTF \r | |
119 | FLDA% ARGP1 / NOW WE HAVE ARGUMENT 1\r | |
120 | ALN 0 / MAKE INTEGER OF IT\r | |
121 | FSTA CHAR\r | |
122 | \r | |
123 | TRAP3 PC8\r | |
124 | \r | |
125 | STARTF / BACK TO 3-WORD MODE\r | |
126 | JA #GOBAK / RETURN JUMP\r | |
127 | #GOBAK, 0;0 / RETURN JUMP TARGET \r | |
128 | \r | |
129 | \r | |
130 | \r | |
131 | \r | |
132 | END\r |