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