17 226R ... SEG GOTO,,CENT(COMMAND PROCESSOR),,G261,G286,G400 4 22?J ...[ 15 22D* ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 13 22K6 ...[ THIS EXCLUDES CODE UNDER #SKI G261 13 22PX ...[ AND UNDER #SKI G286 4 22WN ...[ 7 233F ...#OPT G261 = 0 6 238= ...#SKI G261&1 15 23*3 ...# WITH UGUG EDIT M261 (BACK PARAMETER IN GOTO) 7 23FS ...#OPT G286 = 0 6 23LK ...#SKI G286&1 14 23RB ...# WITH UGUG EDIT M286 (MULTI-COMMAND LINES) 6 23T4 ...#UNS G400 16 23WQ ...# THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK2 8 23YG [ THE ENTRY POINTS 19 24D6 [ THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT 11 24XQ SEGENTRY K1GOTO,QENTRY1 11 25CB SEGENTRY K2GOTO,QENTRY2 11 25X2 SEGENTRY K3GOTO,QENTRY3 11 26BL SEGENTRY K4GOTO,QENTRY4 11 26LD ... SEGENTRY K30GOTO,QENTRY30 4 26W= [ 4 27*W [ 20 27TG [ THIS SEGMENT CONTAINS THE ENTIRE CODING FOR THE GOTO COMMAND. 20 28*6 [ A SEARCH IS MADE FOR THE LABEL SPECIFIED IN THE GOTO COMMAND 21 28SQ [ WITHIN THE CURRENT MACRO DEFINITION FILE AND IF NOT FOUND THERE 20 29#B [ WITHIN ANY MACRO DEFINITION FILE AT A HIGHER LEVEL.ON FINDING 20 29S2 [ THE LABEL ALL COMMAND PROCESSOR LEVELS BELOW THAT AT WHICH THE 21 2=?L [ LABEL HAS BEEN FOUND ARE DELETED AND RETURN MADE TO THE COMMAND 11 2=R= [ PROCESSOR(SEGMENT COMPROB) 4 2?=W [ 20 2?QG [ THIS IS THE ENTRY PT FROM COMPROB SEGMENT WHEN A COMMAND ERROR 21 2#=6 [ HAS BEEN FOUND BETWEEN DELIMITERS . THE CODE AT K2GOTO IS TO SKIP 21 2#PQ [ TO THE STOPPER. THE SEARCH TERMINATES WHEN STOPPER IS FOUND,OR 20 2*9B [ WHEN A RETURN IS MADE TO A MACRO LEVEL WHICH IS NOT POSITIONED 21 2*P2 [ BETWEEN DELIMITERS,OR WHEN A RETURN IS MADE TO A LEVEL WHICH IS 9 2B8L [ NOT A MACRO LEVEL 4 2BN= [ 5 2C7W QENTRY2 7 2CMG LDN 4 1 18 2D76 STO 4 AWORK1(2) [SET MKR. FOR C.P. ENTRY 18 2DLQ MONOUT JSTOPER [ JUMP TO STOPPER MESSAGE 9 2F6B BRN SKIPSTOP 4 2FL2 [ 5 2G5L QENTRY1 8 2GK= LDX 4 GSIGN 6 2GQD ...#SKI G261&1 4 2GXL ...RU1 16 2H4W STO 4 AWORK1(2) [SET GOTO MARKER 10 2HJG MHUNTW 2,CPB,CALAS 9 2J46 LDX 7 CPBFSD(2) 16 2JHQ BNG 7 NMDF [J IF NOT AN MDF 19 2K3B PARABEG 1,TO(1) [HUNT FOR 1ST PARAMETER 'TO' 18 2KH2 MHUNT 3,CPB,CUNI [HUNT FOR 1ST PARAM 'TO' 9 2L2L LDX 5 ANUM(3) 15 2LG= BPZ 5 PFOUND [J IF FOUND 7 2L_W PARAPASS 10 2MFG MHUNT 3,CPB,CUNI 9 2M_6 LDX 5 ANUM(3) 17 2NDQ BNG 5 NOPARAM [J IF NO PARAMETER. 5 2NYB PFOUND 9 2PD2 BZE 5 NOPARAM 18 2PXL LDCH 6 APARA(3) [LOAD FIRST CHAR OF LABEL 9 2QC= TXL 6 TEN(1) 17 2QWW BCC SWL [JUMP IF NOT DIGIT. 6 2QXK ...#SKI G261&1 4 2QY# ...( 17 2Q_3 ...# P.ABBOTT/P.DUEMPERT BRAUNSCHWEIG DEN 6 OKTOBER 1975 18 2Q_Q ...# CLEANED UP BY J. THOMASON, U.I.J.P.C., NOVEMBER 1976 16 2R2F ...# REWRITTEN BY R.DANN,READING UNIV,DECEMBER 77 10 2R38 ... PARABEG 1,UP(1),,,0 10 2R3X ... MHUNT 3,CPB,CUNI 9 2R4L ... LDX 5 ANUM(3) 16 2R5* ... BNG 5 NUP [ J IF NO UP PARA 17 2R64 ... LDCT 0 #100 [ FLAG PARAM PRESENT 9 2R6R ... ORS 0 AWORK1(2) 7 2R7G ...NUP FREECORE 3 11 2R89 ... PARABEG 1,ZBACK(1),,,0 10 2R8Y ... MHUNT 3,CPB,CUNI 9 2R9M ... LDX 6 ANUM(3) 17 2R=B ... BNG 6 ZFREE [ J IF NO BACK PARA 17 2R?5 ... LDCT 6 #200 [ FLAG PARAM PRESENT 9 2R?S ... ORS 6 AWORK1(2) 7 2R#H ...ZFREE FREECORE 3 4 2R*= ...) 5 2RBG SKIPSTOP 9 2RW6 LDX 4 CPLEV(2) 17 2S*Q STO 4 EXT(2) [STORE CURRENT CPL 16 2STB MHUNTW 2,CPB,CALAS [HUNT FOR /CALAS 4 2T*2 PEX 17 2TSL LDX 5 CPBPROGLEV(2) [LOAD PT OR CARDLIKE 8 2W#= SMO FX2 18 2WRW STO 5 EXT+2 [STORE IN ACTIVITY BLOCK 10 2X?G LDX 6 CPBSTART(2) 8 2XR6 SMO FX2 8 2Y=Q STO 6 EXT+1 10 2YQB LDX 6 CPBSTOP(2) 8 2_=2 SMO FX2 8 2_PL STO 6 EXT+7 9 329= LDX 6 CPBFSD(2) 7 32NW LDX 7 6 15 338G ANDN 6 #77 [ISOLATE FSD 17 33N6 ANDX 7 MASKFSD(1) [CLEAR FSD FROM X7 8 347Q LDX 1 FX2 9 34MB STO 7 AWORK4(1) 9 3572 NGS 6 AWORK3(1) 18 35LL ANDN 5 1 [ISOLATE DELIMITER BIT 18 366= LDX 6 AWORK1(1) [J IF NOT GOTO COMMAND 8 36KW BPZ 6 P1 18 375G STO 7 AWORK2(1) [RECORD STARTING POSITION 18 37K6 P1 BNZ 5 Y4 [J IF DELIMITER BIT SET 21 384Q BPZ 6 NOSTOP [ JUMP IF NOT GOTO. STOPPER MISSING 8 38JB LDX 2 FX2 6 38KF ...#SKI G261&1 4 38LJ ...( 8 38MM ... LDCT 0 #100 9 38NQ ... ANDX 0 AWORK1(2) 9 38PT ... ERS 0 AWORK1(2) 9 38QY ... BNZ 0 NEWLEV 15 38S3 ... LDCT 0 #200 [ SEE IF BACK 9 38T6 ... ANDX 0 AWORK1(2) 18 38W9 ... BZE 0 STEPFILE [ NO - GO ON AS NORMAL 21 38X# ... ERS 0 AWORK1(2) [ CLEAR FLAG FOR NEXT CPLEV SEARCHED 9 38YC ... BRN REWIND 4 38_G ...) 7 392K ...#SKI G261&1$1 9 3942 BRN STEPFILE 8 39HL P2 LDX 2 FX2 7 3=3= LDN 7 1 17 3=GW ANDX 7 EXT+2(2) [TEST DELIMITER BIT 19 3?2G BNZ 7 Y2A [SEARCH FOR STOPPER IF SET 8 3?G6 P2A LDX 2 FX2 9 3?_Q LDX 0 AWORK4(2) 9 3#FB TXU 0 AWORK2(2) 17 3#_2 BCC NEWLEV [J IF BACK TO START 5 3*DL STEPFILE 9 3*Y= LDX 1 AWORK3(2) 18 3BCW STEP 0(1) [POINTER TO NEXT RECORD 8 3BXG LDN 7 #100 18 3CC6 ADS 7 AWORK4(2) [UPDATE POSITION COUNT 18 3CWQ BZE 3 REWIND [J IF END OF FILE REACHED 8 3DBB LDX 4 0(3) 7 3DW2 SBN 4 2 7 3F*L SLL 4 2 8 3FT= LDX 6 1(3) 8 3G#W SRL 6 22 8 3GSG BZE 6 QV 7 3H#6 SBN 4 4 7 3HRQ ADX 4 6 4 3J?B QV 7 3JR2 LDN 0 1 20 3K=L STO 0 ACOMMUNE3(2) [MKER TO INDICATE LABEL SEARCH 16 3KQ= MHUNT 2,CPB,CUNI [FIND UNI BLOCK 19 3L9W LDX 0 ANUM(2) [LOAD NO OF CHARS IN PARAM 8 3LPG ANDN 0 #7777 7 3M96 ADN 3 2 19 3MNQ ADN 2 APARA [ADD POINTER TO FIRST CHAR 18 3N8B P3 CALL 7 PCON [CONVERT THE CHARACTER 17 3NN2 BRN P2 [J IF END CHAR FOUND 9 3P7L TXU 5 SPACE(1) 16 3PM= BCS SNICK [J IF NOT SPACE 8 3Q6W SMO FX2 20 3QLG STOZ ACOMMUNE3 [SET SWITCH -CANNOT BE DELIMITER 17 3R66 BCT 4 P3 [J IF COUNT UNEXPIRED 8 3RKQ BRN P2 5 3S5B SNICK 7 3SK2 TXL 4 0 18 3T4L BCS PSTART [J IF CANNOT BE A LABEL 9 3TJ= TXL 5 TEN(1) 16 3W3W BCC PSTART [J IF NOT A DIGIT 21 3WHG CALL 7 SLABEL [S/R TO CHECK IF IS MATCHING LABEL 14 3X36 BRN P2 [NO MATCH 15 3XGQ BRN TWOQL [LABEL FOUND 16 3Y2B CALL 7 PCON [MAY BE LABEL --- 20 3YG2 BRN TWOQL [TERM FOUN , THUS LABEL MATCHES 9 3Y_L TXU 5 SPACE(1) 19 3_F= BCS P2 [NOT A SPACE THUS NO MATCH 19 3_YW [ THIS SECTION IS ENTERED WHEN THE LABEL HAS BEEN FOUND.ALL 21 42DG [ COMMAND PROCESSOR LEVELS BELOW THAT AT WHICH THE LABEL HAS BEEN 20 42Y6 [ FOUND ARE DELETED , AND ALL MACRO DEFINITION FILES ASSOCIATED 12 43CQ [ WITH THESE LEVELS ARE CLOSED 5 43XB TWOQL 8 44C2 LDX 2 FX2 9 44WL LDX 4 EXT(2) 9 45B= LDX 0 AWORK4(2) 9 45TW BPZ 0 PLABFOUND 7 46*G NGNC 0 1 9 46T6 ANDS 0 AWORK4(2) 9 47#Q TXU 4 CPLEV(2) 9 47SB BCS PLABFOUND 8 48#2 MHUNTW 3,CLB 9 48RL ADN 3 CLBFIR 8 49?= LDCH 0 0(3) 8 49QW SBN 0 10 9 4==G BPZ 0 PLABFOUND 8 4=Q6 SMO FX1 8 4?9Q LDX 7 NLOOP 8 4?PB BRN RERR 6 4#92 PLABFOUND 17 4#NL CALL 5 SENDCOM [S/R TO CLEAR UP ETC. 6 4#PS ...#SKI G286&1 4 4#R2 ...( 8 4#S8 ... MHUNTW 3,CLB 9 4#TB ... LDX 3 FPTR(3) 9 4#WJ ... LDX 0 ATYPE(3) 8 4#XQ ... SRL 0 12 10 4#YY ... SBN 0 IUSER+HULL 8 4*26 ... BNZ 0 XCCS 19 4*3# ... FREECORE 3 [ IF IUSER EXISTS AT CURRENT 18 4*4G ... [ C P LEVEL THEN FREE IT 4 4*5N ...XCCS 4 4*6W ...) 6 4*8= ENDCOM 5 4*MW PSTART 8 4B7G SMO FX2 16 4BM6 LDX 6 ACOMMUNE3 [GET SWITCH WORD 19 4C6Q BZE 6 P2 [J IF RECORD CANNOT BE DELIM 8 4CLB LDX 2 FX2 7 4D62 LDN 7 1 17 4DKL ANDX 7 EXT+2(2) [ISOLATE DELIM. BIT 17 4F5= BNZ 7 PST1 [J IF DELIM BIT SET 17 4FJW LDN 2 EXT+1(2) [SET PTR TO STARTER 8 4G4G BRN PST2 17 4GJ6 PST1 LDN 2 EXT+7(2) [SET PTR TO STOPPER 4 4H3Q PST2 19 4HHB LDN 0 4 [SET COUNT OF STOPPER CHARS 7 4J32 TXL 4 0 18 4JGL BCS P2 [J IF CANNOT BE STARTER 18 4K2= CALL 7 SLABEL [S/R TO CHECK FOR STARTER 14 4KFW BRN P2 [NO MATCH 15 4K_G BRN / [MATCH FOUND 15 4LF6 LDN 7 1 [ MATCH FOUND 8 4LYQ LDX 2 FX2 9 4MDB ANDX 7 EXT+2(2) 17 4MY2 BZE 7 PST3 [J IF DELIM BIT UNSET 10 4NCL LDX 7 MASKFSD(1) 18 4NX= ANDS 7 EXT+2(2) [CLEAR DELIM BIT + B22 8 4PBW BRN P2A 4 4PWG PST3 7 4QB6 LDN 7 1 9 4QTQ ORS 7 EXT+2(2) 18 4R*B BRN P2A [J TO OMIT DELIM CHECK 4 4RT2 # 21 4S#L [ THIS IS THE ENTRY FOR THE EXIT COMMAND -THIS COMMAND CAUSES THE 21 4SS= [ CURRENT BOTTOM MACRO TO TERMINATE.IF THE CP IS POSITIONED 21 4T?W [ BETWEEN DELIMITERS AT NEXT LEVEL,A SEARCH FOR THE STOPPER 8 4TRG [ IS MADE. 20 4W?6 [ THE SEARCH TERMINATES WHEN STOPPER IS FOUND,OR MACRO LEVEL NOT 20 4WQQ [ BETWEEN DELS. OR A LEVEL WHICH IS NOT AN MDF IS REACHED 4 4X=B [ 6 4X=Q ...#UNS G400 4 4X?6 ...#SKI 4 4X?G ...( 5 4X?W ...QENTRY30 9 4X#= ... BRN (GEOERR) 4 4X#L ...) 6 4X*2 ...#UNS G400 4 4X*B ...( 5 4X*Q ...QENTRY30 8 4XB6 ... TESTHKN XDSK1 9 4XBG ... TRACE 0(2),BEFORE 13 4XBW ... PARAPASS [PASS PARAMETER 9 4XC= ... TRACE 0(2),AFTER 10 4XCL ... HUNT 2,CPB,CUNI 14 4XD2 ... LDX 4 APARA(2) [PARAM 14 4XDB ... LDX 5 ANUM(2) [COUNT 7 4XDQ ... FREECORE 2 7 4XF6 ... SBN 5 2 18 4XFG ... BNZ 5 XDSK1 [IGNORE IF NOT 2 CHARS 18 4XFW ... ANDX 4 YDSK1(1) [MASK FOR FIRST TWO CHARS 9 4XG= ... TXU 4 YDSK2(1) 15 4XGL ... BCS XDSK2 [J UNLESS BA 7 4XH2 ... LDN 4 1 9 4XHB ... BRN XDSKB 9 4XHQ ...XDSK2 TXU 4 YDSK3(1) 15 4XJ6 ... BCS XDSK3 [J UNLESS BB 7 4XJG ... LDN 4 3 8 4XJW ... BRN XDSKB 9 4XK= ...XDSK3 TXU 4 YDSK4(1) 14 4XKL ... BCC XDSKC [J IF CE 9 4XL2 ... TXU 4 YDSK5(1) 14 4XLB ... BCC XDSKO [J IF OB 9 4XLQ ... TXU 4 YDSK6(1) 14 4XM6 ... BCC XDSKR [J IF RC 9 4XMG ... TXU 4 YDSK7(1) 13 4XMW ... BCC XDSKM [J IF MR 9 4XN= ... TXU 4 YDSK8(1) 15 4XNL ... BCC XDSKA [J IF AB 5 4XP2 ...XDSK1 4 4XPB ...) 5 4XQ2 QENTRY3 10 4Y9L MHUNTW 3,CPB,CALAS 9 4YP= LDX 7 CPBFSD(3) 16 4_8W BNG 7 NMDF [J IF NOT AN MDF 9 4_NG LDX 4 CPLEV(2) 18 5286 SBN 4 1 [REDUCE CURRENT CPLEVEL 16 52MQ HUNT2 3,CPB,CALAS [GET NEXT /CALAS 9 537B LDX 7 CPBFSD(3) 18 53M2 BPZ 7 Z1 [J IF IS A MACRO LEVEL 16 546L Z5 STO 4 CPLEV(2) [STORE NEW LEVEL 17 54L= ENDCOM [END OF EXIT COMMAND 10 555W Z1 LDX 5 CPBPROGLEV(3) 17 55KG STO 5 EXT+2(2) [COPY INF. TO CPAT 17 5656 ANDN 5 1 [ISOLATE DELIM BIT 18 56JQ BZE 5 Z5 [J IF NOT BETWEEN DELS 21 574B LDX 5 CPBSTOP(3) [ GOING UP A LEVEL. COPY NEW STOPPER 15 57J2 STO 5 EXT+7(2) [ INTO CPAT 18 583L CLEANUP 4,3 [DELETE CURRENT CPLEVEL 18 58H= MONOUT JSTOPER [^SEARCHING FOR STOPPER^ 18 592W STOZ AWORK1(2) [MARKER FOR EXIT COMMAND 9 59GG STO 4 EXT(2) 7 5=26 LDX 5 7 15 5=FQ ANDN 5 #77 [ISOLATE FSD 10 5=_B ANDX 7 MASKFSD(1) 9 5?F2 STO 7 AWORK4(2) 9 5?YL NGS 5 AWORK3(2) 4 5#D= # 17 5#XW [ THIS IS THE ROUTINE WHICH SEARCHES FOR THE STOPPER 4 5*CG # 4 5*X6 Y2A 8 5BBQ LDX 2 FX2 9 5BWB LDX 7 AWORK1(2) 18 5CB2 BPZ 7 Y4 [J IF NOT GOTO COMMAND 9 5CTL LDX 7 AWORK4(2) 9 5D*= TXU 7 AWORK2(2) 19 5DSW BCC NEWLEV [J IF SEARCHED ALL THE FILE 4 5F#G Y4 8 5FS6 SMO FX2 15 5G?Q LDX 1 AWORK3 [RELOAD FSD 8 5GRB STEP 0(1) 17 5H?2 LDN 7 #100 [UPDATE RECORD COUNT 9 5HQL ADS 7 AWORK4(2) 21 5J== BZE 3 REWINDA [J IF NO STOPPER BEFORE END OF FILE 8 5JPW LDEX 4 0(3) 7 5K9G SBN 4 2 7 5KP6 SLL 4 2 8 5L8Q LDX 6 1(3) 8 5LNB SRL 6 22 8 5M82 BZE 6 Y3 7 5MML SBN 4 4 7 5N7= ADX 4 6 19 5NLW Y3 ADN 3 2 [SET X3 TO START OF RECORD 4 5P6G Y2 8 5PL6 SMO FX2 17 5Q5Q LDN 2 EXT+7 [X2 TO PT TO STOPPER 17 5QKB LDN 0 4 [STOPPER CHAR COUNT 7 5R52 TXL 4 0 18 5RJL BCS Y2A [J IF CANNOT BE STOPPER 18 5S4= CALL 7 SDELIM [S/R TO CHECK FOR STOPPER 14 5SHW BRN Y2A [NO MATCH 7 5T3G BRN / 7 5TH6 LDN 7 3 8 5W2Q LDX 2 FX2 9 5WGB ORS 7 EXT+2(2) 17 5X22 ERS 7 EXT+2(2) [UNSET DELIMITER BITS 9 5XFL LDX 7 AWORK1(2) 8 5X_= BNG 7 P2 5 5YDW SKIPEND 8 5YYG LDX 2 FX2 16 5_D6 LDX 4 EXT(2) [LOAD TERM LEVEL 15 62CB CALL 5 SENDSKIP [CLEAN UP ETC 9 62X2 CALL 6 OUTPUT 15 636S BZE 7 X4 [J IF EXIT COMMAND 19 63BL UP [RETURN TO CP ERROR ROUTINE 4 63W= [ 5 64*W NOSTOP 19 64TG LDN 7 0 [ X7=0 => NO STOPPER FOUND 9 65*6 BRN SKIPEND 4 65SQ [ 4 66#B X4 9 69PQ LDX 0 EXT+8(2) 8 6=9B BNG 0 THEND 6 6=P2 ENDREC 20 6?8L [ THE FOLLOWING SUBROUTINE OUTPUTS THE STOPPER WHICH ENDED THE 6 6?N= [ SEARCH 5 6#7W OUTPUT 17 6#MG BZE 7 SUPPRESS [J IF STOPPER MISSING 8 6*76 SBX 6 FX1 7 6*LQ LDN 4 4 9 6B6B OUTEXES 4,EXT+7 15 6BL2 OUTPAR TIMENOW [ O/P TIME 9 6C5L MONOUT ACOMJT 8 6CK= ADX 6 FX1 5 6D4W SUPPRESS 7 6DJG EXIT 6 0 4 6F46 # 19 6FHQ [ THE FOLLOWING SUBROUTINE FINDS THE RELEVANT CALAS BLOCK 9 6G3B RECH LDX 2 FPTR(2) 9 6GH2 LDX 0 ATYPE(2) 8 6H2L SRL 0 12 9 6HG= ERN 0 CPB+CALAS 8 6H_W BNZ 0 RECH 16 6JFG LDEX 0 CPBCPLEV(2) [LOAD CP LEVEL 7 6J_6 TXU 0 4 8 6KDQ BCS RECH 7 6KYB EXIT 7 0 5 6LD2 NEWLEV 9 6LXL LDX 4 EXT(2) 16 6MC= SBN 4 1 [REDUCE CPLEVEL 9 6MWW STO 4 EXT(2) 8 6NBG CALL 7 RECH 6 6NHN ...#SKI G261&1 8 6NNW ... LDX 1 FX1 9 6NW6 LDX 7 CPBFSD(2) 16 6P*Q BPZ 7 PEX [J IF MACRO LEVEL 8 6PTB SMO FX2 9 6Q*2 LDX 5 AWORK1 21 6QSL BPZ 5 PEX [ STOPPER MISSING. TIDY UP AND END 8 6R#= LDX 1 FX1 9 6RRW LDX 7 NFLAB(1) 8 6S?G BRN RERR 4 6SR6 [ 5 6T=Q REWINDA 8 6TQB LDX 2 FX2 9 6W=2 LDX 0 AWORK1(2) 9 6WPL BPZ 0 NEWLEV 5 6X9= REWIND 18 6XNW STOZ AWORK4(2) [ZEROISE RUNNING COUNT 9 6Y8G LDX 1 AWORK3(2) 8 6YN6 REWIND 0(1) 10 6_7Q LDX 3 MASKFSD(1) 17 6_MB ANDS 3 EXT+2(2) [LOSE DELIMITER BITS 8 7272 BRN P2 4 72LL # 17 736= [ THE FOLLOWING S/R OBTAINS NEXT CHAR FROM RECORD 16 73KW [ AND CONVERTS IT TO PAPER TAPE IF NECESSARY 4 745G # 4 74K6 PCON 8 754Q LDCH 5 0(3) 7 75JB BCHX 3 / 10 7642 TXL 5 SEVFOUR(1) 17 76HL BCS NORD [J IF ORDINARY CHAR 8 773= SMO FX2 16 77GW LDX 6 EXT+2 [LOAD PT OR CLIKE 16 782G BNG 6 NORD [J IF CARD LIKE 9 78G6 TXU 5 SEVSIX(1) 17 78_Q BCS NIGN [J IF NOT DELTA SHIFT 8 79FB BCT 4 WUD 17 79_2 BRN TERM [J IF COUNT EXPIRED 8 7=DL WUD LDCH 5 0(3) 7 7=Y= BCHX 3 / 17 7?CW TXL 5 TWOSCORE(1) [J IF SMALL CHARACTER 8 7?XG BCS W108 18 7#C6 ORN 5 #14 [MAKE INTO TRUE CHARACTER 8 7#WQ BRN NORD 4 7*BB W108 15 7*W2 TXU 5 THIRTEEN(1) [THIS SECTION 15 7B*L BCC TERM [LOOKS FORM 15 7BT= TXU 5 TWEN4(1) [A TERMINATOR 8 7C#W BCC TERM 10 7CSG TXL 5 THIRSIX(1) 8 7D#6 BCC NIGN 10 7DRQ TXL 5 THIRTWO(1) 8 7F?B BCC TERM 9 7FR2 WOOF TXU 5 TAB(1) 8 7G=L BCS NIGN 17 7GQ= LDN 5 #20 [SET SPACE FOR TAB 7 7H9W NORD EXIT 7 1 8 7HPG NIGN BCT 4 PCON 7 7J96 TERM EXIT 7 0 4 7JNQ # 19 7K8B [ THE FOLLOWING S/R CHECKS RECORD AGAINST LABEL OR DELIMITER 4 7KN2 # 11 7L7L [ ENTRY POINT FOR LABEL CHECK 5 7LM= SLABEL 8 7M6W SMO FX2 15 7MLG STO 7 ACOMMUNE1 [STORE LINK 8 7N66 BRN SL1 5 7NKQ SDELIM 8 7P5B SMO FX2 9 7PK2 STO 7 ACOMMUNE1 8 7Q4L SL0 CALL 7 PCON 16 7QJ= BRN SL2 [J IF TERM FOUND 16 7R3W SL1 LDCH 6 0(2) [GET NEXT CHAR 14 7RHG BCHX 2 / [UPDATE 7 7S36 TXU 5 6 16 7SGQ BCS SL2 [J IF NO MATCH 15 7T2B BCT 4 SL4 [COUNT UNEXP. 19 7TG2 BCT 0 SL2 [J IF DELIM/LAB COUNT UNEXP. 8 7T_L SMO FX2 15 7WF= LDX 7 ACOMMUNE1 [RESTORE LINK 7 7WYW EXIT 7 1 17 7XDG SL4 BCT 0 SL0 [BOTH COUNTS UNEXP. 8 7XY6 SMO FX2 9 7YCQ LDX 7 ACOMMUNE1 7 7YXB EXIT 7 2 8 7_C2 SL2 SMO FX2 9 7_WL LDX 7 ACOMMUNE1 7 82B= EXIT 7 0 4 82TW # 20 83*G [ THE FOLLOWING S/R CLEANS UP AT END OF GOTO COMMAND OR BEFORE 8 83T6 [ RETURNING TO CP 4 84#Q # 5 84SB SENDSKIP 15 85#2 LDN 6 0 [SET SWITCH 8 85RL BRN SCLN 5 86?= SENDCOM 15 86QW LDN 6 #100 [SET SWITCH 8 87=G SCLN SBX 5 FX1 8 87Q6 CLEANUP 4,3 10 889Q MHUNTW 3,CPB,CALAS 9 88PB LDX 0 CPBFSD(3) 8 8992 BNG 0 SCLN2 15 89NL ANDN 0 #77 [ISOLATE FSD 16 8=8= ORX 0 AWORK4(2) [ADD IN REC.COUNT 15 8=MW SBX 0 6 [ADJUST COUNT 17 8?7G STO 0 CPBFSD(3) [STORE BACK IN /CALAS 9 8?M6 LDX 0 EXT+2(2) 18 8#6Q STO 0 CPBPROGLEV(3) [STORE DELIM WORD ETC. 5 8#LB SCLN2 18 8*62 STO 4 CPLEV(2) [SET NEW CP LEVEL IN CPAT 16 8*KL BZE 6 SEND1 [J IF CP RETURN 7 8B5= BACKSPACE 5 8BJW SEND1 8 8C4G ADX 5 FX1 7 8CJ6 EXIT 5 0 17 8D3Q [ THIS SECTION IS THE ENTRY FOR THE BRACKETS COMMAND 4 8DHB [ 5 8F32 QENTRY4 10 8FGL MHUNTW 3,CPB,CALAS 9 8G2= LDX 7 CPBFSD(3) 18 8GFW BNG 7 NMDF [J IF NOT A MACRO LEVEL 10 8G_G LDX 6 CPBSTART(3) 21 8HF6 STO 6 AWORK1(2) [STORE CURRENT STARTER AND STOPPER 15 8HYQ LDX 6 CPBSTOP(3) [IN THE CPAT 9 8JDB STO 6 AWORK2(2) 7 8JY2 PARANUMB 6 17 8KCL BZE 6 THEND [J. IF NO PARS. GIVEN 7 8KX= ERN 6 1 19 8LBW BNZ 6 TWOPARS [J IF MORE THAN 1 PARAMETER 18 8LWG CALL 5 SR1 [S/R TO GET 1ST PAR ETC. 19 8MB6 BRN THEND [J. IF PAR NULL/NON-EXISTENT 9 8MTQ TXU 6 PHOUR(1) 19 8N*B BCC TBR1 [J IF ONLY 4 CHARS IN PAR. 19 8NT2 SRL 7 12 [MOVE PAR TYPE INTO L.S.HALF 8 8P#L TXL 7 TO(1) 19 8PS= BCS TBR1 [J.IF PAR IS NOT TYPE 2 OR 3 17 8Q?W STO 6 AWORK3(2) [REMEMBER CHAR COUNT 21 8QRG ORX 7 GSIGN [SET MKR - SPECIAL CASE WHERE CP.MAY 21 8R?6 [NOT HAVE NOTICED SEPARATOR (POSS.)! 15 8RQQ LDN 6 4 [SET CT. TO 4 18 8S=B TBR1 STO 3 AWORK4(2) [REMEMBER PTR. TO /CUNI 9 8SQ2 LDN 2 AWORK1(2) 21 8T9L CALL 5 SR2 [S/R TO DEPOSIT PAR INTO AWORK AREA 18 8TP= BPZ 7 PCHEK [J IF IS NOT SPECIAL CASE 8 8W8W LDX 2 FX2 9 8WNG LDX 6 AWORK3(2) 19 8X86 SBN 6 4 [NO OF CHARS LEFT OF 1ST PAR 18 8XMQ TBR2 LDCH 4 APARA(3) [GET NEXT CHAR FROM /CUNI 17 8Y7B BCHX 3 / [& UPDATE CHAR INDEX 9 8YM2 TXU 4 TCOMMA(1) 17 8_6L BCC TBR3 [J IF COMMA DETECTED 8 8_L= BCT 6 TBR2 19 925W BRN PCHEK [J IF NO STOPPER PAR GIVEN 15 92KG TBR3 SBN 6 1 [REDUCE COUNT 18 9356 BZE 6 PCHEK [J IF NO STOPPER GIVEN 7 93JQ LDN 5 1 9 944B SMO AWORK4(2) 19 94J2 ADS 5 JPARNUM [INCREASE PAR NO. IN /CUNI 9 953L TBR4 LDCH 4 APARA(3) 9 95H= TXU 4 SPACE(1) 18 962W BCS TBR5 [J IF CHAR IS NOT A SPACE 7 96GG BCHX 3 / 8 9726 BCT 6 TBR4 16 97FQ BRN PCHEK [NO STOPPER GIVEN 10 97_B TBR5 MHUNT 2,CPB,CUNI 9 98F2 LDN 4 APARA(2) 8 98YL ADN 3 APARA 7 99D= SMO 6 7 99XW MVCH 3 0 18 9=CG STO 6 ANUM(2) [STORE NEW CHAR. COUNT 18 9=X6 LDX 3 2 [SET X3 TO POINT TO /CUNI 9 9?BQ TXL 6 PHOUR(1) 17 9?WB BCS ZERR [J IF < 4 CHARS LEFT 8 9#B2 BRN TBR6 5 9#TL TWOPARS 16 9**= CALL 5 SR1 [GET 1ST PAR ETC. 19 9*SW BRN TBR7 [J IF PAR NULL/NON EXISTENT 16 9B#G LDN 6 4 [SET COUNT TO 4 9 9BS6 LDN 2 AWORK1(2) 8 9C?Q CALL 5 SR2 4 9CRB TBR7 16 9D?2 CALL 5 SR1 [GET 2ND PAR ETC 19 9DQL BRN PCHEK [J IF PAR NULL/NON-EXISTENT 7 9F== TBR6 LDN 6 4 8 9FPW SMO FX2 9 9G9G LDN 2 AWORK2 8 9GP6 CALL 5 SR2 8 9H8Q PCHEK LDX 2 FX2 9 9HNB LDX 4 AWORK1(2) 9 9J82 TXU 4 AWORK2(2) 20 9JML BCC ZERR1 [J IF STARTER &STOPPER ARE SAME 10 9K7= MHUNTW 3,CPB,CALAS 9 9KLW LDX 4 AWORK1(2) 16 9L6G STO 4 CPBSTART(3) [STORE STARTER 9 9LL6 LDX 4 AWORK2(2) 16 9M5Q STO 4 CPBSTOP(3) [STORE STOPPER 5 9MKB THEND 17 9N52 ENDCOM [ END OF COMMAND 4 9NJL # 19 9P4= [ THE FOLLOWING S/R GETS NEXT PARAMETER AND TESTS IF THE CHAR 11 9PHW [ COUNT FOR THIS PARAM IS <4 4 9Q3G # 8 9QH6 SR1 SBX 5 FX1 7 9R2Q SPARAPAS 8 9RGB ADX 5 FX1 15 9S22 MHUNT 3,CPB,CUNI [FIND /CUNI 9 9SFL LDX 7 ANUM(3) 15 9S_= BNG 7 SR1A [PARAM NON-X 15 9TDW BZE 7 SR1A [PARAM NULL 8 9TYG LDN 6 #7777 17 9WD6 ANDX 6 7 [ISOLATE CHAR COUNT 9 9WXQ TXL 6 PHOUR(1) 15 9XCB BCS ZERR [REPORT ERROR 7 9XX2 EXIT 5 1 7 9YBL SR1A EXIT 5 0 4 9YW= # 20 9_*W [ THE FOLLOWING S/R DEPOSITS DELIMITER IN CPAT IF THERE ARE NO 7 9_TG [ ERRORS IN IT 4 =2*6 # 18 =2SQ SR2 LDCH 4 APARA(3) [GET NEXT CHAR FROM /CUNI 9 =3#B TXL 4 TEN(1) 15 =3S2 BCS ZERR [J IF DIGIT 9 =4?L TXL 4 TLHB(1) 8 =4R= BCC SR2A 8 =5=W TXL 4 TA(1) 16 =5QG BCC ZERR [J IF ALPHABETIC 10 =6=6 TXU 4 PERCENT(1) 14 =6PQ BCC ZERR [J IF % 9 =79B TXU 4 THASH(1) 14 =7P2 BCC ZERR [J IF # 10 =88L TXU 4 THYPHEN(1) 15 =8N= BCC ZERR [J IF HYPHEN 9 =97W TXU 4 TCOMMA(1) 15 =9MG BCC ZERR [J IF COMMA 9 ==76 TXU 4 SPACE(1) 15 ==LQ BCC ZERR [J IF SPACE 8 =?6B SR2A DCH 4 0(2) 7 =?L2 BCHX 2 / 7 =#5L BCHX 3 / 8 =#K= BCT 6 SR2 7 =*4W EXIT 5 0 4 =*JG # 15 =B46 [ THIS SECTION IS FOR COMMAND ERROR REPORTS 4 =BHQ # 20 =C3B [ COMMAND ERROR WHEN THERE IS NO LABEL PARAMETER SPECIFIED IN 9 =CH2 [ THE GOTO COMMAND 5 =D2L NOPARAM 9 =DG= LDX 7 PARM(1) 9 =D_W LDX 6 PLAB(1) 9 =FFG BRN RERROR 19 =F_6 [ COMMAND ERROR WHEN THE LABEL SPECIFIED IN THE GOTO COMMAND 12 =GDQ [ DOES NOT START WITH A DIGIT 9 =GYB SWL LDX 7 NDLAB(1) 8 =HD2 BRN RERR 21 =HXL [ COMMAND ERROR WHEN EITHER PARAMETER OF THE BRACKETS COMMAND HAS 10 =JC= [ AN INCORRECT FORMAT 13 =JWW [ THE BRACKETS COMMAND ARE THE SAME 21 =KBG [ COMMAND ERROR WHEN THE STARTER & STOPPER GIVEN AS PARAMETERS OF 4 =KW6 # 5 =L*Q ZERR1 9 =LTB LDX 7 NSAME(1) 8 =M*2 BRN RERR 11 =MSL [ ERROR MESSAGE IDENTIFIERS 4 =N#= # 9 =NRW NFLAB +JFLAB 9 =P?G NDLAB +JDLAB 4 =PR6 ZERR 10 =Q=Q LDX 7 NAPFERR(1) 4 =QQB RERR 7 =R=2 NGN 6 1 5 =RPL RERROR 8 =S9= COMERRX 7,6 9 =SNW NMDF LDX 7 TMDF(1) 15 =T8G [ BRACKETS IS NOT A MACRO DEFINITION FILE 20 =TN6 [ COMMAND ERROR WHEN THE SOURCE OF COMMAND FOR GOTO,EXIT OR 8 =W7Q BRN RERR 9 =WMB NAPFERR +APFERR 9 =X72 NSAME +HSAME 8 =XLL TMDF +JMDF 7 =Y6= PARM +JPARMIS 6 =YKW PLAB +JLAB 9 =_5G NLOOP +JCOMLOOP 6 =_85 ...#SKI G261&1 4 =_=N ...( 9 =_*? ...ZBACK 4,4HBACK 9 =_CW ...UP +2,4HUP 4 =_GF ...) 9 =_K6 MASKFSD #77777700 8 ?24Q TLHB #73 8 ?2JB TA #41 8 ?342 PERCENT #25 8 ?3HL TCOMMA #34 8 ?43= THASH #23 8 ?4GW THYPHEN #35 8 ?52G SEVFOUR #74 8 ?5G6 SEVSIX #76 8 ?5_Q TWOSCORE #40 8 ?6FB THIRTEEN #13 8 ?6_2 TWEN4 #24 8 ?7DL THIRSIX #36 8 ?7Y= THIRTWO #32 8 ?8CW TAB #31 7 ?8XG SPACE #20 8 ?9C6 PHOUR +4 8 ?9WQ TEN +10 8 ?=BB TO +2 8 ?=W2 4HTO 6 ?=W5 ...#UNS G400 4 ?=W8 ...( 4 ?=W? ...# 9 ?=WB ...# EXIT WITH BREAKIN 3 ?=WF ... 11 ?=WJ ...XDSKB SETNCORE 2,3,IUSER,G400BLK 8 ?=WM ... STOZ A1(3) 18 ?=WQ ... STO 4 A1+1(3) [REMEMBER EXIT FOR COMPRO 8 ?=WT ... LDCT 0 #400 15 ?=WY ... ORS 0 JOBEVENTS(2) [MARK BREAKIN 8 ?=X3 ... BRN XDSK1 4 ?=X6 ...# 11 ?=X9 ...# EXIT WITH COMMAND ERROR 4 ?=X# ...# 8 ?=XC ...XDSKC LDCT 0 #400 17 ?=XG ... ORS 0 EXT+8(2) [MARK COMMAND ERROR 12 ?=XK ... HUNTC 3,COMDAT,CWHEN,WDSK1 10 ?=XN ... GEOERR 0,NEVER??? 9 ?=XR ...WDSK1 LDX 3 FPTR(3) 9 ?=XW ... LDX 0 ATYPE(3) 8 ?=X_ ... SRL 0 12 8 ?=Y4 ... SBN 0 CPB 18 ?=Y7 ... BZE 0 XDSK1 [ J IF NEXT COMMAND LEVEL 17 ?=Y= ... ADN 0 #4777 [ COMDAT+CWHEN-CPB 8 ?=Y* ... BNZ 0 WDSK1 7 ?=YD ... FREECORE 3 8 ?=YH ... BRN XDSK1 4 ?=YL ...# 10 ?=YP ...# EXIT OBEY COMMAND 4 ?=YS ...# 14 ?=YX ...XDSKO LDN 5 1 [MARK 'OBEY' 9 ?=_2 ... BRN XDSKR1 4 ?=_5 ...# 10 ?=_8 ...# EXIT WITH MONRESUM 4 ?=_? ...# 16 ?=_B ...XDSKM HUNT 3,IUSER,G400BLK [LOOK FOR MARKER BLK 8 ?=_F ... BNG 3 XDSK1 8 ?=_J ... LDX 0 A1(3) 7 ?=_M ... SBN 0 5 18 ?=_Q ... BNZ 0 XDSK1 [CONTINUE IF NO MARKER 7 ?=_T ... NGN 0 1 14 ?=_Y ... STO 0 A1+1(3) [NOTE MR 8 ??23 ... BRN XDSK1 4 ??26 ...# 9 ??29 ...# EXIT ABANDON 4 ??2# ...# 11 ??2C ...XDSKA SETNCORE 1,3,IUSER,G400BLK 8 ??2G ... MHUNT 2,CLB 9 ??2K ... HUNT2OPT 2,CLB,0 9 ??2N ... BPZ 2 XDSKA1 7 ??2R ... FREECORE 3 8 ??2W ... BRN XDSK1 5 ??2_ ...XDSKA1 7 ??34 ... CHAIN 3,2 7 ??37 ... LDN 0 6 15 ??3= ... STO 0 A1(3) [MARKER,AB EXIT 13 ??3* ... BRN XDSK1 [CONTINUE 8 ??3D ...XREF MHUNT 2,CLB 11 ??3H ... HUNT2J 2,CLB,0,,ZFAIL 7 ??3L ... EXIT 1 0 4 ??3P ...# 11 ??3S ...# EXIT REPLACE COMMAND 4 ??3X ...# 15 ??42 ...XDSKR LDN 5 0 [MARK 'REPLACE' 7 ??45 ...XDSKR1 PARAPASS 10 ??48 ... HUNT 2,CPB,CUNI 9 ??4? ... LDX 4 ANUM(2) 7 ??4B ... FREECORE 2 9 ??4F ... STO 5 AWORK1(2) 8 ??4J ... BZE 4 ZERR 9 ??4M ... BPZ 4 XDSKR2 8 ??4Q ... BZE 5 ZERR 9 ??4T ... BRN XDSKR3 13 ??4Y ...XDSKR2 SRL 4 12 [ TYPE 7 ??53 ... SBN 4 2 14 ??56 ... BNZ 4 ZERR [ NOT COM 7 ??59 ... LDN 4 2 8 ??5# ... SPARANXT ,,4 10 ??5C ... TESTREP UNPAIR,ZERR 8 ??5G ... MHUNT 3,CLB 11 ??5K ... HUNT2J 3,CLB,0,,ZFAIL 10 ??5N ... HUNT 2,CPB,CUNI 9 ??5R ... LDX 7 ANUM(2) 8 ??5W ... BZE 7 ZERR 8 ??5_ ... ANDN 7 #777 10 ??64 ... LDX 6 ANUMCHA(3) 9 ??67 ... BXE 6 7,NOCHN 9 ??6= ... BXL 7 6,NOCHN 7 ??6* ... SBX 7 6 7 ??6D ... ADN 7 3 16 ??6H ... SRL 7 2 [NO OF WORDS 15 ??6L ... ADX 7 ALOGLEN(3) [NEW SIZE 9 ??6P ... ALTLENG 3,7,XREF 8 ??6S ... MHUNTW 3,CLB 11 ??6X ... HUNT2J 3,CLB,0,,ZFAIL 10 ??72 ... HUNT 2,CPB,CUNI 9 ??75 ...NOCHN LDX 7 ANUM(2) 8 ??78 ... ANDN 7 #777 10 ??7? ... STO 7 ANUMCHA(3) 10 ??7B ... STO 7 APARANUM(3) 9 ??7F ... LDN 4 APARA(2) 9 ??7J ... LDN 5 CLBFIR(3) 7 ??7M ... SMO 7 7 ??7Q ... MVCH 4 0 9 ??7T ... LDX 3 BPTR(3) 10 ??7Y ... STOZ APARANUM(3) 7 ??83 ... NGN 4 1 10 ??86 ... STO 4 APARAFIR(3) 7 ??89 ... FREECORE 2 5 ??8# ...XDSKR3 9 ??8C ... LDX 4 CPLEV(2) 7 ??8G ... SBN 4 1 19 ??8K ... STO 4 CPLEV(2) [ REDUCE CP LEVEL 7 ??8N ... LDN 1 3 20 ??8R ... CLEANX 4,1 [ CLEAR UP EXIT LEVEL 9 ??8W ... LDX 5 AWORK1(2) 9 ??8_ ... BZE 5 XDSKR4 11 ??94 ... SETNCORE 1,3,IUSER,G400BLK 7 ??97 ... LDN 0 1 8 ??9= ... STO 0 A1(3) 7 ??9* ... LDN 5 0 5 ??9D ...XDSKR4 20 ??9H ... ACROSS ALASB,90 [ GO TO RELOCATE VERB 9 ??9L ...ZFAIL GEOERR 0,BLAST 9 ??9P ...YDSK1 #77770000 9 ??9S ...YDSK2 4HBA00 9 ??9X ...YDSK3 4HBB00 9 ??=2 ...YDSK4 4HCE00 9 ??=5 ...YDSK5 4HOB00 9 ??=8 ...YDSK6 4HRC00 9 ??=? ...YDSK7 4HMR00 9 ??=B ...YDSK8 4HAB00 4 ??=F ...) 10 ??*L MENDAREA 50,K99GOTO 4 ??T= #END 8 ____ ...06554212000400000000