PAGE 2
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
1 ********************************************************************* 00010000
2 * 00020000
3 * XXXX XXXXX XXXX X X XXXX 00030000
4 * X X X X X X X 00040000
5 * X X X XXX XX XXXX 00050000
6 * X X X X X X X 00060000
7 * XXXX XXXXX XXXX X X XXXX 00070000
8 * 00080000
9 ********************************************************************* 00090000
000000 10 DISK3 START 0 00100000
000000 0000000000000800 11 STARTPSW DC X'0000000000',AL3(BEGIN) 00110000
12 * 00120000
13 * 00130000
000008 00800 14 ORG DISK3+2048 BEING AT 2K 00140000
15 * 00150000
000800 05C0 16 BEGIN BALR R12,0 SET BASE REGISTER 00160000
00802 17 USING *,R12,R11 00170000
18 * 00180000
000802 41B0 C800 00800 19 LA R11,2048(,R12) SET UP 00190000
000806 41B0 B800 00800 20 LA R11,2048(,R11) SECOND BASE REGISTER 00200000
21 * 00210000
00080A 41D0 C8E6 010E8 22 LA R13,SAVEA FIRST SAVE AREA 00220000
23 * 00230000
24 ********************************************************************* 00240000
25 * READ THE VOLUME LABLE TO GET THE VTOC BEGINNING ADDRESS 00250000
26 * 00260000
27 * VOL1 LABEL RECORD AT CC=00 HH=00 R=3 DATA LENGTH=80 00270000
28 ********************************************************************* 00280000
29 * 00290000
30 @PRINT '---READ VOLUME LABEL' 00300000
00080E 4110 C756 00F58 31+ LA R1,=C'---READ VOLUME LABEL' 00170000
000812 4100 0014 00014 32+ LA R0,20 00200000
000816 41F0 C43C 00C3E 33+ LA R15,@PRINT 00210000
00081A 05EF 34+ BALR R14,R15 00220000
35 * 00310000
00081C 4110 0050 00050 36 LA R1,80 VOL1 LENGTH 00320000
000820 5010 C8BA 010BC 37 ST R1,CCWREAD+4 00330000
000824 4110 CAFE 01300 38 LA R1,INBUF BUFFER ADDRESS 00340000
000828 5010 C8B6 010B8 39 ST R1,CCWREAD 00350000
00082C 9206 C8B6 010B8 40 MVI CCWREAD,X'06' READ DATA 00360000
41 * 00370000
000830 D204 CA19 C7F0 0121B 00FF2 42 MVC CCHHR(5),=X'0000000003' CC=00 H=00 R=3 (VOL1) 00380000
43 * 00390000
000836 4110 C9FE 01200 44 LA R1,IORB 00400000
PAGE 3
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
00083A 45E0 C31E 00B20 45 BAL R14,XIO EXECUTE THE CCW CHAIN 00410000
00083E 12FF 46 LTR R15,R15 00420000
000840 4770 C438 00C3A 47 BNZ ERREXIT BRANCH IF FAILED 00430000
48 * 00440000
49 ********************************************************************* 00450000
50 * READ THE FMT 4 DSCB 00460000
51 * 00470000
52 * VTOC BEGINNING CCHHR FROM VOL1 RECORD 00480000
53 ********************************************************************* 00490000
54 * 00500000
55 @PRINT '-----READ FORMAT 4 DSCB' 00510000
000844 4110 C7F5 00FF7 56+ LA R1,=C'-----READ FORMAT 4 DSCB' 00170000
000848 4100 0017 00017 57+ LA R0,23 00200000
00084C 41F0 C43C 00C3E 58+ LA R15,@PRINT 00210000
000850 05EF 59+ BALR R14,R15 00220000
60 * 00520000
000852 D204 C8BE CB09 010C0 0130B 61 MVC VTOCADDR,INBUF+11 SAVE VTOC ADDRESS FROM VOL RECORD 00530000
62 * 00540000
000858 D204 CA19 C8BE 0121B 010C0 63 MVC CCHHR(5),VTOCADDR 00550000
64 * 00560000
00085E 4110 0060 00060 65 LA R1,96 DSCB DATA LENGTH 00570000
000862 5010 C8BA 010BC 66 ST R1,CCWREAD+4 00580000
000866 4110 C996 01198 67 LA R1,DSCB1BUF I/O BUFFER 00590000
00086A 5010 C8B6 010B8 68 ST R1,CCWREAD 00600000
00086E 9206 C8B6 010B8 69 MVI CCWREAD,X'06' READ DATA 00610000
70 * 00620000
000872 4110 C9FE 01200 71 LA R1,IORB 00630000
000876 45E0 C31E 00B20 72 BAL R14,XIO EXECUTE CCW CHAIN 00640000
00087A 12FF 73 LTR R15,R15 00650000
00087C 4770 C438 00C3A 74 BNZ ERREXIT BRANCH IF ERROR 00660000
75 * 00670000
000880 D203 C8C3 C9D9 010C5 011DB 76 MVC VTOCEND,DSCB1BUF+67 ENDING CCHH OF VTOC EXTENT 00680000
000886 D204 C8C7 C997 010C9 01199 77 MVC HIWATER,DSCB1BUF+1 SAVE HIGHT WATER DSCB ADDRESS 00690000
00088C 1F11 78 SLR R1,R1 00700000
00088E BF13 C9AA 011AC 79 ICM R1,B'0011',DSCB1BUF+20 GET TRKS/CYL 00710000
000892 4010 C8D0 010D2 80 STH R1,TRKCYL SAVE TRKS/CYL 00720000
81 * 00730000
82 ********************************************************************* 00740000
83 * FIND FMT 1 DSCB FOR 'TXXOS.NUCLEUS' 00750000
84 * 00760000
85 * SEARCH FOR FMT1 DSCB 00770000
86 ********************************************************************* 00780000
87 * 00790000
88 @PRINT '-----FIND FORMAT 1 DSCB ''TXXOS.NUCLEUS''' 00800000
PAGE 4
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
000896 4110 C80C 0100E 89+ LA R1,=C'-----FIND FORMAT 1 DSCB ''TXXOS.NUCLEUS''' 00170000
00089A 4100 0029 00029 90+ LA R0,41 00200000
00089E 41F0 C43C 00C3E 91+ LA R15,@PRINT 00210000
0008A2 05EF 92+ BALR R14,R15 00220000
93 * 00810000
0008A4 4110 0060 00060 94 LA R1,96 DSCB DATA LENGTH 00820000
0008A8 5010 C8BA 010BC 95 ST R1,CCWREAD+4 00830000
0008AC 4110 CAFE 01300 96 LA R1,INBUF I/O BUFFER ADDR 00840000
0008B0 5010 C8B6 010B8 97 ST R1,CCWREAD 00850000
0008B4 9206 C8B6 010B8 98 MVI CCWREAD,X'06' READ DATA 00860000
99 * 00870000
0008B8 4110 002C 0002C 100 LA R1,44 KEY LENGTH FOR DSCB BLOCK 00880000
0008BC 5010 C8AA 010AC 101 ST R1,CCWSRCH+4 00890000
0008C0 9240 C8AA 010AC 102 MVI CCWSRCH+4,@CCW#CC + COMMAND CHAIN 00900000
0008C4 4110 C868 0106A 103 LA R1,DSNAME KEY (NAME TO SEARCH FOR) 00910000
0008C8 5010 C8A6 010A8 104 ST R1,CCWSRCH 00920000
0008CC 9229 C8A6 010A8 105 MVI CCWSRCH,X'29' SEARCH KEY EQUAL 00930000
106 * 00940000
0008D0 107 FINDLOOP DS 0H 00950000
0008D0 D503 CA19 C8C3 0121B 010C5 108 CLC CC(4),VTOCEND CHECK FOR END OF EXTENT 00960000
0008D6 4720 C130 00932 109 BH DSCBNFND BRANCH IF WE REACHED THE END 00970000
110 * 00980000
0008DA 4110 C9FE 01200 111 LA R1,IORB ISSUE 00990000
0008DE 45E0 C31E 00B20 112 BAL R14,XIO I/O REQUEST 01000000
113 * 01010000
0008E2 12FF 114 LTR R15,R15 BRANCH IF 01020000
0008E4 4780 C11C 0091E 115 BZ DSCBFND FOUND 01030000
116 * 01040000
0008E8 D503 CA19 C8C7 0121B 010C9 117 CLC CCHHR(4),HIWATER HIT HIGH WATER DSCB ADDRESS ? 01050000
0008EE 47B0 C130 00932 118 BNL DSCBNFND YES - STOP SEARCH 01060000
119 * 01070000
0008F2 1F11 120 SLR R1,R1 SET UP TO SEARCH NEXT TRACK 01080000
0008F4 BF13 CA1B 0121D 121 ICM R1,B'0011',HH GET TRACK ADDRESS 01090000
0008F8 4110 1001 00001 122 LA R1,1(,R1) ADD ONE 01100000
0008FC BE13 CA1B 0121D 123 STCM R1,B'0011',HH SAVE BACK 01110000
124 * 01120000
000900 4910 C8D0 010D2 125 CH R1,TRKCYL COMPARE TO TRAKS/CYLINDER 01130000
000904 4740 C0CE 008D0 126 BL FINDLOOP LOOP BACK AND TRY AGAIN 01140000
127 * 01150000
000908 D701 CA1B CA1B 0121D 0121D 128 XC HH,HH SET TRACK TO ZERO 01160000
00090E BF13 CA19 0121B 129 ICM R1,B'0011',CC GET CYLINDER 01170000
000912 4110 1001 00001 130 LA R1,1(,R1) ADD ONE 01180000
000916 BE13 CA19 0121B 131 STCM R1,B'0011',CC SAVE BACK 01190000
00091A 47F0 C0CE 008D0 132 B FINDLOOP ...AND LOOP BACK 01200000
PAGE 5
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
133 * 01210000
134 * 01220000
135 * 01230000
00091E 136 DSCBFND DS 0H FOUND THE DSCB FOR OUR DATA SET 01240000
00091E D203 CA19 CB3D 0121B 0133F 137 MVC CCHHR(4),INBUF+105+2-44 BEGINNING FIRST EXTENT 01250000
000924 D203 C8CC CA19 010CE 0121B 138 MVC BEGEXT,CCHHR SAVE BEGINNING EXTENT ADDRESS 01260000
00092A 9200 CA1D 0121F 139 MVI R,0 RESET RECORD NUMBER 01270000
140 * 01280000
00092E 47F0 C142 00944 141 B DSCBDONE NOW READ DATA SET DIR BLOCK 01290000
142 * 01300000
143 * 01310000
144 * 01320000
000932 145 DSCBNFND DS 0H 01330000
146 @PRINT '*** TXXOS.NUCLEUS NOT FOUND ***' 01340000
000932 4110 C833 01035 147+ LA R1,=C'*** TXXOS.NUCLEUS NOT FOUND ***' 00170000
000936 4100 001F 0001F 148+ LA R0,31 00200000
00093A 41F0 C43C 00C3E 149+ LA R15,@PRINT 00210000
00093E 05EF 150+ BALR R14,R15 00220000
000940 47F0 C434 00C36 151 B EXIT 01350000
152 * 01360000
153 * 01370000
154 * 01380000
155 * 01390000
156 ********************************************************************* 01400000
157 * NOW READ THE PDS DIRECTORY TO FIND REQUESTED MEMBER 01410000
158 * 01420000
159 * PDS DIR LOCATED AT BEGINNING OF PDS DATA SET 01430000
160 ********************************************************************* 01440000
161 * 01450000
000944 162 DSCBDONE DS 0H 01460000
163 @PRINT '-----READ DIRECTORY BLOCKS' 01470000
000944 4110 C77A 00F7C 164+ LA R1,=C'-----READ DIRECTORY BLOCKS' 00170000
000948 4100 001A 0001A 165+ LA R0,26 00200000
00094C 41F0 C43C 00C3E 166+ LA R15,@PRINT 00210000
000950 05EF 167+ BALR R14,R15 00220000
168 * 01480000
000952 4110 0100 00100 169 LA R1,256 DIR BLOCK DATA LENGTH 01490000
000956 5010 C8BA 010BC 170 ST R1,CCWREAD+4 01500000
00095A 4110 CAFE 01300 171 LA R1,INBUF I/O BUFFER 01510000
00095E 5010 C8B6 010B8 172 ST R1,CCWREAD 01520000
000962 9206 C8B6 010B8 173 MVI CCWREAD,X'06' READ DATA 01530000
174 * 01540000
000966 4110 0005 00005 175 LA R1,5 BLOCK ID LENGTH 01550000
00096A 5010 C8AA 010AC 176 ST R1,CCWSRCH+4 01560000
PAGE 6
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
00096E 9240 C8AA 010AC 177 MVI CCWSRCH+4,@CCW#CC COMMAND CHAIN 01570000
000972 4110 CA19 0121B 178 LA R1,MBBCCHHR+3 BLOCK ID (CCHHR) 01580000
000976 5010 C8A6 010A8 179 ST R1,CCWSRCH 01590000
00097A 9231 C8A6 010A8 180 MVI CCWSRCH,X'31' SEARCH ID EQUAL 01600000
181 * 01610000
182 * 01620000
00097E 183 DIRBLOOP DS 0H 01630000
00097E 1F11 184 SLR R1,R1 01640000
000980 4310 CA1D 0121F 185 IC R1,R GET RECORD NUMBER 01650000
000984 4110 1001 00001 186 LA R1,1(,R1) ADD 01660000
000988 4210 CA1D 0121F 187 STC R1,R ONE 01670000
00098C 4110 C9FE 01200 188 LA R1,IORB EXECUTE 01680000
000990 45E0 C31E 00B20 189 BAL R14,XIO I/O REQUEST 01690000
190 * 01700000
000994 12FF 191 LTR R15,R15 01710000
000996 4770 C1E0 009E2 192 BNZ DIREOF ERR - NOT FOUND 01720000
193 * 01730000
194 * 01740000
00099A 4120 CAFE 01300 195 LA R2,INBUF POINTER TO PDS INDEX BLOCK 01750000
00099E 1F33 196 SLR R3,R3 GET LENGTH 01760000
0009A0 BF33 2000 00000 197 ICM R3,B'0011',0(R2) USED 01770000
198 * 01780000
0009A4 4120 2002 00002 199 LA R2,2(,R2) POINT TO FIRST ENTRY 01790000
0009A8 5B30 C76A 00F6C 200 S R3,=F'2' ADJUST LENGTH 01800000
201 * 01810000
0009AC 202 DIRLOOP DS 0H 01820000
0009AC 5930 C76E 00F70 203 C R3,=F'0' MORE DATA AVAILABLE 01830000
0009B0 47D0 C17C 0097E 204 BNH DIRBLOOP NO - READ ANOTHER BLOCK 01840000
205 * 01850000
0009B4 D507 C72E 2000 00F30 00000 206 CLC =XL8'FFFFFFFFFFFFFFFF',0(R2) END OF DIRECTORY? 01860000
0009BA 4780 C1E0 009E2 207 BE DIREOF 01870000
208 * 01880000
0009BE D507 C736 2000 00F38 00000 209 CLC =CL8'TXXNUC28',0(R2) IS THIS OUR ENTRY 01890000
0009C4 4780 C1F2 009F4 210 BE DIRFOUND 01900000
211 * 01910000
0009C8 1F11 212 SLR R1,R1 01920000
0009CA BF11 200B 0000B 213 ICM R1,B'0001',11(R2) GET C FIELD 01930000
0009CE 5410 C772 00F74 214 N R1,=A(X'1F') GET USER DATA LENGTH 01940000
0009D2 8910 0001 00001 215 SLL R1,1 MULTIPLY BY 2 01950000
216 * 01960000
0009D6 4110 100C 0000C 217 LA R1,12(,R1) ADD IN FIXED LENGTH 01970000
218 * 01980000
0009DA 1A21 219 AR R2,R1 POINT TO NEXT ENTRY 01990000
0009DC 1B31 220 SR R3,R1 ADJUST LENGTH 02000000
PAGE 7
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
221 * 02010000
0009DE 47F0 C1AA 009AC 222 B DIRLOOP PROCESS NEXT DIR ENTRY 02020000
223 * 02030000
224 * 02040000
225 * 02050000
0009E2 226 DIREOF DS 0H 02060000
227 @PRINT 'DIRECTORY ENTRY FOR TXXNUC28 NOT FOUND' 02070000
0009E2 4110 C794 00F96 228+ LA R1,=C'DIRECTORY ENTRY FOR TXXNUC28 NOT FOUND' 00170000
0009E6 4100 0026 00026 229+ LA R0,38 00200000
0009EA 41F0 C43C 00C3E 230+ LA R15,@PRINT 00210000
0009EE 05EF 231+ BALR R14,R15 00220000
0009F0 47F0 C434 00C36 232 B EXIT 02080000
233 * 02090000
234 * 02100000
235 * 02110000
236 ********************************************************************** 02120000
237 * NOW WE CAN READ THE DATA FOR THE MEMBER 02130000
238 * 02140000
239 * DIRECTORY ENTRY TTR IS OFFSET TO FIRST DATA RECORD 02150000
240 ********************************************************************** 02160000
241 * 02170000
0009F4 242 DIRFOUND DS 0H 02180000
0009F4 1882 243 LR R8,R2 SAVE DIRECTORY ENTRY PTR 02190000
244 * 02200000
0009F6 1F11 245 SLR R1,R1 02210000
0009F8 1F00 246 SLR R0,R0 02220000
0009FA 1F22 247 SLR R2,R2 02230000
248 * 02240000
0009FC BF13 C8CE 010D0 249 ICM R1,B'0011',BEGEXT+2 GET HH OF EXTENT BEGIN 02250000
000A00 BF23 8008 00008 250 ICM R2,B'0011',8(R8) GET RELATIVE TT OFFSET 02260000
000A04 1A12 251 AR R1,R2 02270000
252 * 02280000
000A06 48F0 C8D0 010D2 253 LH R15,TRKCYL TRACKS/CYLINDER 02290000
000A0A 1D0F 254 DR R0,R15 GET CYL/TRK OFFSET 02300000
255 * 02310000
000A0C BF23 C8CC 010CE 256 ICM R2,B'0011',BEGEXT GET CC OF EXTENT BEGIN 02320000
000A10 1A21 257 AR R2,R1 GET CC OF FIRST DATA BLK 02330000
000A12 BE23 CA19 0121B 258 STCM R2,B'0011',CC 02340000
259 * 02350000
000A16 BE03 CA1B 0121D 260 STCM R0,B'0011',HH 02360000
000A1A D200 CA1D 800A 0121F 0000A 261 MVC R,10(R8) GET RECORD FROM TTR 02370000
262 * 02380000
000A20 5810 C776 00F78 263 L R1,=A(19069) MAX BLOCK LENGTH 02390000
000A24 5010 C8BA 010BC 264 ST R1,CCWREAD+4 02400000
PAGE 8
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
000A28 9220 C8BA 010BC 265 MVI CCWREAD+4,@CCW#SLI SUPPRESS INCORRECT LENGTH 02410000
000A2C 4110 CAFE 01300 266 LA R1,INBUF I/O BUFFER 02420000
000A30 5010 C8B6 010B8 267 ST R1,CCWREAD 02430000
000A34 9206 C8B6 010B8 268 MVI CCWREAD,X'06' READ DATA 02440000
269 * 02450000
000A38 4110 0005 00005 270 LA R1,5 BLOCK ID LENGTH 02460000
000A3C 5010 C8AA 010AC 271 ST R1,CCWSRCH+4 02470000
000A40 9240 C8AA 010AC 272 MVI CCWSRCH+4,@CCW#CC COMMAND CHAIN 02480000
000A44 4110 CA19 0121B 273 LA R1,MBBCCHHR+3 BLOCK ID (CCHHR) 02490000
000A48 5010 C8A6 010A8 274 ST R1,CCWSRCH 02500000
000A4C 9231 C8A6 010A8 275 MVI CCWSRCH,X'31' SEARCH ID EQUAL 02510000
276 * 02520000
277 @PRINT '----- READ PDS MEMBER DATA' 02530000
000A50 4110 C7BA 00FBC 278+ LA R1,=C'----- READ PDS MEMBER DATA' 00170000
000A54 4100 001A 0001A 279+ LA R0,26 00200000
000A58 41F0 C43C 00C3E 280+ LA R15,@PRINT 00210000
000A5C 05EF 281+ BALR R14,R15 00220000
282 @PRINT ' ' 02540000
000A5E 4110 C852 01054 283+ LA R1,=C' ' 00170000
000A62 4100 0001 00001 284+ LA R0,1 00200000
000A66 41F0 C43C 00C3E 285+ LA R15,@PRINT 00210000
000A6A 05EF 286+ BALR R14,R15 00220000
287 * 02550000
000A6C 288 BREAD DS 0H 02560000
000A6C 4110 C9FE 01200 289 LA R1,IORB EXECUTE 02570000
000A70 45E0 C31E 00B20 290 BAL R14,XIO I/O REQUEST 02580000
291 * 02590000
000A74 12FF 292 LTR R15,R15 02600000
000A76 4770 C2B2 00AB4 293 BNZ BREAD010 BRANCH IF ERROR 02610000
294 * 02620000
000A7A 1F11 295 SLR R1,R1 02630000
000A7C 4310 CA1D 0121F 296 IC R1,R GET RECORD NUMBER 02640000
000A80 4110 1001 00001 297 LA R1,1(,R1) ADD 02650000
000A84 4210 CA1D 0121F 298 STC R1,R ONE 02660000
299 * 02670000
000A88 1F33 300 SLR R3,R3 02680000
000A8A BF33 C8BC 010BE 301 ICM R3,B'0011',CCWREAD+6 LENGTH ATTEMPTED TO READ 02690000
000A8E 1F11 302 SLR R1,R1 02700000
000A90 BF13 CA0C 0120E 303 ICM R1,B'0011',IORB+(IORCSW-IOR)+6 GET RESUDUAL LENGTH 02710000
000A94 1B31 304 SR R3,R1 CALC ACTUAL BLOCK LENGTH 02720000
305 * 02730000
306 @DUMP INBUF,(R3) DUMP THE BLOCK 02740000
000A96 4110 CAFE 01300 307+ LA R1,INBUF 00360000
000A9A 1803 308+ LR R0,R3 00290000
PAGE 9
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
000A9C 41F0 C496 00C98 309+ LA R15,@DUMP 00080000
000AA0 05EF 310+ BALR R14,R15 00090000
311 @PRINT ' ' 02750000
000AA2 4110 C852 01054 312+ LA R1,=C' ' 00170000
000AA6 4100 0001 00001 313+ LA R0,1 00200000
000AAA 41F0 C43C 00C3E 314+ LA R15,@PRINT 00210000
000AAE 05EF 315+ BALR R14,R15 00220000
000AB0 47F0 C26A 00A6C 316 B BREAD LOOP BACK FOR NEXT BLOCK 02760000
317 * 02770000
318 * 02780000
000AB4 319 BREAD010 DS 0H 02790000
000AB4 9101 CA0A 0120C 320 TM IORB+(IORCSW-IOR)+4,X'01' UNIT EXCEPTION? 02800000
000AB8 4710 C30C 00B0E 321 BO BREAD030 YES - END OF FILE 02810000
322 * 02820000
000ABC 9102 CA0A 0120C 323 TM IORB+(IORCSW-IOR)+4,X'02' UNIT CHECK? 02830000
000AC0 47E0 C2FA 00AFC 324 BNO BREAD020 NO - OTHER ERROR 02840000
325 * 02850000
000AC4 9108 CA0F 01211 326 TM IORB+(IORSENS1-IOR),X'08' NO RECORD FOUND? 02860000
000AC8 47E0 C2FA 00AFC 327 BNO BREAD020 NO - OTHER ERROR 02870000
328 * 02880000
000ACC 9201 CA1D 0121F 329 MVI R,1 RESET TO RECORD 1 02890000
000AD0 1F11 330 SLR R1,R1 02900000
000AD2 BF13 CA1B 0121D 331 ICM R1,B'0011',HH GET HEAD 02910000
000AD6 4110 1001 00001 332 LA R1,1(,R1) ADD ONE 02920000
000ADA BE13 CA1B 0121D 333 STCM R1,B'0011',HH SAVE IT BACK 02930000
334 * 02940000
000ADE 4910 C8D0 010D2 335 CH R1,TRKCYL COMPARE TO TRKS/CYL 02950000
000AE2 4740 C26A 00A6C 336 BL BREAD GO READ AGAIN 02960000
337 * 02970000
000AE6 D701 CA1B CA1B 0121D 0121D 338 XC HH,HH SET HH = 0 02980000
000AEC BF13 CA19 0121B 339 ICM R1,B'0011',CC GET CYLINDER 02990000
000AF0 4110 1001 00001 340 LA R1,1(,R1) ADD ONE 03000000
000AF4 BE13 CA19 0121B 341 STCM R1,B'0011',CC SAVE BACK 03010000
000AF8 47F0 C26A 00A6C 342 B BREAD GO READ AGAIN 03020000
343 * 03030000
344 * 03040000
000AFC 345 BREAD020 DS 0H 03050000
346 @PRINT '*** ERROR READING DATA ***' 03060000
000AFC 4110 C7D4 00FD6 347+ LA R1,=C'*** ERROR READING DATA ***' 00170000
000B00 4100 001A 0001A 348+ LA R0,26 00200000
000B04 41F0 C43C 00C3E 349+ LA R15,@PRINT 00210000
000B08 05EF 350+ BALR R14,R15 00220000
000B0A 47F0 C434 00C36 351 B EXIT 03070000
352 * 03080000
PAGE 10
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
353 * 03090000
000B0E 354 BREAD030 DS 0H 03100000
355 @PRINT '*** EOF READING DATA ***' 03110000
000B0E 4110 C73E 00F40 356+ LA R1,=C'*** EOF READING DATA ***' 00170000
000B12 4100 0018 00018 357+ LA R0,24 00200000
000B16 41F0 C43C 00C3E 358+ LA R15,@PRINT 00210000
000B1A 05EF 359+ BALR R14,R15 00220000
000B1C 47F0 C434 00C36 360 B EXIT 03120000
361 * 03130000
362 * 03140000
363 ********************************************************************** 03150000
364 * XIO - PERFORM I/O SUBROUTINE 03160000
365 * R1 = A(IOR) I/O REQUEST BLOCK 03170000
366 * ON EXIT R15 CONTAINS A RETURN CODE 03180000
367 ********************************************************************** 03190000
368 * 03200000
000B20 369 XIO DS 0H 03210000
000B20 90EC D00C 0000C 370 STM R14,R12,12(R13) SAVE CALLER'S REGISTERS 03220000
000B24 41E0 C92E 01130 371 LA R14,XIOSAVE POINT TO OUR SAVE ADDRESS 03230000
000B28 50E0 D008 00008 372 ST R14,8(,R13) 03240000
000B2C 50D0 E004 00004 373 ST R13,4(,R14) 03250000
000B30 18DE 374 LR R13,R14 03260000
375 * 03270000
000B32 18A1 376 LR R10,R1 IOR BLOCK ADDRESS 03280000
00000 377 USING IOR,R10 03290000
378 * 03300000
000B34 D700 A006 A006 00006 00006 379 XC IORSIOCC,IORSIOCC 03310000
000B3A D701 A010 A010 00010 00010 380 XC IORSENS0(2),IORSENS0 03320000
000B40 D707 A008 A008 00008 00008 381 XC IORCSW,IORCSW 03330000
382 * 03340000
000B46 5810 A000 00000 383 L R1,IORCCW POINT TO CCW CHAIN 03350000
000B4A 5010 0048 00048 384 ST R1,72 SAVE INTO CAW 03360000
000B4E 1F22 385 SLR R2,R2 03370000
000B50 BF23 A004 00004 386 ICM R2,B'0011',IORUNIT DEVICE ADDRESS 03380000
000B54 9C00 2000 00000 387 SIO 0(R2) START I/O 03390000
000B58 4740 C3D0 00BD2 388 BC 4,SIOCC4 BRANCH IF SIO NOT ACCEPTED 03400000
000B5C 4720 C3C4 00BC6 389 BC 2,SIOCC2 BRANCH IF SIO NOT ACCEPTED 03410000
000B60 4710 C3B8 00BBA 390 BC 1,SIOCC1 BRANCH IF SIO NOT ACCEPTED 03420000
391 * 03430000
000B64 9D00 2000 00000 392 WAITIO TIO 0(R2) WAIT FOR I/O COMPLETION 03440000
000B68 4710 C3DC 00BDE 393 BC 1,TIOCC1 BRANCH IF ERROR 03450000
000B6C 4770 C362 00B64 394 BC 7,WAITIO KEEP WAITING... 03460000
395 * 03470000
000B70 D207 A008 0040 00008 00040 396 MVC IORCSW,64 SAVE CSW 03480000
PAGE 11
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT ASM 0201 15.58 12/08/11
000B76 D501 C7EE A00C 00FF0 0000C 397 CLC =X'0C00',IORCSW+4 CHANNEL END/DEVICE END 03490000
000B7C 4780 C3B0 00BB2 398 BE WAITIO20 YES - GOOD COMPLETION 03500000
000B80 9102 A00C 0000C 399 TM IORCSW+4,X'02' UNIT CHECK? 03510000
000B84 47E0 C3A8 00BAA 400 BNO WAITIO15 NO - DON'T NEED TO SO SENSE 03520000
401 * 03530000
402 * 03540000
000B88 4110 C896 01098 403 LA R1,CCWSENSE 03550000
000B8C 5010 0048 00048 404 ST R1,72 SAVE INTO CAW 03560000
000B90 9C00 2000 00000 405 SIO 0(R2) START I/O 03570000
000B94 4770 C3DC 00BDE 406 BC 7,WAITIO99 ERROR 03580000
407 * 03590000
000B98 9D00 2000 00000 408 WAITIO10 TIO 0(R2) WAIT FOR I/O COMPLETION 03600000
000B9C 4710 C3DC 00BDE 409 BC 1,WAITIO99 BRANCH IF ERROR 03610000
000BA0 4770 C396 00B98 410 BC 7,WAITIO10 KEEP WAITING... 03620000
411 * 03630000
000BA4 D201 A010 C976 00010 01178 412 MVC IORSENS0(2),SENSE SAVE SENSE BYTES 0 & 1 03640000
000BAA 413 WAITIO15 DS 0H WAIT FOR I/O COMPLETION 03650000
000BAA 41F0 0004 00004 414 LA R15,4 SET RC=4 03660000
000BAE 47F0 C3E4 00BE6 415 B XIOXT 03670000
416 * 03680000
417 * 03690000
000BB2 418 WAITIO20 DS 0H 03700000
000BB2 41F0 0000 00000 419 LA R15,0 03710000
000BB6 47F0 C3E4 00BE6 420 B XIOXT 03720000
421 * 03730000
422 * 03740000
000BBA 423 SIOCC1 DS 0H 03750000
000BBA 9201 A006 00006 424 MVI IORSIOCC,X'01' 03760000
000BBE 41F0 0008 00008 425 LA R15,8 03770000
000BC2 47F0 C3E4 00BE6 426 B XIOXT 03780000
427 * 03790000
428 * 03800000
000BC6 429 SIOCC2 DS 0H 03810000
000BC6 9202 A006 00006 430 MVI IORSIOCC,X'02' 03820000
000BCA 41F0 0008 00008 431 LA R15,8 03830000
000BCE 47F0 C3E4 00BE6 432 B XIOXT 03840000
433 * 03850000
434 * 03860000
000BD2 435 SIOCC4 DS 0H 03870000
000BD2 9204 A006 00006 436 MVI IORSIOCC,X'04' 03880000
000BD6 41F0 0008 00008 437 LA R15,8 03890000
000BDA 47F0 C3E4 00BE6 438 B XIOXT 03900000
439 * 03910000
440 * 03920000
[Next – DISK3 Assembly Listing – Part 2]