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