22FL #OPT K0PM=0 22^= #LIS K0PM>K0POST>K0KERNEL>K0ALLGEO 23DW # 23YG #SEG PM [RAY BARNES AND DEK BEASLEY 24D6 # 24XQ # THE NEXT PIECE OF CODE IS THE CORE PART OF THE NI VERSION OF 25CB # THE POSTMORTEM ROUTINE, WRITTEN FOR THE MOST PART BY J BAILEY 25X2 # 26BL # THE REORGANISED VERSION HAS BECOME PURE!!!!!! 26W= # 27*W # 27TG 8HPM 28*6 # 28SQ UGH LDN 3 JNOPM 29#B CALL 7 XCONOUT 29S2 PMSTOP 2=?L BRN PMSTOP [LOOP STOP TO KILL PM 2=R= # 2?=W # 2?QG # CONSOLE TYPEWRITER OUTPUT ROUTINE 2#=6 # 2#PQ # 2*9B ... LABFIX JJCONOUT 2*P2 XCONOUT 2B8L STO 0 JX0 [ SAVE X0 2BN= STO 1 JX1 [ SAVE X1 2C7W LDX 1 JCTWPTR [ GET DEVICE RECORD OF CTW 2CMG XLOOP JBUSY 1,XLOOP 2D76 LDX 0 0(3) 2DLQ DCA 1,STO,0,COUNT 2F6B LDN 0 1(3) 2FL2 DCA 1,STO,0,CTSA 2G5L LDX 0 JPCA 2GK= DCA 1,DLA,0,MODE 2H4W LDN 1 JOSTART 2HJG GPERI JCTWPTR,1,NC 2J46 ...SNORE LDX 1 JCTWRW1 2JHQ BNG 1 SNORE 2K3B SLL 1 3 2KH2 BNG 1 XLOOP 2L2L LDX 1 JX1 [ RESET X1 2LG= LDX 0 JX0 [ RESET X0 2L^W ... EXIT 7 0 2MFG # 2M^6 # 2NDQ # BS TRANSFER IMPLEMENTATION ROUTINE 2NYB # 2PD2 TRANSF 2PXL ... LDX 4 BINDEX 2QC= DATUMADD JDUM2,4,JDUM+2 [GET BS ADDRESS 2QWW BZE 1 UGH [0 REPLY --- VERY BAD FOR PM ABANDO 2RBG DCA JGEOPTR,STO,1,DTSA [ SET UP DEVICE RECORD 2RW6 LDX 1 JGEOPTR 2S*Q LDX 0 JDUM 2STB DCA 1,DLA,0,MODE 2T*2 LDX 0 JDUM+2 2TSL DCA 1,STO,0,COUNT 2W#= LDX 0 JDUM+3 2WRW DCA 1,STO,0,CTSA 2X?G CALL 0 XBSROUT [ SET OFF TRANSFER 2XR6 BRN TRANSF [ TRY AGAIN 2Y=Q ... BZE 2 (5) 2YQB ADS 2 JDUM+3 [ RESET DETAILS 2^=2 ADS 2 JDUM2 2^PL SBS 2 JDUM+2 329= BRN TRANSF [ DO NEXT BITE 32NW XBSROUT 338G STO 0 JLINK [STORE LINK 33N6 LDN 3 JXSTART [GET BLOCK START 347Q GPERI JGEOPTR,3,NC [DO PERI 34MB PPM1 LDX 4 JGEORW1 [CHECK REPLY 3572 BNG 4 PPM1 [LOOP IF STILL BUSY 35LL SLC 4 6 366= ANDN 4 15 [FORGET END OF CYLINDER 36KW LDX 3 JGEOPTR 375G LTYPE 3,1 37K6 TXU 1 JEDS 384Q BCS PPM2 38JB ANDN 4 #15 3942 PPM2 BNZ 4 PPM3 [NOT OK? 39HL LDX 0 JLINK [RECOVER LINK 3=3= EXIT 0 1 3=GW PPM3 ANDN 4 14 3?2G LDN 3 JPMESS1 [FAIL 3?G6 BNZ 4 PPM4 3?^Q LDN 3 JPMESS [FIX 3#FB ...PPM4 CALL 0 XPGTGE [GEOGRAPHICAL NUMBER TO CHARS 3#^2 CALL 7 XCONOUT [OUTPUT ON CONSOLE 3*DL PPM6 LDX 3 JGEOPTR [GET G'S DEVICE 3*Y= JDISENG 3,PPM6 [LOOP TILL ENGAGED 3BCW BRN (JLINK) 3BXG # 3CC6 # 3CWQ # ROUTINE TO PUT NNN INTO UNIT NNN FIX OR FAIL MESSAGE 3DBB # 3DW2 # 3F*L # ENTRY POINT SPECIFYING GEORGE DEVICE 3FT= # 3G#W # 3GSG LABFIX JJPGTGE 3H#6 XPGTGE 3HRQ LDX 1 JGEOPTR 3J?B LABFIX JPG 3JR2 LGEOG 1,7 3K=L LDCT 6 #200 3KQ= STO 6 3(3) 3L9W DVS 6 JTEN 3LPG ORS 6 3(3) [DUMP UNITS DIGIT 3M96 DVS 6 JTEN 3MNQ SLL 67 6 3N8B SLL 7 6 3NN2 ORX 6 7 [GEOGRAPHICAL NO. TO CHARS 3P7L ORS 6 3(3) [DUMP HUNS & TENS DIGITS 3PM= EXIT 0 0 [EXIT 3Q6W # 3QLG # 3R66 # 3RKQ # HERE IS THE ONLY ENTRY POINT TO PM BOOTSTRAP 3S5B # 3SK2 # 3T4L # 3TJ= LABFIX JBPMCO 3W3W FIXTRA ADPPM [USED EXCLUSIVELY BY DATAPASS 3W4^ ... STO 0 JACC 3W65 ...# 3W8# ...# FOR 2960 DME DUALS WE MUST ENSURE PM NOT ABLE 3W=H ...# TO RUN CONCURRENTLY WITH EXECUTIVE SO ..... 3W#Q ...# 3WB^ ... ENTRUST [ MAKE US TRUSTED 3WF8 ...# 3X36 STO 1 JACC+1 3XGQ LDN 0 2 3Y2B LDN 1 JACC+2 [STORE ACCUMULATORS 3YG2 MOVE 0 6 3Y^L LDX 0 GONRDUMP [SAVE GEORGE'S WORD 8 3^F= STO 0 JONRDUMP [IN CASE OF PM BREAK 3^YW LDN 0 BSL1 42DG LDN 1 JBSL 42Y6 MOVE 0 5 [STORE BSL1-BSL5 43CQ LDX 0 PMSTOP [STORE LOOP STOP IN K0 43XB STO 0 K0 [IN EVENT OF PM FAILURE A BRANCH 44C2 [ TO K0 IS EFFECTED 44WL # 45B= # NOW NEED TO ACCESS DEVICE LIST FOR RECORDS PERTAINING TO 45TW # CONSOLE T/W AND GEORGE'S B/S DEVICE. THESE RECORDS ARE STORED. 46*G # 46T6 LDX 3 GEOBSPTR 47#Q LDN 4 JGEOREC [MOVE G'S DEVICE RECORD 47SB MOVE 3 K53-K50 [INTO A BUFFER 48#2 STO 3 JGEOPTR [KEEP PTR 48RL LDN 6 63 [T/W IS TYPE 63 49?= FINDPEREC 3,APFOTY,6,XYZ [GET DEVICE RECORD POINTER 49QW JWRONG 3,XYZ [J IF CONSOLE IS WRONGED 4==G LDN 4 JCTWREC 4=Q6 MOVE 3 K53-K50 [MOVE TO BUFFER. 4?9Q STO 3 JCTWPTR [KEEP PTR 4?PB NGN 4 1 4#92 PM1 LDX 3 JGEOPTR 4#NL JDISENG 3,PM2 [J IF NOT ENGAGED 4*8= JBUSY 3,PM1 [LOOP IF BUSY 4*MW BRN PM3 [ELSE J OK 4B7G PM2 BZE 4 PM1 [J IF 'FIX' ALREADY O/P 4BM6 LDN 3 JPMESS [FIX MESSAGE 4C6Q CALL 0 XPGTGE [GEOGRAPHICAL NO. TO CHARS. 4CLB CALL 7 XCONOUT [FIX TO CONSOLE 4D62 LDN 4 0 4DKL BRN PM1 4F5= # 4FJW # 4G4G # WRITE AWAY FIXED CORE 4GJ6 # 4H3Q # 4HHB ...PM3 CALL 5 TRANSF 4J32 # 4JGL # 4K2= # 4KFW # READ PMFIXINT INTO CORE FOLLOWING PM BOOTSTRAP 4K^G # 4LF6 # 4LYQ LDX 1 JLPMFIXINT 4MDB STO 1 JDUM+2 4MY2 LDN 1 0 4NCL STO 1 JDUM 4NX= LDN 1 PMBSEND 4PBW STO 1 JDUM+3 4PWG STO 1 FXPMFXNT [ SET UP FX WORD FOR 'CHAPTER TABLE' 4QB6 ADX 1 JLPMFIXINT 4QTQ STO 1 FXPMDR [ PRESET BASE ADDRESS OF PMDR 4R*B LDX 1 JDPMFIXINT 4RT2 STO 1 JDUM+4 4S#L STO 1 JDUM2 4SS= ... CALL 5 TRANSF [ DO THE TRANSFER 4T?W # 4TRG # 4W?6 ...# READ PMDR INTO CORE FOLLOWING PMFIXINT 4WQQ # 4X=B SMO FXPMFXNT 4XQ2 LDX 1 JPMDR [ GET CHAPTER TABLE ENTRY FOR PMDR 4Y9L LDN 2 0 4YP= SRL 12 15 4^8W SRL 2 2 [ B/S ADDRESS 4^NG SLL 1 2 [ LENGTH 5286 STO 1 JDUM+2 52CY ... STO 2 JDUM2 52MQ STO 2 JDUM+4 537B LDX 4 FXPMDR [ BASE ADDRESS IN CORE 53M2 STO 4 JDUM+3 546L ADX 4 1 54L= STO 4 FXPM1 [ PRESET BASE ADDRESS FOR 1ST OVERLA 555W ... CALL 5 TRANSF [ DO THE TRANSFER 55KG #SKI G4 5656 ( 56JQ LDX 4 K30+K402 [SET UP WORD FOR USE 574B ADN 4 1024 [BY MACRO PMCORES WHEN 57J2 STO 4 JK402 [TESTIHG CORE VIOLATIONS IN G4 583L ) 5858 ...#UNS JPSCF 586Q ...( 588# ... LDX 4 JGEOPTR 589W ... SMO FXPMDR 58?D ... STO 4 JSCFGEODMP 58*2 ... LDX 4 GEOSCFPTR 58BJ ... SMO FXPMDR 58D6 ... STO 4 JSCFPTR 58FN ...) 58H= SMO FXPMDR 592W BRN K1PMDR [ ENTER PMDR 59GG FIXTRA JPMBSEND [USED BY PMSIZEUP & PMSIZE MACRO 5=26 [FOR END OF PM BOOTSTRAP 5=FQ PMBSEND 5=^B #END ^^^^ ...67227253004200000000