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