c08e22bb |
1 | * (O$AL) - TYPING ROUTINES |
2 | * |
3 | * |
4 | * PROGRAM TITLE: O$AL (O$AL,O$AE,O$AH,O$AC,O$AF) |
5 | * ASR TYPING ROUTINES |
6 | * |
7 | * REVISIONS: |
1cdd230d |
8 | * 1.0 (5.2.2005) - FIRST STABLE VERSION |
9 | * 1.1 (10.2.2005) - ADDED FORGOTTEN OCP COMMANDS |
c08e22bb |
10 | * |
11 | * AUTHOR |
12 | * |
13 | * PHILIPP HACHTMANN |
14 | * |
15 | * |
16 | * PURPOSE |
17 | * |
18 | * ASR OUTPUT ROUTINES FOR LISTING |
19 | * |
20 | * |
21 | * RESTRICTIONS |
22 | * |
23 | * THESE ARE NOT THE ORIGINAL |
24 | * |
25 | * |
26 | * STORAGE |
27 | * |
28 | * 310 (OCTAL) |
29 | * 200 (DECIMAL) |
30 | * |
31 | * |
32 | * |
33 | ********************************************************************** |
34 | SUBR O$AL,OSAL TYPE A COMPLETE LINE WITH CR/LF, HEADING ETC. |
35 | SUBR O$AH,OSAH INITIALISE HEADING |
36 | SUBR O$LL,OSAL TYPE A COMPLETE LINE WITH CR/LF, HEADING ETC. |
37 | SUBR O$HH,OSAH INITIALISE HEADING |
38 | SUBR O$AP,T1 TYPE A LINE, NO CR |
39 | SUBR O$AC,T20 RETURN THE CARRIAGE |
40 | SUBR O$AF,T30 ADVANCE TO NEXT LINE |
41 | SUBR O$AE,FF EJECT PAGE |
42 | * |
43 | SUBR O$A1,HDS EMPTY LINES BETWEEN TOP OF PAGE AND HEADING |
44 | SUBR O$A2,SPC EMPTY LINES BETWEEN HEADING AND MAIN TEXT |
45 | SUBR O$A3,PGS PURE TEXT LINES PER PAGE |
46 | SUBR O$A4,WIDH PURE TEXT LINES PER PAGE |
47 | SUBR O$A5,SFF SKIPS TO SIMULATE FORM FEED |
48 | ********************************************************************** |
49 | REL RELOCATABLE MODE |
50 | ********************************************* |
51 | * CONFIGURATION |
52 | HDS DEC 1 EMPTY LINES BEFORE HEADING |
53 | SPC DEC 2 EMPTY LINES BETWEEN HEADING AND TEXT |
54 | PGS DEC 50 DATA LINES PER PAGE (WITHOUT HEADING ETC.) |
55 | WIDH DEC 36 (2-CHAR) WORDS PER LINE |
56 | SFF DEC 4 SKIPS TO SIMULATE FORM FEED |
57 | * |
58 | * |
59 | OSAL DAC ** |
60 | STX XR |
61 | LDA* OSAL BUFFER ADDRESS |
62 | STA BUF1 STORE FOR LATER USE |
63 | LDA LINE LINE COUNTER |
64 | SZE STILL LINES LEFT? |
65 | JMP PGOK NO NEW PAGE |
66 | JST FF |
67 | JST NP NEW PAGE REQUIRED |
68 | PGOK IRS LINE BUMP COUNTER |
69 | NOP |
70 | JST T1 PRINT THE LINE |
71 | BUF1 DAC ** ADDRESS OF LINE BUFFER |
72 | JST T20 CARRIAGE RETURN |
73 | JST T30 LINE FEED |
74 | IRS OSAL MAKE RETURN ADDRESS |
75 | LDX XR |
76 | JMP* OSAL RETURN |
77 | * |
78 | * |
79 | OSAH DAC ** INIT HEADING |
80 | STX XR |
81 | LDA* OSAH |
82 | STA P1 POINTER TO SOURCE |
83 | LDA HBUP |
84 | STA P2 POINTER TO TARGET |
85 | LDA WIDH LINE LENGTH |
86 | TCA COMPLEMENT |
87 | STA CNT |
88 | HL1 LDA* P1 |
89 | STA* P2 |
90 | IRS P1 |
91 | IRS P2 |
92 | IRS CNT READY? |
93 | JMP HL1 NO |
94 | JST NP INIT PAGE |
95 | IRS OSAH ADJUST ADDRESS |
96 | LDX XR |
97 | JMP* OSAH RETURN |
98 | ******************************************************************************** |
99 | * |
1cdd230d |
100 | * |
c08e22bb |
101 | NP DAC ** PREPARE NEW PAGE |
102 | LDA PGS LOAD LINES PER PAGE |
103 | TCA NEGATE |
104 | STA LINE STORE PAGE COUNTER |
105 | LDA HDS |
106 | SNZ |
107 | JMP NHDS NO SPACE BEFORE HEADING |
108 | TCA |
109 | STA CNT |
110 | S1 JST T30 |
111 | IRS CNT |
112 | JMP S1 |
113 | NHDS JST T1 TYPE HBUF |
114 | HBUP DAC HBUF ADDRESS OF HEADER BUFFER |
115 | JST T20 CARRIAGE RETURN |
116 | LDA SPC NUMBER OF SPACES BEFORE TEXT |
117 | TCA NEGATE |
118 | STA CNT TO COUNTER |
119 | SP1 JST T30 LINE FEED |
120 | IRS CNT DEC COUNTER, SKIP IF READY |
121 | JMP SP1 NOT READY |
122 | JMP* NP |
123 | * |
124 | ******************************************************************************** |
125 | * |
126 | **** FORM FEED ROUTINE |
127 | FF DAC ** |
128 | LDA SFF |
129 | TCA |
130 | STA CNT |
131 | LDA =10 |
132 | FF1 OTA 4 SEND LINE FEED |
133 | JMP *-1 WAIT |
134 | IRS CNT |
135 | JMP FF1 |
136 | JMP* FF RETURN |
137 | * |
138 | * |
139 | XR DEC 0 SAVED X REGISTER |
140 | CNT DEC 0 |
141 | HBUF BCI 20, |
142 | BCI 20, |
143 | BCI 20, |
144 | P1 DEC 0 POINTER 1 |
145 | P2 DEC 0 POINTER 2 |
146 | LINE DEC -40 NEG LINES LEFT ON PAGE |
147 | * |
148 | * |
149 | ******************************************************************************** |
150 | * |
151 | *** AB HIER ABGESCHRIEBENER CODE! |
152 | T1 DAC ** |
153 | STX XR |
1cdd230d |
154 | OCP '104 START TTY |
c08e22bb |
155 | LDA* T1 |
156 | ADD WIDH |
157 | ADD ='40000 |
158 | STA T6 |
159 | IRS T1 |
160 | LDA WIDH |
161 | TCA |
162 | STA 0 |
163 | T3 LDA* T6 |
164 | CAS ='120240 |
165 | JMP *+2 |
166 | * |
167 | JMP T8 |
168 | T4 JST T14 |
169 | IRS 0 |
170 | JMP T3 |
171 | LDX XR |
172 | JMP* T1 |
173 | T6 *** ** |
174 | * |
175 | T8 LDA 0 |
176 | STA T12 |
177 | T10 IRS 0 |
178 | JMP *+2 |
179 | JMP* T1 |
180 | LDA* T6 |
181 | CAS ='120240 |
182 | JMP *+2 |
183 | JMP T10 |
184 | LDA T12 |
185 | STA 0 |
186 | LDA ='120240 |
187 | JMP T4 |
188 | T12 *** ** |
189 | * |
190 | T14 DAC ** |
191 | NOP |
192 | NOP |
193 | NOP |
194 | LRL 8 |
195 | OTA 4 |
196 | JMP *-1 |
197 | LLL 8 |
198 | OTA 4 |
199 | JMP *-1 |
200 | JMP* T14 |
201 | * |
202 | * |
203 | ******************************************************************************** |
204 | * |
205 | T20 DAC ** |
1cdd230d |
206 | OCP '104 START TTY |
c08e22bb |
207 | LDA =13 |
208 | OTA 4 |
209 | JMP *-1 |
210 | OTA 4 |
211 | JMP *-1 |
212 | JMP* T20 |
213 | * |
214 | ******************************************************************************** |
215 | * |
216 | T30 DAC ** |
1cdd230d |
217 | OCP '104 START TTY |
c08e22bb |
218 | LDA =10 |
219 | OTA 4 |
220 | JMP *-1 |
221 | JMP* T30 |
222 | * |
223 | * |
224 | FIN WRITE OUT LITERALS |
225 | * |
226 | * PUH..... |
227 | END (O$AL) |
228 | |