PM

(George Source)

Macros used: DATUMADD, DCA, ENTRUST, FINDPEREC, FIXTRA, GPERI, JBUSY, JDISENG, JWRONG, LABFIX, LGEOG, LTYPE

PM.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1