{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMWINDDN84)}}
====== PMWINDDN84 ======
(George Source)
**Macros used:** [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:JBUSY|JBUSY]], [[george:macro:JUNBUSY|JUNBUSY]], [[george:macro:JWRONG|JWRONG]], [[george:macro:LTYPE|LTYPE]], [[george:macro:REWIND|REWIND]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:XYZ|XYZ]]
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