*** 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:
1cdd230d 8* 1.0 (5.2.2005) - FIRST STABLE VERSION
c3e0f81a 9* 1.1 (10.2.2005) - ADDED FORGOTTEN ASR START SEQUENCE
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
52HDS DEC 1 EMPTY LINES BEFORE HEADING
53SPC DEC 2 EMPTY LINES BETWEEN HEADING AND TEXT
54PGS DEC 50 DATA LINES PER PAGE (WITHOUT HEADING ETC.)
55WIDH DEC 36 (2-CHAR) WORDS PER LINE
56SFF DEC 4 SKIPS TO SIMULATE FORM FEED
57*
58*
59OSAL 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
68PGOK IRS LINE BUMP COUNTER
69 NOP
70 JST T1 PRINT THE LINE
71BUF1 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*
79OSAH 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
88HL1 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 101NP 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
110S1 JST T30
111 IRS CNT
112 JMP S1
113NHDS JST T1 TYPE HBUF
114HBUP 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
119SP1 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
127FF DAC **
128 LDA SFF
129 TCA
130 STA CNT
131 LDA =10
132FF1 OTA 4 SEND LINE FEED
133 JMP *-1 WAIT
134 IRS CNT
135 JMP FF1
136 JMP* FF RETURN
137*
138*
c3e0f81a 139* ASR START ROUTINE
140ASUP DAC **
141 SKS '104
142 JMP *-1
143 OCP '104
144 JMP* ASUP
145*
146*
c08e22bb 147XR DEC 0 SAVED X REGISTER
148CNT DEC 0
149HBUF BCI 20,
150 BCI 20,
151 BCI 20,
152P1 DEC 0 POINTER 1
153P2 DEC 0 POINTER 2
154LINE DEC -40 NEG LINES LEFT ON PAGE
155*
156*
157********************************************************************************
158*
159*** AB HIER ABGESCHRIEBENER CODE!
160T1 DAC **
161 STX XR
c3e0f81a 162 JST ASUP START TTY
c08e22bb 163 LDA* T1
164 ADD WIDH
165 ADD ='40000
166 STA T6
167 IRS T1
168 LDA WIDH
169 TCA
170 STA 0
171T3 LDA* T6
172 CAS ='120240
173 JMP *+2
174*
175 JMP T8
176T4 JST T14
177 IRS 0
178 JMP T3
179 LDX XR
180 JMP* T1
181T6 *** **
182*
183T8 LDA 0
184 STA T12
185T10 IRS 0
186 JMP *+2
187 JMP* T1
188 LDA* T6
189 CAS ='120240
190 JMP *+2
191 JMP T10
192 LDA T12
193 STA 0
194 LDA ='120240
195 JMP T4
196T12 *** **
197*
198T14 DAC **
199 NOP
200 NOP
201 NOP
202 LRL 8
203 OTA 4
204 JMP *-1
205 LLL 8
206 OTA 4
207 JMP *-1
208 JMP* T14
209*
210*
211********************************************************************************
212*
213T20 DAC **
c3e0f81a 214 JST ASUP START TTY
c08e22bb 215 LDA =13
216 OTA 4
217 JMP *-1
218 OTA 4
219 JMP *-1
220 JMP* T20
221*
222********************************************************************************
223*
224T30 DAC **
c3e0f81a 225 JST ASUP START TTY
c08e22bb 226 LDA =10
227 OTA 4
228 JMP *-1
229 JMP* T30
230*
231*
232 FIN WRITE OUT LITERALS
233*
234* PUH.....
235 END (O$AL)
236