FINISHB867
(George Source)
Macros used: ACROSS, BROADCAST, BXE, COMERRX, COOR3, DOWN, ENDCOM, FPUT, FSHENTRY, GEOERR, GEOSTOP, INFORM, JBUSY, JWRONG, LINKSET, OUTPAR, RUNJSA, SEG, SEGENTRY, TRACE, UNQUEUE, UNSET
- FINISHB867.txt
226D ... SEG FINISHB,867,SECTION CENT 22=W ...[ 22C# ...[ 22HQ ...[ 22N8 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22SL ...[ 22^= FSHENTRY K1FINISHB,RETESTCG,RETESTCG,RETESTCG 23DW FSHENTRY K2FINISHB,,TOFREEBS,TOFREEBS 23YG FSHENTRY K3FINISHB,,TOSHUTDOWN,TOSHUTDOWN 24D6 SEGENTRY K4FINISHB,SECOND 24XQ SEGENTRY K5FINISHB,QENTRY5 25CB FSHENTRY K7FINISHB,QENTRY7,,QENTRY7 25X2 FSHENTRY K8FINISHB,,QENTRY8,QENTRY8 26BL FSHENTRY K9FINISHB,,QENTRY9,QENTRY9 26W= FSHENTRY K10FINISHB,,QENTRY10,QENTRY10 2764 ... SEGENTRY K11FINISHB,QENTRY11 27*W # 27FR ...XBACTRING 27KN ... +BACT+ACTRING 27PK ...# 2F6B [ 2G5L NL ENDCOM 2HJG STOPFIN 2J46 STO 1 GL1 2JHQ LDX 2 3 2K3B LDX 1 FX1 2KH2 LINKSET 2,NL+1(1) [ PUTS ENDCOM LINK IN ACTIVITY 2L2L CALL 0 UNSET 2LG= FPUT [ PUTS ACTIVITY ON ACTIVITY LIST 2L^W BRN (GL1) 2MFG [ 2M^6 [ S/R TO UNSET THE 'CURRENT FINISH ACTIVITY' BIT. FIRST IT TEST THAT 2NDQ [ THE BIT IS SET. 2NYB UNSET STO 0 GL2 2PD2 LDCT 0 #20 2PXL ANDX 0 EXT+11(2) 2QC= BNZ 0 X1 [ IF ZERO, THE BIT IS UNSET 2QWW GEOERR 0,OOPS! 2RBG X1 ERS 0 EXT+11(2) 2RW6 BRN (GL2) 2S*Q [ 2STB # SUBROUTINE TO FIND CPA FOR CANCEL OR SECOND FINISH 2T*2 SEEKCPA 2TSL LDN 2 BACT+ACTRING 2W#= XLOOP9 2WRW LDX 2 FPTR(2) 2X?G TXU 2 XBACTRING(1) 2XR6 BCC QEND9 2Y=Q LDX 3 2 2YQB SBN 3 ACTRING [ADJUST TO START OF BLOCK 2^=2 LDCH 0 ATYPE(3) 2^PL SBN 0 CPAT/64 329= BNZ 0 XLOOP9 32NW LDCT 0 #20 338G ANDX 0 EXT+11(3) [TEST IF FINISH 33N6 BZE 0 XLOOP9 [J IF NOT 3*Y= LDX 2 FX2 [RESET X2 3BCW EXIT 6 1 3BXG QEND9 3DBB EXIT 6 0 [EXIT 0 IF NOT FOUND 3DW2 # 3K=L # 7642 # 76HL # ENTRY POINT FOR SECOND FINISH COMMAND 773= # 77GW SECOND 782G CALL 6 SEEKCPA [FIND 1ST CPAT 78SG ... BRN XGER 78^Q #SKI K6FINISH>199-199 79FB TRACE 3,OLDFIN 79^2 LDCT 0 #20 7=DL ORS 0 EXT+11(2) [SET BIT IN NEW 7=Y= ZONG1 7?CW LDX 0 BACKCHAN(3) [CHECK IF NEED TO REMOVE 7?XG BZE 0 ZING [ACT FROM QUEUE/LIST 7#C6 LDCT 0 #200 7#WQ ANDX 0 BA1(3) 7*BB BZE 0 NOBSQ [J IF NOT ON BSA QUEUE 7*W2 COOR3 #62 [WAIT A WHILE 7B*L CALL 6 SEEKCPA 7BT= BRN TOOLATE 7C#W BRN ZONG1 7CSG NOBSQ 7D#6 LDX 2 3 7DRQ UNQUEUE 7F?B ZING CALL 1 STOPFIN [ END FIRST FINISH ACTIVITY 7P5B LDCT 0 #740 7PK2 ANDS 0 FINISH [CLEAR B4-23 OF FINISH 7WYW SOKNOLD 7XDG BZE 7 NOPAR [JOIN APPROPRIATE ROUTINE 7XY6 BNG 7 PHAST 85#2 ORS 4 FINISH [STORE TIME 85RL BRN WAIT 8MTQ # 8N*B # ENTRY POINT FOR CANCEL FINISH 8NT2 # 8P#L # 8PS= QENTRY5 [ 'CANCEL FINISH' ENTRY POINT 9726 LDX 6 FINISH 97FQ BPZ 6 NOFIN [ERROR IF NO PREVIOUS FINISH 97^B LDCT 0 #240 [TOO LATE IF EITHER BIT SET 98F2 ANDX 0 6 98YL BNZ 0 TOOLATE [J IF PAST TIME - TOO LATE 9#B2 LDCT 0 #600 9#TL ERS 0 HLSWAIT 9**= XNCLFN 9*SW LDN 5 0 [CLEAR MARKER 9B#G ZONG OUTPAR TIMENOW [ O/P TIME 9BS6 BNZ 5 OPS1 [J TO TELL OPS 9FPW BROADCAST HALLCLEAR [GIVE ALL CLEAR 9KLW BUX 5 ZONG [ROUND AGAIN 9L6G OPS1 9P4= INFORM 3,HALLCLEAR,1 9S^= CALL 6 SEEKCPA [FIND FINISH ACTIVITY 9TDW BRN XGER 9TYG #SKI K6FINISH>99-99 9WD6 TRACE 3,CANFIN 9WXQ ZANG1 9XCB LDX 0 BACKCHAN(3) [CHECK IF NEED TO 9XX2 BZE 0 ZANG [REMOVE ACT FROM QUEUE/LIST 9YBL LDCT 0 #200 9YW= ANDX 0 BA1(2) 9^*W BZE 0 NOTBS [J IF NOT ON BSTS QUEUE 9^TG COOR3 #62 [WAIT A WHILE =2*6 CALL 6 SEEKCPA =2SQ BRN TOOLATE =3#B BRN ZANG1 =3S2 NOTBS =4?L LDX 2 3 =4R= UNQUEUE =5=W ZANG CALL 1 STOPFIN [ END THE FINISH ACTIVITY =8N= STOZ FINISH [CLEAR FINISH WORD =JC= RUNJSA =JWW ENDCOM =KBG NOPAR =KW6 ACROSS FINISH,8 =L*Q # =LTB PHAST =M*2 ACROSS FINISH,9 =MSL # =N#= WAIT =NRW ACROSS FINISH,10 =P?G # =Y6= # =Y6T ...[ THIS SECTION IS ENTERED ACROSS FROM FINISH =Y7D ...[ WHEN MACRO "FNDELE ON" IS USED. =Y83 ...[ WAITS FOR END OF CONSOLE OUTPUT AND THEN =Y8L ...[ TERMINATES FINISH ACTIVITY WITH A GEOSTOP =Y99 ...QENTRY11 =Y9S ...STOP =Y=C ... LDN 4 BCONSOUT =Y?2 ... BXE 4 BCONSOUT,STOP20 [J IF CONS OUTPUT CHAIN EMPTY =Y?K ...[ =Y#8 ...STOP10 =Y#R ... COOR3 #53 [WAIT FOR END OF CONS OUTPUT =Y*B ... BRN STOP =Y*^ ...[ =YBJ ...STOP20 =YC7 ... LDN 4 63 =YCQ ... FINDPERE 3,APFOTY,4,STOP30 [SET X3 POINTING TO DEVICE LIST FOR =YD* ...[ CONSOLE T/W. STOP30 IS RE-ENTRY =YDY ... JWRONG 3,STOP30 [IF WRONGED LOOK FOR NEXT ONE =YFH ... JBUSY 3,STOP10 [IF BUSY GO TO WAIT =YG6 ...[ ALL CONSOLE OUTPUT FINISHED =YGP ... GEOSTOP STOP40(1) =YH# ...STOP40 16 =YHX ... 16HCLOSING DOWN NOW =YJG ...[ =YK5 ...[ =YKW XGER =^5G GEOERR 1,FINWRONG =^K6 XERFORMAT ?24Q CALL 1 ZERROR ?2JB +APFERR ?342 TOOLATE ?3HL CALL 1 ZERROR ?43= +HTOOLATE ?7DL NOFIN CALL 1 ZERROR ?7Y= +HNOFIN ?#SG ZERROR ?*#6 COMERRX 0(1) ?*RQ # ?FNQ #END ^^^^ ...550337150001