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