|
|
DataMuseum.dkPresents historical artifacts from the history of: IBM System/3 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about IBM System/3 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 23114 (0x5a4a)
Types: s3xseg
Names: »S$E032«
└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
└─⟦f17e99db6⟧
└─⟦this⟧ »S$E032«
MACRO 00010000
$E032 00020000
GBLB &DPF,&BSCA,&NSWL 00030000
GBLB &MIN,&MOD4 00040000
LCLC &# 00050000
TEXT 00060000
&# SETC ' ' 00070000
* BEGIN MACRO '$E032' 3/15/73 00080000
TITLE 'RESIDENT&#.STARTUP&#.INITIALIZATION&#.ROUTINE' 00090000
*---------------------------------------------------------------------* 00100000
* * 00110000
* TITLE -- RESIDENT STARTUP INITIALIZATION ROUTINE * 00120000
* * 00130000
* NAME -- $E032 * 00140000
* * 00150000
* FUNCTION -- * 00160000
* * 00170000
* . TO FINISH THE STARTUP INITIALIZATION OF CCP * 00180000
* . TO EXIT THE CCP STARTUP PHASE AND ACTIVATE THE EXECUTION PHASE * 00190000
* * 00200000
* OPERATION -- * 00210000
* * 00220000
AIF (&DPF EQ '0').NDPFP SKIP IF NO DPF GENERATION 00230000
* . COMMUNICATE TO THE NON-RESIDENT CCP STARTUP CODE THE ADDRESS * 00240000
* OF THE RESIDENT CCP HALT INTERCEPT * 00250000
* * 00260000
.NDPFP ANOP 00270000
AIF (&BSCA EQ '0').NPBS1 SKIP IF NON-BSCA GENERATION 00280000
* . ALLOCATE AND OPEN THE BSCA DTF'S * 00290000
* * 00300000
* . SET THE ADDRESS OF THE CCP BSCA INTERRUPT HANDLER INTO THE * 00310000
* RESIDENT DSM BSCA INTERRUPT HANDLER * 00320000
* * 00330000
.NPBS1 ANOP 00340000
* . SET THE IAR Q-BYTE VALUES OF THE CCP PROGRAM LEVEL INTO THE * 00350000
* RESIDENT CCP EXECUTION CODE * 00360000
* * 00370000
* . MODIFY THE DSM LOW CORE ENTRY POINT ADDRESS OF DUMP, GENERAL * 00380000
* ENTRY, DISK IOS, AND DISK I/O WAIT TO CAUSE ENTRY INTO CCP * 00390000
* WHEN THESE FUNCTIONS ARE INVOKED * 00400000
* * 00410000
* . SET THE ADDRESS OF THE FLAG BYTE IN DSM (NCMBSV IN SUPCM) * 00420000
* WHICH CONTAINS THE DISK ERP INDICATION FOR TESTING BY THE * 00430000
* CCP DISK IOS AND DISK I/O WAIT INTERCEPT ROUTINES * 00440000
* * 00450000
* . SET UP THE CCP TRANSIENT AREA HANDLERS IOB'S Q-BYTES FOR THE * 00460000
* PACK ON WHICH $CCPFILE IS FOR THIS RUN * 00470000
* * 00480000
AIF (&DPF EQ '0').NDPFB SKIP IF NON-DPF GENERATION 00490000
* . RESTORE THE DSM RESIDENT HALT ENTRY POINT ADDRESS FROM THAT * 00500000
* SET DURING CCP STARTUP * 00510000
* * 00520000
.NDPFB ANOP 00530000
* . INITIALIZE THE CCP GENERAL ENTRY INTERCEPT ROUTINE ($CC4IG) * 00540000
* TO CONTAIN THE Q-BYTES OF THE SYSTEM PACK AND THE PROGRAM PACK * 00550000
* * 00560000
* . EXIT THROUGH THE COMMAND PROCESSOR TO THE TRANSIENT STARTUP * 00570000
* ROUTINE $CC4SU TO COMPLETE ALL STARTUP FUNCTIONS * 00580000
* * 00590000
* ENTRY POINT -- CPINIT (INITAL ENTRY FROM STARTUP) * 00600000
* -- SU@BCH PLUS TWO BYTES (RE-ENTRY POINT AFTER * 00610000
* NON-RESIDENT STARTUP COMPLETES) * 00620000
* * 00630000
* INPUT -- NONE * 00640000
* * 00650000
* OUTPUT -- * 00660000
* * 00670000
* . ALL AREAS DISCUSSED UNDER OPERATION ARE SET FOR EXECUTION * 00680000
* * 00690000
* EXTERNAL REFERENCES -- * 00700000
* * 00710000
AIF (&DPF EQ '0').NPDF3 SKIP IF NON-DPF 00720000
* . ADDRESS OF OTHER LEVEL IAR HOLD AREA IN STARTUP * 00730000
* * 00740000
.NPDF3 ANOP 00750000
AIF (&BSCA EQ '0').NPBS3 SKIP IF NO BSCA 00760000
* . ADDRESS OF THE BSCA DTF'S BUILT BY STARTUP * 00770000
* * 00780000
* . ADDRESS OF THE BSCA INTERRUPT HANDLER IN RESIDENT DSM 00790000
* * 00800000
.NPBS3 ANOP 00810000
* . ADDRESSES OF IAR Q-BYTES IN * 00820000
* $CC4DP, $CC4IH,$CC4PI * 00830000
* * 00840000
* . ADDRESSES OF RESIDENT DISK I/O AND I/O WAIT INTERCEPT ROUTINES * 00850000
* * 00860000
* . ADDRESS OF GENERAL ENTRY INTERCEPT * 00870000
* * 00880000
* . ADDRESS OF DUMP INTERCEPT ROUTINE (CPHALT) * 00890000
* * 00900000
* . SYSTEM COMMUNICATION AREA ((NCSYS@) * 00910000
* * 00920000
* . CCP COMMAND PROCESSOR * 00930000
* * 00940000
* EXIT, NORMAL -- TO COMMAND PROCESSOR TRANSIENT $CC4SU * 00950000
* * 00960000
* ATTRIBUTES -- RESIDENT, NON-REUSEABLE, OVERLAID BY CCP * 00970000
* TRANSIENTS DURING EXECUTION * 00980000
* * 00990000
*---------------------------------------------------------------------* 01000000
EJECT 01010000
*********************************************************************** 01020000
* ENTRY POINT 1 OF BASE MODULE, USE AS SUBROUTINE. * 01030000
* XR1 --> STARTUP SAVE AREA, XR2 --> PGM LVL COMM AREA. * 01040000
*********************************************************************** 01050000
SPACE 01060000
ENTRY CPINIT CCP MODULE ENTRY POINT @ 01070000
CPINIT ST SUEP1X+3,ARR SAVE RETURN ADDRESS 01080000
AIF (&DPF NE '1').NDPF1 DPF SUPPORTED?? 01090000
SPACE 1 01100000
* STARTUP SAVE AREA DISPLACEMENTS AND BITS REFERENCED 01110000
SPACE 1 01120000
SITFLG EQU X'6C' MISC. SYSTEM INFO @01 01130000
SITPRI EQU BIT2 1=CCP TO HAVE CPU PRIORITY IN@01 01140000
* DPF ENVIRONMENT @01 01150000
SPACE 1 @01 01160000
SSAMS1 EQU +X'89' STARTUP SWITCHES 01170000
SSADPF EQU BIT0 1=DPF SYSTEM / 0=NOT DPF 01180000
SSALVL EQU BIT1 1=CCP IN LVL 2 0=CCP IN LVL 1 01190000
SSAIAR EQU +X'8C' VALUE OF OTHER LEVEL IAR 01200000
SPACE 1 01210000
ST SULSS@+3,XR1 STORE ADDR OF STARTUP SAVE AREA 01220000
SPACE 01230000
*---------------------------------------------------------------------* 01240000
* DPF SYSTEM, STEAL HALT CHECK ENTRY POINT. * 01250000
*---------------------------------------------------------------------* 01260000
SPACE 01270000
MVC SUHBR+3(2),NPHBCH(,XR2) SAVE HALT CHECK ENTRY POINT 01280000
MVC SU@BCH(2),NPHBCH(,XR2) SAVE HALT CHECK ENTRY POINT 01290000
MVC NPHBCH(2,XR2),SU@HCH INSERT CCP HALT RESPONSE @ 01300000
SPACE 01310000
*---------------------------------------------------------------------* 01320000
* SAVE REQUIRED INFORMATION IN CASE OF ABORT. * 01330000
*---------------------------------------------------------------------* 01340000
SPACE 01350000
MVC SUMS1(1),SSAMS1(,XR1) SAVE LEVEL SWITCH 01360000
MVC SUIHLD(2),SSAIAR(,XR1) SAVE OTHER LEVEL IAR CONTENTS 01370000
.NDPF1 ANOP 01380000
AIF (&BSCA NE '1').NBS1 01390000
LA CCBSDF+3,XR2 SET OF FOR STARTUP TO SET @ 01400000
* OF BSCA DTF 01410000
.NBS1 ANOP 01420000
SUEP1X B #### RETURN TO CALLER 01430000
SPACE 01440000
*---------------------------------------------------------------------* 01450000
* THE FOLLOWING 2-BYTE SAVED VALUE MUST FOLLOW SUEP1X. * 01460000
*---------------------------------------------------------------------* 01470000
SPACE 01480000
SU@BCH DC AL2(####) ADDRESS OF HALT CHECK ROUTINE, 01490000
* RETURN BEFORE INITIALIZATION 01500000
* FINISHED OR RETURN IN CASE OF 01510000
* STARTUP ABORT 01520000
SPACE 2 01530000
SPACE 1 01540000
*------REENTRY POINT FROM STARTUP-------------------------------------* 01550000
SPACE 1 01560000
AIF (&MOD4).MD410 MOD 4 - SKIP THIS 01565000
AIF (&BSCA NE '1').NBSC1 BSCA IN SYSTEM?? 01570000
SPACE 2 01580000
*---------------------------------------------------------------------* 01590000
* DETERMINE IF BSCA IS ON THE SYSTEM AND PLUG THE INTERRUPT * 01600000
* HANDLER ADDRESS (CCP) INTO THE SUPERVISOR BSCA INTERRUPT * 01610000
* HANDLER FOR THE APPROPRIATE BSCA LINE IN USE * 01620000
*---------------------------------------------------------------------* 01630000
SPACE 2 01640000
#CC@L1 EQU X'12' OFFSET TO LINE ONE CCP @ 01650000
#CC@L2 EQU X'14' OFFSET TO LINE TWO CCP @ 01660000
SPACE 2 01670000
L NCSYS@,XR1 GET THE @ OF SYS COMM AREA 01680000
L NCADDC(,XR1),XR1 GET THE @ OF THE SECOND SYS COM 01690000
* AREA 01700000
L 1(,XR1),XR1 GET THE @ OF THE BSCA SUPR 01710000
* INTERRUPT HANDLER FROM SECOND 01720000
* COMMUNICATION AREA 01730000
SPACE 1 01740000
CLI CCBSDF+2,0 ANY BSCA DTF @ SET BY STARTUP?? 01750000
JE CCNOBS NO, SKIP IAR @ SETTING 01760000
SPACE 1 01770000
*------THERE IS A BSCA DTF, DETERMINE FOR WHICH LINE(S) AND PLUG THE * 01780000
*------BSCA INTERRUPT HANDLER IN THE DSM SUPERVISOR-------------------* 01790000
.MD410 ANOP 01795000
SPACE 1 01800000
CCBSDF LA ####,XR2 GET THE @ OF THE BSCA DTF 01810000
ST CCBKCH+3,XR2 STORE DTF ADR TO BREAK DTF CHAIN 01820000
B NCENTR ALLOCATE BI-SYNC 01830000
DC XL1'8B' RIB 01840000
SPACE 01850000
B NCENTR OPEN 01860000
DC XL1'82' RIB 01870000
SPACE 1 01880000
L CCBKCH+3,XR2 GET @ OF BSCA DTF 01890000
CCBS MVC LCB$L0(2,XR2),$BDINT(,XR2) FILL IN C/S OF LINE INIT. 01900000
AIF (&MOD4).MD420 01905000
SPACE 1 01910000
TBF $BDDEV(,XR2),BIT4 WHAT LINE IS THIS 01920000
JF CCBSL2 OFF IS LINE 1 01930000
SPACE 1 01940000
MVC #CC@L1(2,XR1),@CC4IB MOVE THE CCP BSCA INT. HANDLER 01950000
* @ TO DSM BSCA INT HANDLER 01960000
J CCBSNX GET NEXT BSCA DTF 01970000
SPACE 1 01980000
EXTRN $CC4IB BSCA INTERRUPT HANDLER OF CCP 01990000
@CC4IB DC AL2($CC4IB) BSCA INTERRUPT HANDLER OF CCP 02000000
SPACE 1 02010000
CCBSL2 MVC #CC@L2(2,XR1),@CC4IB MOVE THE CCP BSCA INT. HANDLER 02020000
* LINE SLOT IN COMMON BSCA INT 02030000
.MD420 ANOP 02035000
SPACE 1 02040000
*------FIND NEXT (IF ANY) BSCA DTF------------------------------------* 02050000
SPACE 1 02060000
CCBSNX CLI $BDNXT-1(,XR2),ALLBIT IS THERE ANOTHER DTF 02070000
L $BDNXT(,XR2),XR2 GET @ IN CASE 02080000
BNE CCBS IS ANOTHER, RECURSE 02090000
SPACE 1 02100000
CCBKCH LA ####,XR2 LOAD @ OF 1ST BSCA DTF 02110000
MVI $BDNXT-1(,XR2),X'FF' BREAK DTF CHAIN 02120000
MVI $BDNXT(,XR2),X'FF' BREAK DTF CHAIN 02130000
CCNOBS EQU * END OF BSCA CHECKS 02140000
SPACE 3 02150000
*------------END OF T/P OPEN LOGIC------------------------------------* 02160000
AIF (&NSWL).NBSC1 SKIP IF NO SWITCHED LINE SUPPT 02170000
SPACE 2 02180000
*------MOVE DISK ADDRESSES OF DSM CLOSE AND OPEN ROUTINES-------------* 02190000
*------FOR USE BY BSCA SWITCHED LINE PURGE ROUTINE--------------------* 02200000
SPACE 1 02210000
EXTRN CMCLOZ 02220000
LA CMCLOZ,XR2 LOAD @ OF WHERE TO STORE C/S 02230000
L NCSYS@,XR1 LOAD @ OF S.C.A. 02240000
L NCXTAB(,XR1),XR1 LOAD @ OF XSIENT SCHED TABLE 02250000
MVC 0(2,XR2),42+&MOD4(,XR1) MOVE C/S OF $$CLOZ 02260000
MVC 8(2,XR2),40+&MOD4(,XR1) MOVE C/S OF $$OPEN 02270000
SPACE 2 02280000
.NBSC1 ANOP 02290000
*---------------------------------------------------------------------* 02300000
* THIS IS THE CCP INITIAL TEST INITIALIZATION ROUTINE. * 02310000
* * 02320000
* IT'S FUNCTION IS TO MODIFY THOSE PARTS OF THE CCP * 02330000
* MODULES THAT REQUIRE PRE-EXECUTION INITIALIZATION. * 02340000
* SUCH THINGS AS THE Q-BYTE OF STORE THE CCP IAR * 02350000
* INSTRUCTIONS, THE ADDRESS OF LOW CORE ENTRY POINTS * 02360000
* (NCEIOS + NCEIOW) ARE SET INTO THE I/O SCHEDULER, ETC. * 02370000
* * 02380000
*---------------------------------------------------------------------* 02390000
SPACE 3 02400000
SPACE 2 02410000
*---------------------------------------------------------------------* 02420000
* COMPUTE THE PROGRAM LEVEL IAR Q-BYTE * 02430000
*---------------------------------------------------------------------* 02440000
SPACE 1 02450000
LA CPINC,XR1 02460000
USING CPINC,XR1 02470000
AIF (&DPF NE '1').NDPF2 DPF SYSTEM?? 02480000
ST @IAR1(,XR1),IAR1 STORE THE PROGRAM LEVEL IAR 02490000
CLC CLC @IAR1(2,XR1),@CLC(,XR1) IS THIS LEVEL ONE 02500000
JE NOMV 02510000
MVI MVIAR(,XR1),IAR2 NO, SET LEVEL TWO IAR VALUE 02520000
NOMV EQU * 02530000
MVC DPIARQ(1),MVIAR(,XR1) MOVE THE CCP Q-BYTE INTO INST 02540000
.NDPF2 ANOP 02550000
MVC IHIAR(1),MVIAR(,XR1) SET THE CCP Q-BYTE 02560000
MVC IHIAR2(1),MVIAR(,XR1) MOVE THE Q-BYTE 02570000
MVC IHIAR3(1),MVIAR(,XR1) MOVE THE Q-BYTE 02580000
AIF (&MIN).NIHLD 02590000
MVC IHLOAD(1),MVIAR(,XR1) SET CCP Q-BYTE 02600000
.NIHLD ANOP 02610000
EXTRN HLSTI HALT ROUTINE IAR Q-BYTE 02620000
MVC HLSTI(1),MVIAR(,XR1) MOVE THE Q-BYTE 02630000
SPACE 1 02640000
AIF (&DPF NE '1').NJDPF .SKIP IF NOT DPF @01 02650000
EJECT 02660000
*----- COMPUTE THE OTHER LEVEL IAR Q-BYTE AND CORE BOUNDS ----------@01 02670000
SPACE 1 @01 02680000
L NCSYS@,XR2 LOAD S.C.A. ADDRESS @01 02690000
MVC IOTAST+3(2),NCXTAB(,XR2) MOVE T.A. TABLE @ TO I/O INTC@01P02700000
ALC IOTAST+3(2),CC0001 BUMP @ TO BUSY IND BYTE @01 02710000
MVC IGDSMT+3(2),IOTAST+3 MOVE T.A. TABLE @ TO I.G. @01P02720000
CLI MVIAR(,XR1),IAR1 IS CCP IN LEVEL ONE ? @01 02730000
JE CPINL1 YES, JUMP @01 02740000
SPACE 1 02750000
MVI MVIAR(,XR1),IAR1 SET OTHER LEVEL TO IAR 1 @01 02760000
MVI IOTAST+1,X'80' LEVEL 1 T.A. BUSY FLAG @01 02770000
MVI IGDSMT+1,X'80' LEVEL 1 T.A. BUSY FLAG @01 02780000
L NCPL1(,XR2),XR2 LOAD PLCA ADDRESS @01 02790000
MVC IHOBEG(2),NPBEG(,XR2) MOVE OTHER START ADDRESS @01 02800000
J CPINIH JUMP TO SET Q-CODES @01 02810000
SPACE 1 02820000
CPINL1 MVI MVIAR(,XR1),IAR2 SET LEVEL 2 Q-CODE @01 02830000
MVI IOTAST+1,X'40' LEVEL 2 T.A. BUSY FLAG @01 02840000
MVI IGDSMT+1,X'40' LEVEL 2 T.A. BUSY FLAG @01 02850000
L NCPL2(,XR2),XR2 LOAD @ OF PLCA 2 @01 02860000
MVC IHOBEG(2),NPBEG(,XR2) MOVE OTHER LEVEL START @ @01 02870000
MVC IHOEND(2),NPBEG+2(,XR2) MOVE OTHER LEVEL END @ @01 02880000
SLC IHOEND(2),CC0001 SUBTRACT ONE IN CASE 64K @01 02890000
SPACE 1 02900000
CPINIH MVC IHLVL1(1),MVIAR(,XR1) MOVE IAR Q-CODE TO $CC4IH @01 02910000
MVC IHLVL2(1),MVIAR(,XR1) MOVE IAR Q-CODE TO $CC4IH @01 02920000
MVC IHLVL3(1),MVIAR(,XR1) MOVE IAR Q-CODE TO $CC4IH @01 02930000
MVC IHLVL4(1),MVIAR(,XR1) MOVE IAR Q-CODE TO $CC4IH @01 02940000
SPACE 2 @01 02950000
*------IF CCP PRIORITY IS SPECIFIED, CHANGE NOOPS TO SIO'S ---------@01 02960000
SPACE 1 @01 02970000
L SULSS@+3,XR2 LOAD STARTUP SAVE AREA ADDRES@01 02980000
TBN SITFLG(,XR2),SITPRI SHOULD CCP HAVE PRIORITY ? @01 02990000
JF STE NO, JUMP @01 03000000
SPACE 1 @01 03010000
EXTRN CMENAB 03020000
EXTRN CMDISA 03030000
SPACE 1 03040000
SLC DPDISA+2(3),DPDISA+2 ZERO NOOP JUMP INST @01 03050000
MVI DPDISA,X'F3' MOVE SIO TO NOOP @01 03060000
MVC DPENAB+2(3),DPDISA+2 MOVE SIO INST @01 03070000
MVI DPENAB+2,X'06' SET ENABLE CONTROL CODE @01 03080000
MVC IGDISA+2(3),DPDISA+2 MOVE SIO INST @01 03090000
MVC IGENAB+2(3),DPENAB+2 MOVE SIO INST @01 03100000
LA CMDISA,XR2 LOAD ADDRESS OF CM HOOK 03110000
MVC 2(3,XR2),DPDISA+2 MOVE SIO INST @01 03120000
LA CMENAB,XR2 LOAD ADDRESS OF CM HOOK 03130000
MVC 2(3,XR2),DPENAB+2 MOVE SIO INST @01 03140000
STE EQU * @01 03150000
EJECT 03160000
.NJDPF ANOP @01 03170000
*---------------------------------------------------------------------* 03180000
* SET THE LOW CORE ADDRESSES OF DISDSP + DIODWT INTO CC4DP * 03190000
*---------------------------------------------------------------------* 03200000
SPACE 2 03210000
@@ENT EQU 7 OFFSET TO GENERAL ENTRY @ @ 03220000
@@DSP EQU 11 OFFSET TO DIODSP @ @ 03230000
@@DWT EQU 15 OFFSET TO DIODWT @ @ 03240000
@@DUMP EQU 19 OFFSET TO DUMP @ @ 03250000
SPACE 1 03260000
L @@DSP,XR2 GET DIODSP @ @ 03270000
ST CC@DSP,XR2 SAVE DIODSP @ @ FOR EOJ 03280000
L 0(,XR2),XR2 GET DIODSP @ 03290000
STC ST SSDIOD,XR2 STOW DIODSP EPA 03300000
MVC @@DSP(2),@CC4IO(,XR1) SET DISK I/O INTERCEPT @ 03310000
SPACE 2 03320000
L @@DWT,XR2 GET DIODWT @ @ 03330000
ST @DWT,XR2 SAVE DIODWT @ @ FOR EOJ 03340000
L 0(,XR2),XR2 GET DIODWT @ 03350000
STD ST @DWT1,XR2 STORE DIODWT EPA 03360000
ST @DWT2,XR2 SET DIODWT ENTRY ADDRESS 03370000
MVC @@DWT(2),@CC4IW(,XR1) SET DISK WAIT INTERCEPT @ 03380000
SPACE 2 03390000
EJECT 03400000
*---------------------------------------------------------------------* 03410000
* SET INTO THE CCP DISPATCHER DISK I/O AND WAIT ENTRY * 03420000
* POINTS THE ADDRESS OF THE BYTE IN THE DSM SYSTEM COMM. * 03430000
* AREA THAT CONTAINS THE DISK ERP ACTIVE/INACTIVE BIT * 03440000
*---------------------------------------------------------------------* 03450000
SPACE 03460000
SPACE 2 03470000
L NCSYS@,XR2 GET @ OF DSM SYS COMM AREA 03480000
LA NCMBSV(,XR2),XR2 STEP TO ADDR OF FLAG BYTE 03490000
SPACE 1 03500000
ST IOGOA+3,XR2 STORE @ OF DISK ERP BYTE IN 03510000
* INSTRUCTION FOLLOWING THE JUMP 03520000
SPACE 1 03530000
*------------DO THE SAME FOR $CC4IW-----------------------------------* 03540000
SPACE 1 03550000
ST IWGOA+3,XR2 STORE @ OF DISK ERP BYTE IN 03560000
* INTERCEPT ROUTINE 03570000
SPACE 1 03580000
*------END OF SETTING ERP FLAG BYTE @---------------------------------* 03590000
SPACE 1 03600000
SPACE 2 03610000
*---------------------------------------------------------------------* 03620000
* CHANGE THE LOW CORE DUMP ENTRY ADDRESS TO THE RESIDENT * 03630000
* CCP HALT ROUTINE * 03640000
*---------------------------------------------------------------------* 03650000
SPACE 2 03660000
MVC @DUMPP(2,XR1),@@DUMP 03670000
* ROUTINE BRANCH ADDRESS 03680000
MVC @@DUMP(2),@CPHLT(,XR1) PUT CCP HALT @ INTO DUMP ENTRY 03690000
SPACE 03700000
*------STEAL THE @ OF GENERAL ENTRY AND REPLUG WITH THE ADDRESS OF----* 03710000
*------CCP'S GENERAL ENTRY INTERCEPT ROUTINE $CC4IG-------------------* 03720000
SPACE 1 03730000
L @@ENT,XR2 GET OFFSET TO GENERAL ENTRY @ 03740000
ST @ENT(,XR1),XR2 STORE INTO MOVE LIST 03750000
SPACE 03760000
*------GET @ OF TRUE GENERAL ENTRY 03770000
SPACE 1 03780000
LA $CC4IG+1,XR1 SET @ OF CCP NCENTR INTERCEPT 03790000
ST @@ENT,XR1 SET @ OF CCP $CC4IG INTO LOC 4 03800000
SPACE 1 03810000
L @ENT,XR2 GET @ OF TRUE GENERAL ENTRY @ 03820000
L 2(,XR1),XR1 GET ADCON FROM $CC4IG OF 03830000
* WHERE TO STOW REAL GENERAL ENTRY 03840000
SPACE 1 03850000
MVC 0(2,XR1),0(,XR2) MOVE THE REAL GENERAL ENTRY @ 03860000
* TO $CC4IG 03870000
SPACE 1 03880000
SPACE 2 03890000
*---------------------------------------------------------------------* 03900000
* SET THE Q-BYTES IN THE CCP TRANSIENT AREA IOB'S * 03910000
*---------------------------------------------------------------------* 03920000
SPACE 1 03930000
B NCENTR GET THE @ OF THE PLCA 03940000
DC AL1(0) PLCA @ R.I.B. 03950000
SPACE 1 03960000
LA TAIOQB,XR1 SET TO @ OF FIRST T.A. IOB 03970000
MVC 0(1,XR1),NPQ(,XR2) MOVE THE Q-BYTE INTO 1ST TA IOB 03980000
SBF 0(,XR1),BIT5+BIT6 MAKE IT A 'READ' Q-BYTE 03990000
SBN 0(,XR1),BIT7 MAKE IT A READ Q-BYTE 04000000
SPACE 1 04010000
TANXQB EQU 27 OFFSET FROM 1ST TO 2ND IOB 04020000
SPACE 1 04030000
*------DO THE SAME FOR THE 2ND IOB'S Q-BYTE 04040000
SPACE 1 04050000
MVC TANXQB(1,XR1),NPQ(,XR2) MOVE THE Q-BYTE AGAIN 04060000
SBF TANXQB(,XR1),BIT5+BIT6 MAKE IT A READ Q-BYTE 04070000
SBN TANXQB(,XR1),BIT7 MAKE IT A READ Q-BYTE 04080000
SPACE 1 04090000
*------END OF SETTING UP CCP TRANSIENT AREA IOB Q-BYTES---------------* 04100000
SPACE 2 @01 04110000
AIF (&DPF NE '1').NDPFI SKIP IF NON-DPF @01 04120000
*----- SET THE PGM PACK Q-BYTE INTO I/O INTERCEPT ROUTINE @01 04130000
SPACE 1 @01 04140000
MZZ IOPGMQ,NPQ(,XR2) MOVE ZONE PORTION OF Q-BYTE @01 04150000
.NDPFI ANOP @01 04160000
SPACE 1 04170000
*---------------------------------------------------------------------* 04180000
* SET THE Q-BYTES OF THE SYSTEM AND PROGRAM PACK INTO THE * 04190000
* GENERAL ENTRY INTERCEPT ROUTINE * 04200000
*---------------------------------------------------------------------* 04210000
SPACE 1 04220000
MVC IGNPQ(1),NPQ(,XR2) MOVE THE PROGRAM PACK Q-BYTE TO 04230000
* GENERAL ENTRY INTERCEPT 04240000
MVC IGNPLB,NPOLIB(2,XR2) INSERT PGM PACK DIR C/S @@@ 04245000
L NCSYS@,XR2 GET @ OF DSM COMM AREA 04250000
MVC IGSYSQ(1),NCSYSQ(,XR2) MOVE THE SYSTEM PACK Q-BYTE TO 04260000
* GENERAL ENTRY INTERCEPT 04270000
MVC IGNCLB,NCOLIB(2,XR2) INSERT SYS PACK DIR C/S @@@ 04275000
AIF (&DPF NE '1').NDUPS SKIP IF NON-DPF @01 04280000
SPACE 1 @01 04290000
*----- SET THE SYS PACK Q-BYTE INTO I/O INTERCEPT ROUTINE @01 04300000
SPACE 1 @01 04310000
MZZ IOSYSQ,NCSYSQ(,XR2) MOVE ZONE PORTION OF Q-BYTE @01 04320000
L NCPL1(,XR2),XR2 XR2 ----> PLCA 1. @10 04322000
LA NPBEG(,XR2),XR2 XR2 ----> NPBEG @ OF PLCA 1 @10 04324000
ST SUPEND,XR2 INIT SUPEND WITH PLCA 1 NPBEG@10 04326000
.NDUPS ANOP @01 04330000
SPACE 2 04340000
*------MOVE THE SWAPPED CONSTANTS TO CCP'S LOW CORE RESTORE LIST------* 04350000
SPACE 1 04360000
EXTRN CC@DWT LOW CORE RESOTRE LIST IN $CC4PI 04370000
MVC CC@DWT(8),@DWT MOVE THE CONSTANTS 04380000
AIF (&DPF).DPF1 04390000
J SUEXSU EXIT STARTUP INITIALIZATION 04400000
AGO .NXA 04410000
.DPF1 ANOP 04420000
J SURSPV RESTORE HALT CHECK RTN ADDR 04430000
.NXA ANOP 04440000
SPACE 1 04450000
*------MOVED CONSTANTS LIST-------------------------------------------* 04460000
SPACE 1 04470000
CPINC EQU * 04480000
@DUMPP DS AL2 @ OF DUMP 04490000
@ENT DS AL2 @ OF GENERAL ENTRY 04500000
CC@DSP DS AL2 @ OF DISK IOS 04510000
@DWT DS AL2 @ OF DISK WAIT 04520000
SPACE 2 04530000
*------INITIALIZATION CONSTANTS AND WORK AREAS------------------------* 04540000
SPACE 2 04550000
@IAR1 DS XL2 04560000
MVIAR DC AL1(IAR1) INITIALIZED TO LEVEL ONE IAR 04570000
AIF (&DPF NE '1').NCLC DPF SYSTEM?? 04580000
@CLC DC AL2(CLC) @ OF COMPARE INSTRUCTION-DPF SYS 04590000
.NCLC ANOP 04600000
@CPHLT DC AL2(CPHALT) ADDRESS OF CCP HALT ROUTINE 04610000
* CONSTANT 04620000
@CC4IO DC AL2(@CCIO) @ OF DISK I/O INTERCEPT ADDRESS 04630000
@CC4IW DC AL2(@CCIW) @ OF DISK WAIT INTERCEPT * 04640000
AIF (&DPF NE '1').NDPF3 04650000
EJECT 04660000
*********************************************************************** 04670000
* RESTORE SUPERVISOR HALT CHECK ENTRY POINT. * 04680000
*********************************************************************** 04690000
SPACE 04700000
SURSPV EQU * 04710000
B NCENTR BRANCH TO SUPERVISOR 04720000
DC AL1(0) RIB: XR2 --> PGM LVL COMM AREA 04730000
SPACE 04740000
MVC NPHBCH(2,XR2),SUHBR+3 RESTORE HALT CHECK ENTRY POINT 04750000
SPACE 2 04760000
*********************************************************************** 04770000
* DPF SYSTEM, RESTORE OTHER LEVEL IAR TO "EJ" HALT. * 04780000
*********************************************************************** 04790000
SPACE 04800000
SULSS@ LA ####,XR2 LOAD ADDR OF STARTUP SAVE AREA 04810000
JC *+3,X'97' RESET INDICATOR BITS 04820000
TBN SSAMS1(,XR2),SSADPF IS THIS A DPF SYSTEM? 04830000
JF SUDBYP JUMP IF NO 04840000
SPACE 04850000
LA SSAIAR(,XR2),XR2 STEP TO @ OF OTHER LEVEL IAR 04860000
ST SURIAR+3,XR2 AND STOW THE @ 04870000
SPACE 1 04880000
MVC SURIAR+1(1),MVIAR SET THE OTHER LEVEL IAR Q @01 04890000
SPACE 04900000
SURIAR L *-*,*-* RESTORE OTHER LEVEL IAR VALUE 04910000
SPACE 04920000
SUDBYP EQU * 04930000
.NDPF3 ANOP 04940000
SPACE 2 04950000
*---------------------------------------------------------------------* 04960000
* ENTER CCP RESIDENT CONTROL CODE AT THE COMMAND PROCESSOR. * 04970000
*---------------------------------------------------------------------* 04980000
SPACE 04990000
SUEXSU LA $CCCOM,XR1 LOAD ADDRESS OF $CCCOM 05000000
L NCSYS@,XR2 GET SYSCOM @ 05010000
AIF (&DPF NE '1').DPF4 @11 05015000
SPACE 1 05020000
NPLEVL EQU X'4B' 05021000
L @PCA(,XR1),XR1 GET PLCA @ IN XR1 @11 05022000
TBN NPLEVL(,XR1),BIT7 AM I IN LEVEL 2? @11 05023000
LA $CCCOM,XR1 RESTORE XR1 @11 05024000
JF SULVL1 NO, MARK CCP ACTIVE IN LVL 1 @11 05025000
MVI SULVL1+1,BIT2 MODIFY MASK TO LEVEL 2. @11 05026000
SULVL1 EQU * @11 05027000
.DPF4 ANOP @11 05028000
SPACE 1 @11 05029000
*------TURN ON THE CCP ACTIVE BITS IN THE DSM SYSTEM COMM AREA--------* 05030000
SPACE 1 05040000
SBN NCCONF(,XR2),BIT1 TURN ON CCP RUNNING BITS @11 05050000
SPACE 1 05060000
LA $CPWK,XR2 LOAD @ CMD PROCESSOR WORK AREA 05070000
L CPEPA,IAR GO TO RESIDENT COMMAND PROCESSOR 05080000
SPACE 05090000
CPEPA DC AL2($CC4CP) @ OF RESIDENT COMMAND PROCESSOR 05100000
SPACE 2 05110000
AIF (&DPF NE '1').DPF5 05120000
EJECT 05130000
*---------------------------------------------------------------------* 05140000
* CHECK DSM HALT TO SEE IF CCP STARTUP SHOULD ABORT * 05150000
*---------------------------------------------------------------------* 05160000
SPACE 1 05170000
SUHCHK EQU * 05180000
DC XL2'3000' SENSE INSTRUCTION + Q-BYTE 05190000
DC AL2(SUHSNS) ADDR OF SENSE TO 05200000
SBF SUHSNS,BIT0+BIT1+BIT2+BIT3 TURN OFF HI BITS 05210000
CLI SUHSNS,2 IS RESPONSE = 2? 05220000
JE SUABRT JUMP IF YES, ABORT 05230000
SPACE 05240000
CLI SUHSNS,3 IS RESPONSE = 3? 05250000
JNE SUHBR JUMP IF NO, LET DSM DECIDE 05260000
SPACE 05270000
*---------------------------------------------------------------------* 05280000
* STARTUP ABORT REQUIRED, PREPARE TO BAIL OUT. * 05290000
*---------------------------------------------------------------------* 05300000
SPACE 05310000
SUABRT EQU * 05320000
B NCENTR BRANCH TO SUPERVISOR 05330000
DC AL1(0) RIB: XR2 --> PGM LVL COMM AREA 05340000
SPACE 05350000
MVC NPHBCH(2,XR2),SUHBR+3 RESTORE HALT CHECK ENTRY POINT 05360000
JC *+3,X'97' RESET CONDITION BITS 05370000
TBN SUMS1,SSALVL IS CCP IN LEVEL 2? 05380000
JF SUAIAR JUMP IF NO 05390000
SPACE 05400000
MVI SUAIAR+1,IAR1 RESET TO RESTORE LEVEL 1 IAR 05410000
SPACE 05420000
SUAIAR L SUIHLD,##+IAR2 RESTORE "EJ" IN OTHER LEVEL 05430000
SUHBR B #### BR TO DSM HALT CHECK ROUTINE 05440000
SPACE 05450000
*---------------------------------------------------------------------* 05460000
* WORK AREA AND CONSTANTS. * 05470000
*---------------------------------------------------------------------* 05480000
SPACE 05490000
SU@HCH DC AL2(SUHCHK) @ OF STARTUP HALT CHECK ROUTINE 05500000
SUHSNS DC AL2(####) SENSE AREA FOR CONSOLE DIALS 05510000
SUIHLD DC AL2(####) HOLDER FOR OTHER LVL IAR CONTENT 05520000
SUMS1 DC AL1(##) STARTUP SAVE AREA MISC SWITCH 05530000
SPACE 05540000
*----- END OF STARTUP HALT CHECK ROUTINE -----------------------------* 05550000
SPACE 05560000
************************************************************************05570000
.DPF5 ANOP 05580000
* END MACRO '$E032' 05590000
MEND 05600000