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