c08e22bb |
1 | * (O$PB) - COPY OF O$AB |
2 | * |
3 | * |
4 | * COMPUTER: H316 |
5 | * |
6 | * PROGRAM CATEGORY: I/O LIBRARY |
7 | * |
8 | * PROGRAM TITLE: O$PB (O$PS,O$PLDR) |
9 | * TO PUNCH BINARY TAPE ON THE HIGH SPEED PUNCH |
10 | * |
11 | * REVISIONS: |
12 | * 1.0 (2005-02.04) |
13 | * |
14 | * AUTHOR |
15 | * |
16 | * PHILIPP HACHTMANN |
17 | * |
18 | * |
19 | * |
20 | * STORAGE |
21 | * |
22 | * 150 (OCTAL) |
23 | * 104 (DECIMAL) |
24 | * |
25 | * |
26 | * USE |
27 | * |
28 | * CALL O$PB PTP BINARY PUNCH ROUTINE |
29 | * DAC DATA DATA ADDRESS |
30 | * NORMAL RETURN |
31 | * |
32 | * CALL O$PS END OF MESSAGE ROUTINE |
33 | * |
34 | * CALL O$PLDR PUNCH BLANK LEADER |
35 | * |
36 | * |
37 | * CALL O$AB - |
38 | * |
39 | * THIS ROUTINE IS USED TO PUNCH BINARY PAPER TAPE, THE ADDRESS |
40 | * OF THE BINARY WORD COUNT APPEARS IN THE VARIABLE FIELD (DATA) |
41 | * FOLLOWING THE CALL PSEUDO-OP. THE BINARY INFORMATION TO BE |
42 | * PUNCHED MUST START AT DATA+1. |
43 | * THE NORMAL RETURN IS TAKEN WHEN THE NUMBER OF WORDS SPECIFIED |
44 | * BY THE WORD COUNT HAS BEEN PUNCHED. |
45 | * |
46 | * CALL O$AS - |
47 | * |
48 | * EOM (203 OCT), X-OFF (223 OCT), AND RUBOUT (377 OCT) CHARACTERS |
49 | * ARE PUNCHED WHEN THIS ROUTINE IS USED. |
50 | * RETURN IS TO THE CALLING PROGRAMM |
51 | * |
52 | * CALL O$PLDR - |
53 | * |
54 | * PUNCH BLANK LEADER. NORMAL RETURN. |
55 | * |
56 | * |
57 | * METHOD |
58 | * |
59 | * BINARY INFORMATION IS PUNCHED AS IST APPEARS IN THE BUFFER (DATA+1). |
60 | * EACH RECORD ON PAPER TAP EWILL HAVE THE FOLLOWING FORMAT: |
61 | * START OF MESSAGE, BINARY INFORMATION, X-OFF, TWO LEADER CHARS. |
62 | * |
63 | * |
64 | * |
65 | ******************************************************************************** |
66 | * |
67 | * |
68 | SUBR O$PB |
69 | SUBR O$PS |
70 | SUBR O$PLDR,PLDR |
71 | REL |
72 | O$PB PZE ** PTP PUNCH ENTRY |
73 | STX XR SAVE INDEX REGISTER FROM CALLING PROGRAMM |
74 | OCP 2 ACTIVATE PAPER TAPE PUNCH |
75 | * |
76 | LDA* O$PB WORD COUNT ADDRESS |
77 | BIN5 STA TMP |
78 | LDA* TMP |
79 | TCA TWOS COMPLEMENT BINARY WORD COUNT |
80 | STA 0 |
81 | LDA* O$PB BINARY DATA ADDRESS |
82 | ADD* TMP DATA ADDRESS+WORD COUNT |
83 | ADD ='40001 |
84 | STA DATA DATA ADDRESS + WORD COUNT, 1 |
85 | JST STP |
86 | LDA ='201 BEGINNING OF MESSAGE |
87 | JST BCD8 |
88 | BIN6 LDA* DATA BINARY WORD TO BE PUNCHED |
89 | LRL 16 B-REG: BINARY WORD TO BE PUNCHED |
90 | JST PNCH GO PUNCH BINARY WORD |
91 | IRS 0 |
92 | JMP BIN6 CONTINUE PUNCHING BINARY CHARACTERS |
93 | JMP RETN LEAVE ROUTINE |
94 | PNCH PZE ** CONVERT AND PUNCH BINARY CHARACTERS |
95 | LLL 4 |
96 | JST CHAR PUNCH BINARY WORD (1-4) |
97 | JST CHAR PUNCH BINARY WORD (5-10) |
98 | JST CHAR PUNCH BINARY WORD (11-16) |
99 | JMP* PNCH RETURN FOR ADDITIONAL WORDS |
100 | CHAR PZE ** |
101 | LGL 11 |
102 | CAS WRU |
103 | JMP *+2 |
104 | LDA WRUX |
105 | CAS LF |
106 | JMP *+2 |
107 | LDA LFX |
108 | CAS XON |
109 | JMP *+2 |
110 | LDA XONX |
111 | CAS XOFF |
112 | JMP *+2 |
113 | LDA XOFX |
114 | SRC |
115 | ERA FOUR |
116 | ALR 5 |
117 | OUT JST BCD8 |
118 | LLL 6 |
119 | JMP* CHAR |
120 | WRU OCT 024000 |
121 | WRUX OCT 160003 |
122 | LF OCT 050000 |
123 | LFX OCT 164003 |
124 | XON OCT 104000 |
125 | XONX OCT 170003 |
126 | XOFF OCT 114000 |
127 | XOFX OCT 174003 |
128 | FOUR OCT 000004 |
129 | BCD8 PZE ** ASCII PUNCH ROUTINE |
130 | OTA 2 |
131 | JMP *-1 |
132 | JMP* BCD8 |
133 | RETN LDA ='223 X-OFF |
134 | JST BCD8 |
135 | LDA ='377 RUBOUT CHARACTER |
136 | JST BCD8 LEADER CHAR. |
137 | IRS O$PB INCREMENT FOR NORMAL RETURN |
138 | LDA XR RESTORE INDEX FOR CALLING PROGRAMM |
139 | STA 0 |
140 | JMP* O$PB |
141 | * |
142 | O$PS PZE ** PUNCH END OF MESSAGE ENTRY |
143 | JST STP |
144 | LDA ='203 PUNCH END OF MESSAGE |
145 | JST BCD8 |
146 | LDA ='223 PUNCH X-OFF |
147 | JST BCD8 |
148 | LDA ='377 RUBOUT CHARACTER |
149 | JST BCD8 LEADER CHAR. |
150 | JMP* O$PS RETURN TO CALLING PROGRAMM |
151 | * |
152 | STP DAC ** |
153 | LDA ='222 |
154 | JST BCD8 |
155 | LDA ='377 |
156 | JST BCD8 |
157 | JMP* STP |
158 | DATA PZE 0 |
159 | XR PZE 0 |
160 | TMP PZE 0 |
161 | FIN |
162 | * |
163 | LDRC DEC 150 LENGTH OF LEADER |
164 | PLDR DAC ** PUNCH LEADER ENTRY |
165 | STX XR SAVE X REGISTER |
166 | LDA LDRC LENGTH OF LEADER |
167 | TCA TWOS COMPLEMENT OF LEADER |
168 | STA 0 |
169 | OCP 2 |
170 | CRA |
171 | LD1 OTA 2 PUNCH! |
172 | JMP *-1 |
173 | IRS 0 |
174 | JMP LD1 |
175 | LDX XR RESTORE X REGISTER |
176 | JMP* PLDR RETURN |
177 | * |
178 | END O$PB |