ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u2wrty0.asm
1 | *************************************************** U2O00010
2 | * * U2O00020
3 | *TITLE- WRTY0 * U2O00030
4 | *STATUS- CHANGE LEVEL 7 * U2O00040
5 | *FUNCTION/OPERATION- * U2O00050
6 | * THIS 1130/1800 SUBROUTINE OPERATES THE PRIME * U2O00060
7 | * CONSOLE PRINTER (1053). IT INITIATES REQSTD * U2O00070
8 | * PRINT OPERATIONS AND PROCESSES ANY PRINTER * U2O00080
9 | * OR OPERATOR REQUEST INTERRUPTS. IT IGNORES * U2O00090
10 | * ANY PRINTER ERRORS OR KEYBOARD INTERRUPTS. * U2O00100
11 | *ENTRY POINTS- * U2O00110
12 | * 1. WRTY0 CALL ENTRANCE FOR TEST OR WRITE * U2O00120
13 | * OPERATIONS. E.G. LIBF WRTY0 * U2O00130
14 | * DC /2000 * U2O00140
15 | * DC IOBUF * U2O00150
16 | * 2. INT1 OPERATION COMPLETE INTERRUPT ENTRY* U2O00160
17 | * POINT. * U2O00170
18 | *INPUT- NONE OTHER THAN FROM LIBF PARAMETERS * U2O00180
19 | *OUTPUT- PRINTED. * U2O00190
20 | *EXTERNAL SUBROUTINES- NONE. * U2O00200
21 | *EXITS- * U2O00210
22 | * NORMAL- * U2O00220
23 | * 1. CALL PORTION- WR36, BACK TO USER PROGRAM * U2O00230
24 | * 2. INTERRUPT PORTION- WR66, BACK TO ILS04 * U2O00240
25 | * ERROR- * U2O00250
26 | * 1. CALL PORTION- WR44, PRE-OPERATIVE ERROR * U2O00260
27 | * EXIT TO IOCS TRAP. * U2O00270
28 | * 2. INTERRUPT PORTION- WR66A, EXIT TO POST- * U2O00280
29 | * OPERATIVE ERROR TRAP. * U2O00290
30 | *TABLES/WORK AREAS- NONE. * U2O00300
31 | *ATTRIBUTES- REUSABLE * U2O00310
32 | *NOTES- * U2O00320
33 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U2O00330
34 | * * U2O00340
35 | *************************************************** U2O00350
36 | *** HDNG LIBF WRTY0-V1. U2O00360
37 | LIBR U2O00370
38 | ISS 02 WRTY0 4 U2O00380
39 | *************************************************** U2O00390
40 | * EDIT/LOADER DEFINED LOCATIONS * U2O00400
41 | *************************************************** U2O00410
0000 6933 42 | WRTY0 STX 1 WR30+1 LIBF ENTRANCE (+0) U2O00420
0001 6580 0000 43 | LINK LDX I1 0 LOADER STORES TV ADDR (+2) U2O00430
0003 7005 44 | MDX WR10 U2O00440
0004 0000 45 | INT1 DC 0 INTERRUPT ENTRANCE (+4) U2O00450
0005 4C00 0050R 46 | BSC L WR50 U2O00460
0007 0803 47 | AREA DC /0803 EDIT SETUP FOR GRP 0 (+7) U2O00470
0008 0000 48 | DC 0 EDIT SETUP FOR GRP 1 (+8) U2O00480
49 | *************************************************** U2O00490
50 | * LIBF PROCESSING * U2O00500
51 | *************************************************** U2O00510
0009 6A2C 52 | WR10 STX 2 WR32+1 SAVE XR2 U2O00520
000A 282C 53 | STS WR34 SAVE STATUS U2O00530
000B D040 54 | STO SAVA SAVE A REG U2O00540
000C C100 55 | LD 1 0 GET THE CONTROL PARAM U2O00550
000D 180C 56 | SRA 12 IS FUNCTION TEST U2O00560
000E 4C20 0014R 57 | BSC L WR12,Z NO U2O00570
0010 C033 58 | LD COUNT YES, IS BUSY INDR ON U2O00580
0011 4820 59 | BSC Z U2O00590
0012 71FF 60 | MDX 1 -1 YES, EXIT TO CALL+2 U2O00600
0013 701C 61 | MDX WR26 NO, EXIT TO CALL+3 U2O00610
0014 9034 62 | WR12 S D0002 IS FUNCTION PUT U2O00620
0015 4C20 003AR 63 | BSC L WR40,Z NO, ERROR U2O00630
0017 C02C 64 | WR13 LD COUNT IS BUSY INDR ON U2O00640
0018 4C20 0017R 65 | BSC L WR13,Z YES, LOOP U2O00650
001A 0829 66 | WR14 XIO SENSE-1 IS DEVICE READY U2O00660
001B 1005 67 | SLA 5 U2O00670
001C 4C28 003CR 68 | BSC L WR42,Z+ NO, ERROR U2O00680
001E C580 0001 69 | WR20 LD I1 1 SAVE WORD COUNT + 2 U2O00690
0020 1001 70 | SLA 1 U2O00700
0021 4C08 003AR 71 | BSC L WR40,+ ERROR IF ZERO OR NEG U2O00710
0023 D020 72 | STO COUNT SAVE TWICE THE WD CNT U2O00720
0024 C101 73 | LD 1 1 GET DATA AREA ADDR U2O00730
0025 8022 74 | A D0001 AVOID STORED WD CNT U2O00740
0026 D01F 75 | STO IOAR SAVE I/O AREA ADDR U2O00750
0027 1810 76 | SRA 16 SET INDR FOR RT-HAND CHAR U2O00760
0028 D026 77 | STO RIGHT U2O00770
0029 C480 0046R 78 | LD I IOAR STORE CHAR INTO TEMP AREA U2O00780
002B D022 79 | STO TEMP1 U2O00790
002C 7401 0032 80 | MDX L 50,+1 INCR ISS CTR U2O00800
002E 1000 81 | NOP MAY SKIP U2O00810
002F 0812 82 | XIO PRINT PRINT 1ST CHAR U2O00820
0030 7102 83 | WR26 MDX 1 +2 SET EXIT FOR CALL+3 U2O00830
0031 C01A 84 | LD SAVA RESTORE ACC U2O00840
0032 6906 85 | WR28 STX 1 WR36+1 SET UP EXIT U2O00850
0033 6500 0000 86 | WR30 LDX L1 *-* RESTORE XR1 U2O00860
0035 6600 0000 87 | WR32 LDX L2 *-* RESTORE XR2 U2O00870
0037 2000 88 | WR34 LDS *-* RESTORE STATUS U2O00880
0038 4C00 0000 89 | WR36 BSC L *-* EXIT TO USER U2O00890
90 | * U2O00900
91 | *SET UP ERROR EXITS U2O00910
92 | * U2O00920
003A C00F 93 | WR40 LD H2001 ERROR CODE - ILLEGAL CALL U2O00930
003B 7001 94 | MDX WR44 U2O00940
003C C00E 95 | WR42 LD H2000 ERROR CODE - DEVC NOT READY U2O00950
003D 71FF 96 | WR44 MDX 1 -1 GET LIBF ADDR AND PUT IN U2O00960
003E 6D00 0028 97 | STX L1 40 *$PRET U2O00970
0040 6129 98 | LDX 1 41 SET XR1 TO EXIT TO LOC 41 U2O00980
0041 70F0 99 | MDX WR28 U2O00990
100 | *************************************************** U2O01000
101 | * CONSTANTS * U2O01010
102 | *************************************************** U2O01020
0042 103 | BSS E 0 U2O01030
0042 004ER 104 | PRINT DC TEMP1 IOCC TO PRINT 1 CHAR U2O01040
0043 0902 105 | DC /0902 O U2O01050
0044 0000 106 | COUNT DC 0 LENGTH OF I/O AREA E U2O01060
0045 0F02 107 | SENSE DC /0F02 IOCC TO SENSE DSW O U2O01070
0046 0000 108 | IOAR DC 0 ADDR OF THE I/O AREA U2O01080
0047 0F01 109 | SENS1 DC /0F01 IOCC TO SENSE W/RESET U2O01090
0048 0001 110 | D0001 DC +1 DECIMAL CONS U2O01100
0049 0002 111 | D0002 DC +2 U2O01110
004A 2001 112 | H2001 DC /2001 ERROR CODE FOR ILLEGAL CALL U2O01120
004B 2000 113 | H2000 DC /2000 ERROR CODE--DVC NOT READY U2O01130
004C 0000 114 | SAVA DC 0 SAVE ACC U2O01140
004D 0000 115 | TEMP DC 0 TEMPORARY STG FOR DSW U2O01150
004E 0000 116 | TEMP1 DC 0 CHAR TO BE PRINTED U2O01160
004F 0000 117 | RIGHT DC 0 CHAR INDR--0 IF RIGHT U2O01170
008D 118 | $PST4 EQU /8D POST-OPERATIVE ERROR TRAP U2O01180
119 | *************************************************** U2O01190
120 | * INTERRUPT PROCESSING * U2O01200
121 | *************************************************** U2O01210
122 | * THIS PORTION IS ENTERED FROM AN INTERRUPT * U2O01220
123 | * LEVEL SUBROUTINE (04 IN 1130). THE DATA AREA * U2O01230
124 | * IS UNPACKED, ONE CHARACTER AT A TIME. AFTER * U2O01240
125 | * THE REQUESTED NUMBER OF CHARACTERS HAS BEEN * U2O01250
126 | * PRINTED, THE ROUTINE IS SET NOT BUSY AND THE * U2O01260
127 | * IOCS COUNTER DECREMENTED TO INDICATE INTERR * U2O01270
128 | * PROCESSING COMPLETED. IF AN OPERATOR REQUEST * U2O01280
129 | * INTERRUPT IS DETECTED, THE SUBROUTINE EXITS, * U2O01290
130 | * VIA THE ADDRESS IN LOCATION 44, TO THE USER * U2O01300
131 | * BEFORE RETURNING CONTROL TO THE INTERRUPT * U2O01310
132 | * LEVEL SUBROUTINE. * U2O01320
133 | *************************************************** U2O01330
0050 08F5 134 | WR50 XIO SENS1-1 SENSE DVC U2O01340
0051 D0FB 135 | STO TEMP IS INTRPT A PRINT REQUEST U2O01350
0052 4C10 0075R 136 | BSC L WR66,- NO,GO CHK OPERATOR REQUEST U2O01360
0054 74FF 0044R 137 | MDX L COUNT,-1 YES,ANY MORE CHARS TO PRINT U2O01370
0056 7004 138 | MDX WR60 YES, GO PRINT NEXT U2O01380
0057 74FF 0032 139 | MDX L 50,-1 NO, DECR ISS COUNTER U2O01390
0059 1000 140 | NOP MAY SKIP U2O01400
005A 7019 141 | MDX WR65 GO CHK OPERATOR REQ U2O01410
005B C0F3 142 | WR60 LD RIGHT WAS LAST CHAR LEFT U2O01420
005C 4C18 0065R 143 | BSC L WR62,+- BR IF YES U2O01430
005E 7401 0046R 144 | MDX L IOAR,+1 SET FOR NEXT I/O AREA CHAR U2O01440
0060 1810 145 | SRA 16 LAST CHAR WAS RIGHT U2O01450
0061 D0ED 146 | STO RIGHT CLEAR INDR U2O01460
0062 C480 0046R 147 | LD I IOAR STORE CHAR IN TEMP1 U2O01470
0064 7005 148 | MDX WR64 U2O01480
0065 C0E2 149 | WR62 LD D0001 U2O01490
0066 D0E8 150 | STO RIGHT SET INDR U2O01500
0067 C480 0046R 151 | LD I IOAR U2O01510
0069 1008 152 | SLA 8 STORE CHAR IN TEMP1 U2O01520
006A D0E3 153 | WR64 STO TEMP1 *(BITS 0-7) U2O01530
006B 08D8 154 | WR64A XIO SENSE-1 IS 1053 READY U2O01540
006C 1005 155 | SLA 5 U2O01550
006D 4C28 0077R 156 | BSC L WR66A,Z+ NO, GO TO ERROR TRAP U2O01560
006F 08D4 157 | XIO SENSE-1 IS 1053 STILL READY U2O01570
0070 1005 158 | SLA 5 U2O01580
0071 4C28 0077R 159 | BSC L WR66A,Z+ NO,WAS CONTACT BOUNCE U2O01590
0073 08CE 160 | XIO PRINT PRINT 1 CHAR U2O01600
0074 C0D8 161 | WR65 LD TEMP U2O01610
0075 4C80 0004R 162 | WR66 BSC I INT1 EXIT TO INTRPT LEVEL SUBR U2O01640
163 | * U2O01650
164 | *EXIT TO POST-OPERATIVE ERROR TRAP WITH NOT READY U2O01660
165 | *ERROR CODE IN THE ACCUMULATOR. U2O01670
166 | * U2O01680
0077 C0D3 167 | WR66A LD H2000 ERROR CODE INTO ACC U2O01690
0078 4400 008D 168 | BSI L $PST4 U2O01700
007A 70F0 169 | MDX WR64A TRY AGAIN U2O01710
007B 170 | END U2O01720
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$PST4 008D 118 168
AREA 0007R 47
COUNT 0044R 106 58 64 72 137
D0001 0048R 110 74 149
D0002 0049R 111 62
H2000 004BR 113 95 167
H2001 004AR 112 93
INT1 0004R 45 162
IOAR 0046R 108 75 78 144 147 151
LINK 0001R 43
PRINT 0042R 104 82 160
RIGHT 004FR 117 77 142 146 150
SAVA 004CR 114 54 84
SENS1 0047R 109 134
SENSE 0045R 107 66 154 157
TEMP 004DR 115 135 161
TEMP1 004ER 116 79 104 153
WR10 0009R 52 44
WR12 0014R 62 57
WR13 0017R 64 65
WR14 001AR 66
WR20 001ER 69
WR26 0030R 83 61
WR28 0032R 85 99
WR30 0033R 86 42
WR32 0035R 87 52
WR34 0037R 88 53
WR36 0038R 89 85
WR40 003AR 93 63 71
WR42 003CR 95 68
WR44 003DR 96 94
WR50 0050R 134 46
WR60 005BR 142 138
WR62 0065R 149 143
WR64 006AR 153 148
WR64A 006BR 154 169
WR65 0074R 161 141
WR66 0075R 162 136
WR66A 0077R 167 156 159
WRTY0 0000R 42