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