ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:10 2020
Source File: \u6ptutl.asm
1130 PAPER TAPE UTILITY ROUTINE
2 | *************************************************** U6J00020
3 | *STATUS - VERSION 2, MODIFICATION LEVEL 12 * U6J00030
4 | *FUNCTION/OPERATION-THIS IS A MAINLINE SUBROUTINE * U6J00040
5 | *STORED IN THE SUBROUTINE LIBRARY FOR THE * U6J00050
6 | *CONVENIENCE OF THE PAPER-TAPE USER. THE PROGRAM * U6J00060
7 | *ACCEPTS INPUT FROM THE KEYBOARD OR THE 1134 PAPER* U6J00070
8 | *TAPE READER AND PROVIDES OUTPUT ON THE CONSOLE * U6J00080
9 | *PRINTER AND/OR THE 1055 PAPER-TAPE PUNCH. THIS * U6J00090
10 | *SUBROUTINE ALLOWS CHANGES AND/OR ADDITIONS TO * U6J00100
11 | *FORTRAN AND ASSEMBLER LANGUAGE SOURCE RECORDS AS * U6J00110
12 | *WELL AS MONITOR CONTROL RECORDS. THE CALLING * U6J00120
13 | *SEQUENCE FOR PTUTL IS- * U6J00130
14 | * // XEQ PTUTL * U6J00140
15 | *THE FUNCTIONS TO BE PERFORMED ARE COMMUNICATED TO* U6J00150
16 | *THE SUBROUTINE BY MEANS OF THE CONSOLE ENTRY * U6J00160
17 | *SWITCHES AS INDICATED BELOW- * U6J00170
18 | * BIT SWITCH ON OPTION * U6J00180
19 | * 0 PRINT RECORD AFTER READING * U6J00190
20 | * 1 READ PAPERTAPE RECORDS-1134* U6J00200
21 | * 2 ACCEPT KEYBOARD INPUT * U6J00210
22 | * 3 PUNCH PAPERTAPE RECORDS * U6J00220
23 | * 14 WAIT AFTER PUNCHING * U6J00230
24 | * 15 WAIT AFTER PRINTING * U6J00240
25 | * * U6J00250
26 | * * U6J00260
27 | *ENTRY POINTS- * U6J00270
28 | * *START- THIS IS THE ONLY ENTRY TO THE * U6J00280
29 | * PROGRAM. UPON ENTRY, THE PROGRAM WAITS WITH * U6J00290
30 | * /1111 IN THE ACCUM,WAITING FOR THE USER TO * U6J00300
31 | * SELECT HIS OPTIONS VIA THE CONSOLE ENTRY * U6J00310
32 | * SWITCHES. * U6J00320
33 | *INPUT- INPUT IS PROVIDED TO THE PROGRAM VIA THE * U6J00330
34 | *PAPER-TAPE READER AND/OR THE KEYBOARD. * U6J00340
35 | * * U6J00350
36 | *OUTPUT- PUNCHED OUTPUT ON PAPERTAPE PUNCH AND/OR * U6J00360
37 | *1053 CONSOLE PRINTER. * U6J00370
38 | * * U6J00380
39 | *EXTERNAL REFERENCES- THE FOLLOWING SUBROUTINES * U6J00390
40 | *FROM THE SUBROUTINE LIBRARY ARE CALLED- * U6J00400
41 | * PAPHL * U6J00410
42 | * PAPPR * U6J00420
43 | * PAPT1 * U6J00430
44 | * TYPE0 * U6J00440
45 | *IN ADDITION, THE ABOVE SUBROUTINES CALL THE * U6J00450
46 | *FOLLOWING SUBROUTINES * U6J00460
47 | * EBPA * U6J00470
48 | * PRTY * U6J00480
49 | * HOLL * U6J00490
50 | * ILS04 * U6J00500
51 | * * U6J00510
52 | *EXITS-NORMAL -OUT- IF ALL CONSOLE ENTRY SWITCHES* U6J00520
53 | *ARE OFF THE PROGRAM BRANCHES TO -OUT- WHICH * U6J00530
54 | *PERFORMS A CALL EXIT BACK TO THE SUPERVISOR. * U6J00540
55 | *EXITS-ERROR- NONE. * U6J00550
56 | * * U6J00560
57 | *TABLES,WORK AREAS- -PBUF- -PAPERTAPE I/O AREA * U6J00570
58 | * -TYBUF- -TYPEWRITER I/O AREA * U6J00580
59 | *ATTRIBUTES- REUSABLE * U6J00590
60 | * * U6J00600
61 | *NOTES- THE KEYBOARD INPUT OPTION USES TYPE0. * U6J00610
62 | *THEREFORE ALL FEATURES OF THAT SUBROUTINE APPLY * U6J00620
63 | *TO PTUTL * U6J00630
64 | * *MAXIMUM INPUT RECORD--80 CHARACTERS * U6J00640
65 | * *PRESSING BACKSPACE KEY CANCELS LAST * U6J00650
66 | * CHARACTER ENTERED. * U6J00660
67 | * *PRESSING THE ERASE FIELD KEY CANCELS THE * U6J00670
68 | * ENTIRE RECORD AND ALLOWS USER RESTART. * U6J00680
69 | * *PRESSING THE EOF KEY INDICATES THE RECORD * U6J00690
70 | * IS COMPLETE. THE KEYBOARD IS RELEASED AND * U6J00700
71 | * THE PROGRAM CONTINUES. * U6J00710
72 | * * U6J00720
73 | *************************************************** U6J00730
74 | ABS U6J00740
0400 75 | ORG /400 U6J00750
0400 0051 76 | PTBUF DC 81 WORDCOUNT (MAXIMUM) 2-9 U6J00760
0401 77 | BSS 81 PAPER TAPE I/O AREA 2-9 U6J00770
0452 0050 78 | TYBUF DC 80 WORD COUNT (MAXIMUM) U6J00780
0453 79 | BSS 80 TYPEWRITER I/O AREA U6J00790
04A3 4110 80 | DC /4110 CONSTANT FOR NEW LINE 2-4 U6J00800
04A4 81 | BSS E 0 2-4 U6J00810
04A4 04AA 82 | BITSW DC BITS IOCC TO READ SWITCHES U6J00820
04A5 3A00 83 | DC /3A00 U6J00830
04A6 1111 84 | H1111 DC /1111 DISPLAY CODE FOR INITIAL WAIT U6J00840
04A7 2222 85 | H2222 DC /2222 DISPLAY CODE,WAIT-AFTER-PUNCH U6J00850
04A8 3333 86 | H3333 DC /3333 DISPLAY CODE,WAIT-AFTER-PRINT U6J00860
04A9 3000 87 | H3000 DC /3000 NOT READY ERROR CODE U6J00870
88 | * U6J00880
04AA 0000 89 | BITS DC 0 BIT SWITCH BUFFER U6J00890
04AB 0000 90 | ERROR DC 0 I/O ERROR ENTRY U6J00900
04AC E8FC 91 | OR H3000 U6J00910
04AD D003 92 | STO NORDY STORE ERROR FLAG U6J00920
04AE 1010 93 | SLA 16 CLEAR ACCUMULATOR U6J00930
04AF 4C80 04AB 94 | BSC I ERROR RETURN TO PAPT1 U6J00940
04B1 0000 95 | NORDY DC 0 NOT READY INDICATOR U6J00950
04B2 0001 96 | CARET DC 1 2-9 U6J00960
04B3 2181 97 | H2181 DC /2181 SPACE AND CARRIER RETURN U6J00970
04B4 0081 98 | NL DC /0081 NEW LINE CHARACTER U6J00980
04B5 00C4 99 | $I400 DC /C4 ILS04 ADDR IN RES MON 212 U6J00983
000C 100 | $LEV4 EQU /C LEVEL 4 BRANCH WORD 212 U6J00986
101 | * U6J00990
102 | * STOP AFTER PRINT OUT U6J01000
103 | * U6J01010
04B6 C0F0 104 | WAP LD H2222 DISPLAY CODE U6J01020
04B7 3000 105 | WAIT STOP AFTER PRINTING U6J01030
04B8 703F 106 | MDX SW2 GO ACCEPT CONSOLE INPUT U6J01040
107 | * U6J01050
04B9 C0EC 108 | START LD H1111 U6J01060
04BA 3000 109 | WAIT PAPER TAPE NOT READY U6J01070
04BB 1010 110 | SLA 16 CLEAR ACCUMULATOR U6J01080
04BC D0F4 111 | STO NORDY CLEAR ERROR FLAG U6J01090
04BD C0F7 112 | LD $I400 SET INTRPT LEVEL 4 BR 212 U6J01093
04BE D400 000C 113 | STO L $LEV4 *ADDR = SYSTEM ILS04 212 U6J01096
114 | * U6J01100
115 | * TEST FOR EXIT U6J01110
116 | * U6J01120
04C0 08E3 117 | SW1 XIO BITSW READ SWITCHES U6J01130
04C1 C0E8 118 | LD BITS GET SWITCH READING U6J01140
04C2 4C18 0525 119 | BSC L OUT,+- BRANCH IF ALL SWITCHES OFF U6J01150
04C4 1001 120 | SLA 1 U6J01160
04C5 4C10 04F8 121 | BSC L SW2,- NO BRANCH IF SW. 1 ON U6J01170
122 | * U6J01180
123 | * READ PAPER TAPE U6J01190
124 | * U6J01200
04C7 1705*78F1 125 | LIBF PAPT1 READ PAPER TAPE RECORD U6J01210
04C8 1000 126 | DC /1000 U6J01220
04C9 0400 127 | DC PTBUF U6J01230
04CA 04AB 128 | DC ERROR U6J01240
04CB 1705*78F1 129 | LIBF PAPT1 TEST FOR OP COMPLETE U6J01250
04CC 0000 130 | DC 0 U6J01260
04CD 70FD 131 | MDX *-3 U6J01270
04CE C0E2 132 | LD NORDY GET NOT RDY. INDICATOR U6J01280
04CF 4C20 04B9 133 | BSC L START,Z BRANCH ON PT NOT RDY. U6J01290
134 | * U6J01300
135 | * CONVERT FOR PRINT OUT U6J01310
136 | * U6J01320
04D1 08D2 137 | SW0 XIO BITSW READ SWITCHES U6J01330
04D2 C0D7 138 | LD BITS GET SWITCH READING U6J01340
04D3 4C10 050E 139 | BSC L SW3,- NO BRANCH IF SW. 0 ON U6J01350
04D5 1705*75D9 140 | LIBF PAPPR CONVERT PTTC/8 TO TYPWR. U6J01360
04D6 0000 141 | DC /0000 U6J01370
04D7 0401 142 | DC PTBUF+1 U6J01380
04D8 0453 143 | DC TYBUF+1 U6J01390
04D9 00A1 144 | DC 161 2-9 U6J01400
145 | * U6J01410
146 | * COUNT CHARACTERS TO PRINT OUT U6J01420
147 | * U6J01430
04DA 6101 148 | LDX 1 1 INITIALIZE COUNTER U6J01440
04DB 10A0 149 | SLT 32 CLEAR A AND Q U6J01450
04DC C500 0452 150 | LOOP LD L1 TYBUF GET BUFFER WORD U6J01460
04DE 18C8 151 | RTE 8 U6J01470
04DF F0D4 152 | EOR NL CHECK FOR NL U6J01480
04E0 4C18 04E9 153 | BSC L INVRT,+- BRANCH IF NL U6J01490
04E2 1090 154 | SLT 16 U6J01500
04E3 1808 155 | SRA 8 U6J01510
04E4 F0CF 156 | EOR NL CHECK FOR NL U6J01520
04E5 4C18 04EC 157 | BSC L PT2PR,+- BRANCH IF NL U6J01530
04E7 7101 158 | MDX 1 1 ADD 1 TO COUNTER U6J01540
04E8 70F3 159 | MDX LOOP U6J01550
04E9 C0C9 160 | INVRT LD H2181 U6J01560
04EA D500 0452 161 | STO L1 TYBUF U6J01570
04EC 6D00 0452 162 | PT2PR STX L1 TYBUF STORE WORD COUNT U6J01580
163 | * U6J01590
164 | * PRINT ON TYPEWRITER U6J01600
165 | * U6J01610
04EE 23A1*7170 166 | LIBF TYPE0 PRINT RECORD U6J01620
04EF 2000 167 | DC /2000 U6J01630
04F0 0452 168 | DC TYBUF U6J01640
04F1 23A1*7170 169 | LIBF TYPE0 TEST FOR OP COMPLETE U6J01650
04F2 0000 170 | DC 0 U6J01660
04F3 70FD 171 | MDX *-3 U6J01670
172 | * U6J01680
173 | * STOP AFTER PRINT OUT U6J01690
174 | * U6J01700
04F4 08AF 175 | SW15 XIO BITSW READ SWITCHES U6J01710
04F5 C0B4 176 | LD BITS GET SWITCH READING U6J01720
04F6 4C04 04B6 177 | BSC L WAP,E CHK SW 15 FOR WAIT-AFTER U6J01730
178 | * U6J01740
179 | * ACCEPT CONSOLE INPUT U6J01750
180 | * U6J01760
04F8 08AB 181 | SW2 XIO BITSW READ SWITCHES U6J01770
04F9 C0B0 182 | LD BITS GET SWITCH READING U6J01780
04FA 1002 183 | SLA 2 U6J01790
04FB 4C10 050E 184 | BSC L SW3,- NO BRANCH IF SW. 2 ON U6J01800
04FD 6150 185 | LDX 1 80 U6J01810
04FE 6D00 0452 186 | STX L1 TYBUF SET KEYBOARD WORD COUNT U6J01820
0500 23A1*7170 187 | LIBF TYPE0 ACCEPT TYPWR. INPUT U6J01830
0501 1000 188 | DC /1000 U6J01840
0502 0452 189 | DC TYBUF U6J01850
0503 23A1*7170 190 | LIBF TYPE0 2-9 U6J01860
0504 2000 191 | DC /2000 2-9 U6J01870
0505 04B2 192 | DC CARET CARRIAGE RETURN 2-9 U6J01880
0506 23A1*7170 193 | LIBF TYPE0 TEST FOR OP COMPLETE U6J01890
0507 0000 194 | DC 0 U6J01900
0508 70FD 195 | MDX *-3 U6J01910
196 | * U6J01920
197 | * CONVERT FOR PUNCH OUT U6J01930
198 | * U6J01940
0509 1705*7213 199 | LIBF PAPHL CONVERT TYPWR. TO PTTC/8 U6J01950
050A 0001 200 | DC /0001 U6J01960
050B 0453 201 | DC TYBUF+1 U6J01970
050C 0401 202 | DC PTBUF+1 U6J01980
050D 0051 203 | DC 81 2-4 U6J01990
204 | * U6J02000
205 | * PUNCH PAPER TAPE U6J02010
206 | * U6J02020
050E 0895 207 | SW3 XIO BITSW READ SWITCHES U6J02030
050F C09A 208 | LD BITS GET SWITCH READING U6J02040
0510 1003 209 | SLA 3 U6J02050
0511 4C10 051E 210 | BSC L SW14,- NO BRANCH IF SW. 3 ON U6J02060
0513 1705*78F1 211 | LIBF PAPT1 PUNCH PAPER TAPE RECORD U6J02070
0514 2000 212 | DC /2000 U6J02080
0515 0400 213 | DC PTBUF U6J02090
0516 04AB 214 | DC ERROR U6J02100
0517 1705*78F1 215 | LIBF PAPT1 TEST FOR OP COMPLETE U6J02110
0518 0000 216 | DC 0 U6J02120
0519 70FD 217 | MDX *-3 U6J02130
051A C400 04B1 218 | LD L NORDY GET NOT RDY. INDICATOR U6J02140
051C 4C20 04B9 219 | BSC L START,Z BRANCH ON PT NOT RDY. U6J02150
220 | * U6J02160
221 | * STOP AFTER PUNCH OUT U6J02170
222 | * U6J02180
051E 0885 223 | SW14 XIO BITSW READ SWITCHES U6J02190
051F C08A 224 | LD BITS GET SWITCH READING U6J02200
0520 100E 225 | SLA 14 U6J02210
0521 4C10 04C0 226 | BSC L SW1,- NO BRANCH IF SW. 14 ON U6J02220
0523 C084 227 | LD H3333 CODE FOR WAIT-AFTER-PUNCH U6J02230
0524 7095 228 | MDX START+1 U6J02240
229 | * U6J02250
0525 6038 230 | OUT LDX 0 /38 EXIT TO SUP U6J02260
0526 231 | END START U6J02270
There were no errors in this assembly
Program transfer address = 04B9
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$I400 04B5 99 112
$LEV4 000C 100 113
BITS 04AA 89 82 118 138 176 182 208 224
BITSW 04A4 82 117 137 175 181 207 223
CARET 04B2 96 192
ERROR 04AB 90 94 128 214
H1111 04A6 84 108
H2181 04B3 97 160
H2222 04A7 85 104
H3000 04A9 87 91
H3333 04A8 86 227
INVRT 04E9 160 153
LOOP 04DC 150 159
NL 04B4 98 152 156
NORDY 04B1 95 92 111 132 218
OUT 0525 230 119
PT2PR 04EC 162 157
PTBUF 0400 76 127 142 202 213
START 04B9 108 133 219 228 231
SW0 04D1 137
SW1 04C0 117 226
SW14 051E 223 210
SW15 04F4 175
SW2 04F8 181 106 121
SW3 050E 207 139 184
TYBUF 0452 78 143 150 161 162 168 186 189 201
WAP 04B6 104 177