*** empty log message ***
[h316.git] / lib / iolib / src / o$pa.asm
CommitLineData
61685b6e 1* (O$LA)
2*
3*
4* PROGRAM TITLE: O$LA (O$LA,O$LE,O$LH,O$LC,O$LF)
5* LINE PRINTER ROUTINES
6*
7* REVISIONS:
8* 1.0 (2005-02.04)
9*
10* AUTHOR
11*
12* PHILIPP HACHTMANN
13*
14*
15* PURPOSE
16*
17* THESE ARE THE LIBRARY ROUTINES FOR HACHTI'S LINE PRINTER INTERFACE
18*
19*
20* RESTRICTIONS
21*
22* DEPENDS ON HACHTI'S HARDWARE AND FORTRAN IV COMPILER TAPE
23*
24*
25* STORAGE
26*
27* 420 (OCTAL)
28* 271 (DECIMAL)
29*
30*
31* USE
32*
33* CALL O$LA
34* DAC (BUFFER ADDRESS)
35* NORMAL
36*
37* THIS PRINTS ONE LINE OF LISING TEXT
38* (60 2-CHAR WORDS MAX) TO THE LINE PRINTER.
39*
40*
41*
42********************************************************************************
43*
44 SUBR O$PA TYPE A COMPLETE LINE WITH CR/LF, HEADING ETC.
45*
46********************************************************************************
47*
48 REL RELOCATEABLE MODE
49*
50O$PA DAC **
51 LDA* O$PA BUFFER ADDRESS
52 STA LBUF STORE
53 JST T1 PUNCH THE RECORD
54LBUF OCT 0 ADDRESS OF LINE BUFFER
55 JST T20 CARRIAGE RETURN
56 JST T30 LINE FEED
57 IRS O$LA MAKE RETURN ADDRESS
58 JMP* O$LA RETURN
59
60************************************************************
61*
62* OUTPUT LINE
63T1 DAC **
64 STX XR SAVE CALLER'S INDEX REGISTER
65 LDA* T1 LOAD BUFFER ADDRESS
66 ADD LNW LINE WIDTH
67 ADD ='40000 SET INDEXING TAG
68 STA T6
69 IRS T1 INCREMENT RETURN ADDRESS
70 LDA LNW LINE WIDTH
71 TCA NEGATE
72 STA 0 PUT INTO INDEX REG
73T3 LDA* T6
74 CAS ='120240
75 JMP *+2
76*
77 JMP T8
78T4 JST T14
79 IRS 0
80 JMP T3
81 LDX XR RESTORE CALLER'S INDEX REGISTER
82 JMP* T1
83T6 *** **
84*
85*
86T8 LDA 0
87 STA T12
88T10 IRS 0
89 JMP *+2
90 JMP* T1
91 LDA* T6
92 CAS ='120240
93 JMP *+2
94 JMP T10
95 LDA T12
96 STA 0
97 LDA ='120240
98 JMP T4
99T12 *** **
100*
101*
102T14 DAC **
103 ICA
104 OTA 0
105 JMP *-1
106 ICA
107 OTA 0
108 JMP *-1
109 JMP* T14
110****
111*
112* CARRIAGE RETURN
113T20 DAC **
114 LDA =13 CR CHARACTER
115 OTA 0 OUTPUT
116 JMP *-1
117 JMP* T20 RETURN
118*
119* LINE FEED
120T30 DAC **
121 LDA =10 LF CHARACTER
122 OTA 0 OUTPUT
123 JMP *-1 RETURN
124 JMP* T30
125*
126*
127 FIN WRITE OUT LITERALS
128*
129* PUH.....
130*
131 END