Einige OCPs dazu gemacht.
[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
9* 1.1 (10.2.2005) - ADDED FORGOTTEN OCP COMMANDS
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*
139XR DEC 0 SAVED X REGISTER
140CNT DEC 0
141HBUF BCI 20,
142 BCI 20,
143 BCI 20,
144P1 DEC 0 POINTER 1
145P2 DEC 0 POINTER 2
146LINE DEC -40 NEG LINES LEFT ON PAGE
147*
148*
149********************************************************************************
150*
151*** AB HIER ABGESCHRIEBENER CODE!
152T1 DAC **
153 STX XR
1cdd230d 154 OCP '104 START TTY
c08e22bb 155 LDA* T1
156 ADD WIDH
157 ADD ='40000
158 STA T6
159 IRS T1
160 LDA WIDH
161 TCA
162 STA 0
163T3 LDA* T6
164 CAS ='120240
165 JMP *+2
166*
167 JMP T8
168T4 JST T14
169 IRS 0
170 JMP T3
171 LDX XR
172 JMP* T1
173T6 *** **
174*
175T8 LDA 0
176 STA T12
177T10 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
188T12 *** **
189*
190T14 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*
205T20 DAC **
1cdd230d 206 OCP '104 START TTY
c08e22bb 207 LDA =13
208 OTA 4
209 JMP *-1
210 OTA 4
211 JMP *-1
212 JMP* T20
213*
214********************************************************************************
215*
216T30 DAC **
1cdd230d 217 OCP '104 START TTY
c08e22bb 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