17 22FL ...#SEG PRINT70 [JOHN P. TITORENKO 12 22_= #LIS K0PRINT>K0ALLGEO>K0GREATGEO 12 23DW #OPT K6PRINT=K6ALLGEO>K6GREATGEO 9 23YG 8HPRINT 4 24D6 # 10 24XQ SEGENTRY K1PRINT,XX1P 4 25CB # 20 25X2 # THIS SEGMENT DEALS WITH THE PRINT COMMAND. IF A FILE DESCRIPTION 20 26BL # PARAMETER IS INCLUDED THE SEGMENT INSERTS IN THE SPECIFIED FILE 20 26W= # THE WORDS OF OBJECT PROGRAM SPECIFIED BY THE FOLLOWING PARAMETERS 19 27*W # OF THE COMMAND,OTHERWISE OUTPUT IS TO THE MONITORING FILE, THE 21 27TG # WORD IS INTERPRETED IN CHARACTER,OCTAL,DECIMAL AND INSTRUCTION FORM 9 28*6 # ENTRY IS MADE AT K1 4 28SQ # 9 29#B SPIT 6HREGION 8 29S2 SALL 3HALL 4 2=?L # 12 2=R= XACCESS +GREAD+CHUSED+GNOMESS 9 2?=W MAGIC +7036875 8 2?QG XCAT #200 8 2#=6 THREE +3 9 2#PQ SPACE #00000020 8 2*9B X7CHARS +1.3 9 2*P2 XJNOTUSED +JNOTUSED 16 2B8L PERM1 +ERUNPAIR [ERROR MESSAGES 9 2BN= PERM3 +CHNUMIN 9 2C7W PERM4 +GWERRES 9 2CMG PERM5 +JPOSWDS 9 2D76 PERM6 +JPARMIS 9 2DLQ PERM7 +JMTRACE 9 2F6B PERM8 +APFERR 10 2FL2 PERM9 +EREXQUOTA 9 2FTS ...PJMAXPAR +JMAXPAR 4 2G5L # 13 2GK= # LOCATIONS IN BUFFER(ADATA/CSTORE) 7 2H4W #DEF PADDR=A1 8 2HJG #DEF PCHAR=PADDR+3 8 2J46 #DEF PSDEC=PCHAR+2 8 2JHQ #DEF POCTAL=PSDEC+2 8 2K3B #DEF PINST=POCTAL+4 9 2KH2 #DEF PACCDUMP=PINST+4 4 2L2L # 8 2LG= # WORKING SPACE 4 2L_W # 8 2MFG #DEF PFLAG=AWORK1 4 2M_6 # 15 2NDQ # PFLAG IS USED TO HOLD VARIOUS FLAGS AS FOLLOWS 4 2NYB # 8 2P88 ...#DEF STARTAREA=23 7 2PD2 #DEF RESVIOL=22 7 2PXL #DEF PPRES=21 8 2QC= ...#DEF STARTCOM=20 8 2QWW ...#DEF STARTPRINT=19 7 2RBG #DEF UFILE=18 7 2RW6 #DEF POPEN=17 7 2S*Q #DEF REGION=16 5 2STB #SKI G4 6 2T*2 #DEF NU1=15 7 2TSL #DEF ONEP=14 7 2W#= #DEF PMODE=5 4 2WRW # 19 2X?G # THIS S/R IS USED TO FIND A PARAMETER STARTING WITH A SPECIFIED 8 2XR6 # CHARACTER STRING 4 2Y=Q PBEG 8 2YQB SBX 7 FX1 9 2_=2 PARABEGX 3,4,,,0 9 2_PL MHUNT 3,CPB,CUNI 9 329= LDX 4 ANUM(3) 10 32NW LDX 5 JPARNUM(3) 17 338G LDCH 6 APARA(3) [OBTAIN 1ST CHARACTER 8 33N6 ADX 7 FX1 7 347Q EXIT 7 0 4 34MB # 20 3572 # THIS S/R SPLITS UP THE PARAMETER FOUND BY PBEG, LEAVING THEM IN A 9 35LL # MULTY BLOCK AT LEVEL 2 5 366= PLYSE 8 36KW SBX 7 FX1 19 375G PARALYSE ,,5 [SPLIT AT PAIRED PARENTHESIS 19 37K6 TESTREP UNPAIR,PERR1A [J IF UNPAIRED PARENTHESIS 11 37SY ... TESTREP TOOMANY,PERR11 9 384Q MFREE CPB,CUNI 7 38JB LDN 4 2 16 3942 LDN 5 #34 [, AS SEPARATOR 16 39HL PARALYSX 5,,4 [SPLIT REGIONES 11 39RD ... TESTREP TOOMANY,PERR11 8 3=3= ADX 7 FX1 7 3=GW EXIT 7 0 4 3?2G # 16 3?G6 # THIS S/R DOES A PARAPASS & FINDS THE CUNI BLOCK 5 3?_Q PPASS 8 3#FB SBX 7 FX1 8 3#_2 #SKI AJOBUSE<1$1 4 3*DL ( 10 3*Y= HUNT 3,CPB,CMULTI 8 3BCW BNG 3 UNACC 7 3BXG PARAPASS 9 3CC6 BRN SEARCH 5 3CWQ UNACC 4 3DBB ) 7 3DW2 PARUNACC 5 3F*L SEARCH 9 3FT= MHUNT 3,CPB,CUNI 8 3G#W ADX 7 FX1 7 3GSG EXIT 7 0 4 3H#6 # 4 3HRQ # 4 3J?B XX1P 4 3JR2 # 19 3K=L SETNCORE 18,3,ADATA,CSTORE [BLOCK TO CONTAIN OUTPUT TO 17 3KQ= [ THE MONITORING FILE 7 3L9W LDN 5 0 10 3LKK ...#FID STARTCOM STARTCOM 1 11 3L_# ...#FID STARTPRINT STARTPRINT 1 10 3M*3 ...#FID STARTAREA STARTAREA 1 17 3MNQ STO 5 PFLAG(2) [INITIALISE FLAG WORD 21 3N8B # THE FIRST PART OF T8E SEGMENT DOWN TO LABEL ZOUTPUT NALYSES THE NEXT 20 3NN2 # PARAMETER, IF THIS IS A FILE NAME THE SPECIFIED FILE IS PENED AND 20 3P7L # THE COMMON PATH JOINED TO ACCESS THE NEXT PARAMETER. THERWISE THE 21 3PM= # PARAMETER IS TESTED FOR VALIDITY AND THE 0/P ADDRESS OF T E 1ST WORD 20 3Q6W # TO BE PRINTED INSERTED IN X5. A COUNT OF THE NUMBER OF ORDS T BE 18 3QLG # PRINTED IS INS RTED IN X4. CONTROL T EN PASSES TO ZOUTPUT 4 3R66 # 4 3RKQ # 5 3S5B NEWPAR 19 3SK2 CALL 7 PPASS [GET PARAM & POINTER TO BLOCK 9 3T4L LDX 4 ANUM(3) 17 3TJ= ... TBS STARTCOM,PFLAG(2),5 [TEST START SWITCH 19 3W3W BZE 5 OREC [IF NOT SET -NOT 1ST PARAM 15 3WHG ERS 5 PFLAG(2) [UNSET SWITCH 20 3X36 BZE 4 RECO [IF NULL NO FILE NAME PARAMETER 15 3XGQ ... BNG 4 NEWPARG [NO PARAMETER 9 3Y2B LDCH 0 APARA(3) 15 3YG2 SBN 0 #12 [TEST IF : 8 3Y_L BZE 0 NREG 15 3_F= SBN 0 #7 [TEST IF ! 8 3_YW BZE 0 NREG 17 42DG SBN 0 #20 [TEST IF ALPHABETIC 8 42Y6 BNG 0 RECO 8 43CQ SBN 0 #32 8 43XB BPZ 0 RECO 4 44C2 NREG 9 44WL MFREE CPB,CUNI 18 45B= SETBIT UFILE,PFLAG(2) [INDICATE OUTPUT TO FILE 4 45TW # 9 46*G # REGION LIST FORMAT 4 46T6 # 8 47#Q # LOOK FOR'ALL' 4 47SB NPAR 16 48#2 LDN 4 3 [CHARACTER COUNT 9 48RL LDX 5 SALL(1) 7 49?= LDN 3 1 16 49QW CALL 7 PBEG [SEARCH FOR ALL 18 4==G BNG 4 PPAR [GO TO LOOK FOR'REGIONS' 10 4=Q6 SETBIT ONEP,PFLAG(2) 8 4?9Q FPCACA 3,2 9 4?PB LDX 4 ALIMIT(3) 7 4#92 STOZ 5 17 4#NL BRN ZOUTPUT [GO TO PRINT PROGRAM 4 4*8= # 20 4*MW # 1 REGION LIST PARAMETER FINISHED OR A NON EXISTENT PARAMETER FOUND 4 4B7G # 5 4BM6 NEWPARG 18 4C6Q TBS REGION,PFLAG(2),3 [SEE IF PRINTING FINISHED 17 4CLB BZE 3 PR1 [PRINTING IS FINISHED 17 4D62 PARAFREE [FREE MULTY BLOCKS 4 4DKL # 11 4F5= # REGION LIST FORMAT BUT NO'ALL' 4 4FJW # 14 4G4G # LOOK FOR PARAMETER PRECEDED BY 'REGION' 4 4GJ6 # 4 4H3Q PPAR 17 4HHB LDN 3 1 [SET UP ACCS FOR S/R 11 4J32 SETBIT REGION,PFLAG(2) 7 4JGL ... LDN 4 6 9 4K2= LDX 5 SPIT(1) 9 4KFW LDX 6 SPIT+1(1) 17 4K_G CALL 7 PBEG [SEARCH FOR REGIONS 21 4LF6 BNG 4 PERR8 [NO'REGIONS'-PARAMETER FORMAT ERROR 18 4LYQ SBN 6 #30 [SEE IF 1ST CHAR IS A '(' 20 4MDB BNZ 6 ONEPAR [IF NOT-ASSUME 1 PARAMETER ONLY 17 4MY2 CALL 7 PLYSE [SPLIT REGIONS PARAM 9 4NCL BRN NEWPAR 4 4NX= # 15 4PBW # 'REGIONS' PARAMETER WITHOUT PAIRED PARENTHESIS 4 4PWG # 5 4QB6 ONEPAR 8 4QTQ BZE 4 ORE1 10 4R*B SETBIT ONEP,PFLAG(2) 8 4RT2 BRN ROCO 4 4S#L # 4 4SS= OREC 16 4T?W BZE 4 ZFUNI [NULL PARAMETER 16 4TRG BPZ 4 ROCO [J IFF IF EXISTS 4 4W?6 ORE1 9 4WQQ MFREE CPB,CUNI 9 4X=B BRN NEWPARG 4 4XQ2 # 21 4Y9L RECO LDN 7 #200 [TEST IF MONITORING FILE POSL0MORT 16 4YP= TESTRACE 7,PERR7 [CATEGORY ALLOWED 8 4_8W BZE 4 NPAR 16 4_NG ROCO SRL 4 12 [TYPE TO B12-23 16 5286 BZE 4 TP1A [BRANCH IF SIMPLE 7 52MQ SBN 4 2 19 537B BNG 4 Q1END [IF PSEUDO-SIMPLE AVOID QUICK 18 53M2 [ ANALYSIS-BOUND TO FAIL 17 546L BNZ 4 TP3A [BRANCH IF QUALIFIED 17 54L= [OTHERWISE COMPOSITE 4 555W # 21 55KG # [A QUICK TEST FOR PARAMETER OF TYPE 21 5656 # [ (N,M) WHERE N,M ARE DECIMAL INTS. 8 56JQ LDN 4 #7777 16 574B ANDX 4 ANUM(3) [PARAMETER LENGTH 7 57J2 SBN 4 1 18 583L BCHX 3 / [FIRST CHAR KNOWN TO BE ( 8 58H= CALL 0 XCDB 21 592W BNZ 6 Q2END [QUICK TEST FAILS IF N DOUBLE LENGTH 15 59GG STO 7 ACC5(2) [REMEMBER N 13 5=26 LDN 5 #34 [IE , 17 5=FQ CALL 0 XTEST [IS NEXT CHAR A , ? 18 5=_B BRN Q2END [IF NOT,QUICK TEST FAILS 21 5?F2 BZE 4 Q2END [IF COUNT EXHAUSTED,QUICK TEST FAILS 8 5?YL CALL 0 XCDB 21 5#D= BNZ 6 Q2END [QUICK TEST FAILS IF M DOUBLE LENGTH 18 5#XW BZE 4 Q2END [ OR IF COUNT EXHAUSTED 15 5*CG STO 7 ACC4(2) [REMEMBER M 13 5*X6 LDN 5 #31 [IE ) 8 5BBQ CALL 0 XTEST 21 5BWB BRN Q2END [QUICK TEST FAILS IF NEXT CHAR NOT ) 19 5CB2 BNZ 4 Q2END [ OR IF COUNT NOT EXHAUSTED 17 5CTL LDX 4 ACC4(2) [OTHERWISE TEST OK 16 5D*= LDX 5 ACC5(2) [ RESTORE X4,X5, 18 5DSW LDN 7 0 [ INDICATE TYPE 2 PARAM 19 5F#G BRN VCHK [ AND CHECK PARAMETER VALUES 4 5FS6 # 4 5G?Q # 21 5GRB TP1A LDX 4 ANUM(3) [A QUICK TEST FOR PARAMETER OF TYPE 20 5H?2 ANDN 4 #7777 [ N WHERE N IS A DECIMAL INTEGER. 8 5HQL CALL 0 XCDB 20 5J== BNZ 4 Q1END [QUICK TEST FAILS IF COUNT NOT 15 5JPW # [ EXHAUSTED 20 5K9G BNZ 6 Q1END [ OR IF NUMBER WENT DOUBLE LENGTH 17 5KP6 LDN 4 1 [NUMBER OF PRINTWORDS 17 5L8Q LDX 5 7 [THE CONVERTED NUMBER 21 5LNB BPZ 5 ZOUTPUT [IF NUMBER > OR = 0,ANALYSIS COMPLETE 16 5M82 BRN PERR4 [OTHERWISE ERROR 4 5MML # 21 5N7= TP3A [A QUICK TEST FOR PARAMETER OF TYPE 21 5NLW LDN 4 #7777 [ M(N) WHERE M,N ARE DECIMAL INTEGERS 15 5P6G ANDX 4 ANUM(3) [COUNT TO X4 8 5PL6 CALL 0 XCDB 21 5Q5Q BNZ 6 Q3END [IF M WENT DOUBLE LENGTH,TEST FAILS 15 5QKB STO 7 ACC5(2) [REMEMBER M 8 5R52 LDN 5 #30 18 5RJL CALL 0 XTEST [IS NEXT CHARACTER A ( ? 18 5S4= BRN Q3END [IF NOT QUICK TEST FAILS 21 5SHW BZE 4 Q3END [QUICK TEST FAILS IF COUNT EXHAUSTED 8 5T3G CALL 0 XCDB 21 5TH6 BNZ 6 Q3END [IF N WENT DOUBLE LENGTH,TEST FAILS 18 5W2Q BZE 4 Q3END [DITTO IF COUNT EXHASTED 15 5WGB STO 7 ACC4(2) [REMEMBER N 8 5X22 LDN 5 #31 18 5XFL CALL 0 XTEST [IS NEXT CHARACTER A ) ? 18 5X_= BRN Q3END [IF NOT QUICK TEST FAILS 19 5YDW BNZ 4 Q3END [DITTO IF COUNT NOT EXHAUSTED 20 5YYG LDX 4 ACC4(2) [IF TEST SUCCESSFUL,RESTORE X4,X5 9 5_D6 LDX 5 ACC5(2) 18 5_XQ NGN 7 1 [INDICATES TYPE 3 PARAM 18 62CB BRN VCHK [CHECK PARAMETER VALUES 4 62X2 # 17 63BL Q1END LDN 7 1 [ SET TYPE 1 MARKER 8 63W= BRN PCON 17 64*W Q2END LDN 7 0 [SET TYPE 2 MARKER 8 64TG BRN PBRAC 17 65*6 Q3END NGN 7 1 [ SET TYPE 3 MARKER 21 65SQ PBRAC PARABRAC [ REDUCE PARAMETER TO A NUMBER STRING 18 66#B TESTREPNOT OK,PERR1 [ UNPAIRED PARENTHESES 9 66S2 MHUNT 3,CPB,CUNI 9 67?L LDX 5 ANUM(3) 8 67R= BZE 5 PERR3 4 68=W # 4 68QG # 21 69=6 PCON [REACH HERE WITH N OR N,M IN UNI BLOC 9 69PQ #SKI K6PRINT>699-699 4 6=9B ( 9 6=P2 TRACE 1,PTCOMCV 4 6?8L ) 19 6?N= CHNUMCON 1,REAKIN [ATTEMPT TO CONVERT NUMBERS 16 6#7W TESTREP2 CHNUMERR,PERR3A [TEST FOR ERROR 11 6#MG MHUNTW 3,CPAR,GNUMCON 20 6*76 LDX 6 A1(3) [THE NO. OF EXPRESSIONS CONVERTED 19 6*LQ LDX 5 A1+1(3) [IF DEFINED,THE O/P BASE ADDR 21 6B6B LDX 4 A1+2(3) [IF DEFINED,EITHER O/P WORDCOUNT (TP3 21 6BL2 [ PARAM),OR TOP OF PT AREA (TP2PARAM) 18 6C5L FREECORE 3 [FREE THE GNUMCON BLOCK 8 6CK= BCT 6 X6GT1 20 6D4W LDN 4 1 [IF 1 CONVN SET WORDCOUNT TO 1 20 6DJG LDN 7 1 [ AND INDICATE TYPE 1 PARAMETER 20 6F46 BRN VCHK [ AND CHECK X4,X5 FOR LEGALITY 18 6FHQ X6GT1 BCT 6 PERR3 [ERROR IF >2 CONVERSIONS 4 6G3B # 19 6GH2 VCHK BNG 5 PERR4 [IF O/P BASE ADDR <0,ERROR 19 6H2L BZE 7 TP2A [BRANCH IF TYPE 2 PARAMETER 17 6HG= BZE 4 TP3B [PARAM WAS LIKE 6(0) 19 6H_W BNG 4 PERR5 [NO OF PRINTWORDS NEGATIVE 9 6JFG BRN ZOUTPUT 4 6J_6 # 20 6KDQ TP2A SBX 4 5 [CONVERT TYPE 2 PARAM (N,M) TO 20 6KYB # [ TYPE 3 FORM N(M-N+1) 18 6LD2 BNG 4 PERR5 [IF UPPER BND < LOWER BND 7 6LXL ADN 4 1 9 6MC= BRN ZOUTPUT 4 6MWW # 12 6NBG # ERROR CASES 4 6NW6 # 8 6P*Q PERR1 LDX 1 FX1 17 6PTB LDX 4 PERM1(1) [UNPAIRED PARENTHESES 8 6Q*2 BRN XERCL 5 6QSL PERR3A 8 6R#= LDN 0 #1000 10 6RRW ANDX 0 CONTEXT(2) 18 6S?G BZE 0 ULTND [PACK UP IF LOAD ERROR 8 6SR6 PERR3 LDX 1 FX1 18 6T=Q LDX 4 PERM3(1) [INVALID NUMBER FORMAT 8 6TQB BRN XERCL 8 6W=2 PERR4 LDX 1 FX1 18 6WPL LDX 4 PERM4(1) [RESERVATION VIOLATION 8 6X9= BRN XERCL 8 6XNW PERR5 LDX 1 FX1 17 6Y8G LDX 4 PERM5(1) [NO OF PRINTWORDS < 0 17 6YN6 XERCL CALL 7 SRERR [ISSUE ERROR MESSAGE 5 6_7Q PERR2 18 6_MB TP3B SETBIT PPRES,PFLAG(2) [PARAMETER PRESENT BIT 9 7272 ZFUNI VFREE CPB,CUNI 9 73KW BRN NEWPAR 4 745G # 5 74K6 PERR1A 9 754Q LDX 4 PERM1(1) 8 75JB CALL 7 SRERR 18 7642 SETBIT PPRES,PFLAG(2) [PARAMETER PRESENT BIT 8 76HL BRN ORE1 5 76L9 ...PERR11 10 76NS ... LDX 4 PJMAXPAR(1) 8 76RC ... CALL 7 SRERR 11 76W2 ... SETBIT PPRES,PFLAG(2) 8 76YK ... BRN ORE1 4 773= # 21 77GW # THE REST OF THIS SEGMENT.DOWN TO LABEL PR1,OUTPUTS TO THE MONITORING 21 782G # FILE THE CONTENTS OF [X4] WORDS COMMENCING AT OBJECT PROGRAM ADDRESS 18 78G6 # [X5].GETWORD REQUESTS ACCESS TO A MAXIMUM OF 512 WORDS. 4 78_Q # 4 79FB # 5 79_2 ZOUTPUT 12 7=8S ... SETBIT STARTAREA,PFLAG(2) 11 7=DL SETBIT PPRES,PFLAG(2) 17 7=Y= STOZ AWORK4(2) ['ZERO COUNT' WORD 15 7?CW FPCACA 3,2 [FIND THE PCA 9 7?XG LDX 0 ALIMIT(3) 21 7#C6 SBX 0 5 [X0=NO OF PRINTWORDS ALLOWED WITHOUT 18 7#WQ [ RESERVATION VIOLATION 8 7*BB BNG 0 PERR4 21 7*W2 BZE 0 PERR4 [J IF NO PRINTWORDS IN RESERVATION 7 7B*L TXL 0 4 19 7BT= BCC RESOK [J IF PRINT REQUEST WITHIN 15 7C#W # [RESERVATIONS 21 7CSG LDX 4 0 [ADJUST REQUEST TO BE WITHIN RESERVN 11 7D#6 SETBIT RESVIOL,PFLAG(2) 8 7DRQ BRN QQQ 9 7F?B RESOK LDNBIT RESVIOL,0 17 7FR2 ANDS 0 PFLAG(2) [UNSET RESVIOL FLAG 4 7G=L QQQ 11 7GQ= TBS UFILE,PFLAG(2),0 15 7H9W BZE 0 XNOFI [J IF NO FILE 11 7HPG TBS POPEN,PFLAG(2),0 16 7J96 BNZ 0 XNOFI [J IF FILE OPEN 17 7JNQ FLIPS PFLAG(2),,POPEN [INDICATE FILE OPEN 7 7K8B LDN 1 0 19 7KN2 SPARANOT 1,1 [GET PARAMETER FRO M CALAS 10 7L7L XFID MHUNT 3,CPB,CMULTI 9 7LM= BNG 3 XNOFID 21 7M6W NAMETOP 3,ADATA,ERREPLY [RENAME MULTI SO AS NOT TO CONFUSE 14 7MLG BRN XFID [USEROPEN 5 7N66 XNOFID 9 7NKQ MHUNT 3,CPB,CUNI 15 7P5B NAMETOP 3,FILE,FNAME [RENAME BLOCK 18 7PK2 CREATEB [SET UP FILE/CREATE BLOCK 10 7PXC ... MHUNT 3,FILE,CREATE 10 7Q9S ... BS 3,CESERIAL 8 7QJ= LDCT 0 #400 8 7R3W ADN 0 #12 9 7RHG STO 0 CETM(3) 7 7S36 #SKI AMULTUSER 16 7SGQ USEROPEN REAKIN,APPEND,CREATE,EMPTY,MULT,FILE 8 7T2B #SKI AMULTUSER<1$1 16 7TG2 USEROPEN REAKIN,APPEND,CREATE,EMPTY,STREAMS 11 7T_L UNFID MHUNT 3,ADATA,ERREPLY 8 7WF= BNG 3 NOFID 10 7WYW NAMETOP 3,CPB,CMULTI 8 7XDG BRN UNFID 5 7XY6 NOFID 8 7YCQ REPERR YAKO 16 7YXB BRN ULTND [PACK UP IF ERROR 5 7_C2 REAKIN 17 7_WL COMBRKIN [ACTION IF BREAKIN 5 82B= XNOFI 17 82TW QBRKN TESTBRKIN ZBRKN [TEST FOR BREAK-IN 4 83*G YAKO 12 83T6 ... TBS STARTPRINT,PFLAG(2),0 9 84#Q BNZ 0 NOSPACE 18 84SB CALL 6 SPACES [OUTPUT ALINE OF SPACES 5 85#2 NOSPACE 9 85RL ZOUT STOZ AWORK2(2) 7 86?= LDX 6 4 8 86QW SBN 6 512 21 87=G BNG 6 ZGTWD [IF REQUEST FOR < OR = 512 WORDS THEN 21 87Q6 # [ SET AWORK2 TO 0 AND LEAVE X4 ALONE 20 889Q STO 6 AWORK2(2) [OTERWISE X4=512 FOR THE CURRENT 21 88PB LDN 4 512 [ GETWORD AND THE EXCESS IS STORED IN 14 8992 # [ AWORK2 5 89NL ZGTWD 9 8=8= #SKI K6PRINT>699-699 10 8=MW TRACE 4,PTGETWDC 20 8?7G # X5=O/P ADDR;X6=GEORGE ADDR;X4=WORDS REQUESTED;X7=WORDS GIVEN(G3) 13 8?M6 # OR WORDS TO THE END OF UNACCESSED AREA 14 8#6Q GETWORDX 5,6,XACCESS(1),7,4,ZBRKN,1 9 8#LB TESTREP OK,ZGOOD 10 8*62 TESTREP2 LOADERR,TIFO 5 8*KL #SKI G4 4 8B5= ( 11 8BJW TESTREPN NOTUSED,RELERR 19 8C4G LDX 0 AWORK2(2) [WORDS STILL TO BE PRINTED 20 8CJ6 ADX 0 4 [+WORDS REQUESTED-NO OF WORDS TO 20 8D3Q SBX 0 7 [THE END OF UNACCESSED AREA IN X0 15 8DHB BZE 0 P1FIN [J IF ZERO 15 8F32 BNG 0 P1FIN [OR NEGATIVE 21 8FGL STO 0 4 [OTHERWISE X4=NO OF WORDS REMAINING 7 8G2= LDX 0 5 7 8GFW ADX 0 7 17 8G_G STO 0 AWORK2(2) [AWORK2=O/P ADDRESS 20 8HF6 CALL 7 OUTLINE [OUTPUT PARAMETER IF NECESSARY 17 8HYQ LDX 5 AWORK2(2) [SET X5=O/P ADDRESS 18 8JDB BRN ZOUT [AND DO ANOTHER GETWORDX 4 8JY2 # 5 8KCL P1FIN 16 8KX= CALL 7 OUTLINE [OUTPUT PARAMETER 21 8LBW ADX 5 4 [O/P ADDRESS OF LAST WORD REQUESTED 20 8LWG ADX 5 AWORK2(2) [+NO OF WORDS STILL TO BE PRINTED 7 8MB6 SBN 5 1 16 8MTQ CALL 7 XOUTPAR [OUTPUT PARAMETER 18 8N*B CALL 7 XOUTMESS [OUTPUT'NOTUSED'MESSAGE 19 8NT2 UNSETBIT NU1,PFLAG(2) [REMOVE NOTUSED MARKER AND 18 8P#L BRN ZFUNI [LOOK FOR MORE PARAMETERS 5 8PS= RELERR 4 8Q?W ) 9 8QRG GEOERR 1,PRINT1 5 8R?6 ZGOOD 7 8RQQ SBX 5 6 18 8S=B NGS 5 AWORK3(2) [AWORK3=G.ADDR-O/P ADDR 20 8SQ2 LDX 5 6 [X5=GEORGE ADDRESS OF PRINTWORD 19 8T9L ADX 4 AWORK2(2) [IF WE HAVE ACCESS ALL WORDS 20 8TP= LDX 0 4 [ REQUIRED,PROCEED TO PRINT THEM 7 8W8W SBX 0 7 18 8WNG STO 3 ACOMMUNE1(2) [REMEMBER PREVIOUS WORD 9 8X86 BNG 0 ZGOTAL 21 8XMQ LDX 4 7 [...OTHERWISE PRINT THE NUMBER GIVEN 20 8Y7B STO 0 AWORK2(2) [ AND SET AWORK2 TO THE RESIDUE. 8 8YM2 BRN ZIN 5 8_6L ZGOTAL 9 8_L= STOZ AWORK2(2) 4 925W ZIN 5 92KG #SKI G4 4 9356 ( 11 93JQ TBS NU1,PFLAG(2),0 20 944B BZE 0 ZBETTER [J IF PRGEDING AREA NOT'NOTUSED' 17 94J2 ERS 0 PFLAG(2) [UNSET NOTUSED FLAG 16 953L STO 5 AWORK4(2) [THIS IS SILLY 9 95H= SBX 5 AWORK3(2) 7 962W SBN 5 1 21 96GG CALL 7 XOUTPAR [OUTPUT LAST LOCATION AS PARAMETER 9 9726 LDX 5 AWORK4(2) 9 97FQ STOZ AWORK4(2) 16 97_B CALL 7 XOUTMESS [OUTPUT MESSAGE 9 98F2 CALL 6 SPACES 7 98YL SMO 5 17 99D= LDX 6 0 [X6=CURRENT PRINTWORD 8 99XW BRN ZPRT 5 9=CG ZBETTER 4 9=X6 ) 12 9?BQ ... TBS STARTPRINT,PFLAG(2),0 20 9?WB ... BZE 0 ZIN1 [J IF NOT 1ST PARAM TO BE PRINTED 9 9#B2 ERS 0 PFLAG(2) 8 9#TL FPCACA 1,2,N 9 9**= LDX 0 ALMT(1) 17 9*SW ANDN 0 #40 [PICK UP BRANCH MOD& 8 9B#G SRC 0 11 9 9BS6 ORS 0 PFLAG(2) 4 9CRB ZIN1 7 9D?2 SMO 5 21 9DQL LDX 6 0 [X6=THE VALUE OF THE NEXT O/P WORD 12 9DXS ... TBS STARTAREA,PFLAG(2),0 8 9F52 ... BZE 0 PHINE 9 9F=8 ... ERS 0 PFLAG(2) 8 9FCB ... BRN X6NE 10 9FJJ ...PHINE TXU 6 ACOMMUNE1(2) 20 9FPW BCS X6NE [J IF NOT EQUAL TO PREVIOUS WORD 15 9G9G LDX 0 AWORK4(2) [COUNT = 0? 14 9GP6 BNZ 0 ZNFT [J IF NOT 18 9H8Q LDN 0 1 [OTHERWISE ADD 1 TO COUNT 9 9HNB STO 0 AWORK4(2) 7 9J82 ZNFT LDN 7 1 7 9JML TXU 7 4 8 9K7= BCS X6Z 9 9KLW LDX 0 AWORK2(2) 21 9L6G BZE 0 X6ZT [IF X6=0 AND THIS IS THE LAST PRINTWO 15 9LL6 X6Z LDX 0 AWORK4(2) [ZERO COUNT 20 9M5Q TXU 0 THREE(1) [INCREMENT THE ZERO COUNT UNLESS 17 9MKB BCC X6ZA [ IT WAS PREVIOUSLY 14 9N52 ADS 7 AWORK4(2) [ THREE 7 9NJL X6ZA SMO 0 8 9P4= BRN X6ZB 21 9PHW X6ZB BRN ZPRT [IF ZERO COUNT=0,PRINT CURRENT WORD 21 9Q3G BRN ZFIN [ =1,IGNORE CURRENT WORD 21 9QH6 CALL 6 SPACES [ =2,OUTPUT ALINE OF SPAC 21 9R2Q BRN ZFIN [ =3,IGNORE CURRENT WORD 4 9RGB # 15 9S22 X6ZT LDX 0 AWORK4(2) [ZERO COUNT 19 9SFL BZE 0 ZPRT [IF 0,STRAIGHTFORWARD PRINT 7 9S_= SBN 0 2 17 9TDW BNZ 0 ZC13T [IF ZERO COUNT = 2, 18 9TYG CALL 6 SPACES [OUTPUT ALINE OF SPACES 9 9WD6 ZC13T CALL 7 PRINTOLD 8 9WXQ BRN ZFIN 4 9XCB # 16 9XX2 X6NE LDX 0 AWORK4(2) [ZERO COUNT WORD 16 9YBL STOZ AWORK4(2) [RESET IT TO ZERO 7 9YW= SBN 0 2 18 9_*W BNG 0 ZPRT [IF COUNT 0 OR 1 PRINT 7 9_TG LDN 6 0 19 =2*6 SBN 5 1 [BACKSTEP TO PREVIOUS WORD 14 =2SQ CALL 7 PRINTOLD [PRINT IT 19 =3#B ADN 5 1 [STEP FORWARD TO CURRENT WORD 15 =3S2 # [ PRINTWORD. 21 =4?L ZPRT CALL 7 PRINT [CURRENT PRINTWORD TO MONITORING FILE 4 =4R= # 17 =5=W ZFIN TESTBRKIN ZBRKN [TEST FOR BREAK-IN 4 =5QG # 7 =6=6 SMO 5 7 =6PQ LDX 6 0 18 =79B STO 6 ACOMMUNE1(2) [REMEMBER PREVIOUS WORD 20 =7P2 ADN 5 1 [STEP GEORGE ADDRESS OF O/P WORD 20 =88L BCT 4 ZIN1 [IF COUNT NOT EXHAUSTED CONTINUE 15 =8N= # [ INNER LOOP 9 =97W LDX 4 AWORK2(2) 21 =9MG BZE 4 QRVFS [EXIT FROM OUTER LOOP IF ALL PRINTING 14 ==76 LDX 3 ACOMMUNE1(2) [COMPLETE 21 ==LQ SBX 5 AWORK3(2) [OTHERWISE RESET X4 TO TOTAL COUNT OF 21 =?6B # [ PRINTWORDS,SET X5 TO O/P ADDRESS 18 =?L2 BRN ZOUT [ AND DO ANOTHER GETWORD. 12 =#5L QRVFS TBS RESVIOL,PFLAG(2),0 8 =#K= BZE 0 ZFUNI 16 =*4W [ NEXT PARAMETER 21 =*JG BRN PERR4 [ OTHERWISE ISSUE ERROR MESSAGE FIRST 4 =B46 # 21 =BHQ # THE LAST PART OF THIS SEGMENT CLEARS UP AFTER BREAK-IN OR AT END OF 6 =C3B # COMMAND. 4 =CH2 # 10 =D2L PR1 TBS PPRES,PFLAG(2),0 20 =DG= BNZ 0 TERM [J IF PARAMETER PRESENT BIT SET 17 =D_W LDX 4 PERM6(1) [ISSUE ERROR MESSAGE 8 =FFG CALL 7 SRERR 4 =F_6 TERM 20 =GDQ TIFO LDN 7 0 [SET X7 FOR NORMAL TERMINATION 10 =GYB TPR1 TBS POPEN,PFLAG(2),0 17 =HD2 BZE 0 YNF [J IF NO USER FILE 7 =HXL #SKI AMULTUSER 8 =JC= NOST TESTMULT STCL 8 =JWW #SKI AMULTUSER<1$1 16 =KBG NOST TESTREAM STCL [J IF MULTIFILE 10 =KW6 MFREE FILE,FABSNB 6 =L*Q CLOSE 8 =LTB BRN YNF 6 =M*2 STCL CLOSE 7 =MSL #SKI AMULTUSER 15 =N#= STC CLOSEMULT [CLOSE SDF 8 =NRW #SKI AMULTUSER<1$1 15 =P?G STC CLOSESTREAM [CLOSE SDF 8 =PR6 YNF TESTGETW NOGWD 17 =Q=Q WORDFIN [CLEAR UP IF GETWORD 16 =QQB NOGWD BZE 7 ULTND [J IF NOT BREAKIN 19 =R=2 ABANDCOM [RETURN TO COMMAND PROCESSOR 19 =RPL ULTND ENDCOM [ ^ ^ ^ ^ ^ 18 =S9= XTOF LDN 7 0 [FILE OPEN & NO BREAKIN 8 =SNW BRN NOST 17 =T8G XABAN LDN 7 1 [FILE OPEN & BREAKIN 8 =TN6 BRN NOST 5 =W7Q NIKAERB 17 =WMB LDN 7 1 [SDF OPEN & BREAKIN 8 =X72 BRN STC 4 =XLL # 17 =Y6= ZBRKN LDN 7 1 [SET X7 FOR BREAK-IN 8 =YKW BRN TPR1 4 =_5G # 11 =_K6 # ERROR CASES WHICH END COMMAND 4 ?24Q # 8 ?2JB PERR7 LDX 1 FX1 9 ?342 LDX 4 PERM7(1) 8 ?3HL CALL 7 SRERR 8 ?43= BRN ULTND 5 ?4GW PERR8 12 ?52G ... TBS STARTPRINT,PFLAG(2),0 17 ?5G6 BZE 0 PR1 [J IF REGION FOUND 8 ?5_Q CALL 7 PPASS 9 ?6FB LDX 4 PERM8(1) 18 ?6_2 CALL 7 SRERR [PARAMETER FORMAT ERROR 8 ?7DL BRN TIFO 5 ?7Y= PERR9 9 ?8CW SBX 5 AWORK3(2) 7 ?8XG SBN 5 1 8 ?9C6 OUTNUM 5,0 9 ?9WQ MONOUT JFILEVIOL 8 ?=BB BRN XTOF 5 ?=W2 PERR10 9 ??*L LDX 4 PERM9(1) 8 ??T= CALL 7 SRERR 8 ?##W BRN XTOF 4 ?#SG # 14 ?*#6 # SUBROUTINES 4 ?*RQ # 21 ?B?B # THE FOLLOWING TWO SUBROUTINES SET UP THE BUFFER READY FOR OUTPUT AND 17 ?BR2 # CALL THE S/R XMSOUT TO OUTPUT TO THE APPROPRIATE FILE 20 ?C=L # PRINTOLD ONLY SETS THE ADDRESS,AS THE REMAINDER OF THE BUFFER WILL 16 ?CQ= # HAVE BEEN SET UP BY THE PREVIOUS LINE OF OUTPUT 4 ?D9W # 5 ?DPG PRINTOLD 7 ?F96 LDN 6 0 8 ?FNQ BRN START 4 ?G8B # 20 ?GN2 PRINT [CONVERTS A GIVEN WORD TO VARIOUS 20 ?H7L # [CHARACTER FORMS AND INSERTS THEM 18 ?HM= [IN THE MONITORING FILE 7 ?J6W LDN 6 1 17 ?JLG START MHUNTW 3,ADATA,CSTORE [FIND THE DATA BLOCK 8 ?K66 LDX 1 FX1 8 ?KKQ LDX 2 FX2 16 ?L5B STO 4 PACCDUMP(3) [REMEMBER COUNT 21 ?LK2 STO 5 PACCDUMP+1(3) [REMEMBER GEORGE ADDR OF PRINTWORD 8 ?M4L SBX 7 FX1 21 ?MJ= STO 7 PACCDUMP+2(3) [REMEMBER RELATIVISED CALL ADDRESS 15 ?N3W LDX 0 ACES [SPACE WORD 9 ?NHG STO 0 PADDR(3) 20 ?P36 STO 0 PADDR+1(3) [SPACE FILL ADDR AREA OF BUFFER 8 ?PGQ BZE 6 ZINAD 7 ?Q2B PFRIG SMO 5 18 ?QG2 LDX 6 0 [OTHERWISE X6:=PRINTWORD 9 ?Q_L LDN 4 PADDR(3) 10 ?RF= LDN 5 PADDR+1(3) 17 ?RYW MOVE 4 14 [SPACE FILL THE BLOCK 19 ?SDG STO 6 PCHAR(3) [STORE WORD IN CHARACTER FORM 18 ?SY6 LDX 1 6 [OCTAL FORM IN A1+7,A1+8 7 ?TCQ LDN 7 8 7 ?TXB PR2 LDN 0 0 7 ?WC2 SLL 01 3 10 ?WWL DCH 0 POCTAL+1(3) 7 ?XB= BCHX 3 / 8 ?XTW BCT 7 PR2 13 ?Y*G LDN 0 #23 [IE # 19 ?YT6 SBN 3 2 [RESET X3 TO START OF BLOCK 7 ?_#Q SMO 3 19 ?_SB DCH 0 POCTAL [ # TO CHAR POSN 3 OF POCTAL 4 #2#2 # 21 #2RL # [INSTRUCTION FORM TO A1+11 - A1+14 16 #3?= LDCH 4 PFLAG(2) [MODE OF MEMBER 0 8 #3QW LDN 7 PINST 12 #4=G INPRINTX 6,7,4,ADATA,CSTORE 11 #4Q6 MHUNTW 3,ADATA,CSTORE 4 #59Q # 21 #5PB [SIGNED DECIMAL FORM TO A1+5 - A1+6 7 #692 LDN 0 6 13 #6NL LDN 5 #33 [IE + 20 #78= BPZ 6 Q5 [IF PRINTWORD POSITIVE,CONVERT IT 13 #7MW LDN 5 #35 [IE - 20 #87G NGX 6 6 [OR IF NEGATIVE,BUT NOT #40000000 17 #8M6 BPZ 6 Q5 [ NEGATE AND CONVERT 21 #96Q LDX 6 MAGIC(1) [IF #40000000,NEGATION SHOULD HAVE 21 #9LB LDN 7 0 [ GIVEN #37777777+1,WHICH,WHEN MULT- 21 #=62 BRN Q99 [ IPLIED BY MAGIC LEAVES X6,X7 SET UP 16 #=KL # [ AS SPECIFIED 9 #?5= Q5 MPY 6 MAGIC(1) 20 #?JW Q99 MODE 1 [SUPPRESS NON-SIGNIFICANT ZEROS 20 ##4G LDX 2 3 [X2 WILL BE LEFT POINTING TO THE 20 ##J6 BCHX 3 / [ POSITION OF THE ARITHMETIC SIGN 7 #*3Q Q6 CBD 6 4 18 #*HB TXU 4 SPACE(1) [IF CBD PRODUCES A SPACE, 8 #B32 BCS Q8 15 #BGL LDX 2 3 [ UPDATE X2 9 #C2= Q8 DCH 4 PSDEC(3) 7 #CFW BCHX 3 / 8 #C_G BCT 0 Q6 18 #DF6 MODE 0 [LAST ZERO UNSUPRESSED 9 #DYQ CBD 6 PSDEC(3) 9 #FDB DCH 5 PSDEC(2) 20 #FY2 SBX 3 X7CHARS(1) [X3 POINTS TO DATA BLOCK AGAIN 8 #GCL LDX 2 FX2 4 #GX= # 19 #HBW # [ AND INSERTED IN A1 TO A1+1 5 #HWG ZINAD 19 #JB6 LDX 4 PACCDUMP+1(3) [GEORGE [DDRESS OF PRINTWORD 19 #JTQ SBX 4 AWORK3(2) [-CONVERTED TO O/P ADDRESS 9 #K*B MPY 4 MAGIC(1) 7 #KT2 LDN 0 6 20 #L#L BCHX 3 / [STEP FIRST CHARACTER POSITION 16 #LS= MODE 1 [ZERO SUPPRESSION 9 #M?W Q9 CBD 4 PADDR(3) 7 #MRG BCHX 3 / 8 #N?6 BCT 0 Q9 18 #NQQ MODE 0 [-EXCEPT LAST CHARACTER 9 #P=B CBD 4 PADDR(3) 20 #PQ2 SBN 3 1 [X3 POINTS TO DATA BLOCK (+0.3) 4 #Q9L # 17 #QP= # [BUFFER NOW SET UP 10 #R8W LDX 4 PACCDUMP(3) 10 #RNG LDX 5 PACCDUMP+1(3) 10 #S86 LDX 7 PACCDUMP+2(3) 8 #SMQ LDN 3 17 9 #T7B CALL 6 XMSOUT 4 #TM2 # 19 #W6L ADX 7 FX1 [MAKE CALL ADDRESS ABSOLUTE 7 #WL= EXIT 7 0 4 #X5W # 4 #XKG # 4 #Y56 # 21 #YJQ XCDB [CONVERTS CHARACTER STRING TO BINARY, 21 #_4B LDCT 6 #200 [ HALTING AT END OF STRING OR FIRST 21 #_J2 LDN 7 0 [ NOW NUMERIC CHARACTER.COUNT (X4) 21 *23L ZCVT CDB 6 APARA(3) [ AND POINTER (X3) UPDATED FOR EACH 17 *2H= BCS ZEND [ NUMERIC CHAR FOUND 17 *32W BCHX 3 / [ S/L RESULT IN X7. 21 *3GG BCT 4 ZCVT [IF EITHER CONVERTED NO. WAS DOUBLE 20 *426 ZEND EXIT 0 0 [ LENGTH OR FIRST CHARACTER NON- 21 *4FQ [ NUMERIC X6 SET NZ.X6 INITIALISED 21 *4_B [ T0 #20000000 SO 1ST CDB MAKES X6=0 4 *5F2 # 4 *5YL # 4 *6D= # 21 *6XW XTEST [TESTS CHARACTER IN X5 AGAINST'THAT 20 *7CG LDCH 1 APARA(3) [ POINTED TO BY X3,STEPING X3 IF 16 *7X6 TXU 1 5 [ THESE COINCIDE 8 *8BQ BCS ZDIF 7 *8WB BCHX 3 / 7 *9B2 SBN 4 1 17 *9TL EXIT 0 1 [EXIT IF MATCH FOUND 18 *=*= ZDIF EXIT 0 0 [EXIT IF MATCH NOT FOUND 4 *=SW # 4 *?#G # 4 *?S6 # 21 *#?Q SRERR [JUST THE MACRO ERRORX FOR THE OUTPUT 19 *#RB SBX 7 FX1 [ OF MONITORING FILE MESSAGES 7 **?2 ERRORX 4 8 **QL ADX 7 FX1 7 *B== EXIT 7 0 4 *BPW # 4 *C9G # 5 *CP6 SPACES 7 *D8Q LDN 3 2 4 *DNB # 20 *F82 # THIS SUBROUTINE OUTPUTS A LINE TO THE MONITORING FILE OR MOVES 20 *FML # DATA TO A FILE FUWB.ON ENTRY X3 CONTAINS THE NUMBER OF WORDS 7 *G7= # INVOLVED 5 *GLW XMSOUT 8 *H6G SBX 6 FX1 8 *HL6 LDX 2 FX2 11 *J5Q TBS UFILE,PFLAG(2),0 17 *JKB BZE 0 XMON [J IF OUTPUT TO M/F 11 *K52 TBS POPEN,PFLAG(2),0 18 *KJL BZE 0 YMON [NOTHING IF NO FILE OPEN 15 *L4= LDX 7 3 [REMEMBER X3 7 *LHW OKAY LDX 3 7 9 *M3G STEP ,0(3),XABAN 11 *MH6 TESTREP REFUSED,PERR10 19 *N2Q TESTREPN FILEFULL,TST [IF FILEFULL- TO NEXT STREAM 7 *NGB #SKI AMULTUSER 8 *P22 TESTMULT TNOC 8 *PFL #SKI AMULTUSER<1$1 8 *P_= TESTREAM TNOC 16 *QDW BRN PERR9 [OUTPUT MESSAGE 16 *QYG TNOC CLOSE [CLOSE ELEMENT 7 *RD6 CREATEB 10 *RXQ MHUNT 3,FILE,CREATE 8 *SCB LDCT 0 #420 9 *SKL ... STO 0 CEINF1(3) 8 *SRW ... LDCT 0 #400 8 *T26 ... ADN 0 #12 9 *T8B ... STO 0 CETM(3) 7 *TBL #SKI AMULTUSER 16 *TW= USEROPEN NIKAERB,APPEND,CREATE,EMPTY,MULTEL 8 *W*W #SKI AMULTUSER<1$1 17 *WTG USEROPEN NIKAERB,APPEND,CREATE,EMPTY,STREAMCOMP 16 *X*6 REPERR OKAY [TEST FOR ERROR 17 *XSQ LDN 7 0 [SDF OPEN & BREAKIN 8 *Y#B BRN STC 7 *YS2 TST SMO 7 15 *_?L LDN 0 0 [WORD COUNT 8 *_R= STO 0 0(3) 8 B2=W LDN 0 #41 8 B2QG STO 0 1(3) 7 B3=6 SBN 7 2 17 B3PQ BZE 7 XSPACES [J IF LINE OF SPACES 16 B49B ADN 3 2 [UPDATE POINTER 15 B4P2 MHUNT 2,ADATA,CSTORE [FIND BLOCK 8 B58L ADN 2 PADDR 7 B5N= SMO 7 15 B67W MOVE 2 0 [MOVE A DATA 5 B6MG XSPACES 14 B776 LDX 7 PACCDUMP+2-PADDR(2) [RESET X7 14 B7LQ BRN YMON [AND EXIT 4 B86B XMON 7 B8L2 SBN 3 2 15 B95L BZE 3 PMON [J IF SPACES 17 B9K= SLL 3 2 [SET CHARACTER COUNT 4 B=4W PMON 8 B=JG SMO FX1 16 B?46 LDX 1 XCAT [CATEGOIY BRTS 13 B?HQ OUTMON 3,PADDR,1,ADATA,CSTORE 4 B#3B YMON 8 B#H2 LDX 2 FX2 8 B*2L LDX 1 FX1 8 B*G= ADX 6 FX1 7 B*_W EXIT 6 0 4 BBFG # 4 BB_6 # 4 BCDQ # 5 BCYB #SKI G4 4 BDD2 ( 4 BDXL # 13 BFC= # G4 SUBROUTINES 13 BFWW # ============== 4 BGBG # 20 BGW6 # THIS SUBROUTINE IS OBEYED FOLLOWING A NOTUSED REPLY FROM GETWORD 14 BH*Q # IF THIS IS THE 1ST NOTUSED REPLY IT WILL:- 20 BHTB # 1)OUTPUT THE LAST LOCATION ACCESSED IF THIS WAS THE LAST IN A 13 BJ*2 # SERIES OF IDENTICAL LOCATIONS 11 BJSL # 2)OUTPUT A LINE OF SPACES 20 BK#= # 3)SET UP A PARAMETER BLOCK AND OUTPUT THE 1ST LOCATION ADDRESS 9 BKRW # AS A PARAMETER 4 BL?G # 5 BLR6 OUTLINE 8 BM=Q SBX 7 FX1 11 BMQB TBS NU1,PFLAG(2),0 19 BN=2 BNZ 0 PTNOT1 [J IF NOT 1ST NOTUSED REPLY 10 BNPL SETBIT NU1,PFLAG(2) 9 BP9= LDX 0 AWORK4(2) 7 BPNW SBN 0 2 15 BQ8G STO 7 AWORK4(2) [REMEMBER X7 17 BQN6 BNG 0 NOTZE [J IF NOT MORE THAN 1 7 BR7Q SBN 5 1 15 BRMB STOZ AWORK3(2) [BIG FIDDLE 9 BS72 CALL 7 PRINTOLD 7 BSLL ADN 5 1 18 BT6= NOTZE CALL 6 SPACES [OUTPUT A LINE OF SPACES 18 BTKW OUTBLOCN 8 [OUTPUT PARAMETER BLOCK 17 BW5G CALL 7 XOUTPAR [OUTPUT 1ST LOCATION 9 BWK6 LDX 7 AWORK4(2) 9 BX4Q STOZ AWORK4(2) 5 BXJB PTNOT1 8 BY42 ADX 7 FX1 7 BYHL EXIT 7 0 4 B_3= # 4 B_GW # 14 C22G # OUTPUTS THE CONTENTS OF X5 AS A PARAMETER 4 C2G6 # 5 C2_Q XOUTPAR 8 C3FB SBX 7 FX1 8 C3_2 OUTNUM 5,0 8 C4DL ADX 7 FX1 7 C4Y= EXIT 7 0 4 C5CW # 4 C5XG # 21 C6C6 # OUTPUTS THE NOTUSED MESSAGE TO THE APPROPRIATE FILE .CALLS XMSOUT IF 11 C6WQ # THIS IS AN USER SPECIFIED FILE 4 C7BB # 5 C7W2 XOUTMESS 7 C8*L SBX 7 1 11 C8T= TBS UFILE,PFLAG(2),0 17 C9#W BNZ 0 XFILE [J IF OUTPUT TO FILE 9 C9SG MONOUT JNOTUSED 9 C=#6 BRN XNOFILE 5 C=RQ XFILE 10 C??B ASSMESS XJNOTUSED(1) 9 C?R2 STO 7 AWORK4(2) 10 C#=L MHUNT 1,GMON,AOUT 8 C#Q= LDX 3 A1(1) 8 C*9W ADN 1 A1+2 11 C*PG MHUNT 2,ADATA,CSTORE 8 CB96 ADN 2 PADDR 7 CBNQ ADN 3 3 8 CBYJ ... ANDN 3 #7777 15 CC8B SRL 3 2 [CHARS-WDS 7 CCD8 ... ADN 3 2 18 CCN2 MOVE 1 0(3) [MOVE TO OUTPUT BUFFER 17 CD7L CALL 6 XMSOUT [AND OUTPUT MESSAGE 9 CDM= LDX 7 AWORK4(2) 9 CF6W STOZ AWORK4(2) 5 CFLG XNOFILE 8 CG66 ADX 7 FX1 7 CGKQ EXIT 7 0 4 CH5B # 4 CHK2 # 4 CJ4L # 4 CJJ= ) 10 CK3W MENDAREA 30,K100PRINT 4 CKHG # 4 CL36 # 4 CLGQ #END 8 ____ ...65531551001700000000