1 High Level Assembler Option Summary (PTF UK37157) Page 1 - HLASM R6.0 2016/08/29 08.42 0 No Overriding ASMAOPT Parameters Overriding Parameters- OBJECT,ESD,RXREF,RLD,XREF(SHORT,UNREFS),DXREF,LIST,TERM,ASA No Process Statements Options for this Assembly 0 NOADATA ALIGN 3 ASA BATCH CODEPAGE(047C) NOCOMPAT NODBCS NODECK 3 DXREF 3 ESD NOEXIT FLAG(0,ALIGN,CONT,EXLITW,NOIMPLEN,NOPAGE0,PUSH,RECORD,NOSUBSTR,USING0) NOFOLD NOGOFF NOINFO LANGUAGE(EN) NOLIBMAC LINECOUNT(60) 3 LIST(121) MACHINE(,NOLIST) MXREF(SOURCE) 3 OBJECT OPTABLE(UNI,NOLIST) NOPCONTROL NOPESTOP NOPROFILE NORA2 NORENT 3 RLD 3 RXREF SECTALGN(8) SIZE(MAX) NOSUPRWARN SYSPARM() 3 TERM(WIDE) NOTEST THREAD NOTRANSLATE TYPECHECK(MAGNITUDE,REGISTER) USING(NOLIMIT,MAP,WARN(15)) NOWORKFILE 3 XREF(SHORT,UNREFS) Standard DD Names- SYSLIN SYSLIB SYSIN SYSPRINT SYSPUNCH SYSUT1 SYSTERM SYSADATA ASMAOPT Overriding DD Names- SYS00013 SYS00005 SYS00011 SYS00012 SYS00010 1 External Symbol Dictionary Page 2 -Symbol Type Id Address Length Owner Id Flags Alias-of HLASM R6.0 2016/08/29 08.42 0PROGRAM SD 00000001 00000000 00001770 00 CARDLDR SD 00000002 00001770 000000A0 00 IPLCARD SD 00000003 00001810 00000050 00 1 Sample Operating System Version 2.00 Page 3 Active Usings: None 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 2 *********************************************************************** 00020000 3 * * 00030000 4 * ***************************************************************** * 00040000 5 * * * * 00050000 6 * * Sample Operating System * * 00060002 7 * * Version 2.00 * * 00067002 8 * * Developed at MIT 1973 * * 00074002 9 * * * * 00090000 10 * ***************************************************************** * 00100000 11 * * 00100602 12 * Update 2015/10/31 Juergen Winkelmann, e-mail winkelmann@id.ethz.ch * 00101202 13 * * 00101802 14 * - change storage protection alignments to 4K \ * 00102402 15 * - replace SSK/ISK instructions with SSKE/ISKE > 4K support * 00103002 16 * - minor changes in storage protection logic / * 00103602 17 * - change number of parallel processing streams to 4 * 00104202 18 * - change core size to 16M * 00104802 19 * - replace table of valid $JOB card core requests with general * 00105402 20 * logic rounding up any none full page request entered to next * 00106002 21 * full page * 00106602 22 * - add IPL card and two card loader for one stop creation of an * 00107202 23 * IPLable card deck * 00107802 24 * - ignore external interrupts during initialization to avoid * 00108402 25 * IPLRTN getting interrupted by the interval timer * 00109002 26 * * 00109103 27 * Update 2015/11/05 Juergen Winkelmann, e-mail winkelmann@id.ethz.ch * 00109203 28 * * 00109303 29 * - allow reloading card readers without needing to re-IPL the * 00109403 30 * system. This functionality relies on Hercules' card reader * 00109503 31 * behavior with the EOF initialization in place. It will not * 00109603 32 * work in INTR mode. * 00109703 33 * * 00109744 34 * Update 2015/11/13 Juergen Winkelmann, e-mail winkelmann@id.ethz.ch * 00109784 35 * * 00109824 36 * - add UCB to support a console at 009 using the EXCP device * 00109864 37 * handler. * 00109904 38 * * 00110000 39 *********************************************************************** 00120000 - 41 PRINT ON,NODATA,GEN 00140000 000000 00000 01770 42 PROGRAM CSECT , sample operating system starts at zero 00150002 001770 01770 000A0 43 CARDLDR CSECT , two card loader follows at the end 00150102 44 *** 00150202 45 *** IPL card 00150302 46 *** 00150402 001810 01810 00050 47 IPLCARD CSECT , IPLable deck must begin with this card 00150502 001810 0000000000 48 PSWD DC F'0',X'00' initial program status word, disabled 00150602 001815 001770 49 DC AL3(LOADER) start execution at load address 00150702 001818 02001770 50 CCW1 DC X'02',AL3(LOADER) read 1st card to load address 00150802 00181C 40000050 51 DC XL4'40000050' chain, read length = 80 00150902 001820 020017C0 52 CCW2 DC X'02',AL3(LOADER+80) read 2nd card to load addr + 80 00151002 001824 00000050 53 DC XL4'00000050' read length = 80 00151102 001828 E2819497938540D6 54 DC C'Sample Operating System Version 2.00' eye catcher 00151202 1 Sample Operating System Version 2.00 Page 4 Active Usings: None 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0001850 0000000000000000 55 DC 16X'00' pad to card length 00151302 56 *** 00151402 57 *** loader 00151502 58 *** 00151602 59 * 00151702 60 * Initialize 00151802 61 * 00151902 001770 01770 000A0 62 CARDLDR CSECT , two card loader must follow IPL card 00152002 001770 05C0 63 BALR R12,0 establish .. 00152102 001772 4120 0002 00002 64 LA R2,2 .. base .. 00152202 001776 1BC2 65 SR R12,R2 .. register 00152302 R:C 01770 66 USING CARDLDR,R12 tell assembler 00152402 001778 41B0 0000 00000 67 LA R11,0 addressability of .. 00152502 R:B 00000 68 USING PROGRAM,R11 .. sample operating system 00152602 00177C 4120 0000 00000 69 LA R2,0 I/O .. 00152702 001780 4130 C06A 017DA 70 LA R3,IOINTRPT .. new PSWD 00152802 001784 9023 B078 00078 71 STM R2,R3,IONEW store I/O new PSWD 00152902 001788 8000 C07E 017EE 72 SSM ENBLECH0 enable interrupts from channel 0 00153002 00178C 4150 C0A0 01810 73 LA R5,CCWCHAIN address of card reader CCW chain 00153102 001790 5050 B048 00048 74 ST R5,CAW store address in CAW 00153202 001794 5830 C094 01804 75 L R3,NUMCARDS number of cards to read 00153302 001798 5840 C090 01800 76 L R4,LOADADDR target address of loaded code 00153402 77 * 00153502 78 * create CCW chain 00153602 79 * 00153702 00179C 1824 80 NEXTCARD LR R2,R4 load next card here 00153802 00179E BF28 C080 017F0 81 ICM R2,B'1000',READ insert write command 00153902 0017A2 5020 5000 00000 82 ST R2,0(,R5) store CCW 00154002 0017A6 4120 0050 00050 83 LA R2,80 length of card 00154102 0017AA 5020 5004 00004 84 ST R2,4(,R5) store length in CCW, zero all flags 00154202 0017AE 9640 5004 00004 85 OI 4(R5),X'40' indicate command chaining 00154302 0017B2 4140 4050 00050 86 LA R4,80(,R4) increment target address 00154402 0017B6 4150 5008 00008 87 LA R5,8(,R5) point to next CCW 00154502 0017BA 4630 C02C 0179C 88 BCT R3,NEXTCARD read next card 00154602 0017BE 5B50 C098 01808 89 S R5,EIGHT point to previous CCW 00154702 0017C2 94BF 5004 00004 90 NI 4(R5),X'BF' clear command chaining flag 00154802 91 * 00154902 92 * read cards and wait for completion 00155002 93 * 00155102 0017C6 9C00 000C 0000C 94 SIO 12(0) read cards 00155202 0017CA 4120 C066 017D6 95 LA R2,*+12 continue here after I/O completion 00155302 0017CE 5020 C08C 017FC 96 ST R2,CONTINUE store continue address in PSWD skeleton 00155402 0017D2 8200 C088 017F8 97 LPSW WAITPSWD wait for I/O completion 00155502 98 * 00155602 99 * "IPL" the Sample Operating System 00155702 100 * 00155802 0017D6 8200 0000 00000 101 LPSW 0 transfer control 00155902 102 * 00156002 103 * I/O interrupt handler 00156102 104 * 00156202 017DA 105 IOINTRPT EQU * 00156302 0017DA 9104 B044 00044 106 TM CSW+4,X'04' device end received? 00156402 0017DE 47E0 C07A 017EA 107 BNO IOINTRTN -> no, keep waiting 00156502 0017E2 94FD B039 00039 108 NI IOOLD+1,X'FD' -> yes, terminate wait state and .. 00156602 0017E6 947F B038 00038 109 NI IOOLD,X'7F' .. and disable channel 0 interrupts 00156702 1 Sample Operating System Version 2.00 Page 5 Active Usings: PROGRAM,R11 CARDLDR,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 00017EA 8200 B038 00038 110 IOINTRTN LPSW IOOLD return to mainline 00156802 111 DROP R11,R12 no longer needed 00156902 112 * 00157002 113 * Data area 00157102 114 * 00157202 0017EE F8F0 115 ENBLECH0 DC C'80' mask to enable channel 0 interrupts 00157302 0017F0 02 116 READ DC X'02' read a card 00157402 0017F8 117 DS 0D align 00157502 0017F8 80020000 118 WAITPSWD DC X'80020000' wait with channel 0 interrupts enabled 00157602 0017FC 119 CONTINUE DS F continue here after wait 00157702 001800 00000000 120 LOADADDR DC F'0' code is to be loaded here 00157802 001804 0000004B 121 NUMCARDS DC F'75' number of cards to read 00157904 001808 00000008 122 EIGHT DC F'8' CCW length 00158002 001810 123 CCWCHAIN DS 0D start of card reader CCW chain 00158102 124 *** 00158202 125 *** Sample Operating System code begins here 00158302 126 *** 00158402 000000 00000 01770 127 PROGRAM CSECT , sample OS must follow loader cards 00158502 0 000000 129 CORESIZE EQU 16777216 bytes of core in object machine 00170002 0 R:0 00000 131 USING *,0 COMMUNICATIONS AREA 00190000 0000000 000000000000103E 133 IPLPSW DC B'00000000',B'00000000',X'0000',X'00',AL3(IPLRTN) 00210000 000008 134 IPLCCW1 DS D . IPL CCW #1 00220000 000010 135 IPLCCW2 DS D . IPL CCW #2 00230000 000018 136 EXTOLD DS D . EXTERNAL OLD PSW 00240000 000020 137 SVCOLD DS D . SVC OLD PSW 00250000 000028 138 PGMOLD DS D . PROGRAM INTERRUPT OLD PSW 00260000 000030 139 MCHKOLD DS D . MACHINE CHECK OLD PSW 00270000 000038 140 IOOLD DS D . I/O INTERRUPT OLD PSW 00280000 000040 141 CSW DS D . CHANNEL STATUS WORD 00290000 000048 142 CAW DS F . CHANNEL ADDRESS WORD 00300000 00004C 143 UNUSED0 DS F . 00310000 000050 FFFFFFFF 144 TIMER DC F'-1' . TIMER 00320000 000054 00000000 145 UNUSED1 DC F'0' . 00330000 000058 000000000000027A 146 EXTNEW DC B'00000000',B'00000000',X'0000',X'00',AL3(EXTHANDL) 00340000 000060 00000000000002B2 147 SVCNEW DC B'00000000',B'00000000',X'0000',X'00',AL3(SVCHANDL) 00350000 000068 00000000000002B0 148 PGMNEW DC B'00000000',B'00000000',X'0000',X'00',AL3(PGMHANDL) 00360000 000070 0002000000000000 149 MCHKNEW DC B'00000000',B'00000010',X'0000',X'00',AL3(0) 00370000 000078 00000000000017DA 150 IONEW DC B'00000000',B'00000000',X'0000',X'00',AL3(IOINTRPT) <-+ 00380002 151 *** | 00382002 152 *** IOINTRPT will be replaced with IOHANDL after IPL by IPLRTN -----+ 00384002 153 *** 00386002 000080 00080 00180 154 ORG *+X'100' SPACE OVER STAND ALONE DUMP AREA 00390000 000180 00001740 155 FSBPTR DC A(VERYEND) . FSB POINTER 00400000 000184 0000000100000000 156 FSBSEM DC F'1,0' . FSB SEMAPHORE 00410000 00018C 0000000000000000 157 MEMORY DC F'0,0' . MEMORY SEMAPHORE 00420000 000194 0000000100000000 158 CAWSEM DC F'1,0' . CAW SEMAPHORE 00430000 000019C 160 TRAPSAVE DS 16F . STORAGE FOR EXTERNAL INTERRUPTS 00450000 0001DC 161 IOHSAVE DS 16F . STORAGE FOR I/O INTERRUPTS 00460000 000021C 163 SYSSEMSA DS CL84 . SYSTEM SEMAPHORE SAVE AREA 00480000 1 Sample Operating System Version 2.00 Page 6 Active Usings: PROGRAM,R0 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000270 165 RUNNING DS A . RUNNING 00500000 000274 166 NEXTTRY DS A . NEXTTRY 00510000 000278 167 NEXTTRYM DS C,0H . NEXTTRY MODIFIED 00520000 1 Sample Operating System Version 2.00 Page 7 Active Usings: PROGRAM,R0 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 169 *********************************************************************** 00540000 170 * * 00550000 171 * EXTERNAL, PROGRAM, AND SVC INTERRUPT HANDLERS * 00560000 172 * * 00570000 173 *********************************************************************** 00580000 0 0027A 175 EXTHANDL EQU * . EXTERNAL INTERRUPT HANDLER 00600000 00027A 900F 019C 0019C 176 STM 0,15,TRAPSAVE . SAVE REGISTERS 00610000 00027E 0510 177 BALR 1,0 . ESTABLISH ADDRESSING 00620000 R:1 00280 178 USING *,1 00630000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 178 in /mbhfs/sos4k.asm on volume: 000280 9580 001B 0001B 179 CLI EXTOLD+3,X'80' . SEE IF TIMER TRAP 00640000 000284 4770 1028 002A8 180 BNE EXTHRET . IF NOT, IGNORE 00650000 000288 58F0 0270 00270 181 L 15,RUNNING . SET UP REGISTERS FOR TRAFFIC 00660000 R:F 00000 182 USING PCB,15 . CONTROLLER (XPER) 00670000 00028C 95FF F019 00019 183 CLI PCBBLOKT,X'FF' . IF BLOCKED, NO PROCESS IS 00680000 000290 4780 1028 002A8 184 BE EXTHRET . RUNNABLE, SO RETURN 00690000 000294 41E0 F04C 0004C 185 LA 14,PCBISA . GET SAVE AREA 00700000 R:E 00000 186 USING SA,14 00710000 000298 D207 E000 0018 00000 00018 187 MVC SAPSW,EXTOLD . AND STORE OLD STUFF INTO IT 00720000 00029E D23F E008 019C 00008 0019C 188 MVC SAREGS,TRAPSAVE 00730000 0002A4 47F0 12EA 0056A 189 B XPER . THEN GO TO TRAFFIC SCHEDULER 00740000 190 DROP 14,15 00750000 0002A8 980F 019C 0019C 191 EXTHRET LM 0,15,TRAPSAVE . TO IGNORE AN INTERRUPT, RELOAD 00760000 0002AC 8200 0018 00018 192 LPSW EXTOLD . AND TRANSFER BACK 00770000 0 002B0 194 PGMHANDL EQU * . PROGRAM INTERRUPT HANDLER 00790000 0002B0 0A6F 195 SVC C'?' . IN ANY CASE, AN ERROR 00800000 1 Sample Operating System Version 2.00 Page 8 Active Usings: PROGRAM,R0 PROGRAM+X'280',R1 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 197 *********************************************************************** 00820000 198 * * 00830000 199 * SVC INTERRUPT HANDLER * 00840000 200 * * 00850000 201 * FOR ALL ROUTINES ENTERED BY SVC INTERRUPT, THE * 00860000 202 * FOLLOWING REGISTERS CONTAIN THIS INFORMATION: * 00870000 203 * * 00880000 204 * REGISTER 1 - BASE REGISTER FOR ROUTINE * 00890000 205 * REGISTER 2 - POINTER TO ARGUMENT LIST (IF ANY) * 00900000 206 * REGISTER 14 - POINTER TO SAVEAREA USED FOR THIS SVC * 00910000 207 * REGISTER 15 - POINTER TO PCB PRESENTLY RUNNING * 00920000 208 * * 00930000 209 *********************************************************************** 00940000 0 002B2 211 SVCHANDL EQU * . SVC HANDLER 00960000 0002B2 900F 019C 0019C 212 STM 0,15,TRAPSAVE . SAVE REGISTERS 00970000 0002B6 0590 213 BALR 9,0 . ESTABLISH ADDRESSING 00980000 R:9 002B8 214 USING *,9 00990000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 178 ** ASMA435I Record 214 in /mbhfs/sos4k.asm on volume: 0002B8 98AE 905C 00314 215 LM 10,14,SVCCONST . INITIALIZE REGISTERS 01000000 0002BC 43A0 0023 00023 216 IC 10,SVCOLD+3 . GET SVC CODE 01010000 0002C0 43AA 9070 00328 217 IC 10,SVCHTABL(10) . TRANSLATE INTO TABLE OFFSET 01020000 0002C4 41AA 9170 00428 218 LA 10,SVCRTN(10) . REG 10 -> THE CORRECT PSW 01030000 0002C8 9500 A002 00002 219 CLI 2(10),X'00' . IS THIS CALL PROTECTED? 01040000 0002CC 4780 904A 00302 220 BE SVCHPROT . THEN SEE IF WE CAN CALL IT 01050000 0002D0 58F0 0270 00270 221 SVCOK L 15,RUNNING . GET PCB POINTER 01060000 R:F 00000 222 USING PCB,15 01070000 0002D4 9500 A003 00003 223 CLI 3(10),X'00' . IS IT A SYSTEM SAVEAREA? 01080000 0002D8 4780 9026 002DE 224 BE SYSSEM . DON'T USE REG 14 AS PCB POINTER 01090000 0002DC 18EF 225 LR 14,15 . ELSE, SET UP PCB POINTER 01100000 0002DE 43BA 0003 00003 226 SYSSEM IC 11,3(10) . GET POINTER TO SAVE AREA OFFSET 01110000 0002E2 5AEB 9210 004C8 227 A 14,SVCSAVE(11) . REG 14 -> SAVE AREA 01120000 0002E6 954B 0023 00023 228 CLI SVCOLD+3,C'.' . ARE WE CALLING XPER? 01130000 0002EA 4780 9042 002FA 229 BE SVCXPER . IF SO, DON'T SAVE RETURN STATUS 01140000 R:E 00000 230 USING SA,14 01150000 0002EE D207 E000 0020 00000 00020 231 MVC SAPSW,SVCOLD . SAVE PSW 01160000 0002F4 D23F E008 019C 00008 0019C 232 MVC SAREGS,TRAPSAVE . SAVE REGISTERS 01170000 0002FA 581A 0004 00004 233 SVCXPER L 1,4(10) . MAKE ADDRESSING EASY WITHIN 01180000 0002FE 8200 A000 00000 234 LPSW 0(10) . ROUTINE, AND GO THERE 01190000 000302 58C0 0020 00020 235 SVCHPROT L 12,SVCOLD . GET PROTECTION KEY 01200000 000306 14CD 236 NR 12,13 . IS IT A USER? 01210000 000308 4780 9018 002D0 237 BZ SVCOK . IF NO, THAT'S FINE 01220000 00030C 41A0 91F8 004B0 238 LA 10,SVCRTN+136 . ELSE SET UP CALL TO XQUE 01230000 000310 47F0 9018 002D0 239 B SVCOK . 01240000 240 DROP 9 01250000 000314 0000000000000000 241 SVCCONST DC 3F'0',X'00F00000',F'0' 01260000 0000328 8484848484848484 243 SVCHTABL DC 256X'84' . TABLE OF PSW OFFSETS 01280000 000428 00428 003FF 244 ORG SVCHTABL+C'P' 01290000 0003FF 00 245 DC AL1(0) 01300000 000400 00400 0040D 246 ORG SVCHTABL+C'V' 01310000 00040D 08 247 DC AL1(8) 01320000 00040E 0040E 00382 248 ORG SVCHTABL+C'!' 01330000 1 Sample Operating System Version 2.00 Page 9 Active Usings: PROGRAM,R0 PROGRAM+X'280',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000382 10 249 DC AL1(16) 01340000 000383 00383 00393 250 ORG SVCHTABL+C',' 01350000 000393 18 251 DC AL1(24) 01360000 000394 00394 003EA 252 ORG SVCHTABL+C'B' 01370000 0003EA 20 253 DC AL1(32) 01380000 0003EB 003EB 003E9 254 ORG SVCHTABL+C'A' 01390000 0003E9 28 255 DC AL1(40) 01400000 0003EA 003EA 003EE 256 ORG SVCHTABL+C'F' 01410000 0003EE 30 257 DC AL1(48) 01420000 0003EF 003EF 003F1 258 ORG SVCHTABL+C'I' 01430000 0003F1 38 259 DC AL1(56) 01440000 0003F2 003F2 003F9 260 ORG SVCHTABL+C'J' 01450000 0003F9 40 261 DC AL1(64) 01460000 0003FA 003FA 00373 262 ORG SVCHTABL+C'.' 01470000 000373 48 263 DC AL1(72) 01480000 000374 00374 00401 264 ORG SVCHTABL+C'R' 01490000 000401 50 265 DC AL1(80) 01500000 000402 00402 0040A 266 ORG SVCHTABL+C'S' 01510000 00040A 58 267 DC AL1(88) 01520000 00040B 0040B 003EB 268 ORG SVCHTABL+C'C' 01530000 0003EB 60 269 DC AL1(96) 01540000 0003EC 003EC 003FD 270 ORG SVCHTABL+C'N' 01550000 0003FD 68 271 DC AL1(104) 01560000 0003FE 003FE 00410 272 ORG SVCHTABL+C'Y' 01570000 000410 70 273 DC AL1(112) 01580000 000411 00411 00411 274 ORG SVCHTABL+C'Z' 01590000 000411 78 275 DC AL1(120) 01600000 000412 00412 003EC 276 ORG SVCHTABL+C'D' 01610000 0003EC 80 277 DC AL1(128) 01620000 0003ED 003ED 00397 278 ORG SVCHTABL+C'?' 01630000 000397 88 279 DC AL1(136) 01640000 000398 00398 003F0 280 ORG SVCHTABL+C'H' 01650000 0003F0 90 281 DC AL1(144) 01660000 0003F1 003F1 003ED 282 ORG SVCHTABL+C'E' 01670000 0003ED 98 283 DC AL1(152) 01680000 0003EE 003EE 00428 284 ORG SVCHTABL+256 01690000 0000428 286 SVCRTN DS 0D . THE PSWS 01710000 287 * IN THE FOLLOWING PSWS, THE THIRD BYTE INDICATES * 01720000 288 * WHETHER THE SVC IS RESTRICTED: * 01730000 289 * X'00' -> OPERATING SYSTEM ONLY * 01740000 290 * X'FF' -> AVAILABLE TO USER ALSO * 01750000 291 * * 01760000 292 * THE FOURTH BYTE INDICATES WHICH SAVE AREA TO USE; * 01770000 293 * SVCSAVE BELOW SHOWS THE CODE VALUES. * 01780000 000428 00000000000004EE 294 DC B'00000000',B'00000000',X'0000',X'00',AL3(XP) 01790000 000430 0000000000000534 295 DC B'00000000',B'00000000',X'0000',X'00',AL3(XV) 01800000 000438 00000004000005C0 296 DC B'00000000',B'00000000',X'0004',X'00',AL3(XEXC) 01810000 000440 00000004000005D2 297 DC B'00000000',B'00000000',X'0004',X'00',AL3(XCOM) 01820000 000448 0000000400000744 298 DC B'00000000',B'00000000',X'0004',X'00',AL3(XB) 01830000 000450 FF00000C00000600 299 DC B'11111111',B'00000000',X'000C',X'00',AL3(XA) 01840000 000458 FF00000C000006B6 300 DC B'11111111',B'00000000',X'000C',X'00',AL3(XF) 01850000 000460 000000040000087A 301 DC B'00000000',B'00000000',X'0004',X'00',AL3(XI) 01860000 000468 00000004000008A6 302 DC B'00000000',B'00000000',X'0004',X'00',AL3(XJ) 01870000 000470 000000040000056A 303 DC B'00000000',B'00000000',X'0004',X'00',AL3(XPER) 01880000 1 Sample Operating System Version 2.00 Page 10 Active Usings: PROGRAM,R0 PROGRAM+X'280',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000478 FF00FF08000008EC 304 DC B'11111111',B'00000000',X'FF08',X'00',AL3(XR) 01890000 000480 FF00FF0800000978 305 DC B'11111111',B'00000000',X'FF08',X'00',AL3(XS) 01900000 000488 FF00FF0800000780 306 DC B'11111111',B'00000000',X'FF08',X'00',AL3(XC) 01910000 000490 0000FF04000008CA 307 DC B'00000000',B'00000000',X'FF04',X'00',AL3(XN) 01920000 000498 0000FF0800000A0A 308 DC B'00000000',B'00000000',X'FF08',X'00',AL3(XY) 01930000 0004A0 FF00FF0800000A42 309 DC B'11111111',B'00000000',X'FF08',X'00',AL3(XZ) 01940000 0004A8 FF00FF08000007C6 310 DC B'11111111',B'00000000',X'FF08',X'00',AL3(XD) 01950000 0004B0 0000FF0400000A8E 311 DC B'00000000',B'00000000',X'FF04',X'00',AL3(XQUE) 01960000 0004B8 FF00FF0800000842 312 DC B'11111111',B'00000000',X'FF08',X'00',AL3(XH) 01970000 0004C0 FF00000C00000608 313 DC B'11111111',B'00000000',X'000C',X'00',AL3(XAUTO) 01980000 00004C8 315 SVCSAVE DS 0F . THE SAVE AREA OFFSETS 02000000 0004C8 0000021C 316 DC A(SYSSEMSA) . CODE 00 -> SYSSEMSA 02010000 0004CC 0000004C 317 DC A(PCBISA-PCB) . CODE 04 -> INTERRUPT SAVE AREA 02020000 0004D0 000000A0 318 DC A(PCBFSA-PCB) . CODE 08 -> FAULT SAVE AREA 02030000 0004D4 000000F4 319 DC A(PCBMSA-PCB) . CODE 0C -> MEMORY SAVE AREA 02040000 - 321 *********************************************************************** 02060000 322 * * 02070000 323 * RETURN SEQUENCE FOR REQUEST DRIVEN ROUTINES AND TRAFFIC CONTROLLER * 02080000 324 * * 02090000 325 *********************************************************************** 02100000 00004D8 327 DS 0D 02120000 0004D8 00000000000004E0 328 RETURN DC B'00000000',B'00000000',X'0000',X'00',AL3(RETURNR) 02130000 0 004E0 330 RETURNR EQU * . RETURN ROUTINE FOR SVC'S AND XPER 02150000 0004E0 D207 0020 E000 00020 00000 331 MVC SVCOLD,SAPSW . SAVE PSW IN A SAFE PLACE 02160000 0004E6 980F E008 00008 332 LM 0,15,SAREGS . RELOAD REGISTERS 02170000 0004EA 8200 0020 00020 333 LPSW SVCOLD . AND RETURN 02180000 1 Sample Operating System Version 2.00 Page 11 Active Usings: PROGRAM,R0 PROGRAM+X'280',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 335 *********************************************************************** 02200000 336 * * 02210000 337 * REQUEST DRIVEN ROUTINES * 02220000 338 * * 02230000 339 *********************************************************************** 02240000 - 341 *********************************************************************** 02260000 342 * * 02270000 343 * XP ROUTINE * 02280000 344 * * 02290000 345 * FUNCTION: TO IMPLEMENT "P" PRIMITIVE FOR SEMAPHORES * 02300000 346 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS SM * 02310000 347 * SM DS 0D SEMAPHORE DEFINITION * 02320000 348 * SMVAL DS F VALUE * 02330000 349 * SMPTR DS A POINTER TO FIRST WAITER * 02340000 350 * ROUTINES USED: XPER * 02350000 351 * PROCEDURE: SUBTRACT ONE FROM SMVAL; IF NON-NEGATIVE, RETURN. * 02360000 352 * IF NEGATIVE, PLACE RUNNING PROCESS AT END OF LIST * 02370000 353 * OF PRECESSES WAITING ON SM. BLOCK CALLING PROCESS; * 02380000 354 * ENTER TRAFFIC CONTROLLER. * 02390000 355 * ERROR CHECKS: NONE * 02400000 356 * INTERRUPTS: OFF * 02410000 357 * USER ACCESS: NO * 02420000 358 * * 02430000 359 *********************************************************************** 02440000 0 004EE 361 XP EQU * . THE XP ROUTINE 02460000 R:1 004EE 362 USING *,1 02470000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 362 in /mbhfs/sos4k.asm on volume: R:2 00000 363 USING SM,2 . ARGUMENT IS A SEMAPHORE 02480000 0004EE 5830 2000 00000 364 L 3,SMVAL . GET THE VALUE 02490000 0004F2 0630 365 BCTR 3,0 . SUBTRACT ONE 02500000 0004F4 5030 2000 00000 366 ST 3,SMVAL . AND STORE IT BACK 02510000 0004F8 1233 367 LTR 3,3 . SET CONDITION CODE 02520000 0004FA 4740 1014 00502 368 BM XPWAIT . IF IT'S NEGATIVE, MUST WAIT 02530000 0004FE 8200 04D8 004D8 369 LPSW RETURN . ELSE RETURN NOW 02540000 000502 4140 2004 00004 370 XPWAIT LA 4,SMPTR . START GOING DOWN 02550000 000506 5850 2004 00004 371 L 5,SMPTR . CHAIN OF POINTERS 02560000 372 DROP 15 02570000 R:5 00000 373 USING PCB,5 02580000 00050A 1255 374 XPLOOP LTR 5,5 . IF REACHED END 02590000 00050C 4780 102E 0051C 375 BZ XPTHEN . ADD OUR PCB ON. ELSE, 02600000 000510 4140 5030 00030 376 LA 4,PCBNSW . INCREMENT POINTERS 02610000 000514 5850 5030 00030 377 L 5,PCBNSW 02620000 000518 47F0 101C 0050A 378 B XPLOOP . AND TRY AGAIN 02630000 379 DROP 5 02640000 R:F 00000 380 USING PCB,15 02650000 00051C D203 4000 0270 00000 00270 381 XPTHEN MVC 0(4,4),RUNNING . WE'RE AT THE END 02660000 000522 5050 F030 00030 382 ST 5,PCBNSW . STORE NULL POINTER 02670000 000526 92FF F019 00019 383 MVI PCBBLOKT,X'FF' . AND WE'RE BLOCKED 02680000 00052A D253 F04C 021C 0004C 0021C 384 MVC PCBISA,SYSSEMSA . SWITCH SAVE AREAS 02690000 000530 47F0 107C 0056A 385 B XPER . SO RUN SOMEONE ELSE 02700000 1 Sample Operating System Version 2.00 Page 12 Active Usings: PROGRAM,R0 PROGRAM+X'4EE',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 386 DROP 2 02710000 1 Sample Operating System Version 2.00 Page 13 Active Usings: PROGRAM,R0 PROGRAM+X'4EE',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 388 *********************************************************************** 02730000 389 * * 02740000 390 * XV ROUTINE * 02750000 391 * * 02760000 392 * FUNCTION: TO IMPLEMENT "V" PRIMITIVE FOR SEMAPHORES * 02770000 393 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS SM * 02780000 394 * SM DS 0D SEMAPHORE DEFINITION * 02790000 395 * SMVAL DS F VALUE * 02800000 396 * SMPTR DS A POINTER TO FIRST WAITER * 02810000 397 * ROUTINES USED: NONE * 02820000 398 * PROCEDURE: ADD ONE TO SMVAL; IF > ZERO, RETURN. IF ZERO OR * 02830000 399 * LESS, REMOVE FIRST PROCESS FROM WAITER CHAIN; * 02840000 400 * UNBLOCK IT; IF NEXTTRYM NOT SET, SET IT AND SET * 02850000 401 * NEXTTRY TO THAT PROCESS; RETURN; IF NEXTTRYM SET, * 02860000 402 * RETURN. * 02870000 403 * ERROR CHECKS: NONE * 02880000 404 * INTERRUPTS: OFF * 02890000 405 * USER ACCESS: NO * 02900000 406 * * 02910000 407 *********************************************************************** 02920000 0 00534 409 XV EQU * . THE XV ROUTINE 02940000 R:1 00534 410 USING *,1 02950000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 410 in /mbhfs/sos4k.asm on volume: R:2 00000 411 USING SM,2 . ARGUMENT IS A SEMAPHORE 02960000 000534 5830 2000 00000 412 L 3,SMVAL . GET THE VALUE 02970000 000538 5A30 1924 00E58 413 A 3,=F'1' . ADD ONE 02980000 00053C 5030 2000 00000 414 ST 3,SMVAL . AND STORE IT BACK 02990000 000540 47D0 1014 00548 415 BNP XVWAKEUP . IF <=0, SOMEONE'S WAITING 03000000 000544 8200 04D8 004D8 416 LPSW RETURN . ELSE RETURN 03010000 000548 5840 2004 00004 417 XVWAKEUP L 4,SMPTR . GET THE FIRST OF THE GUYS 03020000 418 DROP 15 03030000 R:4 00000 419 USING PCB,4 03040000 00054C D203 2004 4030 00004 00030 420 MVC SMPTR,PCBNSW . REMEMBER THE REST 03050000 000552 9200 4019 00019 421 MVI PCBBLOKT,X'00' . WE'RE NO LONGER BLOCKING HIM 03060000 000556 95FF 0278 00278 422 CLI NEXTTRYM,X'FF' . IS NEXT TRY MODIFIED? 03070000 00055A 4780 1032 00566 423 BE XVRET . IF SO, WELL OK 03080000 00055E 5040 0274 00274 424 ST 4,NEXTTRY ELSE MODIFY NEXTTRY 03090000 000562 92FF 0278 00278 425 MVI NEXTTRYM,X'FF' . AND SAY SO 03100000 000566 8200 04D8 004D8 426 XVRET LPSW RETURN . GET BACK 03110000 427 DROP 2,4 03120000 1 Sample Operating System Version 2.00 Page 14 Active Usings: PROGRAM,R0 PROGRAM+X'534',R1 SA,R14 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 429 *********************************************************************** 03140000 430 * * 03150000 431 * XPER ROUTINE (TRAFFIC CONTROLLER) * 03160000 432 * * 03170000 433 * FUNCTION: TO IMPLEMENT MULTIPROGRAMMING * 03180000 434 * DATABASES: NONE * 03190000 435 * ROUTINES USED: NONE * 03200000 436 * PROCEDURE: STARTING WITH NEXTTRY, SEARCH FOR PROCESS ON ALL * 03210000 437 * PCB CHAIN NOT BLOCKED OR STOPPED; IF FOUND, USE AS * 03220000 438 * NEW RUNNING, FOR 50 MS OF TIME AND RETURN. ELSE, * 03230000 439 * ENTER WAIT STATE WITH INTERRUPTS ON, AND TRY TO * 03240000 440 * SCHEDULE AGAIN AFTER INTERRUPT; RETURN. * 03250000 441 * ERROR CHECKS: NONE * 03260000 442 * INTERRUPTS: OFF * 03270000 443 * USER ACCESS: NO * 03280000 444 * * 03290000 445 *********************************************************************** 03300000 0 0056A 447 XPER EQU * . ROUTINE XPER: TRAFFIC SCHEDULER 03320000 00056A 8000 0078 00078 448 SSM IONEW . MASK OFF INTERRUPTS 03330000 00056E 0510 449 BALR 1,0 03340000 R:1 00570 450 USING *,1 03350000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 450 in /mbhfs/sos4k.asm on volume: 000570 58A0 0274 00274 451 L 10,NEXTTRY . START LOOKING AT NEXTTRY 03360000 000574 18BA 452 LR 11,10 . REMEMBER WHICH THAT WAS 03370000 R:A 00000 453 USING PCB,10 03380000 000576 95FF A019 00019 454 GWLOOP CLI PCBBLOKT,X'FF' . IF IT'S BLOCKED 03390000 00057A 4780 1016 00586 455 BE GWINC . IGNORE 03400000 00057E 95FF A018 00018 456 CLI PCBSTOPT,X'FF' . ELSE, IF IT'S NOT STOPPED 03410000 000582 4770 1030 005A0 457 BNE GWRUN . WE CAN RUN IT 03420000 000586 58A0 A010 00010 458 GWINC L 10,PCBNPALL . ELSE, GO TO THE NEXT 03430000 00058A 19AB 459 CR 10,11 . IF WE'VE SEEN ALL, QUIT 03440000 00058C 4770 1006 00576 460 BNE GWLOOP . ELSE TRY AGAIN 03450000 000590 8200 1028 00598 461 LPSW IDLE . SIT AND WAIT 03460000 000598 462 DS 0D 03470000 000598 FE0200000000056A 463 IDLE DC B'11111110',B'00000010',X'0000',X'00',AL3(XPER) 03480000 00005A0 D203 0274 A010 00274 00010 465 GWRUN MVC NEXTTRY,PCBNPALL . GET A NEW NEXTTRY 03500000 0005A6 9200 0278 00278 466 MVI NEXTTRYM,X'00' . NOT MODIFIED 03510000 0005AA 50A0 0270 00270 467 ST 10,RUNNING . GET A NEW RUNNING 03520000 0005AE 41E0 A04C 0004C 468 LA 14,PCBISA 03530000 0005B2 D203 0050 104C 00050 005BC 469 MVC TIMER,QUANTUM . INTERRUPT AFTER 50 MS 03540000 0005B8 8200 04D8 004D8 470 LPSW RETURN . AND GO TO RETURNR 03550000 0005BC 00000F00 471 QUANTUM DC X'00000F00' . QUANTUM OF TIME 03560000 472 DROP 10 03570000 R:F 00000 473 USING PCB,15 03580000 1 Sample Operating System Version 2.00 Page 15 Active Usings: PROGRAM,R0 PROGRAM+X'570',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 475 *********************************************************************** 03600000 476 * * 03610000 477 * XEXC ROUTINE * 03620000 478 * * 03630000 479 * FUNCTION: TO ENTER SMC SECTION * 03640000 480 * DATABASES: NONE * 03650000 481 * ROUTINES USED: NONE * 03660000 482 * PROCEDURE: INCREMENT SMC BYTE IN PCB BY ONE; RETURN. * 03670000 483 * ERROR CHECKS: NONE * 03680000 484 * INTERRUPTS: OFF * 03690000 485 * USER ACCESS: NO * 03700000 486 * * 03710000 487 *********************************************************************** 03720000 0 005C0 489 XEXC EQU * . ROUTINE XEXC: ENTER SMC SECTION 03740000 R:1 005C0 490 USING *,1 03750000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 490 in /mbhfs/sos4k.asm on volume: 0005C0 1B88 491 SR 8,8 03760000 0005C2 4380 F01A 0001A 492 IC 8,PCBINSMC 03770000 0005C6 4188 0001 00001 493 LA 8,1(8) . ADD ONE TO SMC BYTE 03780000 0005CA 4280 F01A 0001A 494 STC 8,PCBINSMC 03790000 0005CE 8200 04D8 004D8 495 LPSW RETURN . AND LEAVE 03800000 0 497 *********************************************************************** 03820000 498 * * 03830000 499 * XCOM ROUTINE * 03840000 500 * * 03850000 501 * FUNCTION: TO LEAVE SMC SECTION * 03860000 502 * DATABASES: NONE * 03870000 503 * ROUTINES USED: XP, XV * 03880000 504 * PROCEDURE: DECREMENT SMC BYTE IN PCB BY ONE; IF NOT ZERO, * 03890000 505 * RETURN. ELSE, CHECK FOR STOP WAITING; IF STOP * 03900000 506 * WAITING, ALLOW STOP AND BLOCK SELF; RETURN. IF NO * 03910000 507 * STOP WAITING, RETURN. * 03920000 508 * ERROR CHECKS: NONE * 03930000 509 * INTERRUPTS: OFF * 03940000 510 * USER ACCESS: NO * 03950000 511 * * 03960000 512 *********************************************************************** 03970000 0 005D2 514 XCOM EQU * . ROUTINE XCOM: LEAVE SMC 03990000 R:1 005D2 515 USING *,1 04000000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 515 in /mbhfs/sos4k.asm on volume: 0005D2 1B88 516 SR 8,8 04010000 0005D4 4380 F01A 0001A 517 IC 8,PCBINSMC 04020000 0005D8 0680 518 BCTR 8,0 . SUBTRACT ONE FROM IN SMC BYTE 04030000 0005DA 4280 F01A 0001A 519 STC 8,PCBINSMC 04040000 0005DE 1288 520 LTR 8,8 . IS IT ZERO? 04050000 0005E0 4770 102A 005FC 521 BNZ XCOMRET . NO, THEN GET BACK, OTHERWISE 04060000 0005E4 9500 F01B 0001B 522 CLI PCBSW,X'00' . IS STOP WAITING? 04070000 0005E8 4780 102A 005FC 523 BE XCOMRET . IF NOT, RETURN 04080000 0005EC 9200 F01B 0001B 524 MVI PCBSW,X'00' . STOPS NOT WAITING AFTER THIS 04090000 0005F0 4120 F034 00034 525 LA 2,PCBSRS . WE'LL "V" THE STOPPER, 04100000 1 Sample Operating System Version 2.00 Page 16 Active Usings: PROGRAM,R0 PROGRAM+X'5D2',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 00005F4 0AE5 526 SVC C'V' 04110000 0005F6 4120 F03C 0003C 527 LA 2,PCBSES . AND "P" THE STOPPEE. 04120000 0005FA 0AD7 528 SVC C'P' 04130000 0005FC 8200 04D8 004D8 529 XCOMRET LPSW RETURN . AND HERE (IF EVER) WE RETURN 04140000 1 Sample Operating System Version 2.00 Page 17 Active Usings: PROGRAM,R0 PROGRAM+X'5D2',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 531 *********************************************************************** 04160000 532 * * 04170000 533 * XA ROUTINE * 04180000 534 * XAUTO ROUTINE * 04190000 535 * * 04200000 536 * FUNCTION: TO ALLOCATE MEMORY * 04210000 537 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XAX: * 04220000 538 * XAX DS 0D * 04230000 539 * XAXSIZE DS F SIZE OF BLOCK TO BE ALLOCATED * 04240000 540 * XAXADDR DS A ADDRESS OF FIRST BYTE OF BLOCK* 04250000 541 * XAXALGN DS F ALIGNMENT OF BLOCK * 04260000 542 * ROUTINES USED: XEXC, XCOM, XP, XV, XB * 04270000 543 * PROCEDURE: LOCK FSB SEMAPHORE; SEARCH FREE STORAGE FOR LARGE * 04280000 544 * ENOUGH MEMORY BLOCK; ALIGN BOUNDARY; USE XB TO * 04290000 545 * CHAIN ANY LEFTOVER BLOCKS TO FREE STORAGE LIST; * 04300000 546 * PLACE ADDRESS OF ALLOCATED BLOCK IN XAXADDR; UNLOCK* 04310000 547 * FSB SEMAPHORE; RETURN. IF CAN'T SATISFY REQUEST, * 04320000 548 * UNLOCK FSB SEMAPHORE, APPLY XP ROUTINE TO MEMORY * 04330000 549 * SEMAPHORE, BLOCKING PROCESS RUNNING UNTIL MEMORY * 04340000 550 * FREED; THEN UNBLOCK; TRY TO SATISFY REQUEST AGAIN. * 04350000 551 * ERROR CHECKS: NONE * 04360000 552 * INTERRUPTS: ON * 04370000 553 * USER ACCESS: NO * 04380000 554 * * 04390000 555 *********************************************************************** 04400000 0 00600 557 XA EQU * . THE XA ROUTINE, TO ALLOCATE 04420000 R:1 00600 558 USING *,1 04430000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 558 in /mbhfs/sos4k.asm on volume: 000600 4100 0001 00001 559 LA 0,1 . SET REGISTER ZERO TO ONE TO 04440000 000604 47F0 100E 0060E 560 B XACOM . INDICATE C'A' CALL 04450000 00608 561 XAUTO EQU * . AUTO STORAGE ENTRY POINT 04460000 R:1 00608 562 USING *,1 04470000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 562 in /mbhfs/sos4k.asm on volume: 000608 1B00 563 SR 0,0 . REG0=0 INDICATES C'E' CALL 04480000 00060A 5810 1854 00E5C 564 L 1,=A(XA) . RESET BASE REGISTER PROPERLY 04490000 R:1 00600 565 USING XA,1 04500000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 565 in /mbhfs/sos4k.asm on volume: 00060E 0A5A 566 XACOM SVC C'!' . ENTER SMC 04510000 000610 1872 567 LR 7,2 04520000 R:7 00000 568 USING XAX,7 . ARGUMENT LIST 04530000 000612 5860 7000 00000 569 L 6,XAXSIZE . GET THE SIZE REQUESTED 04540000 000616 4120 0184 00184 570 XATOP LA 2,FSBSEM . LOCK THE FSB SEMAPHORE 04550000 00061A 0AD7 571 SVC C'P' . 04560000 00061C 4150 0180 00180 572 LA 5,FSBPTR . START LOOKING DOWN 04570000 000620 5840 0180 00180 573 L 4,FSBPTR . THE FREE STORAGE LIST 04580000 000624 5880 7008 00008 574 L 8,XAXALGN . WE WOULD HAVE TO START AT WITH 04590000 000628 0680 575 BCTR 8,0 . THIS CONSTANT TO FIND ALIGNMENT 04600000 R:4 00000 576 USING FSB,4 04610000 00062A 1244 577 XALOOP LTR 4,4 . IF AT THE END 04620000 00062C 4780 1056 00656 578 BZ XAWAIT . WAIT UNTIL A "FREE" OP 04630000 000630 18D4 579 LR 13,4 . FIND THE LOCATION 04640000 1 Sample Operating System Version 2.00 Page 18 Active Usings: PROGRAM,R0 XA,R1 FSB,R4 XAX,R7 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000632 06D0 580 BCTR 13,0 . IN THIS BLOCK WITH THIS 04650000 000634 16D8 581 OR 13,8 . ALIGNMENT 04660000 000636 41DD 0001 00001 582 LA 13,1(13) . THAT'S IT 04670000 00063A 189D 583 LR 9,13 . AND NOW GET IN REG 9 04680000 00063C 1B94 584 SR 9,4 . WHAT IS WASTED AT THE FRONT 04690000 00063E 5830 4004 00004 585 L 3,FSBSIZE . GET SIZE MINUS WASTE AT 04700000 000642 1B39 586 SR 3,9 . FRONT, LEAVING EFFECTIVE SIZE 04710000 000644 1963 587 CR 6,3 . IS IT ENOUGH? 04720000 000646 47D0 1062 00662 588 BNP XAFOUND . EUREKA! 04730000 00064A 4150 4000 00000 589 LA 5,FSBNEXT . OH WELL, GET THE NEXT FREE 04740000 00064E 5840 4000 00000 590 L 4,FSBNEXT . STORAGE BLOCK ON THE CHAIN 04750000 000652 47F0 102A 0062A 591 B XALOOP . BETTER LUCK NEXT TIME 04760000 000656 0AE5 592 XAWAIT SVC C'V' . NEED TO WAIT 04770000 000658 4120 018C 0018C 593 LA 2,MEMORY . SO WE LET OTHER PEOPLE GET IN 04780000 00065C 0AD7 594 SVC C'P' . SO THEY'LL WAKE US UP 04790000 00065E 47F0 1016 00616 595 B XATOP . AND THEN WE'LL TRY AGAIN 04800000 000662 50D0 7004 00004 596 XAFOUND ST 13,XAXADDR . WE'VE NOW GOT THE ADDRESS 04810000 000666 D203 5000 4000 00000 00000 597 MVC 0(4,5),FSBNEXT . UNLINK THE BLOCK OUT 04820000 00066C 58C0 4004 00004 598 L 12,FSBSIZE . GET THE WHOLE BLOCK SIZE 04830000 000670 4120 E048 00048 599 LA 2,SATEMP . START MAKING UP ARG LISTS 04840000 R:2 00000 600 USING XBX,2 . FOR THE XB ROUTINE 04850000 000674 18AD 601 LR 10,13 . THE STARTING LOCATION 04860000 000676 1BA4 602 SR 10,4 . MINUS THE START OF THE BLOCK 04870000 000678 4780 1086 00686 603 BZ XANF . IF NONE WASTED AT THE FRONT, SKIP 04880000 00067C 5040 2004 00004 604 ST 4,XBXADDR . ELSE FREE, STARTING THERE 04890000 000680 50A0 2000 00000 605 ST 10,XBXSIZE . UP TO THE BEGINNING OF THE 04900000 000684 0AC2 606 SVC C'B' . ALLOCATION; INSERT IT IN THE CHAIN 04910000 000686 18BD 607 XANF LR 11,13 . THE STARTING ADDR PLUS THE SIZE 04920000 000688 1AB6 608 AR 11,6 . GIVES THE FIRST UNUSED ADDR 04930000 00068A 1BCA 609 SR 12,10 . MINUS THE WASTE AT FRONT, 04940000 00068C 1BC6 610 SR 12,6 . MINUS THE PART ALLOCATED. IF 04950000 00068E 4780 109C 0069C 611 BZ XARETURN . NONE LEFT OVER, GOOD 04960000 000692 50B0 2004 00004 612 ST 11,XBXADDR . ELSE STORE ADDRESS AND 04970000 000696 50C0 2000 00000 613 ST 12,XBXSIZE . SIZE, AND LINK ONTO 04980000 00069A 0AC2 614 SVC C'B' . FREE STORAGE LIST 04990000 615 DROP 2 05000000 00069C 4120 0184 00184 616 XARETURN LA 2,FSBSEM . WE ARE DONE, SO NOW SOMEONE 05010000 0006A0 0AE5 617 SVC C'V' . ELSE CAN COME IN 05020000 0006A2 1200 618 LTR 0,0 . IS THIS FOR AUTOMATIC STORAGE? 05030000 0006A4 4770 10B0 006B0 619 BNZ XABACK . IF NOT, RETURN NOW 05040000 0006A8 5060 F044 00044 620 ST 6,PCBASIZE . OTHERWISE STORE SIZE AND 05050000 0006AC 50D0 F048 00048 621 ST 13,PCBAADDR . ADDRESS OF AUTOMATIC STORAGE 05060000 0006B0 0A6B 622 XABACK SVC C',' . LEAVE SMC SECTION 05070000 0006B2 8200 04D8 004D8 623 LPSW RETURN . GET BACK JOJO 05080000 624 DROP 4,7 05090000 1 Sample Operating System Version 2.00 Page 19 Active Usings: PROGRAM,R0 XA,R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 626 *********************************************************************** 05110000 627 * * 05120000 628 * XF ROUTINE * 05130000 629 * * 05140000 630 * FUNCTION: TO FREE MEMORY * 05150000 631 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XFX: * 05160000 632 * XFX DS 0D * 05170000 633 * XFXSIZE DS F SIZE OF BLOCK TO BE FREED * 05180000 634 * XFXADDR DS A ADDRESS OF FIRST BYTE OF BLOCK* 05190000 635 * ROUTINES USED: XEXC, XP, XV, XB, XCOM * 05200000 636 * PROCEDURE: LOCK FSB SEMAPHORE; SEARCH FREE STORAGE LIST TO * 05210000 637 * FIND IF ANY FREE BLOCK CONTIGUOUSLY FOLLOWS OR * 05220000 638 * PRECEDES BLOCK TO BE FREED; IF THERE IS ANY, * 05230000 639 * COMPACT THEM INTO A SINGLE BLOCK OF COMBINED SIZE; * 05240000 640 * USE XB TO CHAIN COMPACTED BLOCK ONTO FREE STORAGE * 05250000 641 * LIST; WAKEUP ALL PROCESSES WAITING ON MEMORY * 05260000 642 * SEMAPHORE; UNLOCK FSB SEMAPHORE; RETURN * 05270000 643 * ERROR CHECKS: NONE * 05280000 644 * INTERRUPTS: ON * 05290000 645 * USER ACCESS: NO * 05300000 646 * * 05310000 647 *********************************************************************** 05320000 0 006B6 649 XF EQU * . THE XF ROUTINE, TO FREE STORAGE 05340000 R:1 006B6 650 USING *,1 05350000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 650 in /mbhfs/sos4k.asm on volume: 0006B6 0A5A 651 SVC C'!' . ENTER SMC SECTION 05360000 0006B8 1872 652 LR 7,2 05370000 R:7 00000 653 USING XFX,7 . THE ARGUMENT LIST 05380000 0006BA 5830 7000 00000 654 L 3,XFXSIZE . GET THE SIZE 05390000 0006BE 5840 7004 00004 655 L 4,XFXADDR . AND THE ADDRESS 05400000 0006C2 1853 656 LR 5,3 . GET THE ADDRESS OF THE END OF THE 05410000 0006C4 1A54 657 AR 5,4 . BLOCK TO BE FREED 05420000 0006C6 4120 0184 00184 658 LA 2,FSBSEM . LOCK FSBSEM 05430000 0006CA 0AD7 659 SVC C'P' 05440000 0006CC 4180 0180 00180 660 LA 8,FSBPTR . START LOOKING DOWN THE FREE 05450000 0006D0 5860 0180 00180 661 L 6,FSBPTR . STORAGE LIST, FOR COMPACTION 05460000 R:6 00000 662 USING FSB,6 05470000 0006D4 1266 663 XFLOOP LTR 6,6 . ARE WE THROUGH? 05480000 0006D6 4780 105E 00714 664 BZ XFLINK . IF SO, JUST ADD IT ON 05490000 0006DA 5890 6000 00000 665 L 9,FSBNEXT . IF NOT. GET THE NEXT PTR 05500000 0006DE 1965 666 CR 6,5 . IS THIS BLOCK RIGHT AFTER OURS? 05510000 0006E0 4770 103A 006F0 667 BNE XFTHEN . IF NOT, OK. BUT IF IT IS, 05520000 0006E4 5098 0000 00000 668 ST 9,0(8) . WE CAN COMPACT, SO UNCHAIN IT 05530000 0006E8 5A30 6004 00004 669 A 3,FSBSIZE . AND REMEMBER THE NEW SIZE 05540000 0006EC 47F0 1050 00706 670 B XFBACKUP . AND ON TO THE NEXT 05550000 0006F0 18A6 671 XFTHEN LR 10,6 . MAYBE IT'S RIGHT BEFORE OURS 05560000 0006F2 5AA0 6004 00004 672 A 10,FSBSIZE . GET ENDING ADDRESS OF FREE BLOCK 05570000 0006F6 19A4 673 CR 10,4 . IS IT RIGHT BEFORE OURS? 05580000 0006F8 4770 1052 00708 674 BNE XFINC . OH FUDGE! NO! 05590000 0006FC 5098 0000 00000 675 ST 9,0(8) . IF SO, UNLINK IT 05600000 000700 1846 676 LR 4,6 . GET THE NEW BEGINNING LOCATION 05610000 000702 5A30 6004 00004 677 A 3,FSBSIZE . AND NEW SIZE OF FREE BLOCK 05620000 000706 1868 678 XFBACKUP LR 6,8 . BACK UP ONE FSB 05630000 1 Sample Operating System Version 2.00 Page 20 Active Usings: PROGRAM,R0 PROGRAM+X'6B6',R1 FSB,R6 XFX,R7 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000708 4180 6000 00000 679 XFINC LA 8,FSBNEXT . ON TO THE NEXT FSB 05640000 00070C 5860 6000 00000 680 L 6,FSBNEXT 05650000 000710 47F0 101E 006D4 681 B XFLOOP . TRY, TRY AGAIN 05660000 000714 4120 E048 00048 682 XFLINK LA 2,SATEMP . START TO CALL XB 05670000 R:2 00000 683 USING XBX,2 05680000 000718 5030 2000 00000 684 ST 3,XBXSIZE . STORE SIZE 05690000 00071C 5040 2004 00004 685 ST 4,XBXADDR . AND ADDRESS 05700000 000720 0AC2 686 SVC C'B' . LINK IT ONTO THE FSB CHAIN 05710000 R:2 00000 687 USING SM,2 05720000 000722 4120 018C 0018C 688 LA 2,MEMORY . GET VALUE OF MEMORY SEMAPHORE 05730000 000726 41B0 0001 00001 689 LA 11,1(0,0) . SUBTRACT FROM ONE, IT'S A HANDLE 05740000 00072A 5BB0 2000 00000 690 S 11,SMVAL . ON THE # OF PEOPLE WAITING 05750000 691 DROP 2 05760000 00072E 46B0 1088 0073E 692 XFVLOOP BCT 11,XFVDO . LOOP IF ANYONE ELSE IS WAITING 05770000 000732 4120 0184 00184 693 LA 2,FSBSEM . WE'RE THROUGH, SO 05780000 000736 0AE5 694 SVC C'V' . UNBLOCK FSBSEM 05790000 000738 0A6B 695 SVC C',' . LEAVE SMC 05800000 00073A 8200 04D8 004D8 696 LPSW RETURN . RETURN 05810000 00073E 0AE5 697 XFVDO SVC C'V' . WAKE SOMEONE UP 05820000 000740 47F0 1078 0072E 698 B XFVLOOP . TRY AGAIN FOR ANOTHER 05830000 699 DROP 6,7 05840000 1 Sample Operating System Version 2.00 Page 21 Active Usings: PROGRAM,R0 PROGRAM+X'6B6',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 701 *********************************************************************** 05860000 702 * * 05870000 703 * XB ROUTINE * 05880000 704 * * 05890000 705 * FUNCTION: TO CHAIN A STORAGE BLOCK ONTO FREE STORAGE LIST * 05900000 706 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XBX: * 05910000 707 * XBX DS 0D * 05920000 708 * XBXSIZE DS F SIZE OF BLOCK * 05930000 709 * XBXADDR DS A ADDRESS OF FIRST BYTE OF BLOCK* 05940000 710 * ROUTINES USED: NONE * 05950000 711 * PROCEDURE: SEARCH FREE STORAGE LIST TO FIND WHERE TO INSERT * 05960000 712 * FREE BLOCK IN ORDER OF INCREASING SIZE; FORMAT * 05970000 713 * BLOCK LIKE AN FSB; INSERT; RETURN. * 05980000 714 * ERROR CHECKS: NONE * 05990000 715 * INTERRUPTS: OFF * 06000000 716 * USER ACCESS: NO * 06010000 717 * COMMENTS: SINCE XB ROUTINE ONLY CALLED BY XA AND XF, FSB * 06020000 718 * SEMAPHORE IS ALREADY LOCKED. * 06030000 719 * * 06040000 720 *********************************************************************** 06050000 0 00744 722 XB EQU * 06070000 R:1 00744 723 USING *,1 06080000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 723 in /mbhfs/sos4k.asm on volume: R:2 00000 724 USING XBX,2 . ARGUMENT LIST 06090000 000744 5830 2000 00000 725 L 3,XBXSIZE . GET THE SIZE 06100000 000748 5840 2004 00004 726 L 4,XBXADDR . AND THE ADDRESS 06110000 00074C 4180 0180 00180 727 LA 8,FSBPTR . START LOOKING DOWN THE CHAIN 06120000 000750 5860 0180 00180 728 L 6,FSBPTR 06130000 000754 1266 729 LTR 6,6 . IF ZERO POINTER, WE ARE AT 06140000 000756 4780 102C 00770 730 BZ XBINSERT . END OF CHAIN ALREADY 06150000 R:6 00000 731 USING FSB,6 06160000 00075A 5930 6004 00004 732 XBLOOP C 3,FSBSIZE . IF THE SIZE OF OURS IS LESS, 06170000 00075E 47D0 102C 00770 733 BNP XBINSERT . TIME TO INSERT 06180000 000762 4180 6000 00000 734 LA 8,FSBNEXT . ELSE GO ON TO THE NEXT 06190000 000766 5860 6000 00000 735 L 6,FSBNEXT 06200000 00076A 1266 736 LTR 6,6 . IF NOT ALREADY THROUGH 06210000 00076C 4770 1016 0075A 737 BNZ XBLOOP . BRANCH BACK 06220000 000770 5048 0000 00000 738 XBINSERT ST 4,0(8) . NOW, LINK OURS ON 06230000 739 DROP 6 06240000 R:4 00000 740 USING FSB,4 06250000 000774 5060 4000 00000 741 ST 6,FSBNEXT . MAKE OURS POINT TO THE NEXT 06260000 000778 5030 4004 00004 742 ST 3,FSBSIZE . WITH THE RIGHT SIZE 06270000 00077C 8200 04D8 004D8 743 LPSW RETURN . AND RETURN 06280000 744 DROP 2,4 06290000 1 Sample Operating System Version 2.00 Page 22 Active Usings: PROGRAM,R0 PROGRAM+X'744',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 746 *********************************************************************** 06310000 747 * * 06320000 748 * XC ROUTINE * 06330000 749 * * 06340000 750 * FUNCTION: TO CREATE A PROCESS * 06350000 751 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XCX: * 06360000 752 * XCX DS 0D * 06370000 753 * XCXNAME DS CL8 NAME OF PROCESS TO BE CREATED * 06380000 754 * ROUTINES USED: XEXC, XCOM, XN, XA, XI, XQUE * 06390000 755 * PROCEDURE: USE XA TO ALLOCATE NEW PCB; PLACE XCXNAME IN PCB; * 06400000 756 * INITIALIZE SEMAPHORES; STOP; BLOCK; OUT OF SMC; * 06410000 757 * CALL XI TO LINK PCB ONTO PCB CHAINS; RETURN. * 06420000 758 * ERROR CHECKS: IF NAME ALREADY USED IN THIS GROUP, XQUE ENTERED. * 06430000 759 * INTERRUPTS: ON * 06440000 760 * USER ACCESS: YES * 06450000 761 * * 06460000 762 *********************************************************************** 06470000 0 00780 764 XC EQU * . THE XC ROUTINE: CREATE A PROCESS 06490000 R:1 00780 765 USING *,1 06500000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 765 in /mbhfs/sos4k.asm on volume: 000780 1872 766 LR 7,2 06510000 R:7 00000 767 USING XCX,7 . ARGUMENT LIST 06520000 000782 4120 E048 00048 768 LA 2,SATEMP . READY TO MAKE CALLS OUT 06530000 R:2 00000 769 USING XNX,2 . A XN-LIKE ARGUMENT LIST 06540000 000786 D207 2000 7000 00000 00000 770 MVC XNXNAME,XCXNAME . GET THE NAME 06550000 00078C 0AD5 771 SVC C'N' . AND CALL TO FIND THE PCB 06560000 00078E D503 2008 16E0 00008 00E60 772 CLC XNXADDR,=A(0) . SEE IF THERE 06570000 000794 4770 1044 007C4 773 BNE XCERR . IF ALREADY EXISTS, BAD 06580000 000798 0A5A 774 SVC C'!' . ENTER SMC SECTION 06590000 775 DROP 2 06600000 R:2 00000 776 USING XAX,2 . READY TO CALL XA 06610000 00079A D203 2000 16E4 00000 00E64 777 MVC XAXSIZE,=A(LENPCB) . WE KNOW THE SIZE 06620000 0007A0 D203 2008 16E8 00008 00E68 778 MVC XAXALGN,=F'8' . AND THE ALIGNMENT 06630000 0007A6 0AC1 779 SVC C'A' . SO CALL 06640000 0007A8 5820 2004 00004 780 L 2,XAXADDR . FIND THE ADDRESS 06650000 781 DROP 2,15 06660000 R:2 00000 782 USING PCB,2 . FILL IN THE PCB 06670000 0007AC D207 2000 7000 00000 00000 783 MVC PCBNAME,XCXNAME . GIVE IT A NAME 06680000 0007B2 92FF 2018 00018 784 MVI PCBSTOPT,X'FF' . IT'S STOPPED 06690000 0007B6 D232 2019 1B01 00019 01281 785 MVC PCBBLOKT(PCBISA-PCBBLOKT),TEMPLATE+1 INITIALIZE PCB 06700000 0007BC 0AC9 786 SVC C'I' . THREAD IT ON 06710000 0007BE 0A6B 787 SVC C',' . LEAVE SMC SECTION 06720000 0007C0 8200 04D8 004D8 788 LPSW RETURN . AND RETURN 06730000 0007C4 0A6F 789 XCERR SVC C'?' . IF ALREADY EXISTS,KERROR 06740000 790 DROP 2,7 06750000 1 Sample Operating System Version 2.00 Page 23 Active Usings: PROGRAM,R0 PROGRAM+X'780',R1 SA,R14 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 792 *********************************************************************** 06770000 793 * * 06780000 794 * XD ROUTINE * 06790000 795 * * 06800000 796 * FUNCTION: TO DESTROY A PROCESS * 06810000 797 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XDX: * 06820000 798 * XDX DS 0D * 06830000 799 * XDXNAME DS CL8 NAME OF PROCESS TO BE DESTROYED* 06840000 800 * ROUTINES USED: XEXC, XJ, XS, XN, XF, XCOM, XQUE * 06850000 801 * PROCEDURE: USE XN TO FIND PCB FOR PROCESS TO BE DESTROYED; * 06860000 802 * USE XJ TO UNLOCK PCB FROM PROCESS CHAINS; IF ANY * 06870000 803 * MESSAGES FOR THIS PROCESS, FREE STORAGE FOR THEM; * 06880000 804 * IF THERE IS ANY AUTOMATIC STORAGE, FREE IT; * 06890000 805 * FREE STORAGE FOR PCB; RETURN. * 06900000 806 * ERROR CHECKS: IF NAME DOESN'T EXIST OR PROCESS NOT STOPPED, * 06910000 807 * XQUE ENTERED. * 06920000 808 * INTERRUPTS: ON * 06930000 809 * USER ACCESS: YES * 06940000 810 * * 06950000 811 *********************************************************************** 06960000 0 007C6 813 XD EQU * . XD ROUTINE: DESTROY A PROCESS 06980000 R:1 007C6 814 USING *,1 06990000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 814 in /mbhfs/sos4k.asm on volume: 0007C6 1872 815 LR 7,2 07000000 R:7 00000 816 USING XDX,7 . ARG LIST 07010000 0007C8 4120 E048 00048 817 LA 2,SATEMP . READY TO CALL OUT 07020000 R:2 00000 818 USING XNX,2 . WILL CALL XN 07030000 0007CC D207 2000 7000 00000 00000 819 MVC XNXNAME,XDXNAME . GET NAME 07040000 0007D2 0AD5 820 SVC C'N' . AND CALL 07050000 0007D4 5820 2008 00008 821 L 2,XNXADDR . GET ADDRESS 07060000 822 DROP 2 07070000 0007D8 1222 823 LTR 2,2 . IF ADDRESS IS NULL, 07080000 0007DA 4780 107A 00840 824 BZ XDERR . IT'S AN ERROR 07090000 R:2 00000 825 USING PCB,2 07100000 0007DE 95FF 2018 00018 826 CLI PCBSTOPT,X'FF' . IF NOT STOPPED 07110000 0007E2 4770 107A 00840 827 BNE XDERR . IT'S AN ERROR 07120000 0007E6 0A5A 828 SVC C'!' . ENTER SMC SECTION 07130000 829 DROP 2 07140000 R:F 00000 830 USING PCB,15 07150000 0007E8 0AD1 831 SVC C'J' . ELSE UNTHREAD THE ENTRY 07160000 0007EA 1882 832 LR 8,2 . REMEMBER THE PCB POINTER 07170000 0007EC 4120 E048 00048 833 LA 2,SATEMP . READY TO CALL OUT AGAIN 07180000 R:8 00000 834 USING PCB,8 07190000 ** ASMA300W USING overridden by a prior active USING on statement number 830 ** ASMA435I Record 834 in /mbhfs/sos4k.asm on volume: 835 DROP 15 07200000 0007F0 5890 802C 0002C 836 L 9,PCBFM . GET FIRST MESSAGE 07210000 0007F4 1299 837 XDLOOP LTR 9,9 . ANY MORE MESSAGES? 07220000 0007F6 4780 1054 0081A 838 BZ XDCHECK . IF NOT, FINISH UP 07230000 R:9 00000 839 USING MSG,9 07240000 0007FA 58A0 9004 00004 840 L 10,MSGNEXT . ELSE REMEMBER NEXT 07250000 0007FE 58B0 9008 00008 841 L 11,MSGSIZE . GET THE SIZE 07260000 000802 41BB 000F 0000F 842 LA 11,15(11) . AND MAKE IT SOME NUMBER 07270000 1 Sample Operating System Version 2.00 Page 24 Active Usings: PROGRAM,R0 PROGRAM+X'7C6',R1 XDX,R7 PCB,R8 MSG,R9 SA,R14 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000806 54B0 16A6 00E6C 843 N 11,=F'-8' . OF DOUBLEWORDS 07280000 R:2 00000 844 USING XFX,2 07290000 00080A 5090 2004 00004 845 ST 9,XFXADDR . FREE THE LOCATION 07300000 00080E 50B0 2000 00000 846 ST 11,XFXSIZE . THE NUMBER OF WORDS 07310000 000812 0AC6 847 SVC C'F' . DO IT 07320000 000814 189A 848 LR 9,10 . ON TO THE NEXT 07330000 000816 47F0 102E 007F4 849 B XDLOOP . GET THE NEXT MESSAGE 07340000 00081A D503 8048 169A 00048 00E60 850 XDCHECK CLC PCBAADDR(4),=A(0) . HAS AUTOMATIC STORAGE BEEN 07350000 000820 4780 1068 0082E 851 BE XDTHEN . ALLOCATED? IF NOT, GO FINISH UP 07360000 000824 4120 8044 00044 852 LA 2,PCBASIZE . SET UP THE ARGUMENT LIST 07370000 000828 0AC6 853 SVC C'F' . FREE IT 07380000 00082A 4120 E048 00048 854 LA 2,SATEMP . RESET REGISTER 2 07390000 00082E 5080 2004 00004 855 XDTHEN ST 8,XFXADDR . READY TO FREE THE PCB 07400000 000832 D203 2000 169E 00000 00E64 856 MVC XFXSIZE,=A(LENPCB) . THE SIZE 07410000 000838 0AC6 857 SVC C'F' . FREE IT 07420000 00083A 0A6B 858 SVC C',' . LEAVE SMC 07430000 00083C 8200 04D8 004D8 859 LPSW RETURN . AND RETURN 07440000 000840 0A6F 860 XDERR SVC C'?' . IF PROCESS DOES NOT EXIST 07450000 861 DROP 2,7,8,9 07460000 R:F 00000 862 USING PCB,15 07470000 - 864 *********************************************************************** 07490000 865 * * 07500000 866 * XH ROUTINE * 07510000 867 * * 07520000 868 * FUNCTION: TO HALT A JOB * 07530000 869 * DATABASES: NONE * 07540000 870 * ROUTINES USED: XS, XR * 07550000 871 * PROCEDURE: SEND MESSAGE TO SUPERVISOR PROCESS FOR THIS JOB * 07560000 872 * INDICATING NORMAL TERMINATION; TRIES TO READ * 07570000 873 * MESSAGES FOREVER LOOPING; BLOCKS ITSELF, THEREBY * 07580000 874 * NEVER RETURNING. * 07590000 875 * ERROR CHECKS: NONE * 07600000 876 * INTERRUPTS: ON * 07610000 877 * USER ACCESS: YES * 07620000 878 * COMMENTS: USER NORMALLY USES THIS ROUTINE TO END A JOB. * 07630000 879 * * 07640000 880 *********************************************************************** 07650000 0 00842 882 XH EQU * . THE XH ROUTINE: HALT A JOB 07670000 R:1 00842 883 USING *,1 07680000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 883 in /mbhfs/sos4k.asm on volume: 000842 4120 1012 00854 884 LA 2,XHMSG1 . SEND A MESSAGE TO *IBSUP 07690000 000846 0AE2 885 SVC C'S' . SEND IT 07700000 000848 4120 102A 0086C 886 XHLOOP LA 2,XHMSG2 . READY TO READ A REPLY 07710000 00084C 0AD9 887 SVC C'R' . WHICH NEVER COMES 07720000 00084E 47F0 1006 00848 888 B XHLOOP . BUT IF IT DOES WERE READY 07730000 000854 889 DS 0F 07740000 000854 5CC9C2E2E4D74040 890 XHMSG1 DC CL8'*IBSUP' . SAY TO *IBSUP 07750000 00085C 0000000C 891 DC F'12' . TWELVE CHARACTERS 07760000 000860 D7D9D6C7D9C1D440 892 DC C'PROGRAM HALT' . SAYING WERE OK 07770000 00086C 893 XHMSG2 DS CL8 . WHO SENDS US A MESSAGE 07780000 1 Sample Operating System Version 2.00 Page 25 Active Usings: PROGRAM,R0 PROGRAM+X'842',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000874 00000001 894 DC F'1' . ONE CHARACTER 07790000 000878 895 DS CL1,0H . WHICH GOES HERE 07800000 1 Sample Operating System Version 2.00 Page 26 Active Usings: PROGRAM,R0 PROGRAM+X'842',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 897 *********************************************************************** 07820000 898 * * 07830000 899 * XI ROUTINE * 07840000 900 * * 07850000 901 * FUNCTION: TO CHAIN A PCB ONTO PROCESS CHAINS * 07860000 902 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS OF A PCB * 07870000 903 * ROUTINES USED: NONE * 07880000 904 * PROCEDURE: POINTER USED TO CHAIN PCB INTO ALL PCB CHAIN AND * 07890000 905 * THIS GROUP CHAIN RIGHT AFTER RUNNING PCB; RETURN. * 07900000 906 * ERROR CHECKS: NONE * 07910000 907 * INTERRUPTS: OFF * 07920000 908 * USER ACCESS: NO * 07930000 909 * * 07940000 910 *********************************************************************** 07950000 0 0087A 912 XI EQU * . THE XI ROUTINE: THREAD IN A PCB 07970000 R:1 0087A 913 USING *,1 07980000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 913 in /mbhfs/sos4k.asm on volume: 00087A 58A0 F010 00010 914 L 10,PCBNPALL . GET THE NEXT 'ALL' PCB 07990000 00087E 5020 F010 00010 915 ST 2,PCBNPALL . STORE THIS PCB RIGNT AFTER MINE 08000000 916 DROP 15 08010000 R:A 00000 917 USING PCB,10 08020000 000882 5020 A014 00014 918 ST 2,PCBLPALL . THE NEXT ONE DOWN POINTS BACK 08030000 919 DROP 10 08040000 R:2 00000 920 USING PCB,2 08050000 000886 50F0 2014 00014 921 ST 15,PCBLPALL . THIS PCB POINTS BACK 08060000 00088A 50A0 2010 00010 922 ST 10,PCBNPALL . AND FORWARD 08070000 923 DROP 2 08080000 R:F 00000 924 USING PCB,15 08090000 00088E 58A0 F008 00008 925 L 10,PCBNPTG . GET NEXT "THIS GROUP" PCB 08100000 000892 5020 F008 00008 926 ST 2,PCBNPTG . RUNNING PCB POINTS TO NEW MEMBER 08110000 927 DROP 15 . OF PROCESS GROUP 08120000 R:A 00000 928 USING PCB,10 08130000 000896 5020 A00C 0000C 929 ST 2,PCBLPTG . NEXT PCB DOWN POINTS BACK 08140000 930 DROP 10 08150000 R:2 00000 931 USING PCB,2 08160000 00089A 50F0 200C 0000C 932 ST 15,PCBLPTG . AND WE POINT BACKWARD 08170000 00089E 50A0 2008 00008 933 ST 10,PCBNPTG . AND FORWARD 08180000 934 DROP 2 08190000 0008A2 8200 04D8 004D8 935 LPSW RETURN . RETURN 08200000 R:F 00000 936 USING PCB,15 08210000 1 Sample Operating System Version 2.00 Page 27 Active Usings: PROGRAM,R0 PROGRAM+X'87A',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 938 *********************************************************************** 08230000 939 * * 08240000 940 * XJ ROUTINE * 08250000 941 * * 08260000 942 * FUNCTION: TO UNCHAIN A PCB FROM PROCESS CHAINS * 08270000 943 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS OF A PCB * 08280000 944 * ROUTINES USED: NONE * 08290000 945 * PROCEDURE: POINTERS TO PCB IN ALL PCB CHAIN AND THIS GROUP * 08300000 946 * CHAIN MODIFIED WITHOUT FREEING STORAGE; RETURN. * 08310000 947 * ERROR CHECKS: NONE * 08320000 948 * INTERRUPTS: OFF * 08330000 949 * USER ACCESS: NO * 08340000 950 * * 08350000 951 *********************************************************************** 08360000 0 008A6 953 XJ EQU * . THE XJ ROUTINE: UNTHREAD A PCB 08380000 R:1 008A6 954 USING *,1 08390000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 954 in /mbhfs/sos4k.asm on volume: 955 DROP 15 08400000 R:2 00000 956 USING PCB,2 08410000 0008A6 58B0 2014 00014 957 L 11,PCBLPALL . GET PRECEDING PCB 08420000 0008AA 58A0 2010 00010 958 L 10,PCBNPALL . AND FOLLOWING ONE IN "ALL" 08430000 959 DROP 2 . CHAIN 08440000 R:B 00000 960 USING PCB,11 08450000 0008AE 50A0 B010 00010 961 ST 10,PCBNPALL . LAST POINTS TO NEXT 08460000 962 DROP 11 08470000 R:A 00000 963 USING PCB,10 08480000 0008B2 50B0 A014 00014 964 ST 11,PCBLPALL . NEXT POINTS TO LAST 08490000 965 DROP 10 08500000 R:2 00000 966 USING PCB,2 08510000 0008B6 58B0 200C 0000C 967 L 11,PCBLPTG . REDO FOR THIS GROUP PCB CHAIN 08520000 0008BA 58A0 2008 00008 968 L 10,PCBNPTG 08530000 969 DROP 2 08540000 R:B 00000 970 USING PCB,11 08550000 0008BE 50A0 B008 00008 971 ST 10,PCBNPTG . LAST POINTS TO NEXT 08560000 972 DROP 11 08570000 R:A 00000 973 USING PCB,10 08580000 0008C2 50B0 A00C 0000C 974 ST 11,PCBLPTG . NEXT POINTS TO LAST 08590000 975 DROP 10 08600000 0008C6 8200 04D8 004D8 976 LPSW RETURN . AND RETURN 08610000 R:F 00000 977 USING PCB,15 08620000 1 Sample Operating System Version 2.00 Page 28 Active Usings: PROGRAM,R0 PROGRAM+X'8A6',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 979 *********************************************************************** 08640000 980 * * 08650000 981 * XN ROUTINE * 08660000 982 * * 08670000 983 * FUNCTION: TO FIND THE PCB FOR A PROCESS GIVEN ITS NAME ONLY * 08680000 984 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XNX * 08690000 985 * XNX DS 0D * 08700000 986 * XNXNAME DS CL8 NAME OF PROCESS * 08710000 987 * XNXADDR DS A ADDRESS OF PCB * 08720000 988 * ROUTINES USED: NONE * 08730000 989 * PROCEDURE: SEARCH THIS GROUP PCB CHAIN FOR NAME; IF FOUND, * 08740000 990 * STORE POINTER IN XNXADDR. IF NOT FOUND, STORE * 08750000 991 * ZERO IN XNXADDR; RETURN. * 08760000 992 * ERROR CHECKS: NONE * 08770000 993 * INTERRUPTS: OFF * 08780000 994 * USER ACCESS: YES * 08790000 995 * * 08800000 996 *********************************************************************** 08810000 0 008CA 998 XN EQU * . THE XN ROUTINE: FIND A NAMED PCB 08830000 R:1 008CA 999 USING *,1 08840000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 999 in /mbhfs/sos4k.asm on volume: R:2 00000 1000 USING XNX,2 . THE ARG LIST 08850000 0008CA 18AF 1001 LR 10,15 . FIRST PCB TO LOOK AT IS OURS 08860000 1002 DROP 15 08870000 R:A 00000 1003 USING PCB,10 08880000 0008CC 58A0 A008 00008 1004 XNXLOOP L 10,PCBNPTG . LOOK AT NEXT PCB 08890000 0008D0 D507 A000 2000 00000 00000 1005 CLC PCBNAME,XNXNAME . HAS IT THE RIGHT NAME? 08900000 0008D6 4780 101A 008E4 1006 BE XNXFOUND . IF YES, OH JOY. 08910000 0008DA 19AF 1007 CR 10,15 . IF NOT, ARE WE THROUGH? 08920000 0008DC 4770 1002 008CC 1008 BNE XNXLOOP . IF NOT, TRY THE NEXT PCB 08930000 0008E0 41A0 0000 00000 1009 LA 10,0 . ELSE, IT'S NOT HERE 08940000 0008E4 50A0 2008 00008 1010 XNXFOUND ST 10,XNXADDR . FOUND IT. SAY WHERE. 08950000 0008E8 8200 04D8 004D8 1011 LPSW RETURN . AND RETURN 08960000 1012 DROP 2,10 08970000 R:F 00000 1013 USING PCB,15 08980000 1 Sample Operating System Version 2.00 Page 29 Active Usings: PROGRAM,R0 PROGRAM+X'8CA',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1015 *********************************************************************** 09000000 1016 * * 09010000 1017 * XR ROUTINE * 09020000 1018 * * 09030000 1019 * FUNCTION: TO READ A MESSAGE * 09040000 1020 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XRX * 09050000 1021 * XRX DS 0D * 09060000 1022 * XRXNAME DS CL8 NAME OF SENDER PROCESS * 09070000 1023 * XRXSIZE DS F SIZE OF MESSAGE TEXT * 09080000 1024 * XRXTEXT DS C TEXT OF MESSAGE * 09090000 1025 * ROUTINES USED: XP, XEXC, XN, XCOM, XF * 09100000 1026 * PROCEDURE: USE XP ON MESSAGE SEMAPHORE RECEIVER TO SEE IF ANY * 09110000 1027 * MESSAGES WAITING; IF NONE, PROCESS BLOCKED UNTIL * 09120000 1028 * THERE IS ONE; LOCK MESSAGE CHAIN; REMOVE A MESSAGE * 09130000 1029 * FROM CHAIN AND UNLOCK IT; MOVE TEXT OF MESSAGE, * 09140000 1030 * PADDING WITH BLANKS OR TRUNCATING AS NECESSARY; * 09150000 1031 * INDICATE CORRECT MESSAGE LENGTH AND NAME OF * 09160000 1032 * MESSAGE SENDER; FREE STORAGE USED TO HOLD MESSAGE, * 09170000 1033 * AND RETURN. * 09180000 1034 * ERROR CHECKS: NONE * 09190000 1035 * INTERRUPTS: ON * 09200000 1036 * USER ACCESS: YES * 09210000 1037 * * 09220000 1038 *********************************************************************** 09230000 0 008EC 1040 XR EQU * . THE XR ROUTINE: READ A MESSAGE 09250000 R:1 008EC 1041 USING *,1 09260000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1041 in /mbhfs/sos4k.asm on volume: 0008EC 1872 1042 LR 7,2 09270000 R:7 00000 1043 USING XRX,7 . ARG LIST 09280000 0008EE 4120 F024 00024 1044 LA 2,PCBMSR . SEE IF MESSAGES WAITING 09290000 0008F2 0AD7 1045 SVC C'P' 09300000 0008F4 0A5A 1046 SVC C'!' . ENTER SMC SECTION 09310000 0008F6 4120 F01C 0001C 1047 LA 2,PCBMSC . THEN LOCK THE MESSAGE CHAIN 09320000 0008FA 0AD7 1048 SVC C'P' 09330000 0008FC 5850 F02C 0002C 1049 L 5,PCBFM . GET THE FIRST MESSAGE 09340000 R:5 00000 1050 USING MSG,5 09350000 000900 D203 F02C 5004 0002C 00004 1051 MVC PCBFM,MSGNEXT . REMEMBER THE NEXT 09360000 000906 0AE5 1052 SVC C'V' . UNLOCK THE MESSAGE CHAIN 09370000 000908 5860 7008 00008 1053 L 6,XRXSIZE . GET THE BUFFER CAPACITY 09380000 00090C 5B60 1584 00E70 1054 S 6,=F'2' . MINUS 1, MINUS 1 09390000 000910 9240 700C 0000C 1055 MVI XRXTEXT,C' ' . MOVE IN A BLANK 09400000 000914 4740 1030 0091C 1056 BM XRNOB 09410000 000918 4460 1080 0096C 1057 EX 6,XRFILL . THEN FILL THE REST WITH BLANKS 09420000 00091C 4166 0001 00001 1058 XRNOB LA 6,1(6) . THEN GET PROPER BUFFER COUNT 09430000 000920 5960 5008 00008 1059 C 6,MSGSIZE . COMPARE WITH MESSAGE LENGTH 09440000 000924 4740 1042 0092E 1060 BL XRTHEN . IF LESS, HANDLE ACCORDINGLY 09450000 000928 5860 5008 00008 1061 L 6,MSGSIZE . ELSE COUNT FOR MVC IS MESSAGE 09460000 00092C 0660 1062 BCTR 6,0 . SIZE MINUS ONE 09470000 00092E 1266 1063 XRTHEN LTR 6,6 . ANY CHARACTERS TO MOVE? 09480000 000930 4740 104C 00938 1064 BM XRAFT . IF NOT, DON'T 09490000 000934 4460 1086 00972 1065 EX 6,XRMOVE . ELSE MOVE THEM 09500000 000938 4166 0001 00001 1066 XRAFT LA 6,1(6) . THEN GET LENGTH 09510000 00093C 5060 7008 00008 1067 ST 6,XRXSIZE . STORE IT 09520000 1 Sample Operating System Version 2.00 Page 30 Active Usings: PROGRAM,R0 PROGRAM+X'8EC',R1 MSG,R5 XRX,R7 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000940 58A0 5000 00000 1068 L 10,MSGSENDR . GET SENDER'S PCB 09530000 1069 DROP 15 09540000 R:A 00000 1070 USING PCB,10 09550000 000944 D207 7000 A000 00000 00000 1071 MVC XRXNAME,PCBNAME . AND STORE SENDER'S NAME 09560000 00094A 5860 5008 00008 1072 L 6,MSGSIZE . GET SIZE OF MESSAGE TEXT 09570000 00094E 4166 000C 0000C 1073 LA 6,LENMSG(6) . ADD SIZE OF MESSAGE BLOCK 09580000 000952 4166 0007 00007 1074 LA 6,7(6) . AND TRUNCATE 09590000 000956 5460 1580 00E6C 1075 N 6,=F'-8' . UP 09600000 00095A 1825 1076 LR 2,5 . SET UP POINTER TO XFX 09610000 R:2 00000 1077 USING XFX,2 09620000 00095C 5050 2004 00004 1078 ST 5,XFXADDR . STORE ADDRESS 09630000 000960 5060 2000 00000 1079 ST 6,XFXSIZE . STORE SIZE 09640000 000964 0AC6 1080 SVC C'F' . AND FREE THE MESSAGE BLOCK 09650000 000966 0A6B 1081 SVC C',' . LEAVE SMC 09660000 000968 8200 04D8 004D8 1082 LPSW RETURN . AND RETURN 09670000 00096C D200 700D 700C 0000D 0000C 1083 XRFILL MVC XRXTEXT+1,XRXTEXT . FILL WITH BLANKS 09680000 000972 D200 700C 500C 0000C 0000C 1084 XRMOVE MVC XRXTEXT,MSGTEXT . MOVE TEXT 09690000 1085 DROP 2,5,7,10 09700000 R:F 00000 1086 USING PCB,15 09710000 - 1088 *********************************************************************** 09730000 1089 * * 09740000 1090 * XS ROUTINE * 09750000 1091 * * 09760000 1092 * FUNCTION: TO SEND A MESSAGE * 09770000 1093 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XSX * 09780000 1094 * XSX DS 0D * 09790000 1095 * XSXNAME DS CL8 NAME OF TARGET PROCESS * 09800000 1096 * XSXSIZE DS F SIZE OF TEXT * 09810000 1097 * XSXTEXT DS C TEXT OF MESSAGE * 09820000 1098 * ROUTINES USED: XP, XV, XEXC, XCOM, XA, XQUE * 09830000 1099 * PROCEDURE: USE XN TO GET POINTER TO PCB OF TARGET PROCESS; * 09840000 1100 * USE LENGTH OF MESSAGE AND XA TO ALLOCATE BLOCK FOR * 09850000 1101 * MESSAGE; LOCK MESSAGE CHAIN OF TARGET PROCESS; * 09860000 1102 * PUT MESSAGE BLOCK AT END OF CHAIN; STORE SENDER * 09870000 1103 * NAME, SIZE, AND TEXT OF MESSAGE; UNLOCK CHAIN; * 09880000 1104 * INDICATE MESSAGE CHAIN IS ONE LONGER; RETURN. * 09890000 1105 * ERROR CHECKS: IF NO PROCESS BY GIVEN NAME, ENTER XQUE. * 09900000 1106 * INTERRUPTS: ON * 09910000 1107 * USER ACCESS: YES * 09920000 1108 * * 09930000 1109 *********************************************************************** 09940000 0 00978 1111 XS EQU * . THE XS ROUTINE: SEND MESSAGES 09960000 R:1 00978 1112 USING *,1 09970000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1112 in /mbhfs/sos4k.asm on volume: 000978 1872 1113 LR 7,2 09980000 R:7 00000 1114 USING XSX,7 . ARG LIST 09990000 00097A 4120 E048 00048 1115 LA 2,SATEMP . READY TO CALL OUT 10000000 R:2 00000 1116 USING XNX,2 . ABOUT TO CALL XN 10010000 00097E D207 2000 7000 00000 00000 1117 MVC XNXNAME,XSXNAME . GIVE NAME OF TARGET PROCESS 10020000 000984 0AD5 1118 SVC C'N' . SEE WHERE IT IS 10030000 1 Sample Operating System Version 2.00 Page 31 Active Usings: PROGRAM,R0 PROGRAM+X'978',R1 XNX,R2 XSX,R7 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000986 5840 2008 00008 1119 L 4,XNXADDR . GET THE POINTER 10040000 00098A 1244 1120 LTR 4,4 . IS THERE INDEED ONE? 10050000 00098C 4780 108A 00A02 1121 BZ XSERR . IF NOT, ERROR 10060000 R:4 00000 1122 USING PCB,4 10070000 ** ASMA300W USING overridden by a prior active USING on statement number 1086 ** ASMA435I Record 1122 in /mbhfs/sos4k.asm on volume: 1123 DROP 2,15 10080000 R:2 00000 1124 USING XAX,2 . READY TO CALL XA 10090000 000990 0A5A 1125 SVC C'!' . ENTERING SMC SECTION 10100000 000992 5830 7008 00008 1126 L 3,XSXSIZE . GET THE STATED SIZE 10110000 000996 4133 000C 0000C 1127 LA 3,LENMSG(3) . PLUS THE AMOUNT OF OVERHEAD 10120000 00099A 4133 0007 00007 1128 LA 3,7(3) . AND TRUNCATE 10130000 00099E 5430 14F4 00E6C 1129 N 3,=F'-8' . UP 10140000 0009A2 5030 2000 00000 1130 ST 3,XAXSIZE . THAT'S THE SIZE OF THE REGION TO 10150000 0009A6 D203 2008 14F0 00008 00E68 1131 MVC XAXALGN,=F'8' . ALLOCATE, ON A DOUBLEWORD BOUND 10160000 0009AC 0AC1 1132 SVC C'A' . SO ALLOCATE ALREADY 10170000 0009AE 5850 2004 00004 1133 L 5,XAXADDR . GET THE ADDRESS 10180000 1134 DROP 2 10190000 0009B2 4120 401C 0001C 1135 LA 2,PCBMSC . GET THE MESSAGE CHAIN SEMAPHORE 10200000 0009B6 0AD7 1136 SVC C'P' . AND LOCK IT 10210000 0009B8 4180 402C 0002C 1137 LA 8,PCBFM . THEN START DOWN THE MESSAGE 10220000 0009BC 5890 402C 0002C 1138 L 9,PCBFM . CHAIN 10230000 R:9 00000 1139 USING MSG,9 10240000 0009C0 1299 1140 XSLOOP LTR 9,9 . ARE WE THROUGH? 10250000 0009C2 4780 105A 009D2 1141 BZ XSADD . IF SO ADD IT ON 10260000 0009C6 4180 9004 00004 1142 LA 8,MSGNEXT . IF NOT, ON TO THE NEXT 10270000 0009CA 5890 9004 00004 1143 L 9,MSGNEXT 10280000 0009CE 47F0 1048 009C0 1144 B XSLOOP . AND TRY AGAIN 10290000 0009D2 5058 0000 00000 1145 XSADD ST 5,0(8) . CHAIN OURS ON THE END 10300000 1146 DROP 9 10310000 R:5 00000 1147 USING MSG,5 10320000 0009D6 D203 5004 14E8 00004 00E60 1148 MVC MSGNEXT,=A(0) . SET NEXT POINTER NULL 10330000 0009DC 50F0 5000 00000 1149 ST 15,MSGSENDR . STORE THE SENDER 10340000 0009E0 5860 7008 00008 1150 L 6,XSXSIZE . GET THE TEXT LENGTH 10350000 0009E4 5060 5008 00008 1151 ST 6,MSGSIZE . AND STORE IT 10360000 0009E8 0660 1152 BCTR 6,0 . ONE LESS 10370000 0009EA 1266 1153 LTR 6,6 . TEST LENGTH 10380000 0009EC 4740 107C 009F4 1154 BM XSAFT . IF ZERO, NOTHING TO MOVE 10390000 0009F0 4460 108C 00A04 1155 EX 6,XSMOVE . ELSE, MOVE IT 10400000 0009F4 0AE5 1156 XSAFT SVC C'V' . UNLOCK THE MESSAGE CHAIN 10410000 0009F6 4120 4024 00024 1157 LA 2,PCBMSR . THEN SAY THERE'S 10420000 0009FA 0AE5 1158 SVC C'V' . ONE MORE MESSAGE 10430000 0009FC 0A6B 1159 SVC C',' . LEAVE SMC SECTION 10440000 0009FE 8200 04D8 004D8 1160 LPSW RETURN . AND RETURN 10450000 000A02 0A6F 1161 XSERR SVC C'?' 10460000 000A04 D200 500C 700C 0000C 0000C 1162 XSMOVE MVC MSGTEXT,XSXTEXT . THE MOVE FOR THE TEXT 10470000 1163 DROP 4,5,7 10480000 R:F 00000 1164 USING PCB,15 10490000 1 Sample Operating System Version 2.00 Page 32 Active Usings: PROGRAM,R0 PROGRAM+X'978',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1166 *********************************************************************** 10510000 1167 * * 10520000 1168 * XY ROUTINE * 10530000 1169 * * 10540000 1170 * FUNCTION: TO START A PROCESS * 10550000 1171 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XYX * 10560000 1172 * XYX DS 0D * 10570000 1173 * XYXNAME DS CL8 NAME OF PROCESS TO BE STARTED * 10580000 1174 * XYXADDR DS A STARTING ADDRESS OF PROCESS * 10590000 1175 * ROUTINES USED: XN, XEXC, XCOM, XQUE * 10600000 1176 * PROCEDURE: USE XN TO GET POINTER TO THE PCB OF PROCESS TO BE * 10610000 1177 * STARTED; STORE IN PCB INTERRUPT SAVE AREA REGISTERS* 10620000 1178 * AND PSW WITH STARTING ADDRESS AS SENT FROM STARTING* 10630000 1179 * PROCESS; STOPPED BIT TURNED OFF; RETURN. * 10640000 1180 * ERROR CHECKS: IF NO PROCESS BY GIVEN NAME, XQUE ENTERED. * 10650000 1181 * INTERRUPTS: OFF * 10660000 1182 * USER ACCESS: YES * 10670000 1183 * * 10680000 1184 *********************************************************************** 10690000 0 00A0A 1186 XY EQU * . THE XY ROUTINE: START A PROCESS 10710000 R:1 00A0A 1187 USING *,1 10720000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1187 in /mbhfs/sos4k.asm on volume: 000A0A 1872 1188 LR 7,2 10730000 R:7 00000 1189 USING XYX,7 . THE ARG LIST 10740000 000A0C 4120 E048 00048 1190 LA 2,SATEMP . READY TO CALL OUT 10750000 R:2 00000 1191 USING XNX,2 10760000 000A10 D207 2000 7000 00000 00000 1192 MVC XNXNAME,XYXNAME . GIVE XN A NAME 10770000 000A16 0AD5 1193 SVC C'N' . CALL XN 10780000 000A18 58A0 2008 00008 1194 L 10,XNXADDR . WHERE IS THE PCB? 10790000 000A1C 12AA 1195 LTR 10,10 . OR IS THERE ONE? 10800000 000A1E 4780 1036 00A40 1196 BZ XYERR . IF NOT, OH HISS BOO 10810000 1197 DROP 2,14,15 10820000 R:A 00000 1198 USING PCB,10 10830000 000A22 41D0 A04C 0004C 1199 LA 13,PCBISA . GET INTO THAT PCB'S ISA 10840000 R:D 00000 1200 USING SA,13 10850000 000A26 D207 D000 E000 00000 00000 1201 MVC SAPSW,(SAPSW-SA)(14) . GIVE IT THE CALLER'S PSW 10860000 000A2C D202 D005 7009 00005 00009 1202 MVC SAPSW+5(3),XYXADDR+1 . BUT AT THE REQUESTED ADDRESS 10870000 000A32 D23F D008 E008 00008 00008 1203 MVC SAREGS,(SAREGS-SA)(14) .GIVE IT HIS REGISTERS 10880000 000A38 9200 A018 00018 1204 MVI PCBSTOPT,X'00' . IT'S NO LONGER STOPPED 10890000 000A3C 8200 04D8 004D8 1205 LPSW RETURN . AND RETURN 10900000 000A40 0A6F 1206 XYERR SVC C'?' . WE DONE BAD 10910000 1207 DROP 7,10,13 10920000 R:E 00000 1208 USING SA,14 10930000 R:F 00000 1209 USING PCB,15 10940000 1 Sample Operating System Version 2.00 Page 33 Active Usings: PROGRAM,R0 PROGRAM+X'A0A',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1211 *********************************************************************** 10960000 1212 * * 10970000 1213 * XZ ROUTINE * 10980000 1214 * * 10990000 1215 * FUNCTION: TO STOP A PROCESS * 11000000 1216 * DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XZX * 11010000 1217 * XZX DS 0D * 11020000 1218 * XZXNAME DS CL8 NAME OF PROCESS TO BE STOPPED * 11030000 1219 * ROUTINES USED: XN, XEXC, XCOM, XQUE, XP * 11040000 1220 * PROCEDURE: CHECK THAT USER PROCESS CAN'T STOP SYSTEM * 11050000 1221 * PROCESS; USE XN TO GET PCB POINTER; IF IN SMC, SET * 11060000 1222 * STOP WAITING BIT AND BLOCK SELF UNTIL STOP * 11070000 1223 * PERFORMED; ELSE SET STOPPED BIT, AND RETURN. * 11080000 1224 * ERROR CHECKS: IF NO PROCESS BY GIVEN NAME OR USER TRIES TO * 11090000 1225 * STOP A SYSTEM PROCESS, XQUE ENTERED. * 11100000 1226 * INTERRUPTS: ON * 11110000 1227 * USER ACCESS: YES * 11120000 1228 * * 11130000 1229 *********************************************************************** 11140000 0 00A42 1231 XZ EQU * . THE XZ ROUTINE: STOP A PROCESS 11160000 R:1 00A42 1232 USING *,1 11170000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1232 in /mbhfs/sos4k.asm on volume: 000A42 1872 1233 LR 7,2 11180000 R:7 00000 1234 USING XZX,7 . ARG LIST 11190000 000A44 955C F000 00000 1235 CLI PCBNAME,C'*' . IS STOPPER A * PROCESS 11200000 000A48 4780 1012 00A54 1236 BE XZFINE . THAT'S OK 11210000 000A4C 955C 7000 00000 1237 CLI XZXNAME,C'*' . IF NOT, IS STOPPEE A * ? 11220000 000A50 4780 104A 00A8C 1238 BE XZERR . CAN'T DO THAT 11230000 000A54 4120 E048 00048 1239 XZFINE LA 2,SATEMP . READY TO CALL OUT 11240000 R:2 00000 1240 USING XNX,2 . WILL CALL XN 11250000 000A58 D207 2000 7000 00000 00000 1241 MVC XNXNAME,XZXNAME . GIVE IT THE NAME 11260000 000A5E 0AD5 1242 SVC C'N' . AND DO THE CALL 11270000 000A60 58A0 2008 00008 1243 L 10,XNXADDR . GET THE PCB'S ADDRESS 11280000 000A64 12AA 1244 LTR 10,10 . SEE IF NULL 11290000 000A66 4780 104A 00A8C 1245 BZ XZERR . IF SO, ERROR 11300000 000A6A 0A5A 1246 SVC C'!' . ENTER SMC 11310000 1247 DROP 2,15 11320000 R:A 00000 1248 USING PCB,10 11330000 000A6C 9500 A01A 0001A 1249 XZSTOP CLI PCBINSMC,X'00' . SEE IF IN SMC 11340000 000A70 4770 103C 00A7E 1250 BNE XZINSMC . IF SO, BAD 11350000 000A74 92FF A018 00018 1251 MVI PCBSTOPT,X'FF' . ELSE JUST STOP IT 11360000 000A78 0A6B 1252 SVC C',' . LEAVE SMC 11370000 000A7A 8200 04D8 004D8 1253 LPSW RETURN . AND RETURN 11380000 000A7E 92FF A01B 0001B 1254 XZINSMC MVI PCBSW,X'FF' . IF IN SMC, SAY STOP WAITING 11390000 000A82 4120 A034 00034 1255 LA 2,PCBSRS . AND STOP OURSELVES AGAINST 11400000 000A86 0AD7 1256 SVC C'P' . A SEMAPHORE 11410000 000A88 47F0 102A 00A6C 1257 B XZSTOP . THEN WE CAN REALLY STOP IT 11420000 000A8C 0A6F 1258 XZERR SVC C'?' . AN ERROR 11430000 1259 DROP 10,7 11440000 R:F 00000 1260 USING PCB,15 11450000 1 Sample Operating System Version 2.00 Page 34 Active Usings: PROGRAM,R0 PROGRAM+X'A42',R1 SA,R14 PCB,R15 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1262 *********************************************************************** 11470000 1263 * * 11480000 1264 * XQUE ROUTINE * 11490000 1265 * * 11500000 1266 * FUNCTION: TO SIGNAL ERROR CONDITION * 11510000 1267 * DATABASES: NONE * 11520000 1268 * ROUTINES USED: XR, XS * 11530000 1269 * PROCEDURE: SEND MESSAGE TO SUPERVISOR PROCESS FOR THIS JOB * 11540000 1270 * INDICATING ABNORMAL TERMINATION; TRY TO READ * 11550000 1271 * MESSAGES, FOREVER LOOPING; BLOCK ITSELF, THEREBY * 11560000 1272 * NEVER RETURNING. * 11570000 1273 * ERROR CHECKS: NONE * 11580000 1274 * INTERRUPTS: OFF * 11590000 1275 * USER ACCESS: YES * 11600000 1276 * * 11610000 1277 *********************************************************************** 11620000 0 00A8E 1279 XQUE EQU * . THE XQUE ROUTINE: ERROR! 11640000 R:1 00A8E 1280 USING *,1 11650000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1280 in /mbhfs/sos4k.asm on volume: 000A8E 4120 1012 00AA0 1281 LA 2,XQUEM1 . SEND AN ERROR MESSAGE TO *IBSUP 11660000 000A92 0AE2 1282 SVC C'S' 11670000 000A94 4120 102A 00AB8 1283 XQUELOOP LA 2,XQUEM2 . WAIT FOR REPLY 11680000 000A98 0AD9 1284 SVC C'R' 11690000 000A9A 47F0 1006 00A94 1285 B XQUELOOP . BUT IGNORE IT 11700000 000AA0 1286 DS 0F 11710000 000AA0 5CC9C2E2E4D74040 1287 XQUEM1 DC CL8'*IBSUP' 11720000 000AA8 0000000C 1288 DC F'12' 11730000 000AAC D7D9D6C7D9C1D440 1289 DC CL12'PROGRAM FLOP' 11740000 000AB8 1290 XQUEM2 DS CL8 11750000 000AC0 00000001 1291 DC F'1' 11760000 000AC4 1292 DS CL1,0H 11770000 1293 DROP 14,15 11780000 1 Sample Operating System Version 2.00 Page 35 Active Usings: PROGRAM,R0 PROGRAM+X'A8E',R1 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1295 *********************************************************************** 11800000 1296 * * 11810000 1297 * INPUT/OUTPUT ROUTINES * 11820000 1298 * * 11830000 1299 *********************************************************************** 11840000 0 1301 *********************************************************************** 11860000 1302 * * 11870000 1303 * SYSTEM SUPPLIED DEVICE HANDLER FOR READERS * 11880000 1304 * * 11890000 1305 *********************************************************************** 11900000 0 00AC6 1307 RDRHANDL EQU * . THE READER HANDLER 11920000 R:3 00000 1308 USING UCB,3 . STARTED WITH REG3 -> UCB 11930000 000AC6 0510 1309 BALR 1,0 11940000 R:1 00AC8 1310 USING *,1 . ESTABLISH ADDRESSING 11950000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1310 in /mbhfs/sos4k.asm on volume: 000AC8 4120 1160 00C28 1311 LA 2,RDRHSEM . LOCK OURSELVES UNTIL WE SET UP 11960000 000ACC 0AD7 1312 SVC C'P' . AN AUTOMATIC STORAGE AREA 11970000 000ACE 4120 1174 00C3C 1313 LA 2,RDRHAAS . READY TO ALLOCATE 11980000 R:2 00000 1314 USING XAX,2 11990000 000AD2 0AC5 1315 SVC C'E' . ALLOCATE 12000000 000AD4 58C0 2004 00004 1316 L 12,XAXADDR . GET A PTR 12010000 1317 DROP 2 12020000 000AD8 4120 1160 00C28 1318 LA 2,RDRHSEM . AND UNBLOCK OURSELVES 12030000 000ADC 0AE5 1319 SVC C'V' 12040000 000ADE 8840 0010 00010 1320 SRL 4,16 . SHIFT KEY 12050000 000AE2 1BAA 1321 SR 10,10 . CLEAR REG 10 12060000 R:C 00000 1322 USING RDRHAS,12 . AUTOMATIC AREA 12070000 000AE4 9200 C07A 0007A 1323 MVI JOBBIT,X'00' . INITIALIZE 12080000 000AE8 4160 C000 00000 1324 LA 6,RDRHCCB . GET PTR TO CCB 12090000 000AEC 4120 C008 00008 1325 RDRHLOOP LA 2,RDRHMSG . TRY TO READ A MESSAGE 12100000 R:2 00000 1326 USING XRX,2 12110000 000AF0 D203 2008 13A0 00008 00E68 1327 MVC XRXSIZE,=F'8' . WE CAN TAKE 8 CHARS 12120000 000AF6 0AD9 1328 SVC C'R' . READ IT 12130000 000AF8 D503 13AC 200C 00E74 0000C 1329 CLC =C'READ',XRXTEXT . IF FIRST WORD IS READ, OK 12140000 000AFE 4770 1024 00AEC 1330 BNE RDRHLOOP . ELSE IGNORE 12150000 000B02 5850 2010 00010 1331 L 5,XRXTEXT+4 . GET 2ND WORD OF TEXT 12160000 1332 DROP 2 12170000 000B06 4120 3004 00004 1333 LA 2,UCBUS . LOCK THE UCB AND IT'S UNIT 12180000 000B0A 0AD7 1334 SVC C'P' 12190000 000B0C 4120 C008 00008 1335 LA 2,RDRHMSG . RESET ADDRESSING POINTER 12200000 R:2 00000 1336 USING XRX,2 12210000 000B10 95FF C07A 0007A 1337 CLI JOBBIT,X'FF' . HAVE WE JUST READ $JOB CARD? 12220000 000B14 4770 1066 00B2E 1338 BNE RDRHMORE . IF NO, GO CHECK PROTECTION, ELSE 12230000 000B18 955C 2000 00000 1339 CLI XRXNAME,C'*' . IS JSP CALLING US? 12240000 000B1C 4770 10F8 00BC0 1340 BNE RDRHNO . IF NOT, TELL HIM NO. 12250000 000B20 D24F 5000 C01C 00000 0001C 1341 MVC 0(80,5),RDRHTEMP . IF IT IS, GIVE JSP THE $JOB CARD 12260000 000B26 9200 C07A 0007A 1342 MVI JOBBIT,X'00' . SAY WE DON'T HAVE $JOB WAITING 12270000 000B2A 47F0 1114 00BDC 1343 B RDRHSOK . AND SEND MESSAGE BACK 12280000 1344 DROP 2 12290000 000B2E 955C C008 00008 1345 RDRHMORE CLI RDRHMSG,C'*' . IS SYSTEM CALLING? 12300000 000B32 4780 1098 00B60 1346 BE RDRHPOK . THEN PROTECTION OK, ELSE 12310000 000B36 18B5 1347 LR 11,5 . GET ADDRESS THAT'S TO HOLD CARD, 12320000 1 Sample Operating System Version 2.00 Page 36 Active Usings: PROGRAM,R0 PROGRAM+X'AC8',R1 UCB,R3 RDRHAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000B38 54B0 116C 00C34 1348 N 11,PROTCON1 . get the page boundary 12330002 1349 * ISKE 10,11 . find storage key 12334002 000B3C B22900AB 1350 DC X'B22900AB' Assembler (XF) doesn't support ISKE 12338002 000B40 54A0 1170 00C38 1351 N 10,PROTCON2 . ignore low order bits 12342002 000B44 19A4 1352 CR 10,4 . DOES IT MATCH OURS? 12350000 000B46 4770 10F8 00BC0 1353 BNE RDRHNO . IF NOT, TELL HIM NO 12360000 000B4A 41B5 004F 0004F 1354 LA 11,79(5) . CHECK LAST BYTE ADDR OF CARD 12370000 000B4E 54B0 116C 00C34 1355 N 11,PROTCON1 . get the page boundary 12380002 1356 * ISKE 10,11 . find storage key 12384002 000B52 B22900AB 1357 DC X'B22900AB' Assembler (XF) doesn't support ISKE 12388002 000B56 54A0 1170 00C38 1358 N 10,PROTCON2 . ignore low order bits 12392002 000B5A 19A4 1359 CR 10,4 . DOES IT MATCH OURS? 12400000 000B5C 4770 10F8 00BC0 1360 BNE RDRHNO . IF NOT, TELL HIM NO 12410000 000B60 5450 1168 00C30 1361 RDRHPOK N 5,CCBCON1 . MAKE ADDRESS INTO 12420000 000B64 5050 C000 00000 1362 ST 5,RDRHCCB . A CCW (OR CCB) 12430000 000B68 9602 C000 00000 1363 OI RDRHCCB,X'02' 12440000 000B6C D203 C004 13B0 00004 00E78 1364 MVC RDRHCCB+4,=F'80' . WE'LL READ EIGHTY CHARACTERS 12450000 000B72 D203 3014 1398 00014 00E60 1365 MVC UCBCSW(4),=A(0) . CLEAR THE LAST CSW THERE 12460000 000B78 D203 3018 1398 00018 00E60 1366 MVC UCBCSW+4(4),=A(0) 12470000 000B7E 4120 0194 00194 1367 LA 2,CAWSEM . LOCK THE CAW 12480000 000B82 0AD7 1368 SVC C'P' 12490000 000B84 5060 0048 00048 1369 ST 6,CAW . THAT'S THE CAW 12500000 000B88 5870 3000 00000 1370 L 7,UCBADDR . GET THE UNIT ADDRESS 12510000 000B8C 9C00 7000 00000 1371 SIO 0(7) . START THE I/O 12520000 000B90 4770 1154 00C1C 1372 BNZ RDSTATUS . BRANCH IF SIO UNSUCCESSFUL 12530000 000B94 0AE5 1373 SVC C'V' . THEN UNLOCK THE CAW 12540000 000B96 4120 300C 0000C 1374 RDRHWAIT LA 2,UCBWS . NOW WAIT FOR AN INTERRUPT 12550000 000B9A 0AD7 1375 SVC C'P' 12560000 000B9C 9185 3018 00018 1376 TM UCBCSW+4,X'85' . CHECK THE STATUS 12570003 000BA0 4780 10CE 00B96 1377 BZ RDRHWAIT . IF NOT FINISHED, WAIT 12580000 000BA4 9101 3018 00018 1378 TM UCBCSW+4,X'01' . CHECK FOR EXCEPTION 12590000 000BA8 4710 10F0 00BB8 1379 BO RDRHEXC . if yes, ignore this interrupt 12600003 000BAC 9180 3018 00018 1380 TM UCBCSW+4,X'80' . if no, check for attention 12602003 000BB0 4710 1098 00B60 1381 BO RDRHPOK . if yes, try to restart the I/O 12604003 000BB4 47F0 1102 00BCA 1382 B RDRHOK . else, all is groovy 12606003 000BB8 94FE 3018 00018 1383 RDRHEXC NI UCBCSW+4,X'FE' . clear exception .. 12608003 000BBC 47F0 10CE 00B96 1384 B RDRHWAIT . .. and continue waiting 12610003 000BC0 D201 C078 13CC 00078 00E94 1385 RDRHNO MVC RDRHM+12(2),=C'NO' . message back is no 12612003 000BC6 47F0 111A 00BE2 1386 B RDRHSEND . GET READY TO SEND 12620000 000BCA 955C C008 00008 1387 RDRHOK CLI RDRHMSG,C'*' . IS THE SYSTEM CALLING? 12630000 000BCE 4780 1114 00BDC 1388 BE RDRHSOK . THAT'S FINE. OTHERWISE, 12640000 000BD2 D504 13D0 5000 00E98 00000 1389 CLC =C'$JOB,',0(5) . WAS IT A $JOB CARD? 12650000 000BD8 4780 1136 00BFE 1390 BE ENDADATA . OOPS! WE HIT END OF DATA STREAM 12660000 000BDC D201 C078 13CE 00078 00E96 1391 RDRHSOK MVC RDRHM+12(2),=C'OK' .GROOVINESS MESSAGE 12670000 000BE2 D203 C074 13A8 00074 00E70 1392 RDRHSEND MVC RDRHM+8(4),=F'2' . SAY THERE ARE 2 CHARACTERS 12680000 000BE8 D207 C06C C008 0006C 00008 1393 MVC RDRHM+0(8),RDRHMSG+0 . SEND BACK TO SAME GUY 12690000 000BEE 4120 3004 00004 1394 LA 2,UCBUS . NOW UNLOCK UCB AND UNIT 12700000 000BF2 0AE5 1395 SVC C'V' 12710000 000BF4 4120 C06C 0006C 1396 LA 2,RDRHM . SET UP MESSAGE 12720000 000BF8 0AE2 1397 SVC C'S' . AND SEND IT 12730000 000BFA 47F0 1024 00AEC 1398 B RDRHLOOP 12740000 000BFE D201 C078 13CC 00078 00E94 1399 ENDADATA MVC RDRHM+12(2),=C'NO' . TELL USER NO MORE CARDS 12750000 000C04 D24F C01C 5000 0001C 00000 1400 MVC RDRHTEMP(80),0(5) . SAVE THE $JOB CARD 12760000 000C0A 9240 5000 00000 1401 MVI 0(5),C' ' . BLANK OUT THE USER'S COPY 12770000 000C0E D24E 5001 5000 00001 00000 1402 MVC 1(79,5),0(5) 12780000 1 Sample Operating System Version 2.00 Page 37 Active Usings: PROGRAM,R0 PROGRAM+X'AC8',R1 UCB,R3 RDRHAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000C14 92FF C07A 0007A 1403 MVI JOBBIT,X'FF' . INDICATE WE HAVE A NEW $JOB CARD 12790000 000C18 47F0 111A 00BE2 1404 B RDRHSEND . AND SEND THE MESSAGE BACK 12800000 000C1C 0AE5 1405 RDSTATUS SVC C'V' . UNLOCK THE CAW 12810000 000C1E 4120 300C 0000C 1406 LA 2,UCBWS . AND WAIT FOR AN INTERRUPT 12820000 000C22 0AD7 1407 SVC C'P' 12830000 000C24 47F0 1098 00B60 1408 B RDRHPOK . AND TRY TO RESTART THE I/O 12840000 1409 DROP 3,12 12850000 0000C28 0000000100000000 1411 RDRHSEM DC F'1,0' 12870000 000C30 00FFFFFF 1412 CCBCON1 DC X'00FFFFFF' MASK 12880000 000C34 00FFF000 1413 PROTCON1 DC X'00FFF000' page alignment 12890002 000C38 FFFFFFF0 1414 PROTCON2 DC X'FFFFFFF0' ignore low order bits 12893002 000C3C 00000080 1415 RDRHAAS DC A(LENRDRHA) ALLOCATE ARGLIST FOR STORAGE 12900000 000C40 00000000 1416 DC F'0' 12910000 000C44 00000008 1417 DC F'8' 12920000 - 1419 *********************************************************************** 12940000 1420 * * 12950000 1421 * SYSTEM SUPPLIED DEVICE HANDLER FOR PRINTERS * 12960000 1422 * * 12970000 1423 *********************************************************************** 12980000 0 00C48 1425 PRTHANDL EQU * . THE PRINTER HANDLER 13000000 R:3 00000 1426 USING UCB,3 . ENTERED WITH REG3 -> THE UCB 13010000 000C48 0510 1427 BALR 1,0 13020000 R:1 00C4A 1428 USING *,1 . ESTABLISH ADDRESSING 13030000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1428 in /mbhfs/sos4k.asm on volume: 000C4A 4120 1116 00D60 1429 LA 2,PRTHSEM . LOCK UNTIL ALLOCATE STORAGE 13040000 000C4E 0AD7 1430 SVC C'P' . 13050000 000C50 4120 111E 00D68 1431 LA 2,PRTHAAS . READY TO ALLOCATE 13060000 R:2 00000 1432 USING XAX,2 13070000 000C54 0AC5 1433 SVC C'E' . ALLOCATE 13080000 000C56 58C0 2004 00004 1434 L 12,XAXADDR . GET THE ADDRESS 13090000 1435 DROP 2 13100000 000C5A 4120 1116 00D60 1436 LA 2,PRTHSEM . 13110000 000C5E 0AE5 1437 SVC C'V' UNLOCK TO ROUTINE 13120000 000C60 8840 0010 00010 1438 SRL 4,16 . SHIFT KEY 13130000 000C64 1BAA 1439 SR 10,10 . CLEAR REG 10 13140000 R:C 00000 1440 USING PRTHAS,12 . ADDRESSING IN THE AUTO AREA 13150000 000C66 4160 C000 00000 1441 LA 6,PRTHCCB . MAKE A CAW 13160000 000C6A 4120 C008 00008 1442 PRTHLOOP LA 2,PRTHMSG . READY TO READ A MESSAGE 13170000 R:2 00000 1443 USING XRX,2 13180000 000C6E D203 2008 121E 00008 00E68 1444 MVC XRXSIZE,=F'8' . WE CAN TAKE 8 CHARACTERS 13190000 000C74 0AD9 1445 SVC C'R' . READ IT 13200000 000C76 5850 2010 00010 1446 L 5,XRXTEXT+4 . LOAD THE ADDRESS 13210000 000C7A D503 1232 200C 00E7C 0000C 1447 CLC =C'PRIN',XRXTEXT . IS IT A PRIN REQUEST? 13220000 000C80 4780 1048 00C92 1448 BE PRTHPRIN 13230000 000C84 D503 1236 200C 00E80 0000C 1449 CLC =C'STC1',XRXTEXT . OR A SKIP REQUEST? 13240000 000C8A 4780 1096 00CE0 1450 BE PRTHSTC1 13250000 000C8E 47F0 1020 00C6A 1451 B PRTHLOOP . IF NEITHER, IGNORE 13260000 1452 DROP 2 13270000 000C92 4120 3004 00004 1453 PRTHPRIN LA 2,UCBUS 13280000 1 Sample Operating System Version 2.00 Page 38 Active Usings: PROGRAM,R0 PROGRAM+X'C4A',R1 UCB,R3 PRTHAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000C96 0AD7 1454 SVC C'P' . LOCK THE UCB AND UNIT 13290000 000C98 955C C008 00008 1455 CLI PRTHMSG,C'*' . IS SYSTEM CALLING? 13300000 000C9C 4780 1080 00CCA 1456 BE PRTHPOK . THEN PROTECTION OK. ELSE 13310000 000CA0 18B5 1457 LR 11,5 . GET ADDRESS THAT'S TO HOLD MSG, 13320000 000CA2 54B0 0C34 00C34 1458 N 11,PROTCON1 . get the page boundary 13330002 1459 * ISKE 10,11 . find storage key 13334002 000CA6 B22900AB 1460 DC X'B22900AB' Assembler (XF) doesn't support ISKE 13338002 000CAA 54A0 0C38 00C38 1461 N 10,PROTCON2 . ignore low order bits 13342002 000CAE 19A4 1462 CR 10,4 . DOES IT MATCH OURS? 13350000 000CB0 4770 10DC 00D26 1463 BNE PRTHNO . IF NOT, TELL HIM NO 13360000 000CB4 41B5 0083 00083 1464 LA 11,131(5) . CHECK LAST BYTE ADDRESS OF LINE 13370000 000CB8 54B0 0C34 00C34 1465 N 11,PROTCON1 . get the page boundary 13380002 1466 * ISKE 10,11 . find storage key 13384002 000CBC B22900AB 1467 DC X'B22900AB' Assembler (XF) doesn't support ISKE 13388002 000CC0 54A0 0C38 00C38 1468 N 10,PROTCON2 . ignore low order bits 13392002 000CC4 19A4 1469 CR 10,4 . DOES IT MATCH OURS? 13400000 000CC6 4770 10DC 00D26 1470 BNE PRTHNO . IF NOT, TELL HIM NO 13410000 000CCA 5450 0C30 00C30 1471 PRTHPOK N 5,CCBCON1 . MAKE A WRITE REQUEST 13420000 000CCE 5050 C000 00000 1472 ST 5,PRTHCCB . FOR THE CCB 13430000 000CD2 9609 C000 00000 1473 OI PRTHCCB,X'09' . PRINT COMMAND CODE 13440000 000CD6 D203 C004 123A 00004 00E84 1474 MVC PRTHCCB+4,=F'132' . WE'LL PRINT 132 CHARACTERS 13450000 000CDC 47F0 10A2 00CEC 1475 B PRTHCOMM . BRANCH TO COMMON SECTION 13460000 000CE0 D207 C000 1206 00000 00E50 1476 PRTHSTC1 MVC PRTHCCB(8),=X'8900000020000001' SKIP TO TOP OF PAGE 13470000 000CE6 4120 3004 00004 1477 LA 2,UCBUS 13480000 000CEA 0AD7 1478 SVC C'P' . LOCK THE UCB AND UNIT 13490000 000CEC 4120 0194 00194 1479 PRTHCOMM LA 2,CAWSEM . LOCK THE CAW 13500000 000CF0 0AD7 1480 SVC C'P' 13510000 000CF2 5060 0048 00048 1481 ST 6,CAW . STORE OUR CAW 13520000 000CF6 D203 3014 1216 00014 00E60 1482 MVC UCBCSW(4),=A(0) . CLEAR THE LAST CSW THERE 13530000 000CFC D203 3018 1216 00018 00E60 1483 MVC UCBCSW+4(4),=A(0) 13540000 000D02 5870 3000 00000 1484 L 7,UCBADDR . GET THE ADDRESS 13550000 000D06 9C00 7000 00000 1485 SIO 0(7) . START THE I/O 13560000 000D0A 4770 1108 00D52 1486 BNZ PTSTATUS . BRANCH IF SIO UNSUCCESSFUL 13570000 000D0E 0AE5 1487 SVC C'V' . AND UNLOCK THE CAW 13580000 000D10 4120 300C 0000C 1488 PRTHWAIT LA 2,UCBWS . START TO WAIT 13590000 000D14 0AD7 1489 SVC C'P' 13600000 000D16 9105 3018 00018 1490 TM UCBCSW+4,X'05' . IS THE UNIT READY? 13610000 000D1A 4780 10C6 00D10 1491 BZ PRTHWAIT . IF NOT, ITS STILL ON. WAIT 13620000 000D1E 9101 3018 00018 1492 TM UCBCSW+4,X'01' . WAS THERE AN EXCEPTION? 13630000 000D22 4780 10E6 00D30 1493 BZ PRTHOK . IF NOT, GOOD 13640000 000D26 D201 C028 124A 00028 00E94 1494 PRTHNO MVC PRTHM+12(2),=C'NO' .THERE WAS, SO SAY SO 13650000 000D2C 47F0 10EC 00D36 1495 B PRTHSEND 13660000 000D30 D201 C028 124C 00028 00E96 1496 PRTHOK MVC PRTHM+12(2),=C'OK' .NO ERRORS 13670000 000D36 D203 C024 1226 00024 00E70 1497 PRTHSEND MVC PRTHM+8(4),=F'2' . SENDING 2 CHARACTERS 13680000 000D3C D207 C01C C008 0001C 00008 1498 MVC PRTHM+0(8),PRTHMSG+0 . SEND TO OUR SENDER 13690000 000D42 4120 3004 00004 1499 LA 2,UCBUS 13700000 000D46 0AE5 1500 SVC C'V' . UNLOCK THE UCB 13710000 000D48 4120 C01C 0001C 1501 LA 2,PRTHM 13720000 000D4C 0AE2 1502 SVC C'S' . SEND IT 13730000 000D4E 47F0 1020 00C6A 1503 B PRTHLOOP . AND READ ANOTHER MESSAGE 13740000 000D52 0AE5 1504 PTSTATUS SVC C'V' . UNLOCK THE CAW 13750000 000D54 4120 300C 0000C 1505 LA 2,UCBWS . AND WAIT FOR THE INTERRUPT 13760000 000D58 0AD7 1506 SVC C'P' 13770000 000D5A 47F0 10A2 00CEC 1507 B PRTHCOMM . AND TRY TO RESTART THE I/O 13780000 1508 DROP 3,12 13790000 1 Sample Operating System Version 2.00 Page 39 Active Usings: PROGRAM,R0 PROGRAM+X'C4A',R1 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000D5E 0000 000D60 0000000100000000 1510 PRTHSEM DC F'1,0' LOCK 13810000 000D68 00000030 1511 PRTHAAS DC A(LENPRTHA) XA ARG LIST FOR AUTO STORAGE 13820000 000D6C 00000000 1512 DC F'0' 13830000 000D70 00000008 1513 DC F'8' 13840000 1 Sample Operating System Version 2.00 Page 40 Active Usings: PROGRAM,R0 PROGRAM+X'C4A',R1 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1515 *********************************************************************** 13860000 1516 * * 13870000 1517 * SYSTEM ROUTINE FOR USER SUPPLIED DEVICE HANDLER * 13880000 1518 * * 13890000 1519 *********************************************************************** 13900000 0 00D74 1521 EXCPHNDL EQU * . EXCP DEVICE HANDLER 13920000 R:3 00000 1522 USING UCB,3 . WILL HAVE REG3 -> UCB 13930000 000D74 0510 1523 BALR 1,0 13940000 R:1 00D76 1524 USING *,1 . ESTABLISH ADDRESSING 13950000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1524 in /mbhfs/sos4k.asm on volume: 000D76 4120 10C6 00E3C 1525 LA 2,EXCPHSEM . LOCK OURSELVES UNTIL WE HAVE 13960000 000D7A 0AD7 1526 SVC C'P' . SET UP AUTOMATIC STORAGE 13970000 000D7C 4120 10CE 00E44 1527 LA 2,EXCPHAAS . READY TO ALLOCATE 13980000 R:2 00000 1528 USING XAX,2 13990000 000D80 0AC5 1529 SVC C'E' . ALLOCATE 14000000 000D82 58C0 2004 00004 1530 L 12,XAXADDR . GET POINTER TO AUTO STORAGE 14010000 1531 DROP 2 14020000 000D86 4120 10C6 00E3C 1532 LA 2,EXCPHSEM . AND UNLOCK OURSELVES 14030000 000D8A 0AE5 1533 SVC C'V' UNLOCK TO ROUTINE 14040000 000D8C 184B 1534 LR 4,11 14050000 000D8E 8940 0008 00008 1535 SLL 4,8 . SHIFT KEY FOR CAW 14060000 R:C 00000 1536 USING EXCPHAS,12 . FOR ADDRESSING AUTO AREA 14070000 000D92 4120 C000 00000 1537 EXCPLOOP LA 2,EXCPHMSG . TRY TO READ A MESSAGE 14080000 R:2 00000 1538 USING XRX,2 14090000 000D96 D203 2008 1112 00008 00E88 1539 MVC XRXSIZE,=F'12' . WE'LL TAKE 12 CHARACTERS 14100000 000D9C 0AD9 1540 SVC C'R' 14110000 000D9E D503 1116 200C 00E8C 0000C 1541 CLC =C'EXCP',XRXTEXT . IS IT AN EXCP MESSAGE? 14120000 000DA4 4770 101C 00D92 1542 BNE EXCPLOOP . IF NOT, IGNORE IT 14130000 000DA8 5850 2010 00010 1543 L 5,XRXTEXT+4 . REG 5 CONTAINS CHAN AND DEV 14140000 000DAC 5860 2014 00014 1544 L 6,XRXTEXT+8 . REG 6 CONTAINS ADDR OF CCWS 14150000 1545 DROP 2 14160000 000DB0 4170 112E 00EA4 1546 LA 7,UCBTABLE . GET PTR TO UCB TABLE 14170000 000DB4 5957 0000 00000 1547 EXCPCOMP C 5,0(7) . COMPARE UNIT ADDRESS 14180000 000DB8 4780 1054 00DCA 1548 BE EXCPFIND . THAT'S THE UCB WE WANT 14190000 000DBC 4177 0020 00020 1549 LA 7,UCBLENG(7) . GET PTR TO NEXT UCB 14200000 000DC0 5970 111A 00E90 1550 C 7,=A(UCBTBEND) . ARE WE THROUGH WITH TABLE? 14210000 000DC4 4770 103E 00DB4 1551 BNE EXCPCOMP . IF NOT, LOOK SOME MORE 14220000 000DC8 0A6F 1552 SVC C'?' . ELSE ERROR 14230000 000DCA 1837 1553 EXCPFIND LR 3,7 . SET REG 3 TO UCB PTR 14240000 000DCC 4120 3004 00004 1554 LA 2,UCBUS 14250000 000DD0 0AD7 1555 SVC C'P' . LOCK THE UCB 14260000 000DD2 1664 1556 OR 6,4 . OR IN THE USER'S KEY 14270000 000DD4 D203 3014 10EA 00014 00E60 1557 MVC UCBCSW(4),=A(0) . CLEAR THE LAST CSW THERE 14280000 000DDA D203 3018 10EA 00018 00E60 1558 MVC UCBCSW+4(4),=A(0) 14290000 000DE0 4120 0194 00194 1559 LA 2,CAWSEM 14300000 000DE4 0AD7 1560 SVC C'P' . LOCK CAW 14310000 000DE6 5060 0048 00048 1561 ST 6,CAW . STORE OUR CAW 14320000 000DEA 9C00 5000 00000 1562 SIO 0(5) . START THE I/O 14330000 000DEE 0AE5 1563 SVC C'V' . UNLOCK THE CAW 14340000 000DF0 4120 300C 0000C 1564 EXCPWAIT LA 2,UCBWS . NOW WAIT FOR AN INTERRUPT 14350000 000DF4 0AD7 1565 SVC C'P' 14360000 000DF6 D207 C024 3014 00024 00014 1566 MVC EXCPHM+12(8),UCBCSW . GIVE USER HIS CSW 14370000 000DFC D203 C020 1112 00020 00E88 1567 MVC EXCPHM+8(4),=F'12' 14380000 1 Sample Operating System Version 2.00 Page 41 Active Usings: PROGRAM,R0 PROGRAM+X'D76',R1 UCB,R3 EXCPHAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000E02 D207 C018 C000 00018 00000 1568 MVC EXCPHM(8),EXCPHMSG 14390000 000E08 4120 C018 00018 1569 LA 2,EXCPHM 14400000 000E0C 0AE2 1570 SVC C'S' . AND SENT THE MESSAGE 14410000 000E0E 4120 C000 00000 1571 LA 2,EXCPHMSG . AND WAIT FOR A REPLY 14420000 R:2 00000 1572 USING XRX,2 14430000 000E12 D203 2008 10F2 00008 00E68 1573 MVC XRXSIZE(4),=F'8' . FROM THE USER 14440000 000E18 0AD9 1574 SVC C'R' 14450000 000E1A D501 1120 200C 00E96 0000C 1575 CLC =C'OK',XRXTEXT . AM I DONE? 14460000 000E20 4780 10BA 00E30 1576 BE EXCPDONE 14470000 000E24 D504 1127 200C 00E9D 0000C 1577 CLC =C'AGAIN',XRXTEXT . DOES HE WANT ANOTHER CSW? 14480000 000E2A 4780 107A 00DF0 1578 BE EXCPWAIT 14490000 000E2E 0A6F 1579 SVC C'?' . WRONG MESSAGE 14500000 1580 DROP 2 14510000 000E30 4120 3004 00004 1581 EXCPDONE LA 2,UCBUS . UNLOCK UNIT 14520000 000E34 0AE5 1582 SVC C'V' 14530000 000E36 47F0 101C 00D92 1583 B EXCPLOOP . AND GET ANOTHER MESSAGE 14540000 1584 DROP 3,12 14550000 000E3A 0000 000E3C 0000000100000000 1585 EXCPHSEM DC F'1,0' 14560000 000E44 00000030 1586 EXCPHAAS DC A(LENEXCPA) . ALLOCATION OF AUTO STORAGE 14570000 000E48 00000000 1587 DC F'0' 14580000 000E4C 00000008 1588 DC F'8' 14590000 - 000E50 1590 LTORG 14610000 000E50 8900000020000001 1591 =X'8900000020000001' 000E58 00000001 1592 =F'1' 000E5C 00000600 1593 =A(XA) 000E60 00000000 1594 =A(0) 000E64 00000148 1595 =A(LENPCB) 000E68 00000008 1596 =F'8' 000E6C FFFFFFF8 1597 =F'-8' 000E70 00000002 1598 =F'2' 000E74 D9C5C1C4 1599 =C'READ' 000E78 00000050 1600 =F'80' 000E7C D7D9C9D5 1601 =C'PRIN' 000E80 E2E3C3F1 1602 =C'STC1' 000E84 00000084 1603 =F'132' 000E88 0000000C 1604 =F'12' 000E8C C5E7C3D7 1605 =C'EXCP' 000E90 00000FC4 1606 =A(UCBTBEND) 000E94 D5D6 1607 =C'NO' 000E96 D6D2 1608 =C'OK' 000E98 5BD1D6C26B 1609 =C'$JOB,' 000E9D C1C7C1C9D5 1610 =C'AGAIN' 1 Sample Operating System Version 2.00 Page 42 Active Usings: PROGRAM,R0 PROGRAM+X'D76',R1 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1612 *********************************************************************** 14630000 1613 * * 14640000 1614 * UNIT CONTROL BLOCKS * 14650000 1615 * * 14660000 1616 *********************************************************************** 14670000 0000EA4 1618 UCBTABLE DS 0F . TABLE OF UNIT CONTROL BLOCKS 14690000 1619 * UCB FOR READER 1 14700000 000EA4 00000012 1620 UCBRDR1 DC X'00000012' . DEVICE ADDRESS, 14710000 000EA8 0000000100000000 1621 DC F'1,0' . USER SEMAPHORE, 14720000 000EB0 0000000000000000 1622 DC F'0,0' . WAIT SEMAPHORE, 14730000 000EB8 0000000000000000 1623 DC F'0,0' . CHANNEL STATUS WORD 14740000 000EC0 00 1624 DC X'00' 14750000 000EC4 1625 DS 0F 14760000 1626 * UCB FOR PRINTER 1 14770000 000EC4 00000010 1627 UCBPRT1 DC X'00000010' . DEVICE ADDRESS, 14780000 000EC8 0000000100000000 1628 DC F'1,0' . USER SEMAPHORE, 14790000 000ED0 0000000000000000 1629 DC F'0,0' . WAIT SEMAPHORE, 14800000 000ED8 0000000000000000 1630 DC F'0,0' . CHANNEL STATUS WORD 14810000 000EE0 00 1631 DC X'00' 14820000 000EE4 1632 DS 0F 14830000 1633 * UCB FOR READER 2 14840000 000EE4 0000000C 1634 UCBRDR2 DC X'0000000C' . DEVICE ADDRESS, 14850000 000EE8 0000000100000000 1635 DC F'1,0' . USER SEMAPHORE, 14860000 000EF0 0000000000000000 1636 DC F'0,0' . WAIT SEMAPHORE, 14870000 000EF8 0000000000000000 1637 DC F'0,0' . CHANNEL STATUS WORD 14880000 000F00 00 1638 DC X'00' 14890000 000F04 1639 DS 0F 14900000 1640 * UCB FOR PRINTER 2 14910000 000F04 0000000E 1641 UCBPRT2 DC X'0000000E' . DEVICE ADDRESS, 14920000 000F08 0000000100000000 1642 DC F'1,0' . USER SEMAPHORE, 14930000 000F10 0000000000000000 1643 DC F'0,0' . WAIT SEMAPHORE, 14940000 000F18 0000000000000000 1644 DC F'0,0' . CHANNEL STATUS WORD 14950000 000F20 00 1645 DC X'00' 14960000 000F24 1646 DS 0F 14970000 1647 * UCB for READER 3 14970302 000F24 00000112 1648 UCBRDR3 DC X'00000112' . device address, 14970602 000F28 0000000100000000 1649 DC F'1,0' . user semaphore, 14970902 000F30 0000000000000000 1650 DC F'0,0' . wait semaphore, 14971202 000F38 0000000000000000 1651 DC F'0,0' . channel status word 14971502 000F40 00 1652 DC X'00' 14971802 000F44 1653 DS 0F 14972102 1654 * UCB for PRINTER 3 14972402 000F44 00000110 1655 UCBPRT3 DC X'00000110' . device address, 14972702 000F48 0000000100000000 1656 DC F'1,0' . user semaphore, 14973002 000F50 0000000000000000 1657 DC F'0,0' . wait semaphore, 14973302 000F58 0000000000000000 1658 DC F'0,0' . channel status word 14973602 000F60 00 1659 DC X'00' 14973902 000F64 1660 DS 0F 14974202 1661 * UCB for READER 4 14974502 000F64 0000010C 1662 UCBRDR4 DC X'0000010C' . device address, 14974802 000F68 0000000100000000 1663 DC F'1,0' . user semaphore, 14975102 000F70 0000000000000000 1664 DC F'0,0' . wait semaphore, 14975402 000F78 0000000000000000 1665 DC F'0,0' . channel status word 14975702 000F80 00 1666 DC X'00' 14976002 1 Sample Operating System Version 2.00 Page 43 Active Usings: PROGRAM,R0 PROGRAM+X'D76',R1 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0000F84 1667 DS 0F 14976302 1668 * UCB for PRINTER 4 14976602 000F84 0000010E 1669 UCBPRT4 DC X'0000010E' . device address, 14976902 000F88 0000000100000000 1670 DC F'1,0' . user semaphore, 14977202 000F90 0000000000000000 1671 DC F'0,0' . wait semaphore, 14977502 000F98 0000000000000000 1672 DC F'0,0' . channel status word 14977802 000FA0 00 1673 DC X'00' 14978102 000FA4 1674 DS 0F 14978402 1675 * UCB for CONSOLE 1 14978504 000FA4 00000009 1676 UCBCONS1 DC X'00000009' . device address, 14978604 000FA8 0000000100000000 1677 DC F'1,0' . user semaphore, 14978704 000FB0 0000000000000000 1678 DC F'0,0' . wait semaphore, 14978804 000FB8 0000000000000000 1679 DC F'0,0' . channel status word 14978904 000FC0 00 1680 DC X'00' 14979004 000FC4 1681 DS 0F 14979104 00FC4 1682 UCBTBEND EQU * 14980000 1 Sample Operating System Version 2.00 Page 44 Active Usings: PROGRAM,R0 PROGRAM+X'D76',R1 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1684 *********************************************************************** 15000000 1685 * * 15010000 1686 * I/O INTERRUPT HANDLER * 15020000 1687 * * 15030000 1688 *********************************************************************** 15040000 0 00FC4 1690 IOHANDL EQU * . THE I/O INTERRUPT HANDLER 15060000 000FC4 900F 01DC 001DC 1691 STM 0,15,IOHSAVE . SAVE REGISTERS 15070000 000FC8 0510 1692 BALR 1,0 15080000 R:1 00FCA 1693 USING *,1 . ESTABLISH ADRESSING 15090000 ** ASMA303W Multiple address resolutions may result from this USING and the USING on statement number 131 ** ASMA435I Record 1673 in /mbhfs/sos4k.asm on volume: 000FCA 94FD 0039 00039 1694 NI IOOLD+1,X'FD' . TURN OFF WAIT BIT 15100000 000FCE 5860 172E 016F8 1695 L 6,=A(UCBTABLE) . GET POINTER TO UCB TABLE 15110000 000FD2 D501 6002 003A 00002 0003A 1696 IOCOMP CLC 2(2,6),IOOLD+2 . COMPARE DEVICE AND CHANNEL 15120000 000FD8 4780 1022 00FEC 1697 BE IODEVFND . IF EQUAL, REG 6 INDICATES PTR 15130000 000FDC 4166 0020 00020 1698 LA 6,UCBLENG(6) . INCREMENT TO NEXT ENTRY 15140000 000FE0 5960 1732 016FC 1699 C 6,=A(UCBTBEND) . ARE WE AT END OF TABLE? 15150000 000FE4 4770 1008 00FD2 1700 BNE IOCOMP . IF NOT DONE, TRY NEXT UCB 15160000 000FE8 47F0 106C 01036 1701 B IOBACK . ELSE, IGNORE IT 15170000 R:6 00000 1702 USING UCB,6 . IT'S A UCB PTR 15180000 000FEC D203 6014 0040 00014 00040 1703 IODEVFND MVC UCBCSW(4),CSW . MOVE IN THE NEW CSW 15190000 000FF2 5870 0044 00044 1704 L 7,CSW+4 . GET STATUS BYTE 15200000 000FF6 5670 6018 00018 1705 O 7,UCBCSW+4 . OR IN NEW STATUS INFORMATION 15210000 000FFA 5070 6018 00018 1706 ST 7,UCBCSW+4 . AND STORE IT BACK 15220000 000FFE D201 601A 0046 0001A 00046 1707 MVC UCBCSW+6(2),CSW+6 . MOVE IN BYTE COUNT 15230000 001004 4120 600C 0000C 1708 LA 2,UCBWS 15240000 001008 9500 601C 0001C 1709 CLI UCBFPR,X'00' . IS FAST PROCESSING 15250000 00100C 4780 106A 01034 1710 BE IONOFPR . REQUIRED? IF NOT, RETURN 15260000 001010 58F0 0270 00270 1711 L 15,RUNNING . IF SO, STOP GUY NOW RUNNING 15270000 R:F 00000 1712 USING PCB,15 15280000 001014 95FF F019 00019 1713 CLI PCBBLOKT,X'FF' . IS ANYONE REALLY RUNNING? 15290000 001018 4780 1062 0102C 1714 BE IOWAIT . IF NOT, START UP SLEEPER 15300000 00101C 41D0 F04C 0004C 1715 LA 13,PCBISA . IF SO, STOP RUNNING PROCESS 15310000 R:D 00000 1716 USING SA,13 15320000 001020 D207 D000 0038 00000 00038 1717 MVC SAPSW,IOOLD . SAVE PROCESS WHICH WAS 15330000 001026 D23F D008 01DC 00008 001DC 1718 MVC SAREGS,IOHSAVE . INTERRUPTED 15340000 1719 DROP 13,15 15350000 00102C 9200 0278 00278 1720 IOWAIT MVI NEXTTRYM,X'00' . MAKE NEXTTRY NOT MODIFIED 15360000 001030 0AE5 1721 SVC C'V' . SO CAN FAST PROCESS SLEEPER 15370000 001032 0A4B 1722 SVC C'.' . GO PROCESS IT RIGHT AWAY 15380000 001034 0AE5 1723 IONOFPR SVC C'V' . AND WAKE UP THE SLEEPER 15390000 001036 980F 01DC 001DC 1724 IOBACK LM 0,15,IOHSAVE . RELOAD OUR REGISTERS 15400000 00103A 8200 0038 00038 1725 LPSW IOOLD . AND STEALTHILY RETURN 15410000 1726 DROP 1,6 15420000 1 Sample Operating System Version 2.00 Page 45 Active Usings: PROGRAM,R0 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1728 *********************************************************************** 15440000 1729 * * 15450000 1730 * IPL ENTERED ROUTINE * 15460000 1731 * * 15470000 1732 * FUNCTION: TO INITIALIZE SYSTEM PARAMETERS, SET STORAGE KEYS, * 15480000 1733 * AND CREATE MULTIPLE JOB STREAMS. * 15490000 1734 * * 15500000 1735 *********************************************************************** 15510000 0 0103E 1737 IPLRTN EQU * . THE IPL-ENTERED ROUTINE 15530000 00103E 0510 1738 BALR 1,0 15540000 R:1 01040 1739 USING *,1 . ESTABLISH ADDRESSING 15550000 001040 D202 007D 1281 0007D 012C1 1740 MVC IONEW+5(3),SOSIONEW activate IO handler 15553002 001046 D202 005D 1289 0005D 012C9 1741 MVC EXTNEW+5(3),IPLEXNEW ignore external interrupts for now 15556002 00104C 41F0 10D0 01110 1742 LA 15,IPLPCB . I'M RUNNING 15560000 001050 50F0 0270 00270 1743 ST 15,RUNNING . INITIALIZE 'RUNNING' 15570000 001054 50F0 0274 00274 1744 ST 15,NEXTTRY . INITIALIZE 'NEXTTRY' 15580000 001058 D207 1700 1690 01740 016D0 1745 MVC VERYEND,=A(0,CORESIZE-(VERYEND-PROGRAM)) FREE CORE 15590000 00105E 4130 0008 00008 1746 LA 3,8 . SET ZERO KEY AND FETCH PROTECT 15600000 001062 5820 1224 01264 1747 L 2,CORESIZ . START PAST THE LAST BLOCK 15610000 001066 5B20 161C 0165C 1748 IPLCL S 2,PAGESIZE . get the previous block, page aligned 15620002 00106A 4740 1036 01076 1749 BM IPLTH . IF NEGATIVE, WE'RE THROUGH HERE 15630000 1750 * SSKE 3,2 . else set the storage key to 15640002 00106E B22B0032 1751 DC X'B22B0032' Assembler (XF) doesn't support SSKE 15643002 001072 47F0 1026 01066 1752 B IPLCL . ZERO, AND WORK BACKWARDS 15650000 001076 1B44 1753 IPLTH SR 4,4 . INDEX IN TABLES FOR INPUT STREAM 15660000 001078 5850 1088 010C8 1754 L 5,STREAMS . HOW MANY STREAMS? 15670000 00107C 4120 1218 01258 1755 IPLLOOP LA 2,IPLAPCBS . READY TO ALLOCATE A PCB 15680000 R:2 00000 1756 USING XAX,2 15690000 001080 0AC1 1757 SVC C'A' . ALLOCATE 15700000 001082 5820 2004 00004 1758 L 2,XAXADDR . GET THE ADDRESS 15710000 001086 D253 2000 1228 00000 01268 1759 MVC 0(TYPLEN,2),TYPPCB .MAKE IT LOOK LIKE A PCB 15720000 00108C 0AC9 1760 SVC C'I' . CHAIN IT ON 15730000 R:2 00000 1761 USING PCB,2 15740000 00108E 5020 2008 00008 1762 ST 2,PCBNPTG . BUT PUT IT IN A GROUP BY ITSELF 15750000 001092 5020 200C 0000C 1763 ST 2,PCBLPTG 15760000 1764 DROP 2 15770000 R:F 00000 1765 USING PCB,15 15780000 001096 50F0 F00C 0000C 1766 ST 15,PCBLPTG . LIKEWISE FOR THE IPL PCB 15790000 00109A 50F0 F008 00008 1767 ST 15,PCBNPTG 15800000 1768 DROP 15 15810000 R:2 00000 1769 USING PCB,2 15820000 00109E 4180 204C 0004C 1770 LA 8,PCBISA . GET THE NEW PCB'S ISA 15830000 R:8 00000 1771 USING SA,8 15840000 0010A2 4190 8008 00008 1772 LA 9,SAREGS . ABOUT TO FIX INIT REGS 15850000 R:9 00000 1773 USING REGS,9 15860000 0010A6 41A0 108C 010CC 1774 LA 10,UCBTAB 15870000 0010AA 1AA4 1775 AR 10,4 15880000 0010AC D203 900C A000 0000C 00000 1776 MVC REG3,0(10) . REG3 -> (RDRUCB,PRTUCB) 15890000 0010B2 D203 9010 A010 00010 00010 1777 MVC REG4,KEYTAB-UCBTAB(10) . REG4 = KEY 15900000 1778 DROP 9 15910000 0010B8 4144 0004 00004 1779 LA 4,4(4) . GO TO NEXT JOB STREAM 15920000 0010BC 4650 103C 0107C 1780 BCT 5,IPLLOOP . DO FOR EACH STREAM 15930000 0010C0 D202 005D 1285 0005D 012C5 1781 MVC EXTNEW+5(3),SOSEXNEW reactivate ext interrupt handler 15935002 0010C6 0A4B 1782 SVC C'.' . THEN ENTER TRAFFIC CONTROLLER 15940000 1 Sample Operating System Version 2.00 Page 46 Active Usings: PROGRAM,R0 PROGRAM+X'1040',R1 PCB,R2 SA,R8 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 00010C8 00000004 1784 STREAMS DC F'4' . NUMBER OF STREAMS 15960002 0 010CC 1786 UCBTAB EQU * . TABLE OF PTRS TO UCB BLOCKS 15980000 0010CC 000010EC 1787 DC A(UCBLP1) 15990000 0010D0 000010F4 1788 DC A(UCBLP2) 16000000 0010D4 000010FC 1789 DC A(UCBLP3) 16003002 0010D8 00001104 1790 DC A(UCBLP4) 16006002 0 010DC 1792 KEYTAB EQU * . TABLE OF PROTECTION KEYS 16020000 0010DC 00100000 1793 DC X'00100000' storage key for stream 1 region 16030002 0010E0 00200000 1794 DC X'00200000' storage key for stream 2 region 16034002 0010E4 00300000 1795 DC X'00300000' storage key for stream 3 region 16038002 0010E8 00400000 1796 DC X'00400000' storage key for stream 4 region 16042002 00010EC 00000EA400000EC4 1798 UCBLP1 DC A(UCBRDR1,UCBPRT1) 16060000 0010F4 00000EE400000F04 1799 UCBLP2 DC A(UCBRDR2,UCBPRT2) 16070000 0010FC 00000F2400000F44 1800 UCBLP3 DC A(UCBRDR3,UCBPRT3) 16073002 001104 00000F6400000F84 1801 UCBLP4 DC A(UCBRDR4,UCBPRT4) 16076002 0001110 1803 DS 0D 16090000 001110 4040404040404040 1804 IPLPCB DC CL8' ' . IPL ROUTINE PCB 16100000 001118 0000111000001110 1805 DC 4A(IPLPCB) 16110000 001128 FF000000 1806 DC X'FF000000' . INITIALIZED FLAGS 16120000 00112C 0000000100000000 1807 DC F'1,0' 16130000 001134 0000000000000000 1808 DC 5F'0,0' 16140000 00115C 0002000000000000 1809 DC X'0002000000000000' 16150000 001164 1810 DS CL76 16160000 0011B0 1811 DS CL84 16170000 001204 1812 DS CL84 16180000 0001258 00000148 1814 IPLAPCBS DC A(LENPCB) . ALLOC LIST FOR PCB'S 16200000 00125C 00000000 1815 DC A(0) 16210000 001260 00000008 1816 DC F'8' 16220000 001264 01000000 1817 CORESIZ DC A(CORESIZE) . BYTES OF CORE IN OBJECT MACHINE 16230000 0001268 1819 DS 0D 16250000 001268 5CC9C2E2E4D74040 1820 TYPPCB DC CL8'*IBSUP' . A TEMPLATE *IBSUP PCB 16260000 001270 0000000000000000 1821 DC 4A(0) 16270000 001280 00000000 1822 TEMPLATE DC X'00000000' . INITIALIZED FLAGS 16280000 001284 0000000100000000 1823 DC F'1,0' 16290000 00128C 0000000000000000 1824 DC 5F'0,0' 16300000 0012B4 FF000000000012CC 1825 DC X'FF00000000',AL3(JSP) 16310000 00054 1826 TYPLEN EQU *-TYPPCB 16320000 0012BC 8200 0018 00018 1827 EXINTRPT LPSW EXTOLD ignore external interrupts 16321002 0012C0 1828 DS 0F align 16322002 0012C0 00 1829 DC X'00' filler 16323002 0012C1 000FC4 1830 SOSIONEW DC AL3(IOHANDL) sample OS IO new PSW instruction addr 16324002 0012C4 00 1831 DC X'00' filler 16325002 0012C5 00027A 1832 SOSEXNEW DC AL3(EXTHANDL) sample OS ext new PSW instruction addr 16326002 0012C8 00 1833 DC X'00' filler 16327002 0012C9 0012BC 1834 IPLEXNEW DC AL3(EXINTRPT) IPLRTN ext new PSW instruction addr 16328002 1 Sample Operating System Version 2.00 Page 47 Active Usings: PROGRAM,R0 PROGRAM+X'1040',R1 PCB,R2 SA,R8 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 1836 *********************************************************************** 16340000 1837 * * 16350000 1838 * JOB STREAM PROCESSOR * 16360000 1839 * * 16370000 1840 *********************************************************************** 16380000 0 012CC 1842 JSP EQU * . THE JOB STREAM PROCESSOR 16400000 0012CC 0510 1843 BALR 1,0 . (PROCESS *IBSUP) 16410000 R:1 012CE 1844 USING *,1 . ESTABLISH ADDRESSING 16420000 0012CE 4120 1392 01660 1845 LA 2,JSPSUSEM . LOCK OURSELVES UNTIL 16430000 0012D2 0AD7 1846 SVC C'P' . WE CAN ALLOCATE STORAGE 16440000 0012D4 4120 139A 01668 1847 LA 2,JSPAAS . READY TO ALLOCATE 16450000 R:2 00000 1848 USING XAX,2 16460000 0012D8 0AC5 1849 SVC C'E' . ALLOCATE 16470000 0012DA 58C0 2004 00004 1850 L 12,XAXADDR . PTR TO AUTO AREA 16480000 1851 DROP 2 16490000 R:C 00000 1852 USING JSPAS,12 . USE FOR ADDRESSING 16500000 0012DE 4120 1392 01660 1853 LA 2,JSPSUSEM . UNLOCK OURSELVES 16510000 0012E2 0AE5 1854 SVC C'V' 16520000 0012E4 D207 C164 140A 00164 016D8 1855 MVC TREAD+0(8),=CL8'*IN' . INITIALIZE VALUES IN AUTOMATIC 16530000 0012EA D203 C16C 1432 0016C 01700 1856 MVC TREAD+8(4),=F'8' . STORAGE 16540000 0012F0 D203 C170 1436 00170 01704 1857 MVC TREAD+12(4),=C'READ' 16550000 0012F6 4120 C084 00084 1858 LA 2,CARD 16560000 0012FA 5020 C174 00174 1859 ST 2,ACARD 16570000 0012FE D207 C190 1412 00190 016E0 1860 MVC USERL+0(8),=CL8'USERPROG' 16580000 001304 D20B C178 1352 00178 01620 1861 MVC WRITE(12),SKIP 16590000 00130A D203 C184 143A 00184 01708 1862 MVC WRITE+12(4),=C'PRIN' 16600000 001310 4150 C000 00000 1863 LA 5,LINE 16610000 001314 5050 C188 00188 1864 ST 5,WRITE+16 16620000 001318 D203 C1B0 138E 001B0 0165C 1865 MVC CORE+8(4),PAGESIZE align to page boundary 16630002 00131E D207 C1B8 1412 001B8 016E0 1866 MVC TALK+0(8),=CL8'USERPROG' 16640000 001324 D203 C1C0 143E 001C0 0170C 1867 MVC TALK+8(4),=F'12' 16650000 00132A D203 C1D8 1442 001D8 01710 1868 MVC ANYBACK+8(4),=F'1' 16660000 001330 D203 C1B4 1446 001B4 01714 1869 MVC RLDTEMP,=A(0) 16670000 001336 5040 C18C 0018C 1870 ST 4,KEY . STORE KEY 16680000 00133A 1853 1871 LR 5,3 . GET PTR TO UCB PTR BLOCK 16690000 00133C 5835 0000 00000 1872 L 3,0(5) . GET READER POINTER 16700000 001340 4120 1362 01630 1873 LA 2,INSEQ . READY TO CREATE & START *IN 16710000 001344 0AC3 1874 SVC C'C' . CREATE 16720000 001346 0AE8 1875 SVC C'Y' . START 16730000 001348 5835 0004 00004 1876 L 3,4(5) . GET PTR TO PRINTER UCB 16740000 00134C 4120 136E 0163C 1877 LA 2,OUTSEQ . READY TO CREATE & START *OUT 16750000 001350 0AC3 1878 SVC C'C' . CREATE 16760000 001352 0AE8 1879 SVC C'Y' . START 16770000 0001354 4120 C164 00164 1881 LOOP LA 2,TREAD . READT TO READ A CARD 16790000 001358 0AE2 1882 SVC C'S' . START TO READ 16800000 00135A D203 C0DC 144A 000DC 01718 1883 MVC RREPLY1,=F'132' . 132 CHARS FOR REPLY 16810000 001360 4120 C0D4 000D4 1884 LA 2,RREPLY 16820000 001364 0AD9 1885 SVC C'R' . LISTEN FOR REPLY 16830000 001366 D501 C0E0 145A 000E0 01728 1886 CLC REPLY(2),=C'OK' . IS REPLY 'OK'? 16840000 00136C 4770 10B0 0137E 1887 BNE STOP . IF NOT, STOP 16850000 001370 D504 145C C084 0172A 00084 1888 CLC =C'$JOB,',CARD . HAVE WE A JOB CARD? 16860000 001376 4780 10B6 01384 1889 BE JOB . GOOD! 16870000 00137A 47F0 1086 01354 1890 B LOOP . ELSE LOOP 16880000 1 Sample Operating System Version 2.00 Page 48 Active Usings: PROGRAM,R0 PROGRAM+X'12CE',R1 SA,R8 JSPAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 000137E 4120 134A 01618 1891 STOP LA 2,JSPNEVER . WAIT FOR A "V" OPERATION 16890000 001382 0AD7 1892 SVC C'P' . THAT NEVER COMES 16900000 0001384 9200 C1DD 001DD 1894 JOB MVI LOADED,X'00' . REMEMBER NOT LOADED 16920000 001388 D283 C000 141A 00000 016E8 1895 MVC LINE,=CL8' ' . CLEAR A LINE, PUT IN 16930000 00138E D27B C008 C007 00008 00007 1896 MVC LINE+8(124),LINE+7 .ALL BLANKS 16940000 001394 D24F C000 C084 00000 00084 1897 MVC LINE(80),CARD . GET READY TO SEND $JOB CARD 16950000 00139A 4120 C178 00178 1898 LA 2,WRITE . TO PRINTER 16960000 00139E 0AE2 1899 SVC C'S' . SEND IT 16970000 0013A0 4120 C0D4 000D4 1900 LA 2,RREPLY 16980000 0013A4 0AD9 1901 SVC C'R' . AND WAIT FOR REPLY 16990000 0013A6 4120 C190 00190 1902 LA 2,USERL . CREATE USERPROG 17000000 0013AA 0AC3 1903 SVC C'C' 17010000 0013AC 4140 C088 00088 1904 LA 4,CARD+4 . START TO SCAN CARD 17020000 0013B0 4530 131C 015EA 1905 BAL 3,SCAN . GET NEXT TOKEN 17030000 0013B4 0650 1906 BCTR 5,0 . less one to remove K 17040002 0013B6 5650 138A 01658 1907 O 5,COREPKLN . length of packed size for execute 17049002 0013BA 4450 137A 01648 1908 EX 5,COREPACK . pack core digits 17058002 0013BE 4F80 1382 01650 1909 CVB 8,COREPCKD . convert core requested to binary 17067002 0013C2 1B99 1910 SR 9,9 . is core .. 17076002 0013C4 8C80 0002 00002 1911 SRDL 8,2 . .. modulo four .. 17085002 0013C8 1299 1912 LTR 9,9 . .. equal zero? 17094002 0013CA 4780 1104 013D2 1913 BZ COREOK . -> yes, use it 17103002 0013CE 4180 8001 00001 1914 LA 8,1(,8) . -> no, up one page 17112002 0013D2 8980 000C 0000C 1915 COREOK SLL 8,12 . core bytes, rounded up to full pages 17121002 0013D6 5080 C1A8 001A8 1916 ST 8,CORE . remember core requirement 17130002 0013DA 4530 131C 015EA 1917 ASGNUNIT BAL 3,SCAN . GET NEXT TOKEN 17150000 0013DE 957E 4000 00000 1918 CLI 0(4),C'=' . IS IT AN '='? 17160000 0013E2 4770 1194 01462 1919 BNE LOAD . IF NOT, LOAD IN THE OBJECT DECK 17170000 0013E6 955C 9000 00000 1920 CLI 0(9),C'*' . HAS USER NAMED IT STARTING 17180000 0013EA 4780 12C8 01596 1921 BE EXPUNGE . WITH '*'? IF SO, THROW HIM OUT 17190000 0013EE 4120 C19C 0019C 1922 LA 2,SEQ . ELSE CREATE A PROCESS 17200000 0013F2 D207 C19C 141A 0019C 016E8 1923 MVC SEQ,=CL8' ' . BLANK OUT THE NAME 17210000 0013F8 4450 1154 01422 1924 EX 5,UNAMMOV . THEN MOVE THE RELEVANT 17220000 0013FC 0AC3 1925 SVC C'C' . CHARACTERS AND CREATE 17230000 0013FE 4120 C19C 0019C 1926 LA 2,SEQ . WE'LL START IT IN A MOMENT 17240000 001402 4530 131C 015EA 1927 BAL 3,SCAN . SCAN AGAIN 17250000 001406 4450 115A 01428 1928 EX 5,CMPIN . IS IT 'IN'? 17260000 00140A 4780 116C 0143A 1929 BE ASIN . IF SO, ASSIGN IT AS IN 17270000 00140E 4450 1160 0142E 1930 EX 5,CMPOUT . IF IT'S 'OUT' 17280000 001412 4780 117C 0144A 1931 BE ASOUT . ASSIGN IT AS OUT 17290000 001416 4450 1166 01434 1932 EX 5,CMPEXCP . IS IT 'EXCP'? 17300000 00141A 4780 1184 01452 1933 BE ASEXCP . IF SO, ASSIGN IT AS EXCP 17310000 00141E 47F0 12C8 01596 1934 B EXPUNGE . ERROR: GO ON TO NEXT JOB 17320000 001422 D200 C19C 9000 0019C 00000 1935 UNAMMOV MVC SEQ(0),0(9) . MOVE THE UNIT'S PROCESS NAME 17330000 001428 D500 9000 1461 00000 0172F 1936 CMPIN CLC 0(0,9),=C'IN ' . DOES IT SAY 'IN'? 17340000 00142E D500 9000 144E 00000 0171C 1937 CMPOUT CLC 0(0,9),=C'OUT ' . DOES IT SAY 'OUT'? 17350000 001434 D500 9000 1464 00000 01732 1938 CMPEXCP CLC 0(0,9),=C'EXCP ' . DOES IT SAY 'EXCP'? 17360000 000143A 41B0 140A 016D8 1940 ASIN LA 11,=CL8'*IN' . POINT TO NAME OF READER HANDLER 17380000 00143E D203 C1A4 1452 001A4 01720 1941 SETDIM MVC UNITRTN,=A(DIM) . USE DIM AS THE INTERFACE 17390000 001444 0AE8 1942 SVC C'Y' 17400000 001446 47F0 110C 013DA 1943 B ASGNUNIT 17410000 00144A 41B0 1422 016F0 1944 ASOUT LA 11,=CL8'*OUT' . POINT TO NAME OF PRINTER HANDLER 17420000 00144E 47F0 1170 0143E 1945 B SETDIM 17430000 1 Sample Operating System Version 2.00 Page 49 Active Usings: PROGRAM,R0 PROGRAM+X'12CE',R1 SA,R8 JSPAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0001452 D203 C1A4 1456 001A4 01724 1946 ASEXCP MVC UNITRTN,=A(EXCPHNDL) . USE FOR USER SUPPLIED 17440000 001458 58B0 C18C 0018C 1947 L 11,KEY 17450000 00145C 0AE8 1948 SVC C'Y' . I/O ROUTINE 17460000 00145E 47F0 110C 013DA 1949 B ASGNUNIT 17470000 0001462 4120 C1A8 001A8 1951 LOAD LA 2,CORE . READY TO ALLOCATE THE REGION 17490000 001466 0AC1 1952 SVC C'A' . AND ALLOCATE IT 17500000 001468 92FF C1DD 001DD 1953 MVI LOADED,X'FF' . REMEMBER THAT WE'RE LOADED 17510000 00146C 5890 C1AC 001AC 1954 L 9,CORE+4 . GET THE FIRST ADDRESS 17520000 001470 5840 C18C 0018C 1955 L 4,KEY . GET THE KEY 17530000 001474 8840 0010 00010 1956 SRL 4,16 17540000 001478 5640 13A2 01670 1957 O 4,FETCHPRT fetch protected 17545002 00147C 1839 1958 LR 3,9 . GET THE BLOCK FOLLOWING OURS 17550000 00147E 1A38 1959 AR 3,8 17560000 001480 5B30 138E 0165C 1960 LOADSK S 3,PAGESIZE . get the previous block, page aligned 17570002 001484 1939 1961 CR 3,9 . HAVE WE PASSED THE START? 17580000 001486 4740 11C4 01492 1962 BL LOADLOOP . IF SO, START LOADING 17590000 1963 * SSKE 4,3 . else set this block to the key 17600002 00148A B22B0043 1964 DC X'B22B0043' Assembler (XF) doesn't support SSKE 17603002 00148E 47F0 11B2 01480 1965 B LOADSK . AND BRANCH BACK 17610000 001492 4120 C164 00164 1966 LOADLOOP LA 2,TREAD . READ IN OBJECT DECK 17620000 001496 0AE2 1967 SVC C'S' . GET A CARD A'READING 17630000 001498 D203 C0DC 144A 000DC 01718 1968 MVC RREPLY1,=F'132' 17640000 00149E 4120 C0D4 000D4 1969 LA 2,RREPLY 17650000 0014A2 0AD9 1970 SVC C'R' . WAIT FOR ANSWER 17660000 0014A4 D502 C085 1469 00085 01737 1971 CLC CARD+1(3),=C'TXT' . IS IT A TXT CARD? 17670000 0014AA 4780 11F8 014C6 1972 BE TXTCARD 17680000 0014AE D502 C085 146C 00085 0173A 1973 CLC CARD+1(3),=C'RLD' . IS IT A RLD CARD? 17690000 0014B4 4780 1212 014E0 1974 BE RLDCARD 17700000 0014B8 D502 C085 146F 00085 0173D 1975 CLC CARD+1(3),=C'END' . IS IT AN END CARD? 17710000 0014BE 4780 1270 0153E 1976 BE ENDCARD 17720000 0014C2 47F0 11C4 01492 1977 B LOADLOOP . IF NONE, IGNORE. 17730000 00014C6 58A0 C088 00088 1979 TXTCARD L 10,CARD+4 . GET THE RELATIVE ADDRESS 17750000 0014CA 1AA9 1980 AR 10,9 . PLUS THE ABSOLUTE ADDRESS 17760000 0014CC 48B0 C08E 0008E 1981 LH 11,CARD+10 . GET THE COUNT, 17770000 0014D0 06B0 1982 BCTR 11,0 . DECREMENTED 17780000 0014D2 44B0 120C 014DA 1983 EX 11,TXTMOV . AND MOVE THE TEXT 17790000 0014D6 47F0 11C4 01492 1984 B LOADLOOP . AND READ ANOTHER CARD! OH WOW! 17800000 0014DA D200 A000 C094 00000 00094 1985 TXTMOV MVC 0(0,10),CARD+16 17810000 00014E0 48B0 C08E 0008E 1987 RLDCARD LH 11,CARD+10 . GET THE BYTE COUNT 17830000 0014E4 41D0 C098 00098 1988 LA 13,CARD+20 . AND AN INDEX INTO THE CARD 17840000 0014E8 58AD 0000 00000 1989 RLDLOOP L 10,0(13) . GET THE LOCATION TO BE RLD'D 17850000 0014EC 1AA9 1990 AR 10,9 . GET THE ABSOLUTE ADDRESS 17860000 0014EE 9103 D003 00003 1991 TM 3(13),X'03' . IS IT A FULLWORD? 17870000 0014F2 4770 1252 01520 1992 BNZ NOTALGND . IF NO, HANDLE AS THREE BYTES 17880000 0014F6 587A 0000 00000 1993 L 7,0(10) . GET THAT WORD (HAD BETTER BE 17890000 0014FA 1A79 1994 AR 7,9 . ONE); ADD THE RELOCATION 17900000 0014FC 507A 0000 00000 1995 ST 7,0(10) . ADDRESS, AND STORE IT BACK 17910000 001500 9101 D000 00000 1996 RLDCONT TM 0(13),X'01' . CHECK IF LONG OR SHORT FIELD 17920000 001504 4770 1242 01510 1997 BNZ SHORT . AND BRANCH ACCORDINGLY 17930000 001508 4140 0008 00008 1998 LA 4,8 . SKIP EIGHT BYTES 17940000 00150C 47F0 1246 01514 1999 B RLDFINI 17950000 001510 4140 0004 00004 2000 SHORT LA 4,4 . SKIP FOUR BYTES 17960000 1 Sample Operating System Version 2.00 Page 50 Active Usings: PROGRAM,R0 PROGRAM+X'12CE',R1 SA,R8 JSPAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0001514 1AD4 2001 RLDFINI AR 13,4 . INCREMENT THE CARD INDEX 17970000 001516 1BB4 2002 SR 11,4 . DECREMENT THE BYTE COUNT 17980000 001518 4720 121A 014E8 2003 BP RLDLOOP . AND TRY AGAIN 17990000 00151C 47F0 11C4 01492 2004 B LOADLOOP . OR READ ANOTHER CARD 18000000 001520 D202 C1B5 A000 001B5 00000 2005 NOTALGND MVC RLDTEMP+1(3),0(10) . PUT ADDRESS HERE 18010000 001526 5870 C1B4 001B4 2006 L 7,RLDTEMP . RELOCATE IT 18020000 00152A 1A79 2007 AR 7,9 18030000 00152C 5070 C1B4 001B4 2008 ST 7,RLDTEMP . AND PUT IT BACK TO 18040000 001530 D202 A000 C1B5 00000 001B5 2009 MVC 0(3,10),RLDTEMP+1 . WHERE IT BELONGS 18050000 001536 9400 C1B4 001B4 2010 NI RLDTEMP,X'00' . CLEAR OUT TEMPORARY 18060000 00153A 47F0 1232 01500 2011 B RLDCONT . AND LOOP BACK 18070000 000153E 4120 C190 00190 2013 ENDCARD LA 2,USERL . FIND THE PCB FOR USERPROG 18090000 001542 0AD5 2014 SVC C'N' 18100000 001544 5840 C198 00198 2015 L 4,USERL+8 . GET THE ADDRESS 18110000 R:4 00000 2016 USING PCB,4 18120000 001548 92FF 4019 00019 2017 MVI PCBBLOKT,X'FF' . TEMPORARILY BLOCK IT 18130000 00154C 5090 C198 00198 2018 ST 9,USERL+8 . STORE THE BEGINNING ADDRESS 18140000 001550 0AE8 2019 SVC C'Y' . THEN START IT 18150000 001552 5850 C18C 0018C 2020 L 5,KEY . GET THE KEY 18160000 001556 5650 404C 0004C 2021 O 5,PCBISA+0 . THEN OR THIS INTO THE 18170000 00155A 5050 404C 0004C 2022 ST 5,PCBISA+0 . FIRST WORD OF THE PCB 18180000 00155E 9601 404D 0004D 2023 OI PCBISA+1,X'01' . OR IN A 'PROGRAM STATE' BIT 18190000 001562 9200 4019 00019 2024 MVI PCBBLOKT,X'00' . AND THEN UNBLOCK IT 18200000 2025 DROP 4 18210000 001566 4120 C1B8 001B8 2026 LA 2,TALK . LISTEN TO WHAT IT SAYS 18220000 00156A 0AD9 2027 SVC C'R' 18230000 000156C D207 C000 141A 00000 016E8 2029 MVC LINE(8),=CL8' ' . IF JOB FINISHED, CLEAR A LINE 18250000 001572 D27B C008 C007 00008 00007 2030 MVC LINE+8(124),LINE+7 18260000 001578 D20B C000 C1C4 00000 001C4 2031 MVC LINE(12),TALK+12 . MOVE THE MESSAGE ONTO THE LINE 18270000 00157E 4120 C178 00178 2032 LA 2,WRITE . AND SAY TO WRITE IT 18280000 001582 0AE2 2033 SVC C'S' 18290000 001584 4120 C1D0 001D0 2034 LA 2,ANYBACK 18300000 001588 0AD9 2035 SVC C'R' 18310000 00158A 4120 1352 01620 2036 LA 2,SKIP . SKIP TO THE TOP OF THE NEXT PAGE 18320000 00158E 0AE2 2037 SVC C'S' 18330000 001590 4120 C1D0 001D0 2038 LA 2,ANYBACK 18340000 001594 0AD9 2039 SVC C'R' 18350000 0001596 5850 0270 00270 2041 EXPUNGE L 5,RUNNING . EXPUNGE A JOB: LOOK AT ALL PCBS 18370000 00159A 4120 C19C 0019C 2042 LA 2,SEQ 18380000 R:5 00000 2043 USING PCB,5 18390000 00159E D207 C19C 5000 0019C 00000 2044 EXPLOOP MVC SEQ(8),PCBNAME . GET THE PROCESS NAME 18400000 0015A4 5840 5008 00008 2045 L 4,PCBNPTG . GET THE NEXT PTR 18410000 0015A8 955C C19C 0019C 2046 CLI SEQ+0,C'*' . IS IT A '*' PROCESS? 18420000 0015AC 4780 12E6 015B4 2047 BE EXPNXT . IF SO, SKIP OVER 18430000 0015B0 0AE9 2048 SVC C'Z' . ELSE STOP IT 18440000 0015B2 0AC4 2049 SVC C'D' . AND DESTROY IT 18450000 0015B4 1854 2050 EXPNXT LR 5,4 . GO TO THE NEXT PCB 18460000 0015B6 5950 0270 00270 2051 C 5,RUNNING . ARE WE THROUGH? 18470000 0015BA 4770 12D0 0159E 2052 BNE EXPLOOP . IF NOT, LOOP AGAIN 18480000 0015BE 9500 C1DD 001DD 2053 CLI LOADED,X'00' . WAS CORE ALLOCATED? 18490000 0015C2 4780 1086 01354 2054 BE LOOP . IF NOT, GO READ THE NEXT $JOB CARD 18500000 0015C6 4140 0008 00008 2055 LA 4,8 . set zero key and fetch protect 18510002 1 Sample Operating System Version 2.00 Page 51 Active Usings: PROGRAM,R0 PROGRAM+X'12CE',R1 PCB,R5 SA,R8 JSPAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 00015CA 1839 2056 LR 3,9 . AND A POINTER TO THE NEXT 18520000 0015CC 1A38 2057 AR 3,8 . BLOCK AFTER OURS 18530000 0015CE 5B30 138E 0165C 2058 LOADCL S 3,PAGESIZE . get the previous block, page aligned 18540002 0015D2 1939 2059 CR 3,9 . ARE WE THROUGH? 18550000 0015D4 4740 1312 015E0 2060 BL LOADD . IF SO, GO FREE CORE 18560000 2061 * SSKE 4,3 . else clear storage key 18570002 0015D8 B22B0043 2062 DC X'B22B0043' Assembler (XF) doesn't support SSKE 18573002 0015DC 47F0 1300 015CE 2063 B LOADCL . AND LOOP BACK 18580000 0015E0 4120 C1A8 001A8 2064 LOADD LA 2,CORE 18590000 0015E4 0AC6 2065 SVC C'F' . FREE THE STORAGE 18600000 0015E6 47F0 1086 01354 2066 B LOOP . READ ANOTHER $JOB CARD 18610000 00015EA 1B55 2068 SCAN SR 5,5 . START THE TOKEN COUNT AT ZERO 18630000 0015EC 4144 0001 00001 2069 SCANLOOP LA 4,1(4) . GO TO NEXT CHARACTER 18640000 0015F0 956B 4000 00000 2070 CLI 0(4),C',' . DO WE HAVE A DELIMITER? IF SO, 18650000 0015F4 4780 1342 01610 2071 BE TOKSTART 18660000 0015F8 957E 4000 00000 2072 CLI 0(4),C'=' . DITTO 18670000 0015FC 4780 1342 01610 2073 BE TOKSTART 18680000 001600 9540 4000 00000 2074 CLI 0(4),C' ' . DITTO 18690000 001604 4780 1342 01610 2075 BE TOKSTART 18700000 001608 4155 0001 00001 2076 LA 5,1(5) . AND UP COUNT 18710000 00160C 47F0 131E 015EC 2077 B SCANLOOP . AND LOOP 18720000 001610 1894 2078 TOKSTART LR 9,4 . SET REG9 TO START 18730000 001612 1B95 2079 SR 9,5 . OF THIS TOKEN 18740000 001614 0650 2080 BCTR 5,0 . LESS ONE FOR EXECUTE INSTRUCTION 18750000 001616 07F3 2081 BR 3 18760000 -001618 0000000000000000 2083 JSPNEVER DC F'0,0' . A GOOD WAY TO DIE: P(JSPNEVER) 18780000 001620 5CD6E4E340404040 2084 SKIP DC CL8'*OUT' . MESSAGE BLOCK FOR A NEW PAGE 18790000 001628 00000008 2085 DC F'8' 18800000 00162C E2E3C3F1 2086 DC CL4'STC1' 18810000 001630 5CC9D54040404040 2087 INSEQ DC CL8'*IN' . SEQ TO CREATE & START *IN 18820000 001638 00000AC6 2088 DC A(RDRHANDL) 18830000 00163C 5CD6E4E340404040 2089 OUTSEQ DC CL8'*OUT' . SEQ TO CREATE & START *OUT 18840000 001644 00000C48 2090 DC A(PRTHANDL) 18850000 001648 F200 1382 9000 01650 00000 2091 COREPACK PACK COREPCKD(1),0(1,9) . executed to pack core size req'd 18860002 001650 2092 COREPCKD DS D . packed core requirement goes here 18880002 001658 00000070 2093 COREPKLN DC X'00000070' . length of packed size for execute 18900002 00165C 00001000 2094 PAGESIZE DC F'4096' . page size for core computation 18920002 001660 0000000100000000 2095 JSPSUSEM DC F'1,0' . SEMAPHORE TO LOCK ROUTINE 18990000 001668 000001E0 2096 JSPAAS DC A(LENJSPAS) . ALLOCATE LIST FOR AUTO STORAGE 19000000 00166C 2097 DS A 19010000 001670 00000008 2098 FETCHPRT DC F'8' reused to or in fetch protection 19020002 1 Sample Operating System Version 2.00 Page 52 Active Usings: PROGRAM,R0 PROGRAM+X'12CE',R1 PCB,R5 SA,R8 JSPAS,R12 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 2100 *********************************************************************** 19040000 2101 * * 19050000 2102 * DEVICE INTERFACE MODULE * 19060000 2103 * * 19070000 2104 * FUNCTION: TO INTERFACE BETWEEN USERPROG AND DEVICE HANDLER * 19080000 2105 * DATABASES: NONE * 19090000 2106 * ROUTINES USED: XA, XP, XV, XR, XS * 19100000 2107 * PROCEDURE: ALLOCATE AUTOMATIC STORAGE; START TO READ MESSAGE * 19110000 2108 * FROM USER; SEND MESSAGE TO DEVICE HANDLER; * 19120000 2109 * CONTINUE LOOPING, SENDING MESSAGES FROM USER TO * 19130000 2110 * DEVICE HANDLER AND BACK. * 19140000 2111 * ERROR CHECKS: NONE * 19150000 2112 * INTERRUPTS: ON * 19160000 2113 * USER ACCESS: YES * 19170000 2114 * * 19180000 2115 *********************************************************************** 19190000 0 01674 2117 DIM EQU * . THE DEVICE INTERFACE MODULE 19210000 001674 0510 2118 BALR 1,0 19220000 R:1 01676 2119 USING *,1 . ESTABLISH ADDRESSING 19230000 001676 4120 1042 016B8 2120 LA 2,DIMSEM . LOCK UNTIL GET STORAGE 19240000 00167A 0AD7 2121 SVC C'P' 19250000 00167C 4120 104A 016C0 2122 LA 2,DIMAAS . READY TO ALLOCATE STORAGE 19260000 R:2 00000 2123 USING XAX,2 19270000 001680 0AC5 2124 SVC C'E' . DO IT 19280000 001682 58C0 2004 00004 2125 L 12,XAXADDR . GET THE ADDRESS 19290000 2126 DROP 2 19300000 001686 4120 1042 016B8 2127 LA 2,DIMSEM . UNLOCK OURSELVES 19310000 00168A 0AE5 2128 SVC C'V' 19320000 R:C 00000 2129 USING DIMAS,12 . USE 12 FOR AUTO STORAGE 19330000 00168C D207 C090 B000 00090 00000 2130 MVC DIMLMS,0(11) . MOVE NAME OF RECIEVER 19340000 001692 4180 0084 00084 2131 LA 8,132 . REG 8 = SIZE OF MESSAGE 19350000 001696 5080 C008 00008 2132 DIMLOOP ST 8,DIMMSG+8 . GET READY TO READ A MESSAGE 19360000 00169A 4120 C000 00000 2133 LA 2,DIMMSG 19370000 00169E 0AD9 2134 SVC C'R' . READ 19380000 0016A0 D207 C098 C000 00098 00000 2135 MVC DIMTEMP,DIMMSG . SAVE SENDER NAME 19390000 0016A6 D207 C000 C090 00000 00090 2136 MVC DIMMSG,DIMLMS . SEND IT BACK TO THE LAST GUY 19400000 0016AC 0AE2 2137 SVC C'S' . SEND IT 19410000 0016AE D207 C090 C098 00090 00098 2138 MVC DIMLMS,DIMTEMP . AND REMEMBER WHO TO SEND TO NEXT 19420000 0016B4 47F0 1020 01696 2139 B DIMLOOP . RELOOP 19430000 0016B8 0000000100000000 2140 DIMSEM DC F'1,0' . SEMAPHORE FOR ENTRY 19440000 0016C0 000000A0 2141 DIMAAS DC A(DIMLEN) . ALLOCATE SEQ FOR AUTO STORAGE 19450000 0016C4 00000000 2142 DC A(0) 19460000 0016C8 00000008 2143 DC F'8' 19470000 2144 DROP 12 19480000 1 Sample Operating System Version 2.00 Page 53 Active Usings: PROGRAM,R0 PROGRAM+X'1676',R1 PCB,R5 SA,R8 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 00016D0 2146 LTORG 19500000 0016D0 0000000000FFE8C0 2147 =A(0,CORESIZE-(VERYEND-PROGRAM)) 0016D8 5CC9D54040404040 2148 =CL8'*IN' 0016E0 E4E2C5D9D7D9D6C7 2149 =CL8'USERPROG' 0016E8 4040404040404040 2150 =CL8' ' 0016F0 5CD6E4E340404040 2151 =CL8'*OUT' 0016F8 00000EA4 2152 =A(UCBTABLE) 0016FC 00000FC4 2153 =A(UCBTBEND) 001700 00000008 2154 =F'8' 001704 D9C5C1C4 2155 =C'READ' 001708 D7D9C9D5 2156 =C'PRIN' 00170C 0000000C 2157 =F'12' 001710 00000001 2158 =F'1' 001714 00000000 2159 =A(0) 001718 00000084 2160 =F'132' 00171C D6E4E340 2161 =C'OUT ' 001720 00001674 2162 =A(DIM) 001724 00000D74 2163 =A(EXCPHNDL) 001728 D6D2 2164 =C'OK' 00172A 5BD1D6C26B 2165 =C'$JOB,' 00172F C9D540 2166 =C'IN ' 001732 C5E7C3D740 2167 =C'EXCP ' 001737 E3E7E3 2168 =C'TXT' 00173A D9D3C4 2169 =C'RLD' 00173D C5D5C4 2170 =C'END' 001740 2171 VERYEND DS 6D . beginning of free storage 19510004 001770 2172 LOADER DS 0D IPL loader goes here 19521002 1 Sample Operating System Version 2.00 Page 54 Active Usings: PROGRAM,R0 PROGRAM+X'1676',R1 PCB,R5 SA,R8 0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 00000 2174 R0 EQU 0 19521502 00001 2175 R1 EQU 1 19522002 00002 2176 R2 EQU 2 19522502 00003 2177 R3 EQU 3 19523002 00004 2178 R4 EQU 4 19523502 00005 2179 R5 EQU 5 19524002 00006 2180 R6 EQU 6 19524502 00007 2181 R7 EQU 7 19525002 00008 2182 R8 EQU 8 19525502 00009 2183 R9 EQU 9 19526002 0000A 2184 R10 EQU 10 19526502 0000B 2185 R11 EQU 11 19527002 0000C 2186 R12 EQU 12 19527502 0000D 2187 R13 EQU 13 19528002 0000E 2188 R14 EQU 14 19528502 0000F 2189 R15 EQU 15 19529002 2190 *********************************************************************** 19530000 2191 * * 19540000 2192 * DATABASE DEFINITIONS * 19550000 2193 * * 19560000 2194 *********************************************************************** 19570000 0000000 00000 00148 2196 PCB DSECT . PROCESS CONTROL BLOCK DEFINITION 19590000 000000 2197 PCBNAME DS CL8 . NAME 19600000 000008 2198 PCBNPTG DS F . NEXT POINTER THIS GROUP 19610000 00000C 2199 PCBLPTG DS F . LAST POINTER THIS GROUP 19620000 000010 2200 PCBNPALL DS F . NEXT POINTER ALL 19630000 000014 2201 PCBLPALL DS F . LAST POINTER ALL 19640000 000018 2202 PCBSTOPT DS C . STOPPED 19650000 000019 2203 PCBBLOKT DS C . BLOCKED 19660000 00001A 2204 PCBINSMC DS C . IN SMC 19670000 00001B 2205 PCBSW DS C . STOP WAITING 19680000 00001C 2206 PCBMSC DS CL8 . MESSAGE SEMAPHORE COMMON 19690000 000024 2207 PCBMSR DS CL8 . MESSAGE SEMAPHORE RECEIVER 19700000 00002C 2208 PCBFM DS F . FIRST MESSAGE 19710000 000030 2209 PCBNSW DS F . NEXT SEMAPHORE WAITER 19720000 000034 2210 PCBSRS DS CL8 . STOPPER SEMAPHORE 19730000 00003C 2211 PCBSES DS CL8 . STOPPEE SEMAPHORE 19740000 000044 2212 PCBASIZE DS F . AUTOMATIC STORAGE SIZE 19750000 000048 2213 PCBAADDR DS A . AUTOMATIC STORAGE ADDRESS 19760000 00004C 2214 PCBISA DS CL84 . INTERRUPT SAVE AREA 19770000 0000A0 2215 PCBFSA DS CL84 . FAULT SAVE AREA 19780000 0000F4 2216 PCBMSA DS CL84 . MEMORY SAVE AREA 19790000 000148 2217 DS 0D . (ALIGN) 19800000 00148 2218 LENPCB EQU *-PCB . (LENGTH) 19810000 0000000 00000 00054 2220 SA DSECT . SAVE AREA DEFINITION 19830000 000000 2221 SAPSW DS D . PROGRAM STATUS WORD 19840000 000008 2222 SAREGS DS CL64 . REGISTERS 19850000 000048 2223 SATEMP DS CL12 . TEMPORARIES 19860000 0000000 00000 00040 2225 REGS DSECT . REGISTER DEFINITION 19880000 000000 2226 REG0 DS F . REGISTER 0 19890000 000004 2227 REG1 DS F . REGISTER 1 19900000 000008 2228 REG2 DS F . REGISTER 2 19910000 1 Sample Operating System Version 2.00 Page 55 Active Usings: PROGRAM,R0 PROGRAM+X'1676',R1 PCB,R5 SA,R8 0D-Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 000000C 2229 REG3 DS F . REGISTER 3 19920000 000010 2230 REG4 DS F . REGISTER 4 19930000 000014 2231 REG5 DS F . REGISTER 5 19940000 000018 2232 REG6 DS F . REGISTER 6 19950000 00001C 2233 REG7 DS F . REGISTER 7 19960000 000020 2234 REG8 DS F . REGISTER 8 19970000 000024 2235 REG9 DS F . REGISTER 9 19980000 000028 2236 REG10 DS F . REGISTER 10 19990000 00002C 2237 REG11 DS F . REGISTER 11 20000000 000030 2238 REG12 DS F . REGISTER 12 20010000 000034 2239 REG13 DS F . REGISTER 13 20020000 000038 2240 REG14 DS F . REGISTER 14 20030000 00003C 2241 REG15 DS F . REGISTER 15 20040000 0000000 00000 00008 2243 FSB DSECT . FREE STORAGE BLOCK DEFINITIONS 20060000 000000 2244 FSBNEXT DS A . NEXT 20070000 000004 2245 FSBSIZE DS F . SIZE 20080000 0000000 00000 00008 2247 SM DSECT . SEMAPHORE DEFINITION 20100000 000000 2248 SMVAL DS F . VALUE 20110000 000004 2249 SMPTR DS F . PTR 20120000 0000000 00000 0000C 2251 MSG DSECT . MESSAGE DEFINITION 20140000 000000 2252 MSGSENDR DS A . POINTER TO SENDER'S PCB 20150000 000004 2253 MSGNEXT DS A . NEXT 20160000 000008 2254 MSGSIZE DS F . SIZE 20170000 00000C 2255 MSGTEXT DS 0C . TEXT 20180000 0000C 2256 LENMSG EQU *-MSG . (LENGTH) 20190000 0000000 00000 0000C 2258 XAX DSECT . XA ARGUMENT LIST 20210000 000000 2259 XAXSIZE DS F . SIZE 20220000 000004 2260 XAXADDR DS F . ADDRESS 20230000 000008 2261 XAXALGN DS F . ALIGNMENT 20240000 0000000 00000 00008 2263 XFX DSECT . XF ARGUMENT LIST 20260000 000000 2264 XFXSIZE DS F . SIZE 20270000 000004 2265 XFXADDR DS F . ADDRESS 20280000 0000000 00000 00008 2267 XBX DSECT . XB ARGUMENT LIST 20300000 000000 2268 XBXSIZE DS F . SIZE 20310000 000004 2269 XBXADDR DS F . ADDRESS 20320000 0000000 00000 00008 2271 XCX DSECT . XC ARGUMENT LIST 20340000 000000 2272 XCXNAME DS CL8 . NAME 20350000 0000000 00000 00008 2274 XDX DSECT . AD ARGUMENT LIST 20370000 000000 2275 XDXNAME DS CL8 . NAME 20380000 0000000 00000 0000C 2277 XNX DSECT . XN ARGUMENT LIST 20400000 000000 2278 XNXNAME DS CL8 . NAME 20410000 000008 2279 XNXADDR DS A . ADDRESS 20420000 0000000 00000 0000C 2281 XRX DSECT . XR ARGUMENT LIST 20440000 000000 2282 XRXNAME DS CL8 . NAME 20450000 000008 2283 XRXSIZE DS F . SIZE 20460000 1 Sample Operating System Version 2.00 Page 56 Active Usings: PROGRAM,R0 PROGRAM+X'1676',R1 PCB,R5 SA,R8 0D-Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 000000C 2284 XRXTEXT DS 0C . TEXT 20470000 0000000 00000 0000C 2286 XSX DSECT . XS ARGUMENT LIST 20490000 000000 2287 XSXNAME DS CL8 . NAME 20500000 000008 2288 XSXSIZE DS F . SIZE 20510000 00000C 2289 XSXTEXT DS 0C . TEXT 20520000 0000000 00000 0000C 2291 XYX DSECT . XY ARGUMENT LIST 20540000 000000 2292 XYXNAME DS CL8 . NAME 20550000 000008 2293 XYXADDR DS A . ADDR 20560000 0000000 00000 00008 2295 XZX DSECT . XZ ARGUMENT LIST 20580000 000000 2296 XZXNAME DS CL8 . NAME 20590000 0000000 00000 00080 2298 RDRHAS DSECT . READER HANDLER AUTOMATIC STORAGE 20610000 000000 2299 RDRHCCB DS 2F . CCB 20620000 000008 2300 RDRHMSG DS CL8 . MESSAGE BLOCK FOR REQUESTS 20630000 000010 2301 DS F'8' 20640000 000014 2302 DS CL8 20650000 00001C 2303 RDRHTEMP DS CL80 . AREA FOR $JOB IN DATA STREAM 20660000 00006C 2304 RDRHM DS CL8 . MESSAGE BLOCK FOR REPLY 20670000 000074 2305 DS F'2' 20680000 000078 2306 DS CL2 20690000 00007A 2307 JOBBIT DS 1C 20700000 000080 2308 DS 0D 20710000 00080 2309 LENRDRHA EQU *-RDRHAS . (LENGTH) 20720000 0000000 00000 00030 2311 PRTHAS DSECT . PRINTER HANDLER AUTOMATIC STORAGE 20740000 000000 2312 PRTHCCB DS 2F . CCB 20750000 000008 2313 PRTHMSG DS CL8 . MESSAGE BLOCK FOR REQUESTS 20760000 000010 2314 DS F'2' 20770000 000014 2315 DS CL8 20780000 00001C 2316 PRTHM DS CL8 . MESSAGE BLOCK FOR REPLY 20790000 000024 2317 DS F'2' 20800000 000028 2318 DS CL2 20810000 000030 2319 DS 0D 20820000 00030 2320 LENPRTHA EQU *-PRTHAS . (LENGTH) 20830000 0000000 00000 00030 2322 EXCPHAS DSECT . EXCP HANDLER AUTOMATIC STORAGE 20850000 000000 2323 EXCPHMSG DS CL8 . MESSAGE BLOCK FOR REQUESTS 20860000 000008 2324 DS F'12' 20870000 00000C 2325 DS CL12 20880000 000018 2326 EXCPHM DS CL8 . MESSAGE BLOCK FOR REPLY 20890000 000020 2327 DS F'12' 20900000 000024 2328 DS CL12 20910000 000030 2329 DS 0D 20920000 00030 2330 LENEXCPA EQU *-EXCPHAS . (LENGTH) 20930000 0000000 00000 00020 2332 UCB DSECT . UNIT CONTROL BLOCK DEFINITION 20950000 000000 2333 UCBADDR DS F . ADDRESS 20960000 000004 2334 UCBUS DS FL8 . USER SEMAPHORE 20970000 00000C 2335 UCBWS DS FL8 . WAITER SEMAPHORE 20980000 000014 2336 UCBCSW DS FL8 . CHANNEL STATUS WORD 20990000 00001C 2337 UCBFPR DS CL1 . FAST PROCESSING REQUIRED 21000000 000020 2338 DS 0F 21010000 1 Sample Operating System Version 2.00 Page 57 Active Usings: PROGRAM,R0 PROGRAM+X'1676',R1 PCB,R5 SA,R8 0D-Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 08.42 0 00020 2339 UCBLENG EQU *-UCB 21020000 0000000 00000 001E0 2341 JSPAS DSECT . JSP AUTOMATIC STORAGE 21040000 000000 2342 LINE DS CL132 . PRINTED LINE 21050000 000084 2343 DS 0F 21060000 000084 2344 CARD DS CL80 . CARD READ 21070000 0000D4 2345 DS 0F 21080000 0000D4 2346 RREPLY DS CL8 . MESSAGE BLOCK FOR REPLIES 21090000 0000DC 2347 RREPLY1 DS F 21100000 0000E0 2348 REPLY DS CL132 21110000 000164 2349 TREAD DS 0F . MESSAGE BLOCK FOR READING 21120000 000164 2350 DS CL8'*IN' 21130000 00016C 2351 DS F'8' 21140000 000170 2352 DS CL4'READ' 21150000 000174 2353 ACARD DS A(0) 21160000 000178 2354 WRITE DS CL8'*OUT' . MESSAGE BLOCK TO PRINT A LINE 21170000 000180 2355 DS F'8' 21180000 000184 2356 DS CL4'PRIN' 21190000 000188 2357 DS A(LINE) 21200000 00018C 2358 KEY DS F 21210000 000190 2359 USERL DS CL8'USERPROG' . LIST FOR MANIPULATING USERPROG 21220000 000198 2360 DS F 21230000 00019C 2361 SEQ DS CL8' ' . COMMON ARG LIST FOR I/O PROCESS 21240000 0001A4 2362 UNITRTN DS A 21250000 0001A8 2363 CORE DS F . MEMORY ALLOCATED AND FREE 21260000 0001AC 2364 DS F . SEQUENCE 21270000 0001B0 2365 DS F'4096' align to page boundary 21280002 0001B4 2366 RLDTEMP DS F 21290000 0001B8 2367 TALK DS CL8'USERPROG' . MESSAGE BLOCK FOR MESSAGE FROM 21300000 0001C0 2368 DS F'12' . USERPROG 21310000 0001C4 2369 DS CL12 21320000 0001D0 2370 ANYBACK DS CL8 . MESSAGE BLOCK FOR IGNORING MESS 21330000 0001D8 2371 DS F'1' 21340000 0001DC 2372 DS CL1 21350000 0001DD 2373 LOADED DS C . IS CORE ALLOCATED 21360000 0001E0 2374 DS 0D 21370000 001E0 2375 LENJSPAS EQU *-JSPAS . (LENGTH) 21380000 0000000 00000 000A0 2377 DIMAS DSECT . DEVICE INTERFACE MODULE STORAGE 21400000 000000 2378 DIMMSG DS CL8 . MESSAGE BLOCK 21410000 000008 2379 DS F'132' 21420000 00000C 2380 DS CL132 21430000 000090 2381 DIMLMS DS CL8 . LAST MESSAGE SENDER 21440000 000098 2382 DIMTEMP DS CL8 . TEMPORARY 21450000 0000A0 2383 DS 0D 21460000 000A0 2384 DIMLEN EQU *-DIMAS . (LENGTH) 21470000 2385 END 21480000 1 Relocation Dictionary Page 58 - Pos.Id Rel.Id Address Type Action HLASM R6.0 2016/08/29 08.42 0 00000001 00000001 00000005 A 3 + 00000001 00000001 0000005D A 3 + 00000001 00000001 00000065 A 3 + 00000001 00000001 0000006D A 3 + 00000001 00000001 00000180 A 4 + 00000001 00000001 0000042D A 3 + 00000001 00000001 00000435 A 3 + 00000001 00000001 0000043D A 3 + 00000001 00000001 00000445 A 3 + 00000001 00000001 0000044D A 3 + 00000001 00000001 00000455 A 3 + 00000001 00000001 0000045D A 3 + 00000001 00000001 00000465 A 3 + 00000001 00000001 0000046D A 3 + 00000001 00000001 00000475 A 3 + 00000001 00000001 0000047D A 3 + 00000001 00000001 00000485 A 3 + 00000001 00000001 0000048D A 3 + 00000001 00000001 00000495 A 3 + 00000001 00000001 0000049D A 3 + 00000001 00000001 000004A5 A 3 + 00000001 00000001 000004AD A 3 + 00000001 00000001 000004B5 A 3 + 00000001 00000001 000004BD A 3 + 00000001 00000001 000004C5 A 3 + 00000001 00000001 000004C8 A 4 + 00000001 00000001 000004DD A 3 + 00000001 00000001 0000059D A 3 + 00000001 00000001 00000E5C A 4 + 00000001 00000001 00000E90 A 4 + 00000001 00000001 000010CC A 4 + 00000001 00000001 000010D0 A 4 + 00000001 00000001 000010D4 A 4 + 00000001 00000001 000010D8 A 4 + 00000001 00000001 000010EC A 4 + 00000001 00000001 000010F0 A 4 + 00000001 00000001 000010F4 A 4 + 00000001 00000001 000010F8 A 4 + 00000001 00000001 000010FC A 4 + 00000001 00000001 00001100 A 4 + 00000001 00000001 00001104 A 4 + 00000001 00000001 00001108 A 4 + 00000001 00000001 00001118 A 4 + 00000001 00000001 0000111C A 4 + 00000001 00000001 00001120 A 4 + 00000001 00000001 00001124 A 4 + 00000001 00000001 000012B9 A 3 + 00000001 00000001 000012C1 A 3 + 00000001 00000001 000012C5 A 3 + 00000001 00000001 000012C9 A 3 + 00000001 00000001 00001638 A 4 + 00000001 00000001 00001644 A 4 + 00000001 00000001 000016F8 A 4 + 00000001 00000001 000016FC A 4 + 00000001 00000001 00001720 A 4 + 1 Relocation Dictionary Page 59 - Pos.Id Rel.Id Address Type Action HLASM R6.0 2016/08/29 08.42 0 00000001 00000001 00001724 A 4 + 00000001 00000002 0000007D A 3 + 00000003 00000001 00001815 A 3 + 00000003 00000001 00001819 A 3 + 00000003 00000001 00001821 A 3 + 1 Ordinary Symbol and Literal Cross Reference Page 60 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0ACARD 4 00000174 FFFFFFEB A A 2353 1859M ANYBACK 8 000001D0 FFFFFFEB C C 2370 1868M 2034 2038 ASEXCP 6 00001452 00000001 I 1946 1933B ASGNUNIT 4 000013DA 00000001 I 1917 1943B 1949B ASIN 4 0000143A 00000001 I 1940 1929B ASOUT 4 0000144A 00000001 I 1944 1931B CARD 80 00000084 FFFFFFEB C C 2344 1858 1888 1897 1904 1971 1973 1975 1979 1981 1985 1987 1988 CARDLDR 1 00001770 00000002 J 43 62 66U CAW 4 00000048 00000001 F F 142 74M 1369M 1481M 1561M CAWSEM 4 00000194 00000001 F F 158 1367 1479 1559 CCBCON1 4 00000C30 00000001 X X 1412 1361 1471 CCWCHAIN 8 00001810 00000002 D D 123 73 CMPEXCP 6 00001434 00000001 I 1938 1932X CMPIN 6 00001428 00000001 I 1936 1928X CMPOUT 6 0000142E 00000001 I 1937 1930X CONTINUE 4 000017FC 00000002 F F 119 96M CORE 4 000001A8 FFFFFFEB F F 2363 1865M 1916M 1951 1954 2064 COREOK 4 000013D2 00000001 I 1915 1913B COREPACK 6 00001648 00000001 I 2091 1908X COREPCKD 8 00001650 00000001 D D 2092 1909 2091M COREPKLN 4 00001658 00000001 X X 2093 1907 CORESIZ 4 00001264 00000001 A A 1817 1747 CORESIZE 1 01000000 00000001 A U 129 1817 2147 CSW 8 00000040 00000001 D D 141 106 1703 1704 1707 DIM 1 00001674 00000001 U 2117 2162 DIMAAS 4 000016C0 00000001 A A 2141 2122 DIMAS 1 00000000 FFFFFFEA J 2377 2129U 2384 DIMLEN 1 000000A0 FFFFFFEA A U 2384 2141 DIMLMS 8 00000090 FFFFFFEA C C 2381 2130M 2136 2138M DIMLOOP 4 00001696 00000001 I 2132 2139B DIMMSG 8 00000000 FFFFFFEA C C 2378 2132M 2133 2135 2136M DIMSEM 4 000016B8 00000001 F F 2140 2120 2127 DIMTEMP 8 00000098 FFFFFFEA C C 2382 2135M 2138 EIGHT 4 00001808 00000002 F F 122 89 ENBLECH0 2 000017EE 00000002 C C 115 72 ENDADATA 6 00000BFE 00000001 I 1399 1390B ENDCARD 4 0000153E 00000001 I 2013 1976B EXCPCOMP 4 00000DB4 00000001 I 1547 1551B EXCPDONE 4 00000E30 00000001 I 1581 1576B EXCPFIND 2 00000DCA 00000001 I 1553 1548B EXCPHAAS 4 00000E44 00000001 A A 1586 1527 EXCPHAS 1 00000000 FFFFFFED J 2322 1536U 2330 EXCPHM 8 00000018 FFFFFFED C C 2326 1566M 1567M 1568M 1569 EXCPHMSG 8 00000000 FFFFFFED C C 2323 1537 1568 1571 EXCPHNDL 1 00000D74 00000001 U 1521 2163 EXCPHSEM 4 00000E3C 00000001 F F 1585 1525 1532 EXCPLOOP 4 00000D92 00000001 I 1537 1542B 1583B EXCPWAIT 4 00000DF0 00000001 I 1564 1578B EXINTRPT 4 000012BC 00000001 I 1827 1834 EXPLOOP 6 0000159E 00000001 I 2044 2052B EXPNXT 2 000015B4 00000001 I 2050 2047B EXPUNGE 4 00001596 00000001 I 2041 1921B 1934B EXTHANDL 1 0000027A 00000001 U 175 146 1832 EXTHRET 4 000002A8 00000001 I 191 180B 184B 1 Ordinary Symbol and Literal Cross Reference Page 61 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0EXTNEW 1 00000058 00000001 B B 146 1741M 1781M EXTOLD 8 00000018 00000001 D D 136 179 187 192 1827 FETCHPRT 4 00001670 00000001 F F 2098 1957 FSB 1 00000000 FFFFFFFC J 2243 576U 662U 731U 740U FSBNEXT 4 00000000 FFFFFFFC A A 2244 589 590 597 665 679 680 734 735 741M FSBPTR 4 00000180 00000001 A A 155 572 573 660 661 727 728 FSBSEM 4 00000184 00000001 F F 156 570 616 658 693 FSBSIZE 4 00000004 FFFFFFFC F F 2245 585 598 669 672 677 732 742M GWINC 4 00000586 00000001 I 458 455B GWLOOP 4 00000576 00000001 I 454 460B GWRUN 6 000005A0 00000001 I 465 457B IDLE 1 00000598 00000001 B B 463 461 INSEQ 8 00001630 00000001 C C 2087 1873 IOBACK 4 00001036 00000001 I 1724 1701B IOCOMP 6 00000FD2 00000001 I 1696 1700B IODEVFND 6 00000FEC 00000001 I 1703 1697B IOHANDL 1 00000FC4 00000001 U 1690 1830 IOHSAVE 4 000001DC 00000001 F F 161 1691M 1718 1724 IOINTRPT 1 000017DA 00000002 U 105 70 150 IOINTRTN 4 000017EA 00000002 I 110 107B IONEW 1 00000078 00000001 B B 150 71M 448 1740M IONOFPR 2 00001034 00000001 I 1723 1710B IOOLD 8 00000038 00000001 D D 140 108M 109M 110 1694M 1696 1717 1725 IOWAIT 4 0000102C 00000001 I 1720 1714B IPLAPCBS 4 00001258 00000001 A A 1814 1755 IPLCL 4 00001066 00000001 I 1748 1752B IPLEXNEW 3 000012C9 00000001 R A 1834 1741 IPLLOOP 4 0000107C 00000001 I 1755 1780B IPLPCB 8 00001110 00000001 C C 1804 1742 1805 IPLRTN 1 0000103E 00000001 U 1737 133 IPLTH 2 00001076 00000001 I 1753 1749B JOB 4 00001384 00000001 I 1894 1889B JOBBIT 1 0000007A FFFFFFEF C C 2307 1323M 1337 1342M 1403M JSP 1 000012CC 00000001 U 1842 1825 JSPAAS 4 00001668 00000001 A A 2096 1847 JSPAS 1 00000000 FFFFFFEB J 2341 1852U 2375 JSPNEVER 4 00001618 00000001 F F 2083 1891 JSPSUSEM 4 00001660 00000001 F F 2095 1845 1853 KEY 4 0000018C FFFFFFEB F F 2358 1870M 1947 1955 2020 KEYTAB 1 000010DC 00000001 U 1792 1777 LENEXCPA 1 00000030 FFFFFFED A U 2330 1586 LENJSPAS 1 000001E0 FFFFFFEB A U 2375 2096 LENMSG 1 0000000C FFFFFFFA A U 2256 1073 1127 LENPCB 1 00000148 FFFFFFFF A U 2218 1595 1814 LENPRTHA 1 00000030 FFFFFFEE A U 2320 1511 LENRDRHA 1 00000080 FFFFFFEF A U 2309 1415 LINE 132 00000000 FFFFFFEB C C 2342 1863 1895M 1896M 1896 1897M 2029M 2030M 2030 2031M 2357 LOAD 4 00001462 00000001 I 1951 1919B LOADADDR 4 00001800 00000002 F F 120 76 LOADCL 4 000015CE 00000001 I 2058 2063B LOADD 4 000015E0 00000001 I 2064 2060B LOADED 1 000001DD FFFFFFEB C C 2373 1894M 1953M 2053 LOADER 8 00001770 00000001 D D 2172 49 50 52 LOADLOOP 4 00001492 00000001 I 1966 1962B 1977B 1984B 2004B LOADSK 4 00001480 00000001 I 1960 1965B 1 Ordinary Symbol and Literal Cross Reference Page 62 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0LOOP 4 00001354 00000001 I 1881 1890B 2054B 2066B MEMORY 4 0000018C 00000001 F F 157 593 688 MSG 1 00000000 FFFFFFFA J 2251 839U 1050U 1139U 1147U 2256 MSGNEXT 4 00000004 FFFFFFFA A A 2253 840 1051 1142 1143 1148M MSGSENDR 4 00000000 FFFFFFFA A A 2252 1068 1149M MSGSIZE 4 00000008 FFFFFFFA F F 2254 841 1059 1061 1072 1151M MSGTEXT 1 0000000C FFFFFFFA C C 2255 1084 1162M NEXTCARD 2 0000179C 00000002 I 80 88B NEXTTRY 4 00000274 00000001 A A 166 424M 451 465M 1744M NEXTTRYM 1 00000278 00000001 C C 167 422 425M 466M 1720M NOTALGND 6 00001520 00000001 I 2005 1992B NUMCARDS 4 00001804 00000002 F F 121 75 OUTSEQ 8 0000163C 00000001 C C 2089 1877 PAGESIZE 4 0000165C 00000001 F F 2094 1748 1865 1960 2058 PCB 1 00000000 FFFFFFFF J 2196 182U 222U 317 318 319 373U 380U 419U 453U 473U 782U 825U 830U 834U 862U 917U 920U 924U 928U 931U 936U 956U 960U 963U 966U 970U 973U 977U 1003U 1013U 1070U 1086U 1122U 1164U 1198U 1209U 1248U 1260U 1712U 1761U 1765U 1769U 2016U 2043U 2218 PCBAADDR 4 00000048 FFFFFFFF A A 2213 621M 850 PCBASIZE 4 00000044 FFFFFFFF F F 2212 620M 852 PCBBLOKT 1 00000019 FFFFFFFF C C 2203 183 383M 421M 454 785 785M 1713 2017M 2024M PCBFM 4 0000002C FFFFFFFF F F 2208 836 1049 1051M 1137 1138 PCBFSA 84 000000A0 FFFFFFFF C C 2215 318 PCBINSMC 1 0000001A FFFFFFFF C C 2204 492 494M 517 519M 1249 PCBISA 84 0000004C FFFFFFFF C C 2214 185 317 384M 468 785 1199 1715 1770 2021 2022M 2023M PCBLPALL 4 00000014 FFFFFFFF F F 2201 918M 921M 957 964M PCBLPTG 4 0000000C FFFFFFFF F F 2199 929M 932M 967 974M 1763M 1766M PCBMSA 84 000000F4 FFFFFFFF C C 2216 319 PCBMSC 8 0000001C FFFFFFFF C C 2206 1047 1135 PCBMSR 8 00000024 FFFFFFFF C C 2207 1044 1157 PCBNAME 8 00000000 FFFFFFFF C C 2197 783M 1005 1071 1235 2044 PCBNPALL 4 00000010 FFFFFFFF F F 2200 458 465 914 915M 922M 958 961M PCBNPTG 4 00000008 FFFFFFFF F F 2198 925 926M 933M 968 971M 1004 1762M 1767M 2045 PCBNSW 4 00000030 FFFFFFFF F F 2209 376 377 382M 420 PCBSES 8 0000003C FFFFFFFF C C 2211 527 PCBSRS 8 00000034 FFFFFFFF C C 2210 525 1255 PCBSTOPT 1 00000018 FFFFFFFF C C 2202 456 784M 826 1204M 1251M PCBSW 1 0000001B FFFFFFFF C C 2205 522 524M 1254M PGMHANDL 1 000002B0 00000001 U 194 148 PROGRAM 1 00000000 00000001 J 42 68U 127 2147 PROTCON1 4 00000C34 00000001 X X 1413 1348 1355 1458 1465 PROTCON2 4 00000C38 00000001 X X 1414 1351 1358 1461 1468 PRTHAAS 4 00000D68 00000001 A A 1511 1431 PRTHANDL 1 00000C48 00000001 U 1425 2090 PRTHAS 1 00000000 FFFFFFEE J 2311 1440U 2320 PRTHCCB 4 00000000 FFFFFFEE F F 2312 1441 1472M 1473M 1474M 1476M PRTHCOMM 4 00000CEC 00000001 I 1479 1475B 1507B PRTHLOOP 4 00000C6A 00000001 I 1442 1451B 1503B PRTHM 8 0000001C FFFFFFEE C C 2316 1494M 1496M 1497M 1498M 1501 PRTHMSG 8 00000008 FFFFFFEE C C 2313 1442 1455 1498 PRTHNO 6 00000D26 00000001 I 1494 1463B 1470B PRTHOK 6 00000D30 00000001 I 1496 1493B PRTHPOK 4 00000CCA 00000001 I 1471 1456B 1 Ordinary Symbol and Literal Cross Reference Page 63 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0PRTHPRIN 4 00000C92 00000001 I 1453 1448B PRTHSEM 4 00000D60 00000001 F F 1510 1429 1436 PRTHSEND 6 00000D36 00000001 I 1497 1495B PRTHSTC1 6 00000CE0 00000001 I 1476 1450B PRTHWAIT 4 00000D10 00000001 I 1488 1491B PTSTATUS 2 00000D52 00000001 I 1504 1486B QUANTUM 4 000005BC 00000001 X X 471 469 RDRHAAS 4 00000C3C 00000001 A A 1415 1313 RDRHANDL 1 00000AC6 00000001 U 1307 2088 RDRHAS 1 00000000 FFFFFFEF J 2298 1322U 2309 RDRHCCB 4 00000000 FFFFFFEF F F 2299 1324 1362M 1363M 1364M RDRHEXC 4 00000BB8 00000001 I 1383 1379B RDRHLOOP 4 00000AEC 00000001 I 1325 1330B 1398B RDRHM 8 0000006C FFFFFFEF C C 2304 1385M 1391M 1392M 1393M 1396 1399M RDRHMORE 4 00000B2E 00000001 I 1345 1338B RDRHMSG 8 00000008 FFFFFFEF C C 2300 1325 1335 1345 1387 1393 RDRHNO 6 00000BC0 00000001 I 1385 1340B 1353B 1360B RDRHOK 4 00000BCA 00000001 I 1387 1382B RDRHPOK 4 00000B60 00000001 I 1361 1346B 1381B 1408B RDRHSEM 4 00000C28 00000001 F F 1411 1311 1318 RDRHSEND 6 00000BE2 00000001 I 1392 1386B 1404B RDRHSOK 6 00000BDC 00000001 I 1391 1343B 1388B RDRHTEMP 80 0000001C FFFFFFEF C C 2303 1341 1400M RDRHWAIT 4 00000B96 00000001 I 1374 1377B 1384B RDSTATUS 2 00000C1C 00000001 I 1405 1372B READ 1 000017F0 00000002 X X 116 81 REGS 1 00000000 FFFFFFFD J 2225 1773U REG3 4 0000000C FFFFFFFD F F 2229 1776M REG4 4 00000010 FFFFFFFD F F 2230 1777M REPLY 132 000000E0 FFFFFFEB C C 2348 1886 RETURN 1 000004D8 00000001 B B 328 369 416 426 470 495 529 623 696 743 788 859 935 976 1011 1082 1160 1205 1253 RETURNR 1 000004E0 00000001 U 330 328 RLDCARD 4 000014E0 00000001 I 1987 1974B RLDCONT 4 00001500 00000001 I 1996 2011B RLDFINI 2 00001514 00000001 I 2001 1999B RLDLOOP 4 000014E8 00000001 I 1989 2003B RLDTEMP 4 000001B4 FFFFFFEB F F 2366 1869M 2005M 2006 2008M 2009 2010M RREPLY 8 000000D4 FFFFFFEB C C 2346 1884 1900 1969 RREPLY1 4 000000DC FFFFFFEB F F 2347 1883M 1968M RUNNING 4 00000270 00000001 A A 165 181 221 381 467M 1711 1743M 2041 2051 R11 1 0000000B 00000001 A U 2185 67M 68U 111D R12 1 0000000C 00000001 A U 2186 63M 65M 66U 111D R2 1 00000002 00000001 A U 2176 64M 65 69M 71 80M 81M 82 83M 84 95M 96 R3 1 00000003 00000001 A U 2177 70M 71 75M 88M R4 1 00000004 00000001 A U 2178 76M 80 86M 86 R5 1 00000005 00000001 A U 2179 73M 74 82 84 85 87M 87 89M 90 SA 1 00000000 FFFFFFFE J 2220 186U 230U 1200U 1201 1203 1208U 1716U 1771U SAPSW 8 00000000 FFFFFFFE D D 2221 187M 231M 331 1201M 1201 1202M 1717M SAREGS 64 00000008 FFFFFFFE C C 2222 188M 232M 332 1203M 1203 1718M 1772 SATEMP 12 00000048 FFFFFFFE C C 2223 599 682 768 817 833 854 1115 1190 1239 SCAN 2 000015EA 00000001 I 2068 1905B 1917B 1927B SCANLOOP 4 000015EC 00000001 I 2069 2077B SEQ 8 0000019C FFFFFFEB C C 2361 1922 1923M 1926 1935M 2042 2044M 2046 1 Ordinary Symbol and Literal Cross Reference Page 64 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0SETDIM 6 0000143E 00000001 I 1941 1945B SHORT 4 00001510 00000001 I 2000 1997B SKIP 8 00001620 00000001 C C 2084 1861 2036 SM 1 00000000 FFFFFFFB J 2247 363U 411U 687U SMPTR 4 00000004 FFFFFFFB F F 2249 370 371 417 420M SMVAL 4 00000000 FFFFFFFB F F 2248 364 366M 412 414M 690 SOSEXNEW 3 000012C5 00000001 R A 1832 1781 SOSIONEW 3 000012C1 00000001 R A 1830 1740 STOP 4 0000137E 00000001 I 1891 1887B STREAMS 4 000010C8 00000001 F F 1784 1754 SVCCONST 4 00000314 00000001 F F 241 215 SVCHANDL 1 000002B2 00000001 U 211 147 SVCHPROT 4 00000302 00000001 I 235 220B SVCHTABL 1 00000328 00000001 X X 243 217 244 246 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 278 280 282 284 SVCOK 4 000002D0 00000001 I 221 237B 239B SVCOLD 8 00000020 00000001 D D 137 216 228 231 235 331M 333 SVCRTN 8 00000428 00000001 D D 286 218 238 SVCSAVE 4 000004C8 00000001 F F 315 227 SVCXPER 4 000002FA 00000001 I 233 229B SYSSEM 4 000002DE 00000001 I 226 224B SYSSEMSA 84 0000021C 00000001 C C 163 316 384 TALK 8 000001B8 FFFFFFEB C C 2367 1866M 1867M 2026 2031 TEMPLATE 4 00001280 00000001 X X 1822 785 TIMER 4 00000050 00000001 F F 144 469M TOKSTART 2 00001610 00000001 I 2078 2071B 2073B 2075B TRAPSAVE 4 0000019C 00000001 F F 160 176M 188 191 212M 232 TREAD 4 00000164 FFFFFFEB F F 2349 1855M 1856M 1857M 1881 1966 TXTCARD 4 000014C6 00000001 I 1979 1972B TXTMOV 6 000014DA 00000001 I 1985 1983X TYPLEN 1 00000054 00000001 A U 1826 1759 TYPPCB 8 00001268 00000001 C C 1820 1759 1826 UCB 1 00000000 FFFFFFEC J 2332 1308U 1426U 1522U 1702U 2339 UCBADDR 4 00000000 FFFFFFEC F F 2333 1370 1484 UCBCSW 8 00000014 FFFFFFEC G F 2336 1365M 1366M 1376 1378 1380 1383M 1482M 1483M 1490 1492 1557M 1558M 1566 1703M 1705 1706M 1707M UCBFPR 1 0000001C FFFFFFEC C C 2337 1709 UCBLENG 1 00000020 FFFFFFEC A U 2339 1549 1698 UCBLP1 4 000010EC 00000001 A A 1798 1787 UCBLP2 4 000010F4 00000001 A A 1799 1788 UCBLP3 4 000010FC 00000001 A A 1800 1789 UCBLP4 4 00001104 00000001 A A 1801 1790 UCBPRT1 4 00000EC4 00000001 X X 1627 1798 UCBPRT2 4 00000F04 00000001 X X 1641 1799 UCBPRT3 4 00000F44 00000001 X X 1655 1800 UCBPRT4 4 00000F84 00000001 X X 1669 1801 UCBRDR1 4 00000EA4 00000001 X X 1620 1798 UCBRDR2 4 00000EE4 00000001 X X 1634 1799 UCBRDR3 4 00000F24 00000001 X X 1648 1800 UCBRDR4 4 00000F64 00000001 X X 1662 1801 UCBTAB 1 000010CC 00000001 U 1786 1774 1777 UCBTABLE 4 00000EA4 00000001 F F 1618 1546 2152 UCBTBEND 1 00000FC4 00000001 U 1682 1606 2153 UCBUS 8 00000004 FFFFFFEC G F 2334 1333 1394 1453 1477 1499 1554 1581 1 Ordinary Symbol and Literal Cross Reference Page 65 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0UCBWS 8 0000000C FFFFFFEC G F 2335 1374 1406 1488 1505 1564 1708 UNAMMOV 6 00001422 00000001 I 1935 1924X UNITRTN 4 000001A4 FFFFFFEB A A 2362 1941M 1946M USERL 8 00000190 FFFFFFEB C C 2359 1860M 1902 2013 2015 2018M VERYEND 8 00001740 00000001 D D 2171 155 1745M 2147 WAITPSWD 4 000017F8 00000002 X X 118 97 WRITE 8 00000178 FFFFFFEB C C 2354 1861M 1862M 1864M 1898 2032 XA 1 00000600 00000001 U 557 299 565U 1593 XABACK 2 000006B0 00000001 I 622 619B XACOM 2 0000060E 00000001 I 566 560B XAFOUND 4 00000662 00000001 I 596 588B XALOOP 2 0000062A 00000001 I 577 591B XANF 2 00000686 00000001 I 607 603B XARETURN 4 0000069C 00000001 I 616 611B XATOP 4 00000616 00000001 I 570 595B XAUTO 1 00000608 00000001 U 561 313 XAWAIT 2 00000656 00000001 I 592 578B XAX 1 00000000 FFFFFFF9 J 2258 568U 776U 1124U 1314U 1432U 1528U 1756U 1848U 2123U XAXADDR 4 00000004 FFFFFFF9 F F 2260 596M 780 1133 1316 1434 1530 1758 1850 2125 XAXALGN 4 00000008 FFFFFFF9 F F 2261 574 778M 1131M XAXSIZE 4 00000000 FFFFFFF9 F F 2259 569 777M 1130M XB 1 00000744 00000001 U 722 298 XBINSERT 4 00000770 00000001 I 738 730B 733B XBLOOP 4 0000075A 00000001 I 732 737B XBX 1 00000000 FFFFFFF7 J 2267 600U 683U 724U XBXADDR 4 00000004 FFFFFFF7 F F 2269 604M 612M 685M 726 XBXSIZE 4 00000000 FFFFFFF7 F F 2268 605M 613M 684M 725 XC 1 00000780 00000001 U 764 306 XCERR 2 000007C4 00000001 I 789 773B XCOM 1 000005D2 00000001 U 514 297 XCOMRET 4 000005FC 00000001 I 529 521B 523B XCX 1 00000000 FFFFFFF6 J 2271 767U XCXNAME 8 00000000 FFFFFFF6 C C 2272 770 783 XD 1 000007C6 00000001 U 813 310 XDCHECK 6 0000081A 00000001 I 850 838B XDERR 2 00000840 00000001 I 860 824B 827B XDLOOP 2 000007F4 00000001 I 837 849B XDTHEN 4 0000082E 00000001 I 855 851B XDX 1 00000000 FFFFFFF5 J 2274 816U XDXNAME 8 00000000 FFFFFFF5 C C 2275 819 XEXC 1 000005C0 00000001 U 489 296 XF 1 000006B6 00000001 U 649 300 XFBACKUP 2 00000706 00000001 I 678 670B XFINC 4 00000708 00000001 I 679 674B XFLINK 4 00000714 00000001 I 682 664B XFLOOP 2 000006D4 00000001 I 663 681B XFTHEN 2 000006F0 00000001 I 671 667B XFVDO 2 0000073E 00000001 I 697 692B XFVLOOP 4 0000072E 00000001 I 692 698B XFX 1 00000000 FFFFFFF8 J 2263 653U 844U 1077U XFXADDR 4 00000004 FFFFFFF8 F F 2265 655 845M 855M 1078M XFXSIZE 4 00000000 FFFFFFF8 F F 2264 654 846M 856M 1079M XH 1 00000842 00000001 U 882 312 XHLOOP 4 00000848 00000001 I 886 888B XHMSG1 8 00000854 00000001 C C 890 884 1 Ordinary Symbol and Literal Cross Reference Page 66 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0XHMSG2 8 0000086C 00000001 C C 893 886 XI 1 0000087A 00000001 U 912 301 XJ 1 000008A6 00000001 U 953 302 XN 1 000008CA 00000001 U 998 307 XNX 1 00000000 FFFFFFF4 J 2277 769U 818U 1000U 1116U 1191U 1240U XNXADDR 4 00000008 FFFFFFF4 A A 2279 772 821 1010M 1119 1194 1243 XNXFOUND 4 000008E4 00000001 I 1010 1006B XNXLOOP 4 000008CC 00000001 I 1004 1008B XNXNAME 8 00000000 FFFFFFF4 C C 2278 770M 819M 1005 1117M 1192M 1241M XP 1 000004EE 00000001 U 361 294 XPER 1 0000056A 00000001 U 447 189B 303 385B 463 XPLOOP 2 0000050A 00000001 I 374 378B XPTHEN 6 0000051C 00000001 I 381 375B XPWAIT 4 00000502 00000001 I 370 368B XQUE 1 00000A8E 00000001 U 1279 311 XQUELOOP 4 00000A94 00000001 I 1283 1285B XQUEM1 8 00000AA0 00000001 C C 1287 1281 XQUEM2 8 00000AB8 00000001 C C 1290 1283 XR 1 000008EC 00000001 U 1040 304 XRAFT 4 00000938 00000001 I 1066 1064B XRFILL 6 0000096C 00000001 I 1083 1057X XRMOVE 6 00000972 00000001 I 1084 1065X XRNOB 4 0000091C 00000001 I 1058 1056B XRTHEN 2 0000092E 00000001 I 1063 1060B XRX 1 00000000 FFFFFFF3 J 2281 1043U 1326U 1336U 1443U 1538U 1572U XRXNAME 8 00000000 FFFFFFF3 C C 2282 1071M 1339 XRXSIZE 4 00000008 FFFFFFF3 F F 2283 1053 1067M 1327M 1444M 1539M 1573M XRXTEXT 1 0000000C FFFFFFF3 C C 2284 1055M 1083M 1083 1084M 1329 1331 1446 1447 1449 1541 1543 1544 1575 1577 XS 1 00000978 00000001 U 1111 305 XSADD 4 000009D2 00000001 I 1145 1141B XSAFT 2 000009F4 00000001 I 1156 1154B XSERR 2 00000A02 00000001 I 1161 1121B XSLOOP 2 000009C0 00000001 I 1140 1144B XSMOVE 6 00000A04 00000001 I 1162 1155X XSX 1 00000000 FFFFFFF2 J 2286 1114U XSXNAME 8 00000000 FFFFFFF2 C C 2287 1117 XSXSIZE 4 00000008 FFFFFFF2 F F 2288 1126 1150 XSXTEXT 1 0000000C FFFFFFF2 C C 2289 1162 XV 1 00000534 00000001 U 409 295 XVRET 4 00000566 00000001 I 426 423B XVWAKEUP 4 00000548 00000001 I 417 415B XY 1 00000A0A 00000001 U 1186 308 XYERR 2 00000A40 00000001 I 1206 1196B XYX 1 00000000 FFFFFFF1 J 2291 1189U XYXADDR 4 00000008 FFFFFFF1 A A 2293 1202 XYXNAME 8 00000000 FFFFFFF1 C C 2292 1192 XZ 1 00000A42 00000001 U 1231 309 XZERR 2 00000A8C 00000001 I 1258 1238B 1245B XZFINE 4 00000A54 00000001 I 1239 1236B XZINSMC 4 00000A7E 00000001 I 1254 1250B XZSTOP 4 00000A6C 00000001 I 1249 1257B XZX 1 00000000 FFFFFFF0 J 2295 1234U XZXNAME 8 00000000 FFFFFFF0 C C 2296 1237 1241 =A(DIM) 4 00001720 00000001 A 2162 1941 1 Ordinary Symbol and Literal Cross Reference Page 67 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0=A(EXCPHNDL) 4 00001724 00000001 A 2163 1946 =A(LENPCB) 4 00000E64 00000001 A 1595 777 856 =A(UCBTABLE) 4 000016F8 00000001 A 2152 1695 =A(UCBTBEND) 4 00000E90 00000001 A 1606 1550 =A(UCBTBEND) 4 000016FC 00000001 A 2153 1699 =A(XA) 4 00000E5C 00000001 A 1593 564 =A(0) 4 00000E60 00000001 A 1594 772 850 1148 1365 1366 1482 1483 1557 1558 =A(0) 4 00001714 00000001 A 2159 1869 =A(0,CORESIZE-(VERYEND-PROGRAM)) 4 000016D0 00000001 A 2147 1745 =C'$JOB,' 5 00000E98 00000001 C 1609 1389 =C'$JOB,' 5 0000172A 00000001 C 2165 1888 =C'AGAIN' 5 00000E9D 00000001 C 1610 1577 =C'END' 3 0000173D 00000001 C 2170 1975 =C'EXCP ' 5 00001732 00000001 C 2167 1938 =C'EXCP' 4 00000E8C 00000001 C 1605 1541 =C'IN ' 3 0000172F 00000001 C 2166 1936 =C'NO' 2 00000E94 00000001 C 1607 1385 1399 1494 =C'OK' 2 00000E96 00000001 C 1608 1391 1496 1575 =C'OK' 2 00001728 00000001 C 2164 1886 =C'OUT ' 4 0000171C 00000001 C 2161 1937 =C'PRIN' 4 00000E7C 00000001 C 1601 1447 =C'PRIN' 4 00001708 00000001 C 2156 1862 =C'READ' 4 00000E74 00000001 C 1599 1329 =C'READ' 4 00001704 00000001 C 2155 1857 =C'RLD' 3 0000173A 00000001 C 2169 1973 =C'STC1' 4 00000E80 00000001 C 1602 1449 =C'TXT' 3 00001737 00000001 C 2168 1971 =CL8' ' 8 000016E8 00000001 C 2150 1895 1923 2029 =CL8'*IN' 8 000016D8 00000001 C 2148 1855 1940 =CL8'*OUT' 8 000016F0 00000001 C 2151 1944 =CL8'USERPROG' 8 000016E0 00000001 C 2149 1860 1866 =F'-8' 4 00000E6C 00000001 F 1597 843 1075 1129 =F'1' 4 00000E58 00000001 F 1592 413 =F'1' 4 00001710 00000001 F 2158 1868 =F'12' 4 00000E88 00000001 F 1604 1539 1567 =F'12' 4 0000170C 00000001 F 2157 1867 =F'132' 4 00000E84 00000001 F 1603 1474 =F'132' 4 00001718 00000001 F 2160 1883 1968 =F'2' 4 00000E70 00000001 F 1598 1054 1392 1497 =F'8' 4 00000E68 00000001 F 1596 778 1131 1327 1444 1573 =F'8' 4 00001700 00000001 F 2154 1856 =F'80' 4 00000E78 00000001 F 1600 1364 1 Ordinary Symbol and Literal Cross Reference Page 68 -Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 08.42 0=X'8900000020000001' 8 00000E50 00000001 X 1591 1476 1 Unreferenced Symbols Defined in CSECTs Page 69 - Defn Symbol HLASM R6.0 2016/08/29 08.42 0 50 CCW1 52 CCW2 47 IPLCARD 134 IPLCCW1 135 IPLCCW2 133 IPLPSW 149 MCHKNEW 139 MCHKOLD 148 PGMNEW 138 PGMOLD 48 PSWD 2174 R0 2175 R1 2184 R10 2187 R13 2188 R14 2189 R15 2180 R6 2181 R7 2182 R8 2183 R9 147 SVCNEW 1676 UCBCONS1 143 UNUSED0 145 UNUSED1 1 Dsect Cross Reference Page 70 -Dsect Length Id Defn HLASM R6.0 2016/08/29 08.42 0DIMAS 000000A0 FFFFFFEA 2377 EXCPHAS 00000030 FFFFFFED 2322 FSB 00000008 FFFFFFFC 2243 JSPAS 000001E0 FFFFFFEB 2341 MSG 0000000C FFFFFFFA 2251 PCB 00000148 FFFFFFFF 2196 PRTHAS 00000030 FFFFFFEE 2311 RDRHAS 00000080 FFFFFFEF 2298 REGS 00000040 FFFFFFFD 2225 SA 00000054 FFFFFFFE 2220 SM 00000008 FFFFFFFB 2247 UCB 00000020 FFFFFFEC 2332 XAX 0000000C FFFFFFF9 2258 XBX 00000008 FFFFFFF7 2267 XCX 00000008 FFFFFFF6 2271 XDX 00000008 FFFFFFF5 2274 XFX 00000008 FFFFFFF8 2263 XNX 0000000C FFFFFFF4 2277 XRX 0000000C FFFFFFF3 2281 XSX 0000000C FFFFFFF2 2286 XYX 0000000C FFFFFFF1 2291 XZX 00000008 FFFFFFF0 2295 1 Using Map Page 71 - HLASM R6.0 2016/08/29 08.42 Stmt -----Location----- Action ----------------Using----------------- Reg Max Last Label and Using Text Count Id Type Value Range Id Disp Stmt 0 66 00001778 00000002 USING ORDINARY 00001770 00001000 00000002 12 000A0 107 CARDLDR,R12 68 0000177C 00000002 USING ORDINARY 00000000 00001000 00000001 11 00078 110 PROGRAM,R11 111 000017EE 00000002 DROP 11 R11 111 000017EE 00000002 DROP 12 R12 131 00000000 00000001 USING ORDINARY 00000000 00001000 00000001 0 00C38 2051 *,0 178 00000280 00000001 USING ORDINARY 00000280 00001000 00000001 1 002EA 189 *,1 182 0000028C 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 0004C 185 PCB,15 186 00000298 00000001 USING ORDINARY 00000000 00001000 FFFFFFFE 14 00008 188 SA,14 190 000002A8 00000001 DROP 14 14 190 000002A8 00000001 DROP 15 15 214 000002B8 00000001 USING ORDINARY 000002B8 00001000 00000001 9 00210 239 *,9 222 000002D4 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 PCB,15 230 000002EE 00000001 USING ORDINARY 00000000 00001000 FFFFFFFE 14 00048 1190 SA,14 240 00000314 00000001 DROP 9 9 362 000004EE 00000001 USING ORDINARY 000004EE 00001000 00000001 1 0007C 385 *,1 363 000004EE 00000001 USING ORDINARY 00000000 00001000 FFFFFFFB 2 00004 371 SM,2 372 0000050A 00000001 DROP 15 15 373 0000050A 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 5 00030 377 PCB,5 379 0000051C 00000001 DROP 5 5 380 0000051C 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 0004C 384 PCB,15 386 00000534 00000001 DROP 2 2 410 00000534 00000001 USING ORDINARY 00000534 00001000 00000001 1 00924 423 *,1 411 00000534 00000001 USING ORDINARY 00000000 00001000 FFFFFFFB 2 00004 420 SM,2 418 0000054C 00000001 DROP 15 15 419 0000054C 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 4 00030 421 PCB,4 427 0000056A 00000001 DROP 2 2 427 0000056A 00000001 DROP 4 4 450 00000570 00000001 USING ORDINARY 00000570 00001000 00000001 1 0004C 469 *,1 453 00000576 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 0004C 468 PCB,10 472 000005C0 00000001 DROP 10 10 473 000005C0 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00048 621 PCB,15 490 000005C0 00000001 USING ORDINARY 000005C0 00001000 00000001 1 00000 *,1 515 000005D2 00000001 USING ORDINARY 000005D2 00001000 00000001 1 0002A 523 *,1 558 00000600 00000001 USING ORDINARY 00000600 00001000 00000001 1 0000E 560 *,1 562 00000608 00000001 USING ORDINARY 00000608 00001000 00000001 1 00854 564 *,1 565 0000060E 00000001 USING ORDINARY 00000600 00001000 00000001 1 000B0 619 XA,1 568 00000612 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 7 00008 596 XAX,7 576 0000062A 00000001 USING ORDINARY 00000000 00001000 FFFFFFFC 4 00004 598 FSB,4 600 00000674 00000001 USING ORDINARY 00000000 00001000 FFFFFFF7 2 00004 613 XBX,2 615 0000069C 00000001 DROP 2 2 624 000006B6 00000001 DROP 4 4 624 000006B6 00000001 DROP 7 7 650 000006B6 00000001 USING ORDINARY 000006B6 00001000 00000001 1 00088 698 *,1 653 000006BA 00000001 USING ORDINARY 00000000 00001000 FFFFFFF8 7 00004 655 XFX,7 662 000006D4 00000001 USING ORDINARY 00000000 00001000 FFFFFFFC 6 00004 680 FSB,6 683 00000718 00000001 USING ORDINARY 00000000 00001000 FFFFFFF7 2 00004 685 XBX,2 687 00000722 00000001 USING ORDINARY 00000000 00001000 FFFFFFFB 2 00000 690 SM,2 691 0000072E 00000001 DROP 2 2 699 00000744 00000001 DROP 6 6 699 00000744 00000001 DROP 7 7 723 00000744 00000001 USING ORDINARY 00000744 00001000 00000001 1 0002C 737 *,1 724 00000744 00000001 USING ORDINARY 00000000 00001000 FFFFFFF7 2 00004 726 XBX,2 731 0000075A 00000001 USING ORDINARY 00000000 00001000 FFFFFFFC 6 00004 735 FSB,6 1 Using Map Page 72 - HLASM R6.0 2016/08/29 08.42 Stmt -----Location----- Action ----------------Using----------------- Reg Max Last Label and Using Text Count Id Type Value Range Id Disp Stmt 0 739 00000774 00000001 DROP 6 6 740 00000774 00000001 USING ORDINARY 00000000 00001000 FFFFFFFC 4 00004 742 FSB,4 744 00000780 00000001 DROP 2 2 744 00000780 00000001 DROP 4 4 765 00000780 00000001 USING ORDINARY 00000780 00001000 00000001 1 00B01 785 *,1 767 00000782 00000001 USING ORDINARY 00000000 00001000 FFFFFFF6 7 00000 783 XCX,7 769 00000786 00000001 USING ORDINARY 00000000 00001000 FFFFFFF4 2 00008 772 XNX,2 775 0000079A 00000001 DROP 2 2 776 0000079A 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00008 780 XAX,2 781 000007AC 00000001 DROP 2 2 781 000007AC 00000001 DROP 15 15 782 000007AC 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 00019 785 PCB,2 790 000007C6 00000001 DROP 2 2 790 000007C6 00000001 DROP 7 7 814 000007C6 00000001 USING ORDINARY 000007C6 00001000 00000001 1 006A6 856 *,1 816 000007C8 00000001 USING ORDINARY 00000000 00001000 FFFFFFF5 7 00000 819 XDX,7 818 000007CC 00000001 USING ORDINARY 00000000 00001000 FFFFFFF4 2 00008 821 XNX,2 822 000007D8 00000001 DROP 2 2 825 000007DE 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 00018 826 PCB,2 829 000007E8 00000001 DROP 2 2 830 000007E8 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 PCB,15 834 000007F0 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 8 00048 852 PCB,8 835 000007F0 00000001 DROP 15 15 839 000007FA 00000001 USING ORDINARY 00000000 00001000 FFFFFFFA 9 00008 841 MSG,9 844 0000080A 00000001 USING ORDINARY 00000000 00001000 FFFFFFF8 2 00004 856 XFX,2 861 00000842 00000001 DROP 2 2 861 00000842 00000001 DROP 7 7 861 00000842 00000001 DROP 8 8 861 00000842 00000001 DROP 9 9 862 00000842 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00010 915 PCB,15 883 00000842 00000001 USING ORDINARY 00000842 00001000 00000001 1 0002A 888 *,1 913 0000087A 00000001 USING ORDINARY 0000087A 00001000 00000001 1 00000 *,1 916 00000882 00000001 DROP 15 15 917 00000882 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 00014 918 PCB,10 919 00000886 00000001 DROP 10 10 920 00000886 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 00014 922 PCB,2 923 0000088E 00000001 DROP 2 2 924 0000088E 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00008 926 PCB,15 927 00000896 00000001 DROP 15 15 928 00000896 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 0000C 929 PCB,10 930 0000089A 00000001 DROP 10 10 931 0000089A 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 0000C 933 PCB,2 934 000008A2 00000001 DROP 2 2 936 000008A6 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 PCB,15 954 000008A6 00000001 USING ORDINARY 000008A6 00001000 00000001 1 00000 *,1 955 000008A6 00000001 DROP 15 15 956 000008A6 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 00014 958 PCB,2 959 000008AE 00000001 DROP 2 2 960 000008AE 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 11 00010 961 PCB,11 962 000008B2 00000001 DROP 11 11 963 000008B2 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 00014 964 PCB,10 965 000008B6 00000001 DROP 10 10 966 000008B6 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 0000C 968 PCB,2 1 Using Map Page 73 - HLASM R6.0 2016/08/29 08.42 Stmt -----Location----- Action ----------------Using----------------- Reg Max Last Label and Using Text Count Id Type Value Range Id Disp Stmt 0 969 000008BE 00000001 DROP 2 2 970 000008BE 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 11 00008 971 PCB,11 972 000008C2 00000001 DROP 11 11 973 000008C2 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 0000C 974 PCB,10 975 000008C6 00000001 DROP 10 10 977 000008CA 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 PCB,15 999 000008CA 00000001 USING ORDINARY 000008CA 00001000 00000001 1 0001A 1008 *,1 1000 000008CA 00000001 USING ORDINARY 00000000 00001000 FFFFFFF4 2 00008 1010 XNX,2 1002 000008CC 00000001 DROP 15 15 1003 000008CC 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 00008 1005 PCB,10 1012 000008EC 00000001 DROP 2 2 1012 000008EC 00000001 DROP 10 10 1013 000008EC 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 0002C 1051 PCB,15 1041 000008EC 00000001 USING ORDINARY 000008EC 00001000 00000001 1 00584 1075 *,1 1043 000008EE 00000001 USING ORDINARY 00000000 00001000 FFFFFFF3 7 0000D 1084 XRX,7 1050 00000900 00000001 USING ORDINARY 00000000 00001000 FFFFFFFA 5 0000C 1084 MSG,5 1069 00000944 00000001 DROP 15 15 1070 00000944 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 00000 1071 PCB,10 1077 0000095C 00000001 USING ORDINARY 00000000 00001000 FFFFFFF8 2 00004 1079 XFX,2 1085 00000978 00000001 DROP 2 2 1085 00000978 00000001 DROP 5 5 1085 00000978 00000001 DROP 7 7 1085 00000978 00000001 DROP 10 10 1086 00000978 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 PCB,15 1112 00000978 00000001 USING ORDINARY 00000978 00001000 00000001 1 004F4 1155 *,1 1114 0000097A 00000001 USING ORDINARY 00000000 00001000 FFFFFFF2 7 0000C 1162 XSX,7 1116 0000097E 00000001 USING ORDINARY 00000000 00001000 FFFFFFF4 2 00008 1119 XNX,2 1122 00000990 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 4 0002C 1157 PCB,4 1123 00000990 00000001 DROP 2 2 1123 00000990 00000001 DROP 15 15 1124 00000990 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00008 1133 XAX,2 1134 000009B2 00000001 DROP 2 2 1139 000009C0 00000001 USING ORDINARY 00000000 00001000 FFFFFFFA 9 00004 1143 MSG,9 1146 000009D6 00000001 DROP 9 9 1147 000009D6 00000001 USING ORDINARY 00000000 00001000 FFFFFFFA 5 0000C 1162 MSG,5 1163 00000A0A 00000001 DROP 4 4 1163 00000A0A 00000001 DROP 5 5 1163 00000A0A 00000001 DROP 7 7 1164 00000A0A 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 PCB,15 1187 00000A0A 00000001 USING ORDINARY 00000A0A 00001000 00000001 1 00036 1196 *,1 1189 00000A0C 00000001 USING ORDINARY 00000000 00001000 FFFFFFF1 7 00009 1202 XYX,7 1191 00000A10 00000001 USING ORDINARY 00000000 00001000 FFFFFFF4 2 00008 1194 XNX,2 1197 00000A22 00000001 DROP 2 2 1197 00000A22 00000001 DROP 14 14 1197 00000A22 00000001 DROP 15 15 1198 00000A22 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 0004C 1204 PCB,10 1200 00000A26 00000001 USING ORDINARY 00000000 00001000 FFFFFFFE 13 00008 1203 SA,13 1207 00000A42 00000001 DROP 7 7 1207 00000A42 00000001 DROP 10 10 1207 00000A42 00000001 DROP 13 13 1208 00000A42 00000001 USING ORDINARY 00000000 00001000 FFFFFFFE 14 00048 1239 SA,14 1209 00000A42 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 1235 PCB,15 1232 00000A42 00000001 USING ORDINARY 00000A42 00001000 00000001 1 0004A 1257 *,1 1 Using Map Page 74 - HLASM R6.0 2016/08/29 08.42 Stmt -----Location----- Action ----------------Using----------------- Reg Max Last Label and Using Text Count Id Type Value Range Id Disp Stmt 0 1234 00000A44 00000001 USING ORDINARY 00000000 00001000 FFFFFFF0 7 00000 1241 XZX,7 1240 00000A58 00000001 USING ORDINARY 00000000 00001000 FFFFFFF4 2 00008 1243 XNX,2 1247 00000A6C 00000001 DROP 2 2 1247 00000A6C 00000001 DROP 15 15 1248 00000A6C 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 10 00034 1255 PCB,10 1259 00000A8E 00000001 DROP 10 10 1259 00000A8E 00000001 DROP 7 7 1260 00000A8E 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 00000 PCB,15 1280 00000A8E 00000001 USING ORDINARY 00000A8E 00001000 00000001 1 0002A 1285 *,1 1293 00000AC6 00000001 DROP 14 14 1293 00000AC6 00000001 DROP 15 15 1308 00000AC6 00000001 USING ORDINARY 00000000 00001000 FFFFFFEC 3 00018 1406 UCB,3 1310 00000AC8 00000001 USING ORDINARY 00000AC8 00001000 00000001 1 003D0 1408 *,1 1314 00000AD2 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00004 1316 XAX,2 1317 00000AD8 00000001 DROP 2 2 1322 00000AE4 00000001 USING ORDINARY 00000000 00001000 FFFFFFEF 12 0007A 1403 RDRHAS,12 1326 00000AF0 00000001 USING ORDINARY 00000000 00001000 FFFFFFF3 2 00010 1331 XRX,2 1332 00000B06 00000001 DROP 2 2 1336 00000B10 00000001 USING ORDINARY 00000000 00001000 FFFFFFF3 2 00000 1339 XRX,2 1344 00000B2E 00000001 DROP 2 2 1409 00000C28 00000001 DROP 3 3 1409 00000C28 00000001 DROP 12 12 1426 00000C48 00000001 USING ORDINARY 00000000 00001000 FFFFFFEC 3 00018 1505 UCB,3 1428 00000C4A 00000001 USING ORDINARY 00000C4A 00001000 00000001 1 0024C 1507 *,1 1432 00000C54 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00004 1434 XAX,2 1435 00000C5A 00000001 DROP 2 2 1440 00000C66 00000001 USING ORDINARY 00000000 00001000 FFFFFFEE 12 00028 1501 PRTHAS,12 1443 00000C6E 00000001 USING ORDINARY 00000000 00001000 FFFFFFF3 2 00010 1449 XRX,2 1452 00000C92 00000001 DROP 2 2 1508 00000D5E 00000001 DROP 3 3 1508 00000D5E 00000001 DROP 12 12 1522 00000D74 00000001 USING ORDINARY 00000000 00001000 FFFFFFEC 3 00018 1581 UCB,3 1524 00000D76 00000001 USING ORDINARY 00000D76 00001000 00000001 1 0012E 1583 *,1 1528 00000D80 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00004 1530 XAX,2 1531 00000D86 00000001 DROP 2 2 1536 00000D92 00000001 USING ORDINARY 00000000 00001000 FFFFFFED 12 00024 1571 EXCPHAS,12 1538 00000D96 00000001 USING ORDINARY 00000000 00001000 FFFFFFF3 2 00014 1544 XRX,2 1545 00000DB0 00000001 DROP 2 2 1572 00000E12 00000001 USING ORDINARY 00000000 00001000 FFFFFFF3 2 0000C 1577 XRX,2 1580 00000E30 00000001 DROP 2 2 1584 00000E3A 00000001 DROP 3 3 1584 00000E3A 00000001 DROP 12 12 1693 00000FCA 00000001 USING ORDINARY 00000FCA 00001000 00000001 1 00732 1714 *,1 1702 00000FEC 00000001 USING ORDINARY 00000000 00001000 FFFFFFEC 6 0001C 1709 UCB,6 1712 00001014 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 0004C 1715 PCB,15 1716 00001020 00000001 USING ORDINARY 00000000 00001000 FFFFFFFE 13 00008 1718 SA,13 1719 0000102C 00000001 DROP 13 13 1719 0000102C 00000001 DROP 15 15 1726 0000103E 00000001 DROP 1 1 1726 0000103E 00000001 DROP 6 6 1739 00001040 00000001 USING ORDINARY 00001040 00001000 00000001 1 00700 1781 *,1 1756 00001080 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00004 1758 XAX,2 1761 0000108E 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 0000C 1763 PCB,2 1 Using Map Page 75 - HLASM R6.0 2016/08/29 08.42 Stmt -----Location----- Action ----------------Using----------------- Reg Max Last Label and Using Text Count Id Type Value Range Id Disp Stmt 0 1764 00001096 00000001 DROP 2 2 1765 00001096 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 15 0000C 1767 PCB,15 1768 0000109E 00000001 DROP 15 15 1769 0000109E 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 2 0004C 1770 PCB,2 1771 000010A2 00000001 USING ORDINARY 00000000 00001000 FFFFFFFE 8 00008 1772 SA,8 1773 000010A6 00000001 USING ORDINARY 00000000 00001000 FFFFFFFD 9 00010 1777 REGS,9 1778 000010B8 00000001 DROP 9 9 1844 000012CE 00000001 USING ORDINARY 000012CE 00001000 00000001 1 0046F 2091 *,1 1848 000012D8 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00004 1850 XAX,2 1851 000012DE 00000001 DROP 2 2 1852 000012DE 00000001 USING ORDINARY 00000000 00001000 FFFFFFEB 12 001DD 2064 JSPAS,12 2016 00001548 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 4 0004D 2024 PCB,4 2025 00001566 00000001 DROP 4 4 2043 0000159E 00000001 USING ORDINARY 00000000 00001000 FFFFFFFF 5 00008 2045 PCB,5 2119 00001676 00000001 USING ORDINARY 00001676 00001000 00000001 1 0004A 2139 *,1 2123 00001680 00000001 USING ORDINARY 00000000 00001000 FFFFFFF9 2 00004 2125 XAX,2 2126 00001686 00000001 DROP 2 2 2129 0000168C 00000001 USING ORDINARY 00000000 00001000 FFFFFFEA 12 00098 2138 DIMAS,12 2144 000016CC 00000001 DROP 12 12 1 General Purpose Register Cross Reference Page 76 - Register References (M=modified, B=branch, U=USING, D=DROP, N=index) HLASM R6.0 2016/08/29 08.42 0 0(0) 131U 176 191M 212 332M 559M 563M 563 618M 618 1691 1724M 1(1) 176 177M 178U 191M 212 233M 332M 362U 410U 449M 450U 490U 515U 558U 562U 564M 565U 650U 723U 765U 814U 883U 913U 954U 999U 1041U 1112U 1187U 1232U 1280U 1309M 1310U 1427M 1428U 1523M 1524U 1691 1692M 1693U 1724M 1726D 1738M 1739U 1843M 1844U 2118M 2119U 2(2) 64M 65 69M 71 80M 81M 82 83M 84 95M 96 176 191M 212 332M 363U 386D 411U 427D 525M 527M 567 570M 593M 599M 600U 615D 616M 652 658M 682M 683U 687U 688M 691D 693M 724U 744D 766 768M 769U 775D 776U 780M 781D 782U 790D 815 817M 818U 821M 822D 823M 823 825U 829D 832 833M 844U 852M 854M 861D 884M 886M 915 918 920U 923D 926 929 931U 934D 956U 959D 966U 969D 1000U 1012D 1042 1044M 1047M 1076M 1077U 1085D 1113 1115M 1116U 1123D 1124U 1134D 1135M 1157M 1188 1190M 1191U 1197D 1233 1239M 1240U 1247D 1255M 1281M 1283M 1311M 1313M 1314U 1317D 1318M 1325M 1326U 1332D 1333M 1335M 1336U 1344D 1367M 1374M 1394M 1396M 1406M 1429M 1431M 1432U 1435D 1436M 1442M 1443U 1452D 1453M 1477M 1479M 1488M 1499M 1501M 1505M 1525M 1527M 1528U 1531D 1532M 1537M 1538U 1545D 1554M 1559M 1564M 1569M 1571M 1572U 1580D 1581M 1691 1708M 1724M 1747M 1748M 1755M 1756U 1758M 1759 1761U 1762 1763 1764D 1769U 1845M 1847M 1848U 1851D 1853M 1858M 1859 1873M 1877M 1881M 1884M 1891M 1898M 1900M 1902M 1922M 1926M 1951M 1966M 1969M 2013M 2026M 2032M 2034M 2036M 2038M 2042M 2064M 2120M 2122M 2123U 2126D 2127M 2133M 3(3) 70M 71 75M 88M 176 191M 212 332M 364M 365M 366 367M 367 412M 413M 414 585M 586M 587 654M 656 669M 677M 684 725M 732 742 1126M 1127M 1127N 1128M 1128N 1129M 1130 1308U 1409D 1426U 1508D 1522U 1553M 1584D 1691 1724M 1746M 1871 1872M 1876M 1905M 1917M 1927M 1958M 1959M 1960M 1961 2056M 2057M 2058M 2059 2081B 4(4) 76M 80 86M 86 176 191M 212 332M 370M 376M 381 417M 419U 424 427D 573M 576U 577M 577 579 584 590M 602 604 624D 655M 657 673 676M 685 726M 738 740U 744D 1119M 1120M 1120 1122U 1163D 1320M 1352 1359 1438M 1462 1469 1534M 1535M 1556 1691 1724M 1753M 1753 1775 1779M 1779N 1870 1904M 1918 1955M 1956M 1957M 1998M 2000M 2001 2002 2015M 2016U 2025D 2045M 2050 2055M 2069M 2069N 2070 2072 2074 2078 5(5) 73M 74 82 84 85 87M 87 89M 90 176 191M 212 332M 371M 373U 374M 374 377M 379D 382 572M 589M 597 656M 657M 666 1049M 1050U 1076 1078 1085D 1133M 1145 1147U 1163D 1331M 1341 1347 1354N 1361M 1362 1389 1400 1401 1402 1402 1446M 1457 1464N 1471M 1472 1543M 1547 1562 1691 1724M 1754M 1780M 1863M 1864 1871M 1872N 1876N 1906M 1907M 1908 1924 1928 1930 1932 2020M 2021M 2022 2041M 2043U 2050M 2051 2068M 2068 2076M 2076N 2079 2080M 6(6) 176 191M 212 332M 569M 587 608 610 620 661M 662U 663M 663 666 671 676 678M 680M 699D 728M 729M 729 731U 735M 736M 736 739D 741 1053M 1054M 1057 1058M 1058N 1059 1061M 1062M 1063M 1063 1065 1066M 1066N 1067 1072M 1073M 1073N 1074M 1074N 1075M 1079 1150M 1151 1152M 1153M 1153 1155 1324M 1369 1441M 1481 1544M 1556M 1561 1691 1695M 1696 1698M 1698N 1699 1702U 1724M 1726D 7(7) 176 191M 212 332M 567M 568U 624D 652M 653U 699D 766M 767U 790D 815M 816U 861D 1042M 1043U 1085D 1113M 1114U 1163D 1188M 1189U 1207D 1233M 1234U 1259D 1370M 1371 1484M 1485 1546M 1547N 1549M 1549N 1550 1553 1691 1704M 1705M 1706 1724M 1993M 1994M 1995 2006M 2007M 2008 8(8) 176 191M 212 332M 491M 491 492M 493M 493N 494 516M 516 517M 518M 519 520M 520 574M 575M 581 660M 668N 675N 678 679M 727M 734M 738N 832M 834U 855 861D 1137M 1142M 1145N 1691 1724M 1770M 1771U 1909M 1911M 1914M 1914 1915M 1916 1959 2057 2131M 2132 9(9) 176 191M 212 213M 214U 240D 332M 583M 584M 586 665M 668 675 836M 837M 837 839U 845 848M 861D 1138M 1139U 1140M 1140 1143M 1146D 1691 1724M 1772M 1773U 1778D 1910M 1910 1911M 1912M 1912 1920 1935 1936 1937 1938 1954M 1958 1961 1980 1990 1994 2007 2018 2056 2059 2078M 2079M 2091 10(A) 176 191M 212 215M 216M 217M 217N 218M 218N 219 223 226N 233N 234 238M 332M 451M 452 453U 458M 459 467 472D 601M 602M 605 609 671M 672M 673 840M 848 914M 917U 919D 922 925M 928U 930D 933 958M 961 963U 965D 968M 971 973U 975D 1001M 1003U 1004M 1007 1009M 1010 1012D 1068M 1070U 1085D 1194M 1195M 1195 1198U 1207D 1243M 1244M 1244 1248U 1259D 1321M 1321 1351M 1352 1358M 1359 1439M 1439 1461M 1462 1468M 1469 1691 1724M 1774M 1775M 1776 1777 1979M 1980M 1985 1989M 1990M 1993N 1995N 2005 2009 11(B) 67M 68U 111D 176 191M 212 215M 226M 227N 332M 452M 459 607M 608M 612 689M 690M 692M 841M 842M 842N 843M 846 957M 960U 962D 964 967M 970U 972D 974 1347M 1348M 1354M 1355M 1457M 1458M 1464M 1465M 1534 1691 1724M 1940M 1944M 1947M 1981M 1982M 1983 1987M 2002M 2130 12(C) 63M 65M 66U 111D 176 191M 212 215M 235M 236M 332M 598M 609M 610M 613 1316M 1322U 1409D 1434M 1440U 1508D 1530M 1536U 1584D 1691 1724M 1850M 1852U 2125M 2129U 2144D 13(D) 176 191M 212 215M 236 332M 579M 580M 581M 582M 582N 583 596 601 607 621 1199M 1200U 1 General Purpose Register Cross Reference Page 77 - Register References (M=modified, B=branch, U=USING, D=DROP, N=index) HLASM R6.0 2016/08/29 08.42 0 1207D 1691 1715M 1716U 1719D 1724M 1988M 1989N 1991 1996 2001M 14(E) 176 185M 186U 190D 191M 212 215M 225M 227M 230U 332M 468M 1197D 1201 1203 1208U 1293D 1691 1724M 15(F) 176 181M 182U 190D 191M 212 221M 222U 225 332M 372D 380U 418D 473U 781D 830U 835D 862U 916D 921 924U 927D 932 936U 955D 977U 1001 1002D 1007 1013U 1069D 1086U 1123D 1149 1164U 1197D 1209U 1247D 1260U 1293D 1691 1711M 1712U 1719D 1724M 1742M 1743 1744 1765U 1766 1767 1768D 1 Diagnostic Cross Reference and Assembler Summary Page 78 - HLASM R6.0 2016/08/29 08.42 0Statements Flagged 0 178(P1,178), 214(P1,214), 362(P1,362), 410(P1,410), 450(P1,450), 490(P1,490), 515(P1,515), 558(P1,558), 562(P1,562), 565(P1,565), 650(P1,650), 723(P1,723), 765(P1,765), 814(P1,814), 834(P1,834), 883(P1,883), 913(P1,913), 954(P1,954), 999(P1,999), 1041(P1,1041), 1112(P1,1112), 1122(P1,1122), 1187(P1,1187), 1232(P1,1232), 1280(P1,1280), 1310(P1,1310), 1428(P1,1428), 1524(P1,1524), 1693(P1,1673) 29 Statements Flagged in this Assembly 4 was Highest Severity Code 0HIGH LEVEL ASSEMBLER, 5696-234, RELEASE 6.0, PTF UK37157 0SYSTEM: z/OS 01.10.00 JOBNAME: IBMUSER7 STEPNAME: *OMVSEX PROCSTEP: (NOPROC) 0Data Sets Allocated for this Assembly Con DDname Data Set Name Volume Member P1 SYSIN /mbhfs/sos4k.asm L1 SYSLIB CEE.SCEEMAC ZAPRD2 L2 SYS1.MACLIB ZARES1 L3 SYS1.MODGEN ZARES1 SYSLIN /mbhfs/sos4k.o SYSPRINT /dev/fd1 SYSTERM /dev/fd2 1028584K allocated to Buffer Pool Storage required 360K 2341 Primary Input Records Read 0 Library Records Read 0 Work File Reads 0 ASMAOPT Records Read 3473 Primary Print Records Written 0 Work File Writes 137 Object Records Written 0 ADATA Records Written 0Assembly Start Time: 08.42.21 Stop Time: 08.42.22 Processor Time: 00.00.00.3254 Return Code 004