diff --git a/SOS_OS/-Amdahl_Tech_Topics_STARTIO_Program.pdf b/SOS_OS/-Amdahl_Tech_Topics_STARTIO_Program.pdf new file mode 100644 index 0000000..a6bb1cd Binary files /dev/null and b/SOS_OS/-Amdahl_Tech_Topics_STARTIO_Program.pdf differ diff --git a/SOS_OS/-GOTHIC.ASM b/SOS_OS/-GOTHIC.ASM new file mode 100644 index 0000000..bf7f337 --- /dev/null +++ b/SOS_OS/-GOTHIC.ASM @@ -0,0 +1,4209 @@ +* ULTRA GOTHIC 00010000 +* / CHANGES COLOR 00020000 +* # DELIMITS SIGNIFICANT SPACES AT END OF LINE 00030000 +* _ PRINTS PARALLEL LINES 00040017 +* ¬ DOESN'T PRINTS PARALLEL LINES 00050017 +* AND TREATS FOLLOWING CARD AS CONTINUATION OF PREVIOUS 00060010 +* 00070000 +* VALID CHARACTER SET: 00080000 +* UPPER AND LOWER CASE A-Z 0-9 ,.?;':"!$¢&()- 00090010 +* 00100000 +GOTHIC CSECT 00110000 + USING GOTHIC,R15 00120000 + STM R14,R12,12(R13) 00130000 + LR R12,R13 00140000 + BALR R0,0 00150000 + BAL R13,BEGIN 00160000 + DROP R15 00170000 + USING *,R13 00180000 + DS 18F 00190000 +BEGIN ST R13,8(,R12) 00200000 + ST R12,4(,R13) 00210000 + OPEN (INDCB,(INPUT),OUTDCB,(OUTPUT)) 00220000 + MVI CLEAR+1,C' ' 00230010 + MVI FILL+1,C'W' 00240010 +RDCARD GET INDCB,CARD 00250000 + LA R12,72 00260000 + LA R2,CARD+71 00270000 +FINDEND CLI 0(R2),C' ' 00280000 + BNE OUT 00290000 + BCTR R2,0 00300000 + BCT R12,FINDEND 00310000 + B RDCARD SKIP BLANK CARDS 00320000 +OUT CLI 0(R2),C'#' 00330000 + BNE HOP 00340000 + BCTR R12,0 00350000 +HOP LA R9,1 00360000 + CLI NEWPG,C'N' 00370011 + BE CONTPG 00380010 + MVI CLEAR+1,C' ' 00390010 + MVI FILL+1,C'W' 00400010 + BAL R3,CLEAR 00410010 + MVI OUTREC,C'1' 00420000 + BAL R3,PRINT 00430000 +CONTPG MVI OUTREC,C' ' 00440010 + MVI NEWPG,C'Y' 00450011 + CLI 0(R2),C'#' 00460012 + BNE NEW1 00470011 + MVI NEWPG,C'N' 00480011 +NEW1 TR CARD(80),TABLE 00490011 + LA R2,CARD 00500000 +TOP CLI 0(R2),X'FC' 00510017 + BE LINED 00520017 + CLI 0(R2),X'FD' 00530017 + BE UNLINED 00540017 + CLI 0(R2),X'FE' 00550017 + BE INVALID 00560000 + BL NEWCHAR 00570000 + LCR R9,R9 00580000 + BM WHTONBLK 00590000 +BLKONWHT MVI CLEAR+1,C' ' 00600000 + MVI FILL+1,C'W' 00610000 + B NEXT 00620000 +UNLINED L R0,=A(PATUNLIN) 00630017 + ST R0,PATBASE 00640017 + B NEXT 00650017 +LINED L R0,=A(PATLIN) 00660017 + ST R0,PATBASE 00670017 + B NEXT 00680017 +WHTONBLK MVI CLEAR+1,C'W' 00690000 + MVI FILL+1,C' ' 00700000 + B NEXT 00710000 +INVALID ABEND 1000 00720000 +NEWCHAR SR R3,R3 00730000 + IC R3,0(,R2) 00740000 + LH R5,OFFSET+2(R3) 00750000 + LH R4,OFFSET(R3) 00760000 + SR R5,R4 00770000 + SRL R5,4 00780000 + LA R4,15(,R4) 00790017 + A R4,PATBASE 00800017 + L R15,NUMCHAR 00810014 + LA R15,1(,R15) 00820014 + ST R15,NUMCHAR 00830014 + BAL R3,CLEAR 00840000 + BAL R3,FMT 00850000 + BAL R3,CLEAR 00860000 + L R4,PATBASE 00870017 + A R4,=A(PATSP-PATS) 00880017 + LA R4,15(,R4) 00890000 + LA R5,2 00900000 + BAL R3,FMT 00910000 +NEXT LA R2,1(,R2) 00920000 + BCT R12,TOP 00930000 + B RDCARD 00940000 +EOFSYSIN CLOSE (INDCB,,OUTDCB) 00950000 + L R15,NUMCHAR 00960014 + L R13,4(,R13) 00970000 + L R14,12(,R13) 00980014 + LM R0,R12,20(R13) 00990014 + BR R14 01000000 + EJECT 01010000 +FMT ST R3,FMTRET 01020000 + SR R10,R10 01030000 +NEWLINE LA R6,16 01040000 + LA R8,LINE+130 01050000 + SR R11,R11 01060000 +NEWBYTE IC R10,0(,R4) 01070000 + LA R7,8 01080000 +DO LTR R10,R10 01090000 + BZ SKP 01100000 + SRDL R10,1 01110000 + LTR R11,R11 01120000 + BZ ENDO 01130000 +FILL MVI 0(R8),C' ' 01140000 + SR R11,R11 01150000 +ENDO BCTR R8,0 01160000 + BCT R7,DO 01170000 +BACK BCTR R4,0 01180000 + BCT R6,NEWBYTE 01190000 + B ENDLINE 01200000 +SKP SR R8,R7 01210000 + B BACK 01220000 +ENDLINE BAL R3,PRINT 01230000 + LA R4,32(,R4) 01240000 + BCT R5,NEWLINE 01250000 + L R3,FMTRET 01260000 + BR R3 01270000 + SPACE 3 01280000 +PRINT PUT OUTDCB,OUTREC 01290000 + TR LINE(132),SWITCH 01300000 + MVI OUTREC,C'+' 01310000 + PUT OUTDCB,OUTREC 01320000 + TR LINE(132),SWITCH 01330000 + PUT OUTDCB,OUTREC 01340000 + MVI OUTREC,C' ' 01350000 +CLEAR MVI LINE,C' ' 01360000 + MVC LINE+1(131),LINE 01370000 + BR R3 01380000 + EJECT 01390000 +R0 EQU 0 01400000 +R1 EQU 1 01410000 +R2 EQU 2 01420000 +R3 EQU 3 01430000 +R4 EQU 4 01440000 +R5 EQU 5 01450000 +R6 EQU 6 01460000 +R7 EQU 7 01470000 +R8 EQU 8 01480000 +R9 EQU 9 01490000 +R10 EQU 10 01500000 +R11 EQU 11 01510000 +R12 EQU 12 01520000 +R13 EQU 13 01530000 +R14 EQU 14 01540000 +R15 EQU 15 01550000 +INDCB DCB DSORG=PS,MACRF=(GM),EODAD=EOFSYSIN,DDNAME=SYSIN 01560000 +OUTDCB DCB BLKSIZE=1330,LRECL=133,RECFM=FBA,MACRF=(PM), X01570000 + DSORG=PS,DDNAME=SYSPRINT 01580000 +FMTRET DC A(0) 01590000 +NUMCHAR DC A(0) 01600014 +PATBASE DC A(PATLIN) 01610017 +CARD DC CL80' ' 01620014 +OUTREC DS 0CL133 01630000 + DC C'1' 01640000 +LINE DC CL132' ' 01650000 +NEWPG DC C'Y' 01660011 +SWITCH DC CL230' ' 01670000 + DC C'XO' 01680000 + DC CL24' ' 01690000 +* 0 1 2 3 4 5 6 7 8 9 A B C D E F 01700009 +TABLE DC X'FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE' 0 01710009 + DC X'FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE' 1 01720009 + DC X'FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE' 2 01730009 + DC X'FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE' 3 01740009 + DC X'98FEFEFEFEFEFEFEFEFE0002FE04FEFE' 4 01750009 + DC X'06FEFEFEFEFEFEFEFEFE080AFE0C0EFD' 5 01760017 + DC X'10FFFEFEFEFEFEFEFEFEFE12FEFCFE14' 6 01770017 + DC X'FEFEFEFEFEFEFEFEFEFE16FEFE18FE1A' 7 01780009 + DC X'FE1C1E20222426282A2CFEFEFEFEFEFE' 8 01790009 + DC X'FE2E30323436383A3C3EFEFEFEFEFEFE' 9 01800009 + DC X'FEFE40424446484A4C4EFEFEFEFEFEFE' A 01810009 + DC X'FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE' B 01820009 + DC X'FE50525456585A5C5E60FEFEFEFEFEFE' C 01830009 + DC X'FE626466686A6C6E7072FEFEFEFEFEFE' D 01840009 + DC X'FEFE7476787A7C7E8082FEFEFEFEFEFE' E 01850009 + DC X'8486888A8C8E90929496FEFEFEFEFEFE' F 01860009 + DC 0A(0) 01870014 +OFFSET DC AL2(PATCNT-PATS) 01880013 + DC AL2(PATPER-PATS) 01890013 + DC AL2(PATLP-PATS) 01900013 + DC AL2(PATAMP-PATS) 01910013 + DC AL2(PATEXC-PATS) 01920013 + DC AL2(PATDOL-PATS) 01930013 + DC AL2(PATRP-PATS) 01940013 + DC AL2(PATSEM-PATS) 01950013 + DC AL2(PATDSH-PATS) 01960013 + DC AL2(PATCOM-PATS) 01970013 + DC AL2(PATQUE-PATS) 01980013 + DC AL2(PATCOL-PATS) 01990013 + DC AL2(PATQUO-PATS) 02000013 + DC AL2(PATDQU-PATS) 02010013 + DC AL2(PATAL-PATS) 02020013 + DC AL2(PATBL-PATS) 02030013 + DC AL2(PATCL-PATS) 02040013 + DC AL2(PATDL-PATS) 02050013 + DC AL2(PATEL-PATS) 02060013 + DC AL2(PATFL-PATS) 02070013 + DC AL2(PATGL-PATS) 02080013 + DC AL2(PATHL-PATS) 02090013 + DC AL2(PATIL-PATS) 02100013 + DC AL2(PATJL-PATS) 02110013 + DC AL2(PATKL-PATS) 02120013 + DC AL2(PATLL-PATS) 02130013 + DC AL2(PATML-PATS) 02140013 + DC AL2(PATNL-PATS) 02150013 + DC AL2(PATOL-PATS) 02160013 + DC AL2(PATPL-PATS) 02170013 + DC AL2(PATQL-PATS) 02180013 + DC AL2(PATRL-PATS) 02190013 + DC AL2(PATSL-PATS) 02200013 + DC AL2(PATTL-PATS) 02210013 + DC AL2(PATUL-PATS) 02220013 + DC AL2(PATVL-PATS) 02230013 + DC AL2(PATWL-PATS) 02240013 + DC AL2(PATXL-PATS) 02250013 + DC AL2(PATYL-PATS) 02260013 + DC AL2(PATZL-PATS) 02270013 + DC AL2(PATAU-PATS) 02280013 + DC AL2(PATBU-PATS) 02290013 + DC AL2(PATCU-PATS) 02300013 + DC AL2(PATDU-PATS) 02310013 + DC AL2(PATEU-PATS) 02320013 + DC AL2(PATFU-PATS) 02330013 + DC AL2(PATGU-PATS) 02340013 + DC AL2(PATHU-PATS) 02350013 + DC AL2(PATIU-PATS) 02360013 + DC AL2(PATJU-PATS) 02370013 + DC AL2(PATKU-PATS) 02380013 + DC AL2(PATLU-PATS) 02390013 + DC AL2(PATMU-PATS) 02400013 + DC AL2(PATNU-PATS) 02410013 + DC AL2(PATOU-PATS) 02420013 + DC AL2(PATPU-PATS) 02430013 + DC AL2(PATQU-PATS) 02440013 + DC AL2(PATRU-PATS) 02450013 + DC AL2(PATSU-PATS) 02460013 + DC AL2(PATTU-PATS) 02470013 + DC AL2(PATUU-PATS) 02480013 + DC AL2(PATVU-PATS) 02490013 + DC AL2(PATWU-PATS) 02500013 + DC AL2(PATXU-PATS) 02510013 + DC AL2(PATYU-PATS) 02520013 + DC AL2(PATZU-PATS) 02530013 + DC AL2(PAT0-PATS) 02540013 + DC AL2(PAT1-PATS) 02550013 + DC AL2(PAT2-PATS) 02560013 + DC AL2(PAT3-PATS) 02570013 + DC AL2(PAT4-PATS) 02580013 + DC AL2(PAT5-PATS) 02590013 + DC AL2(PAT6-PATS) 02600013 + DC AL2(PAT7-PATS) 02610013 + DC AL2(PAT8-PATS) 02620013 + DC AL2(PAT9-PATS) 02630013 + DC AL2(PATBLK-PATS) 02640013 + DC AL2(PATSP-PATS) 02650013 +HEAD DC CL22' ULTRA-GOTHIC' 02660000 + DC CL22' WRITTEN BY' 02670000 + DC CL22' JOHN R. ANDREWS' 02680000 + DC CL22' OF THE' 02690000 + DC CL22'UNIVERSITY OF ILLINOIS' 02700000 + DC CL22' AT' 02710000 + DC CL22' CHICAGO CIRCLE' 02720000 + LTORG 02730000 +PATS DS 0D 02740001 +PATLIN EQU * 02750017 +PATCNT DC X'404040404040FFFFF840404040404040' 02760017 + DC X'404040404001FFFFFC40404040404040' 02770017 + DC X'404040404003FFFFFE40404040404040' 02780017 + DC X'404040404007FFFFFF40404040404040' 02790017 + DC X'40404040400FFFFFFF80404040404040' 02800017 + DC X'40404040401FE04040C0404040404040' 02810017 + DC X'40404040403FC0404060404040404040' 02820017 + DC X'40404040407F80404030404040404040' 02830017 + DC X'4040404040FF40404018404040404040' 02840017 + DC X'4040404001FE4040400C404040404040' 02850017 + DC X'4040404003FC4040401E404040404040' 02860017 + DC X'4040403FFFF84040403FFFC040404040' 02870017 + DC X'4040403FFFF04040407FFFC040404040' 02880017 + DC X'4040404007F8404040FF404040404040' 02890017 + DC X'4040404003FC404001FE404040404040' 02900017 + DC X'4040404001FE404003FC404040404040' 02910017 + DC X'4040404040FF404007F8404040404040' 02920017 + DC X'40404040407F804007F0404040404040' 02930017 + DC X'40404040403E404001E0404040404040' 02940017 + DC X'40404040401840404040404040404040' 02950017 +PATPER DC X'40404001404040404040404040404040' 02960017 + DC X'40404001C04040404040404040404040' 02970017 + DC X'40404003F04040404040404040404040' 02980017 + DC X'4040400FFC4040404040404040404040' 02990017 + DC X'4040403FFE4040404040404040404040' 03000017 + DC X'4040403FFE4040404040404040404040' 03010017 + DC X'4040401FF84040404040404040404040' 03020017 + DC X'40404007E04040404040404040404040' 03030017 + DC X'40404001C04040404040404040404040' 03040017 +PATLP DC X'40404040404040404040402040404040' 03050017 + DC X'4040404040FFFFFFFFFFFFF040404040' 03060017 + DC X'4040404001FFFFFFFFFFFFF840404040' 03070017 + DC X'4040404003FFFFFFFFFFFFFC40404040' 03080017 + DC X'4040404007FFFFFFFFFFFFFE40404040' 03090017 + DC X'404040400FFFFFFFFFFFFFFF40404040' 03100017 + DC X'40404040184040404040400180404040' 03110017 + DC X'404040403040404040404040C0404040' 03120017 + DC X'40404040604040404040404060404040' 03130017 + DC X'40404040C04040404040404030404040' 03140017 + DC X'40404001804040404040404018404040' 03150017 + DC X'4040400340404040404040400C404040' 03160017 + DC X'40404006404040404040404006404040' 03170017 + DC X'4040400C404040404040404003404040' 03180017 + DC X'40404018404040404040404001804040' 03190017 + DC X'40404030404040404040404040C04040' 03200017 +PATAMP DC X'40404040404040404020401040404040' 03210017 + DC X'4040404001FFFFF0403FFFF840404040' 03220017 + DC X'4040404003FFFFF8403FFFFC40404040' 03230017 + DC X'4040404007FFFFFC407FFFFE40404040' 03240017 + DC X'404040400FFFFFFE40FFFFFF40404040' 03250017 + DC X'404040401FFFFFFF40FFFFFF80404040' 03260017 + DC X'404040403FFFFFFFC1FFFFFFC0404040' 03270017 + DC X'404040407FE04040C3FE404060404040' 03280017 + DC X'40404040FFC0404067FC4001F0404040' 03290017 + DC X'40404001FF8040403FF84007F8404040' 03300017 + DC X'40404003FF4040407FF0400FFC404040' 03310017 + DC X'40404007FE404001FFE0403FFE404040' 03320017 + DC X'4040400FFC40400FFFC0407FFF404040' 03330017 + DC X'4040401FF84040FFFF8040FFFF804040' 03340017 + DC X'4040403FF0400FFFFE4040FFFFC04040' 03350017 + DC X'4040401FE001FFFFF84041FFF8404040' 03360017 + DC X'4040400FC01FFFFFC04041FFE0404040' 03370017 + DC X'40404007C1FFFFFF404041FF80404040' 03380017 + DC X'404040031FFFFFC0404043FE40404040' 03390017 + DC X'40404001FFFFFC40404043FC40404040' 03400017 + DC X'40404003FFFFC040404043F840404040' 03410017 + DC X'4040400FFFF84040404043F040404040' 03420017 + DC X'4040403FFF804040404041E040404040' 03430017 + DC X'4040403FF8404040404041C040404040' 03440017 + DC X'4040403FEFFFFE404040408040404040' 03450017 + DC X'4040403FC7FFFF404040404040404040' 03460017 + DC X'4040403FC3FFFF804040404040404040' 03470017 + DC X'4040403FC1FFFFC04040404040404040' 03480017 + DC X'4040400F80FFFFE04040404040404040' 03490017 + DC X'40404007804040404040404040404040' 03500017 + DC X'40404001804040404040404040404040' 03510017 +PATEXC DC X'404040014040404040404041E0404040' 03520017 + DC X'40404001C040404040404040FC404040' 03530017 + DC X'40404003F040404040404040FF404040' 03540017 + DC X'4040400FFC4040404003FFFFFF804040' 03550017 + DC X'4040403FFE1FFFFFFFFFFFFFFFC04040' 03560017 + DC X'4040403FFE1FFFFFFFFFFFFFFFC04040' 03570017 + DC X'4040401FF8401FFFFFFFFFFFFF804040' 03580017 + DC X'40404007E04040403FFFFFFFFF804040' 03590017 + DC X'40404001C040404040401FFFFF404040' 03600017 + DC X'40404040404040404040407FFC404040' 03610017 +PATDOL DC X'404040400E40401FF040404040404040' 03620017 + DC X'4040404003C0407FFE40404040404040' 03630017 + DC X'4040404001F001FFFFC0404040404040' 03640017 + DC X'4040404040F801FF4030404040404040' 03650017 + DC X'4040404040FC01FE407C404040404040' 03660017 + DC X'4040404040FE03FC40FE404040404040' 03670017 + DC X'4040404040FE03FC01FF804040404040' 03680017 + DC X'4040403FFFFFFFFFFFFFFFC040404040' 03690017 + DC X'4040403FFFFFFFFFFFFFFFC040404040' 03700017 + DC X'4040404040FF03FC07FC404040404040' 03710017 + DC X'4040404001FF03FC07F8404040404040' 03720017 + DC X'4040403FFFFFFFFFFFFFFFC040404040' 03730017 + DC X'4040403FFFFFFFFFFFFFFFC040404040' 03740017 + DC X'404040400FFC03FC03F8404040404040' 03750017 + DC X'4040404003F803FC03F8404040404040' 03760017 + DC X'4040404001F007F801F8404040404040' 03770017 + DC X'4040404040600FF840F8404040404040' 03780017 + DC X'40404040401FFFF8407C404040404040' 03790017 + DC X'404040404003FFF0401E404040404040' 03800017 + DC X'404040404040FF804047404040404040' 03810017 +PATRP DC X'40404030404040404040404040C04040' 03820017 + DC X'40404018404040404040404001804040' 03830017 + DC X'4040400C404040404040404003404040' 03840017 + DC X'40404006404040404040404006404040' 03850017 + DC X'4040400340404040404040400C404040' 03860017 + DC X'40404001804040404040404018404040' 03870017 + DC X'40404040C04040404040404030404040' 03880017 + DC X'40404040604040404040404060404040' 03890017 + DC X'404040403040404040404040C0404040' 03900017 + DC X'40404040184040404040400180404040' 03910017 + DC X'404040400FFFFFFFFFFFFFFF40404040' 03920017 + DC X'4040404007FFFFFFFFFFFFFE40404040' 03930017 + DC X'4040404003FFFFFFFFFFFFFC40404040' 03940017 + DC X'4040404001FFFFFFFFFFFFF840404040' 03950017 + DC X'4040404040FFFFFFFFFFFFF040404040' 03960017 + DC X'40404040404040404040402040404040' 03970017 +PATSEM DC X'40404040804040014040404040404040' 03980017 + DC X'40404040C0404001C040404040404040' 03990017 + DC X'4040404060404003F040404040404040' 04000017 + DC X'404048007040400FFC40404040404040' 04010017 + DC X'40404C00F840403FFE40404040404040' 04020017 + DC X'40404701FC40403FFE40404040404040' 04030017 + DC X'404043FFFE40401FF840404040404040' 04040017 + DC X'404041FFFC404007E040404040404040' 04050017 + DC X'404040FFF8404001C040404040404040' 04060017 + DC X'4040403FF04040404040404040404040' 04070017 + DC X'40404007E04040404040404040404040' 04080017 +PATDSH DC X'4040404040403E404040404040404040' 04090017 + DC X'4040404040400FC04040404040404040' 04100017 + DC X'40404040404007F04040404040404040' 04110017 + DC X'40404040404007F84040404040404040' 04120017 + DC X'40404040404007F84040404040404040' 04130017 + DC X'40404040404007F84040404040404040' 04140017 + DC X'40404040404007F84040404040404040' 04150017 + DC X'40404040404007F84040404040404040' 04160017 + DC X'40404040404007F84040404040404040' 04170017 + DC X'40404040404007F84040404040404040' 04180017 + DC X'40404040404007F84040404040404040' 04190017 + DC X'40404040404007F84040404040404040' 04200017 + DC X'40404040404007F84040404040404040' 04210017 + DC X'40404040404007F84040404040404040' 04220017 + DC X'40404040404003F84040404040404040' 04230017 + DC X'40404040404040FC4040404040404040' 04240017 + DC X'404040404040401F4040404040404040' 04250017 +PATCOM DC X'40404040804040404040404040404040' 04260017 + DC X'40404040C04040404040404040404040' 04270017 + DC X'40404040604040404040404040404040' 04280017 + DC X'40404800704040404040404040404040' 04290017 + DC X'40404C00F84040404040404040404040' 04300017 + DC X'40404701FC4040404040404040404040' 04310017 + DC X'404043FFFE4040404040404040404040' 04320017 + DC X'404041FFFC4040404040404040404040' 04330017 + DC X'404040FFF84040404040404040404040' 04340017 + DC X'4040403FF04040404040404040404040' 04350017 + DC X'40404007E04040404040404040404040' 04360017 +PATQUE DC X'40404040404040404040400440404040' 04370017 + DC X'40404040404040404007FFFE40404040' 04380017 + DC X'4040404040404040400FFFFF40404040' 04390017 + DC X'4040404040404040401FFFFF80404040' 04400017 + DC X'4040404040404040403FFFFFC0404040' 04410017 + DC X'4040404040404040407FFFFFE0404040' 04420017 + DC X'4040404040404040403FFFFFF0404040' 04430017 + DC X'40404001404003F8401FC04018404040' 04440017 + DC X'40404001C0403FFF800F80400C404040' 04450017 + DC X'40404003F001FFFFF00740401E404040' 04460017 + DC X'4040400FFC07FFFFF80240403F404040' 04470017 + DC X'4040403FFE1FFFFFFE4040407F804040' 04480017 + DC X'4040403FFE38407FFF404040FFC04040' 04490017 + DC X'4040401FF860401FFF804001FF804040' 04500017 + DC X'40404007E0404007FF804003FF404040' 04510017 + DC X'40404001C0404001FFC04007FE404040' 04520017 + DC X'4040404040404040FFE0400FFC404040' 04530017 + DC X'40404040404040407FE0401FF8404040' 04540017 + DC X'40404040404040403FFFFFFFF0404040' 04550017 + DC X'40404040404040401FFFFFFFE0404040' 04560017 + DC X'40404040404040401FFFFFFFC0404040' 04570017 + DC X'40404040404040400FFFFFFF80404040' 04580017 + DC X'40404040404040400FFFFFFF40404040' 04590017 + DC X'40404040404040404040404240404040' 04600017 +PATCOL DC X'40404001404040014040404040404040' 04610017 + DC X'40404001C0404001C040404040404040' 04620017 + DC X'40404003F0404003F040404040404040' 04630017 + DC X'4040400FFC40400FFC40404040404040' 04640017 + DC X'4040403FFE40403FFE40404040404040' 04650017 + DC X'4040403FFE40403FFE40404040404040' 04660017 + DC X'4040401FF840401FF840404040404040' 04670017 + DC X'40404007E0404007E040404040404040' 04680017 + DC X'40404001C0404001C040404040404040' 04690017 +PATQUO DC X'40404040404040404040404048404040' 04700017 + DC X'4040404040404040404040404C404040' 04710017 + DC X'4040404040404040404041404E404040' 04720017 + DC X'4040404040404040404041801F404040' 04730017 + DC X'4040404040404040404040E03F804040' 04740017 + DC X'40404040404040404040407FFFC04040' 04750017 + DC X'40404040404040404040403FFF804040' 04760017 + DC X'40404040404040404040401FFF404040' 04770017 + DC X'404040404040404040404007FE404040' 04780017 + DC X'404040404040404040404041FC404040' 04790017 +PATDQU DC X'404040404040404040404041F8404040' 04800017 + DC X'404040404040404040404047FE404040' 04810017 + DC X'40404040404040404040401FFF404040' 04820017 + DC X'40404040404040404040403FFF804040' 04830017 + DC X'40404040404040404040407FFFC04040' 04840017 + DC X'4040404040404040404040E03F804040' 04850017 + DC X'4040404040404040404041801F404040' 04860017 + DC X'4040404040404040404041400E404040' 04870017 + DC X'4040404040404040404040400C404040' 04880017 + DC X'40404040404040404040404008404040' 04890017 + DC X'40404040404040404040404040404040' 04900017 + DC X'404040404040404040404041F8404040' 04910017 + DC X'404040404040404040404047FE404040' 04920017 + DC X'40404040404040404040401FFF404040' 04930017 + DC X'40404040404040404040403FFF804040' 04940017 + DC X'40404040404040404040407FFFC04040' 04950017 + DC X'4040404040404040404040E03F804040' 04960017 + DC X'4040404040404040404041801F404040' 04970017 + DC X'4040404040404040404041400E404040' 04980017 + DC X'4040404040404040404040400C404040' 04990017 + DC X'40404040404040404040404008404040' 05000017 +PATAL DC X'404040407FFF80064040404040404040' 05010017 + DC X'40404040FFFF80034040404040404040' 05020017 + DC X'40404001FFFFC0018040404040404040' 05030017 + DC X'40404003FFFFC040C040404040404040' 05040017 + DC X'40404007FFFFE0406040404040404040' 05050017 + DC X'4040400FF04020403040404040404040' 05060017 + DC X'4040401FE04030407840404040404040' 05070017 + DC X'4040403FC0401040FC40404040404040' 05080017 + DC X'4040401F80401801FE40404040404040' 05090017 + DC X'4040400F40400803FC40404040404040' 05100017 + DC X'4040400740400C07F840404040404040' 05110017 + DC X'404040038040040FF040404040404040' 05120017 + DC X'40404001FFFFFFFFE040404040404040' 05130017 + DC X'40404003FFFFFFFFC040404040404040' 05140017 + DC X'40404007FFFFFFFF8040404040404040' 05150017 + DC X'4040400FFFFFFFFF4040404040404040' 05160017 + DC X'4040401FFFFFFFFE4040404040404040' 05170017 + DC X'4040403FC04040404040404040404040' 05180017 + DC X'4040400F804040404040404040404040' 05190017 + DC X'40404003404040404040404040404040' 05200017 +PATBL DC X'40404040404040404040401040404040' 05210017 + DC X'40404040404040404040403840404040' 05220017 + DC X'404040407FFFFFFFFFFFFFFC40404040' 05230017 + DC X'40404040FFFFFFFFFFFFFFFE40404040' 05240017 + DC X'40404001FFFFFFFFFFFFFFFF40404040' 05250017 + DC X'40404003FFFFFFFFFFFFFFFE40404040' 05260017 + DC X'40404007FFFFFFFFFFFFFFFC40404040' 05270017 + DC X'4040400FF0404040C040403840404040' 05280017 + DC X'4040401FE04040406040401040404040' 05290017 + DC X'4040403FC04040403040404040404040' 05300017 + DC X'4040401F804040407840404040404040' 05310017 + DC X'4040400F40404040FC40404040404040' 05320017 + DC X'4040400640404001FE40404040404040' 05330017 + DC X'4040400340404003FC40404040404040' 05340017 + DC X'4040400180404007F840404040404040' 05350017 + DC X'40404040FFFFFFFFF040404040404040' 05360017 + DC X'404040407FFFFFFFE040404040404040' 05370017 + DC X'404040403FFFFFFFC040404040404040' 05380017 + DC X'404040401FFFFFFF8040404040404040' 05390017 + DC X'404040400FFFFFFF4040404040404040' 05400017 +PATCL DC X'4040404003FFFFE04040404040404040' 05410017 + DC X'4040404007FFFFF04040404040404040' 05420017 + DC X'404040400FFFFFF84040404040404040' 05430017 + DC X'404040401FFFFFFC4040404040404040' 05440017 + DC X'404040403FFFFFFE4040404040404040' 05450017 + DC X'404040407F8040034040404040404040' 05460017 + DC X'40404040FF4040018040404040404040' 05470017 + DC X'40404001FE404040C040404040404040' 05480017 + DC X'40404003FC4040406040404040404040' 05490017 + DC X'40404007F84040403040404040404040' 05500017 + DC X'4040400FF04040407840404040404040' 05510017 + DC X'4040401FE0404040FC40404040404040' 05520017 + DC X'4040403FC0404001FE40404040404040' 05530017 + DC X'4040401FE0404003FC40404040404040' 05540017 + DC X'4040400FF0404007F840404040404040' 05550017 + DC X'40404007F840400FF040404040404040' 05560017 + DC X'40404003FC40401FE040404040404040' 05570017 + DC X'40404001FE40401FC040404040404040' 05580017 + DC X'40404040F84040078040404040404040' 05590017 + DC X'40404040604040410040404040404040' 05600017 +PATDL DC X'404040407FFFFFF84040404040404040' 05610017 + DC X'40404040FFFFFFFC4040402040404040' 05620017 + DC X'40404001FFFFFFFE404040F840404040' 05630017 + DC X'40404003FFFFFFFF404003FE40404040' 05640017 + DC X'40404007FFFFFFFF80400FFF40404040' 05650017 + DC X'4040400FF0404040C0403FFE40404040' 05660017 + DC X'4040401FE04040406040FFF840404040' 05670017 + DC X'4040403FC04040403003FFE040404040' 05680017 + DC X'4040401F80404040180FFF8040404040' 05690017 + DC X'4040400F404040400C3FFE4040404040' 05700017 + DC X'404040064040404006FFF84040404040' 05710017 + DC X'404040034040404003FFE04040404040' 05720017 + DC X'40404001804040400FFF804040404040' 05730017 + DC X'40404003FFFFFFFFFFFE404040404040' 05740017 + DC X'40404007FFFFFFFFFFF8404040404040' 05750017 + DC X'4040400FFFFFFFFFFFE0404040404040' 05760017 + DC X'4040401FFFFFFFFFFF80404040404040' 05770017 + DC X'4040403FFFFFFFFFFE40404040404040' 05780017 + DC X'4040400F404040404040404040404040' 05790017 + DC X'40404002404040404040404040404040' 05800017 +PATEL DC X'4040404003FFFFE04040404040404040' 05810017 + DC X'4040404007FFFFF04040404040404040' 05820017 + DC X'404040400FFFFFF84040404040404040' 05830017 + DC X'404040401FFFFFFC4040404040404040' 05840017 + DC X'404040403FFFFFFE4040404040404040' 05850017 + DC X'404040407F80C0034040404040404040' 05860017 + DC X'40404040FF4060018040404040404040' 05870017 + DC X'40404001FE403040C040404040404040' 05880017 + DC X'40404003FC4018406040404040404040' 05890017 + DC X'40404007F8400C403040404040404040' 05900017 + DC X'4040400FF04006407840404040404040' 05910017 + DC X'4040401FE0400340FC40404040404040' 05920017 + DC X'4040403FC04001C1FE40404040404040' 05930017 + DC X'4040401FE04040C3FC40404040404040' 05940017 + DC X'4040400FF0404067F840404040404040' 05950017 + DC X'40404007F840403FF040404040404040' 05960017 + DC X'40404003FC40401FE040404040404040' 05970017 + DC X'40404001FE40400FC040404040404040' 05980017 + DC X'40404040F84040078040404040404040' 05990017 + DC X'40404040304040410040404040404040' 06000017 +PATFL DC X'40404040404040044040404040404040' 06010017 + DC X'40404040404040074040404040404040' 06020017 + DC X'4040404040404007C040404040404040' 06030017 + DC X'4040404040404007F040404040404040' 06040017 + DC X'4040400440404007F840404040404040' 06050017 + DC X'4040400FFFFFFFFFFFFFFE4040404040' 06060017 + DC X'4040401FFFFFFFFFFFFFFF4040404040' 06070017 + DC X'4040403FFFFFFFFFFFFFFF8040404040' 06080017 + DC X'4040401FFFFFFFFFFFFFFFC040404040' 06090017 + DC X'4040400FFFFFFFFFFFFFFFE040404040' 06100017 + DC X'4040400440404007F840403040404040' 06110017 + DC X'4040404040404007F840401840404040' 06120017 + DC X'4040404040404003F840403C40404040' 06130017 + DC X'4040404040404040F840407E40404040' 06140017 + DC X'4040404040404040384040FF40404040' 06150017 + DC X'404040404040404008403FFE40404040' 06160017 + DC X'404040404040404040403FFC40404040' 06170017 + DC X'404040404040404040403FF840404040' 06180017 + DC X'404040404040404040403FF040404040' 06190017 + DC X'404040404040404040403FE040404040' 06200017 +PATGL DC X'403F40407FFFFFF84040404040404040' 06210017 + DC X'407F4040FFFFFFFC4040404040404040' 06220017 + DC X'40FF4001FFFFFFFE4040404040404040' 06230017 + DC X'01FF4003FFFFFFFF4040404040404040' 06240017 + DC X'03FF4007FFFFFFFF8040404040404040' 06250017 + DC X'07F0400FF0404040C040404040404040' 06260017 + DC X'0FE0401FE04040406040404040404040' 06270017 + DC X'1FC0403FC04040403040404040404040' 06280017 + DC X'3F80401F804040407840404040404040' 06290017 + DC X'7F40400F40404040FC40404040404040' 06300017 + DC X'3E40400640404001FE40404040404040' 06310017 + DC X'1C40400340404003FC40404040404040' 06320017 + DC X'0C40400180404007F840404040404040' 06330017 + DC X'07FFFFFFFFFFFFFFF040404040404040' 06340017 + DC X'03FFFFFFFFFFFFFFE040404040404040' 06350017 + DC X'01FFFFFFFFFFFFFFC040404040404040' 06360017 + DC X'40FFFFFFFFFFFFFF8040404040404040' 06370017 + DC X'407FFFFFFFFFFFFF4040404040404040' 06380017 +PATHL DC X'40404040404040404040401040404040' 06390017 + DC X'40404004404040404040403840404040' 06400017 + DC X'4040400FFFFFFFFFFFFFFFFC40404040' 06410017 + DC X'4040401FFFFFFFFFFFFFFFFE40404040' 06420017 + DC X'4040403FFFFFFFFFFFFFFFFF40404040' 06430017 + DC X'4040401FFFFFFFFFFFFFFFFE40404040' 06440017 + DC X'4040400FFFFFFFFFFFFFFFFC40404040' 06450017 + DC X'40404004404040018040403840404040' 06460017 + DC X'40404040404040406040401040404040' 06470017 + DC X'40404040404040403040404040404040' 06480017 + DC X'40404040404040407840404040404040' 06490017 + DC X'4040404040404040FC40404040404040' 06500017 + DC X'4040404040404001FE40404040404040' 06510017 + DC X'4040400440404003FC40404040404040' 06520017 + DC X'4040400FFFFFFFFFF840404040404040' 06530017 + DC X'4040401FFFFFFFFFF040404040404040' 06540017 + DC X'4040403FFFFFFFFFE040404040404040' 06550017 + DC X'4040401FFFFFFFFFC040404040404040' 06560017 + DC X'4040400FFFFFFFFF8040404040404040' 06570017 + DC X'40404004404040404040404040404040' 06580017 +PATIL DC X'40404040404040401004404040404040' 06590017 + DC X'40404003FFFFFFFFF80E404040404040' 06600017 + DC X'40404007FFFFFFFFFC1F404040404040' 06610017 + DC X'4040400FFFFFFFFFFE3F804040404040' 06620017 + DC X'4040401FFFFFFFFFFC1F404040404040' 06630017 + DC X'4040403FFFFFFFFFF80E404040404040' 06640017 + DC X'4040401FC04040401004404040404040' 06650017 + DC X'4040400F804040404040404040404040' 06660017 + DC X'40404007404040404040404040404040' 06670017 + DC X'40404003404040404040404040404040' 06680017 +PATJL DC X'407F4040404040404040404040404040' 06690017 + DC X'40FF4040404040404040404040404040' 06700017 + DC X'01FF4040404040404040404040404040' 06710017 + DC X'03FF4040404040404040404040404040' 06720017 + DC X'07FF4040404040404040404040404040' 06730017 + DC X'0FE04040404040404040404040404040' 06740017 + DC X'1FC04040404040404040404040404040' 06750017 + DC X'3F804040404040404040404040404040' 06760017 + DC X'7F404040404040404040404040404040' 06770017 + DC X'3E404040404040404040404040404040' 06780017 + DC X'1C404040404040404040404040404040' 06790017 + DC X'0C404040404040404040404040404040' 06800017 + DC X'06404040404040401004404040404040' 06810017 + DC X'03FFFFFFFFFFFFFFF80E404040404040' 06820017 + DC X'01FFFFFFFFFFFFFFFC1F404040404040' 06830017 + DC X'40FFFFFFFFFFFFFFFE3F804040404040' 06840017 + DC X'407FFFFFFFFFFFFFFC1F404040404040' 06850017 + DC X'403FFFFFFFFFFFFFF80E404040404040' 06860017 + DC X'40404040404040401004404040404040' 06870017 +PATKL DC X'40404040404040404040401040404040' 06880017 + DC X'40404004404040404040403840404040' 06890017 + DC X'4040400FFFFFFFFFFFFFFFFC40404040' 06900017 + DC X'4040401FFFFFFFFFFFFFFFFE40404040' 06910017 + DC X'4040403FFFFFFFFFFFFFFFFF40404040' 06920017 + DC X'4040401FFFFFFFFFFFFFFFFE40404040' 06930017 + DC X'4040400FFFFFFFFFFFFFFFFC40404040' 06940017 + DC X'404040044040C040C040403840404040' 06950017 + DC X'40404040404040406040401040404040' 06960017 + DC X'404040404040E0403040404040404040' 06970017 + DC X'404040404001E0407840404040404040' 06980017 + DC X'404040404003F040FC40404040404040' 06990017 + DC X'404040404007F001FE40404040404040' 07000017 + DC X'40404004400FF803FC40404040404040' 07010017 + DC X'4040400FFFFFE807F840404040404040' 07020017 + DC X'4040401FFFFFCFFFF040404040404040' 07030017 + DC X'4040403FFFFFC7FFE040404040404040' 07040017 + DC X'4040401FFFFF07FFC040404040404040' 07050017 + DC X'4040400FFFFE03FF8040404040404040' 07060017 + DC X'40404004404003FF0040404040404040' 07070017 +PATLL DC X'40404004404040404040400840404040' 07080017 + DC X'4040400FFFFFFFFFFFFFFFFC40404040' 07090017 + DC X'4040401FFFFFFFFFFFFFFFFE40404040' 07100017 + DC X'4040403FFFFFFFFFFFFFFFFF40404040' 07110017 + DC X'4040401FFFFFFFFFFFFFFFFE40404040' 07120017 + DC X'4040400FFFFFFFFFFFFFFFFC40404040' 07130017 + DC X'40404004404040404040400840404040' 07140017 +PATML DC X'40404040404040408040404040404040' 07150017 + DC X'4040400440404040E040404040404040' 07160017 + DC X'4040400FFFFFFFFFF840404040404040' 07170017 + DC X'4040401FFFFFFFFFFE40404040404040' 07180017 + DC X'4040403FFFFFFFFFFE40404040404040' 07190017 + DC X'4040401FFFFFFFFFF840404040404040' 07200017 + DC X'4040400FFFFFFFFFE040404040404040' 07210017 + DC X'40404004404040018040404040404040' 07220017 + DC X'4040404040404040C040404040404040' 07230017 + DC X'40404040404040406040404040404040' 07240017 + DC X'40404040404040403040404040404040' 07250017 + DC X'40404040404040407840404040404040' 07260017 + DC X'4040404040404040FC40404040404040' 07270017 + DC X'4040400440404001FE40404040404040' 07280017 + DC X'4040400FFFFFFFFFFC40404040404040' 07290017 + DC X'4040401FFFFFFFFFF840404040404040' 07300017 + DC X'4040403FFFFFFFFFF040404040404040' 07310017 + DC X'4040401FFFFFFFFFE040404040404040' 07320017 + DC X'4040400FFFFFFFFFC040404040404040' 07330017 + DC X'40404004404040406040404040404040' 07340017 + DC X'40404040404040403040404040404040' 07350017 + DC X'40404040404040407840404040404040' 07360017 + DC X'4040404040404040FC40404040404040' 07370017 + DC X'4040400440404001FE40404040404040' 07380017 + DC X'4040400FFFFFFFFFFC40404040404040' 07390017 + DC X'4040401FFFFFFFFFF840404040404040' 07400017 + DC X'4040403FFFFFFFFFF040404040404040' 07410017 + DC X'4040401FFFFFFFFFE040404040404040' 07420017 + DC X'4040400FFFFFFFFFC040404040404040' 07430017 + DC X'40404004404040404040404040404040' 07440017 +PATNL DC X'40404040404040408040404040404040' 07450017 + DC X'4040400440404040E040404040404040' 07460017 + DC X'4040400FFFFFFFFFF840404040404040' 07470017 + DC X'4040401FFFFFFFFFFE40404040404040' 07480017 + DC X'4040403FFFFFFFFFFE40404040404040' 07490017 + DC X'4040401FFFFFFFFFF840404040404040' 07500017 + DC X'4040400FFFFFFFFFE040404040404040' 07510017 + DC X'40404004404040018040404040404040' 07520017 + DC X'4040404040404040C040404040404040' 07530017 + DC X'40404040404040406040404040404040' 07540017 + DC X'40404040404040403040404040404040' 07550017 + DC X'40404040404040407840404040404040' 07560017 + DC X'4040404040404040FC40404040404040' 07570017 + DC X'4040400440404001FE40404040404040' 07580017 + DC X'4040400FFFFFFFFFFC40404040404040' 07590017 + DC X'4040401FFFFFFFFFF840404040404040' 07600017 + DC X'4040403FFFFFFFFFF040404040404040' 07610017 + DC X'4040401FFFFFFFFFE040404040404040' 07620017 + DC X'4040400FFFFFFFFFC040404040404040' 07630017 + DC X'40404004404040404040404040404040' 07640017 +PATOL DC X'404040401FFFFFF84040404040404040' 07650017 + DC X'404040403FFFFFFC4040404040404040' 07660017 + DC X'404040407FFFFFFE4040404040404040' 07670017 + DC X'40404040FFFFFFFF4040404040404040' 07680017 + DC X'40404001FFFFFFFF8040404040404040' 07690017 + DC X'40404003FC404040C040404040404040' 07700017 + DC X'40404007F84040406040404040404040' 07710017 + DC X'4040400FF04040403040404040404040' 07720017 + DC X'4040401FE04040407840404040404040' 07730017 + DC X'4040403FC0404040FC40404040404040' 07740017 + DC X'4040401F80404001FE40404040404040' 07750017 + DC X'4040400F40404003FC40404040404040' 07760017 + DC X'4040400640404007F840404040404040' 07770017 + DC X'404040034040400FF040404040404040' 07780017 + DC X'404040018040401FE040404040404040' 07790017 + DC X'40404040FFFFFFFFC040404040404040' 07800017 + DC X'404040407FFFFFFF8040404040404040' 07810017 + DC X'404040403FFFFFFF4040404040404040' 07820017 + DC X'404040401FFFFFFE4040404040404040' 07830017 + DC X'404040400FFFFFFC4040404040404040' 07840017 +PATPL DC X'04404040404040402040404040404040' 07850017 + DC X'0E404040404040407040404040404040' 07860017 + DC X'1FFFFFFFFFFFFFFFF840404040404040' 07870017 + DC X'3FFFFFFFFFFFFFFFFC40404040404040' 07880017 + DC X'7FFFFFFFFFFFFFFFFE40404040404040' 07890017 + DC X'3FFFFFFFFFFFFFFFF840404040404040' 07900017 + DC X'1FFFFFFFFFFFFFFFE040404040404040' 07910017 + DC X'0E40400FF0404040C040404040404040' 07920017 + DC X'0440401FE04040406040404040404040' 07930017 + DC X'4040403FC04040403040404040404040' 07940017 + DC X'4040401F804040407840404040404040' 07950017 + DC X'4040400F40404040FC40404040404040' 07960017 + DC X'4040400640404001FE40404040404040' 07970017 + DC X'4040400340404003FC40404040404040' 07980017 + DC X'4040400180404007F840404040404040' 07990017 + DC X'40404040FFFFFFFFF040404040404040' 08000017 + DC X'404040407FFFFFFFE040404040404040' 08010017 + DC X'404040403FFFFFFFC040404040404040' 08020017 + DC X'404040401FFFFFFF8040404040404040' 08030017 + DC X'404040400FFFFFFF0040404040404040' 08040017 +PATQL DC X'404040407FFFFFF84040404040404040' 08050017 + DC X'40404040FFFFFFFC4040404040404040' 08060017 + DC X'40404001FFFFFFFE4040404040404040' 08070017 + DC X'40404003FFFFFFFF4040404040404040' 08080017 + DC X'40404007FFFFFFFF8040404040404040' 08090017 + DC X'4040400FF0404040C040404040404040' 08100017 + DC X'4040401FE04040406040404040404040' 08110017 + DC X'4040403FC04040403040404040404040' 08120017 + DC X'4040401F804040407840404040404040' 08130017 + DC X'4040400F40404040FC40404040404040' 08140017 + DC X'4040400640404001FE40404040404040' 08150017 + DC X'0440400340404003FC40404040404040' 08160017 + DC X'0E40400180404007F840404040404040' 08170017 + DC X'1FFFFFFFFFFFFFFFF040404040404040' 08180017 + DC X'3FFFFFFFFFFFFFFFE040404040404040' 08190017 + DC X'7FFFFFFFFFFFFFFFC040404040404040' 08200017 + DC X'3FFFFFFFFFFFFFFF8040404040404040' 08210017 + DC X'1FFFFFFFFFFFFFFF4040404040404040' 08220017 + DC X'0E404040404040404040404040404040' 08230017 + DC X'04404040404040404040404040404040' 08240017 +PATRL DC X'40404040404040408040404040404040' 08250017 + DC X'4040400440404040E040404040404040' 08260017 + DC X'4040400FFFFFFFFFF840404040404040' 08270017 + DC X'4040401FFFFFFFFFFE40404040404040' 08280017 + DC X'4040403FFFFFFFFFFE40404040404040' 08290017 + DC X'4040401FFFFFFFFFF840404040404040' 08300017 + DC X'4040400FFFFFFFFFE040404040404040' 08310017 + DC X'40404004404040018040404040404040' 08320017 + DC X'4040404040404040C040404040404040' 08330017 + DC X'40404040404040406040404040404040' 08340017 + DC X'40404040404040403040404040404040' 08350017 + DC X'40404040404040407840404040404040' 08360017 + DC X'4040404040404040FC40404040404040' 08370017 + DC X'4040404040404001FE40404040404040' 08380017 + DC X'4040404040404003FC40404040404040' 08390017 + DC X'404040404040403FF840404040404040' 08400017 + DC X'404040404040403FF040404040404040' 08410017 + DC X'404040404040403FE040404040404040' 08420017 + DC X'404040404040403FC040404040404040' 08430017 + DC X'404040404040403F8040404040404040' 08440017 +PATSL DC X'4040403840407FC04040404040404040' 08450017 + DC X'4040400F4001FFF84040404040404040' 08460017 + DC X'40404007C007FFFF4040404040404040' 08470017 + DC X'40404003E007FC40C040404040404040' 08480017 + DC X'40404003F007F801F040404040404040' 08490017 + DC X'40404003F80FF003F840404040404040' 08500017 + DC X'40404003F80FF007FE40404040404040' 08510017 + DC X'40404003FC0FF00FFC40404040404040' 08520017 + DC X'40404003FC0FF00FF840404040404040' 08530017 + DC X'40404003FC0FF01FF040404040404040' 08540017 + DC X'40404007FC0FF01FE040404040404040' 08550017 + DC X'4040400FF80FF01FE040404040404040' 08560017 + DC X'4040401FF80FF01FE040404040404040' 08570017 + DC X'4040403FF00FF00FE040404040404040' 08580017 + DC X'4040400FE00FF00FE040404040404040' 08590017 + DC X'40404007C01FE007E040404040404040' 08600017 + DC X'40404001803FE003E040404040404040' 08610017 + DC X'404040407FFFE001F040404040404040' 08620017 + DC X'404040400FFFC0407840404040404040' 08630017 + DC X'4040404001FF80400C40404040404040' 08640017 +PATTL DC X'40404040404040400440404040404040' 08650017 + DC X'40404040404040400640404040404040' 08660017 + DC X'40404040404040400740404040404040' 08670017 + DC X'40404040404040400780404040404040' 08680017 + DC X'404040404040404007C0404040404040' 08690017 + DC X'404040404040404007E0404040404040' 08700017 + DC X'404040404040404007F0404040404040' 08710017 + DC X'40404003FFFFFFFFFFFFF04040404040' 08720017 + DC X'40404007FFFFFFFFFFFFF84040404040' 08730017 + DC X'4040400FFFFFFFFFFFFFFC4040404040' 08740017 + DC X'4040401FFFFFFFFFFFFFFE4040404040' 08750017 + DC X'4040403FFFFFFFFFFFFFFF4040404040' 08760017 + DC X'4040401F8040404007F0404040404040' 08770017 + DC X'4040400F4040404003F0404040404040' 08780017 + DC X'404040064040404001F0404040404040' 08790017 + DC X'404040034040404040F0404040404040' 08800017 + DC X'40404001804040404070404040404040' 08810017 + DC X'40404040404040404030404040404040' 08820017 + DC X'40404040404040404010404040404040' 08830017 +PATUL DC X'40404040404040402040404040404040' 08840017 + DC X'40404040404040407840404040404040' 08850017 + DC X'40404003FFFFFFFFFE40404040404040' 08860017 + DC X'40404007FFFFFFFFFC40404040404040' 08870017 + DC X'4040400FFFFFFFFFF840404040404040' 08880017 + DC X'4040401FFFFFFFFFF040404040404040' 08890017 + DC X'4040403FFFFFFFFFE040404040404040' 08900017 + DC X'4040401F804040404040404040404040' 08910017 + DC X'4040400F404040404040404040404040' 08920017 + DC X'40404006404040404040404040404040' 08930017 + DC X'40404003404040404040404040404040' 08940017 + DC X'40404001804040402040404040404040' 08950017 + DC X'40404001C04040407840404040404040' 08960017 + DC X'40404003FFFFFFFFFE40404040404040' 08970017 + DC X'4040400FFFFFFFFFFC40404040404040' 08980017 + DC X'4040403FFFFFFFFFF840404040404040' 08990017 + DC X'4040403FFFFFFFFFF040404040404040' 09000017 + DC X'4040400FFFFFFFFFE040404040404040' 09010017 + DC X'40404003804040404040404040404040' 09020017 + DC X'40404001004040404040404040404040' 09030017 +PATVL DC X'40404040404040402040404040404040' 09040017 + DC X'40404040404040407840404040404040' 09050017 + DC X'404040403FFFFFFFFE40404040404040' 09060017 + DC X'404040407FFFFFFFFC40404040404040' 09070017 + DC X'40404040FFFFFFFFF840404040404040' 09080017 + DC X'40404001FFFFFFFFF040404040404040' 09090017 + DC X'40404003FFFFFFFFE040404040404040' 09100017 + DC X'40404007F84040401040404040404040' 09110017 + DC X'4040400FF04040400840404040404040' 09120017 + DC X'4040401FE04040400C40404040404040' 09130017 + DC X'4040403FC04040401E40404040404040' 09140017 + DC X'4040401F804040403F40404040404040' 09150017 + DC X'4040400F404040407F80404040404040' 09160017 + DC X'4040400340404040FFC0404040404040' 09170017 + DC X'40404001E0404003FFE0404040404040' 09180017 + DC X'404040407840401FFFC0404040404040' 09190017 + DC X'404040401F8001FFFF80404040404040' 09200017 + DC X'4040404007FFFFFFFE40404040404040' 09210017 + DC X'4040404040FFFFFFF840404040404040' 09220017 + DC X'40404040401FFFFFC040404040404040' 09230017 + DC X'404040404003FFFE0040404040404040' 09240017 +PATWL DC X'40404040404040401040404040404040' 09250017 + DC X'40404001FFFFFFFFF840404040404040' 09260017 + DC X'40404003FFFFFFFFFC40404040404040' 09270017 + DC X'40404007FFFFFFFFFE40404040404040' 09280017 + DC X'4040400FFFFFFFFFFC40404040404040' 09290017 + DC X'4040401FFFFFFFFFF840404040404040' 09300017 + DC X'4040403FC04040401040404040404040' 09310017 + DC X'4040401F804040404040404040404040' 09320017 + DC X'4040400F404040404040404040404040' 09330017 + DC X'40404006404040404040404040404040' 09340017 + DC X'40404003404040401040404040404040' 09350017 + DC X'40404001FFFFFFFFF840404040404040' 09360017 + DC X'40404003FFFFFFFFFC40404040404040' 09370017 + DC X'40404007FFFFFFFFFE40404040404040' 09380017 + DC X'4040400FFFFFFFFFFC40404040404040' 09390017 + DC X'4040401FFFFFFFFFF840404040404040' 09400017 + DC X'4040403FC04040401040404040404040' 09410017 + DC X'4040400F404040404040404040404040' 09420017 + DC X'40404006404040404040404040404040' 09430017 + DC X'40404003404040401040404040404040' 09440017 + DC X'40404001FFFFFFFFF840404040404040' 09450017 + DC X'40404040FFFFFFFFFC40404040404040' 09460017 + DC X'404040407FFFFFFFFE40404040404040' 09470017 + DC X'404040403FFFFFFFFC40404040404040' 09480017 + DC X'404040401FFFFFFFF840404040404040' 09490017 + DC X'40404040404040401040404040404040' 09500017 +PATXL DC X'40404020404040400840404040404040' 09510017 + DC X'40404018404040400C40404040404040' 09520017 + DC X'4040400E404040400E40404040404040' 09530017 + DC X'4040401F404040401E40404040404040' 09540017 + DC X'4040403F404040403E40404040404040' 09550017 + DC X'40404007E0404040FC40404040404040' 09560017 + DC X'404040403E404007F840404040404040' 09570017 + DC X'4040404007C00FFFF040404040404040' 09580017 + DC X'40404040407FFFFFE040404040404040' 09590017 + DC X'404040401FFFFFFF8040404040404040' 09600017 + DC X'40404040FFFFFFFC4040404040404040' 09610017 + DC X'40404003FFFFFF804040404040404040' 09620017 + DC X'40404007FFFC01F04040404040404040' 09630017 + DC X'4040400FF840403E4040404040404040' 09640017 + DC X'4040401F80404003F040404040404040' 09650017 + DC X'4040403E404040407E40404040404040' 09660017 + DC X'4040403C404040407C40404040404040' 09670017 + DC X'40404038404040403840404040404040' 09680017 + DC X'40404018404040400C40404040404040' 09690017 + DC X'40404004404040400440404040404040' 09700017 +PATYL DC X'40404040404040402040404040404040' 09710017 + DC X'40404040404040407840404040404040' 09720017 + DC X'40FF4003FFFFFFFFFE40404040404040' 09730017 + DC X'01FF4007FFFFFFFFFC40404040404040' 09740017 + DC X'03FF400FFFFFFFFFF840404040404040' 09750017 + DC X'07FF401FFFFFFFFFF040404040404040' 09760017 + DC X'0FFF403FFFFFFFFFE040404040404040' 09770017 + DC X'1FC0401E404040404040404040404040' 09780017 + DC X'3F80400C404040404040404040404040' 09790017 + DC X'7F404006404040404040404040404040' 09800017 + DC X'3E404003404040404040404040404040' 09810017 + DC X'1C404001804040402040404040404040' 09820017 + DC X'0C404040C04040407840404040404040' 09830017 + DC X'07FFFFFFFFFFFFFFFE40404040404040' 09840017 + DC X'03FFFFFFFFFFFFFFFC40404040404040' 09850017 + DC X'01FFFFFFFFFFFFFFF840404040404040' 09860017 + DC X'40FFFFFFFFFFFFFFF040404040404040' 09870017 + DC X'407FFFFFFFFFFFFFE040404040404040' 09880017 +PATZL DC X'40404038404040014040404040404040' 09890017 + DC X'4040403E40404001C040404040404040' 09900017 + DC X'4040401F80404001F040404040404040' 09910017 + DC X'4040401F60404003FC40404040404040' 09920017 + DC X'4040400F8C404003FE40404040404040' 09930017 + DC X'4040400FC3404003FC40404040404040' 09940017 + DC X'4040400FC0C04003F840404040404040' 09950017 + DC X'4040400FC0184003F840404040404040' 09960017 + DC X'4040400FE0064003F840404040404040' 09970017 + DC X'4040400FE0018003F840404040404040' 09980017 + DC X'4040400FE0403003F840404040404040' 09990017 + DC X'4040400FE0400C03F840404040404040' 10000017 + DC X'4040400FE04001C1F840404040404040' 10010017 + DC X'4040400FE0404061F840404040404040' 10020017 + DC X'4040401FE0404018F840404040404040' 10030017 + DC X'4040403FE0404006F840404040404040' 10040017 + DC X'4040401FE0404001FC40404040404040' 10050017 + DC X'40404007C04040403C40404040404040' 10060017 + DC X'40404001C04040400E40404040404040' 10070017 + DC X'40404040804040400240404040404040' 10080017 +PATAU DC X'4040403C404040404040404040404040' 10090017 + DC X'4040400F404040404040404040404040' 10100017 + DC X'40404007C04040404040404040404040' 10110017 + DC X'40404003E04040404040404040404040' 10120017 + DC X'40404003F04040404040404040404040' 10130017 + DC X'40404003F84040404040404040404040' 10140017 + DC X'40404003F84040400640404040404040' 10150017 + DC X'40404007FC4040400380404040404040' 10160017 + DC X'4040400FFFE0404001E0404040404040' 10170017 + DC X'4040400FF07F404040F8404040404040' 10180017 + DC X'4040401FE003FC4040FE404040404040' 10190017 + DC X'4040401FE0400FF040FF404040404040' 10200017 + DC X'4040403FC040403FC0FF804040404040' 10210017 + DC X'4040403FC0404007FFFFC04020404040' 10220017 + DC X'4040403FC0404007FFFFE04018404040' 10230017 + DC X'4040403FC0404007F87FE0400E404040' 10240017 + DC X'4040401FC0404007F801FF800F404040' 10250017 + DC X'40404007E0404007F84007FC0F804040' 10260017 + DC X'40404040F0404007F840401FFFC04040' 10270017 + DC X'404040400C404007F8404040FFC04040' 10280017 + DC X'4040404040404007F840400FFFC04040' 10290017 + DC X'4040404040404007F84007FFFF804040' 10300017 + DC X'4040404040404007F803FFFFFF404040' 10310017 + DC X'4040404040404007F9FFFFFFFC404040' 10320017 + DC X'4040404040404007FFFFFFFFE0404040' 10330017 + DC X'404040404040407FFFFFFFF840404040' 10340017 + DC X'4040404040403FFFFFFFFC4040404040' 10350017 + DC X'40404040401FFFFFFFFE404040404040' 10360017 + DC X'404040400FFFFFFFFF40404040404040' 10370017 + DC X'40404040FFFFFFFFC040404040404040' 10380017 + DC X'40404003FFFFFFC04040404040404040' 10390017 + DC X'4040400FFFFFE0404040404040404040' 10400017 + DC X'4040401FFFF040404040404040404040' 10410017 + DC X'4040403FFC4040404040404040404040' 10420017 + DC X'4040403FC04040404040404040404040' 10430017 + DC X'4040403F804040404040404040404040' 10440017 + DC X'4040403F804040404040404040404040' 10450017 + DC X'4040401F804040404040404040404040' 10460017 + DC X'40404007C04040404040404040404040' 10470017 + DC X'40404001F04040404040404040404040' 10480017 +PATBU DC X'4040402040404040404001E040404040' 10490017 + DC X'4040401C404040404040407E40404040' 10500017 + DC X'4040400E404040404040400FC0404040' 10510017 + DC X'4040400F8040401040404007F0404040' 10520017 + DC X'40404007C040400E40404003F8404040' 10530017 + DC X'40404007E0404007C0404001FC404040' 10540017 + DC X'40404007F0404003F0404001FE404040' 10550017 + DC X'40404003F8404003F8404001FE404040' 10560017 + DC X'40404003F8404003FC404001FE404040' 10570017 + DC X'40404003FC404003FE404003FC404040' 10580017 + DC X'40404003FC404003FF404003FC404040' 10590017 + DC X'40404003FE404007FF404003FC404040' 10600017 + DC X'40404003FFFFFFFFFFFFFFFDFE404040' 10610017 + DC X'40404003FEFFFFFFFFFFFFFEFE404040' 10620017 + DC X'40404003FF7FFFFFFFFFFFFF7F404040' 10630017 + DC X'40404003FF1FFFFFFFFFFFFF9F404040' 10640017 + DC X'40404003FFC7FFFFFFFFFFFFE3804040' 10650017 + DC X'40404003FF80FFFFFFFFFFFFFCC04040' 10660017 + DC X'40404003FF80404040304003FFC04040' 10670017 + DC X'40404003FFC0404040304003FFC04040' 10680017 + DC X'40404003FFC0404040304003FFC04040' 10690017 + DC X'40404003FFC0404040304003FF804040' 10700017 + DC X'40404003FFC0404040304003FF804040' 10710017 + DC X'40404003FFC0404040704007FF804040' 10720017 + DC X'40404003FF80404040F04007FF404040' 10730017 + DC X'40404003FF80404001F04007FE404040' 10740017 + DC X'40404003FF80404003F0400FFE404040' 10750017 + DC X'40404007FF80404007F0400FFC404040' 10760017 + DC X'40404007FF4040400FF0401FFC404040' 10770017 + DC X'4040400FFF4040401FF0401FF8404040' 10780017 + DC X'4040400FFF4040407FB0403FF0404040' 10790017 + DC X'4040401FFE404040FFB0403FE0404040' 10800017 + DC X'4040403FFE404003FF18407FC0404040' 10810017 + DC X'4040401FFE40400FFE1C01FF80404040' 10820017 + DC X'40404007FC40403FFE1F03FF40404040' 10830017 + DC X'40404001FC4040FFFC0FFFFE40404040' 10840017 + DC X'40404040F84003FFF807FFFC40404040' 10850017 + DC X'4040404038401FFFF003FFF040404040' 10860017 + DC X'404040400707FFFFC001FFC040404040' 10870017 + DC X'4040404001FFFFFF40403E4040404040' 10880017 + DC X'40404040403FFFFC4040404040404040' 10890017 + DC X'404040404007FFE04040404040404040' 10900017 +PATCU DC X'404040404040401FF040404040404040' 10910017 + DC X'40404040404007FFFFC0404040404040' 10920017 + DC X'404040404040FFFFFFFE404040404040' 10930017 + DC X'404040404007FFFFFFFFC04040404040' 10940017 + DC X'40404040403FFFFFFFFFF84040404040' 10950017 + DC X'4040404040FFFFFFFFFFFE4040404040' 10960017 + DC X'4040404003FFFFF83003FF8040404040' 10970017 + DC X'404040400FFFFF401E401FE040404040' 10980017 + DC X'404040403FFFF0400F8001F040404040' 10990017 + DC X'404040407FFF80400FE040B840404040' 11000017 + DC X'40404040FFFE40400FF0404E40404040' 11010017 + DC X'40404001FFF840401FF8402340404040' 11020017 + DC X'40404003FFFFFFFFFFFFFFF180404040' 11030017 + DC X'40404007FFDFFFFFFFFFFFF8C0404040' 11040017 + DC X'4040400FFF0FFFFFFFFFFFFC20404040' 11050017 + DC X'4040401FFE07FFFFFFFFFFFE40404040' 11060017 + DC X'4040401FFC03FFFFFFFFFFFF40404040' 11070017 + DC X'4040401FF801FFFFFFFFFFFF80404040' 11080017 + DC X'4040403FF040404040404001E0404040' 11090017 + DC X'4040403FE040404040404003F8404040' 11100017 + DC X'4040403FC040404040404007FE404040' 11110017 + DC X'4040403FC04040404040400FFFC04040' 11120017 + DC X'4040403F804040404040401FFF804040' 11130017 + DC X'4040403F804040404040403FFF404040' 11140017 + DC X'4040403F404040404040407FFE404040' 11150017 + DC X'4040403F40404040404040FFFC404040' 11160017 + DC X'4040403E40404040404001FFF8404040' 11170017 + DC X'4040403E40404040404003FFF0404040' 11180017 + DC X'4040403E40404040404007FFE0404040' 11190017 + DC X'4040401E40404040404007FFC0404040' 11200017 + DC X'4040401E40404040404007FF80404040' 11210017 + DC X'4040400E40404040404007FF80404040' 11220017 + DC X'4040400F40404040404007FF40404040' 11230017 + DC X'4040400740404040404003FE40404040' 11240017 + DC X'4040400380404040404001FE40404040' 11250017 + DC X'4040400180404040404040FE40404040' 11260017 + DC X'40404040C04040404040407E40404040' 11270017 + DC X'40404040604040404040401E40404040' 11280017 + DC X'40404040104040404040400740404040' 11290017 +PATDU DC X'4040402040404040404001E040404040' 11300017 + DC X'4040401C404040404040407E40404040' 11310017 + DC X'4040400E404040404040400FC0404040' 11320017 + DC X'4040400F8040401040404007F0404040' 11330017 + DC X'40404007C040400E40404003F8404040' 11340017 + DC X'40404007E0404007C0404001FC404040' 11350017 + DC X'40404007F0404003F0404001FE404040' 11360017 + DC X'40404003F8404003F8404001FE404040' 11370017 + DC X'40404003F8404003FC404001FE404040' 11380017 + DC X'40404003FC404003FE404003FC404040' 11390017 + DC X'40404003FC404003FF404003FC404040' 11400017 + DC X'40404003FE404007FF404003FC404040' 11410017 + DC X'40404003FFFFFFFFFFFFFFFDFE404040' 11420017 + DC X'40404003FEFFFFFFFFFFFFFEFE404040' 11430017 + DC X'40404003FF7FFFFFFFFFFFFF7F404040' 11440017 + DC X'40404003FF1FFFFFFFFFFFFF9F404040' 11450017 + DC X'40404003FFC7FFFFFFFFFFFFE3804040' 11460017 + DC X'40404003FF80FFFFFFFFFFFFFCC04040' 11470017 + DC X'40404003FF80404040404003FFC04040' 11480017 + DC X'40404003FFC0404040404003FFC04040' 11490017 + DC X'40404003FFC0404040404007FF804040' 11500017 + DC X'40404003FFC040404040400FFF804040' 11510017 + DC X'40404003FFC040404040400FFF404040' 11520017 + DC X'40404003FFC040404040401FFF404040' 11530017 + DC X'40404003FF8040404040403FFF404040' 11540017 + DC X'40404003FF8040404040407FFE404040' 11550017 + DC X'40404003FF804040404040FFFC404040' 11560017 + DC X'40404007FF804040404001FFF8404040' 11570017 + DC X'40404007FF404040404007FFF0404040' 11580017 + DC X'4040400FFF40404040400FFFE0404040' 11590017 + DC X'4040400FFF40404040403FFFC0404040' 11600017 + DC X'4040401FFE40404040407FFF40404040' 11610017 + DC X'4040403FFE4040404001FFFE40404040' 11620017 + DC X'4040401FFE4040404007FFF840404040' 11630017 + DC X'40404007FC404040401FFFF040404040' 11640017 + DC X'40404001FC404040407FFFC040404040' 11650017 + DC X'40404040F840404003FFFF4040404040' 11660017 + DC X'40404040384040401FFFFC4040404040' 11670017 + DC X'4040404007404001FFFFE04040404040' 11680017 + DC X'4040404040F8407FFFFC404040404040' 11690017 + DC X'404040404007FFFFFF80404040404040' 11700017 + DC X'4040404040003FFFF000404040404040' 11710017 +PATEU DC X'4040402040404040404001E040404040' 11720017 + DC X'40404038404040404040407E40404040' 11730017 + DC X'4040401E404040404040400FC0404040' 11740017 + DC X'4040400F4040401040404007F0404040' 11750017 + DC X'404040078040400E40404003F8404040' 11760017 + DC X'40404003E0404007C0404001FC404040' 11770017 + DC X'40404003F0404003F0404001FE404040' 11780017 + DC X'40404003F8404003F8404001FE404040' 11790017 + DC X'40404003FC404003FC404001FE404040' 11800017 + DC X'40404003FE404003FE404003FC404040' 11810017 + DC X'40404001FE404003FF404003FC404040' 11820017 + DC X'40404001FF404007FF404003FC404040' 11830017 + DC X'40404001FFFFFFFFFFFFFFFDFE404040' 11840017 + DC X'40404003FFFFFFFFFFFFFFFEFE404040' 11850017 + DC X'40404003FFBFFFFFFFFFFFFF7F404040' 11860017 + DC X'40404003FF8FFFFFFFFFFFFF9F404040' 11870017 + DC X'40404007FFC3FFFFFFFFFFFFE3804040' 11880017 + DC X'4040400FFF407FFFFFFFFFFFFCC04040' 11890017 + DC X'4040400FFF404040E0404003FFC04040' 11900017 + DC X'4040401FFF40404078404007FF804040' 11910017 + DC X'4040401FFE404040FE404007FF404040' 11920017 + DC X'4040401FFE404001FF804007FE404040' 11930017 + DC X'4040403FFE404003FF404007FE404040' 11940017 + DC X'4040403FFC404007FE404007FE404040' 11950017 + DC X'4040403FFC40400FFC404003FC404040' 11960017 + DC X'4040403FFC40401FF8404003FC404040' 11970017 + DC X'4040403FF8404007F8404001FC404040' 11980017 + DC X'4040403FF8404001F8404001FC404040' 11990017 + DC X'4040403FF8404040F0404040FC404040' 12000017 + DC X'4040403FF840404030404040FC404040' 12010017 + DC X'4040403FF8404040404040407E404040' 12020017 + DC X'4040403FF8404040404040403E404040' 12030017 + DC X'4040400FF8404040404040401E404040' 12040017 + DC X'40404003F8404040404040400F404040' 12050017 + DC X'40404040FC4040404040404003804040' 12060017 + DC X'404040403E4040404040404040C04040' 12070017 + DC X'404040400E4040404040404040404040' 12080017 + DC X'40404040034040404040404040404040' 12090017 + DC X'4040404000C040404040404040404040' 12100017 +PATFU DC X'4040402040404040404001E040404040' 12110017 + DC X'40404038404040404040407E40404040' 12120017 + DC X'4040401E404040404040400FC0404040' 12130017 + DC X'4040400F4040401040404007F0404040' 12140017 + DC X'404040078040400E40404003F8404040' 12150017 + DC X'40404003E0404007C0404001FC404040' 12160017 + DC X'40404003F0404003F0404001FE404040' 12170017 + DC X'40404003F8404003F8404001FE404040' 12180017 + DC X'40404003FC404003FC404001FE404040' 12190017 + DC X'40404003FE404003FE404003FC404040' 12200017 + DC X'40404003FF404003FF404003FC404040' 12210017 + DC X'40404001FF404007FF404003FC404040' 12220017 + DC X'40404001FFFFFFFFFFFFFFFDFE404040' 12230017 + DC X'40404040FFFFFFFFFFFFFFFEFE404040' 12240017 + DC X'404040407FFFFFFFFFFFFFFF7F404040' 12250017 + DC X'404040403FFFFFFFFFFFFFFF9F404040' 12260017 + DC X'404040400FFFFFFFFFFFFFFFE3804040' 12270017 + DC X'4040404003FFFFFFFFFFFFFFFCC04040' 12280017 + DC X'4040404040404040E0404003FFC04040' 12290017 + DC X'404040404040404078404007FF804040' 12300017 + DC X'4040404040404040FE404007FF404040' 12310017 + DC X'4040404040404001FF804007FE404040' 12320017 + DC X'4040404040404003FF404007FE404040' 12330017 + DC X'4040404040404007FE404007FE404040' 12340017 + DC X'404040404040400FFC404003FC404040' 12350017 + DC X'404040404040401FF8404003FC404040' 12360017 + DC X'4040404040404007F8404001FC404040' 12370017 + DC X'4040404040404001F8404001FC404040' 12380017 + DC X'4040404040404040F0404040FC404040' 12390017 + DC X'404040404040404060404040FC404040' 12400017 + DC X'4040404040404040404040407E404040' 12410017 + DC X'4040404040404040404040403E404040' 12420017 + DC X'4040404040404040404040401E404040' 12430017 + DC X'4040404040404040404040400F404040' 12440017 + DC X'40404040404040404040404003804040' 12450017 + DC X'40404040404040404040404040C04040' 12460017 +PATGU DC X'404040404040401FF040404040404040' 12470017 + DC X'40404040404007FFFFC0404040404040' 12480017 + DC X'404040404040FFFFFFFE404040404040' 12490017 + DC X'404040404007FFFFFFFFC04040404040' 12500017 + DC X'40404040403FFFFFFFFFF84040404040' 12510017 + DC X'4040404040FFFFFFFFFFFE4040404040' 12520017 + DC X'4040404003FFFFF83003FF8040404040' 12530017 + DC X'404040400FFFFF401E401FE040404040' 12540017 + DC X'404040403FFFF0400F8001F040404040' 12550017 + DC X'404040407FFF80400FE040B840404040' 12560017 + DC X'40404040FFFE40400FF0404E40404040' 12570017 + DC X'40404001FFF840401FF8402340404040' 12580017 + DC X'40404003FFFFFFFFFFFFFFF180404040' 12590017 + DC X'40404007FFDFFFFFFFFFFFF8C0404040' 12600017 + DC X'4040400FFF0FFFFFFFFFFFFC20404040' 12610017 + DC X'4040401FFE07FFFFFFFFFFFE40404040' 12620017 + DC X'4040401FFC03FFFFFFFFFFFF40404040' 12630017 + DC X'4040401FF801FFFFFFFFFFFF80404040' 12640017 + DC X'4040403FF040400340404001E0404040' 12650017 + DC X'4040403FE0404001C0404003F8404040' 12660017 + DC X'4040403FC0404040F8404007FE404040' 12670017 + DC X'4040403FC04040407E40400FFFC04040' 12680017 + DC X'4040403F804040403EC0401FFF804040' 12690017 + DC X'4040403F804040403F30403FFF404040' 12700017 + DC X'4040403F404040401F9C407FFE404040' 12710017 + DC X'4040403F404040401FCE40FFFC404040' 12720017 + DC X'4040403E404040401FC701FFF8404040' 12730017 + DC X'4040403E404040401FE3C3FFF0404040' 12740017 + DC X'4040401E404040401FE1C7FFE0404040' 12750017 + DC X'4040401E404040401FE1C7FFC0404040' 12760017 + DC X'4040400E404040401FE1C7FF80404040' 12770017 + DC X'4040400F404040403FC1C7FF40404040' 12780017 + DC X'40404007404040403FC0E7FE40404040' 12790017 + DC X'40404003404040407F80E3FE40404040' 12800017 + DC X'4040400180404040FF40E1FE40404040' 12810017 + DC X'40404040C0404003FE4070FE40404040' 12820017 + DC X'404040402040400FFC40387E40404040' 12830017 + DC X'404040401840403FF0400E1E40404040' 12840017 + DC X'40404040064001FFC04003C640404040' 12850017 + DC X'4040404001C07FFF8040407340404040' 12860017 + DC X'40404040403FFFF84040400C40404040' 12870017 + DC X'404040404001FF804040404040404040' 12880017 +PATHU DC X'4040403840404040404001E040404040' 12890017 + DC X'4040400F404040404040407E40404040' 12900017 + DC X'40404007C04040404040400FC0404040' 12910017 + DC X'40404007F040401040404007F0404040' 12920017 + DC X'40404007F840400E40404003F8404040' 12930017 + DC X'40404003FC404007C0404001FC404040' 12940017 + DC X'40404003FC404003F0404001FE404040' 12950017 + DC X'40404003FE404003F8404001FE404040' 12960017 + DC X'40404003FE404003FC404001FE404040' 12970017 + DC X'40404007FC404003FE404003FC404040' 12980017 + DC X'40404007FC404003FF404003FC404040' 12990017 + DC X'40404007F8404007FF404003FC404040' 13000017 + DC X'40404007FFFFFFFFFFFFFFFDFE404040' 13010017 + DC X'4040400FF7FFFFFFFFFFFFFEFE404040' 13020017 + DC X'4040401FF3FFFFFFFFFFFFFF7F404040' 13030017 + DC X'4040401FE0FFFFFFFFFFFFFF9F404040' 13040017 + DC X'4040403FC03FFFFFFFFFFFFFE3804040' 13050017 + DC X'3040403FC003FFFFFFFF8003FFC04040' 13060017 + DC X'1C40403FC0404040400C4007FF804040' 13070017 + DC X'0E40403FC040404040064007FF404040' 13080017 + DC X'0F80403FC040404040074007FE404040' 13090017 + DC X'07C0403FC0404040400F8007FE404040' 13100017 + DC X'03E0401FE0404040401FC007FE404040' 13110017 + DC X'01F8400FE0404040403FE003FC404040' 13120017 + DC X'40FE4003F0404040403FF003FC404040' 13130017 + DC X'407F804078404040407FF801FC404040' 13140017 + DC X'403FE0400E404040407FF001FC404040' 13150017 + DC X'401FFC4040404040407FE040FC404040' 13160017 + DC X'4007FF804040404040FFE040FC404040' 13170017 + DC X'4003FFFFFFFFFFFFFFFFC0407E404040' 13180017 + DC X'4040FFFFFFFFFFFFFFFFC0403E404040' 13190017 + DC X'40401FFFFFFFFFFFFFFF80401E404040' 13200017 + DC X'404007FFFFFFFFFFFFFF80400F404040' 13210017 + DC X'404001FFFFFFFFFFFFFF804003804040' 13220017 + DC X'4040401FFFFFFFFFFFFF804040C04040' 13230017 + DC X'4040404040404040400FC04040404040' 13240017 + DC X'40404040404040404003E04040404040' 13250017 + DC X'40404040404040404040704040404040' 13260017 + DC X'40404040404040404040084040404040' 13270017 +PATIU DC X'4040402040404040404001E040404040' 13280017 + DC X'40404038404040404040407E40404040' 13290017 + DC X'4040401E404040404040400FC0404040' 13300017 + DC X'4040400F4040401040404007F0404040' 13310017 + DC X'404040078040400E40404003F8404040' 13320017 + DC X'40404003E0404007C0404001FC404040' 13330017 + DC X'40404003F0404003F0404001FE404040' 13340017 + DC X'40404003F8404003F8404001FE404040' 13350017 + DC X'40404003FC404003FC404001FE404040' 13360017 + DC X'40404003FE404003FE404003FC404040' 13370017 + DC X'40404007FF404003FF404003FC404040' 13380017 + DC X'40404007FF404007FF404003FC404040' 13390017 + DC X'4040400FFFFFFFFFFFFFFFFDFE404040' 13400017 + DC X'4040401FFFFFFFFFFFFFFFFEFE404040' 13410017 + DC X'4040401FFFFFFFFFFFFFFFFF7F404040' 13420017 + DC X'4040403FFFFFFFFFFFFFFFFF9F404040' 13430017 + DC X'4040400FFFFFFFFFFFFFFFFFE3804040' 13440017 + DC X'40404001FFFFFFFFFFFFFFFFF8C04040' 13450017 +PATJU DC X'404040401FFF40404040404040404040' 13460017 + DC X'40404001FFFFE0404040404040404040' 13470017 + DC X'40404007FFFFF8404040404040404040' 13480017 + DC X'4040400FFFFFFE40404001E040404040' 13490017 + DC X'4040400FFFE3FF404040407E40404040' 13500017 + DC X'4040401FFE401F804040400FC0404040' 13510017 + DC X'4040401FF04003E010404007F0404040' 13520017 + DC X'4040403FC04040F860404003F8404040' 13530017 + DC X'4040403F8040403FC0404001FC404040' 13540017 + DC X'4040403F4040400F40404001FE404040' 13550017 + DC X'4040401E4040404040404001FE404040' 13560017 + DC X'4040401E4040404040404001FE404040' 13570017 + DC X'4040400F404040404003FC03FC404040' 13580017 + DC X'404040078040404007FFFFC3FC404040' 13590017 + DC X'40404003C0404040FFFFFFFBFC404040' 13600017 + DC X'40404001F04040FFFFFFFFFDFE404040' 13610017 + DC X'404040407FFFFFFFFFFFFFFEFE404040' 13620017 + DC X'404040401FFFFFFFFFFFFFFF7F404040' 13630017 + DC X'4040404007FFFFFFFF80407F9F404040' 13640017 + DC X'4040404040FFFFFFC040400FE3804040' 13650017 + DC X'404040404007FFE040404001F8C04040' 13660017 + DC X'4040404040404040404040403E404040' 13670017 + DC X'40404040404040404040404003404040' 13680017 +PATKU DC X'4040403840404040404001E040404040' 13690017 + DC X'4040400F404040404040407E40404040' 13700017 + DC X'40404007C04040404040400FC0404040' 13710017 + DC X'40404007F040401040404007F0404040' 13720017 + DC X'40404007F840400E40404003F8404040' 13730017 + DC X'40404003FC404007C0404001FC404040' 13740017 + DC X'40404003FC404003F0404001FE404040' 13750017 + DC X'40404003FE404003F8404001FE404040' 13760017 + DC X'40404003FE404003FC404001FE404040' 13770017 + DC X'40404007FC404003FE404003FC404040' 13780017 + DC X'40404007FC404003FF404003FC404040' 13790017 + DC X'40404007F8404007FF404003FC404040' 13800017 + DC X'40404007FFFFFFFFFFFFFFFDFE404040' 13810017 + DC X'4040400FF7FFFFFFFFFFFFFEFE404040' 13820017 + DC X'4040401FF3FFFFFFFFFFFFFF7F404040' 13830017 + DC X'4040401FE0FFFFFFFFFFFFFF9F404040' 13840017 + DC X'4040403FC03FFFFFFFFFFFFFE3804040' 13850017 + DC X'4040403FC003FFFFFFFFFFFFFCC04040' 13860017 + DC X'4040403FC040401840064003FFC04040' 13870017 + DC X'4040403FC040400C40034007FF804040' 13880017 + DC X'4040403FC040400E40018007FF404040' 13890017 + DC X'4040403FC040400F4003C007FE404040' 13900017 + DC X'4040403FC040400F800FE007FE404040' 13910017 + DC X'4040401FE040400FC03FF007FE404040' 13920017 + DC X'4040400FE040401FE0FFF803FC404040' 13930017 + DC X'40404003F040403FF3FFFC03FC404040' 13940017 + DC X'40404040784040FFDFFFF001FC404040' 13950017 + DC X'404040400E4007FF8FFFC001FC404040' 13960017 + DC X'404040404007FFFFC7FF4040FC404040' 13970017 + DC X'404040400FFFFFFF03FC4040FC404040' 13980017 + DC X'40404040FFFFFFFE01F040407E404040' 13990017 + DC X'40404003FFFFFFFC40C040403E404040' 14000017 + DC X'40404007FFFFFFE0404040401E404040' 14010017 + DC X'4040400FFFFFE040404040400F404040' 14020017 + DC X'4040401FFFE040404040404003804040' 14030017 + DC X'4040401FFC4040404040404040C04040' 14040017 + DC X'4040403FE04040404040404040404040' 14050017 + DC X'4040403F804040404040404040404040' 14060017 + DC X'4040403F404040404040404040404040' 14070017 + DC X'4040401E404040404040404040404040' 14080017 + DC X'40404003404040404040404040404040' 14090017 +PATLU DC X'4040402040404040404001E040404040' 14100017 + DC X'40404038404040404040407E40404040' 14110017 + DC X'4040401E404040404040400FC0404040' 14120017 + DC X'4040400F4040401040404007F0404040' 14130017 + DC X'404040078040400E40404003F8404040' 14140017 + DC X'40404007E0404007C0404001FC404040' 14150017 + DC X'40404003F0404003F0404001FE404040' 14160017 + DC X'40404001F8404003F8404001FE404040' 14170017 + DC X'40404001FC404003FC404001FE404040' 14180017 + DC X'40404040FE404003FE404003FC404040' 14190017 + DC X'40404040FF404003FF404003FC404040' 14200017 + DC X'40404040FF404007FF404003FC404040' 14210017 + DC X'40404040FFFFFFFFFFFFFFFDFE404040' 14220017 + DC X'40404001FF7FFFFFFFFFFFFEFE404040' 14230017 + DC X'40404001FFBFFFFFFFFFFFFF7F404040' 14240017 + DC X'40404003FF8FFFFFFFFFFFFF9F404040' 14250017 + DC X'40404003FFC3FFFFFFFFFFFFE3804040' 14260017 + DC X'40404007FF407FFFFFFFFFFFFCC04040' 14270017 + DC X'40404007FF40404040404003FFC04040' 14280017 + DC X'4040400FFF40404040404007FE404040' 14290017 + DC X'4040400FFE40404040404007FC404040' 14300017 + DC X'4040401FFE40404040404003F8404040' 14310017 + DC X'4040401FFC40404040404001F0404040' 14320017 + DC X'4040401FF840404040404040F0404040' 14330017 + DC X'4040403FF04040404040404070404040' 14340017 + DC X'4040403FF04040404040404038404040' 14350017 + DC X'4040403FE0404040404040400C404040' 14360017 + DC X'4040403FE04040404040404040404040' 14370017 + DC X'4040401FE04040404040404040404040' 14380017 + DC X'4040401FE04040404040404040404040' 14390017 + DC X'4040400FE04040404040404040404040' 14400017 + DC X'4040400FE04040404040404040404040' 14410017 + DC X'40404007E04040404040404040404040' 14420017 + DC X'40404003E04040404040404040404040' 14430017 + DC X'40404001E04040404040404040404040' 14440017 + DC X'40404040704040404040404040404040' 14450017 + DC X'40404040184040404040404040404040' 14460017 + DC X'40404040064040404040404040404040' 14470017 +PATMU DC X'4040403040404040404001E040404040' 14480017 + DC X'4040400E404040404040407E40404040' 14490017 + DC X'40404007804040404040400FC0404040' 14500017 + DC X'40404003C040401040404007F0404040' 14510017 + DC X'40404003F040400E40404003F8404040' 14520017 + DC X'40404003F8404007C0404001FC404040' 14530017 + DC X'40404003FC404003F0404001FE404040' 14540017 + DC X'40404003FE404003F8404001FE404040' 14550017 + DC X'40404003FE404003FC404001FE404040' 14560017 + DC X'40404003FF404003FE404003FC404040' 14570017 + DC X'40404003FF404003FF404003FC404040' 14580017 + DC X'40404007FF404007FF404003FC404040' 14590017 + DC X'4040400FFFFFFFFFFFFFFFFDFE404040' 14600017 + DC X'4040403FFFFFFFFFFFFFFFFEFE404040' 14610017 + DC X'4040401FFFFFFFFFFFFFFFFF7F404040' 14620017 + DC X'40404007FFFFFFFFFFFFFFFF9F404040' 14630017 + DC X'40404001FFFFFFFFFFFFFFFFE3804040' 14640017 + DC X'404040401FFFFFFFFFFFFFFFFCC04040' 14650017 + DC X'404040404040404040404003FFC04040' 14660017 + DC X'404040404040404040404007FF804040' 14670017 + DC X'40404040404040104040400FFF404040' 14680017 + DC X'404040404040400E4040401FFE404040' 14690017 + DC X'4040404040404007C040403FFC404040' 14700017 + DC X'4040404040404003F040407FF8404040' 14710017 + DC X'4040404040404003F84040FFF0404040' 14720017 + DC X'4040404040404003FC4001FFE0404040' 14730017 + DC X'4040400140404003FE4003FFC0404040' 14740017 + DC X'4040400380404003FF4007FF80404040' 14750017 + DC X'40404007C0404007FF400FFF40404040' 14760017 + DC X'4040400FFFFFFFFFFFFFFFFE40404040' 14770017 + DC X'4040401FFFFFFFFFFFFFFFFC40404040' 14780017 + DC X'4040403FFFFFFFFFFFFFFFF840404040' 14790017 + DC X'4040401FFFFFFFFFFFFFFFF040404040' 14800017 + DC X'4040400FFFFFFFFFFFFFFFE040404040' 14810017 + DC X'40404007FFFFFFFFFFFFFFC040404040' 14820017 + DC X'40404003E040400FFC40407040404040' 14830017 + DC X'40404001C040400FF840401C40404040' 14840017 + DC X'4040404080404007F840400740404040' 14850017 + DC X'4040404040404003F8404001C0404040' 14860017 + DC X'4040404040404001F8404040F0404040' 14870017 + DC X'4040404040404040F8404001FC404040' 14880017 + DC X'40404040404040407C404001FF404040' 14890017 + DC X'40404040404040400E404003FFC04040' 14900017 + DC X'404040014040404001404003FF804040' 14910017 + DC X'404040038040404040404007FF404040' 14920017 + DC X'40404007C040404040404007FE404040' 14930017 + DC X'4040400FFFFFFFFFFFFFFFFFFC404040' 14940017 + DC X'4040401FFFFFFFFFFFFFFFFFFC404040' 14950017 + DC X'4040403FFFFFFFFFFFFFFFFFFC404040' 14960017 + DC X'4040401FFFFFFFFFFFFFFFFFFC404040' 14970017 + DC X'4040400FFFFFFFFFFFFFFFFFFE404040' 14980017 + DC X'40404007FFFFFFFFFFFFFFFFFE404040' 14990017 + DC X'40404003E0404040404040401F404040' 15000017 + DC X'40404001C0404040404040400F404040' 15010017 + DC X'40404040804040404040404003804040' 15020017 + DC X'40404040404040404040404000C04040' 15030017 +PATNU DC X'404040304040400380404040C0404040' 15040017 + DC X'4040401C40404040F040404070404040' 15050017 + DC X'4040400F404040407C4040403C404040' 15060017 + DC X'40404007C04040403F4040403E404040' 15070017 + DC X'40404007E04040403F8040403F404040' 15080017 + DC X'40404003F04040403FC040407F804040' 15090017 + DC X'40404003F84040407FE04040FFC04040' 15100017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 15110017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 15120017 + DC X'40404003FFFFFFFFFFFFFFFFFF804040' 15130017 + DC X'40404003FF404040404001FFFF404040' 15140017 + DC X'40404007FF40404040401FFFFC404040' 15150017 + DC X'40404007FF8040404040FFFFF0404040' 15160017 + DC X'4040400FFF8040404007FFFF80404040' 15170017 + DC X'4040403FFF804040403FFFFC40404040' 15180017 + DC X'4040400FFF80404001FFFFE040404040' 15190017 + DC X'40404003FF8040400FFFFF4040404040' 15200017 + DC X'40404040FF8040407FFFF84040404040' 15210017 + DC X'404040407F804003FFFFC04040404040' 15220017 + DC X'404040400F40401FFFFE404040404040' 15230017 + DC X'40404040024040FFFFF0400440404040' 15240017 + DC X'40404040404007FFFF80400F40404040' 15250017 + DC X'4040404040403FFFFC40401FC0404040' 15260017 + DC X'404040404001FFFFE040401FF0404040' 15270017 + DC X'40404040400FFFFF4040401FFC404040' 15280017 + DC X'40404040407FFFF84040401FFF404040' 15290017 + DC X'4040404003FFFFC04040401FFFC04040' 15300017 + DC X'404040401FFFFE404040401FFF404040' 15310017 + DC X'40404040FFFFF0404040401FFE404040' 15320017 + DC X'40404007FFFF80404040400FFE404040' 15330017 + DC X'4040400FFFFC40404040400FFC404040' 15340017 + DC X'4040401FFFFFFFFFFFFFFFFFFC404040' 15350017 + DC X'4040403FFFFFFFFFFFFFFFFFFC404040' 15360017 + DC X'4040403FFFFFFFFFFFFFFFFFFC404040' 15370017 + DC X'4040403FF840404040404001FC404040' 15380017 + DC X'4040403FF040404040404040FC404040' 15390017 + DC X'4040401FE0404040404040407E404040' 15400017 + DC X'40404007E0404040404040403E404040' 15410017 + DC X'40404001E0404040404040400F404040' 15420017 + DC X'40404040704040404040404003804040' 15430017 + DC X'404040400C4040404040404000C04040' 15440017 +PATOU DC X'404040404040401FF040404040404040' 15450017 + DC X'40404040404003FFFFE0404040404040' 15460017 + DC X'404040404040FFFFFFFE404040404040' 15470017 + DC X'404040404007FFFFFFFFE04040404040' 15480017 + DC X'40404040403FFFFFFFFFF84040404040' 15490017 + DC X'4040404040FFFFFFFFFFFE4040404040' 15500017 + DC X'4040404003FFFFF81803FF8040404040' 15510017 + DC X'404040400FFFFF400E406FE040404040' 15520017 + DC X'404040403FFFF0400F8030F840404040' 15530017 + DC X'404040407FFF80400FC0183C40404040' 15540017 + DC X'40404040FFFE40400FE00C0E40404040' 15550017 + DC X'40404001FFF840401FF0060340404040' 15560017 + DC X'40404003FFFFFFFFFFFFFF4040404040' 15570017 + DC X'40404007FF8FFFFFFFFFFF8040404040' 15580017 + DC X'4040400FFF07FFFFFFFFFFC040404040' 15590017 + DC X'4040400FFE03FFFFFFFFFFF040404040' 15600017 + DC X'4040401FFC40FFFFFFFFFFF840404040' 15610017 + DC X'4040401FF8400FFFFFFFFFFE40404040' 15620017 + DC X'4040403FF04040404040400380404040' 15630017 + DC X'4040401FE040404040404007E0404040' 15640017 + DC X'40404007C04040404040400FFC404040' 15650017 + DC X'40404003804040404040401FFFC04040' 15660017 + DC X'40404001804040404040401FFF804040' 15670017 + DC X'40404040C04040404040403FFF404040' 15680017 + DC X'40404040304040404040407FFF404040' 15690017 + DC X'4040404018404040404040FFFE404040' 15700017 + DC X'4040404006404040404003FFFC404040' 15710017 + DC X'4040404003804040404007FFF8404040' 15720017 + DC X'4040404040F0404040400FFFF0404040' 15730017 + DC X'40404040407E404040403FFFE0404040' 15740017 + DC X'40404040401FC0404001FFFF80404040' 15750017 + DC X'404040404007F840400FFFFE40404040' 15760017 + DC X'404040404001FFC040FFFFF840404040' 15770017 + DC X'4040404040407FFFFFFFFFC040404040' 15780017 + DC X'4040404040400FFFFFFFFF4040404040' 15790017 + DC X'40404040404003FFFFFFF84040404040' 15800017 + DC X'404040404040407FFFFFC04040404040' 15810017 + DC X'404040404040400FFFFE404040404040' 15820017 + DC X'40404040404040407FC0404040404040' 15830017 +PATPU DC X'4040403840404040404001E040404040' 15840017 + DC X'4040400F404040404040407E40404040' 15850017 + DC X'40404007C04040404040400FC0404040' 15860017 + DC X'40404007F040401040404007F0404040' 15870017 + DC X'40404007F840400E40404003F8404040' 15880017 + DC X'40404003FC404007C0404001FC404040' 15890017 + DC X'40404003FC404003F0404001FE404040' 15900017 + DC X'40404003FE404003F8404001FE404040' 15910017 + DC X'40404003FE404003FC404001FE404040' 15920017 + DC X'40404007FC404003FE404003FC404040' 15930017 + DC X'40404007FC404003FF404003FC404040' 15940017 + DC X'40404007F8404007FF404003FC404040' 15950017 + DC X'40404007FFFFFFFFFFFFFFFDFE404040' 15960017 + DC X'4040400FF7FFFFFFFFFFFFFEFE404040' 15970017 + DC X'4040401FF3FFFFFFFFFFFFFF7F404040' 15980017 + DC X'4040401FE0FFFFFFFFFFFFFF9F404040' 15990017 + DC X'4040403FC03FFFFFFFFFFFFFE3804040' 16000017 + DC X'4040403FC003FFFFFFFFFFFFFCC04040' 16010017 + DC X'4040403FC040404078404003FFC04040' 16020017 + DC X'4040403FC0404040FE404003FF804040' 16030017 + DC X'4040403FC0404001FF804007FF404040' 16040017 + DC X'4040403FC0404003FFE04007FF404040' 16050017 + DC X'4040403FC0404003FF80400FFE404040' 16060017 + DC X'4040401FE0404007FE40400FFE404040' 16070017 + DC X'4040400FE040400FF840401FFC404040' 16080017 + DC X'40404003F040400FF040401FFC404040' 16090017 + DC X'404040407840400FE040403FF8404040' 16100017 + DC X'404040400E40401FC040403FF0404040' 16110017 + DC X'404040404040401F8040407FE0404040' 16120017 + DC X'404040404040401F404040FFC0404040' 16130017 + DC X'404040404040401F404001FF80404040' 16140017 + DC X'404040404040400E404003FF40404040' 16150017 + DC X'404040404040400E404007FC40404040' 16160017 + DC X'404040404040400E40401FF840404040' 16170017 + DC X'404040404040400640407FE040404040' 16180017 + DC X'40404040404040034001FF8040404040' 16190017 + DC X'40404040404040018007FC4040404040' 16200017 + DC X'40404040404040407FFFE04040404040' 16210017 + DC X'40404040404040403FFE004040404040' 16220017 +PATQU DC X'404040404040401FF040404040404040' 16230017 + DC X'40404040404003FFFFE0404040404040' 16240017 + DC X'404040404040FFFFFFFE404040404040' 16250017 + DC X'404040404007FFFFFFFFE04040404040' 16260017 + DC X'40404040403FFFFFFFFFF84040404040' 16270017 + DC X'4040404040FFFFFFFFFFFE4040404040' 16280017 + DC X'4040404003FFFFF81803FF8040404040' 16290017 + DC X'404040400FFFFF400E406FE040404040' 16300017 + DC X'404040403FFFF0400F8030F840404040' 16310017 + DC X'404040407FFF80400FC0183C40404040' 16320017 + DC X'40404040FFFE40400FE00C0E40404040' 16330017 + DC X'40404001FFF840401FF0060340404040' 16340017 + DC X'40404003FFFFFFFFFFFFFF4040404040' 16350017 + DC X'40404007FFBFFFFFFFFFFF8040404040' 16360017 + DC X'4040400FFF1FFFFFFFFFFFC040404040' 16370017 + DC X'4040400FFE1FFFFFFFFFFFF040404040' 16380017 + DC X'4040401FFC1EFFFFFFFFFFF840404040' 16390017 + DC X'4040401FF81F0FFFFFFFFFFE40404040' 16400017 + DC X'4040403FF01F80404040400380404040' 16410017 + DC X'4040401FE03F804040404007E0404040' 16420017 + DC X'40404007C07FC0404040400FFC404040' 16430017 + DC X'40404003C1FFC0404040401FFFC04040' 16440017 + DC X'40404001C7FF80404040401FFF804040' 16450017 + DC X'40404040FFFF40404040403FFF404040' 16460017 + DC X'40404001FFFC40404040407FFF404040' 16470017 + DC X'40404007FFF84040404040FFFE404040' 16480017 + DC X'4040400FFFE04040404003FFFC404040' 16490017 + DC X'4040401FFF804040404007FFF8404040' 16500017 + DC X'4040403FFEF0404040400FFFF0404040' 16510017 + DC X'4040403FF87E404040403FFFE0404040' 16520017 + DC X'4040403FE01FC0404001FFFF80404040' 16530017 + DC X'4040403FC007F840400FFFFE40404040' 16540017 + DC X'4040403FC001FFC040FFFFF840404040' 16550017 + DC X'4040403FC0407FFFFFFFFFC040404040' 16560017 + DC X'4040401FC0400FFFFFFFFF4040404040' 16570017 + DC X'4040400FC04003FFFFFFF84040404040' 16580017 + DC X'40404007C040407FFFFFC04040404040' 16590017 + DC X'40404003C040400FFFFE404040404040' 16600017 + DC X'40404001E04040407FC0404040404040' 16610017 + DC X'40404040E04040404040404040404040' 16620017 + DC X'40404040304040404040404040404040' 16630017 + DC X'404040400C4040404040404040404040' 16640017 +PATRU DC X'4040403840404040404001E040404040' 16650017 + DC X'4040400F404040404040407E40404040' 16660017 + DC X'40404007C04040404040400FC0404040' 16670017 + DC X'40404007F040401040404007F0404040' 16680017 + DC X'40404007F840400E40404003F8404040' 16690017 + DC X'40404003FC404007C0404001FC404040' 16700017 + DC X'40404003FC404003F0404001FE404040' 16710017 + DC X'40404003FE404003F8404001FE404040' 16720017 + DC X'40404003FE404003FC404001FE404040' 16730017 + DC X'40404007FC404003FE404003FC404040' 16740017 + DC X'40404007FC404003FF404003FC404040' 16750017 + DC X'40404007F8404007FF404003FC404040' 16760017 + DC X'40404007FFFFFFFFFFFFFFFDFE404040' 16770017 + DC X'4040400FF7FFFFFFFFFFFFFEFE404040' 16780017 + DC X'4040401FF3FFFFFFFFFFFFFF7F404040' 16790017 + DC X'4040401FE0FFFFFFFFFFFFFF9F404040' 16800017 + DC X'4040403FC03FFFFFFFFFFFFFE3804040' 16810017 + DC X'4040403FC003FFFFFFFFFFFFFCC04040' 16820017 + DC X'4040403FC040400180404003FFC04040' 16830017 + DC X'4040403FC040400180404003FF804040' 16840017 + DC X'4040403FC040400180404003FF804040' 16850017 + DC X'4040403FC0404040C0404003FF404040' 16860017 + DC X'4040403FC0404040C0404003FF404040' 16870017 + DC X'4040401FE0404040C0404003FE404040' 16880017 + DC X'4040400FE0404040E0404007FE404040' 16890017 + DC X'40404003F0404040F0404007FE404040' 16900017 + DC X'4040404078404001F8404007FC404040' 16910017 + DC X'404040400E404003FC40400FFC404040' 16920017 + DC X'404040404040400FFE40400FFC404040' 16930017 + DC X'404040404040403FFF40401FF8404040' 16940017 + DC X'40404003FFFFFFFFFF80401FF8404040' 16950017 + DC X'4040400FFFFFFFFFFEC0403FF0404040' 16960017 + DC X'4040401FFFFFFFFFFE60407FF0404040' 16970017 + DC X'4040403FFFFFFFFFF83801FFE0404040' 16980017 + DC X'4040403FFFFFFFFFE00F07FFE0404040' 16990017 + DC X'4040403FFFFFFFFE4007FFFF80404040' 17000017 + DC X'4040403E404040404001FFFE40404040' 17010017 + DC X'4040403C4040404040407FF840404040' 17020017 + DC X'4040403C4040404040400FC040404040' 17030017 + DC X'4040401C404040404040404040404040' 17040017 + DC X'4040400E404040404040404040404040' 17050017 + DC X'40404001C04040404040404040404040' 17060017 +PATSU DC X'40404038404040404040404040404040' 17070017 + DC X'4040400F404040404040404040404040' 17080017 + DC X'40404003C04040404040404040404040' 17090017 + DC X'40404040F04040404040404040404040' 17100017 + DC X'404040407C4040404040404040404040' 17110017 + DC X'404040403E4040404040304040404040' 17120017 + DC X'404040401F4040404040F84040404040' 17130017 + DC X'404040401F8040404003FC4040404040' 17140017 + DC X'404040400FC04040400FFE4040404040' 17150017 + DC X'404040400FE04040401FFF4040404040' 17160017 + DC X'4040404007F04040403FFF8040404040' 17170017 + DC X'4040404007F04040407FFFC040404040' 17180017 + DC X'4040404007F8404040FFFFE040404040' 17190017 + DC X'4040404007F8404001FFFF3840404040' 17200017 + DC X'4040404007FC406003FFFC0E40404040' 17210017 + DC X'404040400FFC408007FFF80380404040' 17220017 + DC X'404040400FFC01400FFFF003E0404040' 17230017 + DC X'404040401FFC01400FFFE007FC404040' 17240017 + DC X'404040403FFC40801FFFC00FFFC04040' 17250017 + DC X'404040407FF840603FFF801FFF404040' 17260017 + DC X'40404040FFF8400C3FFF401FFC404040' 17270017 + DC X'40404001FFF04001FFFE403FF8404040' 17280017 + DC X'40404007FFE040407FFC403FE0404040' 17290017 + DC X'4040403FFFE04040FFF8407FE0404040' 17300017 + DC X'4040401FFF804040FFF040FFE0404040' 17310017 + DC X'4040401FFF404001FFEC40FFE0404040' 17320017 + DC X'4040400FFE404001FFE1C1FFE0404040' 17330017 + DC X'40404007F8404003FFC031FFC0404040' 17340017 + DC X'40404003F0404003FFC007FFC0404040' 17350017 + DC X'40404003E0404007FF8001FFC0404040' 17360017 + DC X'4040400180404007FF8001FFC0404040' 17370017 + DC X'40404040C040400FFF4040FFC0404040' 17380017 + DC X'404040406040401FFE4040FFC0404040' 17390017 + DC X'404040403040403FFE40407FD8404040' 17400017 + DC X'404040401C40407FFC40403FC3404040' 17410017 + DC X'404040400E4001FFF040401FC0804040' 17420017 + DC X'4040404007800FFFC0404007E0404040' 17430017 + DC X'4040404001FFFFFF40404001F0404040' 17440017 + DC X'40404040407FFFF84040404078804040' 17450017 + DC X'404040404001FF80404040400E004040' 17460017 +PATTU DC X'404040404040401FF040401040404040' 17470017 + DC X'40404040404007FFFFC0400C40404040' 17480017 + DC X'404040404040FFFFFFFE400340404040' 17490017 + DC X'404040404007FFFFFFFFC001C0404040' 17500017 + DC X'40404040403FFFFFFFFFF840F0404040' 17510017 + DC X'4040404040FFFFFFFFFFFE4078404040' 17520017 + DC X'4040404003FFFFF84003FF803C404040' 17530017 + DC X'404040400FFFFF4040401FE01E404040' 17540017 + DC X'404040403FFFF040304001F01F404040' 17550017 + DC X'404040407FFF80401C4040381F804040' 17560017 + DC X'40404040FFFE40400F40400E1F804040' 17570017 + DC X'40404001FFF840400F8040031FC04040' 17580017 + DC X'40404003FFE040400FC040019FC04040' 17590017 + DC X'40404007FFC040400FE04040FFC04040' 17600017 + DC X'4040400FFF4040401FE040407FC04040' 17610017 + DC X'4040401FFFFFFFFFFFFFFE40FFC04040' 17620017 + DC X'4040401FFDFFFFFFFFFFFF01FF804040' 17630017 + DC X'4040401FF8FFFFFFFFFFFFC3FF404040' 17640017 + DC X'4040403FF07FFFFFFFFFFFC7FF404040' 17650017 + DC X'4040403FE03FFFFFFFFFFFEFFE404040' 17660017 + DC X'4040403FC01FFFFFFFFFFFFFFE404040' 17670017 + DC X'4040403FC04040404040401FFC404040' 17680017 + DC X'4040403F804040404040401FFC404040' 17690017 + DC X'4040403F804040404040403FF8404040' 17700017 + DC X'4040403F404040404040403FF8404040' 17710017 + DC X'4040403F404040404040403FF8404040' 17720017 + DC X'4040403E404040404040401FF0404040' 17730017 + DC X'4040403E404040404040401FF0404040' 17740017 + DC X'4040403E404040404040401FF0404040' 17750017 + DC X'4040401E404040404040400FF0404040' 17760017 + DC X'4040401E404040404040400FF0404040' 17770017 + DC X'4040400E4040404040404007F8404040' 17780017 + DC X'4040400F4040404040404003F8404040' 17790017 + DC X'404040074040404040404003F8404040' 17800017 + DC X'404040038040404040404001F8404040' 17810017 + DC X'404040018040404040404040FC404040' 17820017 + DC X'40404040C0404040404040407C404040' 17830017 + DC X'4040404060404040404040401E404040' 17840017 + DC X'40404040404040404040404001C04040' 17850017 +PATUU DC X'4040403040404040E0404040C0404040' 17860017 + DC X'4040401E404040407C40404038404040' 17870017 + DC X'4040400F804040403F4040401E404040' 17880017 + DC X'40404007C04040401F8040401F404040' 17890017 + DC X'40404007E04040401FC040401F804040' 17900017 + DC X'40404007F04040401FE040401FC04040' 17910017 + DC X'40404003F84040403FF040403FC04040' 17920017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 17930017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 17940017 + DC X'40404003FFFFFFFFFFFFFFFFFF804040' 17950017 + DC X'40404003FFFFFFFFFFFFFFFFFF404040' 17960017 + DC X'40404007FFFFFFFFFFFFFFFFFC404040' 17970017 + DC X'4040400FFFFFFFFFFFFFFFFFE0404040' 17980017 + DC X'4040400FFF4040404040404040404040' 17990017 + DC X'4040401FFF4040404040404040404040' 18000017 + DC X'4040403FFF4040404040404040404040' 18010017 + DC X'4040401FFE4040404040404040404040' 18020017 + DC X'4040400FFE4040404040404040404040' 18030017 + DC X'40404007FC4040404040404040404040' 18040017 + DC X'40404003F84040404040404040404040' 18050017 + DC X'40404001F84040404040404030404040' 18060017 + DC X'40404040F0404040404040401E404040' 18070017 + DC X'4040404060404040404040400F404040' 18080017 + DC X'4040404030404040404040400F804040' 18090017 + DC X'4040404018404040404040401FC04040' 18100017 + DC X'404040400FFFFFFFFFFFFFFFFFC04040' 18110017 + DC X'404040403FFFFFFFFFFFFFFFFFC04040' 18120017 + DC X'40404040FFFFFFFFFFFFFFFFFFC04040' 18130017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 18140017 + DC X'4040400FFFFFFFFFFFFFFFFFFF804040' 18150017 + DC X'4040403FFFFFFFFFFFFFFFFFFF404040' 18160017 + DC X'4040401FFF404040404040407F404040' 18170017 + DC X'4040400FFC404040404040403F404040' 18180017 + DC X'40404007F0404040404040401F404040' 18190017 + DC X'40404003C04040404040404007804040' 18200017 + DC X'40404001804040404040404040C04040' 18210017 + DC X'40404040C04040404040404040404040' 18220017 + DC X'40404040604040404040404040404040' 18230017 +PATVU DC X'4040403040404040E040404030404040' 18240017 + DC X'4040401E404040407C4040401E404040' 18250017 + DC X'4040400F804040403F4040400F404040' 18260017 + DC X'40404007C04040403F8040400F804040' 18270017 + DC X'40404007E04040407FC040400FC04040' 18280017 + DC X'40404007FFFFFFFFFFFFFFFFFFC04040' 18290017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 18300017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 18310017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 18320017 + DC X'40404003FFFFFFFFFFFFFFFFFF804040' 18330017 + DC X'40404003FFFFFFFFFFFFFFFFFF404040' 18340017 + DC X'40404007FE404040404040407F404040' 18350017 + DC X'4040400FFE404040404040403F404040' 18360017 + DC X'4040400FFF404040404040401F404040' 18370017 + DC X'4040401FFF4040404040404007804040' 18380017 + DC X'4040403FFF4040404040404040C04040' 18390017 + DC X'4040401FFE4040404040404040404040' 18400017 + DC X'4040400FFE4040404040404040404040' 18410017 + DC X'40404007FC4040404040404040404040' 18420017 + DC X'40404003F84040404040404040404040' 18430017 + DC X'40404001F84040404040404040404040' 18440017 + DC X'40404040F04040404040404040404040' 18450017 + DC X'40404040604040404040404040404040' 18460017 + DC X'40404040304040404040404040404040' 18470017 + DC X'4040404018404040404040FF80404040' 18480017 + DC X'404040400E40404040FFFFFFF0404040' 18490017 + DC X'4040404007FFFFFFFFFFFFFFFC404040' 18500017 + DC X'4040404001FFFFFFFFFFFFFFFE404040' 18510017 + DC X'40404040407FFFFFFFFFFFFFFF404040' 18520017 + DC X'40404040401FFFFFFFFFFFFFFF804040' 18530017 + DC X'404040404003FFFFFFFE40407F804040' 18540017 + DC X'4040404040407FFE404040401FC04040' 18550017 + DC X'40404040404040404040404007C04040' 18560017 + DC X'40404040404040404040404003804040' 18570017 + DC X'40404040404040404040404001804040' 18580017 + DC X'40404040404040404040404001004040' 18590017 +PATWU DC X'4040403040404040E0404040C0404040' 18600017 + DC X'4040401E404040407C40404038404040' 18610017 + DC X'4040400F804040403F4040401E404040' 18620017 + DC X'40404007C04040401F8040401F404040' 18630017 + DC X'40404007E04040401FC040401F804040' 18640017 + DC X'40404007F04040401FE040401FC04040' 18650017 + DC X'40404003F84040403FF040403FC04040' 18660017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 18670017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 18680017 + DC X'40404003FFFFFFFFFFFFFFFFFF804040' 18690017 + DC X'40404003FFFFFFFFFFFFFFFFFF404040' 18700017 + DC X'40404007FFFFFFFFFFFFFFFFFC404040' 18710017 + DC X'4040400FFFFFFFFFFFFFFFFFE0404040' 18720017 + DC X'4040400FFF8040404040404040404040' 18730017 + DC X'4040401FFF8040404040404040404040' 18740017 + DC X'4040403FFF8040404040404040404040' 18750017 + DC X'4040401FFE404040E040404040404040' 18760017 + DC X'4040400FFE4040407C40404040404040' 18770017 + DC X'40404007FC4040403F40404030404040' 18780017 + DC X'40404003F84040401F8040401E404040' 18790017 + DC X'40404001F84040401FC040400F404040' 18800017 + DC X'40404040F04040401FE040400F804040' 18810017 + DC X'40404040704040403FF040401FC04040' 18820017 + DC X'404040403FFFFFFFFFFFFFFFFFC04040' 18830017 + DC X'40404040FFFFFFFFFFFFFFFFFFC04040' 18840017 + DC X'40404003FFFFFFFFFFFFFFFFFFC04040' 18850017 + DC X'4040400FFFFFFFFFFFFFFFFFFFC04040' 18860017 + DC X'4040403FFFFFFFFFFFFFFFFFFFC04040' 18870017 + DC X'4040403FFFFFFFFFFFFFFFFFFF804040' 18880017 + DC X'4040401FE0404001FF804040FF404040' 18890017 + DC X'4040400F80404040FF4040407F404040' 18900017 + DC X'40404006404040407F4040403F404040' 18910017 + DC X'40404003404040403F4040401F404040' 18920017 + DC X'40404001804040401F80404007804040' 18930017 + DC X'40404040C040404007C0404040C04040' 18940017 + DC X'404040407040404040E0404040404040' 18950017 + DC X'404040403C404040404001F840404040' 18960017 + DC X'404040401FC0404040401FFF80404040' 18970017 + DC X'404040400FFE404007FFFFFFF0404040' 18980017 + DC X'4040404007FFFFFFFFFFFFFFFC404040' 18990017 + DC X'4040404001FFFFFFFFFFFFFFFE404040' 19000017 + DC X'40404040407FFFFFFFFFFFFFFF404040' 19010017 + DC X'40404040401FFFFFFFFFFFFFFF804040' 19020017 + DC X'404040404003FFFFFFFE40407F804040' 19030017 + DC X'4040404040407FFE404040401FC04040' 19040017 + DC X'40404040404007E04040404007C04040' 19050017 + DC X'40404040404040404040404003804040' 19060017 + DC X'40404040404040404040404001804040' 19070017 + DC X'40404040404040404040404001004040' 19080017 +PATXU DC X'40404038404040404040400780404040' 19090017 + DC X'4040401F4040404040404001F0404040' 19100017 + DC X'4040400FC0404040404040407E404040' 19110017 + DC X'4040400FE0404040404040407F404040' 19120017 + DC X'40404007F0400380404040407F804040' 19130017 + DC X'40404007F84001F0404040407FC04040' 19140017 + DC X'4040400FF84040FC40404040FFC04040' 19150017 + DC X'4040400FF840407F40404001FFC04040' 19160017 + DC X'4040400FFC40403FC0404007FFC04040' 19170017 + DC X'4040401FFC40401FF040403FFF804040' 19180017 + DC X'4040401FFC40401FF84001FFFF404040' 19190017 + DC X'4040403FFC40401FFE401FFFFE404040' 19200017 + DC X'40404040FC40400FFF01FFFFF8404040' 19210017 + DC X'4040404007E0400FFF1FFFFFE0404040' 19220017 + DC X'40404040401F800FFFFFFFFF40404040' 19230017 + DC X'4040404040407E1FFFFFFFF040404040' 19240017 + DC X'40404040404001FFFFFFFF4040404040' 19250017 + DC X'404040404040401FFFFFE04040404040' 19260017 + DC X'40404040404040FFFFFE404040404040' 19270017 + DC X'4040404040400FFFFFE0404040404040' 19280017 + DC X'404040404040FFFFFFF8404040404040' 19290017 + DC X'40404040400FFFFFFFC7E04040404040' 19300017 + DC X'4040404040FFFFFFFF401F8040404040' 19310017 + DC X'404040400FFFFFFFFF40407E40404040' 19320017 + DC X'40404001FFFFFE07FF804003F0404040' 19330017 + DC X'40404007FFFFC001FF804003FFC04040' 19340017 + DC X'4040400FFFF84040FF804003FF804040' 19350017 + DC X'4040401FFFC040403FC04003FF804040' 19360017 + DC X'4040403FFE4040400FE04003FF404040' 19370017 + DC X'4040403FF840404003F04001FF404040' 19380017 + DC X'4040403FF040404040F84001FF404040' 19390017 + DC X'4040403FE0404040401C4001FE404040' 19400017 + DC X'4040401FE040404040404040FE404040' 19410017 + DC X'4040400FE0404040404040407F404040' 19420017 + DC X'40404007E0404040404040403F404040' 19430017 + DC X'40404041F8404040404040400F804040' 19440017 + DC X'404040403E4040404040404001C04040' 19450017 +PATYU DC X'404040204040400E40404040C0404040' 19460017 + DC X'4040403840404003C040404078404040' 19470017 + DC X'4040401E40404001F04040403E404040' 19480017 + DC X'4040400F40404001FC4040403F404040' 19490017 + DC X'6040400FC0404001FE4040403F804040' 19500017 + DC X'1C40400FE0404001FF4040407FC04040' 19510017 + DC X'0F404007F0404003FF804040FFC04040' 19520017 + DC X'07C04007FFFFFFFFFFFFFFFFFFC04040' 19530017 + DC X'03E04007FFFFFFFFFFFFFFFFFFC04040' 19540017 + DC X'03F04007FFFFFFFFFFFFFFFFFFC04040' 19550017 + DC X'01F84007FFFFFFFFFFFFFFFFFF804040' 19560017 + DC X'01F84007FFFFFFFFFFFFFFFFFF404040' 19570017 + DC X'01FC400FFFFFFFFFFFFFFFFFF8404040' 19580017 + DC X'01FC400FFE4040404040401C40404040' 19590017 + DC X'01FE401FFE4040404040400740404040' 19600017 + DC X'01FE403FFC40404040404001C0404040' 19610017 + DC X'01FF400FFC40404040404040F0404040' 19620017 + DC X'03FF4003FC40404040404001FC404040' 19630017 + DC X'03FF4040F840404040404001FF404040' 19640017 + DC X'03FF40403840404040404003FFC04040' 19650017 + DC X'07FF40400E40404040404003FF804040' 19660017 + DC X'07FF40400380404040404003FF404040' 19670017 + DC X'0FFE404040E0404040404007FF404040' 19680017 + DC X'0FFE40404038404040404007FE404040' 19690017 + DC X'1FFE4040400E404040404007FE404040' 19700017 + DC X'3FFC40403FFFFFFFFFFFFFFFFE404040' 19710017 + DC X'7FFC4003FFFFFFFFFFFFFFFFFC404040' 19720017 + DC X'3FF8400FFFFFFFFFFFFFFFFFFC404040' 19730017 + DC X'1FF0403FFFFFFFFFFFFFFFFFFC404040' 19740017 + DC X'0FE040FFFFFFFFFFFFFFFFFFFC404040' 19750017 + DC X'07C003FFFFFFFFFFFFFFFFFFFC404040' 19760017 + DC X'03800FFFF040404040404040FE404040' 19770017 + DC X'01C03FFFC0404040404040407E404040' 19780017 + DC X'407FFFFF40404040404040403F404040' 19790017 + DC X'401FFFF840404040404040400F804040' 19800017 + DC X'4001FFC0404040404040404001C04040' 19810017 + DC X'40404040404040404040404000C04040' 19820017 +PATZU DC X'404040384040404040407C4040404040' 19830017 + DC X'4040400E404040404007FFE040404040' 19840017 + DC X'4040400780404040401FFFFC40404040' 19850017 + DC X'40404003E0404040403E07FF40404040' 19860017 + DC X'40404003F0404040407001FFC0404040' 19870017 + DC X'40404001FC404040406040FFF0404040' 19880017 + DC X'40404001FF8040404040407FFC404040' 19890017 + DC X'40404001FFC040404040407FFF404040' 19900017 + DC X'40404040FF3040404040407FFFC04040' 19910017 + DC X'40404040FF8C40404040407FFF804040' 19920017 + DC X'40404040FFC34040404040FFFF404040' 19930017 + DC X'40404040FFC0C007C04040FFFE404040' 19940017 + DC X'40404040FFC03001FC4001FFFC404040' 19950017 + DC X'40404040FFE00C40FF4001FFF8404040' 19960017 + DC X'40404040FFE00340FF8003FFF0404040' 19970017 + DC X'40404040FFE040C0FF8003FFF0404040' 19980017 + DC X'40404040FFE04030FF8003FFF0404040' 19990017 + DC X'40404040FFF0400CFF8003FFE0404040' 20000017 + DC X'40404040FFF04003FF8007FFE0404040' 20010017 + DC X'40404040FFF04040FF8007FFE0404040' 20020017 + DC X'40404040FFF04040FF8007FFE0404040' 20030017 + DC X'40404040FFF04040FF8007FFE0404040' 20040017 + DC X'40404001FFF04040FF8003FFE0404040' 20050017 + DC X'40404001FFF04040FFC003FFE0404040' 20060017 + DC X'40404001FFF04040FFB003FFE0404040' 20070017 + DC X'40404003FFF04040FF8C01FFE0404040' 20080017 + DC X'40404007FFF04040FFC301FFE0404040' 20090017 + DC X'40404007FFF04040FF80C1FFE0404040' 20100017 + DC X'4040400FFFE040407F8030FFE0404040' 20110017 + DC X'4040401FFFE040401FC00CFFE0404040' 20120017 + DC X'4040403FFFE0404001F0037FE0404040' 20130017 + DC X'4040401FFFC04040404040FFF0404040' 20140017 + DC X'4040400FFFC003404040403FF0404040' 20150017 + DC X'40404003FFC001804040400FF8404040' 20160017 + DC X'40404040FFE003C040404003F8404040' 20170017 + DC X'404040403FF007C040404040FC404040' 20180017 + DC X'404040400FFC1F80404040403C404040' 20190017 + DC X'4040404003FFFF40404040400E404040' 20200017 + DC X'4040404040FFFC404040404003404040' 20210017 + DC X'40404040403FF0404040404040404040' 20220017 +PAT0 DC X'404040400FFFFFFFFFFF404040404040' 20230017 + DC X'404040401FFFFFFFFFFF804040404040' 20240017 + DC X'404040403FFFFFFFFFFFC04040404040' 20250017 + DC X'404040407FFFFFFFFFFFE04040404040' 20260017 + DC X'40404040FFFFFFFFFFFFF04040404040' 20270017 + DC X'40404001FE4040404040184040404040' 20280017 + DC X'40404003FC40404040400C4040404040' 20290017 + DC X'40404007F84040404040064040404040' 20300017 + DC X'4040400FF040404040400F4040404040' 20310017 + DC X'4040401FE040404040401F8040404040' 20320017 + DC X'4040403FC040404040403FC040404040' 20330017 + DC X'4040401F8040404040407F8040404040' 20340017 + DC X'4040400F404040404040FF4040404040' 20350017 + DC X'40404006404040404001FE4040404040' 20360017 + DC X'40404003404040404003FC4040404040' 20370017 + DC X'40404001FFFFFFFFFFFFF84040404040' 20380017 + DC X'40404040FFFFFFFFFFFFF04040404040' 20390017 + DC X'404040407FFFFFFFFFFFE04040404040' 20400017 + DC X'404040403FFFFFFFFFFFC04040404040' 20410017 + DC X'404040401FFFFFFFFFFF804040404040' 20420017 +PAT1 DC X'40404030404040404040044040404040' 20430017 + DC X'40404018404040404040024040404040' 20440017 + DC X'4040400C404040404040034040404040' 20450017 + DC X'40404007FFFFFFFFFFFFFF8040404040' 20460017 + DC X'40404003FFFFFFFFFFFFFFC040404040' 20470017 + DC X'40404001FFFFFFFFFFFFFF8040404040' 20480017 + DC X'40404040FFFFFFFFFFFFFF4040404040' 20490017 + DC X'404040407FFFFFFFFFFFFE4040404040' 20500017 + DC X'40404040304040404040404040404040' 20510017 + DC X'40404040184040404040404040404040' 20520017 + DC X'404040400C4040404040404040404040' 20530017 +PAT2 DC X'4040403F804040401FFFC04040404040' 20540017 + DC X'4040401FBC4040400FFFE04040404040' 20550017 + DC X'4040401FC3C0404007FFF04040404040' 20560017 + DC X'4040400FE038404003FFF84040404040' 20570017 + DC X'4040400FE007404001FFFC4040404040' 20580017 + DC X'40404007F040C04040401E4040404040' 20590017 + DC X'40404007F040304040400F4040404040' 20600017 + DC X'4040400FE0400C4040401F8040404040' 20610017 + DC X'4040400FE040064040403FC040404040' 20620017 + DC X'4040401FC040018040407F8040404040' 20630017 + DC X'4040401FC04040C04040FF4040404040' 20640017 + DC X'4040403F804040604001FE4040404040' 20650017 + DC X'4040403F804040304003FC4040404040' 20660017 + DC X'4040403F404040184007F84040404040' 20670017 + DC X'4040403F4040400C400FF04040404040' 20680017 + DC X'4040403F40404007FFFFE04040404040' 20690017 + DC X'4040401F80404003FFFFC04040404040' 20700017 + DC X'4040400FC0404001FFFF804040404040' 20710017 + DC X'40404007E0404040FFFF404040404040' 20720017 + DC X'40404001F04040407FFE404040404040' 20730017 +PAT3 DC X'40404040084040404040204040404040' 20740017 + DC X'404040401E4040404040304040404040' 20750017 + DC X'404040403F8040404040384040404040' 20760017 + DC X'404040407F80404040403C4040404040' 20770017 + DC X'40404040FF40401040403E4040404040' 20780017 + DC X'40404001FE40403840403F4040404040' 20790017 + DC X'40404003FC40407C40403F8040404040' 20800017 + DC X'40404007F84040FE40403FC040404040' 20810017 + DC X'4040400FF04001FF40403FC040404040' 20820017 + DC X'4040401FE04003FD80403FC040404040' 20830017 + DC X'4040403FC04007F8C0403FC040404040' 20840017 + DC X'4040401F80400FF060403FC040404040' 20850017 + DC X'4040400F40401FE030403FC040404040' 20860017 + DC X'4040400640403FC018403FC040404040' 20870017 + DC X'4040400340407F800C407FC040404040' 20880017 + DC X'40404001FFFFFF4007FFFFC040404040' 20890017 + DC X'40404040FFFFFE4003FFFF8040404040' 20900017 + DC X'404040407FFFFC4001FFFF4040404040' 20910017 + DC X'404040403FFFF84040FFFE4040404040' 20920017 + DC X'404040401FFFF040407FFC4040404040' 20930017 +PAT4 DC X'40404040404001404040404040404040' 20940017 + DC X'40404040404001C04040404040404040' 20950017 + DC X'40404040404001F04040404040404040' 20960017 + DC X'40404040404040FC4040404040404040' 20970017 + DC X'40404040404040FF4040404040404040' 20980017 + DC X'40404040404040FFC040404040404040' 20990017 + DC X'404040404040407F7040404040404040' 21000017 + DC X'404040404040407F1C40404040404040' 21010017 + DC X'404040404040407F0740404040404040' 21020017 + DC X'404040404040403FC1C0404040404040' 21030017 + DC X'404040404040403F8070404040404040' 21040017 + DC X'404040404040403F801C404040404040' 21050017 + DC X'404040404040403F8007404040404040' 21060017 + DC X'404040404040407F4001C04040404040' 21070017 + DC X'40404002404040FF4040704040404040' 21080017 + DC X'40404007404040FE40401C4040404040' 21090017 + DC X'4040400FFFFFFFFFFFFFFF4040404040' 21100017 + DC X'4040401FFFFFFFFFFFFFFFC040404040' 21110017 + DC X'4040403FFFFFFFFFFFFFFFC040404040' 21120017 + DC X'4040401FFFFFFFFFFFFFFFC040404040' 21130017 + DC X'4040400FFFFFFFFFFFFFFFC040404040' 21140017 + DC X'40404007404040FE4040404040404040' 21150017 + DC X'404040024040403E4040404040404040' 21160017 + DC X'404040404040400F4040404040404040' 21170017 +PAT5 DC X'4040404008400FFFFFFFFFC040404040' 21180017 + DC X'404040401E4007FFFFFFFF8040404040' 21190017 + DC X'404040403F8003FC40403F4040404040' 21200017 + DC X'404040407F8001FE40407F4040404040' 21210017 + DC X'40404040FF4040FF4040FE4040404040' 21220017 + DC X'40404001FE40407F8040FE4040404040' 21230017 + DC X'40404003FC40403FC040FC4040404040' 21240017 + DC X'40404007F840401FE001FC4040404040' 21250017 + DC X'4040400FF040400FF001FC4040404040' 21260017 + DC X'4040401FE0404007F801FC4040404040' 21270017 + DC X'4040403FC0404003FC01FC4040404040' 21280017 + DC X'4040401F80404007F801FC4040404040' 21290017 + DC X'4040400F4040400FF001FC4040404040' 21300017 + DC X'404040064040401FE040FC4040404040' 21310017 + DC X'404040034040403FC040FC4040404040' 21320017 + DC X'40404001FFFFFFFF80407C4040404040' 21330017 + DC X'40404040FFFFFFFF40403E4040404040' 21340017 + DC X'404040407FFFFFFE40400F4040404040' 21350017 + DC X'404040403FFFFFFC4040038040404040' 21360017 + DC X'404040401FFFFFF8404000C040404040' 21370017 +PAT6 DC X'404040400FFFFFFFFFFF404040404040' 21380017 + DC X'404040401FFFFFFFFFFF804040404040' 21390017 + DC X'404040403FFFFFFFFFFFC04040404040' 21400017 + DC X'404040407FFFFFFFFFFFE04040404040' 21410017 + DC X'40404040FFFFFFFFFFFFF04040404040' 21420017 + DC X'40404001FE404040C040184040404040' 21430017 + DC X'40404003FC40404060400C4040404040' 21440017 + DC X'40404007F84040403040064040404040' 21450017 + DC X'4040400FF040404018400F4040404040' 21460017 + DC X'4040401FE04040403C401F8040404040' 21470017 + DC X'4040403FC04040407E403FC040404040' 21480017 + DC X'4040401F80404040FF407F8040404040' 21490017 + DC X'4040400F40404001FF40FF4040404040' 21500017 + DC X'4040400640404003FC01FE4040404040' 21510017 + DC X'4040400340404007F803FC4040404040' 21520017 + DC X'40404001FFFFFFFFF007F84040404040' 21530017 + DC X'40404040FFFFFFFFE00FF04040404040' 21540017 + DC X'404040407FFFFFFFC00FE04040404040' 21550017 + DC X'404040403FFFFFFF8003C04040404040' 21560017 + DC X'404040401FFFFFFE4000804040404040' 21570017 +PAT7 DC X'40404030404040404040204040404040' 21580017 + DC X'40404018404040404040384040404040' 21590017 + DC X'4040400C4040404040403E4040404040' 21600017 + DC X'40404007C040404040403F8040404040' 21610017 + DC X'40404003FFC0404040403FC040404040' 21620017 + DC X'40404001FFFFC04040403F8040404040' 21630017 + DC X'40404040FFFFFE4040403F8040404040' 21640017 + DC X'404040407FFFFFFC40403F4040404040' 21650017 + DC X'404040403FFFFFFF80403F4040404040' 21660017 + DC X'404040401801FFFFF0401F4040404040' 21670017 + DC X'404040400C4003FFFE401F4040404040' 21680017 + DC X'404040400640400FFFC01F4040404040' 21690017 + DC X'40404040404040407FF00F4040404040' 21700017 + DC X'404040404040404003FE0F4040404040' 21710017 + DC X'4040404040404040403FC78040404040' 21720017 + DC X'40404040404040404007E78040404040' 21730017 + DC X'40404040404040404040FF8040404040' 21740017 + DC X'404040404040404040400F8040404040' 21750017 + DC X'4040404040404040404001C040404040' 21760017 + DC X'4040404040404040404040C040404040' 21770017 +PAT8 DC X'404040401FFFE040FFFF404040404040' 21780017 + DC X'404040403FFFF801FFFF804040404040' 21790017 + DC X'404040407FFFFE03FFFFC04040404040' 21800017 + DC X'40404040FFFFFF07FFFFE04040404040' 21810017 + DC X'40404001FFFFFF8FFFFFF04040404040' 21820017 + DC X'40404003FC4001DFE040184040404040' 21830017 + DC X'40404007F840407FC0400C4040404040' 21840017 + DC X'4040400FF040407F8040064040404040' 21850017 + DC X'4040401FE04040FF40400F4040404040' 21860017 + DC X'4040403FC04001FE40401F8040404040' 21870017 + DC X'4040401F804003FC40403FC040404040' 21880017 + DC X'4040400F404007F840407F8040404040' 21890017 + DC X'4040400640400FF04040FF4040404040' 21900017 + DC X'4040400340401FF04001FE4040404040' 21910017 + DC X'4040400180403FDC4003FC4040404040' 21920017 + DC X'40404040FFFFFF8FFFFFF84040404040' 21930017 + DC X'404040407FFFFF07FFFFF04040404040' 21940017 + DC X'404040403FFFFE03FFFFE04040404040' 21950017 + DC X'404040401FFFFC40FFFFC04040404040' 21960017 + DC X'404040400FFFF8407FFF804040404040' 21970017 +PAT9 DC X'40404040104040FFFFFF804040404040' 21980017 + DC X'404040403C4001FFFFFFC04040404040' 21990017 + DC X'404040407F4003FFFFFFE04040404040' 22000017 + DC X'40404040FF4007FFFFFFF04040404040' 22010017 + DC X'40404001FE400FFFFFFFF84040404040' 22020017 + DC X'40404003FC401FE040400C4040404040' 22030017 + DC X'40404007F8403FC04040064040404040' 22040017 + DC X'4040400FF0407F8040400F4040404040' 22050017 + DC X'4040401FE040FF4040401F8040404040' 22060017 + DC X'4040403FC0407E4040403FC040404040' 22070017 + DC X'4040401F80403C4040407F8040404040' 22080017 + DC X'4040400F404018404040FF4040404040' 22090017 + DC X'4040400640400C404001FE4040404040' 22100017 + DC X'40404003404006404003FC4040404040' 22110017 + DC X'40404001804003404007F84040404040' 22120017 + DC X'40404040FFFFFFFFFFFFF04040404040' 22130017 + DC X'404040407FFFFFFFFFFFE04040404040' 22140017 + DC X'404040403FFFFFFFFFFFC04040404040' 22150017 + DC X'404040401FFFFFFFFFFF804040404040' 22160017 + DC X'404040400FFFFFFFFFFF404040404040' 22170017 + DC X'40404040404040404040404040404040' 22180017 +PATBLK DC X'40404040404040404040404040404040' 22190017 + DC X'40404040404040404040404040404040' 22200017 + DC X'40404040404040404040404040404040' 22210017 + DC X'40404040404040404040404040404040' 22220017 + DC X'40404040404040404040404040404040' 22230017 + DC X'40404040404040404040404040404040' 22240017 + DC X'40404040404040404040404040404040' 22250017 + DC X'40404040404040404040404040404040' 22260017 + DC X'40404040404040404040404040404040' 22270017 + DC X'40404040404040404040404040404040' 22280017 + DC X'40404040404040404040404040404040' 22290017 + DC X'40404040404040404040404040404040' 22300017 + DC X'40404040404040404040404040404040' 22310017 + DC X'40404040404040404040404040404040' 22320017 + DC X'40404040404040404040404040404040' 22330017 + DC X'40404040404040404040404040404040' 22340017 + DC X'40404040404040404040404040404040' 22350017 + DC X'40404040404040404040404040404040' 22360017 + DC X'40404040404040404040404040404040' 22370017 + DC X'40404040404040404040404040404040' 22380017 +PATSP DC X'40404040404040404040404040404040' 22390017 + DC X'40404040404040404040404040404040' 22400017 + DC X'40404040404040404040404040404040' 22410017 +PATUNLIN DC 0D'+0' 22420017 +PATUCNT DC X'000000000000FFFFF800000000000000' 22430017 + DC X'000000000001FFFFFC00000000000000' 22440017 + DC X'000000000003FFFFFE00000000000000' 22450017 + DC X'000000000007FFFFFF00000000000000' 22460017 + DC X'00000000000FFFFFFF80000000000000' 22470017 + DC X'00000000001FE00000C0000000000000' 22480017 + DC X'00000000003FC0000060000000000000' 22490017 + DC X'00000000007F80000030000000000000' 22500017 + DC X'0000000000FF00000018000000000000' 22510017 + DC X'0000000001FE0000000C000000000000' 22520017 + DC X'0000000003FC0000001E000000000000' 22530017 + DC X'0000003FFFF80000003FFFC000000000' 22540017 + DC X'0000003FFFF00000007FFFC000000000' 22550017 + DC X'0000000007F8000000FF000000000000' 22560017 + DC X'0000000003FC000001FE000000000000' 22570017 + DC X'0000000001FE000003FC000000000000' 22580017 + DC X'0000000000FF000007F8000000000000' 22590017 + DC X'00000000007F800007F0000000000000' 22600017 + DC X'00000000003E000001E0000000000000' 22610017 + DC X'00000000001800000040000000000000' 22620017 +PATUPER DC X'00000001000000000000000000000000' 22630017 + DC X'00000001800000000000000000000000' 22640017 + DC X'00000003F00000000000000000000000' 22650017 + DC X'0000000FFC0000000000000000000000' 22660017 + DC X'0000003FFE0000000000000000000000' 22670017 + DC X'0000003FFE0000000000000000000000' 22680017 + DC X'0000001FF80000000000000000000000' 22690017 + DC X'00000007E00000000000000000000000' 22700017 + DC X'00000001800000000000000000000000' 22710017 +PATULP DC X'00000000000000000000002000000000' 22720017 + DC X'0000000000FFFFFFFFFFFFF000000000' 22730017 + DC X'0000000001FFFFFFFFFFFFF800000000' 22740017 + DC X'0000000003FFFFFFFFFFFFFC00000000' 22750017 + DC X'0000000007FFFFFFFFFFFFFE00000000' 22760017 + DC X'000000000FFFFFFFFFFFFFFF00000000' 22770017 + DC X'00000000180000000000000180000000' 22780017 + DC X'000000003000000000000000C0000000' 22790017 + DC X'00000000600000000000000060000000' 22800017 + DC X'00000000C00000000000000030000000' 22810017 + DC X'00000001800000000000000018000000' 22820017 + DC X'0000000300000000000000000C000000' 22830017 + DC X'00000006000000000000000006000000' 22840017 + DC X'0000000C000000000000000003000000' 22850017 + DC X'00000018000000000000000001800000' 22860017 + DC X'00000030000000000000000000C00000' 22870017 +PATUAMP DC X'00000000000000000020001000000000' 22880017 + DC X'0000000001FFFFF0003FFFF800000000' 22890017 + DC X'0000000003FFFFF8003FFFFC00000000' 22900017 + DC X'0000000007FFFFFC007FFFFE00000000' 22910017 + DC X'000000000FFFFFFE00FFFFFF00000000' 22920017 + DC X'000000001FFFFFFF00FFFFFF80000000' 22930017 + DC X'000000003FFFFFFF81FFFFFFC0000000' 22940017 + DC X'000000007FE00000C3FE000060000000' 22950017 + DC X'00000000FFC0000067FC0001F0000000' 22960017 + DC X'00000001FF8000003FF80007F8000000' 22970017 + DC X'00000003FF0000007FF0000FFC000000' 22980017 + DC X'00000007FE000001FFE0003FFE000000' 22990017 + DC X'0000000FFC00000FFFC0007FFF000000' 23000017 + DC X'0000001FF80000FFFF8000FFFF800000' 23010017 + DC X'0000003FF0000FFFFE0000FFFFC00000' 23020017 + DC X'0000001FE001FFFFF80001FFF8000000' 23030017 + DC X'0000000FC01FFFFFC00001FFE0000000' 23040017 + DC X'00000007C1FFFFFF000001FF80000000' 23050017 + DC X'000000031FFFFFC0000003FE00000000' 23060017 + DC X'00000001FFFFFC00000003FC00000000' 23070017 + DC X'00000003FFFFC000000003F800000000' 23080017 + DC X'0000000FFFF80000000003F000000000' 23090017 + DC X'0000003FFF800000000001E000000000' 23100017 + DC X'0000003FF8000000000001C000000000' 23110017 + DC X'0000003FEFFFFE000000008000000000' 23120017 + DC X'0000003FC7FFFF000000000000000000' 23130017 + DC X'0000003FC3FFFF800000000000000000' 23140017 + DC X'0000003FC1FFFFC00000000000000000' 23150017 + DC X'0000000F80FFFFE00000000000000000' 23160017 + DC X'00000007800000000000000000000000' 23170017 + DC X'00000001800000000000000000000000' 23180017 +PATUEXC DC X'000000010000000000000001E0000000' 23190017 + DC X'00000001C000000000000000FC000000' 23200017 + DC X'00000003F000000000000000FF000000' 23210017 + DC X'0000000FFC0000000003FFFFFF800000' 23220017 + DC X'0000003FFE1FFFFFFFFFFFFFFFC00000' 23230017 + DC X'0000003FFE1FFFFFFFFFFFFFFFC00000' 23240017 + DC X'0000001FF8001FFFFFFFFFFFFF800000' 23250017 + DC X'00000007E00000003FFFFFFFFF800000' 23260017 + DC X'00000001C000000000001FFFFF000000' 23270017 + DC X'00000000000000000000007FFC000000' 23280017 +PATUDOL DC X'000000000E00001FF000000000000000' 23290017 + DC X'0000000003C0007FFE00000000000000' 23300017 + DC X'0000000001F001FFFFC0000000000000' 23310017 + DC X'0000000000F801FF0030000000000000' 23320017 + DC X'0000000000FC01FE007C000000000000' 23330017 + DC X'0000000000FE03FC00FE000000000000' 23340017 + DC X'0000000000FE03FC01FF800000000000' 23350017 + DC X'0000003FFFFFFFFFFFFFFFC000000000' 23360017 + DC X'0000003FFFFFFFFFFFFFFFC000000000' 23370017 + DC X'0000000000FF03FC07FC000000000000' 23380017 + DC X'0000000001FF03FC07F8000000000000' 23390017 + DC X'0000003FFFFFFFFFFFFFFFC000000000' 23400017 + DC X'0000003FFFFFFFFFFFFFFFC000000000' 23410017 + DC X'000000000FFC03FC03F8000000000000' 23420017 + DC X'0000000003F803FC03F8000000000000' 23430017 + DC X'0000000001F007F801F8000000000000' 23440017 + DC X'0000000000600FF800F8000000000000' 23450017 + DC X'00000000001FFFF8007C000000000000' 23460017 + DC X'000000000003FFF0001E000000000000' 23470017 + DC X'000000000000FF800007000000000000' 23480017 +PATURP DC X'00000030000000000000000000C00000' 23490017 + DC X'00000018000000000000000001800000' 23500017 + DC X'0000000C000000000000000003000000' 23510017 + DC X'00000006000000000000000006000000' 23520017 + DC X'0000000300000000000000000C000000' 23530017 + DC X'00000001800000000000000018000000' 23540017 + DC X'00000000C00000000000000030000000' 23550017 + DC X'00000000600000000000000060000000' 23560017 + DC X'000000003000000000000000C0000000' 23570017 + DC X'00000000180000000000000180000000' 23580017 + DC X'000000000FFFFFFFFFFFFFFF00000000' 23590017 + DC X'0000000007FFFFFFFFFFFFFE00000000' 23600017 + DC X'0000000003FFFFFFFFFFFFFC00000000' 23610017 + DC X'0000000001FFFFFFFFFFFFF800000000' 23620017 + DC X'0000000000FFFFFFFFFFFFF000000000' 23630017 + DC X'00000000000000000000002000000000' 23640017 +PATUSEM DC X'00000000800000010000000000000000' 23650017 + DC X'0000000040000001C000000000000000' 23660017 + DC X'0000000060000003F000000000000000' 23670017 + DC X'000008007000000FFC00000000000000' 23680017 + DC X'00000C00F800003FFE00000000000000' 23690017 + DC X'00000701FC00003FFE00000000000000' 23700017 + DC X'000003FFFE00001FF800000000000000' 23710017 + DC X'000001FFFC000007E000000000000000' 23720017 + DC X'000000FFF8000001C000000000000000' 23730017 + DC X'0000003FF00000000000000000000000' 23740017 + DC X'00000007E00000000000000000000000' 23750017 +PATUDSH DC X'0000000000003E000000000000000000' 23760017 + DC X'0000000000000FC00000000000000000' 23770017 + DC X'00000000000007F00000000000000000' 23780017 + DC X'00000000000007F80000000000000000' 23790017 + DC X'00000000000007F80000000000000000' 23800017 + DC X'00000000000007F80000000000000000' 23810017 + DC X'00000000000007F80000000000000000' 23820017 + DC X'00000000000007F80000000000000000' 23830017 + DC X'00000000000007F80000000000000000' 23840017 + DC X'00000000000007F80000000000000000' 23850017 + DC X'00000000000007F80000000000000000' 23860017 + DC X'00000000000007F80000000000000000' 23870017 + DC X'00000000000007F80000000000000000' 23880017 + DC X'00000000000007F80000000000000000' 23890017 + DC X'00000000000003F80000000000000000' 23900017 + DC X'00000000000000FC0000000000000000' 23910017 + DC X'000000000000001F0000000000000000' 23920017 +PATUCOM DC X'00000000800000000000000000000000' 23930017 + DC X'00000000400000000000000000000000' 23940017 + DC X'00000000600000000000000000000000' 23950017 + DC X'00000800700000000000000000000000' 23960017 + DC X'00000C00F80000000000000000000000' 23970017 + DC X'00000701FC0000000000000000000000' 23980017 + DC X'000003FFFE0000000000000000000000' 23990017 + DC X'000001FFFC0000000000000000000000' 24000017 + DC X'000000FFF80000000000000000000000' 24010017 + DC X'0000003FF00000000000000000000000' 24020017 + DC X'00000007E00000000000000000000000' 24030017 +PATUQUE DC X'00000000000000000000000400000000' 24040017 + DC X'00000000000000000007FFFE00000000' 24050017 + DC X'0000000000000000000FFFFF00000000' 24060017 + DC X'0000000000000000001FFFFF80000000' 24070017 + DC X'0000000000000000003FFFFFC0000000' 24080017 + DC X'0000000000000000007FFFFFE0000000' 24090017 + DC X'0000000000000000003FFFFFF0000000' 24100017 + DC X'00000001000003F8001FC00018000000' 24110017 + DC X'0000000180003FFF800F80000C000000' 24120017 + DC X'00000003F001FFFFF00700001E000000' 24130017 + DC X'0000000FFC07FFFFF80200003F000000' 24140017 + DC X'0000003FFE1FFFFFFE0000007F800000' 24150017 + DC X'0000003FFE38007FFF000000FFC00000' 24160017 + DC X'0000001FF860001FFF800001FF800000' 24170017 + DC X'00000007E0000007FF800003FF000000' 24180017 + DC X'0000000180000001FFC00007FE000000' 24190017 + DC X'0000000000000000FFE0000FFC000000' 24200017 + DC X'00000000000000007FE0001FF8000000' 24210017 + DC X'00000000000000003FFFFFFFF0000000' 24220017 + DC X'00000000000000001FFFFFFFE0000000' 24230017 + DC X'00000000000000001FFFFFFFC0000000' 24240017 + DC X'00000000000000000FFFFFFF80000000' 24250017 + DC X'00000000000000000FFFFFFF00000000' 24260017 + DC X'00000000000000000000000200000000' 24270017 +PATUCOL DC X'00000001000000010000000000000000' 24280017 + DC X'00000001C0000001C000000000000000' 24290017 + DC X'00000003F0000003F000000000000000' 24300017 + DC X'0000000FFC00000FFC00000000000000' 24310017 + DC X'0000003FFE00003FFE00000000000000' 24320017 + DC X'0000003FFE00003FFE00000000000000' 24330017 + DC X'0000001FF800001FF800000000000000' 24340017 + DC X'00000007E0000007E000000000000000' 24350017 + DC X'00000001C0000001C000000000000000' 24360017 +PATUQUO DC X'00000000000000000000000008000000' 24370017 + DC X'0000000000000000000000000C000000' 24380017 + DC X'0000000000000000000001000E000000' 24390017 + DC X'0000000000000000000001801F000000' 24400017 + DC X'0000000000000000000000E03F800000' 24410017 + DC X'00000000000000000000007FFFC00000' 24420017 + DC X'00000000000000000000003FFF800000' 24430017 + DC X'00000000000000000000001FFF000000' 24440017 + DC X'000000000000000000000007FE000000' 24450017 + DC X'000000000000000000000001FC000000' 24460017 +PATUDQU DC X'000000000000000000000001F8000000' 24470017 + DC X'000000000000000000000007FE000000' 24480017 + DC X'00000000000000000000001FFF000000' 24490017 + DC X'00000000000000000000003FFF800000' 24500017 + DC X'00000000000000000000007FFFC00000' 24510017 + DC X'0000000000000000000000E03F800000' 24520017 + DC X'0000000000000000000001801F000000' 24530017 + DC X'0000000000000000000001000E000000' 24540017 + DC X'0000000000000000000000000C000000' 24550017 + DC X'00000000000000000000000008000000' 24560017 + DC X'00000000000000000000000000000000' 24570017 + DC X'000000000000000000000001F8000000' 24580017 + DC X'000000000000000000000007FE000000' 24590017 + DC X'00000000000000000000001FFF000000' 24600017 + DC X'00000000000000000000003FFF800000' 24610017 + DC X'00000000000000000000007FFFC00000' 24620017 + DC X'0000000000000000000000E03F800000' 24630017 + DC X'0000000000000000000001801F000000' 24640017 + DC X'0000000000000000000001000E000000' 24650017 + DC X'0000000000000000000000000C000000' 24660017 + DC X'00000000000000000000000008000000' 24670017 +PATUAL DC X'000000007FFF80060000000000000000' 24680017 + DC X'00000000FFFF80030000000000000000' 24690017 + DC X'00000001FFFFC0018000000000000000' 24700017 + DC X'00000003FFFFC000C000000000000000' 24710017 + DC X'00000007FFFFE0006000000000000000' 24720017 + DC X'0000000FF00020003000000000000000' 24730017 + DC X'0000001FE00030007800000000000000' 24740017 + DC X'0000003FC0001000FC00000000000000' 24750017 + DC X'0000001F80001801FE00000000000000' 24760017 + DC X'0000000F00000803FC00000000000000' 24770017 + DC X'0000000700000C07F800000000000000' 24780017 + DC X'000000038000040FF000000000000000' 24790017 + DC X'00000001FFFFFFFFE000000000000000' 24800017 + DC X'00000003FFFFFFFFC000000000000000' 24810017 + DC X'00000007FFFFFFFF8000000000000000' 24820017 + DC X'0000000FFFFFFFFF0000000000000000' 24830017 + DC X'0000001FFFFFFFFE0000000000000000' 24840017 + DC X'0000003FC00000000000000000000000' 24850017 + DC X'0000000F800000000000000000000000' 24860017 + DC X'00000003000000000000000000000000' 24870017 +PATUBL DC X'00000000000000000000001000000000' 24880017 + DC X'00000000000000000000003800000000' 24890017 + DC X'000000007FFFFFFFFFFFFFFC00000000' 24900017 + DC X'00000000FFFFFFFFFFFFFFFE00000000' 24910017 + DC X'00000001FFFFFFFFFFFFFFFF00000000' 24920017 + DC X'00000003FFFFFFFFFFFFFFFE00000000' 24930017 + DC X'00000007FFFFFFFFFFFFFFFC00000000' 24940017 + DC X'0000000FF0000000C000003800000000' 24950017 + DC X'0000001FE00000006000001000000000' 24960017 + DC X'0000003FC00000003000000000000000' 24970017 + DC X'0000001F800000007800000000000000' 24980017 + DC X'0000000F00000000FC00000000000000' 24990017 + DC X'0000000600000001FE00000000000000' 25000017 + DC X'0000000300000003FC00000000000000' 25010017 + DC X'0000000180000007F800000000000000' 25020017 + DC X'00000000FFFFFFFFF000000000000000' 25030017 + DC X'000000007FFFFFFFE000000000000000' 25040017 + DC X'000000003FFFFFFFC000000000000000' 25050017 + DC X'000000001FFFFFFF8000000000000000' 25060017 + DC X'000000000FFFFFFF0000000000000000' 25070017 +PATUCL DC X'0000000003FFFFE00000000000000000' 25080017 + DC X'0000000007FFFFF00000000000000000' 25090017 + DC X'000000000FFFFFF80000000000000000' 25100017 + DC X'000000001FFFFFFC0000000000000000' 25110017 + DC X'000000003FFFFFFE0000000000000000' 25120017 + DC X'000000007F8000030000000000000000' 25130017 + DC X'00000000FF0000018000000000000000' 25140017 + DC X'00000001FE000000C000000000000000' 25150017 + DC X'00000003FC0000006000000000000000' 25160017 + DC X'00000007F80000003000000000000000' 25170017 + DC X'0000000FF00000007800000000000000' 25180017 + DC X'0000001FE0000000FC00000000000000' 25190017 + DC X'0000003FC0000001FE00000000000000' 25200017 + DC X'0000001FE0000003FC00000000000000' 25210017 + DC X'0000000FF0000007F800000000000000' 25220017 + DC X'00000007F800000FF000000000000000' 25230017 + DC X'00000003FC00001FE000000000000000' 25240017 + DC X'00000001FE00001FC000000000000000' 25250017 + DC X'00000000F80000078000000000000000' 25260017 + DC X'00000000600000010000000000000000' 25270017 +PATUDL DC X'000000007FFFFFF80000000000000000' 25280017 + DC X'00000000FFFFFFFC0000002000000000' 25290017 + DC X'00000001FFFFFFFE000000F800000000' 25300017 + DC X'00000003FFFFFFFF000003FE00000000' 25310017 + DC X'00000007FFFFFFFF80000FFF00000000' 25320017 + DC X'0000000FF0000000C0003FFE00000000' 25330017 + DC X'0000001FE00000006000FFF800000000' 25340017 + DC X'0000003FC00000003003FFE000000000' 25350017 + DC X'0000001F80000000180FFF8000000000' 25360017 + DC X'0000000F000000000C3FFE0000000000' 25370017 + DC X'000000060000000006FFF80000000000' 25380017 + DC X'000000030000000003FFE00000000000' 25390017 + DC X'00000001800000000FFF800000000000' 25400017 + DC X'00000003FFFFFFFFFFFE000000000000' 25410017 + DC X'00000007FFFFFFFFFFF8000000000000' 25420017 + DC X'0000000FFFFFFFFFFFE0000000000000' 25430017 + DC X'0000001FFFFFFFFFFF80000000000000' 25440017 + DC X'0000003FFFFFFFFFFE00000000000000' 25450017 + DC X'0000000F000000000000000000000000' 25460017 + DC X'00000002000000000000000000000000' 25470017 +PATUEL DC X'0000000003FFFFE00000000000000000' 25480017 + DC X'0000000007FFFFF00000000000000000' 25490017 + DC X'000000000FFFFFF80000000000000000' 25500017 + DC X'000000001FFFFFFC0000000000000000' 25510017 + DC X'000000003FFFFFFE0000000000000000' 25520017 + DC X'000000007F80C0030000000000000000' 25530017 + DC X'00000000FF0060018000000000000000' 25540017 + DC X'00000001FE003000C000000000000000' 25550017 + DC X'00000003FC0018006000000000000000' 25560017 + DC X'00000007F8000C003000000000000000' 25570017 + DC X'0000000FF00006007800000000000000' 25580017 + DC X'0000001FE0000300FC00000000000000' 25590017 + DC X'0000003FC0000181FE00000000000000' 25600017 + DC X'0000001FE00000C3FC00000000000000' 25610017 + DC X'0000000FF0000067F800000000000000' 25620017 + DC X'00000007F800003FF000000000000000' 25630017 + DC X'00000003FC00001FE000000000000000' 25640017 + DC X'00000001FE00000FC000000000000000' 25650017 + DC X'00000000F80000078000000000000000' 25660017 + DC X'00000000300000010000000000000000' 25670017 +PATUFL DC X'00000000000000040000000000000000' 25680017 + DC X'00000000000000070000000000000000' 25690017 + DC X'0000000000000007C000000000000000' 25700017 + DC X'0000000000000007F000000000000000' 25710017 + DC X'0000000400000007F800000000000000' 25720017 + DC X'0000000FFFFFFFFFFFFFFE0000000000' 25730017 + DC X'0000001FFFFFFFFFFFFFFF0000000000' 25740017 + DC X'0000003FFFFFFFFFFFFFFF8000000000' 25750017 + DC X'0000001FFFFFFFFFFFFFFFC000000000' 25760017 + DC X'0000000FFFFFFFFFFFFFFFE000000000' 25770017 + DC X'0000000400000007F800003000000000' 25780017 + DC X'0000000000000007F800001800000000' 25790017 + DC X'0000000000000003F800003C00000000' 25800017 + DC X'0000000000000000F800007E00000000' 25810017 + DC X'0000000000000000380000FF00000000' 25820017 + DC X'000000000000000008003FFE00000000' 25830017 + DC X'000000000000000000003FFC00000000' 25840017 + DC X'000000000000000000003FF800000000' 25850017 + DC X'000000000000000000003FF000000000' 25860017 + DC X'000000000000000000003FE000000000' 25870017 +PATUGL DC X'003F00007FFFFFF80000000000000000' 25880017 + DC X'007F0000FFFFFFFC0000000000000000' 25890017 + DC X'00FF0001FFFFFFFE0000000000000000' 25900017 + DC X'01FF0003FFFFFFFF0000000000000000' 25910017 + DC X'03FF0007FFFFFFFF8000000000000000' 25920017 + DC X'07F0000FF0000000C000000000000000' 25930017 + DC X'0FE0001FE00000006000000000000000' 25940017 + DC X'1FC0003FC00000003000000000000000' 25950017 + DC X'3F80001F800000007800000000000000' 25960017 + DC X'7F00000F00000000FC00000000000000' 25970017 + DC X'3E00000600000001FE00000000000000' 25980017 + DC X'1C00000300000003FC00000000000000' 25990017 + DC X'0C00000180000007F800000000000000' 26000017 + DC X'07FFFFFFFFFFFFFFF000000000000000' 26010017 + DC X'03FFFFFFFFFFFFFFE000000000000000' 26020017 + DC X'01FFFFFFFFFFFFFFC000000000000000' 26030017 + DC X'00FFFFFFFFFFFFFF8000000000000000' 26040017 + DC X'007FFFFFFFFFFFFF0000000000000000' 26050017 +PATUHL DC X'00000000000000000000001000000000' 26060017 + DC X'00000004000000000000003800000000' 26070017 + DC X'0000000FFFFFFFFFFFFFFFFC00000000' 26080017 + DC X'0000001FFFFFFFFFFFFFFFFE00000000' 26090017 + DC X'0000003FFFFFFFFFFFFFFFFF00000000' 26100017 + DC X'0000001FFFFFFFFFFFFFFFFE00000000' 26110017 + DC X'0000000FFFFFFFFFFFFFFFFC00000000' 26120017 + DC X'00000004000000018000003800000000' 26130017 + DC X'00000000000000006000001000000000' 26140017 + DC X'00000000000000003000000000000000' 26150017 + DC X'00000000000000007800000000000000' 26160017 + DC X'0000000000000000FC00000000000000' 26170017 + DC X'0000000000000001FE00000000000000' 26180017 + DC X'0000000400000003FC00000000000000' 26190017 + DC X'0000000FFFFFFFFFF800000000000000' 26200017 + DC X'0000001FFFFFFFFFF000000000000000' 26210017 + DC X'0000003FFFFFFFFFE000000000000000' 26220017 + DC X'0000001FFFFFFFFFC000000000000000' 26230017 + DC X'0000000FFFFFFFFF8000000000000000' 26240017 + DC X'00000004000000000000000000000000' 26250017 +PATUIL DC X'00000000000000001004000000000000' 26260017 + DC X'00000003FFFFFFFFF80E000000000000' 26270017 + DC X'00000007FFFFFFFFFC1F000000000000' 26280017 + DC X'0000000FFFFFFFFFFE3F800000000000' 26290017 + DC X'0000001FFFFFFFFFFC1F000000000000' 26300017 + DC X'0000003FFFFFFFFFF80E000000000000' 26310017 + DC X'0000001FC00000001004000000000000' 26320017 + DC X'0000000F800000000000000000000000' 26330017 + DC X'00000007000000000000000000000000' 26340017 + DC X'00000003000000000000000000000000' 26350017 +PATUJL DC X'007F0000000000000000000000000000' 26360017 + DC X'00FF0000000000000000000000000000' 26370017 + DC X'01FF0000000000000000000000000000' 26380017 + DC X'03FF0000000000000000000000000000' 26390017 + DC X'07FF0000000000000000000000000000' 26400017 + DC X'0FE00000000000000000000000000000' 26410017 + DC X'1FC00000000000000000000000000000' 26420017 + DC X'3F800000000000000000000000000000' 26430017 + DC X'7F000000000000000000000000000000' 26440017 + DC X'3E000000000000000000000000000000' 26450017 + DC X'1C000000000000000000000000000000' 26460017 + DC X'0C000000000000000000000000000000' 26470017 + DC X'06000000000000001004000000000000' 26480017 + DC X'03FFFFFFFFFFFFFFF80E000000000000' 26490017 + DC X'01FFFFFFFFFFFFFFFC1F000000000000' 26500017 + DC X'00FFFFFFFFFFFFFFFE3F800000000000' 26510017 + DC X'007FFFFFFFFFFFFFFC1F000000000000' 26520017 + DC X'003FFFFFFFFFFFFFF80E000000000000' 26530017 + DC X'00000000000000001004000000000000' 26540017 +PATUKL DC X'00000000000000000000001000000000' 26550017 + DC X'00000004000000000000003800000000' 26560017 + DC X'0000000FFFFFFFFFFFFFFFFC00000000' 26570017 + DC X'0000001FFFFFFFFFFFFFFFFE00000000' 26580017 + DC X'0000003FFFFFFFFFFFFFFFFF00000000' 26590017 + DC X'0000001FFFFFFFFFFFFFFFFE00000000' 26600017 + DC X'0000000FFFFFFFFFFFFFFFFC00000000' 26610017 + DC X'0000000400008000C000003800000000' 26620017 + DC X'00000000000040006000001000000000' 26630017 + DC X'000000000000E0003000000000000000' 26640017 + DC X'000000000001E0007800000000000000' 26650017 + DC X'000000000003F000FC00000000000000' 26660017 + DC X'000000000007F001FE00000000000000' 26670017 + DC X'00000004000FF803FC00000000000000' 26680017 + DC X'0000000FFFFFE807F800000000000000' 26690017 + DC X'0000001FFFFFCFFFF000000000000000' 26700017 + DC X'0000003FFFFFC7FFE000000000000000' 26710017 + DC X'0000001FFFFF07FFC000000000000000' 26720017 + DC X'0000000FFFFE03FF8000000000000000' 26730017 + DC X'00000004000003FF0000000000000000' 26740017 +PATULL DC X'00000004000000000000000800000000' 26750017 + DC X'0000000FFFFFFFFFFFFFFFFC00000000' 26760017 + DC X'0000001FFFFFFFFFFFFFFFFE00000000' 26770017 + DC X'0000003FFFFFFFFFFFFFFFFF00000000' 26780017 + DC X'0000001FFFFFFFFFFFFFFFFE00000000' 26790017 + DC X'0000000FFFFFFFFFFFFFFFFC00000000' 26800017 + DC X'00000004000000000000000800000000' 26810017 +PATUML DC X'00000000000000008000000000000000' 26820017 + DC X'0000000400000000E000000000000000' 26830017 + DC X'0000000FFFFFFFFFF800000000000000' 26840017 + DC X'0000001FFFFFFFFFFE00000000000000' 26850017 + DC X'0000003FFFFFFFFFFE00000000000000' 26860017 + DC X'0000001FFFFFFFFFF800000000000000' 26870017 + DC X'0000000FFFFFFFFFE000000000000000' 26880017 + DC X'00000004000000018000000000000000' 26890017 + DC X'0000000000000000C000000000000000' 26900017 + DC X'00000000000000006000000000000000' 26910017 + DC X'00000000000000003000000000000000' 26920017 + DC X'00000000000000007800000000000000' 26930017 + DC X'0000000000000000FC00000000000000' 26940017 + DC X'0000000400000001FE00000000000000' 26950017 + DC X'0000000FFFFFFFFFFC00000000000000' 26960017 + DC X'0000001FFFFFFFFFF800000000000000' 26970017 + DC X'0000003FFFFFFFFFF000000000000000' 26980017 + DC X'0000001FFFFFFFFFE000000000000000' 26990017 + DC X'0000000FFFFFFFFFC000000000000000' 27000017 + DC X'00000004000000006000000000000000' 27010017 + DC X'00000000000000003000000000000000' 27020017 + DC X'00000000000000007800000000000000' 27030017 + DC X'0000000000000000FC00000000000000' 27040017 + DC X'0000000400000001FE00000000000000' 27050017 + DC X'0000000FFFFFFFFFFC00000000000000' 27060017 + DC X'0000001FFFFFFFFFF800000000000000' 27070017 + DC X'0000003FFFFFFFFFF000000000000000' 27080017 + DC X'0000001FFFFFFFFFE000000000000000' 27090017 + DC X'0000000FFFFFFFFFC000000000000000' 27100017 + DC X'00000004000000000000000000000000' 27110017 +PATUNL DC X'00000000000000008000000000000000' 27120017 + DC X'0000000400000000E000000000000000' 27130017 + DC X'0000000FFFFFFFFFF800000000000000' 27140017 + DC X'0000001FFFFFFFFFFE00000000000000' 27150017 + DC X'0000003FFFFFFFFFFE00000000000000' 27160017 + DC X'0000001FFFFFFFFFF800000000000000' 27170017 + DC X'0000000FFFFFFFFFE000000000000000' 27180017 + DC X'00000004000000018000000000000000' 27190017 + DC X'0000000000000000C000000000000000' 27200017 + DC X'00000000000000006000000000000000' 27210017 + DC X'00000000000000003000000000000000' 27220017 + DC X'00000000000000007800000000000000' 27230017 + DC X'0000000000000000FC00000000000000' 27240017 + DC X'0000000400000001FE00000000000000' 27250017 + DC X'0000000FFFFFFFFFFC00000000000000' 27260017 + DC X'0000001FFFFFFFFFF800000000000000' 27270017 + DC X'0000003FFFFFFFFFF000000000000000' 27280017 + DC X'0000001FFFFFFFFFE000000000000000' 27290017 + DC X'0000000FFFFFFFFFC000000000000000' 27300017 + DC X'00000004000000000000000000000000' 27310017 +PATUOL DC X'000000001FFFFFF80000000000000000' 27320017 + DC X'000000003FFFFFFC0000000000000000' 27330017 + DC X'000000007FFFFFFE0000000000000000' 27340017 + DC X'00000000FFFFFFFF0000000000000000' 27350017 + DC X'00000001FFFFFFFF8000000000000000' 27360017 + DC X'00000003FC000000C000000000000000' 27370017 + DC X'00000007F80000006000000000000000' 27380017 + DC X'0000000FF00000003000000000000000' 27390017 + DC X'0000001FE00000007800000000000000' 27400017 + DC X'0000003FC0000000FC00000000000000' 27410017 + DC X'0000001F80000001FE00000000000000' 27420017 + DC X'0000000F00000003FC00000000000000' 27430017 + DC X'0000000600000007F800000000000000' 27440017 + DC X'000000030000000FF000000000000000' 27450017 + DC X'000000018000001FE000000000000000' 27460017 + DC X'00000000FFFFFFFFC000000000000000' 27470017 + DC X'000000007FFFFFFF8000000000000000' 27480017 + DC X'000000003FFFFFFF0000000000000000' 27490017 + DC X'000000001FFFFFFE0000000000000000' 27500017 + DC X'000000000FFFFFFC0000000000000000' 27510017 +PATUPL DC X'04000000000000002000000000000000' 27520017 + DC X'0E000000000000007000000000000000' 27530017 + DC X'1FFFFFFFFFFFFFFFF800000000000000' 27540017 + DC X'3FFFFFFFFFFFFFFFFC00000000000000' 27550017 + DC X'7FFFFFFFFFFFFFFFFE00000000000000' 27560017 + DC X'3FFFFFFFFFFFFFFFF800000000000000' 27570017 + DC X'1FFFFFFFFFFFFFFFE000000000000000' 27580017 + DC X'0E00000FF0000000C000000000000000' 27590017 + DC X'0400001FE00000006000000000000000' 27600017 + DC X'0000003FC00000003000000000000000' 27610017 + DC X'0000001F800000007800000000000000' 27620017 + DC X'0000000F00000000FC00000000000000' 27630017 + DC X'0000000600000001FE00000000000000' 27640017 + DC X'0000000300000003FC00000000000000' 27650017 + DC X'0000000180000007F800000000000000' 27660017 + DC X'00000000FFFFFFFFF000000000000000' 27670017 + DC X'000000007FFFFFFFE000000000000000' 27680017 + DC X'000000003FFFFFFFC000000000000000' 27690017 + DC X'000000001FFFFFFF8000000000000000' 27700017 + DC X'000000000FFFFFFF0000000000000000' 27710017 +PATUQL DC X'000000007FFFFFF80000000000000000' 27720017 + DC X'00000000FFFFFFFC0000000000000000' 27730017 + DC X'00000001FFFFFFFE0000000000000000' 27740017 + DC X'00000003FFFFFFFF0000000000000000' 27750017 + DC X'00000007FFFFFFFF8000000000000000' 27760017 + DC X'0000000FF0000000C000000000000000' 27770017 + DC X'0000001FE00000006000000000000000' 27780017 + DC X'0000003FC00000003000000000000000' 27790017 + DC X'0000001F800000007800000000000000' 27800017 + DC X'0000000F00000000FC00000000000000' 27810017 + DC X'0000000600000001FE00000000000000' 27820017 + DC X'0400000300000003FC00000000000000' 27830017 + DC X'0E00000180000007F800000000000000' 27840017 + DC X'1FFFFFFFFFFFFFFFF000000000000000' 27850017 + DC X'3FFFFFFFFFFFFFFFE000000000000000' 27860017 + DC X'7FFFFFFFFFFFFFFFC000000000000000' 27870017 + DC X'3FFFFFFFFFFFFFFF8000000000000000' 27880017 + DC X'1FFFFFFFFFFFFFFF0000000000000000' 27890017 + DC X'0E000000000000000000000000000000' 27900017 + DC X'04000000000000000000000000000000' 27910017 +PATURL DC X'00000000000000008000000000000000' 27920017 + DC X'0000000400000000E000000000000000' 27930017 + DC X'0000000FFFFFFFFFF800000000000000' 27940017 + DC X'0000001FFFFFFFFFFE00000000000000' 27950017 + DC X'0000003FFFFFFFFFFE00000000000000' 27960017 + DC X'0000001FFFFFFFFFF800000000000000' 27970017 + DC X'0000000FFFFFFFFFE000000000000000' 27980017 + DC X'00000004000000018000000000000000' 27990017 + DC X'0000000000000000C000000000000000' 28000017 + DC X'00000000000000006000000000000000' 28010017 + DC X'00000000000000003000000000000000' 28020017 + DC X'00000000000000007800000000000000' 28030017 + DC X'0000000000000000FC00000000000000' 28040017 + DC X'0000000000000001FE00000000000000' 28050017 + DC X'0000000000000003FC00000000000000' 28060017 + DC X'000000000000003FF800000000000000' 28070017 + DC X'000000000000003FF000000000000000' 28080017 + DC X'000000000000003FE000000000000000' 28090017 + DC X'000000000000003FC000000000000000' 28100017 + DC X'000000000000003F8000000000000000' 28110017 +PATUSL DC X'0000003800007FC00000000000000000' 28120017 + DC X'0000000F0001FFF80000000000000000' 28130017 + DC X'00000007C007FFFF0000000000000000' 28140017 + DC X'00000003E007FC00C000000000000000' 28150017 + DC X'00000003F007F801F000000000000000' 28160017 + DC X'00000003F80FF003F800000000000000' 28170017 + DC X'00000003F80FF007FE00000000000000' 28180017 + DC X'00000003FC0FF00FFC00000000000000' 28190017 + DC X'00000003FC0FF00FF800000000000000' 28200017 + DC X'00000003FC0FF01FF000000000000000' 28210017 + DC X'00000007FC0FF01FE000000000000000' 28220017 + DC X'0000000FF80FF01FE000000000000000' 28230017 + DC X'0000001FF80FF01FE000000000000000' 28240017 + DC X'0000003FF00FF00FE000000000000000' 28250017 + DC X'0000000FE00FF00FE000000000000000' 28260017 + DC X'00000007C01FE007E000000000000000' 28270017 + DC X'00000001803FE003E000000000000000' 28280017 + DC X'000000007FFFE001F000000000000000' 28290017 + DC X'000000000FFFC0007800000000000000' 28300017 + DC X'0000000001FF80000C00000000000000' 28310017 +PATUTL DC X'00000000000000000400000000000000' 28320017 + DC X'00000000000000000600000000000000' 28330017 + DC X'00000000000000000700000000000000' 28340017 + DC X'00000000000000000780000000000000' 28350017 + DC X'000000000000000007C0000000000000' 28360017 + DC X'000000000000000007E0000000000000' 28370017 + DC X'000000000000000007F0000000000000' 28380017 + DC X'00000003FFFFFFFFFFFFF00000000000' 28390017 + DC X'00000007FFFFFFFFFFFFF80000000000' 28400017 + DC X'0000000FFFFFFFFFFFFFFC0000000000' 28410017 + DC X'0000001FFFFFFFFFFFFFFE0000000000' 28420017 + DC X'0000003FFFFFFFFFFFFFFF0000000000' 28430017 + DC X'0000001F8000000007F0000000000000' 28440017 + DC X'0000000F0000000003F0000000000000' 28450017 + DC X'000000060000000001F0000000000000' 28460017 + DC X'000000030000000000F0000000000000' 28470017 + DC X'00000001800000000070000000000000' 28480017 + DC X'00000000000000000030000000000000' 28490017 + DC X'00000000000000000010000000000000' 28500017 +PATUUL DC X'00000000000000002000000000000000' 28510017 + DC X'00000000000000007800000000000000' 28520017 + DC X'00000003FFFFFFFFFE00000000000000' 28530017 + DC X'00000007FFFFFFFFFC00000000000000' 28540017 + DC X'0000000FFFFFFFFFF800000000000000' 28550017 + DC X'0000001FFFFFFFFFF000000000000000' 28560017 + DC X'0000003FFFFFFFFFE000000000000000' 28570017 + DC X'0000001F800000000000000000000000' 28580017 + DC X'0000000F000000000000000000000000' 28590017 + DC X'00000006000000000000000000000000' 28600017 + DC X'00000003000000000000000000000000' 28610017 + DC X'00000001800000002000000000000000' 28620017 + DC X'00000001C00000007800000000000000' 28630017 + DC X'00000003FFFFFFFFFE00000000000000' 28640017 + DC X'0000000FFFFFFFFFFC00000000000000' 28650017 + DC X'0000003FFFFFFFFFF800000000000000' 28660017 + DC X'0000003FFFFFFFFFF000000000000000' 28670017 + DC X'0000000FFFFFFFFFE000000000000000' 28680017 + DC X'00000003800000000000000000000000' 28690017 + DC X'00000001000000000000000000000000' 28700017 +PATUVL DC X'00000000000000002000000000000000' 28710017 + DC X'00000000000000007800000000000000' 28720017 + DC X'000000003FFFFFFFFE00000000000000' 28730017 + DC X'000000007FFFFFFFFC00000000000000' 28740017 + DC X'00000000FFFFFFFFF800000000000000' 28750017 + DC X'00000001FFFFFFFFF000000000000000' 28760017 + DC X'00000003FFFFFFFFE000000000000000' 28770017 + DC X'00000007F80000001000000000000000' 28780017 + DC X'0000000FF00000000800000000000000' 28790017 + DC X'0000001FE00000000C00000000000000' 28800017 + DC X'0000003FC00000001E00000000000000' 28810017 + DC X'0000001F800000003F00000000000000' 28820017 + DC X'0000000F000000007F80000000000000' 28830017 + DC X'0000000300000000FFC0000000000000' 28840017 + DC X'00000001E0000003FFE0000000000000' 28850017 + DC X'000000007800001FFFC0000000000000' 28860017 + DC X'000000001F8001FFFF80000000000000' 28870017 + DC X'0000000007FFFFFFFE00000000000000' 28880017 + DC X'0000000000FFFFFFF800000000000000' 28890017 + DC X'00000000001FFFFFC000000000000000' 28900017 + DC X'000000000003FFFE0000000000000000' 28910017 +PATUWL DC X'00000000000000001000000000000000' 28920017 + DC X'00000001FFFFFFFFF800000000000000' 28930017 + DC X'00000003FFFFFFFFFC00000000000000' 28940017 + DC X'00000007FFFFFFFFFE00000000000000' 28950017 + DC X'0000000FFFFFFFFFFC00000000000000' 28960017 + DC X'0000001FFFFFFFFFF800000000000000' 28970017 + DC X'0000003FC00000001000000000000000' 28980017 + DC X'0000001F800000000000000000000000' 28990017 + DC X'0000000F000000000000000000000000' 29000017 + DC X'00000006000000000000000000000000' 29010017 + DC X'00000003000000001000000000000000' 29020017 + DC X'00000001FFFFFFFFF800000000000000' 29030017 + DC X'00000003FFFFFFFFFC00000000000000' 29040017 + DC X'00000007FFFFFFFFFE00000000000000' 29050017 + DC X'0000000FFFFFFFFFFC00000000000000' 29060017 + DC X'0000001FFFFFFFFFF800000000000000' 29070017 + DC X'0000003FC00000001000000000000000' 29080017 + DC X'0000000F000000000000000000000000' 29090017 + DC X'00000006000000000000000000000000' 29100017 + DC X'00000003000000001000000000000000' 29110017 + DC X'00000001FFFFFFFFF800000000000000' 29120017 + DC X'00000000FFFFFFFFFC00000000000000' 29130017 + DC X'000000007FFFFFFFFE00000000000000' 29140017 + DC X'000000003FFFFFFFFC00000000000000' 29150017 + DC X'000000001FFFFFFFF800000000000000' 29160017 + DC X'00000000000000001000000000000000' 29170017 +PATUXL DC X'00000020000000000800000000000000' 29180017 + DC X'00000018000000000C00000000000000' 29190017 + DC X'0000000E000000000E00000000000000' 29200017 + DC X'0000001F000000001E00000000000000' 29210017 + DC X'0000003F000000003E00000000000000' 29220017 + DC X'00000007E0000000FC00000000000000' 29230017 + DC X'000000003E000007F800000000000000' 29240017 + DC X'0000000007C00FFFF000000000000000' 29250017 + DC X'00000000007FFFFFE000000000000000' 29260017 + DC X'000000001FFFFFFF8000000000000000' 29270017 + DC X'00000000FFFFFFFC0000000000000000' 29280017 + DC X'00000003FFFFFF800000000000000000' 29290017 + DC X'00000007FFFC01F00000000000000000' 29300017 + DC X'0000000FF800003E0000000000000000' 29310017 + DC X'0000001F80000003F000000000000000' 29320017 + DC X'0000003E000000007E00000000000000' 29330017 + DC X'0000003C000000007C00000000000000' 29340017 + DC X'00000038000000003800000000000000' 29350017 + DC X'00000018000000000C00000000000000' 29360017 + DC X'00000004000000000400000000000000' 29370017 +PATUYL DC X'00000000000000002000000000000000' 29380017 + DC X'00000000000000007800000000000000' 29390017 + DC X'00FF0003FFFFFFFFFE00000000000000' 29400017 + DC X'01FF0007FFFFFFFFFC00000000000000' 29410017 + DC X'03FF000FFFFFFFFFF800000000000000' 29420017 + DC X'07FF001FFFFFFFFFF000000000000000' 29430017 + DC X'0FFF003FFFFFFFFFE000000000000000' 29440017 + DC X'1FC0001E000000000000000000000000' 29450017 + DC X'3F80000C000000000000000000000000' 29460017 + DC X'7F000006000000000000000000000000' 29470017 + DC X'3E000003000000000000000000000000' 29480017 + DC X'1C000001800000002000000000000000' 29490017 + DC X'0C000000C00000007800000000000000' 29500017 + DC X'07FFFFFFFFFFFFFFFE00000000000000' 29510017 + DC X'03FFFFFFFFFFFFFFFC00000000000000' 29520017 + DC X'01FFFFFFFFFFFFFFF800000000000000' 29530017 + DC X'00FFFFFFFFFFFFFFF000000000000000' 29540017 + DC X'007FFFFFFFFFFFFFE000000000000000' 29550017 +PATUZL DC X'00000038000000010000000000000000' 29560017 + DC X'0000003E00000001C000000000000000' 29570017 + DC X'0000001F80000001F000000000000000' 29580017 + DC X'0000001F60000003FC00000000000000' 29590017 + DC X'0000000F8C000003FE00000000000000' 29600017 + DC X'0000000FC3000003FC00000000000000' 29610017 + DC X'0000000FC0C00003F800000000000000' 29620017 + DC X'0000000FC0180003F800000000000000' 29630017 + DC X'0000000FE0060003F800000000000000' 29640017 + DC X'0000000FE0018003F800000000000000' 29650017 + DC X'0000000FE0003003F800000000000000' 29660017 + DC X'0000000FE0000C03F800000000000000' 29670017 + DC X'0000000FE00001C1F800000000000000' 29680017 + DC X'0000000FE0000061F800000000000000' 29690017 + DC X'0000001FE0000018F800000000000000' 29700017 + DC X'0000003FE0000006F800000000000000' 29710017 + DC X'0000001FE0000001FC00000000000000' 29720017 + DC X'00000007C00000003C00000000000000' 29730017 + DC X'00000001C00000000E00000000000000' 29740017 + DC X'00000000800000000200000000000000' 29750017 +PATUAU DC X'0000003C000000000000000000000000' 29760017 + DC X'0000000F000000000000000000000000' 29770017 + DC X'00000007C00000000000000000000000' 29780017 + DC X'00000003E00000000000000000000000' 29790017 + DC X'00000003F00000000000000000000000' 29800017 + DC X'00000003F80000000000000000000000' 29810017 + DC X'00000003F80000000600000000000000' 29820017 + DC X'00000007FC0000000380000000000000' 29830017 + DC X'0000000FFFE0000001E0000000000000' 29840017 + DC X'0000000FF07F000000F8000000000000' 29850017 + DC X'0000001FE003FC0000FE000000000000' 29860017 + DC X'0000001FE0000FF000FF000000000000' 29870017 + DC X'0000003FC000003FC0FF800000000000' 29880017 + DC X'0000003FC0000007FFFFC00020000000' 29890017 + DC X'0000003FC0000007FFFFE00018000000' 29900017 + DC X'0000003FC0000007F87FE0000E000000' 29910017 + DC X'0000001FC0000007F801FF800F000000' 29920017 + DC X'00000007E0000007F80007FC0F800000' 29930017 + DC X'00000000F0000007F800001FFFC00000' 29940017 + DC X'000000000C000007F8000000FFC00000' 29950017 + DC X'0000000000000007F800000FFFC00000' 29960017 + DC X'0000000000000007F80007FFFF800000' 29970017 + DC X'0000000000000007F803FFFFFF000000' 29980017 + DC X'0000000000000007F9FFFFFFFC000000' 29990017 + DC X'0000000000000007FFFFFFFFE0000000' 30000017 + DC X'000000000000007FFFFFFFF800000000' 30010017 + DC X'0000000000003FFFFFFFFC0000000000' 30020017 + DC X'00000000001FFFFFFFFE000000000000' 30030017 + DC X'000000000FFFFFFFFF00000000000000' 30040017 + DC X'00000000FFFFFFFFC000000000000000' 30050017 + DC X'00000003FFFFFFC00000000000000000' 30060017 + DC X'0000000FFFFFE0000000000000000000' 30070017 + DC X'0000001FFFF000000000000000000000' 30080017 + DC X'0000003FFC0000000000000000000000' 30090017 + DC X'0000003FC00000000000000000000000' 30100017 + DC X'0000003F800000000000000000000000' 30110017 + DC X'0000003F800000000000000000000000' 30120017 + DC X'0000001F800000000000000000000000' 30130017 + DC X'00000007C00000000000000000000000' 30140017 + DC X'00000001F00000000000000000000000' 30150017 +PATUBU DC X'0000002000000000000001E000000000' 30160017 + DC X'0000001C000000000000007E00000000' 30170017 + DC X'0000000E000000000000000FC0000000' 30180017 + DC X'0000000F8000001000000007F0000000' 30190017 + DC X'00000007C000000E00000003F8000000' 30200017 + DC X'00000007E0000007C0000001FC000000' 30210017 + DC X'00000007F0000003F0000001FE000000' 30220017 + DC X'00000003F8000003F8000001FE000000' 30230017 + DC X'00000003F8000003FC000001FE000000' 30240017 + DC X'00000003FC000003FE000003FC000000' 30250017 + DC X'00000003FC000003FF000003FC000000' 30260017 + DC X'00000003FE000007FF000003FC000000' 30270017 + DC X'00000003FFFFFFFFFFFFFFFDFE000000' 30280017 + DC X'00000003FEFFFFFFFFFFFFFEFE000000' 30290017 + DC X'00000003FF7FFFFFFFFFFFFF7F000000' 30300017 + DC X'00000003FF1FFFFFFFFFFFFF9F000000' 30310017 + DC X'00000003FF87FFFFFFFFFFFFE3800000' 30320017 + DC X'00000003FF80FFFFFFFFFFFFFCC00000' 30330017 + DC X'00000003FF80000000300003FFC00000' 30340017 + DC X'00000003FFC0000000300003FFC00000' 30350017 + DC X'00000003FFC0000000300003FFC00000' 30360017 + DC X'00000003FFC0000000300003FF800000' 30370017 + DC X'00000003FFC0000000300003FF800000' 30380017 + DC X'00000003FFC0000000700007FF800000' 30390017 + DC X'00000003FF80000000F00007FF000000' 30400017 + DC X'00000003FF80000001F00007FE000000' 30410017 + DC X'00000003FF80000003F0000FFE000000' 30420017 + DC X'00000007FF80000007F0000FFC000000' 30430017 + DC X'00000007FF0000000FF0001FFC000000' 30440017 + DC X'0000000FFF0000001FF0001FF8000000' 30450017 + DC X'0000000FFF0000007FB0003FF0000000' 30460017 + DC X'0000001FFE000000FFB0003FE0000000' 30470017 + DC X'0000003FFE000003FF18007FC0000000' 30480017 + DC X'0000001FFE00000FFE1C01FF80000000' 30490017 + DC X'00000007FC00003FFE1F03FF00000000' 30500017 + DC X'00000001FC0000FFFC0FFFFE00000000' 30510017 + DC X'00000000F80003FFF807FFFC00000000' 30520017 + DC X'0000000038001FFFF003FFF000000000' 30530017 + DC X'000000000707FFFFC001FFC000000000' 30540017 + DC X'0000000001FFFFFF00003E0000000000' 30550017 + DC X'00000000003FFFFC0000000000000000' 30560017 + DC X'000000000007FFE00000000000000000' 30570017 +PATUCU DC X'000000000000001FF000000000000000' 30580017 + DC X'00000000000007FFFFC0000000000000' 30590017 + DC X'000000000000FFFFFFFE000000000000' 30600017 + DC X'000000000007FFFFFFFFC00000000000' 30610017 + DC X'00000000003FFFFFFFFFF80000000000' 30620017 + DC X'0000000000FFFFFFFFFFFE0000000000' 30630017 + DC X'0000000003FFFFF83003FF8000000000' 30640017 + DC X'000000000FFFFF001E001FE000000000' 30650017 + DC X'000000003FFFF0000F8001F000000000' 30660017 + DC X'000000007FFF80000FE000B800000000' 30670017 + DC X'00000000FFFE00000FF0000E00000000' 30680017 + DC X'00000001FFF800001FF8002300000000' 30690017 + DC X'00000003FFFFFFFFFFFFFFF180000000' 30700017 + DC X'00000007FFDFFFFFFFFFFFF8C0000000' 30710017 + DC X'0000000FFF0FFFFFFFFFFFFC20000000' 30720017 + DC X'0000001FFE07FFFFFFFFFFFE00000000' 30730017 + DC X'0000001FFC03FFFFFFFFFFFF00000000' 30740017 + DC X'0000001FF801FFFFFFFFFFFF80000000' 30750017 + DC X'0000003FF000000000000001E0000000' 30760017 + DC X'0000003FE000000000000003F8000000' 30770017 + DC X'0000003FC000000000000007FE000000' 30780017 + DC X'0000003FC00000000000000FFFC00000' 30790017 + DC X'0000003F800000000000001FFF800000' 30800017 + DC X'0000003F800000000000003FFF000000' 30810017 + DC X'0000003F000000000000007FFE000000' 30820017 + DC X'0000003F00000000000000FFFC000000' 30830017 + DC X'0000003E00000000000001FFF8000000' 30840017 + DC X'0000003E00000000000003FFF0000000' 30850017 + DC X'0000003E00000000000007FFE0000000' 30860017 + DC X'0000001E00000000000007FFC0000000' 30870017 + DC X'0000001E00000000000007FF80000000' 30880017 + DC X'0000000E00000000000007FF80000000' 30890017 + DC X'0000000F00000000000007FF00000000' 30900017 + DC X'0000000700000000000003FE00000000' 30910017 + DC X'0000000380000000000001FE00000000' 30920017 + DC X'0000000180000000000000FE00000000' 30930017 + DC X'00000000C00000000000007E00000000' 30940017 + DC X'00000000600000000000001E00000000' 30950017 + DC X'00000000100000000000000700000000' 30960017 +PATUDU DC X'0000002000000000000001E000000000' 30970017 + DC X'0000001C000000000000007E00000000' 30980017 + DC X'0000000E000000000000000FC0000000' 30990017 + DC X'0000000F8000001000000007F0000000' 31000017 + DC X'00000007C000000E00000003F8000000' 31010017 + DC X'00000007E0000007C0000001FC000000' 31020017 + DC X'00000007F0000003F0000001FE000000' 31030017 + DC X'00000003F8000003F8000001FE000000' 31040017 + DC X'00000003F8000003FC000001FE000000' 31050017 + DC X'00000003FC000003FE000003FC000000' 31060017 + DC X'00000003FC000003FF000003FC000000' 31070017 + DC X'00000003FE000007FF000003FC000000' 31080017 + DC X'00000003FFFFFFFFFFFFFFFDFE000000' 31090017 + DC X'00000003FEFFFFFFFFFFFFFEFE000000' 31100017 + DC X'00000003FF7FFFFFFFFFFFFF7F000000' 31110017 + DC X'00000003FF1FFFFFFFFFFFFF9F000000' 31120017 + DC X'00000003FFC7FFFFFFFFFFFFE3800000' 31130017 + DC X'00000003FF80FFFFFFFFFFFFFCC00000' 31140017 + DC X'00000003FF80000000000003FFC00000' 31150017 + DC X'00000003FFC0000000000003FFC00000' 31160017 + DC X'00000003FFC0000000000007FF800000' 31170017 + DC X'00000003FFC000000000000FFF800000' 31180017 + DC X'00000003FFC000000000000FFF000000' 31190017 + DC X'00000003FFC000000000001FFF000000' 31200017 + DC X'00000003FF8000000000003FFF000000' 31210017 + DC X'00000003FF8000000000007FFE000000' 31220017 + DC X'00000003FF800000000000FFFC000000' 31230017 + DC X'00000007FF800000000001FFF8000000' 31240017 + DC X'00000007FF000000000007FFF0000000' 31250017 + DC X'0000000FFF00000000000FFFE0000000' 31260017 + DC X'0000000FFF00000000003FFFC0000000' 31270017 + DC X'0000001FFE00000000007FFF00000000' 31280017 + DC X'0000003FFE0000000001FFFE00000000' 31290017 + DC X'0000001FFE0000000007FFF800000000' 31300017 + DC X'00000007FC000000001FFFF000000000' 31310017 + DC X'00000001FC000000007FFFC000000000' 31320017 + DC X'00000000F800000003FFFF0000000000' 31330017 + DC X'00000000380000001FFFFC0000000000' 31340017 + DC X'0000000007000001FFFFE00000000000' 31350017 + DC X'0000000000F8007FFFFC000000000000' 31360017 + DC X'000000000007FFFFFF80000000000000' 31370017 + DC X'0000000000003FFFF000000000000000' 31380017 +PATUEU DC X'0000002000000000000001E000000000' 31390017 + DC X'00000038000000000000007E00000000' 31400017 + DC X'0000001E000000000000000FC0000000' 31410017 + DC X'0000000F0000001000000007F0000000' 31420017 + DC X'000000078000000E00000003F8000000' 31430017 + DC X'00000003E0000007C0000001FC000000' 31440017 + DC X'00000003F0000003F0000001FE000000' 31450017 + DC X'00000003F8000003F8000001FE000000' 31460017 + DC X'00000003FC000003FC000001FE000000' 31470017 + DC X'00000003FE000003FE000003FC000000' 31480017 + DC X'00000001FE000003FF000003FC000000' 31490017 + DC X'00000001FF000007FF000003FC000000' 31500017 + DC X'00000001FFFFFFFFFFFFFFFDFE000000' 31510017 + DC X'00000003FFFFFFFFFFFFFFFEFE000000' 31520017 + DC X'00000003FFBFFFFFFFFFFFFF7F000000' 31530017 + DC X'00000003FF8FFFFFFFFFFFFF9F000000' 31540017 + DC X'00000007FFC3FFFFFFFFFFFFE3800000' 31550017 + DC X'0000000FFF007FFFFFFFFFFFFCC00000' 31560017 + DC X'0000000FFF000000E0000003FFC00000' 31570017 + DC X'0000001FFF00000078000007FF800000' 31580017 + DC X'0000001FFE000000FE000007FF000000' 31590017 + DC X'0000001FFE000001FF800007FE000000' 31600017 + DC X'0000003FFE000003FF000007FE000000' 31610017 + DC X'0000003FFC000007FE000007FE000000' 31620017 + DC X'0000003FFC00000FFC000003FC000000' 31630017 + DC X'0000003FFC00001FF8000003FC000000' 31640017 + DC X'0000003FF8000007F8000001FC000000' 31650017 + DC X'0000003FF8000001F8000001FC000000' 31660017 + DC X'0000003FF8000000F0000000FC000000' 31670017 + DC X'0000003FF800000030000000FC000000' 31680017 + DC X'0000003FF8000000000000007E000000' 31690017 + DC X'0000003FF8000000000000003E000000' 31700017 + DC X'0000000FF8000000000000001E000000' 31710017 + DC X'00000003F8000000000000000F000000' 31720017 + DC X'00000000FC0000000000000003800000' 31730017 + DC X'000000003E0000000000000000C00000' 31740017 + DC X'000000000E0000000000000000000000' 31750017 + DC X'00000000030000000000000000000000' 31760017 + DC X'0000000000C000000000000000000000' 31770017 +PATUFU DC X'0000002000000000000001E000000000' 31780017 + DC X'00000038000000000000007E00000000' 31790017 + DC X'0000001E000000000000000FC0000000' 31800017 + DC X'0000000F0000001000000007F0000000' 31810017 + DC X'000000078000000E00000003F8000000' 31820017 + DC X'00000003E0000007C0000001FC000000' 31830017 + DC X'00000003F0000003F0000001FE000000' 31840017 + DC X'00000003F8000003F8000001FE000000' 31850017 + DC X'00000003FC000003FC000001FE000000' 31860017 + DC X'00000003FE000003FE000003FC000000' 31870017 + DC X'00000003FF000003FF000003FC000000' 31880017 + DC X'00000001FF000007FF000003FC000000' 31890017 + DC X'00000001FFFFFFFFFFFFFFFDFE000000' 31900017 + DC X'00000000FFFFFFFFFFFFFFFEFE000000' 31910017 + DC X'000000007FFFFFFFFFFFFFFF7F000000' 31920017 + DC X'000000003FFFFFFFFFFFFFFF9F000000' 31930017 + DC X'000000000FFFFFFFFFFFFFFFE3800000' 31940017 + DC X'0000000003FFFFFFFFFFFFFFFCC00000' 31950017 + DC X'0000000000000000E0000003FFC00000' 31960017 + DC X'000000000000000078000007FF800000' 31970017 + DC X'0000000000000000FE000007FF000000' 31980017 + DC X'0000000000000001FF800007FE000000' 31990017 + DC X'0000000000000003FF000007FE000000' 32000017 + DC X'0000000000000007FE000007FE000000' 32010017 + DC X'000000000000000FFC000003FC000000' 32020017 + DC X'000000000000001FF8000003FC000000' 32030017 + DC X'0000000000000007F8000001FC000000' 32040017 + DC X'0000000000000001F8000001FC000000' 32050017 + DC X'0000000000000000F0000000FC000000' 32060017 + DC X'000000000000000060000000FC000000' 32070017 + DC X'0000000000000000000000007E000000' 32080017 + DC X'0000000000000000000000003E000000' 32090017 + DC X'0000000000000000000000001E000000' 32100017 + DC X'0000000000000000000000000F000000' 32110017 + DC X'00000000000000000000000003800000' 32120017 + DC X'00000000000000000000000000C00000' 32130017 +PATUGU DC X'000000000000001FF000000000000000' 32140017 + DC X'00000000000007FFFFC0000000000000' 32150017 + DC X'000000000000FFFFFFFE000000000000' 32160017 + DC X'000000000007FFFFFFFFC00000000000' 32170017 + DC X'00000000003FFFFFFFFFF80000000000' 32180017 + DC X'0000000000FFFFFFFFFFFE0000000000' 32190017 + DC X'0000000003FFFFF83003FF8000000000' 32200017 + DC X'000000000FFFFF001E001FE000000000' 32210017 + DC X'000000003FFFF0000F8001F000000000' 32220017 + DC X'000000007FFF80000FE000B800000000' 32230017 + DC X'00000000FFFE00000FF0000E00000000' 32240017 + DC X'00000001FFF800001FF8002300000000' 32250017 + DC X'00000003FFFFFFFFFFFFFFF180000000' 32260017 + DC X'00000007FFDFFFFFFFFFFFF8C0000000' 32270017 + DC X'0000000FFF0FFFFFFFFFFFFC20000000' 32280017 + DC X'0000001FFE07FFFFFFFFFFFE00000000' 32290017 + DC X'0000001FFC03FFFFFFFFFFFF00000000' 32300017 + DC X'0000001FF801FFFFFFFFFFFF80000000' 32310017 + DC X'0000003FF000000300000001E0000000' 32320017 + DC X'0000003FE0000001C0000003F8000000' 32330017 + DC X'0000003FC0000000F8000007FE000000' 32340017 + DC X'0000003FC00000007E00000FFFC00000' 32350017 + DC X'0000003F800000003EC0001FFF800000' 32360017 + DC X'0000003F800000003F30003FFF000000' 32370017 + DC X'0000003F000000001F9C007FFE000000' 32380017 + DC X'0000003F000000001FCE00FFFC000000' 32390017 + DC X'0000003E000000001FC701FFF8000000' 32400017 + DC X'0000003E000000001FE3C3FFF0000000' 32410017 + DC X'0000001E000000001FE1C7FFE0000000' 32420017 + DC X'0000001E000000001FE1C7FFC0000000' 32430017 + DC X'0000000E000000001FE1C7FF80000000' 32440017 + DC X'0000000F000000003FC1C7FF00000000' 32450017 + DC X'00000007000000003FC0E7FE00000000' 32460017 + DC X'00000003000000007F80E3FE00000000' 32470017 + DC X'0000000180000000FF00E1FE00000000' 32480017 + DC X'00000000C0000003FE0070FE00000000' 32490017 + DC X'000000002000000FFC00387E00000000' 32500017 + DC X'000000001800003FF0000E1E00000000' 32510017 + DC X'00000000060001FFC00003C600000000' 32520017 + DC X'0000000001C07FFF8000007300000000' 32530017 + DC X'00000000003FFFF80000000C00000000' 32540017 + DC X'000000000001FF800000000000000000' 32550017 +PATUHU DC X'0000003800000000000001E000000000' 32560017 + DC X'0000000F000000000000007E00000000' 32570017 + DC X'00000007C00000000000000FC0000000' 32580017 + DC X'00000007F000001000000007F0000000' 32590017 + DC X'00000007F800000E00000003F8000000' 32600017 + DC X'00000003FC000007C0000001FC000000' 32610017 + DC X'00000003FC000003F0000001FE000000' 32620017 + DC X'00000003FE000003F8000001FE000000' 32630017 + DC X'00000003FE000003FC000001FE000000' 32640017 + DC X'00000007FC000003FE000003FC000000' 32650017 + DC X'00000007FC000003FF000003FC000000' 32660017 + DC X'00000007F8000007FF000003FC000000' 32670017 + DC X'00000007FFFFFFFFFFFFFFFDFE000000' 32680017 + DC X'0000000FF7FFFFFFFFFFFFFEFE000000' 32690017 + DC X'0000001FF3FFFFFFFFFFFFFF7F000000' 32700017 + DC X'0000001FE0FFFFFFFFFFFFFF9F000000' 32710017 + DC X'0000003FC03FFFFFFFFFFFFFE3800000' 32720017 + DC X'3000003FC003FFFFFFFF8003FFC00000' 32730017 + DC X'1C00003FC0000000000C0007FF800000' 32740017 + DC X'0E00003FC000000000060007FF000000' 32750017 + DC X'0F80003FC000000000070007FE000000' 32760017 + DC X'07C0003FC0000000000F8007FE000000' 32770017 + DC X'03E0001FE0000000001FC007FE000000' 32780017 + DC X'01F8000FE0000000003FE003FC000000' 32790017 + DC X'00FE0003F0000000003FF003FC000000' 32800017 + DC X'007F800078000000007FF801FC000000' 32810017 + DC X'003FE0000E000000007FF001FC000000' 32820017 + DC X'001FFC0000000000007FE000FC000000' 32830017 + DC X'0007FF800000000000FFE000FC000000' 32840017 + DC X'0003FFFFFFFFFFFFFFFFC0007E000000' 32850017 + DC X'0000FFFFFFFFFFFFFFFFC0003E000000' 32860017 + DC X'00001FFFFFFFFFFFFFFF80001E000000' 32870017 + DC X'000007FFFFFFFFFFFFFF80000F000000' 32880017 + DC X'000001FFFFFFFFFFFFFF800003800000' 32890017 + DC X'0000001FFFFFFFFFFFFF800000C00000' 32900017 + DC X'0000000000000000000FC00000000000' 32910017 + DC X'00000000000000000003E00000000000' 32920017 + DC X'00000000000000000000700000000000' 32930017 + DC X'00000000000000000000080000000000' 32940017 +PATUIU DC X'0000002000000000000001E000000000' 32950017 + DC X'00000038000000000000007E00000000' 32960017 + DC X'0000001E000000000000000FC0000000' 32970017 + DC X'0000000F0000001000000007F0000000' 32980017 + DC X'000000078000000E00000003F8000000' 32990017 + DC X'00000003E0000007C0000001FC000000' 33000017 + DC X'00000003F0000003F0000001FE000000' 33010017 + DC X'00000003F8000003F8000001FE000000' 33020017 + DC X'00000003FC000003FC000001FE000000' 33030017 + DC X'00000003FE000003FE000003FC000000' 33040017 + DC X'00000007FF000003FF000003FC000000' 33050017 + DC X'00000007FF000007FF000003FC000000' 33060017 + DC X'0000000FFFFFFFFFFFFFFFFDFE000000' 33070017 + DC X'0000001FFFFFFFFFFFFFFFFEFE000000' 33080017 + DC X'0000001FFFFFFFFFFFFFFFFF7F000000' 33090017 + DC X'0000003FFFFFFFFFFFFFFFFF9F000000' 33100017 + DC X'0000000FFFFFFFFFFFFFFFFFE3800000' 33110017 + DC X'00000001FFFFFFFFFFFFFFFFF8C00000' 33120017 +PATUJU DC X'000000001FFF00000000000000000000' 33130017 + DC X'00000001FFFFE0000000000000000000' 33140017 + DC X'00000007FFFFF8000000000000000000' 33150017 + DC X'0000000FFFFFFE00000001E000000000' 33160017 + DC X'0000000FFFE3FF000000007E00000000' 33170017 + DC X'0000001FFE001F800000000FC0000000' 33180017 + DC X'0000001FF00003E010000007F0000000' 33190017 + DC X'0000003FC00000F860000003F8000000' 33200017 + DC X'0000003F8000003FC0000001FC000000' 33210017 + DC X'0000003F0000000F00000001FE000000' 33220017 + DC X'0000001E0000000000000001FE000000' 33230017 + DC X'0000001E0000000000000001FE000000' 33240017 + DC X'0000000F000000000003FC03FC000000' 33250017 + DC X'000000078000000007FFFFC3FC000000' 33260017 + DC X'00000003C0000000FFFFFFFBFC000000' 33270017 + DC X'00000001F00000FFFFFFFFFDFE000000' 33280017 + DC X'000000007FFFFFFFFFFFFFFEFE000000' 33290017 + DC X'000000001FFFFFFFFFFFFFFF7F000000' 33300017 + DC X'0000000007FFFFFFFF80007F9F000000' 33310017 + DC X'0000000000FFFFFFC000000FE3800000' 33320017 + DC X'000000000007FFE000000001F8C00000' 33330017 + DC X'0000000000000000000000003E000000' 33340017 + DC X'00000000000000000000000003000000' 33350017 +PATUKU DC X'0000003800000000000001E000000000' 33360017 + DC X'0000000F000000000000007E00000000' 33370017 + DC X'00000007C00000000000000FC0000000' 33380017 + DC X'00000007F000001000000007F0000000' 33390017 + DC X'00000007F800000E00000003F8000000' 33400017 + DC X'00000003FC000007C0000001FC000000' 33410017 + DC X'00000003FC000003F0000001FE000000' 33420017 + DC X'00000003FE000003F8000001FE000000' 33430017 + DC X'00000003FE000003FC000001FE000000' 33440017 + DC X'00000007FC000003FE000003FC000000' 33450017 + DC X'00000007FC000003FF000003FC000000' 33460017 + DC X'00000007F8000007FF000003FC000000' 33470017 + DC X'00000007FFFFFFFFFFFFFFFDFE000000' 33480017 + DC X'0000000FF7FFFFFFFFFFFFFEFE000000' 33490017 + DC X'0000001FF3FFFFFFFFFFFFFF7F000000' 33500017 + DC X'0000001FE0FFFFFFFFFFFFFF9F000000' 33510017 + DC X'0000003FC03FFFFFFFFFFFFFE3800000' 33520017 + DC X'0000003FC003FFFFFFFFFFFFFCC00000' 33530017 + DC X'0000003FC000001800060003FFC00000' 33540017 + DC X'0000003FC000000C00030007FF800000' 33550017 + DC X'0000003FC000000E00018007FF000000' 33560017 + DC X'0000003FC000000F0003C007FE000000' 33570017 + DC X'0000003FC000000F800FE007FE000000' 33580017 + DC X'0000001FE000000FC03FF007FE000000' 33590017 + DC X'0000000FE000001FE0FFF803FC000000' 33600017 + DC X'00000003F000003FF3FFFC03FC000000' 33610017 + DC X'00000000780000FFDFFFF001FC000000' 33620017 + DC X'000000000E0007FF8FFFC001FC000000' 33630017 + DC X'000000000007FFFFC7FF0000FC000000' 33640017 + DC X'000000000FFFFFFF03FC0000FC000000' 33650017 + DC X'00000000FFFFFFFE01F000007E000000' 33660017 + DC X'00000003FFFFFFFC00C000003E000000' 33670017 + DC X'00000007FFFFFFE0000000001E000000' 33680017 + DC X'0000000FFFFFE000000000000F000000' 33690017 + DC X'0000001FFFE000000000000003800000' 33700017 + DC X'0000001FFC0000000000000000C00000' 33710017 + DC X'0000003FE00000000000000000000000' 33720017 + DC X'0000003F800000000000000000000000' 33730017 + DC X'0000003F000000000000000000000000' 33740017 + DC X'0000001E000000000000000000000000' 33750017 + DC X'00000003000000000000000000000000' 33760017 +PATULU DC X'0000002000000000000001E000000000' 33770017 + DC X'00000038000000000000007E00000000' 33780017 + DC X'0000001E000000000000000FC0000000' 33790017 + DC X'0000000F0000001000000007F0000000' 33800017 + DC X'000000078000000E00000003F8000000' 33810017 + DC X'00000007E0000007C0000001FC000000' 33820017 + DC X'00000003F0000003F0000001FE000000' 33830017 + DC X'00000001F8000003F8000001FE000000' 33840017 + DC X'00000001FC000003FC000001FE000000' 33850017 + DC X'00000000FE000003FE000003FC000000' 33860017 + DC X'00000000FF000003FF000003FC000000' 33870017 + DC X'00000000FF000007FF000003FC000000' 33880017 + DC X'00000000FFFFFFFFFFFFFFFDFE000000' 33890017 + DC X'00000001FF7FFFFFFFFFFFFEFE000000' 33900017 + DC X'00000001FFBFFFFFFFFFFFFF7F000000' 33910017 + DC X'00000003FF8FFFFFFFFFFFFF9F000000' 33920017 + DC X'00000003FFC3FFFFFFFFFFFFE3800000' 33930017 + DC X'00000007FF007FFFFFFFFFFFFCC00000' 33940017 + DC X'00000007FF00000000000003FFC00000' 33950017 + DC X'0000000FFF00000000000007FE000000' 33960017 + DC X'0000000FFE00000000000007FC000000' 33970017 + DC X'0000001FFE00000000000003F8000000' 33980017 + DC X'0000001FFC00000000000001F0000000' 33990017 + DC X'0000001FF800000000000000F0000000' 34000017 + DC X'0000003FF00000000000000070000000' 34010017 + DC X'0000003FF00000000000000038000000' 34020017 + DC X'0000003FE0000000000000000C000000' 34030017 + DC X'0000003FE00000000000000000000000' 34040017 + DC X'0000001FE00000000000000000000000' 34050017 + DC X'0000001FE00000000000000000000000' 34060017 + DC X'0000000FE00000000000000000000000' 34070017 + DC X'0000000FE00000000000000000000000' 34080017 + DC X'00000007E00000000000000000000000' 34090017 + DC X'00000003E00000000000000000000000' 34100017 + DC X'00000001E00000000000000000000000' 34110017 + DC X'00000000700000000000000000000000' 34120017 + DC X'00000000180000000000000000000000' 34130017 + DC X'00000000060000000000000000000000' 34140017 +PATUMU DC X'0000003000000000000001E000000000' 34150017 + DC X'0000000E000000000000007E00000000' 34160017 + DC X'00000007800000000000000FC0000000' 34170017 + DC X'00000003C000001000000007F0000000' 34180017 + DC X'00000003F000000E00000003F8000000' 34190017 + DC X'00000003F8000007C0000001FC000000' 34200017 + DC X'00000003FC000003F0000001FE000000' 34210017 + DC X'00000003FE000003F8000001FE000000' 34220017 + DC X'00000003FE000003FC000001FE000000' 34230017 + DC X'00000003FF000003FE000003FC000000' 34240017 + DC X'00000003FF000003FF000003FC000000' 34250017 + DC X'00000007FF000007FF000003FC000000' 34260017 + DC X'0000000FFFFFFFFFFFFFFFFDFE000000' 34270017 + DC X'0000003FFFFFFFFFFFFFFFFEFE000000' 34280017 + DC X'0000001FFFFFFFFFFFFFFFFF7F000000' 34290017 + DC X'00000007FFFFFFFFFFFFFFFF9F000000' 34300017 + DC X'00000001FFFFFFFFFFFFFFFFE3800000' 34310017 + DC X'000000001FFFFFFFFFFFFFFFFCC00000' 34320017 + DC X'000000000000000000000003FFC00000' 34330017 + DC X'000000000000000000000007FF800000' 34340017 + DC X'00000000000000100000000FFF000000' 34350017 + DC X'000000000000000E0000001FFE000000' 34360017 + DC X'0000000000000007C000003FFC000000' 34370017 + DC X'0000000000000003F000007FF8000000' 34380017 + DC X'0000000000000003F80000FFF0000000' 34390017 + DC X'0000000000000003FC0001FFE0000000' 34400017 + DC X'0000000100000003FE0003FFC0000000' 34410017 + DC X'0000000380000003FF0007FF80000000' 34420017 + DC X'00000007C0000007FF000FFF00000000' 34430017 + DC X'0000000FFFFFFFFFFFFFFFFE00000000' 34440017 + DC X'0000001FFFFFFFFFFFFFFFFC00000000' 34450017 + DC X'0000003FFFFFFFFFFFFFFFF800000000' 34460017 + DC X'0000001FFFFFFFFFFFFFFFF000000000' 34470017 + DC X'0000000FFFFFFFFFFFFFFFE000000000' 34480017 + DC X'00000007FFFFFFFFFFFFFFC000000000' 34490017 + DC X'00000003E000000FFC00007000000000' 34500017 + DC X'00000001C000000FF800001C00000000' 34510017 + DC X'0000000080000007F800000700000000' 34520017 + DC X'0000000000000003F8000001C0000000' 34530017 + DC X'0000000000000001F8000000F0000000' 34540017 + DC X'0000000000000000F8000001FC000000' 34550017 + DC X'00000000000000007C000001FF000000' 34560017 + DC X'00000000000000000E000003FFC00000' 34570017 + DC X'000000010000000001000003FF800000' 34580017 + DC X'000000038000000000000007FF000000' 34590017 + DC X'00000007C000000000000007FE000000' 34600017 + DC X'0000000FFFFFFFFFFFFFFFFFFC000000' 34610017 + DC X'0000001FFFFFFFFFFFFFFFFFFC000000' 34620017 + DC X'0000003FFFFFFFFFFFFFFFFFFC000000' 34630017 + DC X'0000001FFFFFFFFFFFFFFFFFFC000000' 34640017 + DC X'0000000FFFFFFFFFFFFFFFFFFE000000' 34650017 + DC X'00000007FFFFFFFFFFFFFFFFFE000000' 34660017 + DC X'00000003E0000000000000001F000000' 34670017 + DC X'00000001C0000000000000000F000000' 34680017 + DC X'00000000800000000000000003800000' 34690017 + DC X'00000000000000000000000000C00000' 34700017 +PATUNU DC X'000000300000000380000000C0000000' 34710017 + DC X'0000001C00000000F000000070000000' 34720017 + DC X'0000000F000000007C0000003C000000' 34730017 + DC X'00000007C00000003F0000003E000000' 34740017 + DC X'00000007E00000003F8000003F000000' 34750017 + DC X'00000003F00000003FC000007F800000' 34760017 + DC X'00000003F80000007FE00000FFC00000' 34770017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 34780017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 34790017 + DC X'00000003FFFFFFFFFFFFFFFFFF800000' 34800017 + DC X'00000003FF000000000001FFFF000000' 34810017 + DC X'00000007FF00000000001FFFFC000000' 34820017 + DC X'00000007FF8000000000FFFFF0000000' 34830017 + DC X'0000000FFF8000000007FFFF80000000' 34840017 + DC X'0000003FFF800000003FFFFC00000000' 34850017 + DC X'0000000FFF80000001FFFFE000000000' 34860017 + DC X'00000003FF8000000FFFFF0000000000' 34870017 + DC X'00000000FF8000007FFFF80000000000' 34880017 + DC X'000000007F800003FFFFC00000000000' 34890017 + DC X'000000000F00001FFFFE000000000000' 34900017 + DC X'00000000020000FFFFF0000400000000' 34910017 + DC X'00000000000007FFFF80000F00000000' 34920017 + DC X'0000000000003FFFFC00001FC0000000' 34930017 + DC X'000000000001FFFFE000001FF0000000' 34940017 + DC X'00000000000FFFFF0000001FFC000000' 34950017 + DC X'00000000007FFFF80000001FFF000000' 34960017 + DC X'0000000003FFFFC00000001FFFC00000' 34970017 + DC X'000000001FFFFE000000001FFF000000' 34980017 + DC X'00000000FFFFF0000000001FFE000000' 34990017 + DC X'00000007FFFF80000000000FFE000000' 35000017 + DC X'0000000FFFFC00000000000FFC000000' 35010017 + DC X'0000001FFFFFFFFFFFFFFFFFFC000000' 35020017 + DC X'0000003FFFFFFFFFFFFFFFFFFC000000' 35030017 + DC X'0000003FFFFFFFFFFFFFFFFFFC000000' 35040017 + DC X'0000003FF800000000000001FC000000' 35050017 + DC X'0000003FF000000000000000FC000000' 35060017 + DC X'0000001FE0000000000000007E000000' 35070017 + DC X'00000007E0000000000000003E000000' 35080017 + DC X'00000001E0000000000000000F000000' 35090017 + DC X'00000000700000000000000003800000' 35100017 + DC X'000000000C0000000000000000C00000' 35110017 +PATUOU DC X'000000000000001FF000000000000000' 35120017 + DC X'00000000000003FFFFE0000000000000' 35130017 + DC X'000000000000FFFFFFFE000000000000' 35140017 + DC X'000000000007FFFFFFFFE00000000000' 35150017 + DC X'00000000003FFFFFFFFFF80000000000' 35160017 + DC X'0000000000FFFFFFFFFFFE0000000000' 35170017 + DC X'0000000003FFFFF81803FF8000000000' 35180017 + DC X'000000000FFFFF000E006FE000000000' 35190017 + DC X'000000003FFFF0000F8030F800000000' 35200017 + DC X'000000007FFF80000FC0183C00000000' 35210017 + DC X'00000000FFFE00000FE00C0E00000000' 35220017 + DC X'00000001FFF800001FF0060300000000' 35230017 + DC X'00000003FFFFFFFFFFFFFF0000000000' 35240017 + DC X'00000007FF8FFFFFFFFFFF8000000000' 35250017 + DC X'0000000FFF07FFFFFFFFFFC000000000' 35260017 + DC X'0000000FFE03FFFFFFFFFFF000000000' 35270017 + DC X'0000001FFC00FFFFFFFFFFF800000000' 35280017 + DC X'0000001FF8000FFFFFFFFFFE00000000' 35290017 + DC X'0000003FF00000000000000380000000' 35300017 + DC X'0000001FE000000000000007E0000000' 35310017 + DC X'00000007C00000000000000FFC000000' 35320017 + DC X'00000003800000000000001FFFC00000' 35330017 + DC X'00000001800000000000001FFF800000' 35340017 + DC X'00000000C00000000000003FFF000000' 35350017 + DC X'00000000300000000000007FFF000000' 35360017 + DC X'0000000018000000000000FFFE000000' 35370017 + DC X'0000000006000000000003FFFC000000' 35380017 + DC X'0000000003800000000007FFF8000000' 35390017 + DC X'0000000000F0000000000FFFF0000000' 35400017 + DC X'00000000007E000000003FFFE0000000' 35410017 + DC X'00000000001FC0000001FFFF80000000' 35420017 + DC X'000000000007F800000FFFFE00000000' 35430017 + DC X'000000000001FFC000FFFFF800000000' 35440017 + DC X'0000000000007FFFFFFFFFC000000000' 35450017 + DC X'0000000000000FFFFFFFFF0000000000' 35460017 + DC X'00000000000003FFFFFFF80000000000' 35470017 + DC X'000000000000007FFFFFC00000000000' 35480017 + DC X'000000000000000FFFFE000000000000' 35490017 + DC X'00000000000000007FC0000000000000' 35500017 +PATUPU DC X'0000003800000000000001E000000000' 35510017 + DC X'0000000F000000000000007E00000000' 35520017 + DC X'00000007C00000000000000FC0000000' 35530017 + DC X'00000007F000001000000007F0000000' 35540017 + DC X'00000007F800000E00000003F8000000' 35550017 + DC X'00000003FC000007C0000001FC000000' 35560017 + DC X'00000003FC000003F0000001FE000000' 35570017 + DC X'00000003FE000003F8000001FE000000' 35580017 + DC X'00000003FE000003FC000001FE000000' 35590017 + DC X'00000007FC000003FE000003FC000000' 35600017 + DC X'00000007FC000003FF000003FC000000' 35610017 + DC X'00000007F8000007FF000003FC000000' 35620017 + DC X'00000007FFFFFFFFFFFFFFFDFE000000' 35630017 + DC X'0000000FF7FFFFFFFFFFFFFEFE000000' 35640017 + DC X'0000001FF3FFFFFFFFFFFFFF7F000000' 35650017 + DC X'0000001FE0FFFFFFFFFFFFFF9F000000' 35660017 + DC X'0000003FC03FFFFFFFFFFFFFE3800000' 35670017 + DC X'0000003FC003FFFFFFFFFFFFFCC00000' 35680017 + DC X'0000003FC000000078000003FFC00000' 35690017 + DC X'0000003FC0000000FE000003FF800000' 35700017 + DC X'0000003FC0000001FF800007FF000000' 35710017 + DC X'0000003FC0000003FFE00007FF000000' 35720017 + DC X'0000003FC0000003FF80000FFE000000' 35730017 + DC X'0000001FE0000007FE00000FFE000000' 35740017 + DC X'0000000FE000000FF800001FFC000000' 35750017 + DC X'00000003F000000FF000001FFC000000' 35760017 + DC X'000000007800000FE000003FF8000000' 35770017 + DC X'000000000E00001FC000003FF0000000' 35780017 + DC X'000000000000001F8000007FE0000000' 35790017 + DC X'000000000000001F000000FFC0000000' 35800017 + DC X'000000000000001F000001FF80000000' 35810017 + DC X'000000000000000E000003FF00000000' 35820017 + DC X'000000000000000E000007FC00000000' 35830017 + DC X'000000000000000E00001FF800000000' 35840017 + DC X'000000000000000600007FE000000000' 35850017 + DC X'00000000000000030001FF8000000000' 35860017 + DC X'00000000000000018007FC0000000000' 35870017 + DC X'00000000000000007FFFE00000000000' 35880017 + DC X'00000000000000003FFE000000000000' 35890017 +PATUQU DC X'000000000000001FF000000000000000' 35900017 + DC X'00000000000003FFFFE0000000000000' 35910017 + DC X'000000000000FFFFFFFE000000000000' 35920017 + DC X'000000000007FFFFFFFFE00000000000' 35930017 + DC X'00000000003FFFFFFFFFF80000000000' 35940017 + DC X'0000000000FFFFFFFFFFFE0000000000' 35950017 + DC X'0000000003FFFFF81803FF8000000000' 35960017 + DC X'000000000FFFFF000E006FE000000000' 35970017 + DC X'000000003FFFF0000F8030F800000000' 35980017 + DC X'000000007FFF80000FC0183C00000000' 35990017 + DC X'00000000FFFE00000FE00C0E00000000' 36000017 + DC X'00000001FFF800001FF0060300000000' 36010017 + DC X'00000003FFFFFFFFFFFFFF0000000000' 36020017 + DC X'00000007FFBFFFFFFFFFFF8000000000' 36030017 + DC X'0000000FFF1FFFFFFFFFFFC000000000' 36040017 + DC X'0000000FFE1FFFFFFFFFFFF000000000' 36050017 + DC X'0000001FFC1EFFFFFFFFFFF800000000' 36060017 + DC X'0000001FF81F0FFFFFFFFFFE00000000' 36070017 + DC X'0000003FF01F80000000000380000000' 36080017 + DC X'0000001FE03F800000000007E0000000' 36090017 + DC X'00000007C07FC0000000000FFC000000' 36100017 + DC X'00000003C1FFC0000000001FFFC00000' 36110017 + DC X'00000001C7FF80000000001FFF800000' 36120017 + DC X'00000000FFFF00000000003FFF000000' 36130017 + DC X'00000001FFFC00000000007FFF000000' 36140017 + DC X'00000007FFF80000000000FFFE000000' 36150017 + DC X'0000000FFFE00000000003FFFC000000' 36160017 + DC X'0000001FFF800000000007FFF8000000' 36170017 + DC X'0000003FFEF0000000000FFFF0000000' 36180017 + DC X'0000003FF87E000000003FFFE0000000' 36190017 + DC X'0000003FE01FC0000001FFFF80000000' 36200017 + DC X'0000003FC007F800000FFFFE00000000' 36210017 + DC X'0000003FC001FFC000FFFFF800000000' 36220017 + DC X'0000003FC0007FFFFFFFFFC000000000' 36230017 + DC X'0000001FC0000FFFFFFFFF0000000000' 36240017 + DC X'0000000FC00003FFFFFFF80000000000' 36250017 + DC X'00000007C000007FFFFFC00000000000' 36260017 + DC X'00000003C000000FFFFE000000000000' 36270017 + DC X'00000001E00000007FC0000000000000' 36280017 + DC X'00000000E00000000000000000000000' 36290017 + DC X'00000000300000000000000000000000' 36300017 + DC X'000000000C0000000000000000000000' 36310017 +PATURU DC X'0000003800000000000001E000000000' 36320017 + DC X'0000000F000000000000007E00000000' 36330017 + DC X'00000007C00000000000000FC0000000' 36340017 + DC X'00000007F000001000000007F0000000' 36350017 + DC X'00000007F800000E00000003F8000000' 36360017 + DC X'00000003FC000007C0000001FC000000' 36370017 + DC X'00000003FC000003F0000001FE000000' 36380017 + DC X'00000003FE000003F8000001FE000000' 36390017 + DC X'00000003FE000003FC000001FE000000' 36400017 + DC X'00000007FC000003FE000003FC000000' 36410017 + DC X'00000007FC000003FF000003FC000000' 36420017 + DC X'00000007F8000007FF000003FC000000' 36430017 + DC X'00000007FFFFFFFFFFFFFFFDFE000000' 36440017 + DC X'0000000FF7FFFFFFFFFFFFFEFE000000' 36450017 + DC X'0000001FF3FFFFFFFFFFFFFF7F000000' 36460017 + DC X'0000001FE0FFFFFFFFFFFFFF9F000000' 36470017 + DC X'0000003FC03FFFFFFFFFFFFFE3800000' 36480017 + DC X'0000003FC003FFFFFFFFFFFFFCC00000' 36490017 + DC X'0000003FC000000180000003FFC00000' 36500017 + DC X'0000003FC000000180000003FF800000' 36510017 + DC X'0000003FC000000180000003FF800000' 36520017 + DC X'0000003FC0000000C0000003FF000000' 36530017 + DC X'0000003FC0000000C0000003FF000000' 36540017 + DC X'0000001FE0000000C0000003FE000000' 36550017 + DC X'0000000FE0000000E0000007FE000000' 36560017 + DC X'00000003F0000000F0000007FE000000' 36570017 + DC X'0000000078000001F8000007FC000000' 36580017 + DC X'000000000E000003FC00000FFC000000' 36590017 + DC X'000000000000000FFE00000FFC000000' 36600017 + DC X'000000000000003FFF00001FF8000000' 36610017 + DC X'00000003FFFFFFFFFF80001FF8000000' 36620017 + DC X'0000000FFFFFFFFFFEC0003FF0000000' 36630017 + DC X'0000001FFFFFFFFFFE60007FF0000000' 36640017 + DC X'0000003FFFFFFFFFF83801FFE0000000' 36650017 + DC X'0000003FFFFFFFFFE00F07FFE0000000' 36660017 + DC X'0000003FFFFFFFFE0007FFFF80000000' 36670017 + DC X'0000003E000000000001FFFE00000000' 36680017 + DC X'0000003C0000000000007FF800000000' 36690017 + DC X'0000003C0000000000000FC000000000' 36700017 + DC X'0000001C000000000000000000000000' 36710017 + DC X'0000000E000000000000000000000000' 36720017 + DC X'00000001C00000000000000000000000' 36730017 +PATUSU DC X'00000038000000000000000000000000' 36740017 + DC X'0000000F000000000000000000000000' 36750017 + DC X'00000003C00000000000000000000000' 36760017 + DC X'00000000F00000000000000000000000' 36770017 + DC X'000000007C0000000000000000000000' 36780017 + DC X'000000003E0000000000300000000000' 36790017 + DC X'000000001F0000000000F80000000000' 36800017 + DC X'000000001F8000000003FC0000000000' 36810017 + DC X'000000000FC00000000FFE0000000000' 36820017 + DC X'000000000FE00000001FFF0000000000' 36830017 + DC X'0000000007F00000003FFF8000000000' 36840017 + DC X'0000000007F00000007FFFC000000000' 36850017 + DC X'0000000007F8000000FFFFE000000000' 36860017 + DC X'0000000007F8000001FFFF3800000000' 36870017 + DC X'0000000007FC006003FFFC0E00000000' 36880017 + DC X'000000000FFC008007FFF80380000000' 36890017 + DC X'000000000FFC01000FFFF003E0000000' 36900017 + DC X'000000001FFC01000FFFE007FC000000' 36910017 + DC X'000000003FFC00801FFFC00FFFC00000' 36920017 + DC X'000000007FF800603FFF801FFF000000' 36930017 + DC X'00000000FFF8000C3FFF001FFC000000' 36940017 + DC X'00000001FFF00001FFFE003FF8000000' 36950017 + DC X'00000007FFE000007FFC003FE0000000' 36960017 + DC X'0000003FFFE00000FFF8007FE0000000' 36970017 + DC X'0000001FFF800000FFF000FFE0000000' 36980017 + DC X'0000001FFF000001FFEC00FFE0000000' 36990017 + DC X'0000000FFE000001FFE1C1FFE0000000' 37000017 + DC X'00000007F8000003FFC031FFC0000000' 37010017 + DC X'00000003F0000003FFC007FFC0000000' 37020017 + DC X'00000003E0000007FF8001FFC0000000' 37030017 + DC X'0000000180000007FF8001FFC0000000' 37040017 + DC X'00000000C000000FFF0000FFC0000000' 37050017 + DC X'000000006000001FFE0000FFC0000000' 37060017 + DC X'000000003000003FFE00007FD8000000' 37070017 + DC X'000000001C00007FFC00003FC3000000' 37080017 + DC X'000000000E0001FFF000001FC0800000' 37090017 + DC X'0000000007800FFFC0000007E0400000' 37100017 + DC X'0000000001FFFFFF00000001F0400000' 37110017 + DC X'00000000007FFFF80000000078800000' 37120017 + DC X'000000000001FF80000000000E000000' 37130017 +PATUTU DC X'000000000000001FF000001000000000' 37140017 + DC X'00000000000007FFFFC0000C00000000' 37150017 + DC X'000000000000FFFFFFFE000300000000' 37160017 + DC X'000000000007FFFFFFFFC001C0000000' 37170017 + DC X'00000000003FFFFFFFFFF800F0000000' 37180017 + DC X'0000000000FFFFFFFFFFFE0078000000' 37190017 + DC X'0000000003FFFFF80003FF803C000000' 37200017 + DC X'000000000FFFFF0000001FE01E000000' 37210017 + DC X'000000003FFFF000300001F01F000000' 37220017 + DC X'000000007FFF80001C0000381F800000' 37230017 + DC X'00000000FFFE00000F00000E1F800000' 37240017 + DC X'00000001FFF800000F8000031FC00000' 37250017 + DC X'00000003FFE000000FC000019FC00000' 37260017 + DC X'00000007FFC000000FE00000FFC00000' 37270017 + DC X'0000000FFF0000001FE000007FC00000' 37280017 + DC X'0000001FFFFFFFFFFFFFFE00FFC00000' 37290017 + DC X'0000001FFDFFFFFFFFFFFF01FF800000' 37300017 + DC X'0000001FF8FFFFFFFFFFFFC3FF000000' 37310017 + DC X'0000003FF07FFFFFFFFFFFC7FF000000' 37320017 + DC X'0000003FE03FFFFFFFFFFFEFFE000000' 37330017 + DC X'0000003FC01FFFFFFFFFFFFFFE000000' 37340017 + DC X'0000003FC00000000000001FFC000000' 37350017 + DC X'0000003F800000000000001FFC000000' 37360017 + DC X'0000003F800000000000003FF8000000' 37370017 + DC X'0000003F000000000000003FF8000000' 37380017 + DC X'0000003F000000000000003FF8000000' 37390017 + DC X'0000003E000000000000001FF0000000' 37400017 + DC X'0000003E000000000000001FF0000000' 37410017 + DC X'0000003E000000000000001FF0000000' 37420017 + DC X'0000001E000000000000000FF0000000' 37430017 + DC X'0000001E000000000000000FF0000000' 37440017 + DC X'0000000E0000000000000007F8000000' 37450017 + DC X'0000000F0000000000000003F8000000' 37460017 + DC X'000000070000000000000003F8000000' 37470017 + DC X'000000038000000000000001F8000000' 37480017 + DC X'000000018000000000000000FC000000' 37490017 + DC X'00000000C0000000000000007C000000' 37500017 + DC X'0000000060000000000000001E000000' 37510017 + DC X'00000000000000000000000001800000' 37520017 +PATUUU DC X'0000003000000000E0000000C0000000' 37530017 + DC X'0000001E000000007C00000038000000' 37540017 + DC X'0000000F800000003F0000001E000000' 37550017 + DC X'00000007C00000001F8000001F000000' 37560017 + DC X'00000007E00000001FC000001F800000' 37570017 + DC X'00000007F00000001FE000001FC00000' 37580017 + DC X'00000003F80000003FF000003FC00000' 37590017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 37600017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 37610017 + DC X'00000003FFFFFFFFFFFFFFFFFF800000' 37620017 + DC X'00000003FFFFFFFFFFFFFFFFFF000000' 37630017 + DC X'00000007FFFFFFFFFFFFFFFFFC000000' 37640017 + DC X'0000000FFFFFFFFFFFFFFFFFE0000000' 37650017 + DC X'0000000FFF0000000000000000000000' 37660017 + DC X'0000001FFF0000000000000000000000' 37670017 + DC X'0000003FFF0000000000000000000000' 37680017 + DC X'0000001FFE0000000000000000000000' 37690017 + DC X'0000000FFE0000000000000000000000' 37700017 + DC X'00000007FC0000000000000000000000' 37710017 + DC X'00000003F80000000000000000000000' 37720017 + DC X'00000001F80000000000000030000000' 37730017 + DC X'00000000F0000000000000001E000000' 37740017 + DC X'0000000060000000000000000F000000' 37750017 + DC X'0000000030000000000000000F800000' 37760017 + DC X'0000000018000000000000001FC00000' 37770017 + DC X'000000000FFFFFFFFFFFFFFFFFC00000' 37780017 + DC X'000000003FFFFFFFFFFFFFFFFFC00000' 37790017 + DC X'00000000FFFFFFFFFFFFFFFFFFC00000' 37800017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 37810017 + DC X'0000000FFFFFFFFFFFFFFFFFFF800000' 37820017 + DC X'0000003FFFFFFFFFFFFFFFFFFF000000' 37830017 + DC X'0000001FFF000000000000007F000000' 37840017 + DC X'0000000FFC000000000000003F000000' 37850017 + DC X'00000007F0000000000000001F000000' 37860017 + DC X'00000003C00000000000000007800000' 37870017 + DC X'00000001800000000000000000C00000' 37880017 + DC X'00000000C00000000000000000000000' 37890017 + DC X'00000000600000000000000000000000' 37900017 +PATUVU DC X'0000003000000000E000000030000000' 37910017 + DC X'0000001E000000007C0000001E000000' 37920017 + DC X'0000000F800000003F0000000F000000' 37930017 + DC X'00000007C00000003F8000000F800000' 37940017 + DC X'00000007E00000007FC000000FC00000' 37950017 + DC X'00000007FFFFFFFFFFFFFFFFFFC00000' 37960017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 37970017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 37980017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 37990017 + DC X'00000003FFFFFFFFFFFFFFFFFF800000' 38000017 + DC X'00000003FFFFFFFFFFFFFFFFFF000000' 38010017 + DC X'00000007FE000000000000007F000000' 38020017 + DC X'0000000FFE000000000000003F000000' 38030017 + DC X'0000000FFF000000000000001F000000' 38040017 + DC X'0000001FFF0000000000000007800000' 38050017 + DC X'0000003FFF0000000000000000C00000' 38060017 + DC X'0000001FFE0000000000000000000000' 38070017 + DC X'0000000FFE0000000000000000000000' 38080017 + DC X'00000007FC0000000000000000000000' 38090017 + DC X'00000003F80000000000000000000000' 38100017 + DC X'00000001F80000000000000000000000' 38110017 + DC X'00000000F00000000000000000000000' 38120017 + DC X'00000000600000000000000000000000' 38130017 + DC X'00000000300000000000000000000000' 38140017 + DC X'0000000018000000000000FF80000000' 38150017 + DC X'000000000E00000000FFFFFFF0000000' 38160017 + DC X'0000000007FFFFFFFFFFFFFFFC000000' 38170017 + DC X'0000000001FFFFFFFFFFFFFFFE000000' 38180017 + DC X'00000000007FFFFFFFFFFFFFFF000000' 38190017 + DC X'00000000001FFFFFFFFFFFFFFF800000' 38200017 + DC X'000000000003FFFFFFFE00007F800000' 38210017 + DC X'0000000000007FFE000000001FC00000' 38220017 + DC X'00000000000000000000000007C00000' 38230017 + DC X'00000000000000000000000003800000' 38240017 + DC X'00000000000000000000000001800000' 38250017 + DC X'00000000000000000000000001000000' 38260017 +PATUWU DC X'0000003000000000E0000000C0000000' 38270017 + DC X'0000001E000000007C00000038000000' 38280017 + DC X'0000000F800000003F0000001E000000' 38290017 + DC X'00000007C00000001F8000001F000000' 38300017 + DC X'00000007E00000001FC000001F800000' 38310017 + DC X'00000007F00000001FE000001FC00000' 38320017 + DC X'00000003F80000003FF000003FC00000' 38330017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 38340017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 38350017 + DC X'00000003FFFFFFFFFFFFFFFFFF800000' 38360017 + DC X'00000003FFFFFFFFFFFFFFFFFF000000' 38370017 + DC X'00000007FFFFFFFFFFFFFFFFFC000000' 38380017 + DC X'0000000FFFFFFFFFFFFFFFFFE0000000' 38390017 + DC X'0000000FFF8000000000000000000000' 38400017 + DC X'0000001FFF8000000000000000000000' 38410017 + DC X'0000003FFF8000000000000000000000' 38420017 + DC X'0000001FFE000000E000000000000000' 38430017 + DC X'0000000FFE0000007C00000000000000' 38440017 + DC X'00000007FC0000003F00000030000000' 38450017 + DC X'00000003F80000001F8000001E000000' 38460017 + DC X'00000001F80000001FC000000F000000' 38470017 + DC X'00000000F00000001FE000000F800000' 38480017 + DC X'00000000700000003FF000001FC00000' 38490017 + DC X'000000003FFFFFFFFFFFFFFFFFC00000' 38500017 + DC X'00000000FFFFFFFFFFFFFFFFFFC00000' 38510017 + DC X'00000003FFFFFFFFFFFFFFFFFFC00000' 38520017 + DC X'0000000FFFFFFFFFFFFFFFFFFFC00000' 38530017 + DC X'0000003FFFFFFFFFFFFFFFFFFFC00000' 38540017 + DC X'0000003FFFFFFFFFFFFFFFFFFF800000' 38550017 + DC X'0000001FE0000001FF800000FF000000' 38560017 + DC X'0000000F80000000FF0000007F000000' 38570017 + DC X'00000006000000007F0000003F000000' 38580017 + DC X'00000003000000003F0000001F000000' 38590017 + DC X'00000001800000001F80000007800000' 38600017 + DC X'00000000C000000007C0000000C00000' 38610017 + DC X'000000007000000000E0000000000000' 38620017 + DC X'000000003C000000000001F800000000' 38630017 + DC X'000000001FC0000000001FFF80000000' 38640017 + DC X'000000000FFE000007FFFFFFF0000000' 38650017 + DC X'0000000007FFFFFFFFFFFFFFFC000000' 38660017 + DC X'0000000001FFFFFFFFFFFFFFFE000000' 38670017 + DC X'00000000007FFFFFFFFFFFFFFF000000' 38680017 + DC X'00000000001FFFFFFFFFFFFFFF800000' 38690017 + DC X'000000000003FFFFFFFE00007F800000' 38700017 + DC X'0000000000007FFE000000001FC00000' 38710017 + DC X'00000000000007E00000000007C00000' 38720017 + DC X'00000000000000000000000003800000' 38730017 + DC X'00000000000000000000000001800000' 38740017 + DC X'00000000000000000000000001000000' 38750017 +PATUXU DC X'00000038000000000000000780000000' 38760017 + DC X'0000001F0000000000000001F0000000' 38770017 + DC X'0000000FC0000000000000007E000000' 38780017 + DC X'0000000FE0000000000000007F000000' 38790017 + DC X'00000007F0000380000000007F800000' 38800017 + DC X'00000007F80001F0000000007FC00000' 38810017 + DC X'0000000FF80000FC00000000FFC00000' 38820017 + DC X'0000000FF800007F00000001FFC00000' 38830017 + DC X'0000000FFC00003FC0000007FFC00000' 38840017 + DC X'0000001FFC00001FF000003FFF800000' 38850017 + DC X'0000001FFC00001FF80001FFFF000000' 38860017 + DC X'0000003FFC00001FFE001FFFFE000000' 38870017 + DC X'00000000FC00000FFF01FFFFF8000000' 38880017 + DC X'0000000007E0000FFF1FFFFFE0000000' 38890017 + DC X'00000000001F800FFFFFFFFF00000000' 38900017 + DC X'0000000000007E1FFFFFFFF000000000' 38910017 + DC X'00000000000001FFFFFFFF0000000000' 38920017 + DC X'000000000000001FFFFFE00000000000' 38930017 + DC X'00000000000000FFFFFE000000000000' 38940017 + DC X'0000000000000FFFFFE0000000000000' 38950017 + DC X'000000000000FFFFFFF8000000000000' 38960017 + DC X'00000000000FFFFFFFC7E00000000000' 38970017 + DC X'0000000000FFFFFFFF001F8000000000' 38980017 + DC X'000000000FFFFFFFFF00007E00000000' 38990017 + DC X'00000001FFFFFE07FF800003F0000000' 39000017 + DC X'00000007FFFFC001FF800003FFC00000' 39010017 + DC X'0000000FFFF80000FF800003FF800000' 39020017 + DC X'0000001FFFC000003FC00003FF800000' 39030017 + DC X'0000003FFE0000000FE00003FF000000' 39040017 + DC X'0000003FF800000003F00001FF000000' 39050017 + DC X'0000003FF000000000F80001FF000000' 39060017 + DC X'0000003FE0000000001C0001FE000000' 39070017 + DC X'0000001FE000000000000000FE000000' 39080017 + DC X'0000000FE0000000000000007F000000' 39090017 + DC X'00000007E0000000000000003F000000' 39100017 + DC X'00000001F8000000000000000F800000' 39110017 + DC X'000000003E0000000000000001C00000' 39120017 +PATUYU DC X'000000200000000E00000000C0000000' 39130017 + DC X'0000003800000003C000000078000000' 39140017 + DC X'0000001E00000001F00000003E000000' 39150017 + DC X'0000000F00000001FC0000003F000000' 39160017 + DC X'6000000FC0000001FE0000003F800000' 39170017 + DC X'1C00000FE0000001FF0000007FC00000' 39180017 + DC X'0F000007F0000003FF800000FFC00000' 39190017 + DC X'07C00007FFFFFFFFFFFFFFFFFFC00000' 39200017 + DC X'03E00007FFFFFFFFFFFFFFFFFFC00000' 39210017 + DC X'03F00007FFFFFFFFFFFFFFFFFFC00000' 39220017 + DC X'01F80007FFFFFFFFFFFFFFFFFF800000' 39230017 + DC X'01F80007FFFFFFFFFFFFFFFFFF000000' 39240017 + DC X'01FC000FFFFFFFFFFFFFFFFFF8000000' 39250017 + DC X'01FC000FFE0000000000001C00000000' 39260017 + DC X'01FE001FFE0000000000000700000000' 39270017 + DC X'01FE003FFC00000000000001C0000000' 39280017 + DC X'01FF000FFC00000000000000F0000000' 39290017 + DC X'03FF0003FC00000000000001FC000000' 39300017 + DC X'03FF0000F800000000000001FF000000' 39310017 + DC X'03FF00003800000000000003FFC00000' 39320017 + DC X'07FF00000E00000000000003FF800000' 39330017 + DC X'07FF00000380000000000003FF000000' 39340017 + DC X'0FFE000000E0000000000007FF000000' 39350017 + DC X'0FFE00000038000000000007FE000000' 39360017 + DC X'1FFE0000000E000000000007FE000000' 39370017 + DC X'3FFC00003FFFFFFFFFFFFFFFFE000000' 39380017 + DC X'7FFC0003FFFFFFFFFFFFFFFFFC000000' 39390017 + DC X'3FF8000FFFFFFFFFFFFFFFFFFC000000' 39400017 + DC X'1FF0003FFFFFFFFFFFFFFFFFFC000000' 39410017 + DC X'0FE000FFFFFFFFFFFFFFFFFFFC000000' 39420017 + DC X'07C003FFFFFFFFFFFFFFFFFFFC000000' 39430017 + DC X'03800FFFF000000000000000FE000000' 39440017 + DC X'01C03FFFC0000000000000007E000000' 39450017 + DC X'007FFFFF00000000000000003F000000' 39460017 + DC X'001FFFF800000000000000000F800000' 39470017 + DC X'0001FFC0000000000000000001C00000' 39480017 + DC X'00000000000000000000000000C00000' 39490017 +PATUZU DC X'000000380000000000007C0000000000' 39500017 + DC X'0000000E000000000007FFE000000000' 39510017 + DC X'0000000780000000001FFFFC00000000' 39520017 + DC X'00000003E0000000003E07FF00000000' 39530017 + DC X'00000003F0000000007001FFC0000000' 39540017 + DC X'00000001FC000000006000FFF0000000' 39550017 + DC X'00000001FF8000000000007FFC000000' 39560017 + DC X'00000001FFC000000000007FFF000000' 39570017 + DC X'00000000FF3000000000007FFFC00000' 39580017 + DC X'00000000FF8C00000000007FFF800000' 39590017 + DC X'00000000FFC30000000000FFFF000000' 39600017 + DC X'00000000FFC0C007C00000FFFE000000' 39610017 + DC X'00000000FFC03001FC0001FFFC000000' 39620017 + DC X'00000000FFE00C00FF0001FFF8000000' 39630017 + DC X'00000000FFE00300FF8003FFF0000000' 39640017 + DC X'00000000FFE000C0FF8003FFF0000000' 39650017 + DC X'00000000FFE00030FF8003FFF0000000' 39660017 + DC X'00000000FFF0000CFF8003FFE0000000' 39670017 + DC X'00000000FFF00003FF8007FFE0000000' 39680017 + DC X'00000000FFF00000FF8007FFE0000000' 39690017 + DC X'00000000FFF00000FF8007FFE0000000' 39700017 + DC X'00000000FFF00000FF8007FFE0000000' 39710017 + DC X'00000001FFF00000FF8003FFE0000000' 39720017 + DC X'00000001FFF00000FFC003FFE0000000' 39730017 + DC X'00000001FFF00000FFB003FFE0000000' 39740017 + DC X'00000003FFF00000FF8C01FFE0000000' 39750017 + DC X'00000007FFF00000FFC301FFE0000000' 39760017 + DC X'00000007FFF00000FF80C1FFE0000000' 39770017 + DC X'0000000FFFE000007F8030FFE0000000' 39780017 + DC X'0000001FFFE000001FC00CFFE0000000' 39790017 + DC X'0000003FFFE0000001F0037FE0000000' 39800017 + DC X'0000001FFFC00000000000FFF0000000' 39810017 + DC X'0000000FFFC003000000003FF0000000' 39820017 + DC X'00000003FFC001800000000FF8000000' 39830017 + DC X'00000000FFE003C000000003F8000000' 39840017 + DC X'000000003FF007C000000000FC000000' 39850017 + DC X'000000000FFC1F80000000003C000000' 39860017 + DC X'0000000003FFFF00000000000E000000' 39870017 + DC X'0000000000FFFC000000000003000000' 39880017 + DC X'00000000003FF0000000000000000000' 39890017 +PATU0 DC X'000000000FFFFFFFFFFF000000000000' 39900017 + DC X'000000001FFFFFFFFFFF800000000000' 39910017 + DC X'000000003FFFFFFFFFFFC00000000000' 39920017 + DC X'000000007FFFFFFFFFFFE00000000000' 39930017 + DC X'00000000FFFFFFFFFFFFF00000000000' 39940017 + DC X'00000001FE0000000000180000000000' 39950017 + DC X'00000003FC00000000000C0000000000' 39960017 + DC X'00000007F80000000000060000000000' 39970017 + DC X'0000000FF000000000000F0000000000' 39980017 + DC X'0000001FE000000000001F8000000000' 39990017 + DC X'0000003FC000000000003FC000000000' 40000017 + DC X'0000001F8000000000007F8000000000' 40010017 + DC X'0000000F000000000000FF0000000000' 40020017 + DC X'00000006000000000001FE0000000000' 40030017 + DC X'00000003000000000003FC0000000000' 40040017 + DC X'00000001FFFFFFFFFFFFF80000000000' 40050017 + DC X'00000000FFFFFFFFFFFFF00000000000' 40060017 + DC X'000000007FFFFFFFFFFFE00000000000' 40070017 + DC X'000000003FFFFFFFFFFFC00000000000' 40080017 + DC X'000000001FFFFFFFFFFF800000000000' 40090017 +PATU1 DC X'00000030000000000000040000000000' 40100017 + DC X'00000018000000000000020000000000' 40110017 + DC X'0000000C000000000000030000000000' 40120017 + DC X'00000007FFFFFFFFFFFFFF8000000000' 40130017 + DC X'00000003FFFFFFFFFFFFFFC000000000' 40140017 + DC X'00000001FFFFFFFFFFFFFF8000000000' 40150017 + DC X'00000000FFFFFFFFFFFFFF0000000000' 40160017 + DC X'000000007FFFFFFFFFFFFE0000000000' 40170017 + DC X'00000000300000000000000000000000' 40180017 + DC X'00000000180000000000000000000000' 40190017 + DC X'000000000C0000000000000000000000' 40200017 +PATU2 DC X'0000003F800000001FFFC00000000000' 40210017 + DC X'0000001FBC0000000FFFE00000000000' 40220017 + DC X'0000001FC3C0000007FFF00000000000' 40230017 + DC X'0000000FE038000003FFF80000000000' 40240017 + DC X'0000000FE007000001FFFC0000000000' 40250017 + DC X'00000007F000C00000001E0000000000' 40260017 + DC X'00000007F000300000000F0000000000' 40270017 + DC X'0000000FE0000C0000001F8000000000' 40280017 + DC X'0000000FE000060000003FC000000000' 40290017 + DC X'0000001FC000018000007F8000000000' 40300017 + DC X'0000001FC00000C00000FF0000000000' 40310017 + DC X'0000003F800000600001FE0000000000' 40320017 + DC X'0000003F800000300003FC0000000000' 40330017 + DC X'0000003F000000180007F80000000000' 40340017 + DC X'0000003F0000000C000FF00000000000' 40350017 + DC X'0000003F00000007FFFFE00000000000' 40360017 + DC X'0000001F80000003FFFFC00000000000' 40370017 + DC X'0000000FC0000001FFFF800000000000' 40380017 + DC X'00000007E0000000FFFF000000000000' 40390017 + DC X'00000001F00000007FFE000000000000' 40400017 +PATU3 DC X'00000000080000000000200000000000' 40410017 + DC X'000000001E0000000000300000000000' 40420017 + DC X'000000003F8000000000380000000000' 40430017 + DC X'000000007F80000000003C0000000000' 40440017 + DC X'00000000FF00001000003E0000000000' 40450017 + DC X'00000001FE00003800003F0000000000' 40460017 + DC X'00000003FC00007C00003F8000000000' 40470017 + DC X'00000007F80000FE00003FC000000000' 40480017 + DC X'0000000FF00001FF00003FC000000000' 40490017 + DC X'0000001FE00003FD80003FC000000000' 40500017 + DC X'0000003FC00007F8C0003FC000000000' 40510017 + DC X'0000001F80000FF060003FC000000000' 40520017 + DC X'0000000F00001FE030003FC000000000' 40530017 + DC X'0000000600003FC018003FC000000000' 40540017 + DC X'0000000300007F800C007FC000000000' 40550017 + DC X'00000001FFFFFF0007FFFFC000000000' 40560017 + DC X'00000000FFFFFE0003FFFF8000000000' 40570017 + DC X'000000007FFFFC0001FFFF0000000000' 40580017 + DC X'000000003FFFF80000FFFE0000000000' 40590017 + DC X'000000001FFFF000007FFC0000000000' 40600017 +PATU4 DC X'00000000000001000000000000000000' 40610017 + DC X'00000000000001C00000000000000000' 40620017 + DC X'00000000000001F00000000000000000' 40630017 + DC X'00000000000000FC0000000000000000' 40640017 + DC X'00000000000000FF0000000000000000' 40650017 + DC X'00000000000000FFC000000000000000' 40660017 + DC X'000000000000007F7000000000000000' 40670017 + DC X'000000000000007F1C00000000000000' 40680017 + DC X'000000000000007F0700000000000000' 40690017 + DC X'000000000000003F81C0000000000000' 40700017 + DC X'000000000000003F8070000000000000' 40710017 + DC X'000000000000003F801C000000000000' 40720017 + DC X'000000000000003F8007000000000000' 40730017 + DC X'000000000000007F0001C00000000000' 40740017 + DC X'00000002000000FF0000700000000000' 40750017 + DC X'00000007000000FE00001C0000000000' 40760017 + DC X'0000000FFFFFFFFFFFFFFF0000000000' 40770017 + DC X'0000001FFFFFFFFFFFFFFFC000000000' 40780017 + DC X'0000003FFFFFFFFFFFFFFFC000000000' 40790017 + DC X'0000001FFFFFFFFFFFFFFFC000000000' 40800017 + DC X'0000000FFFFFFFFFFFFFFFC000000000' 40810017 + DC X'00000007000000FE0000000000000000' 40820017 + DC X'000000020000003E0000000000000000' 40830017 + DC X'000000000000000F0000000000000000' 40840017 +PATU5 DC X'0000000008000FFFFFFFFFC000000000' 40850017 + DC X'000000001E0007FFFFFFFF8000000000' 40860017 + DC X'000000003F8003FC00003F0000000000' 40870017 + DC X'000000007F8001FE00007F0000000000' 40880017 + DC X'00000000FF0000FF0000FE0000000000' 40890017 + DC X'00000001FE00007F8000FE0000000000' 40900017 + DC X'00000003FC00003FC000FC0000000000' 40910017 + DC X'00000007F800001FE001FC0000000000' 40920017 + DC X'0000000FF000000FF001FC0000000000' 40930017 + DC X'0000001FE0000007F801FC0000000000' 40940017 + DC X'0000003FC0000003FC01FC0000000000' 40950017 + DC X'0000001F80000007F801FC0000000000' 40960017 + DC X'0000000F0000000FF001FC0000000000' 40970017 + DC X'000000060000001FE000FC0000000000' 40980017 + DC X'000000030000003FC000FC0000000000' 40990017 + DC X'00000001FFFFFFFF80007C0000000000' 41000017 + DC X'00000000FFFFFFFF00003E0000000000' 41010017 + DC X'000000007FFFFFFE00000F0000000000' 41020017 + DC X'000000003FFFFFFC0000038000000000' 41030017 + DC X'000000001FFFFFF8000000C000000000' 41040017 +PATU6 DC X'000000000FFFFFFFFFFF000000000000' 41050017 + DC X'000000001FFFFFFFFFFF800000000000' 41060017 + DC X'000000003FFFFFFFFFFFC00000000000' 41070017 + DC X'000000007FFFFFFFFFFFE00000000000' 41080017 + DC X'00000000FFFFFFFFFFFFF00000000000' 41090017 + DC X'00000001FE000000C000180000000000' 41100017 + DC X'00000003FC00000060000C0000000000' 41110017 + DC X'00000007F80000003000060000000000' 41120017 + DC X'0000000FF000000018000F0000000000' 41130017 + DC X'0000001FE00000003C001F8000000000' 41140017 + DC X'0000003FC00000007E003FC000000000' 41150017 + DC X'0000001F80000000FF007F8000000000' 41160017 + DC X'0000000F00000001FF00FF0000000000' 41170017 + DC X'0000000600000003FC01FE0000000000' 41180017 + DC X'0000000300000007F803FC0000000000' 41190017 + DC X'00000001FFFFFFFFF007F80000000000' 41200017 + DC X'00000000FFFFFFFFE00FF00000000000' 41210017 + DC X'000000007FFFFFFFC00FE00000000000' 41220017 + DC X'000000003FFFFFFF8003C00000000000' 41230017 + DC X'000000001FFFFFFE0000800000000000' 41240017 +PATU7 DC X'00000030000000000000200000000000' 41250017 + DC X'00000018000000000000380000000000' 41260017 + DC X'0000000C0000000000003E0000000000' 41270017 + DC X'00000007C000000000003F8000000000' 41280017 + DC X'00000003FFC0000000003FC000000000' 41290017 + DC X'00000001FFFFC00000003F8000000000' 41300017 + DC X'00000000FFFFFE0000003F8000000000' 41310017 + DC X'000000007FFFFFFC00003F0000000000' 41320017 + DC X'000000003FFFFFFF80003F0000000000' 41330017 + DC X'000000001801FFFFF0001F0000000000' 41340017 + DC X'000000000C0003FFFE001F0000000000' 41350017 + DC X'000000000600000FFFC01F0000000000' 41360017 + DC X'00000000000000007FF00F0000000000' 41370017 + DC X'000000000000000003FE0F0000000000' 41380017 + DC X'0000000000000000003FC78000000000' 41390017 + DC X'00000000000000000007E78000000000' 41400017 + DC X'00000000000000000000FF8000000000' 41410017 + DC X'000000000000000000000F8000000000' 41420017 + DC X'0000000000000000000001C000000000' 41430017 + DC X'0000000000000000000000C000000000' 41440017 +PATU8 DC X'000000001FFFE000FFFF000000000000' 41450017 + DC X'000000003FFFF801FFFF800000000000' 41460017 + DC X'000000007FFFFE03FFFFC00000000000' 41470017 + DC X'00000000FFFFFF07FFFFE00000000000' 41480017 + DC X'00000001FFFFFF8FFFFFF00000000000' 41490017 + DC X'00000003FC0001DFE000180000000000' 41500017 + DC X'00000007F800007FC0000C0000000000' 41510017 + DC X'0000000FF000007F8000060000000000' 41520017 + DC X'0000001FE00000FF00000F0000000000' 41530017 + DC X'0000003FC00001FE00001F8000000000' 41540017 + DC X'0000001F800003FC00003FC000000000' 41550017 + DC X'0000000F000007F800007F8000000000' 41560017 + DC X'0000000600000FF00000FF0000000000' 41570017 + DC X'0000000300001FF00001FE0000000000' 41580017 + DC X'0000000180003FDC0003FC0000000000' 41590017 + DC X'00000000FFFFFF8FFFFFF80000000000' 41600017 + DC X'000000007FFFFF07FFFFF00000000000' 41610017 + DC X'000000003FFFFE03FFFFE00000000000' 41620017 + DC X'000000001FFFFC00FFFFC00000000000' 41630017 + DC X'000000000FFFF8007FFF800000000000' 41640017 +PATU9 DC X'00000000100000FFFFFF800000000000' 41650017 + DC X'000000003C0001FFFFFFC00000000000' 41660017 + DC X'000000007F0003FFFFFFE00000000000' 41670017 + DC X'00000000FF0007FFFFFFF00000000000' 41680017 + DC X'00000001FE000FFFFFFFF80000000000' 41690017 + DC X'00000003FC001FE000000C0000000000' 41700017 + DC X'00000007F8003FC00000060000000000' 41710017 + DC X'0000000FF0007F8000000F0000000000' 41720017 + DC X'0000001FE000FF0000001F8000000000' 41730017 + DC X'0000003FC0007E0000003FC000000000' 41740017 + DC X'0000001F80003C0000007F8000000000' 41750017 + DC X'0000000F000018000000FF0000000000' 41760017 + DC X'0000000600000C000001FE0000000000' 41770017 + DC X'00000003000006000003FC0000000000' 41780017 + DC X'00000001800003000007F80000000000' 41790017 + DC X'00000000FFFFFFFFFFFFF00000000000' 41800017 + DC X'000000007FFFFFFFFFFFE00000000000' 41810017 + DC X'000000003FFFFFFFFFFFC00000000000' 41820017 + DC X'000000001FFFFFFFFFFF800000000000' 41830017 + DC X'000000000FFFFFFFFFFF000000000000' 41840017 + DC X'00000000000000000000000000000000' 41850017 +PATUBLK DC X'00000000000000000000000000000000' 41860017 + DC X'00000000000000000000000000000000' 41870017 + DC X'00000000000000000000000000000000' 41880017 + DC X'00000000000000000000000000000000' 41890017 + DC X'00000000000000000000000000000000' 41900017 + DC X'00000000000000000000000000000000' 41910017 + DC X'00000000000000000000000000000000' 41920017 + DC X'00000000000000000000000000000000' 41930017 + DC X'00000000000000000000000000000000' 41940017 + DC X'00000000000000000000000000000000' 41950017 + DC X'00000000000000000000000000000000' 41960017 + DC X'00000000000000000000000000000000' 41970017 + DC X'00000000000000000000000000000000' 41980017 + DC X'00000000000000000000000000000000' 41990017 + DC X'00000000000000000000000000000000' 42000017 + DC X'00000000000000000000000000000000' 42010017 + DC X'00000000000000000000000000000000' 42020017 + DC X'00000000000000000000000000000000' 42030017 + DC X'00000000000000000000000000000000' 42040017 + DC X'00000000000000000000000000000000' 42050017 +PATUSP DC X'00000000000000000000000000000000' 42060017 + DC X'00000000000000000000000000000000' 42070017 + DC X'00000000000000000000000000000000' 42080017 + END GOTHIC 42090001 diff --git a/SOS_OS/-HELLOCOB.zip b/SOS_OS/-HELLOCOB.zip new file mode 100644 index 0000000..912d004 Binary files /dev/null and b/SOS_OS/-HELLOCOB.zip differ diff --git a/SOS_OS/-IBM 360-370-390 Dates.zip b/SOS_OS/-IBM 360-370-390 Dates.zip new file mode 100644 index 0000000..616473f Binary files /dev/null and b/SOS_OS/-IBM 360-370-390 Dates.zip differ diff --git a/SOS_OS/-MVS370-cmds.zip b/SOS_OS/-MVS370-cmds.zip new file mode 100644 index 0000000..3e69bb2 Binary files /dev/null and b/SOS_OS/-MVS370-cmds.zip differ diff --git a/SOS_OS/-Mainframe_history.pdf b/SOS_OS/-Mainframe_history.pdf new file mode 100644 index 0000000..8815184 Binary files /dev/null and b/SOS_OS/-Mainframe_history.pdf differ diff --git a/SOS_OS/-dasd-sizes.txt b/SOS_OS/-dasd-sizes.txt new file mode 100644 index 0000000..fd2a11c --- /dev/null +++ b/SOS_OS/-dasd-sizes.txt @@ -0,0 +1,71 @@ + CKD DEVICES + + DATA ALT TRACKS/ BYTES/ BYTES/ BYTES/ +DISK TYPE CYLS CYLS CYL TRACK CYL MODULE + +2305-1 48 6 8 14,136 113,088 5,428,224 +2305-2 96 12 8 14,660 117,280 11,258,880 +2311 200 3 10 3,625 36,250 7,250,000 +2314 200 3 20 7,294 145,880 29,176,000 +3330-1 404 7 19 13,030 247,570 100,018,280 +3330-11 808 7 19 13,030 247,570 200,036,560 +3340-35 348 1 12 8,368 100,416 34,944,768 +3340-70 696 2 12 8,368 100,416 68,889,536 +3350 555 5 30 19,069 572,070 317,498,850 +3375 959 1 12 35,616 427,392 409,868,928 +3380 A/B/D/J 885 1 15 47,476 712,140 630,243,900 +3380 E 1770 2 15 47,476 712,140 1,260,487,800 +3380 K 2655 3 15 47,476 712,140 1,890,731,700 +EMC3380K+ 3339 3 15 47,476 712,140 2,377,835,460 +EMC3380K++ 3993 3 15 47,476 712,140 2,843,575,020 +3390-1 1113 1 15 56,664 849,960 946,005,480 +3390-2 2226 1 15 56,664 849,960 1,892,010,960 +3390-3 3339 1 15 56,664 849,960 2,838,016,440 +3390-9 10017 3 15 56,664 849,960 8,514,049,320 +3390-27 32760 3 15 56,664 849,960 27,844,689,600 +3390-54 65520 3 15 56,664 849,960 55,689,379,200 +9345-1 1440 0 15 46,456 696,840 1,003,449,600 +9345-2 2156 0 15 46,456 696,840 1,502,387,040 + + + FBA DEVICES + + BYTES/ BLOCKS/ BLOCKS/ BLOCKS/ BYTES/ +DISK TYPE BLOCK TRACK CYLINDER ACTUATOR ACTUATOR + +3310 512 32 352 125,664 64,339,968 +3370-Al/B1 512 62 744 558,000 285,696,000 +3370-A2/B2 512 62 744 712,752 364,929,024 +9313-1/14 512 96 480 246,240 126,074,880 +9332-200 512 73 292 360,036 184,338,432 +9332-400 512 73 292 360,036 184,338,432 +9332-600 512 73 292 554,800 284,057,600 +9335 512 71 426 804,714 412,013,568 +9336-10 512 63 315 920,115 471,098,880 +9336-20/25 512 111 777 1,672,881 856,515,072 +0671 512 63 504 574,560 294,174,720 +0671-04 512 63 504 624,456 319,721,472 +0671-08 512 63 504 513,072 262,692,864 + + + + +Original data provided courtesy of: + + John Broughton + SDI (www.sdisw.com) + sales@sdisw.com + jdb@netcom.ca + Tel: 416 488 9303 + Fax: 416 488 9780 + +(SDI is the seller of a TN3270 program called TN3270 Plus) +(SDI device capacity page: http://www.sdisw.com/vm/dasd_capacity.html) + +(Note: Tom Brennan also makes a very nice 3270 emulator called + Vista tn3270. See http://www.tombrennansoftware.com for details) + +(Updated 6/23/2002: added entries for 9313 and 0671 models +thanks to data provided by Tomas Masek ) + +(Updated May 2005: added entry for 3390-27) diff --git a/SOS_OS/-dos3350.txt b/SOS_OS/-dos3350.txt new file mode 100644 index 0000000..3c7f673 --- /dev/null +++ b/SOS_OS/-dos3350.txt @@ -0,0 +1,732 @@ +Updated: 2/24/2001 + +Here is a log of a DOS install on a 3350. + +For a 3330, at least the following would need changing: + + intdsk.jcl: D8 changes to D4 for a 3330-1 + intdsk.jcl: VTOC location (I don't have a recommended location handy) + ipl.jcl: Use LABELS 30 + power.jcl: Move and shrink the various files, watch out for conflicts. + +This was done under Hercules 2.12 and Windows 98. + +A lot of the new material is based on posts from Ivanilton. + +Current known problems: + + LVTOC loops on the 2nd track while printing a VTOC. + +Update Log: + + 2/24/01 Updated: + + DOSRES -> SYSRES + VTOC -> Cylinder 554 + Added instructions for getting IPL commands from card reader. + Added instructions for starting POWER (thanks to Ivanilton) + Added instructions for shutting down (thanks to Ivanilton) + Added ipl.jcl (Thanks to Ivanilton) + Added power.jcl (Thanks to Ivanilton) + Added dserv.jcl (Thanks to Ivanilton) + + 2/16/01 Initial Document + + INTDSK and RESTORE + (Thanks to Richard Brandle and G. Alan Sansom) + +Credits: + + Richard Brandle and G. Alan Sansom -- working to puzzle out the + initial restore. + + Ivanilton: Information on ipl commands, power and other useful + JCL. (Not all of it is in here -- check out the mailing list). + +PROMPTS: + +I used $ to indicate your DOS or Shell Prompt + +I used Command ==> for Hercules commands. + +For data to enter on the 3270, I preface it with "**> Enter:" +"ENTER" is the 3270 enter key. ("CLEAR" is the 3270 clear key). +I used elipses (.....) to indicate lines of 3270 console output +that I removed. + +Jay Jaeger, 2/16/01 + +********************************* + +1. Get and install hercules. + +2. Make a directory to hold your DOS/VS stuff. Mine looks like: + + /DOS + ./DEV (For disk and tape images) + +3. Get the dos aws tape image file dosrel34.aws, and put it in a file. + + I used: DOS/DEV/dosrel34.aws + +4. Create a configuration file for Hercules. (See Below) + (Mine is called dosrel34.cnf ) + +5. Create a disk drive image file in DOS/DEV/sysres.3350 + + $ dasdinit sysres.3350 3350 sysres 560 + + Important note: This *must* include the space for the alternate cylinders. + Since a 3350 is 555 Cylinders plus 5 alternates, we get 560. + +6. Prepare an INTDSK / RESTORE JCL deck (See Below) + + Device notes: + + The device type is specified as the third parameter to // ASSGN + Examples: C2 for 3270 console, D8 for 3350 disk, T2 for 3420. + +7. Start up hercules. + + $ hercules -f dos3350.cnf >herc.log + +8. Telnet in with a 3270 emulator to the port identified in the + hercules configuration file. Mine was set to 3270. + +9. IPL the tape (In my case, IPL 180) + +10. Once the IPL has completed (wait state), enter: + + Command ==> devinit c intdsk.jcl trunc eof + (ascii is implied). + + The CPU should start, and pretty soon you should see: + + S310I CONTROL CARD ANALYSIS AND LABEL CHECKING + S311I UTILITY MODIFIER CARD + // UID IQ + + S341I NO SURFACE ANALYSIS, ONLY R0 GENERATION + S342I SYSOPT IN PROCESS + +11. Wait. You will see lots of disk I/O on the Hercules machine + console. The processing will continue until you see the + following (they will fly by fast) + + S370I *VOL/VTOC LABELS CONTORL SET.* + S342I SYSOPT IN PROCESS + // VTOC STRTADR=(0554000),EXTENT=(30) + VOL1SYSRES + S371I INITIALIZE DISK FUNCTIONS COMPLETED + * + ***** DO NOT RE-IPL, BUT HAVE CARD READER READIED WITH + ***** JOB CONTROL CARDS TO START THE RESTORE FUNCTION + * + +12. At this point, the screen will clear because of the + // ALLOC SYSLOG statement, and you will see + + SR01D *** GIVE SYSTEM LIBRARY ALLOCATIONS *** + CL= + +13. For each of these reqquests below, hit ENTER to accept the default. + It will report back the allocation, which generally will match + the Program Directory. Then you will see: + + + SR03I ALLOC DEFAULTS TO 21(8) + RL= + SR03I ALLOC DEFAULTS TO 19(4) + SL= + SR03I ALLOC DEFAULTS TO 36(2) + PL= + SR03I ALLOC DEFAULTS TO 1(2) + SR32D TYPE DESIRED LABEL FOR LIBRARY + LABEL= + SR10I FILE ID=DOS.SYSRES.FILE + +14. For each of these, it will report back the allocation which + will generally match the Program Directory. + Then you will see: + + SR09D TYPE GO IF ALLOCATION IS CORRECT + + **> Enter: GO (and hit ENTER) + +15. The system will now busily restore the disk data pack. + + SR10I FILE ID=DOS.SYSRES.FILE + SR11I EXTENT=CYL 000 TRK 01 - CYL 077 TRK 29 + SR12I RESTORE OF SYSTEM CORE IMAGE LIBRARY IN PROGRESS + SR17I RESTORE HAS BEEN SUCCESSFUL + SR12I RESTORE OF SYSTEM RELOCATABLE LIBRARY IN PROGRESS + SR17I RESTORE HAS BEEN SUCCESSFUL + SR12I RESTORE OF SYSTEM SOURCE STATEMENT LIBRARY IN PROGRESS + SR17I RESTORE HAS BEEN SUCCESSFUL + SR12I RESTORE OF SYSTEM PROCEDURE LIBRARY IN PROGRESS + SR17I RESTORE HAS BEEN SUCCESSFUL + SR14I *** RESTORE COMPLETE *** + SR39I END OF JOB + +16. The system will enter a disabled wait. + Go to the hercules console and do: + + Command ==> stop + + (This might be a good time to gzip/zip up the sysres.3350 disk image.) + + <<<<<<<<<< RETURN TO THIS POINT TO RE-IPL >>>>>>>>>> + +17. Restart Hercules (if you stopped for a backup), go to the + Hercules console, and do: + + Command ==> ipl 24F (or wherever your sysres address is) + + **> Hit "CLEAR" on your 3270 screen, and you should see: + + 0I04I IPLDEV=X'24F',VOLSER=SYSRES,CPUID=000006110148 + 0I03A SPECIFY SUPERVISOR NAME + + **> Enter: $$A$SUP3 (and hit ENTER). + + or other supervisor name of your choice. + +18. Now, you *could* hit "CLEAR" at this point, and enter IPL + commands manually. But, thanks to Ivanilton, we have a set + of ready-made IPL commands. + + On the Hercules consoe do: + + Command ==> devinit c ipl.jcl trunc eof + + The IPL commands will run. They will more than fill up the + screen, which should automatically clear, leaving you with + something like: + + 01 ADD X'01F',3277 + 02 + 03 ADD X'180',3420T9 + 04 + 05 ADD X'24F',3350 + 06 + 07 SET + 08 + 09 DPD UNIT=X'24F',VOLID=SYSRES,CYL=400 + 10 + 11 0I52I PAGE DATA SET EXTENT LOW HIGH + 12 400 0 403 29 + 13 0I20I IPL COMPLETE FOR DOS/VS REL 34.0 ECLEVEL=0K + 14*BG 1I00A READY FOR COMMUNICATIONS. + + 0D07D ENTER RESPONSE + BG + +19. THE FIRST TIME YOU IPL, you need to clear the recorder + file and the hardcopy file. Enter the following on the + 3270 console: + + **> Enter: set rf=create,hc=create (and hit ENTER) + + REMEMBER YOU ONLY WANT TO DO THIS AT THE FIRST IPL. + + After a bit, this will be followed by: + + 0D07D ENTER RESPONSE + BG + +20. You now want to assign the card reader at x'00c' to + BG, so enter the following on the 3270 console: + + **> Enter: assgn sysin,x'00c' (and hit ENTER) + + This will be followed by: + + 0D07D ENTER RESPONSE + BG + +21. Now we are ready to run the LABELS50 proc and the + dummy job at the end of IPL.JCL. + + **> Just hit ENTER. You should see: + + 01 BG assgn sysin,x'00c' + 02 BG + 03 BG * STANDARD LABELS FOR 3350 + 04 BG * EXTENT SYSVIS,SYSRES,1,0,2520,270 9 CYLS, 84 - 92, ON SYSRES + 05 BG * EXTENT VTOC 1 CYL , 554 - 554, ON SYSRES + 06 BG * DOS/VS 3350 STANDARD LABELS CREATED * + 07 BG EOP LABELS50 + 08 BG 1T20I SYSREC HAS BEEN ASSIGNED TO X'24F' + 09 BG // JOB DUMMY + 10 DATE 02/24/73,CLOCK 15/30/47 + ...... + 20 + 0D07D ENTER RESPONSE + BG 1I89A IPL REASON CODE = + + **> Just hit ENTER. + + You should then see: + + 0D07D ENTER RESPONSE + BG 1I91A SUB-SYSTEM ID = + + **> Again, just hit ENTER. + + You should then see: + + ..... + 11 BG 1I89A IPL REASON CODE = + 12 BG 1I91A SUB-SYSTEM ID = + 13 BG 1I93I RECORDER FILE IS 1% FULL + 14 BG EOJ DUMMY + 15 DATE 02/24/73,CLOCK 15/33/00,DURATION 00/02/13 + 16*BG 1C00A ATTN. 00C + ..... + 20 + 0D07D ENTER RESPONSE + BG + +22. DOS/VS is now IPL'd. Next thing, you will probably want + to bring up POWER. + + The "ATTN. 00C" is telling us that the card reader is hungry, + but it isn't dinner time for BG *yet*. We want POWER to run in F1, + so we need to unassign the card reader from BG. + + (Note: Sometimes you 3270 keyboard might be locked at this + point. Just hit 3270 Reset if it is). + + Enter: **> assgn sysin,ua (and hit ENTER) + + You should then see: + + 17 BG assgn sysin,ua + ..... + 20 + 0D07D ENTER RESPONSE + BG + + This deassigns sysin from the card reader, making it available to + F1 later + +23. Next, we need to stop BG, because we don't want POWER to + run there, and start F1, because we DO want POWER to run in + that partition. (At least that is what I think the purpose + of these commands is. I'm not a DOS expert.... 8-) ). + On the 3270 console + + **> Enter: STOP (and hit ENTER) + + Then, + + **> Enter: START F1 (and hit ENTER) + + You will seem something like: + + 17 BG stop + 18 AR START F1 + ..... + 20 + + START F1 + + 0D09D READ IS WAITING - CANCEL OR CONTINUE + +24. **> Press CLEAR, and then hit ENTER. + + I then get: + + 18 AR START F1 + ..... + 20 + 0D07D ENTER RESPONSE + F1 + +25. We need to tell F1 where to read the POWER JCL, so on the + 3270 console: + + **> Enter: assgn sysin,x'00c' (and hit ENTER) + + You should see: + + 14 F1 assgn sysin,x'00c' + ..... + 20 + 0D07D ENTER RESPONSE + F1 + +26. Finally, we are ready to read in the POWER JCL. On the + Hercules console, enter: + + Command ==> devinit c power.jcl trunc eof + + Then, on the 3270 console + + **> Just hit ENTER. + + You should see something like: + + 14 F1 // JOB POWER + 15 DATE 02/24/73,CLOCK 15/57/26 + 16 F1 1T20I SYS000 HAS BEEN ASSIGNED TO X'24F' + 17 F1 1T20I SYS001 HAS BEEN ASSIGNED TO X'24F' + 18 F1 1T20I SYS002 HAS BEEN ASSIGNED TO X'24F' + 19 + 20 + 0D07D ENTER RESPONSE + F1 1Q11D FORMAT QUEUES= + +27A.FOR THE FIRST IPL, WE WANT TO REFORMAT THE QUEUES. + + FOR THE FIRST IPL ONLY, ENTER: + + **> Enter: q,d,a (and hit ENTER) + + You will then see: + + 19 F1 1Q11D FORMAT QUEUES=q,d,a + 20 + + WAIT for the formatting to finish. (You will see lots + of disk I/O under Hercules while this is going on). + +27B. IF THIS IS NOT THE FIRST IPL: + + **> Just hit ENTER. + +28. WAIT until you see: + + 06 F1 1R75I BG AUTOSTARTED + 07 F1 1R75I F2 AUTOSTARTED + + And then, if necessary press ENTER. + + You MAY then see something like: + + 09 F1 1Q34I PUN WAITING FOR WORK ON 00D + 10*BG 1C10A PLEASE ASSIGN SYSRDR. + 11 F1 0P08I C INTERV REQ SYS021=00C + 12 F1 1Q34I LST WAITING FOR WORK ON 00E + ..... + 20 + 0D07D ENTER RESPONSE + BG + +29. We now need to assign sysin, syslst and syspch in each + partition. I *think* that these are, in a sense, "virtual", + and what really feeds them is POWER. + + As we enter each one (starting at a BG prompt), you will + see the prompt switch back and forth between BG and F2. + Make sure you get all 3 assignments into each partition. + Hitting "ENTER" at the prompt for a given partition seems to + end the process for that partition. + + (If you see F1 1Q61I IRRECOVERABLE I/O ERROR ON 00C, followed + by F1 1Q71I RDR ,00C TERMINATED while you are doing this, + don't fret -- we'll deal with that later. You might also see + F1 1Q12I POWER/VS INITIATION COMPLETED while you are doing this. + + Hit ENTER after entering each of these: + + BG **> Enter: assgn sysin,x'00c' + F2 **> Enter: assgn sysin,x'00c' + BG **> Enter: assgn syslst,x'00e' + F2 **> Enter: assgn syslst,x'00e' + BG **> Enter: assgn syspch,x'00d' + F2 **> Enter: assgn syspch,x'00d' + + Now we are done with the assignments, so tell the system we + are done: + + BG **> ENTER + F2 **> ENTER + + By the time I did this, my screen had cleared once, but here + is what I saw at the tail end: + + 01 BG assgn syslst,x'00e' + 02 F1 1Q71I RDR ,00C TERMINATED + 03 F2 assgn syslst,x'00e' + 04 BG assgn syspch,x'00d' + 05 F1 1Q12I POWER/VS INITIATION COMPLETED + 06 F2 assgn syspch,x'00d' + 07 BG + 08 F2 + 09 F1 1Q34I BG WAITING FOR WORK + 10 F1 1Q34I F2 WAITING FOR WORK + +30. CONGRATULATIONS. POWER is now running. + Let's try various commands: + + **> Enter: d rdr,free (and hit ENTER) + + 11 AR D RDR,FREE + 12 F1 1R46I READER QUEUE NOTHING TO DISPLAY + + **> Enter: map (and hit ENTER) + + 07 AR map + 08 AR AREA K-REAL UPPER LIM K-VIRT UPPER LIM NAME + 09 AR + 10 AR SP 74K 127FF 40000 + 11 AR BG V3A 32K 1A7FF 600K D5FFF NO NAME + 12 AR F2 V2A 30K 21FFF 600K 16BFFF NO NAME + 13 AR F1 V1A 22K 277FF 172K 196FFF POWER + 14 AR SVA 400K 1FAFFF + 15 AR VIS 60K 1FAFFF + 16 AR PP 98K 3FFFF + + **> Enter: d t (and hit ENTER) + + 17 AR d t + 18 F1 1R46I TIME IS 16:18:16, DATE IS 02/24/73 + 19 F1 1R46I 005 PAGES FIXED, 006 CURRENT TASKS + +31. OK! Time to run our very first job under POWER. It might + be good to list our Core Image, Relocatable, Macro, Source and + Procedure libraries. Ivanilton provided us with a job that does + just that. + + First, lets switch our Hercules printer to a new file: + + Command ==> devinit e dev/dserv.lst + + Then, lets feed in some cards: + + Command ==> devinit c dserv.jcl trunc eof + +32. Now, remember when we got these messages, a while back? + + F1 1Q61I IRRECOVERABLE I/O ERROR ON 00C + F1 1Q71I RDR ,00C TERMINATED + + That is why nothing seemed to happen when we did the "devinit c". + We need to "wake up" the POWER reader. + + **> Enter: PSTART RDR,00C (and hit ENTER) + + You should then see something like: + + 01 AR PSTART RDR,00C + 02 F1 1Q34I RDR WAITING FOR WORK ON 00C + 03 F1 1Q47I BG DSERV 00002 FROM 000 TEST + 04 BG // JOB DSERV TEST + 05 DATE 02/24/73,CLOCK 16/23/06 + 06 BG EOJ CSERV + 07 DATE 02/24/73,CLOCK 16/23/17,DURATION 00/00/10 + 08*F1 1Q40A ON 00E FORMS 0001 NEEDED FOR DSERV 00002 + 09 F1 1Q34I BG WAITING FOR WORK + +33. Now the printer wants our attention. What a crybaby. 8-) + + **> Enter: g 00e (and hit ENTER) + + This tells POWER we put forms known as "0001" in the printer. + (Operators never lie, right?? 8-) ) + + After a little bit of activity, you should see: + + 11 F1 1Q34I LST WAITING FOR WORK ON 00E + + Your output is now availalbe on the printer (in the Hercules + printer file). + + We can ask if there is anything on the POWER printer queue: + + **> Enter: d lst,free (and hit ENTER) + + 05 AR D LST,FREE + 06 F1 1R46I LIST QUEUE NOTHING TO DISPLAY + + +34. At this point, you can run jobs just by sticking them in the + card reader and doing: + + devinit c yourjob.jcl trunc eof + + If you blow it, and feed it a bad file, or have a JCL error, + and the POWER Reader dies, just do the "PSTART RDR,00C" again. + +35. Finally, after all of that excitement, its time to shut down. + + First, we need to tell POWER to go to bed: + + **> Enter: PEND (and hit ENTER) + + You should see something like: + + 08 F1 1R99I POWER/VS IS IN THE SHUTDOWN PERIOD + 09 F1 1Q33I STOPPED PUN ,00D + 10 F1 1Q33I STOPPED LST ,00E + 11 F1 1Q33I STOPPED BG + 12*F2 1I00A READY FOR COMMUNICATIONS. + 13 F1 1Q33I STOPPED F2 + ..... + + pend + + 0D09D READ IS WAITING - CANCEL OR CONTINUE + + **> Hit CLEAR, and then hit ENTER, and you should see: + + 0D07D ENTER RESPONSE + F2 + +36. We need to stop all of the partitions, but we need to + tell BG to end the recorder as well. At each of the + prompts, reply as indicated: + + F2 **> Enter: STOP (and hit ENTER) + F1 **> Enter: STOP (and hit ENTER) (if you get F1 prompt) + BG **> Enter: ROD (and hit ENTER) + + You will then see: + + BG 1I90A END OF DAY = + + **> Enter: Y (and hit ENTER) + + You will then see: + + 18 BG 1I90A END OF DAY = y + 19*F1 1I00A READY FOR COMMUNICATIONS. + 20 BG 1I93I RECORDER FILE IS 1% FULL + 0D07D ENTER RESPONSE + F1 + + (You may see F1 1Q21I POWER/VS HAS BEEN TERMINATED as well) + + F1 **> STOP (and hit ENTER) + + By now, you should have also received: + + 07 BG 1I82I RECORDING COMPLETE. + + BG **> STOP (and hit ENTER) + + +37. Now you can safely shut down Hercules: + + Command ==> stop + Command ==> quit + + +Jay Jaeger + +--------- SAMPLE CONFIGURATION FILE (dos3350.cnf) ---------- + +# +# Configuration file for Hercules ESA/390 emulator +# +# DOS/VS R34 +# + +CPUSERIAL 000611 +CPUMODEL 0148 +MAINSIZE 6 +XPNDSIZE 0 +CNSLPORT 3270 +NUMCPU 1 +LOADPARM ........ +SYSEPOCH 1928 +TZOFFSET -0600 +TODDRAG 1 +ARCHMODE S/370 + +000C 3505 +000D 3525 dev/pch00d.txt ascii +000E 1403 dev/prt00e.txt + +001F 3270 +0180 3420 dev/dosrel34.aws +024F 3350 dev/sysres.3350 + + + +---------- SAMPLE INTDSK.JCL ---------- + +// JOB INTDSK +// DATE 02/24/73 +// ASSGN SYSLOG,X'01F',C2 +// ASSGN SYSLST,X'00E',L1 +// ASSGN SYSIPT,X'180',T2 +// ASSGN SYSOPT,X'24F',D8 +// EXEC +// UID IQ +// VTOC STRTADR=(0554000),EXTENT=(30) +VOL1SYSRES +// END +// JOB RESTOR +// DATE 02/24/73 +// ASSGN SYSLOG,X'01F',C2 +// ASSGN SYSLST,X'00E',L1 +// ASSGN SYSIPT,X'180',T2 +// ASSGN SYS005,X'24F',D8 +// ASSGN SYS006,X'180',T2 +// EXEC +// END + + +---------- SAMPLE IPL.JCL ---------- +( Thanks to Ivanilton ) + +DEL X'00C' +ADD X'00C',3505 +DEL X'00D' +ADD X'00D',3525P +DEL X'00E' +ADD X'00E',1403 +DEL X'01F' +ADD X'01F',3277 +ADD X'180',3420T9 +ADD X'24F',3350 +SET +DPD UNIT=X'24F',VOLID=SYSRES,CYL=400 +// EXEC PROC=LABELS50 +ASSGN SYSREC,SYSRES +// JOB DUMMY +/& + + +---------- SAMPLE POWER.JCL ---------- +( Thanks to Ivanilton ) + +// JOB POWER +// DLBL IJAFILE,'POWER.ACCOUNT.FILE',99/365,DA +// EXTENT SYS000,SYSRES,1,0,9000,90 3 CYLS, 300 - 302, ON SYSRES +// DLBL IJQFILE,'POWER.QUEUE.FILE',99/365,DA +// EXTENT SYS001,SYSRES,1,0,9090,120 4 CYLS, 303 - 306, ON SYSRES +// DLBL IJDFILE,'POWER.DATA.FILE',99/365,DA +// EXTENT SYS002,SYSRES,1,0,6000,3000 100 CYLS, 200 - 299, ON SYSRES +ASSGN SYS000,SYSRES +ASSGN SYS001,SYSRES +ASSGN SYS002,SYSRES +// EXEC POWER +PSTART BG,0 +READER=00C +PRINTERS=00E +PUNCHES=00D +PSTART F2,2 +READER=00C +PRINTERS=00E +PUNCHES=00D +PSTART PUN,00D +PSTART PRT,00E +PSTART RDR,00C + + +---------- DSERV.JCL ---------- +(Thanks to Ivanilton) + +* $$ JOB JNM=DSERV,CLASS=0,USER='TEST' +* $$ LST LST=SYSLST,FNO=0001,CLASS=A +// JOB DSERV TEST +// EXEC DSERV + DSPLY ALL +/* +/& +* $$ EOJ + + diff --git a/SOS_OS/-prim370.zip b/SOS_OS/-prim370.zip new file mode 100644 index 0000000..0b8c7ca Binary files /dev/null and b/SOS_OS/-prim370.zip differ diff --git a/SOS_OS/-sub.c b/SOS_OS/-sub.c new file mode 100644 index 0000000..97c4e79 --- /dev/null +++ b/SOS_OS/-sub.c @@ -0,0 +1,83 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +// ************************************************************************ +// * This is a free submit program for MVS users on Hercules, it allows * +// * one to "sub File.jcl hostname port". * +// * It is released to public under terms of GPL by Rahim Azizarab. * +// ************************************************************************ + +void error(const char *msg) +{ + perror(msg); + exit(0); +} + +int main(int argc, char **argv) +{ + int sockfd, portno, n; + struct sockaddr_in serv_addr; + struct hostent *server; + + if (argc < 2) { + fprintf(stderr,"usage %s filename hostname port\n", argv[0]); + exit(0); + } + char *buffer; + unsigned long fileLen; + FILE *p; + if((p=fopen(argv[1],"r"))==NULL){ + printf("\nUnable t open file string.txt"); + exit(1); + } + +//Get file length + fseek(p, 0, SEEK_END); + fileLen=ftell(p); + fseek(p, 0, SEEK_SET); + +//Allocate memory + buffer=(char *)malloc(fileLen+1); + if (!buffer) + { + fprintf(stderr, "Memory error!"); + fclose(p); + return; + } + +//Read file contents into buffer + fread(buffer, fileLen, 1, p); + fclose(p); +// + + portno = atoi(argv[3]); + sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd < 0) + error("ERROR opening socket"); + server = gethostbyname(argv[2]); + if (server == NULL) { + fprintf(stderr,"ERROR, no such %s host\n", argv[2]); + exit(0); + } + bzero((char *) &serv_addr, sizeof(serv_addr)); + serv_addr.sin_family = AF_INET; + bcopy((char *)server->h_addr, + (char *)&serv_addr.sin_addr.s_addr, + server->h_length); + serv_addr.sin_port = htons(portno); + if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0) + error("ERROR connecting"); + n = write(sockfd,buffer,strlen(buffer)); + if (n < 0) + error("ERROR writing to socket"); + + printf("%s\n",buffer); + close(sockfd); + return 0; +} diff --git a/SOS_OS/Madnick_3270_Terminal_Demo.zip b/SOS_OS/Madnick_3270_Terminal_Demo.zip new file mode 100644 index 0000000..6682148 Binary files /dev/null and b/SOS_OS/Madnick_3270_Terminal_Demo.zip differ diff --git a/SOS_OS/Madnick_4_KB_RDR_for_Hercules.zip b/SOS_OS/Madnick_4_KB_RDR_for_Hercules.zip new file mode 100644 index 0000000..0601c27 Binary files /dev/null and b/SOS_OS/Madnick_4_KB_RDR_for_Hercules.zip differ diff --git a/SOS_OS/Madnick_4_KB_for_Hercules.zip b/SOS_OS/Madnick_4_KB_for_Hercules.zip new file mode 100644 index 0000000..5323345 Binary files /dev/null and b/SOS_OS/Madnick_4_KB_for_Hercules.zip differ diff --git a/SOS_OS/Madnick_Sieve_Primes.zip b/SOS_OS/Madnick_Sieve_Primes.zip new file mode 100644 index 0000000..313f54e Binary files /dev/null and b/SOS_OS/Madnick_Sieve_Primes.zip differ diff --git a/SOS_OS/Madnick_with_Console.zip b/SOS_OS/Madnick_with_Console.zip new file mode 100644 index 0000000..82638ee Binary files /dev/null and b/SOS_OS/Madnick_with_Console.zip differ diff --git a/SOS_OS/README.txt b/SOS_OS/README.txt new file mode 100644 index 0000000..953eb4b --- /dev/null +++ b/SOS_OS/README.txt @@ -0,0 +1,110 @@ +Sample Operating System Version 2.00 +==================================== + +The book "Operating Systems" by Stuart E. Madnick and John J. Donovan +(McGraw-Hill 1974) describes a sample operating system suitable to run on +IBM S/360 and S/370 computers. It evolved from the thesis work of John +DeTreville and was further refined by Richard Swift. + +Peter Flass typed in the source from the assembly listing in the book and +made it available to the Hercules community in 2002. At one time Peter had +it running under VM/370, which he achieved by disabling the storage protection +key handling, i.e. running it without any storage protection. This still was +state of affairs when I stumbled across Peter's source in October 2015. + +As Hercules in S/370 mode defaults to emulating a system without having the +storage-key 4K-byte-block facility installed, storage protection works the +same way it did on the S/360 which was the original target of the sample +operating system. Thus I was able to reinstate storage protection and bring +the source back to the exact state as printed in the book. I didn't verify this +line by line, but I cross checked the program length and quite a few offsets +for being identical, which they are, so I think this assumption is robust. + +As expected the system assembled using this "original" source, works under +Hercules in S/370 mode exactly as documented in the book (there are some rough +edges in loading (IPLing) it, and in handling the card readers, though). From +a software conservation point of view it deemed important to me to publish this +unmodified version of the sample operating system in the hercules-390 Yahoo +group. + +At first, I didn't intend to do much more. However, there was quite a bit of +resonance in this group and the more I looked into it, the more its simple yet +versatile design fascinated me. This lead me to creating a few use cases +demonstrating some capabilities of the system. Additionally I introduced a few +enhancements to the system, from redesigning storage protection to 4K key +blocks, over smoothening IPL and card reader handling, up to introducing +new funtionality to the EXCP device handler. These enhancements were done +"minimally invasive", i.e. there was nothing changed that didn't _need_ to be +changed to achieve the desired outcome. + + +Packaging and Installation: +--------------------------- + +All of the above was published ad'hoc as it came to live during the November to +December 2015 timeframe. This lead to a somewhat chaotic chain of updates to the +sample operating system, each of which depending on its predecessor, while on +the other hand the use cases don't depend on each other and got in parts +overlaid by the later update packages. + +To bring packaging back into a defined state I'm now publishing the "3270 +Graphics Demo" (a 3270 PSS graphics based SOS logo) as a "final" use case, which +at the same time consolidates all the previous ones into a single ZIP archive, +making them accessible through Hercules scripts. + +The Madnick_3270_Graphics_Demo.zip package is the _only_ one needed to get +_all_ use cases that were discussed over the past two months. It is installed by +simply unzipping it into an arbitrary _empty_ folder. File README.txt in the +root folder of the unzipped archive contains information on the system's current +configuration and on how to run the use cases. + +For those interested in the complete update chain the previous "single use case" +packages remain available for download. Namely the first package +("Madnick_for_Hercules.zip") may be of particular interrest as it features the +original 1974 system, running out of the box under Hercules. + +It should be avoided to intermix both installation types, i.e. don't install +any of the previous packages into the same folder as the 3270 Graphics Demo +package and don't install the 3270 Graphics Demo package into the same folder +as any of the previous ones. + + +Files in Folder "Sample Operating System": +------------------------------------------ + +README.txt -- This file. + + / Consolidated package containing all single + / use case packages plus a 3270 graphics SOS + / logo and, as a bonus, three variants of the +Madnick_3270_Graphics_Demo.zip < "99 Bottles of Beer" song lyrics. Install + \ only this package, unless you particularly + \ want to look at one of the previous states + \ of the resurrection and refurbishment work. + +Madnick_3270_Terminal_Demo.zip \ Single use case packages retained to +Madnick_with_Console.zip \ document the sequence of steps taken during +Madnick_Sieve_Primes.zip \ the resurrection and refurbishment of the +Madnick_4_KB_RDR_for_Hercules.zip / Sample Operating System. None of these +Madnick_4_KB_for_Hercules.zip / packages is needed any more to install the +Madnick_for_Hercules.zip / system in its current state. + + +Credits: +-------- + +Stuart E. Madnick \ authors of the book "Operating Systems" +John J. Donovan / (McGraw-Hill 1974) +John DeTreville \ authors of the Sample Operating System +Richard Swift / as listed in "Operating Systems" +Peter Flass -- made the source he typed in from the listing printed + in the book available electronically in 2002 +Harold Grovesteen \ various helpful comments in the hercules-390 Yahoo +Laddie Hanus > group, particularly for sorting out the state of affairs +Martin Zettel / of the storage protection logic in Peter's upload +James Francis Cray -- digged Peter's source out in October 2015 + + +---------- +2015/12/18, Juergen Winkelmann, ETH Zuerich +e-mail: winkelmann@id.ethz.ch diff --git a/SOS_OS/README_with_Console.txt b/SOS_OS/README_with_Console.txt new file mode 100644 index 0000000..4072425 --- /dev/null +++ b/SOS_OS/README_with_Console.txt @@ -0,0 +1,102 @@ +Sample Operating System Version 2.00 - Console I/O Via EXCP Device Handler Demo +=============================================================================== + +The book "Operating Systems" by Stuart E. Madnick and John J. Donovan +(McGraw-Hill 1974) describes a sample operating system suitable to run on +IBM S/360 and S/370 computers. + +While providing a programming interface for card readers and printers, the +sample operating system doesn't come with equivalent support for console +devices. It provides, however, an "EXCP Device Handler" allowing user programs +to execute channel programs addressing arbitrary devices, as long as UCBs for +these devices are defined in the UCB table. Thus, after adding a "console UCB" +to the UCB table and after adding a matching device to the hardware (Hercules), +user programs can perform "console I/O" using the EXCP device handler. + +As opposed to a system wide console task handling console I/O asynchronously +from requesting programs, allowing user programs to access the console device +directly requires serialization. The sample operating system serializes the I/O +using a wait semaphore defined in the UCB. That means all requests are queued +and user programs have to wait until it's their turn to access the device. + +Serialized console I/O shouldn't be a problem when messages are to be sent to +the console, as long as no message flooding occurs. However, when it comes to +reading from the console (replies, parameters, etc.) serialization can lead to a +complete halt of running jobs if a read request isn't answered in a timely +manner. This has to be kept in mind when using such a "poor man's" console. + +The Console I/O package contains an updated version of the demo user program +shown in figure 7-11 of the "Operating Systems" book. In addition to printing a +message confirming its successful entry into the system, it reads "parameters" +from the console and echoes them back to the printer. To support this program a +UCB to handle a "console" at 009 has been added to the sample operating system. + +This is meant as a proof of concept style example on using the EXCP device +handler only. In particular, I/O is not checked for completeness, success or +failure, which certainly would need to be done for real world usability. + + +Installation: +------------- + +Before installing the Console I/O package, please ensure you have the sample +operating system with the card reader handling enhancement installed, as found +and described in + +https://groups.yahoo.com/neo/groups/hercules-390/files/Madnick_4_KB_RDR_for_Hercules.zip + +It is recommended to install the Console I/O package on a separate copy of the +sample operating system, as it changes the Hercules configuration (hardware) +and the system configuration (device support). To install the package unzip the +archive found at + +https://groups.yahoo.com/neo/groups/hercules-390/files/Madnick_with_Console.zip + +into the folder containing the copy of the sample operating system to be used, +allowing the unzip program to merge folders and replace files already existing. + + +Contents: +--------- + +README_with_Console.txt - this file +conf/madnick.cnf - Hercules configuration file +source/sos4krdc.asm - sample OS source, updated to include console UCB +source/sosuserc.asm - demo user program source, updated for console I/O +rdr/sample_operating_system_version_2.00.ipldeck - card deck to IPL sample OS +rdr/demo_user_program.deck - card deck to submit the demo user program +sysgen/madnick_with_console.xmi - XMITted PDS containing source and + build information + +Note that rdr/sample_operating_system_version_2.00.ipldeck is identical to +member IPL4KRDC of the PDS contained in sysgen/madnick_with_console.xmi. +Follow the instructions in member $README of this PDS to rebuild the IPL +deck from source. + + +Usage: +------ + +The following steps provide minimal information to IPL the sample operating +system and to run the demo user program from four card readers simultaneously: + +o make sure to have Hercules in your path +o run start_herc (*i*x systems) or start_herc.bat (Windows systems) +o connect a telnet (_not_ tn3270) session to your local port 3215 +o enter "ipl c" at the Hercules console prompt +o The system will enter a wait state (PSW=FE0200008000056A) when it is ready + to process jobs +o enter "script scripts/load_card_decks" at the Hercules console prompt and + reply politely to the requests being issued at the telnet session +o the system will enter a wait state (PSW=FE0200008000056A) after completion + of the four jobs +o review the output of the four jobs in folder prt +o to rerun, enter "script scripts/load_card_decks" at the Hercules console prompt + + + +Have fun! + +---------- +13.11.2015, Juergen Winkelmann, ETH Zuerich +e-mail: winkelmann@id.ethz.ch diff --git a/SOS_OS/SOSMAKE.pdf b/SOS_OS/SOSMAKE.pdf new file mode 100644 index 0000000..20cfa4a Binary files /dev/null and b/SOS_OS/SOSMAKE.pdf differ diff --git a/SOS_OS/SOS_logo.png b/SOS_OS/SOS_logo.png new file mode 100644 index 0000000..d9135a2 Binary files /dev/null and b/SOS_OS/SOS_logo.png differ diff --git a/SOS_OS/conf/madnick.cnf b/SOS_OS/conf/madnick.cnf new file mode 100644 index 0000000..13204c9 --- /dev/null +++ b/SOS_OS/conf/madnick.cnf @@ -0,0 +1,27 @@ +#********************************************************************** +#*** *** +#*** File: madnick.cnf *** +#*** *** +#*** Purpose: Hercules configuration file for Madnick Sample OS *** +#*** with 3215 console at 009 listening at port 3215 *** +#*** *** +#*** Updated: 2015/11/13 *** +#*** *** +#********************************************************************** +CPUSERIAL 004711 +CPUMODEL 3145 +MAINSIZE 16 +XPNDSIZE 0 +CNSLPORT 3215 +NUMCPU 1 +MAXCPU 1 +ARCHMODE S/370 +0009 3215 noprompt +0012 3505 * eof +000C 3505 rdr/sample_operating_system_version_2.00.ipldeck eof +0112 3505 * eof +010C 3505 * eof +0010 1403 prt/stream-1_output.txt +000E 1403 prt/stream-2_output.txt +0110 1403 prt/stream-3_output.txt +010E 1403 prt/stream-4_output.txt diff --git a/SOS_OS/rdr/demo_user_program.deck b/SOS_OS/rdr/demo_user_program.deck new file mode 100644 index 0000000..425813b Binary files /dev/null and b/SOS_OS/rdr/demo_user_program.deck differ diff --git a/SOS_OS/rdr/sample_operating_system_version_2.00.ipldeck b/SOS_OS/rdr/sample_operating_system_version_2.00.ipldeck new file mode 100644 index 0000000..6049f60 Binary files /dev/null and b/SOS_OS/rdr/sample_operating_system_version_2.00.ipldeck differ diff --git a/SOS_OS/source/sos4krdc.asm b/SOS_OS/source/sos4krdc.asm new file mode 100644 index 0000000..42d2cc5 --- /dev/null +++ b/SOS_OS/source/sos4krdc.asm @@ -0,0 +1,2341 @@ + TITLE 'Sample Operating System Version 2.00' 00010002 +*********************************************************************** 00020000 +* * 00030000 +* ***************************************************************** * 00040000 +* * * * 00050000 +* * Sample Operating System * * 00060002 +* * Version 2.00 * * 00067002 +* * Developed at MIT 1973 * * 00074002 +* * * * 00090000 +* ***************************************************************** * 00100000 +* * 00100602 +* Update 2015/10/31 Juergen Winkelmann, e-mail winkelmann@id.ethz.ch * 00101202 +* * 00101802 +* - change storage protection alignments to 4K \ * 00102402 +* - replace SSK/ISK instructions with SSKE/ISKE > 4K support * 00103002 +* - minor changes in storage protection logic / * 00103602 +* - change number of parallel processing streams to 4 * 00104202 +* - change core size to 16M * 00104802 +* - replace table of valid $JOB card core requests with general * 00105402 +* logic rounding up any none full page request entered to next * 00106002 +* full page * 00106602 +* - add IPL card and two card loader for one stop creation of an * 00107202 +* IPLable card deck * 00107802 +* - ignore external interrupts during initialization to avoid * 00108402 +* IPLRTN getting interrupted by the interval timer * 00109002 +* * 00109103 +* Update 2015/11/05 Juergen Winkelmann, e-mail winkelmann@id.ethz.ch * 00109203 +* * 00109303 +* - allow reloading card readers without needing to re-IPL the * 00109403 +* system. This functionality relies on Hercules' card reader * 00109503 +* behavior with the EOF initialization in place. It will not * 00109603 +* work in INTR mode. * 00109703 +* * 00109744 +* Update 2015/11/13 Juergen Winkelmann, e-mail winkelmann@id.ethz.ch * 00109784 +* * 00109824 +* - add UCB to support a console at 009 using the EXCP device * 00109864 +* handler. * 00109904 +* * 00110000 +*********************************************************************** 00120000 + SPACE 3 00130000 + PRINT ON,NODATA,GEN 00140000 +PROGRAM CSECT , sample operating system starts at zero 00150002 +CARDLDR CSECT , two card loader follows at the end 00150102 +*** 00150202 +*** IPL card 00150302 +*** 00150402 +IPLCARD CSECT , IPLable deck must begin with this card 00150502 +PSWD DC F'0',X'00' initial program status word, disabled 00150602 + DC AL3(LOADER) start execution at load address 00150702 +CCW1 DC X'02',AL3(LOADER) read 1st card to load address 00150802 + DC XL4'40000050' chain, read length = 80 00150902 +CCW2 DC X'02',AL3(LOADER+80) read 2nd card to load addr + 80 00151002 + DC XL4'00000050' read length = 80 00151102 + DC C'Sample Operating System Version 2.00' eye catcher 00151202 + DC 16X'00' pad to card length 00151302 +*** 00151402 +*** loader 00151502 +*** 00151602 +* 00151702 +* Initialize 00151802 +* 00151902 +CARDLDR CSECT , two card loader must follow IPL card 00152002 + BALR R12,0 establish .. 00152102 + LA R2,2 .. base .. 00152202 + SR R12,R2 .. register 00152302 + USING CARDLDR,R12 tell assembler 00152402 + LA R11,0 addressability of .. 00152502 + USING PROGRAM,R11 .. sample operating system 00152602 + LA R2,0 I/O .. 00152702 + LA R3,IOINTRPT .. new PSWD 00152802 + STM R2,R3,IONEW store I/O new PSWD 00152902 + SSM ENBLECH0 enable interrupts from channel 0 00153002 + LA R5,CCWCHAIN address of card reader CCW chain 00153102 + ST R5,CAW store address in CAW 00153202 + L R3,NUMCARDS number of cards to read 00153302 + L R4,LOADADDR target address of loaded code 00153402 +* 00153502 +* create CCW chain 00153602 +* 00153702 +NEXTCARD LR R2,R4 load next card here 00153802 + ICM R2,B'1000',READ insert write command 00153902 + ST R2,0(,R5) store CCW 00154002 + LA R2,80 length of card 00154102 + ST R2,4(,R5) store length in CCW, zero all flags 00154202 + OI 4(R5),X'40' indicate command chaining 00154302 + LA R4,80(,R4) increment target address 00154402 + LA R5,8(,R5) point to next CCW 00154502 + BCT R3,NEXTCARD read next card 00154602 + S R5,EIGHT point to previous CCW 00154702 + NI 4(R5),X'BF' clear command chaining flag 00154802 +* 00154902 +* read cards and wait for completion 00155002 +* 00155102 + SIO 12(0) read cards 00155202 + LA R2,*+12 continue here after I/O completion 00155302 + ST R2,CONTINUE store continue address in PSWD skeleton 00155402 + LPSW WAITPSWD wait for I/O completion 00155502 +* 00155602 +* "IPL" the Sample Operating System 00155702 +* 00155802 + LPSW 0 transfer control 00155902 +* 00156002 +* I/O interrupt handler 00156102 +* 00156202 +IOINTRPT EQU * 00156302 + TM CSW+4,X'04' device end received? 00156402 + BNO IOINTRTN -> no, keep waiting 00156502 + NI IOOLD+1,X'FD' -> yes, terminate wait state and .. 00156602 + NI IOOLD,X'7F' .. and disable channel 0 interrupts 00156702 +IOINTRTN LPSW IOOLD return to mainline 00156802 + DROP R11,R12 no longer needed 00156902 +* 00157002 +* Data area 00157102 +* 00157202 +ENBLECH0 DC C'80' mask to enable channel 0 interrupts 00157302 +READ DC X'02' read a card 00157402 + DS 0D align 00157502 +WAITPSWD DC X'80020000' wait with channel 0 interrupts enabled 00157602 +CONTINUE DS F continue here after wait 00157702 +LOADADDR DC F'0' code is to be loaded here 00157802 +NUMCARDS DC F'75' number of cards to read 00157904 +EIGHT DC F'8' CCW length 00158002 +CCWCHAIN DS 0D start of card reader CCW chain 00158102 +*** 00158202 +*** Sample Operating System code begins here 00158302 +*** 00158402 +PROGRAM CSECT , sample OS must follow loader cards 00158502 + SPACE 1 00160000 +CORESIZE EQU 16777216 bytes of core in object machine 00170002 + SPACE 1 00180000 + USING *,0 COMMUNICATIONS AREA 00190000 + SPACE 1 00200000 +IPLPSW DC B'00000000',B'00000000',X'0000',X'00',AL3(IPLRTN) 00210000 +IPLCCW1 DS D . IPL CCW #1 00220000 +IPLCCW2 DS D . IPL CCW #2 00230000 +EXTOLD DS D . EXTERNAL OLD PSW 00240000 +SVCOLD DS D . SVC OLD PSW 00250000 +PGMOLD DS D . PROGRAM INTERRUPT OLD PSW 00260000 +MCHKOLD DS D . MACHINE CHECK OLD PSW 00270000 +IOOLD DS D . I/O INTERRUPT OLD PSW 00280000 +CSW DS D . CHANNEL STATUS WORD 00290000 +CAW DS F . CHANNEL ADDRESS WORD 00300000 +UNUSED0 DS F . 00310000 +TIMER DC F'-1' . TIMER 00320000 +UNUSED1 DC F'0' . 00330000 +EXTNEW DC B'00000000',B'00000000',X'0000',X'00',AL3(EXTHANDL) 00340000 +SVCNEW DC B'00000000',B'00000000',X'0000',X'00',AL3(SVCHANDL) 00350000 +PGMNEW DC B'00000000',B'00000000',X'0000',X'00',AL3(PGMHANDL) 00360000 +MCHKNEW DC B'00000000',B'00000010',X'0000',X'00',AL3(0) 00370000 +IONEW DC B'00000000',B'00000000',X'0000',X'00',AL3(IOINTRPT) <-+ 00380002 +*** | 00382002 +*** IOINTRPT will be replaced with IOHANDL after IPL by IPLRTN -----+ 00384002 +*** 00386002 + ORG *+X'100' SPACE OVER STAND ALONE DUMP AREA 00390000 +FSBPTR DC A(VERYEND) . FSB POINTER 00400000 +FSBSEM DC F'1,0' . FSB SEMAPHORE 00410000 +MEMORY DC F'0,0' . MEMORY SEMAPHORE 00420000 +CAWSEM DC F'1,0' . CAW SEMAPHORE 00430000 + SPACE 1 00440000 +TRAPSAVE DS 16F . STORAGE FOR EXTERNAL INTERRUPTS 00450000 +IOHSAVE DS 16F . STORAGE FOR I/O INTERRUPTS 00460000 + SPACE 1 00470000 +SYSSEMSA DS CL84 . SYSTEM SEMAPHORE SAVE AREA 00480000 + SPACE 1 00490000 +RUNNING DS A . RUNNING 00500000 +NEXTTRY DS A . NEXTTRY 00510000 +NEXTTRYM DS C,0H . NEXTTRY MODIFIED 00520000 + EJECT 00530000 +*********************************************************************** 00540000 +* * 00550000 +* EXTERNAL, PROGRAM, AND SVC INTERRUPT HANDLERS * 00560000 +* * 00570000 +*********************************************************************** 00580000 + SPACE 1 00590000 +EXTHANDL EQU * . EXTERNAL INTERRUPT HANDLER 00600000 + STM 0,15,TRAPSAVE . SAVE REGISTERS 00610000 + BALR 1,0 . ESTABLISH ADDRESSING 00620000 + USING *,1 00630000 + CLI EXTOLD+3,X'80' . SEE IF TIMER TRAP 00640000 + BNE EXTHRET . IF NOT, IGNORE 00650000 + L 15,RUNNING . SET UP REGISTERS FOR TRAFFIC 00660000 + USING PCB,15 . CONTROLLER (XPER) 00670000 + CLI PCBBLOKT,X'FF' . IF BLOCKED, NO PROCESS IS 00680000 + BE EXTHRET . RUNNABLE, SO RETURN 00690000 + LA 14,PCBISA . GET SAVE AREA 00700000 + USING SA,14 00710000 + MVC SAPSW,EXTOLD . AND STORE OLD STUFF INTO IT 00720000 + MVC SAREGS,TRAPSAVE 00730000 + B XPER . THEN GO TO TRAFFIC SCHEDULER 00740000 + DROP 14,15 00750000 +EXTHRET LM 0,15,TRAPSAVE . TO IGNORE AN INTERRUPT, RELOAD 00760000 + LPSW EXTOLD . AND TRANSFER BACK 00770000 + SPACE 1 00780000 +PGMHANDL EQU * . PROGRAM INTERRUPT HANDLER 00790000 + SVC C'?' . IN ANY CASE, AN ERROR 00800000 + EJECT 00810000 +*********************************************************************** 00820000 +* * 00830000 +* SVC INTERRUPT HANDLER * 00840000 +* * 00850000 +* FOR ALL ROUTINES ENTERED BY SVC INTERRUPT, THE * 00860000 +* FOLLOWING REGISTERS CONTAIN THIS INFORMATION: * 00870000 +* * 00880000 +* REGISTER 1 - BASE REGISTER FOR ROUTINE * 00890000 +* REGISTER 2 - POINTER TO ARGUMENT LIST (IF ANY) * 00900000 +* REGISTER 14 - POINTER TO SAVEAREA USED FOR THIS SVC * 00910000 +* REGISTER 15 - POINTER TO PCB PRESENTLY RUNNING * 00920000 +* * 00930000 +*********************************************************************** 00940000 + SPACE 1 00950000 +SVCHANDL EQU * . SVC HANDLER 00960000 + STM 0,15,TRAPSAVE . SAVE REGISTERS 00970000 + BALR 9,0 . ESTABLISH ADDRESSING 00980000 + USING *,9 00990000 + LM 10,14,SVCCONST . INITIALIZE REGISTERS 01000000 + IC 10,SVCOLD+3 . GET SVC CODE 01010000 + IC 10,SVCHTABL(10) . TRANSLATE INTO TABLE OFFSET 01020000 + LA 10,SVCRTN(10) . REG 10 -> THE CORRECT PSW 01030000 + CLI 2(10),X'00' . IS THIS CALL PROTECTED? 01040000 + BE SVCHPROT . THEN SEE IF WE CAN CALL IT 01050000 +SVCOK L 15,RUNNING . GET PCB POINTER 01060000 + USING PCB,15 01070000 + CLI 3(10),X'00' . IS IT A SYSTEM SAVEAREA? 01080000 + BE SYSSEM . DON'T USE REG 14 AS PCB POINTER 01090000 + LR 14,15 . ELSE, SET UP PCB POINTER 01100000 +SYSSEM IC 11,3(10) . GET POINTER TO SAVE AREA OFFSET 01110000 + A 14,SVCSAVE(11) . REG 14 -> SAVE AREA 01120000 + CLI SVCOLD+3,C'.' . ARE WE CALLING XPER? 01130000 + BE SVCXPER . IF SO, DON'T SAVE RETURN STATUS 01140000 + USING SA,14 01150000 + MVC SAPSW,SVCOLD . SAVE PSW 01160000 + MVC SAREGS,TRAPSAVE . SAVE REGISTERS 01170000 +SVCXPER L 1,4(10) . MAKE ADDRESSING EASY WITHIN 01180000 + LPSW 0(10) . ROUTINE, AND GO THERE 01190000 +SVCHPROT L 12,SVCOLD . GET PROTECTION KEY 01200000 + NR 12,13 . IS IT A USER? 01210000 + BZ SVCOK . IF NO, THAT'S FINE 01220000 + LA 10,SVCRTN+136 . ELSE SET UP CALL TO XQUE 01230000 + B SVCOK . 01240000 + DROP 9 01250000 +SVCCONST DC 3F'0',X'00F00000',F'0' 01260000 + SPACE 1 01270000 +SVCHTABL DC 256X'84' . TABLE OF PSW OFFSETS 01280000 + ORG SVCHTABL+C'P' 01290000 + DC AL1(0) 01300000 + ORG SVCHTABL+C'V' 01310000 + DC AL1(8) 01320000 + ORG SVCHTABL+C'!' 01330000 + DC AL1(16) 01340000 + ORG SVCHTABL+C',' 01350000 + DC AL1(24) 01360000 + ORG SVCHTABL+C'B' 01370000 + DC AL1(32) 01380000 + ORG SVCHTABL+C'A' 01390000 + DC AL1(40) 01400000 + ORG SVCHTABL+C'F' 01410000 + DC AL1(48) 01420000 + ORG SVCHTABL+C'I' 01430000 + DC AL1(56) 01440000 + ORG SVCHTABL+C'J' 01450000 + DC AL1(64) 01460000 + ORG SVCHTABL+C'.' 01470000 + DC AL1(72) 01480000 + ORG SVCHTABL+C'R' 01490000 + DC AL1(80) 01500000 + ORG SVCHTABL+C'S' 01510000 + DC AL1(88) 01520000 + ORG SVCHTABL+C'C' 01530000 + DC AL1(96) 01540000 + ORG SVCHTABL+C'N' 01550000 + DC AL1(104) 01560000 + ORG SVCHTABL+C'Y' 01570000 + DC AL1(112) 01580000 + ORG SVCHTABL+C'Z' 01590000 + DC AL1(120) 01600000 + ORG SVCHTABL+C'D' 01610000 + DC AL1(128) 01620000 + ORG SVCHTABL+C'?' 01630000 + DC AL1(136) 01640000 + ORG SVCHTABL+C'H' 01650000 + DC AL1(144) 01660000 + ORG SVCHTABL+C'E' 01670000 + DC AL1(152) 01680000 + ORG SVCHTABL+256 01690000 + SPACE 1 01700000 +SVCRTN DS 0D . THE PSWS 01710000 +* IN THE FOLLOWING PSWS, THE THIRD BYTE INDICATES * 01720000 +* WHETHER THE SVC IS RESTRICTED: * 01730000 +* X'00' -> OPERATING SYSTEM ONLY * 01740000 +* X'FF' -> AVAILABLE TO USER ALSO * 01750000 +* * 01760000 +* THE FOURTH BYTE INDICATES WHICH SAVE AREA TO USE; * 01770000 +* SVCSAVE BELOW SHOWS THE CODE VALUES. * 01780000 + DC B'00000000',B'00000000',X'0000',X'00',AL3(XP) 01790000 + DC B'00000000',B'00000000',X'0000',X'00',AL3(XV) 01800000 + DC B'00000000',B'00000000',X'0004',X'00',AL3(XEXC) 01810000 + DC B'00000000',B'00000000',X'0004',X'00',AL3(XCOM) 01820000 + DC B'00000000',B'00000000',X'0004',X'00',AL3(XB) 01830000 + DC B'11111111',B'00000000',X'000C',X'00',AL3(XA) 01840000 + DC B'11111111',B'00000000',X'000C',X'00',AL3(XF) 01850000 + DC B'00000000',B'00000000',X'0004',X'00',AL3(XI) 01860000 + DC B'00000000',B'00000000',X'0004',X'00',AL3(XJ) 01870000 + DC B'00000000',B'00000000',X'0004',X'00',AL3(XPER) 01880000 + DC B'11111111',B'00000000',X'FF08',X'00',AL3(XR) 01890000 + DC B'11111111',B'00000000',X'FF08',X'00',AL3(XS) 01900000 + DC B'11111111',B'00000000',X'FF08',X'00',AL3(XC) 01910000 + DC B'00000000',B'00000000',X'FF04',X'00',AL3(XN) 01920000 + DC B'00000000',B'00000000',X'FF08',X'00',AL3(XY) 01930000 + DC B'11111111',B'00000000',X'FF08',X'00',AL3(XZ) 01940000 + DC B'11111111',B'00000000',X'FF08',X'00',AL3(XD) 01950000 + DC B'00000000',B'00000000',X'FF04',X'00',AL3(XQUE) 01960000 + DC B'11111111',B'00000000',X'FF08',X'00',AL3(XH) 01970000 + DC B'11111111',B'00000000',X'000C',X'00',AL3(XAUTO) 01980000 + SPACE 1 01990000 +SVCSAVE DS 0F . THE SAVE AREA OFFSETS 02000000 + DC A(SYSSEMSA) . CODE 00 -> SYSSEMSA 02010000 + DC A(PCBISA-PCB) . CODE 04 -> INTERRUPT SAVE AREA 02020000 + DC A(PCBFSA-PCB) . CODE 08 -> FAULT SAVE AREA 02030000 + DC A(PCBMSA-PCB) . CODE 0C -> MEMORY SAVE AREA 02040000 + SPACE 3 02050000 +*********************************************************************** 02060000 +* * 02070000 +* RETURN SEQUENCE FOR REQUEST DRIVEN ROUTINES AND TRAFFIC CONTROLLER * 02080000 +* * 02090000 +*********************************************************************** 02100000 + SPACE 1 02110000 + DS 0D 02120000 +RETURN DC B'00000000',B'00000000',X'0000',X'00',AL3(RETURNR) 02130000 + SPACE 1 02140000 +RETURNR EQU * . RETURN ROUTINE FOR SVC'S AND XPER 02150000 + MVC SVCOLD,SAPSW . SAVE PSW IN A SAFE PLACE 02160000 + LM 0,15,SAREGS . RELOAD REGISTERS 02170000 + LPSW SVCOLD . AND RETURN 02180000 + EJECT 02190000 +*********************************************************************** 02200000 +* * 02210000 +* REQUEST DRIVEN ROUTINES * 02220000 +* * 02230000 +*********************************************************************** 02240000 + SPACE 3 02250000 +*********************************************************************** 02260000 +* * 02270000 +* XP ROUTINE * 02280000 +* * 02290000 +* FUNCTION: TO IMPLEMENT "P" PRIMITIVE FOR SEMAPHORES * 02300000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS SM * 02310000 +* SM DS 0D SEMAPHORE DEFINITION * 02320000 +* SMVAL DS F VALUE * 02330000 +* SMPTR DS A POINTER TO FIRST WAITER * 02340000 +* ROUTINES USED: XPER * 02350000 +* PROCEDURE: SUBTRACT ONE FROM SMVAL; IF NON-NEGATIVE, RETURN. * 02360000 +* IF NEGATIVE, PLACE RUNNING PROCESS AT END OF LIST * 02370000 +* OF PRECESSES WAITING ON SM. BLOCK CALLING PROCESS; * 02380000 +* ENTER TRAFFIC CONTROLLER. * 02390000 +* ERROR CHECKS: NONE * 02400000 +* INTERRUPTS: OFF * 02410000 +* USER ACCESS: NO * 02420000 +* * 02430000 +*********************************************************************** 02440000 + SPACE 1 02450000 +XP EQU * . THE XP ROUTINE 02460000 + USING *,1 02470000 + USING SM,2 . ARGUMENT IS A SEMAPHORE 02480000 + L 3,SMVAL . GET THE VALUE 02490000 + BCTR 3,0 . SUBTRACT ONE 02500000 + ST 3,SMVAL . AND STORE IT BACK 02510000 + LTR 3,3 . SET CONDITION CODE 02520000 + BM XPWAIT . IF IT'S NEGATIVE, MUST WAIT 02530000 + LPSW RETURN . ELSE RETURN NOW 02540000 +XPWAIT LA 4,SMPTR . START GOING DOWN 02550000 + L 5,SMPTR . CHAIN OF POINTERS 02560000 + DROP 15 02570000 + USING PCB,5 02580000 +XPLOOP LTR 5,5 . IF REACHED END 02590000 + BZ XPTHEN . ADD OUR PCB ON. ELSE, 02600000 + LA 4,PCBNSW . INCREMENT POINTERS 02610000 + L 5,PCBNSW 02620000 + B XPLOOP . AND TRY AGAIN 02630000 + DROP 5 02640000 + USING PCB,15 02650000 +XPTHEN MVC 0(4,4),RUNNING . WE'RE AT THE END 02660000 + ST 5,PCBNSW . STORE NULL POINTER 02670000 + MVI PCBBLOKT,X'FF' . AND WE'RE BLOCKED 02680000 + MVC PCBISA,SYSSEMSA . SWITCH SAVE AREAS 02690000 + B XPER . SO RUN SOMEONE ELSE 02700000 + DROP 2 02710000 + EJECT 02720000 +*********************************************************************** 02730000 +* * 02740000 +* XV ROUTINE * 02750000 +* * 02760000 +* FUNCTION: TO IMPLEMENT "V" PRIMITIVE FOR SEMAPHORES * 02770000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS SM * 02780000 +* SM DS 0D SEMAPHORE DEFINITION * 02790000 +* SMVAL DS F VALUE * 02800000 +* SMPTR DS A POINTER TO FIRST WAITER * 02810000 +* ROUTINES USED: NONE * 02820000 +* PROCEDURE: ADD ONE TO SMVAL; IF > ZERO, RETURN. IF ZERO OR * 02830000 +* LESS, REMOVE FIRST PROCESS FROM WAITER CHAIN; * 02840000 +* UNBLOCK IT; IF NEXTTRYM NOT SET, SET IT AND SET * 02850000 +* NEXTTRY TO THAT PROCESS; RETURN; IF NEXTTRYM SET, * 02860000 +* RETURN. * 02870000 +* ERROR CHECKS: NONE * 02880000 +* INTERRUPTS: OFF * 02890000 +* USER ACCESS: NO * 02900000 +* * 02910000 +*********************************************************************** 02920000 + SPACE 1 02930000 +XV EQU * . THE XV ROUTINE 02940000 + USING *,1 02950000 + USING SM,2 . ARGUMENT IS A SEMAPHORE 02960000 + L 3,SMVAL . GET THE VALUE 02970000 + A 3,=F'1' . ADD ONE 02980000 + ST 3,SMVAL . AND STORE IT BACK 02990000 + BNP XVWAKEUP . IF <=0, SOMEONE'S WAITING 03000000 + LPSW RETURN . ELSE RETURN 03010000 +XVWAKEUP L 4,SMPTR . GET THE FIRST OF THE GUYS 03020000 + DROP 15 03030000 + USING PCB,4 03040000 + MVC SMPTR,PCBNSW . REMEMBER THE REST 03050000 + MVI PCBBLOKT,X'00' . WE'RE NO LONGER BLOCKING HIM 03060000 + CLI NEXTTRYM,X'FF' . IS NEXT TRY MODIFIED? 03070000 + BE XVRET . IF SO, WELL OK 03080000 + ST 4,NEXTTRY ELSE MODIFY NEXTTRY 03090000 + MVI NEXTTRYM,X'FF' . AND SAY SO 03100000 +XVRET LPSW RETURN . GET BACK 03110000 + DROP 2,4 03120000 + EJECT 03130000 +*********************************************************************** 03140000 +* * 03150000 +* XPER ROUTINE (TRAFFIC CONTROLLER) * 03160000 +* * 03170000 +* FUNCTION: TO IMPLEMENT MULTIPROGRAMMING * 03180000 +* DATABASES: NONE * 03190000 +* ROUTINES USED: NONE * 03200000 +* PROCEDURE: STARTING WITH NEXTTRY, SEARCH FOR PROCESS ON ALL * 03210000 +* PCB CHAIN NOT BLOCKED OR STOPPED; IF FOUND, USE AS * 03220000 +* NEW RUNNING, FOR 50 MS OF TIME AND RETURN. ELSE, * 03230000 +* ENTER WAIT STATE WITH INTERRUPTS ON, AND TRY TO * 03240000 +* SCHEDULE AGAIN AFTER INTERRUPT; RETURN. * 03250000 +* ERROR CHECKS: NONE * 03260000 +* INTERRUPTS: OFF * 03270000 +* USER ACCESS: NO * 03280000 +* * 03290000 +*********************************************************************** 03300000 + SPACE 1 03310000 +XPER EQU * . ROUTINE XPER: TRAFFIC SCHEDULER 03320000 + SSM IONEW . MASK OFF INTERRUPTS 03330000 + BALR 1,0 03340000 + USING *,1 03350000 + L 10,NEXTTRY . START LOOKING AT NEXTTRY 03360000 + LR 11,10 . REMEMBER WHICH THAT WAS 03370000 + USING PCB,10 03380000 +GWLOOP CLI PCBBLOKT,X'FF' . IF IT'S BLOCKED 03390000 + BE GWINC . IGNORE 03400000 + CLI PCBSTOPT,X'FF' . ELSE, IF IT'S NOT STOPPED 03410000 + BNE GWRUN . WE CAN RUN IT 03420000 +GWINC L 10,PCBNPALL . ELSE, GO TO THE NEXT 03430000 + CR 10,11 . IF WE'VE SEEN ALL, QUIT 03440000 + BNE GWLOOP . ELSE TRY AGAIN 03450000 + LPSW IDLE . SIT AND WAIT 03460000 + DS 0D 03470000 +IDLE DC B'11111110',B'00000010',X'0000',X'00',AL3(XPER) 03480000 + SPACE 1 03490000 +GWRUN MVC NEXTTRY,PCBNPALL . GET A NEW NEXTTRY 03500000 + MVI NEXTTRYM,X'00' . NOT MODIFIED 03510000 + ST 10,RUNNING . GET A NEW RUNNING 03520000 + LA 14,PCBISA 03530000 + MVC TIMER,QUANTUM . INTERRUPT AFTER 50 MS 03540000 + LPSW RETURN . AND GO TO RETURNR 03550000 +QUANTUM DC X'00000F00' . QUANTUM OF TIME 03560000 + DROP 10 03570000 + USING PCB,15 03580000 + EJECT 03590000 +*********************************************************************** 03600000 +* * 03610000 +* XEXC ROUTINE * 03620000 +* * 03630000 +* FUNCTION: TO ENTER SMC SECTION * 03640000 +* DATABASES: NONE * 03650000 +* ROUTINES USED: NONE * 03660000 +* PROCEDURE: INCREMENT SMC BYTE IN PCB BY ONE; RETURN. * 03670000 +* ERROR CHECKS: NONE * 03680000 +* INTERRUPTS: OFF * 03690000 +* USER ACCESS: NO * 03700000 +* * 03710000 +*********************************************************************** 03720000 + SPACE 1 03730000 +XEXC EQU * . ROUTINE XEXC: ENTER SMC SECTION 03740000 + USING *,1 03750000 + SR 8,8 03760000 + IC 8,PCBINSMC 03770000 + LA 8,1(8) . ADD ONE TO SMC BYTE 03780000 + STC 8,PCBINSMC 03790000 + LPSW RETURN . AND LEAVE 03800000 + SPACE 1 03810000 +*********************************************************************** 03820000 +* * 03830000 +* XCOM ROUTINE * 03840000 +* * 03850000 +* FUNCTION: TO LEAVE SMC SECTION * 03860000 +* DATABASES: NONE * 03870000 +* ROUTINES USED: XP, XV * 03880000 +* PROCEDURE: DECREMENT SMC BYTE IN PCB BY ONE; IF NOT ZERO, * 03890000 +* RETURN. ELSE, CHECK FOR STOP WAITING; IF STOP * 03900000 +* WAITING, ALLOW STOP AND BLOCK SELF; RETURN. IF NO * 03910000 +* STOP WAITING, RETURN. * 03920000 +* ERROR CHECKS: NONE * 03930000 +* INTERRUPTS: OFF * 03940000 +* USER ACCESS: NO * 03950000 +* * 03960000 +*********************************************************************** 03970000 + SPACE 1 03980000 +XCOM EQU * . ROUTINE XCOM: LEAVE SMC 03990000 + USING *,1 04000000 + SR 8,8 04010000 + IC 8,PCBINSMC 04020000 + BCTR 8,0 . SUBTRACT ONE FROM IN SMC BYTE 04030000 + STC 8,PCBINSMC 04040000 + LTR 8,8 . IS IT ZERO? 04050000 + BNZ XCOMRET . NO, THEN GET BACK, OTHERWISE 04060000 + CLI PCBSW,X'00' . IS STOP WAITING? 04070000 + BE XCOMRET . IF NOT, RETURN 04080000 + MVI PCBSW,X'00' . STOPS NOT WAITING AFTER THIS 04090000 + LA 2,PCBSRS . WE'LL "V" THE STOPPER, 04100000 + SVC C'V' 04110000 + LA 2,PCBSES . AND "P" THE STOPPEE. 04120000 + SVC C'P' 04130000 +XCOMRET LPSW RETURN . AND HERE (IF EVER) WE RETURN 04140000 + EJECT 04150000 +*********************************************************************** 04160000 +* * 04170000 +* XA ROUTINE * 04180000 +* XAUTO ROUTINE * 04190000 +* * 04200000 +* FUNCTION: TO ALLOCATE MEMORY * 04210000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XAX: * 04220000 +* XAX DS 0D * 04230000 +* XAXSIZE DS F SIZE OF BLOCK TO BE ALLOCATED * 04240000 +* XAXADDR DS A ADDRESS OF FIRST BYTE OF BLOCK* 04250000 +* XAXALGN DS F ALIGNMENT OF BLOCK * 04260000 +* ROUTINES USED: XEXC, XCOM, XP, XV, XB * 04270000 +* PROCEDURE: LOCK FSB SEMAPHORE; SEARCH FREE STORAGE FOR LARGE * 04280000 +* ENOUGH MEMORY BLOCK; ALIGN BOUNDARY; USE XB TO * 04290000 +* CHAIN ANY LEFTOVER BLOCKS TO FREE STORAGE LIST; * 04300000 +* PLACE ADDRESS OF ALLOCATED BLOCK IN XAXADDR; UNLOCK* 04310000 +* FSB SEMAPHORE; RETURN. IF CAN'T SATISFY REQUEST, * 04320000 +* UNLOCK FSB SEMAPHORE, APPLY XP ROUTINE TO MEMORY * 04330000 +* SEMAPHORE, BLOCKING PROCESS RUNNING UNTIL MEMORY * 04340000 +* FREED; THEN UNBLOCK; TRY TO SATISFY REQUEST AGAIN. * 04350000 +* ERROR CHECKS: NONE * 04360000 +* INTERRUPTS: ON * 04370000 +* USER ACCESS: NO * 04380000 +* * 04390000 +*********************************************************************** 04400000 + SPACE 1 04410000 +XA EQU * . THE XA ROUTINE, TO ALLOCATE 04420000 + USING *,1 04430000 + LA 0,1 . SET REGISTER ZERO TO ONE TO 04440000 + B XACOM . INDICATE C'A' CALL 04450000 +XAUTO EQU * . AUTO STORAGE ENTRY POINT 04460000 + USING *,1 04470000 + SR 0,0 . REG0=0 INDICATES C'E' CALL 04480000 + L 1,=A(XA) . RESET BASE REGISTER PROPERLY 04490000 + USING XA,1 04500000 +XACOM SVC C'!' . ENTER SMC 04510000 + LR 7,2 04520000 + USING XAX,7 . ARGUMENT LIST 04530000 + L 6,XAXSIZE . GET THE SIZE REQUESTED 04540000 +XATOP LA 2,FSBSEM . LOCK THE FSB SEMAPHORE 04550000 + SVC C'P' . 04560000 + LA 5,FSBPTR . START LOOKING DOWN 04570000 + L 4,FSBPTR . THE FREE STORAGE LIST 04580000 + L 8,XAXALGN . WE WOULD HAVE TO START AT WITH 04590000 + BCTR 8,0 . THIS CONSTANT TO FIND ALIGNMENT 04600000 + USING FSB,4 04610000 +XALOOP LTR 4,4 . IF AT THE END 04620000 + BZ XAWAIT . WAIT UNTIL A "FREE" OP 04630000 + LR 13,4 . FIND THE LOCATION 04640000 + BCTR 13,0 . IN THIS BLOCK WITH THIS 04650000 + OR 13,8 . ALIGNMENT 04660000 + LA 13,1(13) . THAT'S IT 04670000 + LR 9,13 . AND NOW GET IN REG 9 04680000 + SR 9,4 . WHAT IS WASTED AT THE FRONT 04690000 + L 3,FSBSIZE . GET SIZE MINUS WASTE AT 04700000 + SR 3,9 . FRONT, LEAVING EFFECTIVE SIZE 04710000 + CR 6,3 . IS IT ENOUGH? 04720000 + BNP XAFOUND . EUREKA! 04730000 + LA 5,FSBNEXT . OH WELL, GET THE NEXT FREE 04740000 + L 4,FSBNEXT . STORAGE BLOCK ON THE CHAIN 04750000 + B XALOOP . BETTER LUCK NEXT TIME 04760000 +XAWAIT SVC C'V' . NEED TO WAIT 04770000 + LA 2,MEMORY . SO WE LET OTHER PEOPLE GET IN 04780000 + SVC C'P' . SO THEY'LL WAKE US UP 04790000 + B XATOP . AND THEN WE'LL TRY AGAIN 04800000 +XAFOUND ST 13,XAXADDR . WE'VE NOW GOT THE ADDRESS 04810000 + MVC 0(4,5),FSBNEXT . UNLINK THE BLOCK OUT 04820000 + L 12,FSBSIZE . GET THE WHOLE BLOCK SIZE 04830000 + LA 2,SATEMP . START MAKING UP ARG LISTS 04840000 + USING XBX,2 . FOR THE XB ROUTINE 04850000 + LR 10,13 . THE STARTING LOCATION 04860000 + SR 10,4 . MINUS THE START OF THE BLOCK 04870000 + BZ XANF . IF NONE WASTED AT THE FRONT, SKIP 04880000 + ST 4,XBXADDR . ELSE FREE, STARTING THERE 04890000 + ST 10,XBXSIZE . UP TO THE BEGINNING OF THE 04900000 + SVC C'B' . ALLOCATION; INSERT IT IN THE CHAIN 04910000 +XANF LR 11,13 . THE STARTING ADDR PLUS THE SIZE 04920000 + AR 11,6 . GIVES THE FIRST UNUSED ADDR 04930000 + SR 12,10 . MINUS THE WASTE AT FRONT, 04940000 + SR 12,6 . MINUS THE PART ALLOCATED. IF 04950000 + BZ XARETURN . NONE LEFT OVER, GOOD 04960000 + ST 11,XBXADDR . ELSE STORE ADDRESS AND 04970000 + ST 12,XBXSIZE . SIZE, AND LINK ONTO 04980000 + SVC C'B' . FREE STORAGE LIST 04990000 + DROP 2 05000000 +XARETURN LA 2,FSBSEM . WE ARE DONE, SO NOW SOMEONE 05010000 + SVC C'V' . ELSE CAN COME IN 05020000 + LTR 0,0 . IS THIS FOR AUTOMATIC STORAGE? 05030000 + BNZ XABACK . IF NOT, RETURN NOW 05040000 + ST 6,PCBASIZE . OTHERWISE STORE SIZE AND 05050000 + ST 13,PCBAADDR . ADDRESS OF AUTOMATIC STORAGE 05060000 +XABACK SVC C',' . LEAVE SMC SECTION 05070000 + LPSW RETURN . GET BACK JOJO 05080000 + DROP 4,7 05090000 + EJECT 05100000 +*********************************************************************** 05110000 +* * 05120000 +* XF ROUTINE * 05130000 +* * 05140000 +* FUNCTION: TO FREE MEMORY * 05150000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XFX: * 05160000 +* XFX DS 0D * 05170000 +* XFXSIZE DS F SIZE OF BLOCK TO BE FREED * 05180000 +* XFXADDR DS A ADDRESS OF FIRST BYTE OF BLOCK* 05190000 +* ROUTINES USED: XEXC, XP, XV, XB, XCOM * 05200000 +* PROCEDURE: LOCK FSB SEMAPHORE; SEARCH FREE STORAGE LIST TO * 05210000 +* FIND IF ANY FREE BLOCK CONTIGUOUSLY FOLLOWS OR * 05220000 +* PRECEDES BLOCK TO BE FREED; IF THERE IS ANY, * 05230000 +* COMPACT THEM INTO A SINGLE BLOCK OF COMBINED SIZE; * 05240000 +* USE XB TO CHAIN COMPACTED BLOCK ONTO FREE STORAGE * 05250000 +* LIST; WAKEUP ALL PROCESSES WAITING ON MEMORY * 05260000 +* SEMAPHORE; UNLOCK FSB SEMAPHORE; RETURN * 05270000 +* ERROR CHECKS: NONE * 05280000 +* INTERRUPTS: ON * 05290000 +* USER ACCESS: NO * 05300000 +* * 05310000 +*********************************************************************** 05320000 + SPACE 1 05330000 +XF EQU * . THE XF ROUTINE, TO FREE STORAGE 05340000 + USING *,1 05350000 + SVC C'!' . ENTER SMC SECTION 05360000 + LR 7,2 05370000 + USING XFX,7 . THE ARGUMENT LIST 05380000 + L 3,XFXSIZE . GET THE SIZE 05390000 + L 4,XFXADDR . AND THE ADDRESS 05400000 + LR 5,3 . GET THE ADDRESS OF THE END OF THE 05410000 + AR 5,4 . BLOCK TO BE FREED 05420000 + LA 2,FSBSEM . LOCK FSBSEM 05430000 + SVC C'P' 05440000 + LA 8,FSBPTR . START LOOKING DOWN THE FREE 05450000 + L 6,FSBPTR . STORAGE LIST, FOR COMPACTION 05460000 + USING FSB,6 05470000 +XFLOOP LTR 6,6 . ARE WE THROUGH? 05480000 + BZ XFLINK . IF SO, JUST ADD IT ON 05490000 + L 9,FSBNEXT . IF NOT. GET THE NEXT PTR 05500000 + CR 6,5 . IS THIS BLOCK RIGHT AFTER OURS? 05510000 + BNE XFTHEN . IF NOT, OK. BUT IF IT IS, 05520000 + ST 9,0(8) . WE CAN COMPACT, SO UNCHAIN IT 05530000 + A 3,FSBSIZE . AND REMEMBER THE NEW SIZE 05540000 + B XFBACKUP . AND ON TO THE NEXT 05550000 +XFTHEN LR 10,6 . MAYBE IT'S RIGHT BEFORE OURS 05560000 + A 10,FSBSIZE . GET ENDING ADDRESS OF FREE BLOCK 05570000 + CR 10,4 . IS IT RIGHT BEFORE OURS? 05580000 + BNE XFINC . OH FUDGE! NO! 05590000 + ST 9,0(8) . IF SO, UNLINK IT 05600000 + LR 4,6 . GET THE NEW BEGINNING LOCATION 05610000 + A 3,FSBSIZE . AND NEW SIZE OF FREE BLOCK 05620000 +XFBACKUP LR 6,8 . BACK UP ONE FSB 05630000 +XFINC LA 8,FSBNEXT . ON TO THE NEXT FSB 05640000 + L 6,FSBNEXT 05650000 + B XFLOOP . TRY, TRY AGAIN 05660000 +XFLINK LA 2,SATEMP . START TO CALL XB 05670000 + USING XBX,2 05680000 + ST 3,XBXSIZE . STORE SIZE 05690000 + ST 4,XBXADDR . AND ADDRESS 05700000 + SVC C'B' . LINK IT ONTO THE FSB CHAIN 05710000 + USING SM,2 05720000 + LA 2,MEMORY . GET VALUE OF MEMORY SEMAPHORE 05730000 + LA 11,1(0,0) . SUBTRACT FROM ONE, IT'S A HANDLE 05740000 + S 11,SMVAL . ON THE # OF PEOPLE WAITING 05750000 + DROP 2 05760000 +XFVLOOP BCT 11,XFVDO . LOOP IF ANYONE ELSE IS WAITING 05770000 + LA 2,FSBSEM . WE'RE THROUGH, SO 05780000 + SVC C'V' . UNBLOCK FSBSEM 05790000 + SVC C',' . LEAVE SMC 05800000 + LPSW RETURN . RETURN 05810000 +XFVDO SVC C'V' . WAKE SOMEONE UP 05820000 + B XFVLOOP . TRY AGAIN FOR ANOTHER 05830000 + DROP 6,7 05840000 + EJECT 05850000 +*********************************************************************** 05860000 +* * 05870000 +* XB ROUTINE * 05880000 +* * 05890000 +* FUNCTION: TO CHAIN A STORAGE BLOCK ONTO FREE STORAGE LIST * 05900000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XBX: * 05910000 +* XBX DS 0D * 05920000 +* XBXSIZE DS F SIZE OF BLOCK * 05930000 +* XBXADDR DS A ADDRESS OF FIRST BYTE OF BLOCK* 05940000 +* ROUTINES USED: NONE * 05950000 +* PROCEDURE: SEARCH FREE STORAGE LIST TO FIND WHERE TO INSERT * 05960000 +* FREE BLOCK IN ORDER OF INCREASING SIZE; FORMAT * 05970000 +* BLOCK LIKE AN FSB; INSERT; RETURN. * 05980000 +* ERROR CHECKS: NONE * 05990000 +* INTERRUPTS: OFF * 06000000 +* USER ACCESS: NO * 06010000 +* COMMENTS: SINCE XB ROUTINE ONLY CALLED BY XA AND XF, FSB * 06020000 +* SEMAPHORE IS ALREADY LOCKED. * 06030000 +* * 06040000 +*********************************************************************** 06050000 + SPACE 1 06060000 +XB EQU * 06070000 + USING *,1 06080000 + USING XBX,2 . ARGUMENT LIST 06090000 + L 3,XBXSIZE . GET THE SIZE 06100000 + L 4,XBXADDR . AND THE ADDRESS 06110000 + LA 8,FSBPTR . START LOOKING DOWN THE CHAIN 06120000 + L 6,FSBPTR 06130000 + LTR 6,6 . IF ZERO POINTER, WE ARE AT 06140000 + BZ XBINSERT . END OF CHAIN ALREADY 06150000 + USING FSB,6 06160000 +XBLOOP C 3,FSBSIZE . IF THE SIZE OF OURS IS LESS, 06170000 + BNP XBINSERT . TIME TO INSERT 06180000 + LA 8,FSBNEXT . ELSE GO ON TO THE NEXT 06190000 + L 6,FSBNEXT 06200000 + LTR 6,6 . IF NOT ALREADY THROUGH 06210000 + BNZ XBLOOP . BRANCH BACK 06220000 +XBINSERT ST 4,0(8) . NOW, LINK OURS ON 06230000 + DROP 6 06240000 + USING FSB,4 06250000 + ST 6,FSBNEXT . MAKE OURS POINT TO THE NEXT 06260000 + ST 3,FSBSIZE . WITH THE RIGHT SIZE 06270000 + LPSW RETURN . AND RETURN 06280000 + DROP 2,4 06290000 + EJECT 06300000 +*********************************************************************** 06310000 +* * 06320000 +* XC ROUTINE * 06330000 +* * 06340000 +* FUNCTION: TO CREATE A PROCESS * 06350000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XCX: * 06360000 +* XCX DS 0D * 06370000 +* XCXNAME DS CL8 NAME OF PROCESS TO BE CREATED * 06380000 +* ROUTINES USED: XEXC, XCOM, XN, XA, XI, XQUE * 06390000 +* PROCEDURE: USE XA TO ALLOCATE NEW PCB; PLACE XCXNAME IN PCB; * 06400000 +* INITIALIZE SEMAPHORES; STOP; BLOCK; OUT OF SMC; * 06410000 +* CALL XI TO LINK PCB ONTO PCB CHAINS; RETURN. * 06420000 +* ERROR CHECKS: IF NAME ALREADY USED IN THIS GROUP, XQUE ENTERED. * 06430000 +* INTERRUPTS: ON * 06440000 +* USER ACCESS: YES * 06450000 +* * 06460000 +*********************************************************************** 06470000 + SPACE 1 06480000 +XC EQU * . THE XC ROUTINE: CREATE A PROCESS 06490000 + USING *,1 06500000 + LR 7,2 06510000 + USING XCX,7 . ARGUMENT LIST 06520000 + LA 2,SATEMP . READY TO MAKE CALLS OUT 06530000 + USING XNX,2 . A XN-LIKE ARGUMENT LIST 06540000 + MVC XNXNAME,XCXNAME . GET THE NAME 06550000 + SVC C'N' . AND CALL TO FIND THE PCB 06560000 + CLC XNXADDR,=A(0) . SEE IF THERE 06570000 + BNE XCERR . IF ALREADY EXISTS, BAD 06580000 + SVC C'!' . ENTER SMC SECTION 06590000 + DROP 2 06600000 + USING XAX,2 . READY TO CALL XA 06610000 + MVC XAXSIZE,=A(LENPCB) . WE KNOW THE SIZE 06620000 + MVC XAXALGN,=F'8' . AND THE ALIGNMENT 06630000 + SVC C'A' . SO CALL 06640000 + L 2,XAXADDR . FIND THE ADDRESS 06650000 + DROP 2,15 06660000 + USING PCB,2 . FILL IN THE PCB 06670000 + MVC PCBNAME,XCXNAME . GIVE IT A NAME 06680000 + MVI PCBSTOPT,X'FF' . IT'S STOPPED 06690000 + MVC PCBBLOKT(PCBISA-PCBBLOKT),TEMPLATE+1 INITIALIZE PCB 06700000 + SVC C'I' . THREAD IT ON 06710000 + SVC C',' . LEAVE SMC SECTION 06720000 + LPSW RETURN . AND RETURN 06730000 +XCERR SVC C'?' . IF ALREADY EXISTS,KERROR 06740000 + DROP 2,7 06750000 + EJECT 06760000 +*********************************************************************** 06770000 +* * 06780000 +* XD ROUTINE * 06790000 +* * 06800000 +* FUNCTION: TO DESTROY A PROCESS * 06810000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XDX: * 06820000 +* XDX DS 0D * 06830000 +* XDXNAME DS CL8 NAME OF PROCESS TO BE DESTROYED* 06840000 +* ROUTINES USED: XEXC, XJ, XS, XN, XF, XCOM, XQUE * 06850000 +* PROCEDURE: USE XN TO FIND PCB FOR PROCESS TO BE DESTROYED; * 06860000 +* USE XJ TO UNLOCK PCB FROM PROCESS CHAINS; IF ANY * 06870000 +* MESSAGES FOR THIS PROCESS, FREE STORAGE FOR THEM; * 06880000 +* IF THERE IS ANY AUTOMATIC STORAGE, FREE IT; * 06890000 +* FREE STORAGE FOR PCB; RETURN. * 06900000 +* ERROR CHECKS: IF NAME DOESN'T EXIST OR PROCESS NOT STOPPED, * 06910000 +* XQUE ENTERED. * 06920000 +* INTERRUPTS: ON * 06930000 +* USER ACCESS: YES * 06940000 +* * 06950000 +*********************************************************************** 06960000 + SPACE 1 06970000 +XD EQU * . XD ROUTINE: DESTROY A PROCESS 06980000 + USING *,1 06990000 + LR 7,2 07000000 + USING XDX,7 . ARG LIST 07010000 + LA 2,SATEMP . READY TO CALL OUT 07020000 + USING XNX,2 . WILL CALL XN 07030000 + MVC XNXNAME,XDXNAME . GET NAME 07040000 + SVC C'N' . AND CALL 07050000 + L 2,XNXADDR . GET ADDRESS 07060000 + DROP 2 07070000 + LTR 2,2 . IF ADDRESS IS NULL, 07080000 + BZ XDERR . IT'S AN ERROR 07090000 + USING PCB,2 07100000 + CLI PCBSTOPT,X'FF' . IF NOT STOPPED 07110000 + BNE XDERR . IT'S AN ERROR 07120000 + SVC C'!' . ENTER SMC SECTION 07130000 + DROP 2 07140000 + USING PCB,15 07150000 + SVC C'J' . ELSE UNTHREAD THE ENTRY 07160000 + LR 8,2 . REMEMBER THE PCB POINTER 07170000 + LA 2,SATEMP . READY TO CALL OUT AGAIN 07180000 + USING PCB,8 07190000 + DROP 15 07200000 + L 9,PCBFM . GET FIRST MESSAGE 07210000 +XDLOOP LTR 9,9 . ANY MORE MESSAGES? 07220000 + BZ XDCHECK . IF NOT, FINISH UP 07230000 + USING MSG,9 07240000 + L 10,MSGNEXT . ELSE REMEMBER NEXT 07250000 + L 11,MSGSIZE . GET THE SIZE 07260000 + LA 11,15(11) . AND MAKE IT SOME NUMBER 07270000 + N 11,=F'-8' . OF DOUBLEWORDS 07280000 + USING XFX,2 07290000 + ST 9,XFXADDR . FREE THE LOCATION 07300000 + ST 11,XFXSIZE . THE NUMBER OF WORDS 07310000 + SVC C'F' . DO IT 07320000 + LR 9,10 . ON TO THE NEXT 07330000 + B XDLOOP . GET THE NEXT MESSAGE 07340000 +XDCHECK CLC PCBAADDR(4),=A(0) . HAS AUTOMATIC STORAGE BEEN 07350000 + BE XDTHEN . ALLOCATED? IF NOT, GO FINISH UP 07360000 + LA 2,PCBASIZE . SET UP THE ARGUMENT LIST 07370000 + SVC C'F' . FREE IT 07380000 + LA 2,SATEMP . RESET REGISTER 2 07390000 +XDTHEN ST 8,XFXADDR . READY TO FREE THE PCB 07400000 + MVC XFXSIZE,=A(LENPCB) . THE SIZE 07410000 + SVC C'F' . FREE IT 07420000 + SVC C',' . LEAVE SMC 07430000 + LPSW RETURN . AND RETURN 07440000 +XDERR SVC C'?' . IF PROCESS DOES NOT EXIST 07450000 + DROP 2,7,8,9 07460000 + USING PCB,15 07470000 + SPACE 3 07480000 +*********************************************************************** 07490000 +* * 07500000 +* XH ROUTINE * 07510000 +* * 07520000 +* FUNCTION: TO HALT A JOB * 07530000 +* DATABASES: NONE * 07540000 +* ROUTINES USED: XS, XR * 07550000 +* PROCEDURE: SEND MESSAGE TO SUPERVISOR PROCESS FOR THIS JOB * 07560000 +* INDICATING NORMAL TERMINATION; TRIES TO READ * 07570000 +* MESSAGES FOREVER LOOPING; BLOCKS ITSELF, THEREBY * 07580000 +* NEVER RETURNING. * 07590000 +* ERROR CHECKS: NONE * 07600000 +* INTERRUPTS: ON * 07610000 +* USER ACCESS: YES * 07620000 +* COMMENTS: USER NORMALLY USES THIS ROUTINE TO END A JOB. * 07630000 +* * 07640000 +*********************************************************************** 07650000 + SPACE 1 07660000 +XH EQU * . THE XH ROUTINE: HALT A JOB 07670000 + USING *,1 07680000 + LA 2,XHMSG1 . SEND A MESSAGE TO *IBSUP 07690000 + SVC C'S' . SEND IT 07700000 +XHLOOP LA 2,XHMSG2 . READY TO READ A REPLY 07710000 + SVC C'R' . WHICH NEVER COMES 07720000 + B XHLOOP . BUT IF IT DOES WERE READY 07730000 + DS 0F 07740000 +XHMSG1 DC CL8'*IBSUP' . SAY TO *IBSUP 07750000 + DC F'12' . TWELVE CHARACTERS 07760000 + DC C'PROGRAM HALT' . SAYING WERE OK 07770000 +XHMSG2 DS CL8 . WHO SENDS US A MESSAGE 07780000 + DC F'1' . ONE CHARACTER 07790000 + DS CL1,0H . WHICH GOES HERE 07800000 + EJECT 07810000 +*********************************************************************** 07820000 +* * 07830000 +* XI ROUTINE * 07840000 +* * 07850000 +* FUNCTION: TO CHAIN A PCB ONTO PROCESS CHAINS * 07860000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS OF A PCB * 07870000 +* ROUTINES USED: NONE * 07880000 +* PROCEDURE: POINTER USED TO CHAIN PCB INTO ALL PCB CHAIN AND * 07890000 +* THIS GROUP CHAIN RIGHT AFTER RUNNING PCB; RETURN. * 07900000 +* ERROR CHECKS: NONE * 07910000 +* INTERRUPTS: OFF * 07920000 +* USER ACCESS: NO * 07930000 +* * 07940000 +*********************************************************************** 07950000 + SPACE 1 07960000 +XI EQU * . THE XI ROUTINE: THREAD IN A PCB 07970000 + USING *,1 07980000 + L 10,PCBNPALL . GET THE NEXT 'ALL' PCB 07990000 + ST 2,PCBNPALL . STORE THIS PCB RIGNT AFTER MINE 08000000 + DROP 15 08010000 + USING PCB,10 08020000 + ST 2,PCBLPALL . THE NEXT ONE DOWN POINTS BACK 08030000 + DROP 10 08040000 + USING PCB,2 08050000 + ST 15,PCBLPALL . THIS PCB POINTS BACK 08060000 + ST 10,PCBNPALL . AND FORWARD 08070000 + DROP 2 08080000 + USING PCB,15 08090000 + L 10,PCBNPTG . GET NEXT "THIS GROUP" PCB 08100000 + ST 2,PCBNPTG . RUNNING PCB POINTS TO NEW MEMBER 08110000 + DROP 15 . OF PROCESS GROUP 08120000 + USING PCB,10 08130000 + ST 2,PCBLPTG . NEXT PCB DOWN POINTS BACK 08140000 + DROP 10 08150000 + USING PCB,2 08160000 + ST 15,PCBLPTG . AND WE POINT BACKWARD 08170000 + ST 10,PCBNPTG . AND FORWARD 08180000 + DROP 2 08190000 + LPSW RETURN . RETURN 08200000 + USING PCB,15 08210000 + EJECT 08220000 +*********************************************************************** 08230000 +* * 08240000 +* XJ ROUTINE * 08250000 +* * 08260000 +* FUNCTION: TO UNCHAIN A PCB FROM PROCESS CHAINS * 08270000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS OF A PCB * 08280000 +* ROUTINES USED: NONE * 08290000 +* PROCEDURE: POINTERS TO PCB IN ALL PCB CHAIN AND THIS GROUP * 08300000 +* CHAIN MODIFIED WITHOUT FREEING STORAGE; RETURN. * 08310000 +* ERROR CHECKS: NONE * 08320000 +* INTERRUPTS: OFF * 08330000 +* USER ACCESS: NO * 08340000 +* * 08350000 +*********************************************************************** 08360000 + SPACE 1 08370000 +XJ EQU * . THE XJ ROUTINE: UNTHREAD A PCB 08380000 + USING *,1 08390000 + DROP 15 08400000 + USING PCB,2 08410000 + L 11,PCBLPALL . GET PRECEDING PCB 08420000 + L 10,PCBNPALL . AND FOLLOWING ONE IN "ALL" 08430000 + DROP 2 . CHAIN 08440000 + USING PCB,11 08450000 + ST 10,PCBNPALL . LAST POINTS TO NEXT 08460000 + DROP 11 08470000 + USING PCB,10 08480000 + ST 11,PCBLPALL . NEXT POINTS TO LAST 08490000 + DROP 10 08500000 + USING PCB,2 08510000 + L 11,PCBLPTG . REDO FOR THIS GROUP PCB CHAIN 08520000 + L 10,PCBNPTG 08530000 + DROP 2 08540000 + USING PCB,11 08550000 + ST 10,PCBNPTG . LAST POINTS TO NEXT 08560000 + DROP 11 08570000 + USING PCB,10 08580000 + ST 11,PCBLPTG . NEXT POINTS TO LAST 08590000 + DROP 10 08600000 + LPSW RETURN . AND RETURN 08610000 + USING PCB,15 08620000 + EJECT 08630000 +*********************************************************************** 08640000 +* * 08650000 +* XN ROUTINE * 08660000 +* * 08670000 +* FUNCTION: TO FIND THE PCB FOR A PROCESS GIVEN ITS NAME ONLY * 08680000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XNX * 08690000 +* XNX DS 0D * 08700000 +* XNXNAME DS CL8 NAME OF PROCESS * 08710000 +* XNXADDR DS A ADDRESS OF PCB * 08720000 +* ROUTINES USED: NONE * 08730000 +* PROCEDURE: SEARCH THIS GROUP PCB CHAIN FOR NAME; IF FOUND, * 08740000 +* STORE POINTER IN XNXADDR. IF NOT FOUND, STORE * 08750000 +* ZERO IN XNXADDR; RETURN. * 08760000 +* ERROR CHECKS: NONE * 08770000 +* INTERRUPTS: OFF * 08780000 +* USER ACCESS: YES * 08790000 +* * 08800000 +*********************************************************************** 08810000 + SPACE 1 08820000 +XN EQU * . THE XN ROUTINE: FIND A NAMED PCB 08830000 + USING *,1 08840000 + USING XNX,2 . THE ARG LIST 08850000 + LR 10,15 . FIRST PCB TO LOOK AT IS OURS 08860000 + DROP 15 08870000 + USING PCB,10 08880000 +XNXLOOP L 10,PCBNPTG . LOOK AT NEXT PCB 08890000 + CLC PCBNAME,XNXNAME . HAS IT THE RIGHT NAME? 08900000 + BE XNXFOUND . IF YES, OH JOY. 08910000 + CR 10,15 . IF NOT, ARE WE THROUGH? 08920000 + BNE XNXLOOP . IF NOT, TRY THE NEXT PCB 08930000 + LA 10,0 . ELSE, IT'S NOT HERE 08940000 +XNXFOUND ST 10,XNXADDR . FOUND IT. SAY WHERE. 08950000 + LPSW RETURN . AND RETURN 08960000 + DROP 2,10 08970000 + USING PCB,15 08980000 + EJECT 08990000 +*********************************************************************** 09000000 +* * 09010000 +* XR ROUTINE * 09020000 +* * 09030000 +* FUNCTION: TO READ A MESSAGE * 09040000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XRX * 09050000 +* XRX DS 0D * 09060000 +* XRXNAME DS CL8 NAME OF SENDER PROCESS * 09070000 +* XRXSIZE DS F SIZE OF MESSAGE TEXT * 09080000 +* XRXTEXT DS C TEXT OF MESSAGE * 09090000 +* ROUTINES USED: XP, XEXC, XN, XCOM, XF * 09100000 +* PROCEDURE: USE XP ON MESSAGE SEMAPHORE RECEIVER TO SEE IF ANY * 09110000 +* MESSAGES WAITING; IF NONE, PROCESS BLOCKED UNTIL * 09120000 +* THERE IS ONE; LOCK MESSAGE CHAIN; REMOVE A MESSAGE * 09130000 +* FROM CHAIN AND UNLOCK IT; MOVE TEXT OF MESSAGE, * 09140000 +* PADDING WITH BLANKS OR TRUNCATING AS NECESSARY; * 09150000 +* INDICATE CORRECT MESSAGE LENGTH AND NAME OF * 09160000 +* MESSAGE SENDER; FREE STORAGE USED TO HOLD MESSAGE, * 09170000 +* AND RETURN. * 09180000 +* ERROR CHECKS: NONE * 09190000 +* INTERRUPTS: ON * 09200000 +* USER ACCESS: YES * 09210000 +* * 09220000 +*********************************************************************** 09230000 + SPACE 1 09240000 +XR EQU * . THE XR ROUTINE: READ A MESSAGE 09250000 + USING *,1 09260000 + LR 7,2 09270000 + USING XRX,7 . ARG LIST 09280000 + LA 2,PCBMSR . SEE IF MESSAGES WAITING 09290000 + SVC C'P' 09300000 + SVC C'!' . ENTER SMC SECTION 09310000 + LA 2,PCBMSC . THEN LOCK THE MESSAGE CHAIN 09320000 + SVC C'P' 09330000 + L 5,PCBFM . GET THE FIRST MESSAGE 09340000 + USING MSG,5 09350000 + MVC PCBFM,MSGNEXT . REMEMBER THE NEXT 09360000 + SVC C'V' . UNLOCK THE MESSAGE CHAIN 09370000 + L 6,XRXSIZE . GET THE BUFFER CAPACITY 09380000 + S 6,=F'2' . MINUS 1, MINUS 1 09390000 + MVI XRXTEXT,C' ' . MOVE IN A BLANK 09400000 + BM XRNOB 09410000 + EX 6,XRFILL . THEN FILL THE REST WITH BLANKS 09420000 +XRNOB LA 6,1(6) . THEN GET PROPER BUFFER COUNT 09430000 + C 6,MSGSIZE . COMPARE WITH MESSAGE LENGTH 09440000 + BL XRTHEN . IF LESS, HANDLE ACCORDINGLY 09450000 + L 6,MSGSIZE . ELSE COUNT FOR MVC IS MESSAGE 09460000 + BCTR 6,0 . SIZE MINUS ONE 09470000 +XRTHEN LTR 6,6 . ANY CHARACTERS TO MOVE? 09480000 + BM XRAFT . IF NOT, DON'T 09490000 + EX 6,XRMOVE . ELSE MOVE THEM 09500000 +XRAFT LA 6,1(6) . THEN GET LENGTH 09510000 + ST 6,XRXSIZE . STORE IT 09520000 + L 10,MSGSENDR . GET SENDER'S PCB 09530000 + DROP 15 09540000 + USING PCB,10 09550000 + MVC XRXNAME,PCBNAME . AND STORE SENDER'S NAME 09560000 + L 6,MSGSIZE . GET SIZE OF MESSAGE TEXT 09570000 + LA 6,LENMSG(6) . ADD SIZE OF MESSAGE BLOCK 09580000 + LA 6,7(6) . AND TRUNCATE 09590000 + N 6,=F'-8' . UP 09600000 + LR 2,5 . SET UP POINTER TO XFX 09610000 + USING XFX,2 09620000 + ST 5,XFXADDR . STORE ADDRESS 09630000 + ST 6,XFXSIZE . STORE SIZE 09640000 + SVC C'F' . AND FREE THE MESSAGE BLOCK 09650000 + SVC C',' . LEAVE SMC 09660000 + LPSW RETURN . AND RETURN 09670000 +XRFILL MVC XRXTEXT+1,XRXTEXT . FILL WITH BLANKS 09680000 +XRMOVE MVC XRXTEXT,MSGTEXT . MOVE TEXT 09690000 + DROP 2,5,7,10 09700000 + USING PCB,15 09710000 + SPACE 3 09720000 +*********************************************************************** 09730000 +* * 09740000 +* XS ROUTINE * 09750000 +* * 09760000 +* FUNCTION: TO SEND A MESSAGE * 09770000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XSX * 09780000 +* XSX DS 0D * 09790000 +* XSXNAME DS CL8 NAME OF TARGET PROCESS * 09800000 +* XSXSIZE DS F SIZE OF TEXT * 09810000 +* XSXTEXT DS C TEXT OF MESSAGE * 09820000 +* ROUTINES USED: XP, XV, XEXC, XCOM, XA, XQUE * 09830000 +* PROCEDURE: USE XN TO GET POINTER TO PCB OF TARGET PROCESS; * 09840000 +* USE LENGTH OF MESSAGE AND XA TO ALLOCATE BLOCK FOR * 09850000 +* MESSAGE; LOCK MESSAGE CHAIN OF TARGET PROCESS; * 09860000 +* PUT MESSAGE BLOCK AT END OF CHAIN; STORE SENDER * 09870000 +* NAME, SIZE, AND TEXT OF MESSAGE; UNLOCK CHAIN; * 09880000 +* INDICATE MESSAGE CHAIN IS ONE LONGER; RETURN. * 09890000 +* ERROR CHECKS: IF NO PROCESS BY GIVEN NAME, ENTER XQUE. * 09900000 +* INTERRUPTS: ON * 09910000 +* USER ACCESS: YES * 09920000 +* * 09930000 +*********************************************************************** 09940000 + SPACE 1 09950000 +XS EQU * . THE XS ROUTINE: SEND MESSAGES 09960000 + USING *,1 09970000 + LR 7,2 09980000 + USING XSX,7 . ARG LIST 09990000 + LA 2,SATEMP . READY TO CALL OUT 10000000 + USING XNX,2 . ABOUT TO CALL XN 10010000 + MVC XNXNAME,XSXNAME . GIVE NAME OF TARGET PROCESS 10020000 + SVC C'N' . SEE WHERE IT IS 10030000 + L 4,XNXADDR . GET THE POINTER 10040000 + LTR 4,4 . IS THERE INDEED ONE? 10050000 + BZ XSERR . IF NOT, ERROR 10060000 + USING PCB,4 10070000 + DROP 2,15 10080000 + USING XAX,2 . READY TO CALL XA 10090000 + SVC C'!' . ENTERING SMC SECTION 10100000 + L 3,XSXSIZE . GET THE STATED SIZE 10110000 + LA 3,LENMSG(3) . PLUS THE AMOUNT OF OVERHEAD 10120000 + LA 3,7(3) . AND TRUNCATE 10130000 + N 3,=F'-8' . UP 10140000 + ST 3,XAXSIZE . THAT'S THE SIZE OF THE REGION TO 10150000 + MVC XAXALGN,=F'8' . ALLOCATE, ON A DOUBLEWORD BOUND 10160000 + SVC C'A' . SO ALLOCATE ALREADY 10170000 + L 5,XAXADDR . GET THE ADDRESS 10180000 + DROP 2 10190000 + LA 2,PCBMSC . GET THE MESSAGE CHAIN SEMAPHORE 10200000 + SVC C'P' . AND LOCK IT 10210000 + LA 8,PCBFM . THEN START DOWN THE MESSAGE 10220000 + L 9,PCBFM . CHAIN 10230000 + USING MSG,9 10240000 +XSLOOP LTR 9,9 . ARE WE THROUGH? 10250000 + BZ XSADD . IF SO ADD IT ON 10260000 + LA 8,MSGNEXT . IF NOT, ON TO THE NEXT 10270000 + L 9,MSGNEXT 10280000 + B XSLOOP . AND TRY AGAIN 10290000 +XSADD ST 5,0(8) . CHAIN OURS ON THE END 10300000 + DROP 9 10310000 + USING MSG,5 10320000 + MVC MSGNEXT,=A(0) . SET NEXT POINTER NULL 10330000 + ST 15,MSGSENDR . STORE THE SENDER 10340000 + L 6,XSXSIZE . GET THE TEXT LENGTH 10350000 + ST 6,MSGSIZE . AND STORE IT 10360000 + BCTR 6,0 . ONE LESS 10370000 + LTR 6,6 . TEST LENGTH 10380000 + BM XSAFT . IF ZERO, NOTHING TO MOVE 10390000 + EX 6,XSMOVE . ELSE, MOVE IT 10400000 +XSAFT SVC C'V' . UNLOCK THE MESSAGE CHAIN 10410000 + LA 2,PCBMSR . THEN SAY THERE'S 10420000 + SVC C'V' . ONE MORE MESSAGE 10430000 + SVC C',' . LEAVE SMC SECTION 10440000 + LPSW RETURN . AND RETURN 10450000 +XSERR SVC C'?' 10460000 +XSMOVE MVC MSGTEXT,XSXTEXT . THE MOVE FOR THE TEXT 10470000 + DROP 4,5,7 10480000 + USING PCB,15 10490000 + EJECT 10500000 +*********************************************************************** 10510000 +* * 10520000 +* XY ROUTINE * 10530000 +* * 10540000 +* FUNCTION: TO START A PROCESS * 10550000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XYX * 10560000 +* XYX DS 0D * 10570000 +* XYXNAME DS CL8 NAME OF PROCESS TO BE STARTED * 10580000 +* XYXADDR DS A STARTING ADDRESS OF PROCESS * 10590000 +* ROUTINES USED: XN, XEXC, XCOM, XQUE * 10600000 +* PROCEDURE: USE XN TO GET POINTER TO THE PCB OF PROCESS TO BE * 10610000 +* STARTED; STORE IN PCB INTERRUPT SAVE AREA REGISTERS* 10620000 +* AND PSW WITH STARTING ADDRESS AS SENT FROM STARTING* 10630000 +* PROCESS; STOPPED BIT TURNED OFF; RETURN. * 10640000 +* ERROR CHECKS: IF NO PROCESS BY GIVEN NAME, XQUE ENTERED. * 10650000 +* INTERRUPTS: OFF * 10660000 +* USER ACCESS: YES * 10670000 +* * 10680000 +*********************************************************************** 10690000 + SPACE 1 10700000 +XY EQU * . THE XY ROUTINE: START A PROCESS 10710000 + USING *,1 10720000 + LR 7,2 10730000 + USING XYX,7 . THE ARG LIST 10740000 + LA 2,SATEMP . READY TO CALL OUT 10750000 + USING XNX,2 10760000 + MVC XNXNAME,XYXNAME . GIVE XN A NAME 10770000 + SVC C'N' . CALL XN 10780000 + L 10,XNXADDR . WHERE IS THE PCB? 10790000 + LTR 10,10 . OR IS THERE ONE? 10800000 + BZ XYERR . IF NOT, OH HISS BOO 10810000 + DROP 2,14,15 10820000 + USING PCB,10 10830000 + LA 13,PCBISA . GET INTO THAT PCB'S ISA 10840000 + USING SA,13 10850000 + MVC SAPSW,(SAPSW-SA)(14) . GIVE IT THE CALLER'S PSW 10860000 + MVC SAPSW+5(3),XYXADDR+1 . BUT AT THE REQUESTED ADDRESS 10870000 + MVC SAREGS,(SAREGS-SA)(14) .GIVE IT HIS REGISTERS 10880000 + MVI PCBSTOPT,X'00' . IT'S NO LONGER STOPPED 10890000 + LPSW RETURN . AND RETURN 10900000 +XYERR SVC C'?' . WE DONE BAD 10910000 + DROP 7,10,13 10920000 + USING SA,14 10930000 + USING PCB,15 10940000 + EJECT 10950000 +*********************************************************************** 10960000 +* * 10970000 +* XZ ROUTINE * 10980000 +* * 10990000 +* FUNCTION: TO STOP A PROCESS * 11000000 +* DATABASES: UPON ENTRY, REGISTER 2 CONTAINS ADDRESS XZX * 11010000 +* XZX DS 0D * 11020000 +* XZXNAME DS CL8 NAME OF PROCESS TO BE STOPPED * 11030000 +* ROUTINES USED: XN, XEXC, XCOM, XQUE, XP * 11040000 +* PROCEDURE: CHECK THAT USER PROCESS CAN'T STOP SYSTEM * 11050000 +* PROCESS; USE XN TO GET PCB POINTER; IF IN SMC, SET * 11060000 +* STOP WAITING BIT AND BLOCK SELF UNTIL STOP * 11070000 +* PERFORMED; ELSE SET STOPPED BIT, AND RETURN. * 11080000 +* ERROR CHECKS: IF NO PROCESS BY GIVEN NAME OR USER TRIES TO * 11090000 +* STOP A SYSTEM PROCESS, XQUE ENTERED. * 11100000 +* INTERRUPTS: ON * 11110000 +* USER ACCESS: YES * 11120000 +* * 11130000 +*********************************************************************** 11140000 + SPACE 1 11150000 +XZ EQU * . THE XZ ROUTINE: STOP A PROCESS 11160000 + USING *,1 11170000 + LR 7,2 11180000 + USING XZX,7 . ARG LIST 11190000 + CLI PCBNAME,C'*' . IS STOPPER A * PROCESS 11200000 + BE XZFINE . THAT'S OK 11210000 + CLI XZXNAME,C'*' . IF NOT, IS STOPPEE A * ? 11220000 + BE XZERR . CAN'T DO THAT 11230000 +XZFINE LA 2,SATEMP . READY TO CALL OUT 11240000 + USING XNX,2 . WILL CALL XN 11250000 + MVC XNXNAME,XZXNAME . GIVE IT THE NAME 11260000 + SVC C'N' . AND DO THE CALL 11270000 + L 10,XNXADDR . GET THE PCB'S ADDRESS 11280000 + LTR 10,10 . SEE IF NULL 11290000 + BZ XZERR . IF SO, ERROR 11300000 + SVC C'!' . ENTER SMC 11310000 + DROP 2,15 11320000 + USING PCB,10 11330000 +XZSTOP CLI PCBINSMC,X'00' . SEE IF IN SMC 11340000 + BNE XZINSMC . IF SO, BAD 11350000 + MVI PCBSTOPT,X'FF' . ELSE JUST STOP IT 11360000 + SVC C',' . LEAVE SMC 11370000 + LPSW RETURN . AND RETURN 11380000 +XZINSMC MVI PCBSW,X'FF' . IF IN SMC, SAY STOP WAITING 11390000 + LA 2,PCBSRS . AND STOP OURSELVES AGAINST 11400000 + SVC C'P' . A SEMAPHORE 11410000 + B XZSTOP . THEN WE CAN REALLY STOP IT 11420000 +XZERR SVC C'?' . AN ERROR 11430000 + DROP 10,7 11440000 + USING PCB,15 11450000 + EJECT 11460000 +*********************************************************************** 11470000 +* * 11480000 +* XQUE ROUTINE * 11490000 +* * 11500000 +* FUNCTION: TO SIGNAL ERROR CONDITION * 11510000 +* DATABASES: NONE * 11520000 +* ROUTINES USED: XR, XS * 11530000 +* PROCEDURE: SEND MESSAGE TO SUPERVISOR PROCESS FOR THIS JOB * 11540000 +* INDICATING ABNORMAL TERMINATION; TRY TO READ * 11550000 +* MESSAGES, FOREVER LOOPING; BLOCK ITSELF, THEREBY * 11560000 +* NEVER RETURNING. * 11570000 +* ERROR CHECKS: NONE * 11580000 +* INTERRUPTS: OFF * 11590000 +* USER ACCESS: YES * 11600000 +* * 11610000 +*********************************************************************** 11620000 + SPACE 1 11630000 +XQUE EQU * . THE XQUE ROUTINE: ERROR! 11640000 + USING *,1 11650000 + LA 2,XQUEM1 . SEND AN ERROR MESSAGE TO *IBSUP 11660000 + SVC C'S' 11670000 +XQUELOOP LA 2,XQUEM2 . WAIT FOR REPLY 11680000 + SVC C'R' 11690000 + B XQUELOOP . BUT IGNORE IT 11700000 + DS 0F 11710000 +XQUEM1 DC CL8'*IBSUP' 11720000 + DC F'12' 11730000 + DC CL12'PROGRAM FLOP' 11740000 +XQUEM2 DS CL8 11750000 + DC F'1' 11760000 + DS CL1,0H 11770000 + DROP 14,15 11780000 + EJECT 11790000 +*********************************************************************** 11800000 +* * 11810000 +* INPUT/OUTPUT ROUTINES * 11820000 +* * 11830000 +*********************************************************************** 11840000 + SPACE 1 11850000 +*********************************************************************** 11860000 +* * 11870000 +* SYSTEM SUPPLIED DEVICE HANDLER FOR READERS * 11880000 +* * 11890000 +*********************************************************************** 11900000 + SPACE 1 11910000 +RDRHANDL EQU * . THE READER HANDLER 11920000 + USING UCB,3 . STARTED WITH REG3 -> UCB 11930000 + BALR 1,0 11940000 + USING *,1 . ESTABLISH ADDRESSING 11950000 + LA 2,RDRHSEM . LOCK OURSELVES UNTIL WE SET UP 11960000 + SVC C'P' . AN AUTOMATIC STORAGE AREA 11970000 + LA 2,RDRHAAS . READY TO ALLOCATE 11980000 + USING XAX,2 11990000 + SVC C'E' . ALLOCATE 12000000 + L 12,XAXADDR . GET A PTR 12010000 + DROP 2 12020000 + LA 2,RDRHSEM . AND UNBLOCK OURSELVES 12030000 + SVC C'V' 12040000 + SRL 4,16 . SHIFT KEY 12050000 + SR 10,10 . CLEAR REG 10 12060000 + USING RDRHAS,12 . AUTOMATIC AREA 12070000 + MVI JOBBIT,X'00' . INITIALIZE 12080000 + LA 6,RDRHCCB . GET PTR TO CCB 12090000 +RDRHLOOP LA 2,RDRHMSG . TRY TO READ A MESSAGE 12100000 + USING XRX,2 12110000 + MVC XRXSIZE,=F'8' . WE CAN TAKE 8 CHARS 12120000 + SVC C'R' . READ IT 12130000 + CLC =C'READ',XRXTEXT . IF FIRST WORD IS READ, OK 12140000 + BNE RDRHLOOP . ELSE IGNORE 12150000 + L 5,XRXTEXT+4 . GET 2ND WORD OF TEXT 12160000 + DROP 2 12170000 + LA 2,UCBUS . LOCK THE UCB AND IT'S UNIT 12180000 + SVC C'P' 12190000 + LA 2,RDRHMSG . RESET ADDRESSING POINTER 12200000 + USING XRX,2 12210000 + CLI JOBBIT,X'FF' . HAVE WE JUST READ $JOB CARD? 12220000 + BNE RDRHMORE . IF NO, GO CHECK PROTECTION, ELSE 12230000 + CLI XRXNAME,C'*' . IS JSP CALLING US? 12240000 + BNE RDRHNO . IF NOT, TELL HIM NO. 12250000 + MVC 0(80,5),RDRHTEMP . IF IT IS, GIVE JSP THE $JOB CARD 12260000 + MVI JOBBIT,X'00' . SAY WE DON'T HAVE $JOB WAITING 12270000 + B RDRHSOK . AND SEND MESSAGE BACK 12280000 + DROP 2 12290000 +RDRHMORE CLI RDRHMSG,C'*' . IS SYSTEM CALLING? 12300000 + BE RDRHPOK . THEN PROTECTION OK, ELSE 12310000 + LR 11,5 . GET ADDRESS THAT'S TO HOLD CARD, 12320000 + N 11,PROTCON1 . get the page boundary 12330002 +* ISKE 10,11 . find storage key 12334002 + DC X'B22900AB' Assembler (XF) doesn't support ISKE 12338002 + N 10,PROTCON2 . ignore low order bits 12342002 + CR 10,4 . DOES IT MATCH OURS? 12350000 + BNE RDRHNO . IF NOT, TELL HIM NO 12360000 + LA 11,79(5) . CHECK LAST BYTE ADDR OF CARD 12370000 + N 11,PROTCON1 . get the page boundary 12380002 +* ISKE 10,11 . find storage key 12384002 + DC X'B22900AB' Assembler (XF) doesn't support ISKE 12388002 + N 10,PROTCON2 . ignore low order bits 12392002 + CR 10,4 . DOES IT MATCH OURS? 12400000 + BNE RDRHNO . IF NOT, TELL HIM NO 12410000 +RDRHPOK N 5,CCBCON1 . MAKE ADDRESS INTO 12420000 + ST 5,RDRHCCB . A CCW (OR CCB) 12430000 + OI RDRHCCB,X'02' 12440000 + MVC RDRHCCB+4,=F'80' . WE'LL READ EIGHTY CHARACTERS 12450000 + MVC UCBCSW(4),=A(0) . CLEAR THE LAST CSW THERE 12460000 + MVC UCBCSW+4(4),=A(0) 12470000 + LA 2,CAWSEM . LOCK THE CAW 12480000 + SVC C'P' 12490000 + ST 6,CAW . THAT'S THE CAW 12500000 + L 7,UCBADDR . GET THE UNIT ADDRESS 12510000 + SIO 0(7) . START THE I/O 12520000 + BNZ RDSTATUS . BRANCH IF SIO UNSUCCESSFUL 12530000 + SVC C'V' . THEN UNLOCK THE CAW 12540000 +RDRHWAIT LA 2,UCBWS . NOW WAIT FOR AN INTERRUPT 12550000 + SVC C'P' 12560000 + TM UCBCSW+4,X'85' . CHECK THE STATUS 12570003 + BZ RDRHWAIT . IF NOT FINISHED, WAIT 12580000 + TM UCBCSW+4,X'01' . CHECK FOR EXCEPTION 12590000 + BO RDRHEXC . if yes, ignore this interrupt 12600003 + TM UCBCSW+4,X'80' . if no, check for attention 12602003 + BO RDRHPOK . if yes, try to restart the I/O 12604003 + B RDRHOK . else, all is groovy 12606003 +RDRHEXC NI UCBCSW+4,X'FE' . clear exception .. 12608003 + B RDRHWAIT . .. and continue waiting 12610003 +RDRHNO MVC RDRHM+12(2),=C'NO' . message back is no 12612003 + B RDRHSEND . GET READY TO SEND 12620000 +RDRHOK CLI RDRHMSG,C'*' . IS THE SYSTEM CALLING? 12630000 + BE RDRHSOK . THAT'S FINE. OTHERWISE, 12640000 + CLC =C'$JOB,',0(5) . WAS IT A $JOB CARD? 12650000 + BE ENDADATA . OOPS! WE HIT END OF DATA STREAM 12660000 +RDRHSOK MVC RDRHM+12(2),=C'OK' .GROOVINESS MESSAGE 12670000 +RDRHSEND MVC RDRHM+8(4),=F'2' . SAY THERE ARE 2 CHARACTERS 12680000 + MVC RDRHM+0(8),RDRHMSG+0 . SEND BACK TO SAME GUY 12690000 + LA 2,UCBUS . NOW UNLOCK UCB AND UNIT 12700000 + SVC C'V' 12710000 + LA 2,RDRHM . SET UP MESSAGE 12720000 + SVC C'S' . AND SEND IT 12730000 + B RDRHLOOP 12740000 +ENDADATA MVC RDRHM+12(2),=C'NO' . TELL USER NO MORE CARDS 12750000 + MVC RDRHTEMP(80),0(5) . SAVE THE $JOB CARD 12760000 + MVI 0(5),C' ' . BLANK OUT THE USER'S COPY 12770000 + MVC 1(79,5),0(5) 12780000 + MVI JOBBIT,X'FF' . INDICATE WE HAVE A NEW $JOB CARD 12790000 + B RDRHSEND . AND SEND THE MESSAGE BACK 12800000 +RDSTATUS SVC C'V' . UNLOCK THE CAW 12810000 + LA 2,UCBWS . AND WAIT FOR AN INTERRUPT 12820000 + SVC C'P' 12830000 + B RDRHPOK . AND TRY TO RESTART THE I/O 12840000 + DROP 3,12 12850000 + SPACE 1 12860000 +RDRHSEM DC F'1,0' 12870000 +CCBCON1 DC X'00FFFFFF' MASK 12880000 +PROTCON1 DC X'00FFF000' page alignment 12890002 +PROTCON2 DC X'FFFFFFF0' ignore low order bits 12893002 +RDRHAAS DC A(LENRDRHA) ALLOCATE ARGLIST FOR STORAGE 12900000 + DC F'0' 12910000 + DC F'8' 12920000 + SPACE 3 12930000 +*********************************************************************** 12940000 +* * 12950000 +* SYSTEM SUPPLIED DEVICE HANDLER FOR PRINTERS * 12960000 +* * 12970000 +*********************************************************************** 12980000 + SPACE 1 12990000 +PRTHANDL EQU * . THE PRINTER HANDLER 13000000 + USING UCB,3 . ENTERED WITH REG3 -> THE UCB 13010000 + BALR 1,0 13020000 + USING *,1 . ESTABLISH ADDRESSING 13030000 + LA 2,PRTHSEM . LOCK UNTIL ALLOCATE STORAGE 13040000 + SVC C'P' . 13050000 + LA 2,PRTHAAS . READY TO ALLOCATE 13060000 + USING XAX,2 13070000 + SVC C'E' . ALLOCATE 13080000 + L 12,XAXADDR . GET THE ADDRESS 13090000 + DROP 2 13100000 + LA 2,PRTHSEM . 13110000 + SVC C'V' UNLOCK TO ROUTINE 13120000 + SRL 4,16 . SHIFT KEY 13130000 + SR 10,10 . CLEAR REG 10 13140000 + USING PRTHAS,12 . ADDRESSING IN THE AUTO AREA 13150000 + LA 6,PRTHCCB . MAKE A CAW 13160000 +PRTHLOOP LA 2,PRTHMSG . READY TO READ A MESSAGE 13170000 + USING XRX,2 13180000 + MVC XRXSIZE,=F'8' . WE CAN TAKE 8 CHARACTERS 13190000 + SVC C'R' . READ IT 13200000 + L 5,XRXTEXT+4 . LOAD THE ADDRESS 13210000 + CLC =C'PRIN',XRXTEXT . IS IT A PRIN REQUEST? 13220000 + BE PRTHPRIN 13230000 + CLC =C'STC1',XRXTEXT . OR A SKIP REQUEST? 13240000 + BE PRTHSTC1 13250000 + B PRTHLOOP . IF NEITHER, IGNORE 13260000 + DROP 2 13270000 +PRTHPRIN LA 2,UCBUS 13280000 + SVC C'P' . LOCK THE UCB AND UNIT 13290000 + CLI PRTHMSG,C'*' . IS SYSTEM CALLING? 13300000 + BE PRTHPOK . THEN PROTECTION OK. ELSE 13310000 + LR 11,5 . GET ADDRESS THAT'S TO HOLD MSG, 13320000 + N 11,PROTCON1 . get the page boundary 13330002 +* ISKE 10,11 . find storage key 13334002 + DC X'B22900AB' Assembler (XF) doesn't support ISKE 13338002 + N 10,PROTCON2 . ignore low order bits 13342002 + CR 10,4 . DOES IT MATCH OURS? 13350000 + BNE PRTHNO . IF NOT, TELL HIM NO 13360000 + LA 11,131(5) . CHECK LAST BYTE ADDRESS OF LINE 13370000 + N 11,PROTCON1 . get the page boundary 13380002 +* ISKE 10,11 . find storage key 13384002 + DC X'B22900AB' Assembler (XF) doesn't support ISKE 13388002 + N 10,PROTCON2 . ignore low order bits 13392002 + CR 10,4 . DOES IT MATCH OURS? 13400000 + BNE PRTHNO . IF NOT, TELL HIM NO 13410000 +PRTHPOK N 5,CCBCON1 . MAKE A WRITE REQUEST 13420000 + ST 5,PRTHCCB . FOR THE CCB 13430000 + OI PRTHCCB,X'09' . PRINT COMMAND CODE 13440000 + MVC PRTHCCB+4,=F'132' . WE'LL PRINT 132 CHARACTERS 13450000 + B PRTHCOMM . BRANCH TO COMMON SECTION 13460000 +PRTHSTC1 MVC PRTHCCB(8),=X'8900000020000001' SKIP TO TOP OF PAGE 13470000 + LA 2,UCBUS 13480000 + SVC C'P' . LOCK THE UCB AND UNIT 13490000 +PRTHCOMM LA 2,CAWSEM . LOCK THE CAW 13500000 + SVC C'P' 13510000 + ST 6,CAW . STORE OUR CAW 13520000 + MVC UCBCSW(4),=A(0) . CLEAR THE LAST CSW THERE 13530000 + MVC UCBCSW+4(4),=A(0) 13540000 + L 7,UCBADDR . GET THE ADDRESS 13550000 + SIO 0(7) . START THE I/O 13560000 + BNZ PTSTATUS . BRANCH IF SIO UNSUCCESSFUL 13570000 + SVC C'V' . AND UNLOCK THE CAW 13580000 +PRTHWAIT LA 2,UCBWS . START TO WAIT 13590000 + SVC C'P' 13600000 + TM UCBCSW+4,X'05' . IS THE UNIT READY? 13610000 + BZ PRTHWAIT . IF NOT, ITS STILL ON. WAIT 13620000 + TM UCBCSW+4,X'01' . WAS THERE AN EXCEPTION? 13630000 + BZ PRTHOK . IF NOT, GOOD 13640000 +PRTHNO MVC PRTHM+12(2),=C'NO' .THERE WAS, SO SAY SO 13650000 + B PRTHSEND 13660000 +PRTHOK MVC PRTHM+12(2),=C'OK' .NO ERRORS 13670000 +PRTHSEND MVC PRTHM+8(4),=F'2' . SENDING 2 CHARACTERS 13680000 + MVC PRTHM+0(8),PRTHMSG+0 . SEND TO OUR SENDER 13690000 + LA 2,UCBUS 13700000 + SVC C'V' . UNLOCK THE UCB 13710000 + LA 2,PRTHM 13720000 + SVC C'S' . SEND IT 13730000 + B PRTHLOOP . AND READ ANOTHER MESSAGE 13740000 +PTSTATUS SVC C'V' . UNLOCK THE CAW 13750000 + LA 2,UCBWS . AND WAIT FOR THE INTERRUPT 13760000 + SVC C'P' 13770000 + B PRTHCOMM . AND TRY TO RESTART THE I/O 13780000 + DROP 3,12 13790000 + SPACE 2 13800000 +PRTHSEM DC F'1,0' LOCK 13810000 +PRTHAAS DC A(LENPRTHA) XA ARG LIST FOR AUTO STORAGE 13820000 + DC F'0' 13830000 + DC F'8' 13840000 + EJECT 13850000 +*********************************************************************** 13860000 +* * 13870000 +* SYSTEM ROUTINE FOR USER SUPPLIED DEVICE HANDLER * 13880000 +* * 13890000 +*********************************************************************** 13900000 + SPACE 1 13910000 +EXCPHNDL EQU * . EXCP DEVICE HANDLER 13920000 + USING UCB,3 . WILL HAVE REG3 -> UCB 13930000 + BALR 1,0 13940000 + USING *,1 . ESTABLISH ADDRESSING 13950000 + LA 2,EXCPHSEM . LOCK OURSELVES UNTIL WE HAVE 13960000 + SVC C'P' . SET UP AUTOMATIC STORAGE 13970000 + LA 2,EXCPHAAS . READY TO ALLOCATE 13980000 + USING XAX,2 13990000 + SVC C'E' . ALLOCATE 14000000 + L 12,XAXADDR . GET POINTER TO AUTO STORAGE 14010000 + DROP 2 14020000 + LA 2,EXCPHSEM . AND UNLOCK OURSELVES 14030000 + SVC C'V' UNLOCK TO ROUTINE 14040000 + LR 4,11 14050000 + SLL 4,8 . SHIFT KEY FOR CAW 14060000 + USING EXCPHAS,12 . FOR ADDRESSING AUTO AREA 14070000 +EXCPLOOP LA 2,EXCPHMSG . TRY TO READ A MESSAGE 14080000 + USING XRX,2 14090000 + MVC XRXSIZE,=F'12' . WE'LL TAKE 12 CHARACTERS 14100000 + SVC C'R' 14110000 + CLC =C'EXCP',XRXTEXT . IS IT AN EXCP MESSAGE? 14120000 + BNE EXCPLOOP . IF NOT, IGNORE IT 14130000 + L 5,XRXTEXT+4 . REG 5 CONTAINS CHAN AND DEV 14140000 + L 6,XRXTEXT+8 . REG 6 CONTAINS ADDR OF CCWS 14150000 + DROP 2 14160000 + LA 7,UCBTABLE . GET PTR TO UCB TABLE 14170000 +EXCPCOMP C 5,0(7) . COMPARE UNIT ADDRESS 14180000 + BE EXCPFIND . THAT'S THE UCB WE WANT 14190000 + LA 7,UCBLENG(7) . GET PTR TO NEXT UCB 14200000 + C 7,=A(UCBTBEND) . ARE WE THROUGH WITH TABLE? 14210000 + BNE EXCPCOMP . IF NOT, LOOK SOME MORE 14220000 + SVC C'?' . ELSE ERROR 14230000 +EXCPFIND LR 3,7 . SET REG 3 TO UCB PTR 14240000 + LA 2,UCBUS 14250000 + SVC C'P' . LOCK THE UCB 14260000 + OR 6,4 . OR IN THE USER'S KEY 14270000 + MVC UCBCSW(4),=A(0) . CLEAR THE LAST CSW THERE 14280000 + MVC UCBCSW+4(4),=A(0) 14290000 + LA 2,CAWSEM 14300000 + SVC C'P' . LOCK CAW 14310000 + ST 6,CAW . STORE OUR CAW 14320000 + SIO 0(5) . START THE I/O 14330000 + SVC C'V' . UNLOCK THE CAW 14340000 +EXCPWAIT LA 2,UCBWS . NOW WAIT FOR AN INTERRUPT 14350000 + SVC C'P' 14360000 + MVC EXCPHM+12(8),UCBCSW . GIVE USER HIS CSW 14370000 + MVC EXCPHM+8(4),=F'12' 14380000 + MVC EXCPHM(8),EXCPHMSG 14390000 + LA 2,EXCPHM 14400000 + SVC C'S' . AND SENT THE MESSAGE 14410000 + LA 2,EXCPHMSG . AND WAIT FOR A REPLY 14420000 + USING XRX,2 14430000 + MVC XRXSIZE(4),=F'8' . FROM THE USER 14440000 + SVC C'R' 14450000 + CLC =C'OK',XRXTEXT . AM I DONE? 14460000 + BE EXCPDONE 14470000 + CLC =C'AGAIN',XRXTEXT . DOES HE WANT ANOTHER CSW? 14480000 + BE EXCPWAIT 14490000 + SVC C'?' . WRONG MESSAGE 14500000 + DROP 2 14510000 +EXCPDONE LA 2,UCBUS . UNLOCK UNIT 14520000 + SVC C'V' 14530000 + B EXCPLOOP . AND GET ANOTHER MESSAGE 14540000 + DROP 3,12 14550000 +EXCPHSEM DC F'1,0' 14560000 +EXCPHAAS DC A(LENEXCPA) . ALLOCATION OF AUTO STORAGE 14570000 + DC F'0' 14580000 + DC F'8' 14590000 + SPACE 3 14600000 + LTORG 14610000 + EJECT 14620000 +*********************************************************************** 14630000 +* * 14640000 +* UNIT CONTROL BLOCKS * 14650000 +* * 14660000 +*********************************************************************** 14670000 + SPACE 1 14680000 +UCBTABLE DS 0F . TABLE OF UNIT CONTROL BLOCKS 14690000 +* UCB FOR READER 1 14700000 +UCBRDR1 DC X'00000012' . DEVICE ADDRESS, 14710000 + DC F'1,0' . USER SEMAPHORE, 14720000 + DC F'0,0' . WAIT SEMAPHORE, 14730000 + DC F'0,0' . CHANNEL STATUS WORD 14740000 + DC X'00' 14750000 + DS 0F 14760000 +* UCB FOR PRINTER 1 14770000 +UCBPRT1 DC X'00000010' . DEVICE ADDRESS, 14780000 + DC F'1,0' . USER SEMAPHORE, 14790000 + DC F'0,0' . WAIT SEMAPHORE, 14800000 + DC F'0,0' . CHANNEL STATUS WORD 14810000 + DC X'00' 14820000 + DS 0F 14830000 +* UCB FOR READER 2 14840000 +UCBRDR2 DC X'0000000C' . DEVICE ADDRESS, 14850000 + DC F'1,0' . USER SEMAPHORE, 14860000 + DC F'0,0' . WAIT SEMAPHORE, 14870000 + DC F'0,0' . CHANNEL STATUS WORD 14880000 + DC X'00' 14890000 + DS 0F 14900000 +* UCB FOR PRINTER 2 14910000 +UCBPRT2 DC X'0000000E' . DEVICE ADDRESS, 14920000 + DC F'1,0' . USER SEMAPHORE, 14930000 + DC F'0,0' . WAIT SEMAPHORE, 14940000 + DC F'0,0' . CHANNEL STATUS WORD 14950000 + DC X'00' 14960000 + DS 0F 14970000 +* UCB for READER 3 14970302 +UCBRDR3 DC X'00000112' . device address, 14970602 + DC F'1,0' . user semaphore, 14970902 + DC F'0,0' . wait semaphore, 14971202 + DC F'0,0' . channel status word 14971502 + DC X'00' 14971802 + DS 0F 14972102 +* UCB for PRINTER 3 14972402 +UCBPRT3 DC X'00000110' . device address, 14972702 + DC F'1,0' . user semaphore, 14973002 + DC F'0,0' . wait semaphore, 14973302 + DC F'0,0' . channel status word 14973602 + DC X'00' 14973902 + DS 0F 14974202 +* UCB for READER 4 14974502 +UCBRDR4 DC X'0000010C' . device address, 14974802 + DC F'1,0' . user semaphore, 14975102 + DC F'0,0' . wait semaphore, 14975402 + DC F'0,0' . channel status word 14975702 + DC X'00' 14976002 + DS 0F 14976302 +* UCB for PRINTER 4 14976602 +UCBPRT4 DC X'0000010E' . device address, 14976902 + DC F'1,0' . user semaphore, 14977202 + DC F'0,0' . wait semaphore, 14977502 + DC F'0,0' . channel status word 14977802 + DC X'00' 14978102 + DS 0F 14978402 +* UCB for CONSOLE 1 14978504 +UCBCONS1 DC X'00000009' . device address, 14978604 + DC F'1,0' . user semaphore, 14978704 + DC F'0,0' . wait semaphore, 14978804 + DC F'0,0' . channel status word 14978904 + DC X'00' 14979004 + DS 0F 14979104 +UCBTBEND EQU * 14980000 + EJECT 14990000 +*********************************************************************** 15000000 +* * 15010000 +* I/O INTERRUPT HANDLER * 15020000 +* * 15030000 +*********************************************************************** 15040000 + SPACE 1 15050000 +IOHANDL EQU * . THE I/O INTERRUPT HANDLER 15060000 + STM 0,15,IOHSAVE . SAVE REGISTERS 15070000 + BALR 1,0 15080000 + USING *,1 . ESTABLISH ADRESSING 15090000 + NI IOOLD+1,X'FD' . TURN OFF WAIT BIT 15100000 + L 6,=A(UCBTABLE) . GET POINTER TO UCB TABLE 15110000 +IOCOMP CLC 2(2,6),IOOLD+2 . COMPARE DEVICE AND CHANNEL 15120000 + BE IODEVFND . IF EQUAL, REG 6 INDICATES PTR 15130000 + LA 6,UCBLENG(6) . INCREMENT TO NEXT ENTRY 15140000 + C 6,=A(UCBTBEND) . ARE WE AT END OF TABLE? 15150000 + BNE IOCOMP . IF NOT DONE, TRY NEXT UCB 15160000 + B IOBACK . ELSE, IGNORE IT 15170000 + USING UCB,6 . IT'S A UCB PTR 15180000 +IODEVFND MVC UCBCSW(4),CSW . MOVE IN THE NEW CSW 15190000 + L 7,CSW+4 . GET STATUS BYTE 15200000 + O 7,UCBCSW+4 . OR IN NEW STATUS INFORMATION 15210000 + ST 7,UCBCSW+4 . AND STORE IT BACK 15220000 + MVC UCBCSW+6(2),CSW+6 . MOVE IN BYTE COUNT 15230000 + LA 2,UCBWS 15240000 + CLI UCBFPR,X'00' . IS FAST PROCESSING 15250000 + BE IONOFPR . REQUIRED? IF NOT, RETURN 15260000 + L 15,RUNNING . IF SO, STOP GUY NOW RUNNING 15270000 + USING PCB,15 15280000 + CLI PCBBLOKT,X'FF' . IS ANYONE REALLY RUNNING? 15290000 + BE IOWAIT . IF NOT, START UP SLEEPER 15300000 + LA 13,PCBISA . IF SO, STOP RUNNING PROCESS 15310000 + USING SA,13 15320000 + MVC SAPSW,IOOLD . SAVE PROCESS WHICH WAS 15330000 + MVC SAREGS,IOHSAVE . INTERRUPTED 15340000 + DROP 13,15 15350000 +IOWAIT MVI NEXTTRYM,X'00' . MAKE NEXTTRY NOT MODIFIED 15360000 + SVC C'V' . SO CAN FAST PROCESS SLEEPER 15370000 + SVC C'.' . GO PROCESS IT RIGHT AWAY 15380000 +IONOFPR SVC C'V' . AND WAKE UP THE SLEEPER 15390000 +IOBACK LM 0,15,IOHSAVE . RELOAD OUR REGISTERS 15400000 + LPSW IOOLD . AND STEALTHILY RETURN 15410000 + DROP 1,6 15420000 + EJECT 15430000 +*********************************************************************** 15440000 +* * 15450000 +* IPL ENTERED ROUTINE * 15460000 +* * 15470000 +* FUNCTION: TO INITIALIZE SYSTEM PARAMETERS, SET STORAGE KEYS, * 15480000 +* AND CREATE MULTIPLE JOB STREAMS. * 15490000 +* * 15500000 +*********************************************************************** 15510000 + SPACE 1 15520000 +IPLRTN EQU * . THE IPL-ENTERED ROUTINE 15530000 + BALR 1,0 15540000 + USING *,1 . ESTABLISH ADDRESSING 15550000 + MVC IONEW+5(3),SOSIONEW activate IO handler 15553002 + MVC EXTNEW+5(3),IPLEXNEW ignore external interrupts for now 15556002 + LA 15,IPLPCB . I'M RUNNING 15560000 + ST 15,RUNNING . INITIALIZE 'RUNNING' 15570000 + ST 15,NEXTTRY . INITIALIZE 'NEXTTRY' 15580000 + MVC VERYEND,=A(0,CORESIZE-(VERYEND-PROGRAM)) FREE CORE 15590000 + LA 3,8 . SET ZERO KEY AND FETCH PROTECT 15600000 + L 2,CORESIZ . START PAST THE LAST BLOCK 15610000 +IPLCL S 2,PAGESIZE . get the previous block, page aligned 15620002 + BM IPLTH . IF NEGATIVE, WE'RE THROUGH HERE 15630000 +* SSKE 3,2 . else set the storage key to 15640002 + DC X'B22B0032' Assembler (XF) doesn't support SSKE 15643002 + B IPLCL . ZERO, AND WORK BACKWARDS 15650000 +IPLTH SR 4,4 . INDEX IN TABLES FOR INPUT STREAM 15660000 + L 5,STREAMS . HOW MANY STREAMS? 15670000 +IPLLOOP LA 2,IPLAPCBS . READY TO ALLOCATE A PCB 15680000 + USING XAX,2 15690000 + SVC C'A' . ALLOCATE 15700000 + L 2,XAXADDR . GET THE ADDRESS 15710000 + MVC 0(TYPLEN,2),TYPPCB .MAKE IT LOOK LIKE A PCB 15720000 + SVC C'I' . CHAIN IT ON 15730000 + USING PCB,2 15740000 + ST 2,PCBNPTG . BUT PUT IT IN A GROUP BY ITSELF 15750000 + ST 2,PCBLPTG 15760000 + DROP 2 15770000 + USING PCB,15 15780000 + ST 15,PCBLPTG . LIKEWISE FOR THE IPL PCB 15790000 + ST 15,PCBNPTG 15800000 + DROP 15 15810000 + USING PCB,2 15820000 + LA 8,PCBISA . GET THE NEW PCB'S ISA 15830000 + USING SA,8 15840000 + LA 9,SAREGS . ABOUT TO FIX INIT REGS 15850000 + USING REGS,9 15860000 + LA 10,UCBTAB 15870000 + AR 10,4 15880000 + MVC REG3,0(10) . REG3 -> (RDRUCB,PRTUCB) 15890000 + MVC REG4,KEYTAB-UCBTAB(10) . REG4 = KEY 15900000 + DROP 9 15910000 + LA 4,4(4) . GO TO NEXT JOB STREAM 15920000 + BCT 5,IPLLOOP . DO FOR EACH STREAM 15930000 + MVC EXTNEW+5(3),SOSEXNEW reactivate ext interrupt handler 15935002 + SVC C'.' . THEN ENTER TRAFFIC CONTROLLER 15940000 + SPACE 1 15950000 +STREAMS DC F'4' . NUMBER OF STREAMS 15960002 + SPACE 1 15970000 +UCBTAB EQU * . TABLE OF PTRS TO UCB BLOCKS 15980000 + DC A(UCBLP1) 15990000 + DC A(UCBLP2) 16000000 + DC A(UCBLP3) 16003002 + DC A(UCBLP4) 16006002 + SPACE 1 16010000 +KEYTAB EQU * . TABLE OF PROTECTION KEYS 16020000 + DC X'00100000' storage key for stream 1 region 16030002 + DC X'00200000' storage key for stream 2 region 16034002 + DC X'00300000' storage key for stream 3 region 16038002 + DC X'00400000' storage key for stream 4 region 16042002 + SPACE 1 16050000 +UCBLP1 DC A(UCBRDR1,UCBPRT1) 16060000 +UCBLP2 DC A(UCBRDR2,UCBPRT2) 16070000 +UCBLP3 DC A(UCBRDR3,UCBPRT3) 16073002 +UCBLP4 DC A(UCBRDR4,UCBPRT4) 16076002 + SPACE 1 16080000 + DS 0D 16090000 +IPLPCB DC CL8' ' . IPL ROUTINE PCB 16100000 + DC 4A(IPLPCB) 16110000 + DC X'FF000000' . INITIALIZED FLAGS 16120000 + DC F'1,0' 16130000 + DC 5F'0,0' 16140000 + DC X'0002000000000000' 16150000 + DS CL76 16160000 + DS CL84 16170000 + DS CL84 16180000 + SPACE 1 16190000 +IPLAPCBS DC A(LENPCB) . ALLOC LIST FOR PCB'S 16200000 + DC A(0) 16210000 + DC F'8' 16220000 +CORESIZ DC A(CORESIZE) . BYTES OF CORE IN OBJECT MACHINE 16230000 + SPACE 1 16240000 + DS 0D 16250000 +TYPPCB DC CL8'*IBSUP' . A TEMPLATE *IBSUP PCB 16260000 + DC 4A(0) 16270000 +TEMPLATE DC X'00000000' . INITIALIZED FLAGS 16280000 + DC F'1,0' 16290000 + DC 5F'0,0' 16300000 + DC X'FF00000000',AL3(JSP) 16310000 +TYPLEN EQU *-TYPPCB 16320000 +EXINTRPT LPSW EXTOLD ignore external interrupts 16321002 + DS 0F align 16322002 + DC X'00' filler 16323002 +SOSIONEW DC AL3(IOHANDL) sample OS IO new PSW instruction addr 16324002 + DC X'00' filler 16325002 +SOSEXNEW DC AL3(EXTHANDL) sample OS ext new PSW instruction addr 16326002 + DC X'00' filler 16327002 +IPLEXNEW DC AL3(EXINTRPT) IPLRTN ext new PSW instruction addr 16328002 + EJECT 16330000 +*********************************************************************** 16340000 +* * 16350000 +* JOB STREAM PROCESSOR * 16360000 +* * 16370000 +*********************************************************************** 16380000 + SPACE 1 16390000 +JSP EQU * . THE JOB STREAM PROCESSOR 16400000 + BALR 1,0 . (PROCESS *IBSUP) 16410000 + USING *,1 . ESTABLISH ADDRESSING 16420000 + LA 2,JSPSUSEM . LOCK OURSELVES UNTIL 16430000 + SVC C'P' . WE CAN ALLOCATE STORAGE 16440000 + LA 2,JSPAAS . READY TO ALLOCATE 16450000 + USING XAX,2 16460000 + SVC C'E' . ALLOCATE 16470000 + L 12,XAXADDR . PTR TO AUTO AREA 16480000 + DROP 2 16490000 + USING JSPAS,12 . USE FOR ADDRESSING 16500000 + LA 2,JSPSUSEM . UNLOCK OURSELVES 16510000 + SVC C'V' 16520000 + MVC TREAD+0(8),=CL8'*IN' . INITIALIZE VALUES IN AUTOMATIC 16530000 + MVC TREAD+8(4),=F'8' . STORAGE 16540000 + MVC TREAD+12(4),=C'READ' 16550000 + LA 2,CARD 16560000 + ST 2,ACARD 16570000 + MVC USERL+0(8),=CL8'USERPROG' 16580000 + MVC WRITE(12),SKIP 16590000 + MVC WRITE+12(4),=C'PRIN' 16600000 + LA 5,LINE 16610000 + ST 5,WRITE+16 16620000 + MVC CORE+8(4),PAGESIZE align to page boundary 16630002 + MVC TALK+0(8),=CL8'USERPROG' 16640000 + MVC TALK+8(4),=F'12' 16650000 + MVC ANYBACK+8(4),=F'1' 16660000 + MVC RLDTEMP,=A(0) 16670000 + ST 4,KEY . STORE KEY 16680000 + LR 5,3 . GET PTR TO UCB PTR BLOCK 16690000 + L 3,0(5) . GET READER POINTER 16700000 + LA 2,INSEQ . READY TO CREATE & START *IN 16710000 + SVC C'C' . CREATE 16720000 + SVC C'Y' . START 16730000 + L 3,4(5) . GET PTR TO PRINTER UCB 16740000 + LA 2,OUTSEQ . READY TO CREATE & START *OUT 16750000 + SVC C'C' . CREATE 16760000 + SVC C'Y' . START 16770000 + SPACE 1 16780000 +LOOP LA 2,TREAD . READT TO READ A CARD 16790000 + SVC C'S' . START TO READ 16800000 + MVC RREPLY1,=F'132' . 132 CHARS FOR REPLY 16810000 + LA 2,RREPLY 16820000 + SVC C'R' . LISTEN FOR REPLY 16830000 + CLC REPLY(2),=C'OK' . IS REPLY 'OK'? 16840000 + BNE STOP . IF NOT, STOP 16850000 + CLC =C'$JOB,',CARD . HAVE WE A JOB CARD? 16860000 + BE JOB . GOOD! 16870000 + B LOOP . ELSE LOOP 16880000 +STOP LA 2,JSPNEVER . WAIT FOR A "V" OPERATION 16890000 + SVC C'P' . THAT NEVER COMES 16900000 + SPACE 1 16910000 +JOB MVI LOADED,X'00' . REMEMBER NOT LOADED 16920000 + MVC LINE,=CL8' ' . CLEAR A LINE, PUT IN 16930000 + MVC LINE+8(124),LINE+7 .ALL BLANKS 16940000 + MVC LINE(80),CARD . GET READY TO SEND $JOB CARD 16950000 + LA 2,WRITE . TO PRINTER 16960000 + SVC C'S' . SEND IT 16970000 + LA 2,RREPLY 16980000 + SVC C'R' . AND WAIT FOR REPLY 16990000 + LA 2,USERL . CREATE USERPROG 17000000 + SVC C'C' 17010000 + LA 4,CARD+4 . START TO SCAN CARD 17020000 + BAL 3,SCAN . GET NEXT TOKEN 17030000 + BCTR 5,0 . less one to remove K 17040002 + O 5,COREPKLN . length of packed size for execute 17049002 + EX 5,COREPACK . pack core digits 17058002 + CVB 8,COREPCKD . convert core requested to binary 17067002 + SR 9,9 . is core .. 17076002 + SRDL 8,2 . .. modulo four .. 17085002 + LTR 9,9 . .. equal zero? 17094002 + BZ COREOK . -> yes, use it 17103002 + LA 8,1(,8) . -> no, up one page 17112002 +COREOK SLL 8,12 . core bytes, rounded up to full pages 17121002 + ST 8,CORE . remember core requirement 17130002 +ASGNUNIT BAL 3,SCAN . GET NEXT TOKEN 17150000 + CLI 0(4),C'=' . IS IT AN '='? 17160000 + BNE LOAD . IF NOT, LOAD IN THE OBJECT DECK 17170000 + CLI 0(9),C'*' . HAS USER NAMED IT STARTING 17180000 + BE EXPUNGE . WITH '*'? IF SO, THROW HIM OUT 17190000 + LA 2,SEQ . ELSE CREATE A PROCESS 17200000 + MVC SEQ,=CL8' ' . BLANK OUT THE NAME 17210000 + EX 5,UNAMMOV . THEN MOVE THE RELEVANT 17220000 + SVC C'C' . CHARACTERS AND CREATE 17230000 + LA 2,SEQ . WE'LL START IT IN A MOMENT 17240000 + BAL 3,SCAN . SCAN AGAIN 17250000 + EX 5,CMPIN . IS IT 'IN'? 17260000 + BE ASIN . IF SO, ASSIGN IT AS IN 17270000 + EX 5,CMPOUT . IF IT'S 'OUT' 17280000 + BE ASOUT . ASSIGN IT AS OUT 17290000 + EX 5,CMPEXCP . IS IT 'EXCP'? 17300000 + BE ASEXCP . IF SO, ASSIGN IT AS EXCP 17310000 + B EXPUNGE . ERROR: GO ON TO NEXT JOB 17320000 +UNAMMOV MVC SEQ(0),0(9) . MOVE THE UNIT'S PROCESS NAME 17330000 +CMPIN CLC 0(0,9),=C'IN ' . DOES IT SAY 'IN'? 17340000 +CMPOUT CLC 0(0,9),=C'OUT ' . DOES IT SAY 'OUT'? 17350000 +CMPEXCP CLC 0(0,9),=C'EXCP ' . DOES IT SAY 'EXCP'? 17360000 + SPACE 1 17370000 +ASIN LA 11,=CL8'*IN' . POINT TO NAME OF READER HANDLER 17380000 +SETDIM MVC UNITRTN,=A(DIM) . USE DIM AS THE INTERFACE 17390000 + SVC C'Y' 17400000 + B ASGNUNIT 17410000 +ASOUT LA 11,=CL8'*OUT' . POINT TO NAME OF PRINTER HANDLER 17420000 + B SETDIM 17430000 +ASEXCP MVC UNITRTN,=A(EXCPHNDL) . USE FOR USER SUPPLIED 17440000 + L 11,KEY 17450000 + SVC C'Y' . I/O ROUTINE 17460000 + B ASGNUNIT 17470000 + SPACE 1 17480000 +LOAD LA 2,CORE . READY TO ALLOCATE THE REGION 17490000 + SVC C'A' . AND ALLOCATE IT 17500000 + MVI LOADED,X'FF' . REMEMBER THAT WE'RE LOADED 17510000 + L 9,CORE+4 . GET THE FIRST ADDRESS 17520000 + L 4,KEY . GET THE KEY 17530000 + SRL 4,16 17540000 + O 4,FETCHPRT fetch protected 17545002 + LR 3,9 . GET THE BLOCK FOLLOWING OURS 17550000 + AR 3,8 17560000 +LOADSK S 3,PAGESIZE . get the previous block, page aligned 17570002 + CR 3,9 . HAVE WE PASSED THE START? 17580000 + BL LOADLOOP . IF SO, START LOADING 17590000 +* SSKE 4,3 . else set this block to the key 17600002 + DC X'B22B0043' Assembler (XF) doesn't support SSKE 17603002 + B LOADSK . AND BRANCH BACK 17610000 +LOADLOOP LA 2,TREAD . READ IN OBJECT DECK 17620000 + SVC C'S' . GET A CARD A'READING 17630000 + MVC RREPLY1,=F'132' 17640000 + LA 2,RREPLY 17650000 + SVC C'R' . WAIT FOR ANSWER 17660000 + CLC CARD+1(3),=C'TXT' . IS IT A TXT CARD? 17670000 + BE TXTCARD 17680000 + CLC CARD+1(3),=C'RLD' . IS IT A RLD CARD? 17690000 + BE RLDCARD 17700000 + CLC CARD+1(3),=C'END' . IS IT AN END CARD? 17710000 + BE ENDCARD 17720000 + B LOADLOOP . IF NONE, IGNORE. 17730000 + SPACE 1 17740000 +TXTCARD L 10,CARD+4 . GET THE RELATIVE ADDRESS 17750000 + AR 10,9 . PLUS THE ABSOLUTE ADDRESS 17760000 + LH 11,CARD+10 . GET THE COUNT, 17770000 + BCTR 11,0 . DECREMENTED 17780000 + EX 11,TXTMOV . AND MOVE THE TEXT 17790000 + B LOADLOOP . AND READ ANOTHER CARD! OH WOW! 17800000 +TXTMOV MVC 0(0,10),CARD+16 17810000 + SPACE 1 17820000 +RLDCARD LH 11,CARD+10 . GET THE BYTE COUNT 17830000 + LA 13,CARD+20 . AND AN INDEX INTO THE CARD 17840000 +RLDLOOP L 10,0(13) . GET THE LOCATION TO BE RLD'D 17850000 + AR 10,9 . GET THE ABSOLUTE ADDRESS 17860000 + TM 3(13),X'03' . IS IT A FULLWORD? 17870000 + BNZ NOTALGND . IF NO, HANDLE AS THREE BYTES 17880000 + L 7,0(10) . GET THAT WORD (HAD BETTER BE 17890000 + AR 7,9 . ONE); ADD THE RELOCATION 17900000 + ST 7,0(10) . ADDRESS, AND STORE IT BACK 17910000 +RLDCONT TM 0(13),X'01' . CHECK IF LONG OR SHORT FIELD 17920000 + BNZ SHORT . AND BRANCH ACCORDINGLY 17930000 + LA 4,8 . SKIP EIGHT BYTES 17940000 + B RLDFINI 17950000 +SHORT LA 4,4 . SKIP FOUR BYTES 17960000 +RLDFINI AR 13,4 . INCREMENT THE CARD INDEX 17970000 + SR 11,4 . DECREMENT THE BYTE COUNT 17980000 + BP RLDLOOP . AND TRY AGAIN 17990000 + B LOADLOOP . OR READ ANOTHER CARD 18000000 +NOTALGND MVC RLDTEMP+1(3),0(10) . PUT ADDRESS HERE 18010000 + L 7,RLDTEMP . RELOCATE IT 18020000 + AR 7,9 18030000 + ST 7,RLDTEMP . AND PUT IT BACK TO 18040000 + MVC 0(3,10),RLDTEMP+1 . WHERE IT BELONGS 18050000 + NI RLDTEMP,X'00' . CLEAR OUT TEMPORARY 18060000 + B RLDCONT . AND LOOP BACK 18070000 + SPACE 1 18080000 +ENDCARD LA 2,USERL . FIND THE PCB FOR USERPROG 18090000 + SVC C'N' 18100000 + L 4,USERL+8 . GET THE ADDRESS 18110000 + USING PCB,4 18120000 + MVI PCBBLOKT,X'FF' . TEMPORARILY BLOCK IT 18130000 + ST 9,USERL+8 . STORE THE BEGINNING ADDRESS 18140000 + SVC C'Y' . THEN START IT 18150000 + L 5,KEY . GET THE KEY 18160000 + O 5,PCBISA+0 . THEN OR THIS INTO THE 18170000 + ST 5,PCBISA+0 . FIRST WORD OF THE PCB 18180000 + OI PCBISA+1,X'01' . OR IN A 'PROGRAM STATE' BIT 18190000 + MVI PCBBLOKT,X'00' . AND THEN UNBLOCK IT 18200000 + DROP 4 18210000 + LA 2,TALK . LISTEN TO WHAT IT SAYS 18220000 + SVC C'R' 18230000 + SPACE 1 18240000 + MVC LINE(8),=CL8' ' . IF JOB FINISHED, CLEAR A LINE 18250000 + MVC LINE+8(124),LINE+7 18260000 + MVC LINE(12),TALK+12 . MOVE THE MESSAGE ONTO THE LINE 18270000 + LA 2,WRITE . AND SAY TO WRITE IT 18280000 + SVC C'S' 18290000 + LA 2,ANYBACK 18300000 + SVC C'R' 18310000 + LA 2,SKIP . SKIP TO THE TOP OF THE NEXT PAGE 18320000 + SVC C'S' 18330000 + LA 2,ANYBACK 18340000 + SVC C'R' 18350000 + SPACE 1 18360000 +EXPUNGE L 5,RUNNING . EXPUNGE A JOB: LOOK AT ALL PCBS 18370000 + LA 2,SEQ 18380000 + USING PCB,5 18390000 +EXPLOOP MVC SEQ(8),PCBNAME . GET THE PROCESS NAME 18400000 + L 4,PCBNPTG . GET THE NEXT PTR 18410000 + CLI SEQ+0,C'*' . IS IT A '*' PROCESS? 18420000 + BE EXPNXT . IF SO, SKIP OVER 18430000 + SVC C'Z' . ELSE STOP IT 18440000 + SVC C'D' . AND DESTROY IT 18450000 +EXPNXT LR 5,4 . GO TO THE NEXT PCB 18460000 + C 5,RUNNING . ARE WE THROUGH? 18470000 + BNE EXPLOOP . IF NOT, LOOP AGAIN 18480000 + CLI LOADED,X'00' . WAS CORE ALLOCATED? 18490000 + BE LOOP . IF NOT, GO READ THE NEXT $JOB CARD 18500000 + LA 4,8 . set zero key and fetch protect 18510002 + LR 3,9 . AND A POINTER TO THE NEXT 18520000 + AR 3,8 . BLOCK AFTER OURS 18530000 +LOADCL S 3,PAGESIZE . get the previous block, page aligned 18540002 + CR 3,9 . ARE WE THROUGH? 18550000 + BL LOADD . IF SO, GO FREE CORE 18560000 +* SSKE 4,3 . else clear storage key 18570002 + DC X'B22B0043' Assembler (XF) doesn't support SSKE 18573002 + B LOADCL . AND LOOP BACK 18580000 +LOADD LA 2,CORE 18590000 + SVC C'F' . FREE THE STORAGE 18600000 + B LOOP . READ ANOTHER $JOB CARD 18610000 + SPACE 1 18620000 +SCAN SR 5,5 . START THE TOKEN COUNT AT ZERO 18630000 +SCANLOOP LA 4,1(4) . GO TO NEXT CHARACTER 18640000 + CLI 0(4),C',' . DO WE HAVE A DELIMITER? IF SO, 18650000 + BE TOKSTART 18660000 + CLI 0(4),C'=' . DITTO 18670000 + BE TOKSTART 18680000 + CLI 0(4),C' ' . DITTO 18690000 + BE TOKSTART 18700000 + LA 5,1(5) . AND UP COUNT 18710000 + B SCANLOOP . AND LOOP 18720000 +TOKSTART LR 9,4 . SET REG9 TO START 18730000 + SR 9,5 . OF THIS TOKEN 18740000 + BCTR 5,0 . LESS ONE FOR EXECUTE INSTRUCTION 18750000 + BR 3 18760000 + SPACE 2 18770000 +JSPNEVER DC F'0,0' . A GOOD WAY TO DIE: P(JSPNEVER) 18780000 +SKIP DC CL8'*OUT' . MESSAGE BLOCK FOR A NEW PAGE 18790000 + DC F'8' 18800000 + DC CL4'STC1' 18810000 +INSEQ DC CL8'*IN' . SEQ TO CREATE & START *IN 18820000 + DC A(RDRHANDL) 18830000 +OUTSEQ DC CL8'*OUT' . SEQ TO CREATE & START *OUT 18840000 + DC A(PRTHANDL) 18850000 +COREPACK PACK COREPCKD(1),0(1,9) . executed to pack core size req'd 18860002 +COREPCKD DS D . packed core requirement goes here 18880002 +COREPKLN DC X'00000070' . length of packed size for execute 18900002 +PAGESIZE DC F'4096' . page size for core computation 18920002 +JSPSUSEM DC F'1,0' . SEMAPHORE TO LOCK ROUTINE 18990000 +JSPAAS DC A(LENJSPAS) . ALLOCATE LIST FOR AUTO STORAGE 19000000 + DS A 19010000 +FETCHPRT DC F'8' reused to or in fetch protection 19020002 + EJECT 19030000 +*********************************************************************** 19040000 +* * 19050000 +* DEVICE INTERFACE MODULE * 19060000 +* * 19070000 +* FUNCTION: TO INTERFACE BETWEEN USERPROG AND DEVICE HANDLER * 19080000 +* DATABASES: NONE * 19090000 +* ROUTINES USED: XA, XP, XV, XR, XS * 19100000 +* PROCEDURE: ALLOCATE AUTOMATIC STORAGE; START TO READ MESSAGE * 19110000 +* FROM USER; SEND MESSAGE TO DEVICE HANDLER; * 19120000 +* CONTINUE LOOPING, SENDING MESSAGES FROM USER TO * 19130000 +* DEVICE HANDLER AND BACK. * 19140000 +* ERROR CHECKS: NONE * 19150000 +* INTERRUPTS: ON * 19160000 +* USER ACCESS: YES * 19170000 +* * 19180000 +*********************************************************************** 19190000 + SPACE 1 19200000 +DIM EQU * . THE DEVICE INTERFACE MODULE 19210000 + BALR 1,0 19220000 + USING *,1 . ESTABLISH ADDRESSING 19230000 + LA 2,DIMSEM . LOCK UNTIL GET STORAGE 19240000 + SVC C'P' 19250000 + LA 2,DIMAAS . READY TO ALLOCATE STORAGE 19260000 + USING XAX,2 19270000 + SVC C'E' . DO IT 19280000 + L 12,XAXADDR . GET THE ADDRESS 19290000 + DROP 2 19300000 + LA 2,DIMSEM . UNLOCK OURSELVES 19310000 + SVC C'V' 19320000 + USING DIMAS,12 . USE 12 FOR AUTO STORAGE 19330000 + MVC DIMLMS,0(11) . MOVE NAME OF RECIEVER 19340000 + LA 8,132 . REG 8 = SIZE OF MESSAGE 19350000 +DIMLOOP ST 8,DIMMSG+8 . GET READY TO READ A MESSAGE 19360000 + LA 2,DIMMSG 19370000 + SVC C'R' . READ 19380000 + MVC DIMTEMP,DIMMSG . SAVE SENDER NAME 19390000 + MVC DIMMSG,DIMLMS . SEND IT BACK TO THE LAST GUY 19400000 + SVC C'S' . SEND IT 19410000 + MVC DIMLMS,DIMTEMP . AND REMEMBER WHO TO SEND TO NEXT 19420000 + B DIMLOOP . RELOOP 19430000 +DIMSEM DC F'1,0' . SEMAPHORE FOR ENTRY 19440000 +DIMAAS DC A(DIMLEN) . ALLOCATE SEQ FOR AUTO STORAGE 19450000 + DC A(0) 19460000 + DC F'8' 19470000 + DROP 12 19480000 + EJECT 19490000 + LTORG 19500000 +VERYEND DS 6D . beginning of free storage 19510004 +LOADER DS 0D IPL loader goes here 19521002 + EJECT 19521203 +R0 EQU 0 19521502 +R1 EQU 1 19522002 +R2 EQU 2 19522502 +R3 EQU 3 19523002 +R4 EQU 4 19523502 +R5 EQU 5 19524002 +R6 EQU 6 19524502 +R7 EQU 7 19525002 +R8 EQU 8 19525502 +R9 EQU 9 19526002 +R10 EQU 10 19526502 +R11 EQU 11 19527002 +R12 EQU 12 19527502 +R13 EQU 13 19528002 +R14 EQU 14 19528502 +R15 EQU 15 19529002 +*********************************************************************** 19530000 +* * 19540000 +* DATABASE DEFINITIONS * 19550000 +* * 19560000 +*********************************************************************** 19570000 + SPACE 1 19580000 +PCB DSECT . PROCESS CONTROL BLOCK DEFINITION 19590000 +PCBNAME DS CL8 . NAME 19600000 +PCBNPTG DS F . NEXT POINTER THIS GROUP 19610000 +PCBLPTG DS F . LAST POINTER THIS GROUP 19620000 +PCBNPALL DS F . NEXT POINTER ALL 19630000 +PCBLPALL DS F . LAST POINTER ALL 19640000 +PCBSTOPT DS C . STOPPED 19650000 +PCBBLOKT DS C . BLOCKED 19660000 +PCBINSMC DS C . IN SMC 19670000 +PCBSW DS C . STOP WAITING 19680000 +PCBMSC DS CL8 . MESSAGE SEMAPHORE COMMON 19690000 +PCBMSR DS CL8 . MESSAGE SEMAPHORE RECEIVER 19700000 +PCBFM DS F . FIRST MESSAGE 19710000 +PCBNSW DS F . NEXT SEMAPHORE WAITER 19720000 +PCBSRS DS CL8 . STOPPER SEMAPHORE 19730000 +PCBSES DS CL8 . STOPPEE SEMAPHORE 19740000 +PCBASIZE DS F . AUTOMATIC STORAGE SIZE 19750000 +PCBAADDR DS A . AUTOMATIC STORAGE ADDRESS 19760000 +PCBISA DS CL84 . INTERRUPT SAVE AREA 19770000 +PCBFSA DS CL84 . FAULT SAVE AREA 19780000 +PCBMSA DS CL84 . MEMORY SAVE AREA 19790000 + DS 0D . (ALIGN) 19800000 +LENPCB EQU *-PCB . (LENGTH) 19810000 + SPACE 1 19820000 +SA DSECT . SAVE AREA DEFINITION 19830000 +SAPSW DS D . PROGRAM STATUS WORD 19840000 +SAREGS DS CL64 . REGISTERS 19850000 +SATEMP DS CL12 . TEMPORARIES 19860000 + SPACE 1 19870000 +REGS DSECT . REGISTER DEFINITION 19880000 +REG0 DS F . REGISTER 0 19890000 +REG1 DS F . REGISTER 1 19900000 +REG2 DS F . REGISTER 2 19910000 +REG3 DS F . REGISTER 3 19920000 +REG4 DS F . REGISTER 4 19930000 +REG5 DS F . REGISTER 5 19940000 +REG6 DS F . REGISTER 6 19950000 +REG7 DS F . REGISTER 7 19960000 +REG8 DS F . REGISTER 8 19970000 +REG9 DS F . REGISTER 9 19980000 +REG10 DS F . REGISTER 10 19990000 +REG11 DS F . REGISTER 11 20000000 +REG12 DS F . REGISTER 12 20010000 +REG13 DS F . REGISTER 13 20020000 +REG14 DS F . REGISTER 14 20030000 +REG15 DS F . REGISTER 15 20040000 + SPACE 1 20050000 +FSB DSECT . FREE STORAGE BLOCK DEFINITIONS 20060000 +FSBNEXT DS A . NEXT 20070000 +FSBSIZE DS F . SIZE 20080000 + SPACE 1 20090000 +SM DSECT . SEMAPHORE DEFINITION 20100000 +SMVAL DS F . VALUE 20110000 +SMPTR DS F . PTR 20120000 + SPACE 1 20130000 +MSG DSECT . MESSAGE DEFINITION 20140000 +MSGSENDR DS A . POINTER TO SENDER'S PCB 20150000 +MSGNEXT DS A . NEXT 20160000 +MSGSIZE DS F . SIZE 20170000 +MSGTEXT DS 0C . TEXT 20180000 +LENMSG EQU *-MSG . (LENGTH) 20190000 + SPACE 1 20200000 +XAX DSECT . XA ARGUMENT LIST 20210000 +XAXSIZE DS F . SIZE 20220000 +XAXADDR DS F . ADDRESS 20230000 +XAXALGN DS F . ALIGNMENT 20240000 + SPACE 1 20250000 +XFX DSECT . XF ARGUMENT LIST 20260000 +XFXSIZE DS F . SIZE 20270000 +XFXADDR DS F . ADDRESS 20280000 + SPACE 1 20290000 +XBX DSECT . XB ARGUMENT LIST 20300000 +XBXSIZE DS F . SIZE 20310000 +XBXADDR DS F . ADDRESS 20320000 + SPACE 1 20330000 +XCX DSECT . XC ARGUMENT LIST 20340000 +XCXNAME DS CL8 . NAME 20350000 + SPACE 1 20360000 +XDX DSECT . AD ARGUMENT LIST 20370000 +XDXNAME DS CL8 . NAME 20380000 + SPACE 1 20390000 +XNX DSECT . XN ARGUMENT LIST 20400000 +XNXNAME DS CL8 . NAME 20410000 +XNXADDR DS A . ADDRESS 20420000 + SPACE 1 20430000 +XRX DSECT . XR ARGUMENT LIST 20440000 +XRXNAME DS CL8 . NAME 20450000 +XRXSIZE DS F . SIZE 20460000 +XRXTEXT DS 0C . TEXT 20470000 + SPACE 1 20480000 +XSX DSECT . XS ARGUMENT LIST 20490000 +XSXNAME DS CL8 . NAME 20500000 +XSXSIZE DS F . SIZE 20510000 +XSXTEXT DS 0C . TEXT 20520000 + SPACE 1 20530000 +XYX DSECT . XY ARGUMENT LIST 20540000 +XYXNAME DS CL8 . NAME 20550000 +XYXADDR DS A . ADDR 20560000 + SPACE 1 20570000 +XZX DSECT . XZ ARGUMENT LIST 20580000 +XZXNAME DS CL8 . NAME 20590000 + SPACE 1 20600000 +RDRHAS DSECT . READER HANDLER AUTOMATIC STORAGE 20610000 +RDRHCCB DS 2F . CCB 20620000 +RDRHMSG DS CL8 . MESSAGE BLOCK FOR REQUESTS 20630000 + DS F'8' 20640000 + DS CL8 20650000 +RDRHTEMP DS CL80 . AREA FOR $JOB IN DATA STREAM 20660000 +RDRHM DS CL8 . MESSAGE BLOCK FOR REPLY 20670000 + DS F'2' 20680000 + DS CL2 20690000 +JOBBIT DS 1C 20700000 + DS 0D 20710000 +LENRDRHA EQU *-RDRHAS . (LENGTH) 20720000 + SPACE 1 20730000 +PRTHAS DSECT . PRINTER HANDLER AUTOMATIC STORAGE 20740000 +PRTHCCB DS 2F . CCB 20750000 +PRTHMSG DS CL8 . MESSAGE BLOCK FOR REQUESTS 20760000 + DS F'2' 20770000 + DS CL8 20780000 +PRTHM DS CL8 . MESSAGE BLOCK FOR REPLY 20790000 + DS F'2' 20800000 + DS CL2 20810000 + DS 0D 20820000 +LENPRTHA EQU *-PRTHAS . (LENGTH) 20830000 + SPACE 1 20840000 +EXCPHAS DSECT . EXCP HANDLER AUTOMATIC STORAGE 20850000 +EXCPHMSG DS CL8 . MESSAGE BLOCK FOR REQUESTS 20860000 + DS F'12' 20870000 + DS CL12 20880000 +EXCPHM DS CL8 . MESSAGE BLOCK FOR REPLY 20890000 + DS F'12' 20900000 + DS CL12 20910000 + DS 0D 20920000 +LENEXCPA EQU *-EXCPHAS . (LENGTH) 20930000 + SPACE 1 20940000 +UCB DSECT . UNIT CONTROL BLOCK DEFINITION 20950000 +UCBADDR DS F . ADDRESS 20960000 +UCBUS DS FL8 . USER SEMAPHORE 20970000 +UCBWS DS FL8 . WAITER SEMAPHORE 20980000 +UCBCSW DS FL8 . CHANNEL STATUS WORD 20990000 +UCBFPR DS CL1 . FAST PROCESSING REQUIRED 21000000 + DS 0F 21010000 +UCBLENG EQU *-UCB 21020000 + SPACE 1 21030000 +JSPAS DSECT . JSP AUTOMATIC STORAGE 21040000 +LINE DS CL132 . PRINTED LINE 21050000 + DS 0F 21060000 +CARD DS CL80 . CARD READ 21070000 + DS 0F 21080000 +RREPLY DS CL8 . MESSAGE BLOCK FOR REPLIES 21090000 +RREPLY1 DS F 21100000 +REPLY DS CL132 21110000 +TREAD DS 0F . MESSAGE BLOCK FOR READING 21120000 + DS CL8'*IN' 21130000 + DS F'8' 21140000 + DS CL4'READ' 21150000 +ACARD DS A(0) 21160000 +WRITE DS CL8'*OUT' . MESSAGE BLOCK TO PRINT A LINE 21170000 + DS F'8' 21180000 + DS CL4'PRIN' 21190000 + DS A(LINE) 21200000 +KEY DS F 21210000 +USERL DS CL8'USERPROG' . LIST FOR MANIPULATING USERPROG 21220000 + DS F 21230000 +SEQ DS CL8' ' . COMMON ARG LIST FOR I/O PROCESS 21240000 +UNITRTN DS A 21250000 +CORE DS F . MEMORY ALLOCATED AND FREE 21260000 + DS F . SEQUENCE 21270000 + DS F'4096' align to page boundary 21280002 +RLDTEMP DS F 21290000 +TALK DS CL8'USERPROG' . MESSAGE BLOCK FOR MESSAGE FROM 21300000 + DS F'12' . USERPROG 21310000 + DS CL12 21320000 +ANYBACK DS CL8 . MESSAGE BLOCK FOR IGNORING MESS 21330000 + DS F'1' 21340000 + DS CL1 21350000 +LOADED DS C . IS CORE ALLOCATED 21360000 + DS 0D 21370000 +LENJSPAS EQU *-JSPAS . (LENGTH) 21380000 + SPACE 1 21390000 +DIMAS DSECT . DEVICE INTERFACE MODULE STORAGE 21400000 +DIMMSG DS CL8 . MESSAGE BLOCK 21410000 + DS F'132' 21420000 + DS CL132 21430000 +DIMLMS DS CL8 . LAST MESSAGE SENDER 21440000 +DIMTEMP DS CL8 . TEMPORARY 21450000 + DS 0D 21460000 +DIMLEN EQU *-DIMAS . (LENGTH) 21470000 + END 21480000 diff --git a/SOS_OS/source/sos_asma.txt b/SOS_OS/source/sos_asma.txt new file mode 100644 index 0000000..ada89c3 --- /dev/null +++ b/SOS_OS/source/sos_asma.txt @@ -0,0 +1,3473 @@ +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 diff --git a/SOS_OS/source/sosouput.txt b/SOS_OS/source/sosouput.txt new file mode 100644 index 0000000..bd125de --- /dev/null +++ b/SOS_OS/source/sosouput.txt @@ -0,0 +1,3473 @@ +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 diff --git a/SOS_OS/source/sosoutwin.txt b/SOS_OS/source/sosoutwin.txt new file mode 100644 index 0000000..e69de29 diff --git a/SOS_OS/source/sosuserc.asm b/SOS_OS/source/sosuserc.asm new file mode 100644 index 0000000..da07fa2 --- /dev/null +++ b/SOS_OS/source/sosuserc.asm @@ -0,0 +1,148 @@ + TITLE 'Sample Operating System Version 2.00: Demo Program' 00010000 +*********************************************************************** 00020000 +* * 00030000 +* ***************************************************************** * 00040000 +* * * * 00050000 +* * Sample Operating System * * 00060000 +* * Version 2.00 * * 00070000 +* * Developed at MIT 1973 * * 00080000 +* * * * 00090000 +* ***************************************************************** * 00100000 +* * 00110000 +* Title: Demo user program for use with the Sample Operating System * 00120000 +* * 00130000 +* Function: * 00140000 +* * 00150000 +* - print logo * 00160000 +* - read card containing message to print * 00170000 +* - format entry point to six hex digits and place * 00180000 +* it in columnes 54-59 of the message read * 00190000 +* - print message * 00200000 +* - format start message and parameter prompt for console at 009 * 00201002 +* - setup console CCWs * 00202002 +* - display start message and parameter prompt on console * 00203002 +* - wait for parameter input * 00204002 +* - print parameters entered * 00205002 +* - format end message and display it on console * 00206002 +* - exit * 00210000 +* * 00220000 +*********************************************************************** 00230000 + PUNCH '$JOB,2K,READER=IN,PRINTER=OUT,CONSOLE=EXCP' job card 00240002 +SOSUSERC CSECT , begin of program 00248002 + BALR R15,0 establish addressability .. 00256002 + USING *,R15 .. and tell assembler 00264002 + LA R2,PRNTLOGO send logo .. 00272002 + SVC C'S' .. to printer 00290000 + MVC WAITMSG+8(4),WAITLNG initialize reply length 00300002 + LA R2,WAITMSG wait for reply indicating .. 00303002 + SVC C'R' .. printing is completed 00310000 + LA R2,READCARD read card .. 00320002 + SVC C'S' .. containing next message 00330000 + MVC WAITMSG+8(4),WAITLNG initialize reply length 00340002 + LA R2,WAITMSG wait for reply indicating .. 00343002 + SVC C'R' .. card has been read 00350000 + LR R2,R15 base address .. 00360002 + S R2,ENTRY .. minus two .. 00367002 + ST R2,ENTRY .. is entry address 00374002 + UNPK ENTRYU(7),ENTRY+1(4) unpack address 00390000 + TR ENTRYU(6),HEXTAB translate to hex 00400000 + MVC LINE+53(6),ENTRYU move address into message 00410000 + LA R2,PRINTMSG send message .. 00420002 + SVC C'S' .. to printer 00430000 + MVC WAITMSG+8(4),WAITLNG initialize reply length 00440002 + LA R2,WAITMSG wait for reply indicating .. 00443002 + SVC C'R' .. printing is completed 00450000 + MVC STREAMNO(1),LINE+25 move job info .. 00450202 + MVC CNSENTRY(6),LINE+53 .. into console prompt 00450402 + MVI LINE,C' ' blank .. 00450602 + MVC LINE+1(131),LINE .. print line 00450802 + LA R2,CNSPRMPT console prompt address 00451002 + ICM R2,B'1000',WRITE insert write command 00451202 + ST R2,CCW1 store CCW 00451402 + LA R2,LCNPRMPT length of console prompt 00451602 + ST R2,CCW1+4 store length in CCW, zero all flags 00451802 + OI CCW1+4,X'40' indicate command chaining 00452002 + LA R2,CNSINPUT address of console input area 00452202 + ICM R2,B'1000',READ insert read command 00452402 + ST R2,CCW2 store CCW 00452602 + LA R2,LCNSINPT length of console input area 00452802 + ST R2,CCW2+4 store length in CCW, zero all flags 00453002 + OI CCW2+4,X'20' suppress length indication 00453202 + LA 2,CONSOLIO send prompt .. 00453402 + SVC C'S' .. to console 00453602 + MVC WAITMSG+8(4),WAITLNG initialize reply length 00453802 + LA 2,WAITMSG wait for reply indicating .. 00454002 + SVC C'R' .. console I/O is completed 00454202 + LA 2,CONSOLOK release .. 00454402 + SVC C'S' .. console 00454602 + LA R2,LPE+LCNSINPT-1 total length of print message .. 00454802 + SH R2,WAITMSG+18 .. minus residual count minus one 00455002 + EX R2,GETINPUT move to print line 00455202 + LA R2,PRINTMSG send message .. 00455402 + SVC C'S' .. to printer 00455602 + MVC WAITMSG+8(4),WAITLNG initialize reply length 00455802 + LA R2,WAITMSG wait for reply indicating .. 00456002 + SVC C'R' .. printing is completed 00456202 + MVC CNSPRMPT+4(7),ENDED make it a termination message 00456402 + LA R2,CNSPRMPT console termination message address 00456602 + ICM R2,B'1000',WRITEACR insert write command 00456802 + ST R2,CCW1 store CCW 00457002 + LA R2,23 length of console prompt 00457202 + ST R2,CCW1+4 store length in CCW, zero all flags 00457402 + LA 2,CONSOLIO send prompt .. 00457602 + SVC C'S' .. to console 00457802 + MVC WAITMSG+8(4),WAITLNG initialize reply length 00458002 + LA 2,WAITMSG wait for reply indicating .. 00458202 + SVC C'R' .. console I/O is completed 00458402 + LA 2,CONSOLOK release .. 00458602 + SVC C'S' .. console 00458802 + SVC C'H' halt job 00460000 +GETINPUT MVC LINE(1),PE move output message to print line (EX'ed) 00460502 +READ DC X'0A' console read 00461002 +WRITE DC X'01' console write 00461502 +WRITEACR DC X'09' console write with auto CR 00462002 +CCW1 DS D console write CCW 00462502 +CCW2 DS D console read CCW 00463002 +PE DC C'Parameters entered on console: ' echo parameters 00463502 +LPE EQU *-PE length of echo message 00464002 +CNSINPUT DC 40C' ' input from console 00464502 +LCNSINPT EQU *-CNSINPUT length of console input area 00465002 +CNSPRMPT DC C'Job started on stream-' prompt to .. 00465502 +STREAMNO DC C' ' .. be .. 00466002 + DC C', user program entry point = ' .. issued .. 00466502 +CNSENTRY DC C' ' .. on .. 00467002 + DC C', enter parameters: ' .. console 00467502 +LCNPRMPT EQU *-CNSPRMPT length of console prompt 00468002 +ENDED DC CL7'ended' convert started to ended message 00468502 + DS 0F align parameter lists 00470000 +PRNTLOGO DC CL8'PRINTER' print a line: process name .. 00480002 + DC F'8' .. length of command .. 00486002 + DC C'PRIN',A(LOGO) .. command 00492002 +LOGO DC CL132'--- Sample Operating System Version 2.00 ---' logo 00498002 +PRINTMSG DC CL8'PRINTER' print a line: process name .. 00504002 + DC F'8' .. length of command .. 00510002 + DC C'PRIN',A(LINE) .. command 00516002 +LINE DC 132C' ' line to be printed or card read 00522002 +WAITLNG DC F'8' maximum length of reply to be received 00528002 +WAITMSG DS CL8 wait for msg: originator returned here 00534002 + DS F .. length of return area .. 00540002 + DS CL8 .. message received 00546002 +READCARD DC CL8'READER' read a card: process name .. 00552002 + DC F'8' .. length of command .. 00558002 + DC C'READ',A(LINE) .. command 00564002 +CONSOLIO DC CL8'CONSOLE' perform console I/O: process name .. 00570002 + DC F'12' .. length of command .. 00576002 + DC C'EXCP',X'00000009',A(CCW1) .. command 00582002 +CONSOLOK DC CL8'CONSOLE' release console: process name .. 00588002 + DC F'2' .. length of command .. 00594002 + DC C'OK' .. command 00600002 +ENTRY DC F'2' entry address will end up here 00620000 + DC X'00' food for UNPK 00630000 +ENTRYU DC 7X'00' unpacked entry point plus excess byte 00640000 + ORG *-240 first 240 bytes of HEXTAB are not needed 00650000 +HEXTAB DS 0X translation table for unpacked to hex 00660000 + ORG , restore current location 00670000 + DC C'0123456789ABCDEF' hex characters 00680000 +R2 EQU 2 register 2 00690002 +R15 EQU 15 register 15 00690502 + END , end of program 00691002 diff --git a/SOS_OS/source/sosuseroutput.txt b/SOS_OS/source/sosuseroutput.txt new file mode 100644 index 0000000..e389d77 --- /dev/null +++ b/SOS_OS/source/sosuseroutput.txt @@ -0,0 +1,301 @@ +1 High Level Assembler Option Summary (PTF UK37157) Page 1 +- HLASM R6.0 2016/08/29 09.36 +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 09.36 +0SOSUSERC SD 00000001 00000000 0000035C 00 +1 Sample Operating System Version 2.00: Demo Program Page 3 + Active Usings: None +0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 09.36 +0 2 *********************************************************************** 00020000 + 3 * * 00030000 + 4 * ***************************************************************** * 00040000 + 5 * * * * 00050000 + 6 * * Sample Operating System * * 00060000 + 7 * * Version 2.00 * * 00070000 + 8 * * Developed at MIT 1973 * * 00080000 + 9 * * * * 00090000 + 10 * ***************************************************************** * 00100000 + 11 * * 00110000 + 12 * Title: Demo user program for use with the Sample Operating System * 00120000 + 13 * * 00130000 + 14 * Function: * 00140000 + 15 * * 00150000 + 16 * - print logo * 00160000 + 17 * - read card containing message to print * 00170000 + 18 * - format entry point to six hex digits and place * 00180000 + 19 * it in columnes 54-59 of the message read * 00190000 + 20 * - print message * 00200000 + 21 * - format start message and parameter prompt for console at 009 * 00201002 + 22 * - setup console CCWs * 00202002 + 23 * - display start message and parameter prompt on console * 00203002 + 24 * - wait for parameter input * 00204002 + 25 * - print parameters entered * 00205002 + 26 * - format end message and display it on console * 00206002 + 27 * - exit * 00210000 + 28 * * 00220000 + 29 *********************************************************************** 00230000 + 30 PUNCH '$JOB,2K,READER=IN,PRINTER=OUT,CONSOLE=EXCP' job card 00240002 + 000000 00000 0035C 31 SOSUSERC CSECT , begin of program 00248002 + 000000 05F0 32 BALR R15,0 establish addressability .. 00256002 + R:F 00002 33 USING *,R15 .. and tell assembler 00264002 + 000002 4120 F1BA 001BC 34 LA R2,PRNTLOGO send logo .. 00272002 + 000006 0AE2 35 SVC C'S' .. to printer 00290000 + 000008 D203 F2F6 F2EA 002F8 002EC 36 MVC WAITMSG+8(4),WAITLNG initialize reply length 00300002 + 00000E 4120 F2EE 002F0 37 LA R2,WAITMSG wait for reply indicating .. 00303002 + 000012 0AD9 38 SVC C'R' .. printing is completed 00310000 + 000014 4120 F302 00304 39 LA R2,READCARD read card .. 00320002 + 000018 0AE2 40 SVC C'S' .. containing next message 00330000 + 00001A D203 F2F6 F2EA 002F8 002EC 41 MVC WAITMSG+8(4),WAITLNG initialize reply length 00340002 + 000020 4120 F2EE 002F0 42 LA R2,WAITMSG wait for reply indicating .. 00343002 + 000024 0AD9 43 SVC C'R' .. card has been read 00350000 + 000026 182F 44 LR R2,R15 base address .. 00360002 + 000028 5B20 F33E 00340 45 S R2,ENTRY .. minus two .. 00367002 + 00002C 5020 F33E 00340 46 ST R2,ENTRY .. is entry address 00374002 + 000030 F363 F343 F33F 00345 00341 47 UNPK ENTRYU(7),ENTRY+1(4) unpack address 00390000 + 000036 DC05 F343 F25A 00345 0025C 48 TR ENTRYU(6),HEXTAB translate to hex 00400000 + 00003C D205 F29B F343 0029D 00345 49 MVC LINE+53(6),ENTRYU move address into message 00410000 + 000042 4120 F252 00254 50 LA R2,PRINTMSG send message .. 00420002 + 000046 0AE2 51 SVC C'S' .. to printer 00430000 + 000048 D203 F2F6 F2EA 002F8 002EC 52 MVC WAITMSG+8(4),WAITLNG initialize reply length 00440002 + 00004E 4120 F2EE 002F0 53 LA R2,WAITMSG wait for reply indicating .. 00443002 + 000052 0AD9 54 SVC C'R' .. printing is completed 00450000 + 000054 D200 F17B F27F 0017D 00281 55 MVC STREAMNO(1),LINE+25 move job info .. 00450202 + 00005A D205 F199 F29B 0019B 0029D 56 MVC CNSENTRY(6),LINE+53 .. into console prompt 00450402 +1 Sample Operating System Version 2.00: Demo Program Page 4 + Active Usings: SOSUSERC+X'2',R15 +0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 09.36 +0000060 9240 F266 00268 57 MVI LINE,C' ' blank .. 00450602 + 000064 D282 F267 F266 00269 00268 58 MVC LINE+1(131),LINE .. print line 00450802 + 00006A 4120 F165 00167 59 LA R2,CNSPRMPT console prompt address 00451002 + 00006E BF28 F109 0010B 60 ICM R2,B'1000',WRITE insert write command 00451202 + 000072 5020 F10E 00110 61 ST R2,CCW1 store CCW 00451402 + 000076 4120 004E 0004E 62 LA R2,LCNPRMPT length of console prompt 00451602 + 00007A 5020 F112 00114 63 ST R2,CCW1+4 store length in CCW, zero all flags 00451802 + 00007E 9640 F112 00114 64 OI CCW1+4,X'40' indicate command chaining 00452002 + 000082 4120 F13D 0013F 65 LA R2,CNSINPUT address of console input area 00452202 + 000086 BF28 F108 0010A 66 ICM R2,B'1000',READ insert read command 00452402 + 00008A 5020 F116 00118 67 ST R2,CCW2 store CCW 00452602 + 00008E 4120 0028 00028 68 LA R2,LCNSINPT length of console input area 00452802 + 000092 5020 F11A 0011C 69 ST R2,CCW2+4 store length in CCW, zero all flags 00453002 + 000096 9620 F11A 0011C 70 OI CCW2+4,X'20' suppress length indication 00453202 + 00009A 4120 F316 00318 71 LA 2,CONSOLIO send prompt .. 00453402 + 00009E 0AE2 72 SVC C'S' .. to console 00453602 + 0000A0 D203 F2F6 F2EA 002F8 002EC 73 MVC WAITMSG+8(4),WAITLNG initialize reply length 00453802 + 0000A6 4120 F2EE 002F0 74 LA 2,WAITMSG wait for reply indicating .. 00454002 + 0000AA 0AD9 75 SVC C'R' .. console I/O is completed 00454202 + 0000AC 4120 F32E 00330 76 LA 2,CONSOLOK release .. 00454402 + 0000B0 0AE2 77 SVC C'S' .. console 00454602 + 0000B2 4120 0046 00046 78 LA R2,LPE+LCNSINPT-1 total length of print message .. 00454802 + 0000B6 4B20 F300 00302 79 SH R2,WAITMSG+18 .. minus residual count minus one 00455002 + 0000BA 4420 F102 00104 80 EX R2,GETINPUT move to print line 00455202 + 0000BE 4120 F252 00254 81 LA R2,PRINTMSG send message .. 00455402 + 0000C2 0AE2 82 SVC C'S' .. to printer 00455602 + 0000C4 D203 F2F6 F2EA 002F8 002EC 83 MVC WAITMSG+8(4),WAITLNG initialize reply length 00455802 + 0000CA 4120 F2EE 002F0 84 LA R2,WAITMSG wait for reply indicating .. 00456002 + 0000CE 0AD9 85 SVC C'R' .. printing is completed 00456202 + 0000D0 D206 F169 F1B3 0016B 001B5 86 MVC CNSPRMPT+4(7),ENDED make it a termination message 00456402 + 0000D6 4120 F165 00167 87 LA R2,CNSPRMPT console termination message address 00456602 + 0000DA BF28 F10A 0010C 88 ICM R2,B'1000',WRITEACR insert write command 00456802 + 0000DE 5020 F10E 00110 89 ST R2,CCW1 store CCW 00457002 + 0000E2 4120 0017 00017 90 LA R2,23 length of console prompt 00457202 + 0000E6 5020 F112 00114 91 ST R2,CCW1+4 store length in CCW, zero all flags 00457402 + 0000EA 4120 F316 00318 92 LA 2,CONSOLIO send prompt .. 00457602 + 0000EE 0AE2 93 SVC C'S' .. to console 00457802 + 0000F0 D203 F2F6 F2EA 002F8 002EC 94 MVC WAITMSG+8(4),WAITLNG initialize reply length 00458002 + 0000F6 4120 F2EE 002F0 95 LA 2,WAITMSG wait for reply indicating .. 00458202 + 0000FA 0AD9 96 SVC C'R' .. console I/O is completed 00458402 + 0000FC 4120 F32E 00330 97 LA 2,CONSOLOK release .. 00458602 + 000100 0AE2 98 SVC C'S' .. console 00458802 + 000102 0AC8 99 SVC C'H' halt job 00460000 + 000104 D200 F266 F11E 00268 00120 100 GETINPUT MVC LINE(1),PE move output message to print line (EX'ed) 00460502 + 00010A 0A 101 READ DC X'0A' console read 00461002 + 00010B 01 102 WRITE DC X'01' console write 00461502 + 00010C 09 103 WRITEACR DC X'09' console write with auto CR 00462002 + 000110 104 CCW1 DS D console write CCW 00462502 + 000118 105 CCW2 DS D console read CCW 00463002 + 000120 D78199819485A385 106 PE DC C'Parameters entered on console: ' echo parameters 00463502 + 0001F 107 LPE EQU *-PE length of echo message 00464002 + 00013F 4040404040404040 108 CNSINPUT DC 40C' ' input from console 00464502 + 00028 109 LCNSINPT EQU *-CNSINPUT length of console input area 00465002 + 000167 D1968240A2A38199 110 CNSPRMPT DC C'Job started on stream-' prompt to .. 00465502 + 00017D 40 111 STREAMNO DC C' ' .. be .. 00466002 +1 Sample Operating System Version 2.00: Demo Program Page 5 + Active Usings: SOSUSERC+X'2',R15 +0 Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2016/08/29 09.36 +000017E 6B40A4A285994097 112 DC C', user program entry point = ' .. issued .. 00466502 + 00019B 404040404040 113 CNSENTRY DC C' ' .. on .. 00467002 + 0001A1 6B408595A3859940 114 DC C', enter parameters: ' .. console 00467502 + 0004E 115 LCNPRMPT EQU *-CNSPRMPT length of console prompt 00468002 + 0001B5 85958485844040 116 ENDED DC CL7'ended' convert started to ended message 00468502 + 0001BC 117 DS 0F align parameter lists 00470000 + 0001BC D7D9C9D5E3C5D940 118 PRNTLOGO DC CL8'PRINTER' print a line: process name .. 00480002 + 0001C4 00000008 119 DC F'8' .. length of command .. 00486002 + 0001C8 D7D9C9D5000001D0 120 DC C'PRIN',A(LOGO) .. command 00492002 + 0001D0 60606040E2819497 121 LOGO DC CL132'--- Sample Operating System Version 2.00 ---' logo 00498002 + 000254 D7D9C9D5E3C5D940 122 PRINTMSG DC CL8'PRINTER' print a line: process name .. 00504002 + 00025C 00000008 123 DC F'8' .. length of command .. 00510002 + 000260 D7D9C9D500000268 124 DC C'PRIN',A(LINE) .. command 00516002 + 000268 4040404040404040 125 LINE DC 132C' ' line to be printed or card read 00522002 + 0002EC 00000008 126 WAITLNG DC F'8' maximum length of reply to be received 00528002 + 0002F0 127 WAITMSG DS CL8 wait for msg: originator returned here 00534002 + 0002F8 128 DS F .. length of return area .. 00540002 + 0002FC 129 DS CL8 .. message received 00546002 + 000304 D9C5C1C4C5D94040 130 READCARD DC CL8'READER' read a card: process name .. 00552002 + 00030C 00000008 131 DC F'8' .. length of command .. 00558002 + 000310 D9C5C1C400000268 132 DC C'READ',A(LINE) .. command 00564002 + 000318 C3D6D5E2D6D3C540 133 CONSOLIO DC CL8'CONSOLE' perform console I/O: process name .. 00570002 + 000320 0000000C 134 DC F'12' .. length of command .. 00576002 + 000324 C5E7C3D700000009 135 DC C'EXCP',X'00000009',A(CCW1) .. command 00582002 + 000330 C3D6D5E2D6D3C540 136 CONSOLOK DC CL8'CONSOLE' release console: process name .. 00588002 + 000338 00000002 137 DC F'2' .. length of command .. 00594002 + 00033C D6D2 138 DC C'OK' .. command 00600002 + 00033E 0000 + 000340 00000002 139 ENTRY DC F'2' entry address will end up here 00620000 + 000344 00 140 DC X'00' food for UNPK 00630000 + 000345 00000000000000 141 ENTRYU DC 7X'00' unpacked entry point plus excess byte 00640000 + 00034C 0034C 0025C 142 ORG *-240 first 240 bytes of HEXTAB are not needed 00650000 + 00025C 143 HEXTAB DS 0X translation table for unpacked to hex 00660000 + 00025C 0025C 0034C 144 ORG , restore current location 00670000 + 00034C F0F1F2F3F4F5F6F7 145 DC C'0123456789ABCDEF' hex characters 00680000 + 00002 146 R2 EQU 2 register 2 00690002 + 0000F 147 R15 EQU 15 register 15 00690502 + 148 END , end of program 00691002 +1 Relocation Dictionary Page 6 +- Pos.Id Rel.Id Address Type Action HLASM R6.0 2016/08/29 09.36 +0 00000001 00000001 000001CC A 4 + + 00000001 00000001 00000264 A 4 + + 00000001 00000001 00000314 A 4 + + 00000001 00000001 0000032C A 4 + +1 Ordinary Symbol and Literal Cross Reference Page 7 +-Symbol Length Value Id R Type Asm Program Defn References HLASM R6.0 2016/08/29 09.36 +0CCW1 8 00000110 00000001 D D 104 61M 63M 64M 89M 91M 135 + CCW2 8 00000118 00000001 D D 105 67M 69M 70M + CNSENTRY 6 0000019B 00000001 C C 113 56M + CNSINPUT 1 0000013F 00000001 C C 108 65 109 + CNSPRMPT 22 00000167 00000001 C C 110 59 86M 87 115 + CONSOLIO 8 00000318 00000001 C C 133 71 92 + CONSOLOK 8 00000330 00000001 C C 136 76 97 + ENDED 7 000001B5 00000001 C C 116 86 + ENTRY 4 00000340 00000001 F F 139 45 46M 47 + ENTRYU 1 00000345 00000001 X X 141 47M 48M 49 + GETINPUT 6 00000104 00000001 I 100 80X + HEXTAB 1 0000025C 00000001 X X 143 48 + LCNPRMPT 1 0000004E 00000001 A U 115 62 + LCNSINPT 1 00000028 00000001 A U 109 68 78 + LINE 1 00000268 00000001 C C 125 49M 55 56 57M 58M 58 100M 124 132 + LOGO 132 000001D0 00000001 C C 121 120 + LPE 1 0000001F 00000001 A U 107 78 + PE 31 00000120 00000001 C C 106 100 107 + PRINTMSG 8 00000254 00000001 C C 122 50 81 + PRNTLOGO 8 000001BC 00000001 C C 118 34 + READ 1 0000010A 00000001 X X 101 66 + READCARD 8 00000304 00000001 C C 130 39 + R15 1 0000000F 00000001 A U 147 32M 33U 44 + R2 1 00000002 00000001 A U 146 34M 37M 39M 42M 44M 45M 46 50M 53M 59M + 60M 61 62M 63 65M 66M 67 68M 69 78M + 79M 80 81M 84M 87M 88M 89 90M 91 + STREAMNO 1 0000017D 00000001 C C 111 55M + WAITLNG 4 000002EC 00000001 F F 126 36 41 52 73 83 94 + WAITMSG 8 000002F0 00000001 C C 127 36M 37 41M 42 52M 53 73M 74 79 83M + 84 94M 95 + WRITE 1 0000010B 00000001 X X 102 60 + WRITEACR 1 0000010C 00000001 X X 103 88 +1 Unreferenced Symbols Defined in CSECTs Page 8 +- Defn Symbol HLASM R6.0 2016/08/29 09.36 +0 31 SOSUSERC +1 Using Map Page 9 +- HLASM R6.0 2016/08/29 09.36 + Stmt -----Location----- Action ----------------Using----------------- Reg Max Last Label and Using Text + Count Id Type Value Range Id Disp Stmt +0 33 00000002 00000001 USING ORDINARY 00000002 00001000 00000001 15 00343 100 *,R15 +1 General Purpose Register Cross Reference Page 10 +- Register References (M=modified, B=branch, U=USING, D=DROP, N=index) HLASM R6.0 2016/08/29 09.36 +0 0(0) (no references identified) + 1(1) (no references identified) + 2(2) 34M 37M 39M 42M 44M 45M 46 50M 53M 59M 60M 61 62M 63 65M 66M 67 68M + 69 71M 74M 76M 78M 79M 80 81M 84M 87M 88M 89 90M 91 92M 95M 97M + 3(3) (no references identified) + 4(4) (no references identified) + 5(5) (no references identified) + 6(6) (no references identified) + 7(7) (no references identified) + 8(8) (no references identified) + 9(9) (no references identified) + 10(A) (no references identified) + 11(B) (no references identified) + 12(C) (no references identified) + 13(D) (no references identified) + 14(E) (no references identified) + 15(F) 32M 33U 44 +1 Diagnostic Cross Reference and Assembler Summary Page 11 +- HLASM R6.0 2016/08/29 09.36 +0 No Statements Flagged in this Assembly + HIGH LEVEL ASSEMBLER, 5696-234, RELEASE 6.0, PTF UK37157 +0SYSTEM: z/OS 01.10.00 JOBNAME: IBMUSER3 STEPNAME: *OMVSEX PROCSTEP: (NOPROC) +0Data Sets Allocated for this Assembly + Con DDname Data Set Name Volume Member + P1 SYSIN /mbhfs/sosuser.asm + L1 SYSLIB CEE.SCEEMAC ZAPRD2 + L2 SYS1.MACLIB ZARES1 + L3 SYS1.MODGEN ZARES1 + SYSLIN /mbhfs/sosuser.o + SYSPRINT /dev/fd1 + SYSTERM /dev/fd2 + + 1028584K allocated to Buffer Pool Storage required 200K + 148 Primary Input Records Read 0 Library Records Read 0 Work File Reads + 0 ASMAOPT Records Read 301 Primary Print Records Written 0 Work File Writes + 20 Object Records Written 0 ADATA Records Written +0Assembly Start Time: 09.36.55 Stop Time: 09.36.55 Processor Time: 00.00.00.0242 + Return Code 000 diff --git a/SOS_OS/sysgen/madnick_with_console.xmi b/SOS_OS/sysgen/madnick_with_console.xmi new file mode 100644 index 0000000..bfe7f92 Binary files /dev/null and b/SOS_OS/sysgen/madnick_with_console.xmi differ