*** 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*
160*** AB HIER ABGESCHRIEBENER CODE!
9ae5cfca 161WIDH DEC 36 (2-CHAR) WORDS PER LINE
162CC4 OCT 40000
c08e22bb 163T1 DAC **
164 STX XR
c3e0f81a 165 JST ASUP START TTY
c08e22bb 166 LDA* T1
167 ADD WIDH
9ae5cfca 168 ADD CC4
c08e22bb 169 STA T6
170 IRS T1
171 LDA WIDH
172 TCA
173 STA 0
174T3 LDA* T6
9ae5cfca 175 CAS CS1
c08e22bb 176 JMP *+2
177*
178 JMP T8
179T4 JST T14
180 IRS 0
181 JMP T3
182 LDX XR
183 JMP* T1
184T6 *** **
185*
186T8 LDA 0
187 STA T12
188T10 IRS 0
189 JMP *+2
190 JMP* T1
191 LDA* T6
9ae5cfca 192 CAS CS1
c08e22bb 193 JMP *+2
194 JMP T10
195 LDA T12
196 STA 0
9ae5cfca 197 LDA CS1
c08e22bb 198 JMP T4
9ae5cfca 199CS1 OCT 120240
c08e22bb 200T12 *** **
201*
202T14 DAC **
203 NOP
204 NOP
205 NOP
206 LRL 8
207 OTA 4
208 JMP *-1
209 LLL 8
210 OTA 4
211 JMP *-1
212 JMP* T14
213*
214*
215********************************************************************************
216*
9ae5cfca 217C13 DEC 13
c08e22bb 218T20 DAC **
c3e0f81a 219 JST ASUP START TTY
9ae5cfca 220 LDA C13 CARRIAGE RETURN
c08e22bb 221 OTA 4
222 JMP *-1
223 OTA 4
224 JMP *-1
225 JMP* T20
226*
227********************************************************************************
228*
229T30 DAC **
c3e0f81a 230 JST ASUP START TTY
b903ebdb 231 LDA =10 LINE FEED
232 OTA 4
c08e22bb 233 JMP *-1
234 JMP* T30
235*
236*
237 FIN WRITE OUT LITERALS
238*
239* PUH.....
240 END (O$AL)
241