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