PMWINDDN84

(George Source)

Macros used: FINDPEREC, JBUSY, JUNBUSY, JWRONG, LTYPE, REWIND, SEGENTRY, XYZ

PMWINDDN84.txt
22^=    #   
23DW    #OPT  K0PMWINDDN=0  
23YG    #LIS  K0PMWINDDN>K0POST>K0ALLGEO
24XQ    #   
25CB ...#SEG  PMWINDDN84                   [KAREL KOSKUBA - DIAG
25X2    #   
26BL    #     THIS SEGMENT ENSURES THAT NO PERIPHERAL IS BUSY BEFORE EXIT IS
26W=    #     MADE FROM POSTMORTEM  
27*W    #   
27TG                   8HPMWINDDN   
28*6    #   
28SQ    #     ENTRY POINT TABLE 
29#B    #   
29S2 ... SEGENTRY K1PMWINDDN,XK1PMWINDDN
2=R=    #   
2?=W    THREE       +0                     [ STORAGE FOR ACC.3  
2?QG ...MESS        2H^*
2#=6    MESSA       +30,30H^*AWAITING REWIND : DECK    ^*   
2#PQ    MESSB       +24,24H  ^*UNIT     BUSY-OPAT^* 
2*9B    XFIVE       +5                     [MT TYPE 
2*P2    XELEVEN     +11                    [UX TYPE 
2B8L ...TWENTY4     +24 
2BN=    SIXTY3      +63                    [T/W TYPE
2C7W    TEN         +10                    [MX TYPE 
2CMG ...TAPEBY      +0                  [SET POS. IF MTS REWINDING  
2D76                                       [SET NEG. WHEN CONSOLE MESSAGE ON
2DLQ                                       [REWINDING OUTPUT
2F6B    REWTIME        +180000/K9          [SET=TIME REWIND SHOULD BE FINISHED  
2FL2    #   
2G5L    #           CODE TO CHECK FOR BUSY PERIPHERALS  
2GK=    #   
2H4W    XK1PMWINDDN 
2HJG    #   
2HWX ...      LDX   1  FXPM1
2J9# ...      STOZ     TAPEBY(1)           [INITIALISE FLAG 
2JHQ          LDX   2  JTIME               [SET TIME-UP POINT FOR   
2K3B ...      ADS   2  REWTIME(1)          [ANY REWINDING MTS   
2KH2          ADN   2  2000/K9             [HAVE WE REACHED 
2L2L    PB1   TXL   2  JTIME               [2 SECS SINCE ENTRY TO PMWINDDN  
2LG= ...      BCC      PB1                 [J IF NOT
2L^W    #   
2MFG          LDN   2  0                   [ELSE INITIALISE PERIPHL TYPE WORD   
2M^6 ...PB6   TXU   2  TEN(1)              [IS IT MX?   
2NDQ          BCC   PB2                    [J IF SO 
2NYB ...      TXU   2  XELEVEN(1)          [IS IT UX?   
2PD2          BCC   PB2                    [J IF SO 
2PXL ...      TXU   2  SIXTY3(1)           [IS IT CONSOLE T/W?  
2QC=          BCC   XTW                    [J IF SO SINCE END OF PERIPHL'S  
2QWW          FINDPEREC 3,APFOTY,2,XYZ  
2RBG          BNG   3  PB2                 [J IF NONE LEFT FOR THIS TYPE
2RW6          JWRONG   3,XYZ               [IGNORE IF WRONGED   
2S*Q          JUNBUSY  3,XYZ               [OR IF NOT BUSY  
2STB ...      STO   3  THREE(1) 
2T*2 ...      CALL  7  (JGNO2)            [ELSE GET GEOG NO. IN CHARS   
2TSL ...      LDX   3  THREE(1) 
2WRW          LTYPE 3,2                    [TEST TYPE FOR   
2X?G ...      TXU   2  XFIVE(1)            [MT  
2XR6          BCC   PB3                    [J IF SO 
2Y=Q ...      STO   5  MESSB+3(1)   
2YQB ...      LDN   5  MESSB(1)            [MESSAGE, STORE MESS ADDR
2^=2          BRN   PB4 
2^PL ...PB3   STO   5  MESSA+7(1)          [ REWIND MESSAGE 
329= ...      STO   5  TAPEBY(1)           [SET FLAG NON-ZERO   
32NW ...      LDN   5  MESSA(1)            [SET MESS ADDR CORRECTLY 
338G ...PB4   STO   5  3
33N6 ...      CALL  7  (JCONOUT)            [OUTPUT MESSAGE 
347Q ...      LDX   3  THREE(1)            [RECOVER PREVIOUS POINTER
3572          BRN   XYZ                    [LOOP ON DEVICE LIST 
366=    PB2   ADN   2  1                   [UPDATE TYPE 
36KW          BRN   PB6                    [AND CONTINUE CHECKING   
375G ...XTW   LDX   5  TAPEBY(1)           [FLAG SET?   
37K6 ...      BZE   5  (JPMSEG)            [FINISHED IF NOT 
384Q ...XTW2  LDX   5  XFIVE(1)            [GET MT DEVICE TYPE  
38JB ...      LDX   2  REWTIME(1)          [IS TIME UP FOR REWINDING?   
39HL          TXL   2  JTIME
3=3=          BCS   XTW1                   [J IF SO 
3=GW          FINDPEREC 3,APFOTY,5,UVW  
3?2G ...      BNG   3  (JPMSEG)            [STOP IF NONE LEFT   
3?G6          JBUSY 3,XTW2                 [J IF BUSY TO CHECK TIMEUP   
3?^Q          BRN   UVW                    [ELSE GET NEXT MT
3#FB ...XTW1  LDX   2  XFIVE(1)            [SET TYPE 5  
3*DL          FINDPEREC 3,APFOTY,2,RST  
3*Y= ...      BNG   3  (JPMSEG)            [FINISH IF NONE LEFT 
3BCW          JUNBUSY  3,RST               [IGNORE IF NOT BUSY  
3BXG ...      STO   3  THREE(1)            [KEEP POINTER FOR RE-ENTRY   
3CC6 ...      CALL  7  (JGNO2)             [ELSE SET UP 
3CWQ ...      STO   5  MESSB+3(1)          [ MESSAGE AND
3DBB ...      LDN   3  MESSB(1) 
3DW2 ...      CALL  7  (JCONOUT)
3F*L ...      LDX   3  THREE(1)            [RECOVE PREVIOUS POINTER 
3FT=          BRN   RST                    [CONTINUE
3G#W    #   
3GSG    #   
3HRQ    #END
^^^^ ...02537426000200000000