*** empty log message ***
[h316.git] / lib / iolib / src / o$pl.asm
CommitLineData
c08e22bb 1* (O$PL)
2*
3*
4* COMPUTER: H316
5*
6* PROGRAM CATEGORY: I/O LIBRARY
7*
8* PROGRAM TITLE: O$PL (O$PH)
9* PAPER TAPE LISTING ROUTINES
10*
11* REVISIONS:
12* 1.0 (2005-02.04)
13*
14* AUTHOR
15*
16* PHILIPP HACHTMANN
17*
18*
19* PURPOSE
20*
21* PUT LISTINGS ONTO PAPER TAPE. USAGE LIKE O$LA AND O$LH
22*
23*
c08e22bb 24* STORAGE
25*
26* 266 (OCTAL)
27* 182 (DECIMAL)
28*
29*
30* USE
31*
32* THE LIBRARY ROUTINES ARE FOR GENERAL PURPOSE.
33*
34**********************************************************************
35 SUBR O$PL TYPE A COMPLETE LINE WITH CR/LF, HEADING ETC.
36 SUBR O$PH INITIALISE HEADING
37 SUBR O$PP,T1 TYPE A LINE, NO CR
38 SUBR O$PC,T20 RETURN THE CARRIAGE
39 SUBR O$PF,T30 ADVANCE TO NEXT LINE
40 SUBR O$PE,SNP PUNCH FORM FEED
41*
42 SUBR O$P1,HDS EMPTY LINES BETWEEN TOP OF PAGE AND HEADING
43 SUBR O$P2,SPC EMPTY LINES BETWEEN HEADING AND MAIN TEXT
44 SUBR O$P3,PGS PURE TEXT LINES PER PAGE
45**********************************************************************
8acc03e2 46 REL RELOCATABLE
c08e22bb 47*********************************************
48* CONFIGURATION
49HDS DEC 1 EMPTY LINES BEFORE HEADING
50SPC DEC 5 EMPTY LINES BETWEEN HEADING AND TEXT
51PGS DEC 50 DATA LINES PER PAGE (WITHOUT HEADING ETC.)
52*
53*
54O$PL DAC **
55 LDA* O$PL BUFFER ADDRESS
56 STA BUF1 STORE FOR LATER USE
57 OCP 2 ACTIVATE PUNCH
58 IRS LINE COUNT DOWN LEFT LINES ON PAGE
59 JMP PGOK NO NEW PAGE
60 LDA =12 FORM FEED
61 OTA 2 SEND FORMFEED
62 JMP *-1 WAIT
63 JST NP NEW PAGE REQUIRED
64PGOK JST T1 PRINT THE LINE
65BUF1 DAC ** ADDRESS OF LINE BUFFER
66 JST T20 CARRIAGE RETURN
67 JST T30 LINE FEED
68 IRS O$PL MAKE RETURN ADDRESS
69 JMP* O$PL RETURN
70*
71*
72O$PH DAC ** INIT HEADING
73 LDA* O$PH
74 STA P1 POINTER TO SOURCE
75 LDA HBUP
76 STA P2 POINTER TO TARGET
77 LDA =-60 LINE LENGTH
78 STA CNT
79HL1 LDA* P1
80 STA* P2
81 IRS P1
82 IRS P2
83 IRS CNT READY?
84 JMP HL1 NO
85 JST NP INIT PAGE
86 IRS O$PH ADJUST ADDRESS
87 JMP* O$PH RETURN
88**********************************************++
89*
90NP DAC ** PREPARE NEW PAGE
91 LDA PGS LOAD LINES PER PAGE
92 TCA NEGATE
93 STA LINE STORE PAGE COUNTER
94 LDA HDS
95 SNZ
96 JMP NHDS NO SPACE BEFORE HEADING
97 TCA
98 STA CNT
99S1 JST T30
100 IRS CNT
101 JMP S1
102NHDS JST T1 TYPE HBUF
103HBUP DAC HBUF ADDRESS OF HEADER BUFFER
104 JST T20 CARRIAGE RETURN
105 LDA SPC NUMBER OF SPACES BEFORE TEXT
106 TCA NEGATE
107 STA CNT TO COUNTER
108SP1 JST T30 LINE FEED
109 IRS CNT DEC COUNTER, SKIP IF READY
110 JMP SP1 NOT READY
111 JMP* NP
112*
113***********************************++
114*
115**** FORM FEED ROUTINE
116SNP LDA =-1
117 STA LINE
118 OCP 2 ACTIVATE PUNCH
119 LDA =12 FORM FEED
120 OTA 2 SEND FORMFEED
121 JMP *-1 WAIT
122 JMP* SNP RETURN
123********
124*
125*
126CNT DEC 0
127HBUF BCI 20,
128 BCI 20,
129 BCI 20,
130P1 DEC 0 POINTER 1
131P2 DEC 0 POINTER 2
132LINE DEC -40 NEG LINES LEFT ON PAGE
133*
134*
135************************************************************
136*
137*** AB HIER ABGESCHRIEBENER CODE!
138T1 DAC **
139 LDA* T1
140 ADD T5
141 STA T6
142 IRS T1
143 LDA =-60
144 STA 0
145T3 LDA* T6
146 CAS ='120240
147 JMP *+2
148*
149 JMP T8
150T4 JST T14
151 IRS 0
152 JMP T3
153 JMP* T1
154T5 DAC 60,1
155T6 *** **
156*
157T8 LDA 0
158 STA T12
159T10 IRS 0
160 JMP *+2
161 JMP* T1
162 LDA* T6
163 CAS ='120240
164 JMP *+2
165 JMP T10
166 LDA T12
167 STA 0
168 LDA ='120240
169 JMP T4
170T12 *** **
171*
172T14 DAC **
173 OCP 2 ACTIVATE PUNCH
174 NOP
175 NOP
176 LRL 8
177 OTA 2
178 JMP *-1
179 LLL 8
180 OTA 2
181 JMP *-1
182 JMP* T14
183*
184*
46d73374 185**************************************************
c08e22bb 186*
187T20 DAC **
188 LDA ='6400 CR+NULL
189 JST T14
190 JMP* T20
191*
46d73374 192**************************************************
c08e22bb 193*
194T30 DAC **
195 LDA ='5000 LF+NULL
196 JST T14
197 JMP* T30
198*
199 FIN WRITE OUT LITERALS
200*
201* PUH.....
202*
203 END