15 22FL #SEG MONITOR36 [ROGER TERRY 15 22_= #LIS K0MONITOR>K0ALLGEO>K0GREATGEO>K0COMMAND 15 23DW #OPT K6MONITOR=K6ALLGEO>K6GREATGEO>K6COMMAND 9 23YG 8HMONITOR 4 24D6 # 21 24XQ # THIS SEGMENT IMPLEMENTS THE MONITOR COMMAND.THE FIRST PARAMETER (ON 20 25CB # OR OFF) IS GOT AND,IF VALID,B0 OF AWORK1 IS SET 1 FOR ON,0 FOR OFF 21 25X2 # IF THE TYPE OF THE SECOND PARAMETER IS SIMPLE IT IS CHECKED FOR BEING 21 26BL # 'DELETE','DISPLAY' OR 'DISENGAGED';IF NOT IT IS ASSUMED TO BE IN THE 9 26W= # 'OPEN PERI' FORMAT - 18 27*W # EG MN ON,REL(*CR)&(OPEN&CLOSE)(*MT0&*MT1) 20 27TG # FOR THIS LAST TYPE OF MONITORING AN APED/AMONCAT BLOCK IS SET UP/ 21 28*6 # UPDATED/DELETED IN THE PCA CHAIN,AND IF MONITORING IS BEING TURNED ON 16 28SQ # AN ADATA/AMONWORK BLOCK IS USED FOR WORKING SPACE. 4 29#B # 18 29S2 # ENTRY POINTS0 ONLY THE FIRST IS GENUINE FROM THE C0P0 17 2=?L SEGENTRY K1MONITOR,ZEP1 [FOR MONITOR COMMAND 19 2=R= SEGENTRY K10MONITOR,ZEP10 [RE-ENTRY FROM SEGMENT ITSELF 19 2?=W SEGENTRY K11MONITOR,ZEP11 [RE-ENTRY FROM SEGMENT ITSELF 4 2?QG # 14 2#=6 # LOCAL DEFINITIONS FOR THE AMONWORK BLOCK 4 2#PQ # 7 2*9B #DEF TYPE=A1 8 2*P2 #DEF PERILS=TYPE+1 8 2B8L #DEF TAMON=PERILS+3 8 2BN= #DEF TALL=TAMON+1 8 2C7W #DEF TTPOINT=TALL+1 9 2CMG #DEF TBPOINT=TTPOINT+1 9 2D76 #DEF PERLIST=TBPOINT+1 4 2DLQ # 20 2F6B #DEF ZWORKL=16 [ORIG LENGTH OF AMONWORK BLOCK 18 2FL2 #DEF ZCATL=8 [ AMONCAT 21 2G5L #DEF ZWORKX=16 [LENGTH BY WHICH AMONWORK IS EXTENDED 18 2GK= #DEF ZCATX=4 [ AMONCAT 20 2H4W #DEF NMONBITS=#3770 [MNTRG TYPES USING AMONCAT BLOCK 4 2HJG # 6 2J46 # DATA WORDS 4 2JHQ # 8 2JRJ ...X64 +64 8 2K3B XON 4HON 8 2KH2 XOFF 4HOFF 8 2L2L XED 4HED 17 2LG= MERM1 +APFERR [PARAMETER FORMAT ERROR : %C 16 2L_W MERM3 +JPARMIS [ %C PARAMETER MISSING 19 2MFG MERM4 +ERUNPAIR [ %C CONTAINS AN UNPAIRED DELIMITER 19 2M_6 MERM5 +ERRPERC [ %C IS NOT A CORRECT PERIPHERAL NAME 19 2NDQ MERM6 +ERM2 [THE NAMED PERIPHERAL IS NOT ON-LINE 20 2NYB MERM7 +JMONCOM [ %C IS INVALID COMBINATION OF MONITORING 9 2P88 ...MERM8 +JMAXPAR 16 2PD2 [ AND PERIPHERAL TYPES 4 2PXL # 18 2QC= TABLE1 +6 [LENGTH OF TABLE ENTRY 19 2QWW [ ILLEGAL PERIPHERAL TYPES 8 2RBG 8HREL 9 2RW6 +BBREL 19 2S*Q ... #01777777 [ ALL BUT 0-4,50,51,52,60 8 2STB -1 9 2T*2 ... #61773777 4 2TSL # 8 2W#= 8HDIS 9 2WRW +BBDIS 18 2X?G ... #01777777 [ ALL BUT 0-4,50,51,52 8 2XR6 -1 9 2Y=Q ... #61777777 4 2YQB # 9 2_=2 8HCONT 9 2_PL +BBCONT 17 329= #32773777 [ 1,2,4,6-11,13-23 14 32NW -1 [ 24-47 14 338G -1 [ 48-63 4 33N6 # 9 347Q 8HALLOT 9 34MB +BBALLOT 14 3572 +0 [ NONE 8 35LL +0 8 366= +0 4 36KW # 9 375G 8HOPEN 9 37K6 +BBOPEN 17 384Q #76135777 [ ALL BUT 5-7,9,13 15 38JB #75777777 [ AND 28 8 3942 -1 4 39HL # 9 3=3= 8HCLOSE 9 3=GW +BBCLOSE 17 3?2G #76175777 [ ALL BUT 5-7,13 15 3?G6 #75777777 [ AND 28 8 3?_Q -1 4 3#FB # 9 3#_2 8HRENAME 9 3*DL +BBRENAME 17 3*Y= #76175777 [ ALL BUT 5-7,13 8 3BCW -1 8 3BXG -1 4 3CC6 # 9 3CWQ 8HEXTEND 9 3DBB +BBEXTEND 17 3DW2 #77175777 [ ALL BUT 6,7,13 8 3F*L -1 8 3FT= -1 17 3G#W +0 [MARKS END OF TABLE1 4 3GSG # 18 3H#6 TABLE2 +3 [LENGTH OF TABLE ENTRY 9 3HRQ 8HDELETE 8 3J?B #0004 10 3JR2 8HDISENGAG 8 3K=L +0 9 3KQ= 8HDISPLAY 8 3L9W #0001 10 3LPG #SKI K6MONITOR>1099-1099 4 3M96 ( 9 3MNQ 8HTEST 9 3N8B #10000000 9 3NN2 8HERROR 9 3P7L #04000000 4 3PM= ) 16 3Q6W +0 [END OF TABLE2 4 3QLG # 20 3R66 # THIS FIRST CODE GETS THE 1ST & 2ND PARAMS AND BRANCHES TO APPRIATE 8 3RKQ # ANALYSIS ROUTINE 4 3S5B # 21 3SK2 ZEP1 [ENTRY POINT FROM COMMAND PROCESSOR 17 3T4L CALL 7 ZPARAPASS [GET FIRST PARAMETER 9 3TJ= NGX 0 ANUM(3) 20 3W3W BPZ 0 ZERR3 [ 'PARAMETER MISSING' IF NULL OR 16 3WHG [ NONEXISTENT 8 3X36 LDCT 4 256 9 3XGQ LDX 0 APARA(3) 10 3Y2B BXE 0 XON(1),SFLAG 7 3YG2 LDN 4 0 21 3Y_L BXU 0 XOFF(1),ZERR1 [ 'PARAMETER FORMAT ERROR IF NEITHER 16 3_F= SFLAG [ 'ON' OR 'OFF' 20 3_YW STO 4 AWORK1(2) [SET ON/OFF FLAG (B0=1 FOR ON) 9 42DG #SKI K6MONITOR>699-699 11 42Y6 TRACE AWORK1(2),MONOFF 17 43CQ FREECORE 3 [FREE THE UNI BLOCK 17 43XB CALL 7 ZPARAPASS [GET 2ND PARAMETER 9 44C2 #SKI K6MONITOR>799-799 11 44WL TRACE APARA(3),2NDPARAM 9 45B= LDX 0 ANUM(3) 16 45TW BZE 0 ZERR3 [ERROR IF NULL 16 46*G BNG 0 ZERR3 [ OR NON-EXISTENT 8 46T6 SRL 0 12 21 47#Q BNZ 0 NEWMON [IF PARAM NOT SIMPLE,J TO SEE IF IT 20 47SB [ IS THE 'OPEN PERI ETC' FORMAT 9 48#2 LDN 1 TABLE2(1) 20 48RL CALL 7 WHATTYPE [CHECK MNTRG TYPE AGAINST TABLE2 21 49?= BRN NEWMON [ -IF ABSENT ASSUME 'OPEN PERI'FORMAT 17 49QW LDX 7 2(1) [ OTHERWISE GET MASK 19 4==G BRN ZOLD1 [ AND J TO IMPLEMENT COMMAND 4 4=Q6 # 21 4?9Q # THE NEXT SECTION DEALS WITH REL,DIS,CONT,ALLOT,OPEN,CLOSE AND RENAME 20 4?PB # MONITORING TYPES.ON ENTRY X0=TYPE OF 2ND PARAM,X5=NO OF PARAMS-3 4 4#92 # 5 4#NL NEWMON 7 4*8= SBN 0 2 19 4*MW BZE 0 ZERR1 [ERROR IF 2ND PARAM COMPOSITE 7 4B7G LDN 1 2 17 4BM6 PARALYSE #26,,1 [SPLIT PARAMETER AT & 10 4C6Q TESTREP UNPAIR,ZERR4 7 4C?Y ...#UNS ANSTOOMANY 10 4CF6 ... TESTREP2 TOOMANY,ZERR8 9 4CLB LDXC 0 AWORK1(2) 21 4D62 BCS MONON [BRANCH IF MONITORING BEING TURNED ON 9 4DKL STOZ AWORK2(2) 21 4F5= MONOFF [IF MNTRG TURNED OFF WE EXAMINE EACH 21 4FJW [ELEMENT OF 2ND PARAM AND SET CORESP 16 4G4G [BIT OF AWORK2 20 4GJ6 CALL 7 ZPARAPASS [GET NEXT ELEMENT OF 2ND PARAM 9 4H3Q #SKI K6MONITOR>799-799 11 4HHB TRACE APARA(3),OFFTYPE 9 4J32 LDX 0 ANUM(3) 16 4JGL BZE 0 ZERR1A [ERROR IF NULL 21 4K2= BNG 0 TURNOFF [IF NON-EXISTENT PROCEED TO TURN OFF 18 4KFW [ SPECIFIED MONITORING 9 4K_G ANDX 0 HALFTOP 19 4LF6 BNZ 0 ZERR2 [ERROR IF PARAM NOT SIMPLE 9 4LYQ LDN 1 TABLE1(1) 18 4MDB CALL 7 WHATTYPE [FIND TYPE OF MONITORING 19 4MY2 BRN ZERR2 [ERROR IF TYPE UNRECOGNISED 8 4NCL LDX 0 2(1) 21 4NX= ORS 0 AWORK2(2) [ OTHERWISE REMEMBER RECOGNISED TYPE 17 4PBW FREECORE 3 [FREE THE UNI BLOCK 9 4PWG BRN MONOFF 4 4QB6 # 21 4QTQ # THE NEXT ROUTINE TURNS OFF MONITORING FOR THE MONITORING TYPES DEFINED 16 4R*B # BY AWORK2 OF THE CPAT 4 4RT2 # 5 4S#L TURNOFF 9 4SS= #SKI K6MONITOR>699-699 11 4T?W TRACE AWORK2(2),TURNOFF 17 4TRG FREECORE 3 [FREE THE LAST UNI 19 4W?6 CALL 0 SMONBLKS [ X1->PCA,X3-> AMONCAT BLOCK 21 4WQQ BNG 3 ZFINISH [IF NO MONITORING,NOTHING TO TURN OFF 9 4X=B LDX 6 AWORK2(2) 7 4XQ2 NGN 0 1 7 4Y9L ERX 6 0 9 4YP= ANDS 6 AMON(1) 9 4_8W ANDS 6 BPALL(3) 21 4_NG ERX 6 0 [FOR THE TABLES TURN OFF ALSO THOSE 20 5286 ORX 6 BPALL(3) [ MNTRG TYPES ALREADY COVERED BY 16 52MQ ERX 6 0 [ THE BPALL WORD 7 537B LDN 5 1 21 53M2 CALL 7 UPDATE [ERASE MONITORING INFO IN UPPER TABLE 7 546L NGN 5 1 18 54L= CALL 7 UPDATE [...AND IN LOWER TABLE 9 555W LDX 0 AMON(1) 9 55KG ANDN 0 NMONBITS 21 5656 BNZ 0 ZFINISH [IF NO MONITORING OF TYPES WHICH NEED 19 56JQ FREECORE 3 [ THE AMONCAT BLOCK,FREE IT 9 574B BRN ZFINISH 4 57J2 # 21 583L # THE NEXT SECTION ANALYSES THE SECOND PARAM OF MN ON,OPEN PERI FORMAT 19 58H= # EG MN ON,REL&DIS(*CR)&(OPEN&CLOSE)(*ED1&*ED2) 21 592W # FIRST WE SET UP AND INITIALISE AN AMONWORK BLOCK,AND EXAMINE THE NEXT 21 59GG # 'ELEMENT' (EG DIS(*CR) OR (OPEN&CLOSE)(*ED1&*ED2) IN ABOVE EXAMPLE ) 20 5=26 # AT LABEL NXTELE.IF THE ELEMENT IS QUALIFIED IT IS SPLIT INTO THE 21 5=FQ # MNTRG TYPES AND PERIPHERAL TYPES PARTS,AND THESE ARE ANALYSED (LABELS 20 5=_B # NXTMTYPE AND NXTPERL);OTHERWISE IF UNQUALIFIED IT IS ANALYSED AT 7 5?F2 # LABEL UNQUAL. 4 5?YL # 13 5#D= MONON SETNCORE ZWORKL,4,ADATA,AMONWORK 7 5#XW PHOTO 0 9 5*CG STO 0 AWORK2(2) 20 5*X6 STOZ AWORK3(2) [POSITIONAL NO OF CURRENT ELEMENT 7 5BBQ LDX 2 4 21 5BWB STOZ TAMON(2) [BIT => TYPE OF MNTRG FOR SOME PERIPH 19 5CB2 STOZ TALL(2) [BIT => ALL 21 5CTL STOZ TTPOINT(2) [PNTR FOR TOP TABLE (REL TO PERLIST) 12 5D*= LDN 0 ZWORKL+A1-1-PERLIST 21 5DSW STO 0 TBPOINT(2) [PNTR FOR BOT TABLE (REL TO PERLIST) 21 5F#G NXTELE [X2,X4->AMONWORK; PHOTO FOR THIS 15 5FS6 [ IN AWORK2 21 5G?Q STOZ TYPE(2) [CONJUNCTION OF MNTRG TYPES FOR THIS 14 5GRB STOZ PERILS(2) [ ELEMENT 21 5H?2 STOZ PERILS+1(2) [3 PERILS WDS-BIT SET IF THAT PERI- 21 5HQL STOZ PERILS+2(2) [ PHERAL MUSTNT BE MNTRD IN SPECD WAY 7 5J== LDN 0 2 19 5JPW PARAFREE 0 [FREE ANY STRAY MULTI BLOCKS 16 5K9G CALL 7 ZPARAPASS [GET NEXT ELEMENT 7 5KP6 LDN 5 1 21 5L8Q ADS 5 AWORK3(2) [AWORK3=POSITIONAL NO OF CRNT ELEMENT 9 5LNB #SKI K6MONITOR>799-799 11 5M82 TRACE APARA(3),NXTELE 9 5MML LDX 0 ANUM(3) 20 5N7= BZE 0 ZERR1A [ERROR IF NULL-ORIG PARAM LIKE 15 5NLW [ REL&&DIS 21 5P6G BNG 0 TURNON [IF N/E PROCEED TO UPDATE AMONCAT BLK 21 5PL6 SRL 0 12 [IF SIMPLE DONT BOTHER TO SPLIT INTO 20 5Q5Q BZE 0 UNQUAL [ (MON TYPES) AND (PERIPH LIST) 20 5QKB SBN 0 3 [ OTHERWISE ERROR IF NOT TYPE 3 8 5R52 BNZ 0 ZERR1 21 5RJL LDX 1 AWORK3(2) [SPLIT ELEMENT INTO (MON TYPES) AND 16 5S4= PARALYSE ,,1 [ (PERIPH LIST) 10 5SHW TESTREP UNPAIR,ZERR4 7 5SP4 ...#UNS ANSTOOMANY 10 5SW= ... TESTREP2 TOOMANY,ZERR8 9 5T3G CALL 7 ZPARANUMB 7 5TH6 SBN 3 2 8 5W2Q BNZ 3 ZERR1 17 5WGB CALL 7 ZPARAPASS [GET MON TYPES PART 9 5X22 LDX 0 ANUM(3) 8 5XFL SRL 0 12 19 5X_= BZE 0 SINGLE [IF SIMPLE DONT SPLIT FURTHER 9 5YDW LDCH 0 APARA(3) 8 5YYG SBN 0 #30 18 5_D6 BNZ 0 ZERR1 [ERROR IF 1ST CHAR NOT ( 17 5_XQ LDN 5 0 [ 'NOT TYPE 0' SWITCH 7 62CB FREECORE 3 7 62X2 LDN 3 1 21 63BL CALL 7 SPLIT [REMOVE OUTER PARENTHESES AND SPLIT 9 63W= CALL 7 ZPARANUMB 7 64*W SBN 3 2 8 64TG BNG 3 ZERR1 5 65*6 NXTMTYPE 21 65SQ CALL 7 ZPARAPASS [GET NEXT ITEM IN MNTRG TYPES LIST 9 66#B #SKI K6MONITOR>899-899 11 66S2 TRACE APARA(3),NXTMTYPE 9 67?L LDX 0 ANUM(3) 20 67R= BZE 0 ZERR1A [ERROR IF NULL - EG (REL&)(*CR) 21 68=W BNG 0 PERQ [IF N/E ANALYSE QUALIFYING PERIPHERAL 14 68QG ANDX 0 HALFTOP [ LIST 19 69=6 BNZ 0 ZERR2 [ERROR IF OTHER THAN SIMPLE 5 69PQ SINGLE 18 6=9B CALL 7 SWORK [FIND THE AMONWORK BLOCK 9 6=P2 LDN 1 TABLE1(1) 16 6?8L CALL 7 WHATTYPE [FIND MNTRG TYPE 18 6?N= BRN ZERR2 [ERROR IF UNRECOGNISED 21 6#7W LDX 0 2(1) [OTHERWISE UPDATE DATA WORDS FOR THIS 14 6#MG ORS 0 TYPE(2) [ ELEMENT 9 6*76 ORS 0 TAMON(2) 8 6*LQ LDX 0 3(1) 9 6B6B ORS 0 PERILS(2) 8 6BL2 LDX 0 4(1) 10 6C5L ORS 0 PERILS+1(2) 8 6CK= LDX 0 5(1) 10 6D4W ORS 0 PERILS+2(2) 15 6DJG FREECORE 3 [FREE THE UNI 21 6F46 BZE 5 NXTMTYPE [IF >1 ITEM TO MNTRG TYPES LIST,BRNCH 21 6FHQ BRN PERQUAL [ OTHERWISE ALALYSE ELEMENT QUALIFIER 4 6G3B # 7 6GH2 PERQ FREECORE 3 21 6H2L PERQUAL [THIS ROUTINE ANALYSES THE PERIPHERAL 20 6HG= [ LIST QUALIFIER FOR THE CURRENT 21 6H_W [ ELEMENT.X4->AMONWORK,PHOTO IN AWK2 19 6JFG LDN 0 2 [ ALL OTHER ACCS UNDEFINED 7 6J_6 PARAPASS 0 10 6KDQ MHUNT 3,CPB,CUNI 9 6KYB #SKI K6MONITOR>899-899 11 6LD2 TRACE APARA(3),PERQUAL 9 6LXL LDCH 0 APARA(3) 8 6MC= SBN 0 #30 18 6MWW BNZ 0 ZERR1 [ERROR IF 1ST CHAR NOT ( 7 6NBG FREECORE 3 7 6NW6 LDN 3 2 20 6P*Q CALL 7 SPLIT [STRIP OFF OUTER PARENTHESES AND 15 6PTB [ SPLIT ON & 5 6Q*2 NXTPERL 16 6QSL CALL 7 ZPARAPASS [GET CUNI BLOCK 9 6R#= #SKI K6MONITOR>899-899 11 6RRW TRACE APARA(3),NXTPERL 9 6S?G NGX 7 ANUM(3) 20 6SR6 BNG 7 NXTP2 [J IF NOT NULL OR NON-EXISTENT 19 6T=Q FREECORE 3 [OTHERWISE FREE THE UNI BLOCK 18 6TQB BZE 7 ZERR1 [IF UNI WAS NULL,ERROR 20 6W=2 MFREE CPB,CUNI [ OTHERWISE FREE UNI CONTAINING 16 6WPL [ ENTIRE ELEMENT 18 6X9= CALL 7 SWORK [FIND THE AMONWORK BLOCK 20 6XNW BRN NXTELE [PROCEED TO PROCESS NEXT ELEMENT 16 6Y8G NXTP2 PERCONA [GET TYPE/UNIT NO 20 6YN6 TESTREPNOT OK,ZERR10 [INVALID PERIPH NAME - EXIT TO CP 10 6YT# ... LDEX 0 ACOMMUNE1(2) 18 6_2G ... BXGE 0 X64(1),ZERR5 [IN CASE MANYDA IN USE 9 6_7Q MFREE CPB,CUNI 19 6_MB LDX 6 ACOMMUNE1(2) [RESULT OF PERCONA CONVERSION 7 7272 LDX 5 6 18 72LL SRL 5 15 [PERIPHERAL TYPE NUMBER 17 736= CALL 7 SWORK [FIND AMONWORK BLOCK 20 73KW NXTP4 SBN 5 24 [MONITORING IS ILLEGAL FOR THE 20 745G BNG 5 NXTP3 [ PERIPHERAL TYPE SPECD BY X5 IF 21 74K6 ADN 2 1 [ THE [X5]TH BIT OF PERILS-PERILS+2 20 754Q BRN NXTP4 [ IN THE AMONWORK BLOCK IS SET 8 75JB NXTP3 ADN 5 24 8 7642 LDCT 0 #400 7 76HL SMO 5 7 773= SRL 0 0 9 77GW ANDX 0 PERILS(2) 8 782G BNZ 0 ZERR7 17 78G6 LDX 2 4 [X2-> AMONWORK AGAIN 21 78_Q LDX 0 TBPOINT(2) [IF THE PERLIST TABLES CAN ACCOMODATE 18 79FB BXGE 0 TTPOINT(2),ZENUF [ ANOTHER ENTRY,BRANCH 10 79_2 DOWN MONITOR,10 19 7=DL CALL 7 SWORK [ AND RELOCATE AMONWORK BLOCK 7 7=Y= ZENUF LDCH 5 6 8 7?CW SLL 5 12 7 7?XG SLL 6 3 9 7#C6 ANDX 6 HALFTOP 21 7#WQ ORX 6 5 [X6=B0-5TYPE B6-11UNIT NO B12-23 ZERO 21 7*BB ORX 6 TYPE(2) [X6 NOW IN FORMAT FOR INSERTION INTO 16 7*W2 [ AMONWORK TABLE 8 7B*L SMO FX2 9 7BT= LDX 0 ACOMMUNE2 21 7C#W BNG 0 TBEN [J IF UNIT NO NOT SPECIFIED - ENTRY 16 7CSG [ IN BOTTOM TABLE 17 7D#6 SMO TTPOINT(2) [OTHERWISE INSERT IN 15 7DRQ STO 6 PERLIST(2) [ TOP TABLE 7 7F?B LDN 0 1 18 7FR2 ADS 0 TTPOINT(2) [ ..AND UPDATE POINTER 9 7G=L BRN NXTPERL 10 7GQ= TBEN SMO TBPOINT(2) 10 7H9W STO 6 PERLIST(2) 7 7HPG LDN 0 1 10 7J96 SBS 0 TBPOINT(2) 9 7JNQ BRN NXTPERL 21 7K8B UNQUAL [EXECUTED IF ELEMENT WAS UNQUALIFIED 18 7KN2 LDN 1 TABLE1(1) [ BY A PERIPHERAL LIST 9 7L7L CALL 7 WHATTYPE 19 7LM= BRN ZERR2 [ERROR IF TYPE UNRECOGNISED 19 7M6W LDX 5 2(1) [GET MASK FOR RECOGNISED TYPE 16 7MLG FREECORE 3 [FREE CUNI BLOCK 17 7N66 CALL 7 SWORK [FIND AMONWORK BLOCK 21 7NKQ ORS 5 TAMON(2) [THIS TYPE MNTRG FOR SOME PERIPHERALS 21 7P5B ORS 5 TALL(2) [THIS TYPE MNTRG FOR ALL PERIPHERALS 9 7PK2 BRN NXTELE 4 7Q4L # 21 7QJ= # THIS ROUTINE TRANSFERS THE INFORMATION ABOUT MONITORING TO BE TURNED 21 7R3W # ON FROM THE AMONWORK BLOCK TO THE AMONCAT BLOCK,EXTENDING THIS BLOCK 7 7RHG # IF NECESSARY. 20 7S36 # ON ENTRY X4 -> AMONWORK BLOCK VALIDATED BY AWORK2 X1=FX1 X2=FX2 12 7SGQ # X3 -> CUNI TO BE FREED 4 7T2B # 5 7TG2 TURNON 7 7T_L FREECORE 3 19 7WF= RESTART [RE-ENTRY WHEN MERGE FRUSTRATED BY LACK OF CORE. 18 7WYW [ MUST HAVE X2=FX2 AND X4 OK FOR S/R SWORK 17 7XDG CALL 7 SWORK [FIND AMONWORK BLOCK 19 7XY6 LDX 0 TAMON(2) [ERROR IF NO MONITORING IS TO 20 7YCQ BZE 0 ZERR1 [ BE TURNED ON-SHOULD NEVER OCCUR 18 7YXB CALL 0 SMONBLKS [ X1-> PCA, X3-> AMONCAT 20 7_C2 BPZ 3 ZOK [IF NO AMONCAT BLOCK,CREATE ONE 12 7_WL SETNCORE ZCATL,3,APED,AMONCAT 19 82B= STOZ BPALL(3) [INITIALISE 'ALL PERS' WORD 16 82TW STOZ BTPOINT(3) [ AND POINTERS 11 83*G LDN 0 ZCATL+A1-1-BPTAB 10 83T6 STO 0 BBPOINT(3) 7 84#Q FPCACA 2 7 84SB LDX 5 2 20 85#2 CHAIN 3,2 [CHAIN AMONCAT BLOCK BEFORE PCA 7 85RL LDX 1 5 8 86?= CALL 7 SWORK 20 86QW ZOK LDX 0 TAMON(2) [X1->PCA X2->AMONWORK X3->AMONCAT 21 87=G ORS 0 AMON(1) [BIT -> MNTRG REQUD ON SOME PERIPHS 9 87Q6 LDX 0 TALL(2) 21 889Q ORS 0 BPALL(3) [BIT -> MNTRG REQUD ON ALL PERIPHS 8 88PB SMO FX2 9 8992 STO 2 AWORK3 8 89NL SMO FX2 9 8=8= STO 3 AWORK4 7 8=MW LDN 5 1 16 8?7G CALL 7 MERGE [MERGE TOP TABLES 8 8?M6 SMO FX2 9 8#6Q LDX 2 AWORK3 8 8#LB SMO FX2 9 8*62 LDX 3 AWORK4 7 8*KL NGN 5 1 17 8B5= CALL 7 MERGE [MERGE BOTTOM TABLES 9 8BJW BRN ZFINISH 4 8C4G # 21 8CJ6 # THE FOLLOWING ROUTINE IMPLEMENTS THE MONITOR COMMAND WHEN THE SECOND 19 8D3Q # PARAMETER IS DISPLAY,DELETE OR DISENGAGED.ENTER WITH X2=FX2, 17 8DHB # X3->CUNI CONTG MNTRG TYPE PARAMETER,X5=NO OF PARAMS-3 4 8F32 # 16 8FGL ZOLD1 BZE 7 ZDIS1 [J IF DISENGAGED 14 8G2= FPCACA 3,2 [FIND PCA 9 8GFW LDXC 0 AWORK1(2) 8 8G_G BCS ZOLD3 7 8HF6 NGN 0 1 7 8HYQ ERX 7 0 21 8JDB ANDS 7 AMON(3) [IF MONITOR OFF,ERASE RELEVANT BIT 9 8JY2 BRN ZFINISH 20 8KCL ZOLD3 ORS 7 AMON(3) [IF MONITOR ON,SET RELEVANT BIT 9 8KX= BRN ZFINISH 19 8LBW ZDIS1 LDX 0 ANUM(3) [MNTRG TYPE IS 'DISENGAGED' 8 8LWG SBN 0 10 18 8MB6 BNZ 0 ZERR2 [ ERROR IF NOT 10 CHARS 8 8MTQ LDX 1 FX1 9 8N*B LDX 0 XED(1) 18 8NT2 BXU 0 APARA+2(3),ZERR2 [ ...OR LAST TWO NOT 'ED' 16 8P#L CALL 7 ZPARAPASS [GET PERIPHERAL 15 8PS= NGX 0 ANUM(3) [ QUALIFIER 17 8Q?W BPZ 0 ZERR3 [ - ERROR IF MISSING 18 8QRG PERCONA [CONVERT TO TYPE/UNIT NO 10 8R?6 TESTREPNOT OK,ZERR10 10 8RD# ... LDEX 0 ACOMMUNE1(2) 21 8RKG ... BXGE 0 X64(1),ZERR5 [IN CASE MANY DA IN USE 20 8RQQ LDX 7 ACOMMUNE1(2) [B0-8 TYPE B9-23 UNIT NO (MK 6.5) 8 8S=B FPCACA 1,2 10 8SQ2 FINDOLP1 7,3,1,ZDIS2 9 8T9L LDX 5 A1+1(3) 21 8TP= ANDX 5 BITS22LS [GET DEVICE LIST PTR IN CASE ITS ON/L 21 8W8W BNG 1 ZDIS5 [J IF PERIPHERAL MARKED ONLINE IN PRB 8 8WNG SRL 7 15 7 8X86 SBN 7 5 21 8XMQ BNZ 7 ZDIS2 [J IF NOT MT - MUST BE REALLY OFFLINE 9 8Y7B LDX 0 ATMARK(1) 7 8YM2 SBN 0 2 21 8_6L BNZ 0 ZDIS2 [J IF AOLPT IS NOT PSEUDO OFFLINE MT 21 8_L= MTPTR 1,5 [ ELSE GET PTR TO ONLINE MT DEVICE LS 19 925W ZDIS5 NGNC 6 1 [X6=1 IF PERIPHERAL IS ONLINE 21 92KG ZDIS2 NGN 6 0 [X6=0 IF PRL OFFLINE OR UNALLOCATED 9 9356 LDXC 0 AWORK1(2) 18 93JQ BCS ZDIS7 [J IF TURNING MNTRG ON 21 944B BZE 6 ZFINISH [MN OFF:IGNORE IF PRL OFF/L OR UNALL 19 94J2 PERMOFF 5 [ OTHERWISE TURN MNTRE OFF 9 953L BRN ZFINISH 21 95H= ZDIS7 BZE 6 ZERR6 [MN ON:ILLEGAL IF PRL OFF/L OR UNALL 18 962W PERMON 5 [ OTHERWISE TURN MNTRG ON 9 96GG BRN ZFINISH 4 9726 # 13 97FQ # SUBROUTINES 4 97_B # 14 98F2 ZPARAPASS [ LINK X7 21 98YL SBX 7 FX1 [ X0 DESTROYED X1=FX1 X2=FX2 X3->CUNI 16 99D= PARAPASS [ X4-X6 UNCHANGED 8 99XW ADX 7 FX1 10 9=CG MHUNT 3,CPB,CUNI 7 9=X6 EXIT 7 0 4 9?BQ # 14 9?WB ZPARANUMB [ LINK X7 19 9#B2 SBX 7 FX1 [ X0 DESTROYED X1=FX1 X2=FX2 21 9#TL PARANUMB 3 [ X3=NO OF PARAMS IN HIGHEST CMULTI 17 9**= ADX 7 FX1 [ X4,5,6 UNCHANGED 7 9*SW EXIT 7 0 4 9B#G # 18 9BS6 SWORK [FINDS THE AMONWORK BLOCK 21 9C?Q LDX 0 AWORK2(2) [ON ENTRY X2=FX2,X4->AMONWORK?(PHOTO 15 9CRB TESTMOVE 0,SWOR1 [ IN AWORK2) 20 9D?2 PHOTO 0 [ON EXIT X2=X4->AMONWORK,AWORK2 18 9DQL STO 0 AWORK2(2) [ UPDATED,X0 DESTROYED 11 9F== MHUNTW 2,ADATA,AMONWORK 7 9FPW LDX 4 2 7 9G9G SWOR1 LDX 2 4 7 9GP6 EXIT 7 0 4 9H8Q # 21 9HNB SMONBLKS [FINDS PCA (X1) AND AMONCAT BLOCK(X3) 20 9J82 [ IF NO AMONCAT BLOCK X3 SET -1 18 9JML [ LINK X0,GEN6 DESTROYED 8 9K7= STO 0 GEN6 8 9KLW FPCACA 1,FX2 7 9L6G NGN 3 1 9 9LL6 LDX 0 AMON(1) 9 9M5Q ANDN 0 NMONBITS 18 9MKB BZE 0 SMON1 [J SINCE NO AMONCAT BLOCK 11 9N52 HUNT2 3,APED,AMONCAT,1 9 9NJL SMON1 BRN (GEN6) 4 9P4= # 20 9PHW SPLIT [SPLITS OUTER PARENTHESES OFF THE 21 9Q3G [ [X3]-TH PARAM AT ANALYSIS LEVEL 2 20 9QH6 [ AND SPLITS IT AT '&'.ONE CMULTI 16 9R2Q [ BLOCKS CREATED 8 9RGB SBX 7 FX1 7 9S22 LDN 1 2 9 9SFL PARALYSE #26,1,3 10 9S_= TESTREP UNPAIR,ZERR4 7 9T6D ...#UNS ANSTOOMANY 10 9T?L ... TESTREP2 TOOMANY,ZERR8 8 9TDW ADX 7 FX1 7 9TYG EXIT 7 0 4 9WD6 # 20 9WXQ UPDATE [THIS S/R TURNS OFF THE MONITORING INFO OF THE TOP OR 16 9XCB [BOTTOM TABLES OF THE AMONCAT BLOCK 21 9XX2 [ON ENTRY X3-> AMONCAT BLOCK,X5=+/-1 FOR TOP/BOT TABLES 13 9YBL [ X6=TURNOFF MASK 20 9YW= [ON EXIT X0,X2,X4 & GEN6 DESTROYED ; MOD([X2])=NO OF 13 9_*W [ NEW FREE WORDS CREATED 4 9_TG # 20 =2*6 STO 3 GEN6 [REMEMBER ADDR OF AMONCAT BLOCK 8 =2SQ BNG 5 UP1 18 =3#B LDX 4 BTPOINT(3) [COUNT OF TABLE ENTRIES 19 =3S2 BZE 4 UP3 [EXIT IF NO ENTRIES IN TABLE 16 =4?L LDN 3 BPTAB(3) [BASE OF TABLE 8 =4R= BRN UP2 10 =5=W UP1 LDX 4 ALOGLEN(3) 10 =5QG SBN 4 BPTAB-A1+1 18 =6=6 SBX 4 BBPOINT(3) [COUNT OF TABLE ENTRIES 19 =6PQ BZE 4 UP3 [EXIT IF NO ENTRIES IN TABLE 10 =79B ADX 3 ALOGLEN(3) 16 =7P2 ADN 3 A1-1 [BASE OF TABLE 7 =88L UP2 LDX 2 3 8 =8N= UP5 LDX 0 0(3) 7 =97W ANDX 0 6 8 =9MG STO 0 0(2) 9 ==76 ANDN 0 NMONBITS 19 ==LQ BZE 0 UP4 [IF LAST ENTRY NULL,DONT STEP 16 =?6B ADX 2 5 [ STORING PNTR 7 =?L2 UP4 ADX 3 5 8 =#5L BCT 4 UP5 7 =#K= SBX 2 3 8 =*4W LDX 3 GEN6 18 =*JG BNG 5 UP6 [UPDATE BOTTOM TABLE PNTR 15 =B46 ADS 2 BTPOINT(3) [ OR TOP ONE 7 =BHQ EXIT 7 0 10 =C3B UP6 ADS 2 BBPOINT(3) 7 =CH2 UP3 EXIT 7 0 4 =D2L # 21 =DG= WHATTYPE [THIS S/R FINDS WHETHER 1ST 8 CHARS OF PARAMETER IN CUNI 16 =D_W [BLOCK CORRESPOND TO A TABLE ENTRY 17 =FFG [ ON ENTRY X1->TABLE ;X3-> CUNI BLOCK 19 =F_6 [ ON EXIT - MATCH FOUND:X1->ENTRY,EXIT TO CALL+1 17 =GDQ [ OTHERWISE :X1=?,EXIT TO CALL 9 =GYB LDX 6 ANUM(3) 8 =HD2 ANDN 6 #7777 21 =HXL SBN 6 5 [ X6 -VE IF JUST 1 WD IN CUNI BLOCK 8 =JC= LDX 0 0(1) 19 =JWW STO 0 GEN6 [TABLE ENTRY LENGTH TO GEN6 7 =KBG ADN 1 1 8 =KW6 WSTEP LDX 0 0(1) 18 =L*Q BZE 0 WEND [BRANCH IF END OF TABLE 20 =LTB SBX 0 APARA(3) [IF NO MATCH WITH 1ST WD OF CUNI 16 =M*2 BNZ 0 WNXT [ STEP DOWN TABLE 8 =MSL LDX 0 ACES 8 =N#= BNG 6 W2ND 10 =NRW LDX 0 APARA+1(3) 19 =P?G W2ND BXU 0 1(1),WEND [...OTHERWISE CHECK 2ND WORD 15 =PR6 EXIT 7 1 [SUCCESS EXIT 8 =Q=Q WNXT ADX 1 GEN6 8 =QQB BRN WSTEP 15 =R=2 WEND EXIT 7 0 [FAIL EXIT 4 =RPL # 4 =S9= # 21 =SNW # THIS SUBROUTINE UPDATES THE TABLES OF THE AMONCAT BLOCK BY THOSE OF 8 =T8G # THE AMONWORK BLOCK 20 =TN6 # ON ENTRY X2=AWORK3-> AMONWORK BLOCK ;X3=AWORK4-> AMONCAT BLOCK 15 =W7Q # X5=+ OR - 1 FOR TOP OR BOTTOM TABLES 18 =WMB # ON EXIT ALL ACCUMULATORS ARE DESTROYED & NO COORDINATION 21 =X72 # IF THE AMONCAT BLOCK TURNS OUT TO BE TOO SMALL IT IS LENGTHENED AND 20 =XLL # CONTROL PASSES TO LABEL RESTART AFTER RESETING X4 FOR S/R SWORK 4 =Y6= # 5 =YKW MERGE 19 =_5G BNG 5 M1 [J IF MERGING BOTTOM TABLES 21 =_K6 LDX 4 TTPOINT(2) [ SET X4=COUNT OF AMONWORK ENTRIES 20 ?24Q LDX 6 BTPOINT(3) [ X6=COUNT OF AMONCAT ENTRIES 10 ?2JB LDX 0 BBPOINT(3) 20 ?342 ADN 2 PERLIST [ X2=BASE OF AMONWORK TABLE 20 ?3HL ADN 3 BPTAB [ X3=BASE OF AMONCAT TABLE 8 ?43= BRN M2 19 ?4GW M1 LDX 4 ALOGLEN(2) [IF MERGING BOTTOM TABLE SET 18 ?52G SBN 4 PERLIST-A1+1 [ X4,X6,X2,X3 AS ABOVE 10 ?5G6 SBX 4 TBPOINT(2) 10 ?5_Q ADX 2 ALOGLEN(2) 8 ?6FB ADN 2 A1-1 10 ?6_2 LDX 6 ALOGLEN(3) 10 ?7DL SBN 6 BPTAB-A1+1 10 ?7Y= SBX 6 BBPOINT(3) 10 ?8CW LDX 0 BTPOINT(3) 10 ?8XG ADX 3 ALOGLEN(3) 8 ?9C6 ADN 3 A1-1 18 ?9WQ M2 BZE 4 M3 [EXIT IF NOTHING TO MERGE 8 ?=BB LDX 1 FX2 9 ?=W2 ADX 0 AWORK4(1) 8 ??*L ADN 0 BPTAB 7 ??T= ADX 0 5 20 ?##W STO 0 ACOMMUNE1(1) [ABS ADDR OF END OF 'OTHER' TABLE 18 ?#SG STO 3 ACOMMUNE2(1) [BASE OF AMONCAT TABLE 18 ?*#6 STO 6 ACOMMUNE3(1) [COUNT OF AMONCAT ENTRIES 8 ?*RQ BZE 6 M4 8 ?B?B M7 LDX 0 0(2) 21 ?BR2 ANDX 0 HALFTOP [TYPE/UNIT NO OF NEXT AMONWORK ENTRY 8 ?C=L M6 LDX 1 0(3) 21 ?CQ= ANDX 1 HALFTOP [TYPE/UNIT NO OF NEXT AMONCAT ENTRY 21 ?D9W BXE 0 1,M5 [IF EQUAL,J TO UPDATE AMONCAT ENTRY 7 ?DPG ADX 3 5 21 ?F96 BCT 6 M6 [ OTHERWISE CHECK NEXT AMONCAT ENTRY 21 ?FNQ M4 SMO FX2 [NO MATCH IN ENTIRE AMONCAT TABLE : 20 ?G8B BXE 3 ACOMMUNE1,M9 [ ROOM FOR NEW ENTRY? J IF NOT 8 ?GN2 LDX 0 0(2) 18 ?H7L STO 0 0(3) [INSERT NEW AMONCAT ENTRY 8 ?HM= LDX 1 FX2 7 ?J6W LDN 0 1 9 ?JLG LDX 3 AWORK4(1) 8 ?K66 BNG 5 M10 20 ?KKQ ADS 0 BTPOINT(3) [UPDATE AMONCAT PNTR IF TOP TABLE 8 ?L5B BRN M11 20 ?LK2 M10 SBS 0 BBPOINT(3) [UPDATE AMONCAT PNTR IF BOT TABLE 20 ?M4L M11 ADS 0 ACOMMUNE3(1) [UPDATE COUNT OF AMONCAT ENTRIES 18 ?MJ= M8 LDX 3 ACOMMUNE2(1) [BASE OF AMONCAT TABLE 18 ?N3W LDX 6 ACOMMUNE3(1) [COUNT OF AMONCAT ENTRIES 20 ?NHG ADX 2 5 [STEP PNTR TO NEXT AMONWORK ENTRY 21 ?P36 BCT 4 M7 [ AND J IF ANY MORE ENTRIES TO MERGE 16 ?PGQ M3 EXIT 7 0 [ OTHERWISE EXIT 20 ?Q2B M5 LDX 0 0(2) [UPDATE EXISTING AMONCAT ENTRY 8 ?QG2 ORS 0 0(3) 8 ?Q_L LDX 1 FX2 8 ?RF= BRN M8 10 ?RYW M9 DOWN MONITOR,11 9 ?SDG LDX 4 AWORK3(2) 9 ?SY6 BRN RESTART 4 ?TCQ # 10 ?TXB #SKI K6MONITOR>1099-1099 4 ?WC2 ( 21 ?WWL TESTOUT [OUTPUTS TO THE MONITORING FILE THE CONTENTS OF A BLOCK, 14 ?XB= [IN OCTAL ON ENTRY X3->BLOCK 20 ?XTW [ ON EXIT X1=FX1,X2=FX2,X0,3,4,5,6 DESTROYED 11 ?Y*G [ COORDINATES. 8 ?YT6 SBX 7 FX1 7 ?_#Q LOCK 3 7 ?_SB LDX 4 3 10 #2#2 LDX 5 ALOGLEN(3) 8 #2RL ADN 5 A1+3 7 #3?= SRL 5 2 8 #3QW TE1 LDN 0 20 7 #4=G OUTBLOCK 0 7 #4Q6 LDN 6 4 10 #59Q TE2 OUTNUM 1-1(3),OCTAL 7 #5PB BUX 3 / 8 #692 BCT 6 TE2 9 #6NL MONOUT IPLISTING 8 #78= BCT 5 TE1 7 #7MW UNLOCK 4 8 #87G ADX 7 FX1 7 #8M6 EXIT 7 0 4 #96Q ) 20 #9LB # ENTRY POINTS 10 & 11 ARE ENTERED BY THE SEGMENT ITSELF (CHEAP ACC. 21 #=62 # DUMP) TO LENGTHEN THE AMONWORK AND AMONCAT BLOCKS RESPECTIVELY.IT IS 15 #=KL # UNLIKELY THAT THE CODE WILL EVER BE EXECUTED 4 #?5= # 5 #?JW ZEP10 16 ##4G LDN 7 0 [K10/K11 SWITCH 11 ##J6 MHUNTW 3,ADATA,AMONWORK 17 #*3Q LDN 5 ZWORKX [LENGTH TO BE ADDED 10 #*HB LDX 4 ALOGLEN(3) 10 #B32 SBN 4 PERLIST-A1+1 20 #BGL SBX 4 TBPOINT(3) [X4=NO OF ENTRIES IN LOWER TABLE 8 #C2= BRN XTND 5 #CFW ZEP11 7 #C_G LDN 7 1 18 #DF6 CALL 0 SMONBLKS [ X1-> PCA, X3-> AMONCAT 17 #DYQ LDN 5 ZCATX [LENGTH TO BE ADDED 10 #FDB LDX 4 ALOGLEN(3) 10 #FY2 SBN 4 BPTAB-A1+1 20 #GCL SBX 4 BBPOINT(3) [X4=NO OF ENTRIES IN LOWER TABLE 4 #GX= XTND 9 #HBW #SKI K6MONITOR>699-699 12 #HWG TRACE ALOGLEN(3),OLDLENG 10 #JB6 LDX 6 ALOGLEN(3) 19 #JTQ ADX 6 5 [INCREMENT OLD LOGICAL LENGTH 17 #K*B ALTLEN 3,6 [ AND EXTEND BLOCK 20 #KT2 BNZ 7 Z11 [RELOCATE AND UPDATE BOT POINTER 11 #L#L MHUNTW 3,ADATA,AMONWORK 10 #LS= ADS 5 TBPOINT(3) 9 #M?W BRN XFOUND 18 #MRG Z11 CALL 0 SMONBLKS [ X1-> PCA, X3-> AMONCAT 10 #N?6 ADS 5 BBPOINT(3) 5 #NQQ XFOUND 9 #P=B #SKI K6MONITOR>699-699 12 #PQ2 TRACE ALOGLEN(3),NEWLENG 20 #Q9L BZE 4 RETN [IF LOWER TABLE EMPTY,J TO GO UP 19 #QP= ADX 3 ALOGLEN(3) [OTHERWISE SLIDE TABLE DOWN 17 #R8W ADN 3 A1-1 [X3-> NEW TABLE BASE 7 #RNG LDX 2 3 17 #S86 SBX 2 5 [X2-> OLD TABLE BASE 16 #SMQ TRANS LDX 0 0(2) [SLIDE TABLE DOWN 8 #T7B STO 0 0(3) 7 #TM2 SBN 2 1 7 #W6L SBN 3 1 8 #WL= BCT 4 TRANS 5 #X5W RETN UP 4 #XKG # 14 #Y56 # THERE NOW FOLLOW THE VARIOUS ERROR EXITS 4 #YJQ # 5 #_4B ZERR1A 7 #_J2 FREECORE 3 5 *23L ZERR1 5 *2H= ZERR2 8 *32W LDN 3 MERM1 8 *3GG BRN MESS 5 *426 ZERR3 8 *4FQ LDN 3 MERM3 8 *4_B BRN MESS 5 *5F2 ZERR4 8 *5YL LDN 3 MERM4 8 *6D= BRN MESS 5 *6XW ZERR5 8 *7CG LDN 3 MERM5 8 *7X6 BRN MESS 5 *8BQ ZERR6 8 *8WB LDN 3 MERM6 8 *9B2 BRN MESS 5 *9TL ZERR7 8 *=*= LDN 3 MERM7 8 *=F7 ... BRN MESS 5 *=K4 ...ZERR8 8 *=N_ ... LDN 3 MERM8 8 *=SW MESS SMO FX1 8 *?#G LDX 7 0(3) 10 *?S6 #SKI K6MONITOR<1100-1100 4 *#?Q ( 7 *#RB COMERRX 7 5 **?2 ZFINISH 5 **QL ZERR10 4 *B== ) 10 *BPW #SKI K6MONITOR>1099-1099 4 *C9G ( 7 *CP6 ERRORX 7 5 *D8Q ZERR10 7 *DNB LDN 7 0 8 *F82 BRN ZF1 5 *FML ZFINISH 7 *G7= NGN 7 1 8 *GLW ZF1 LDX 2 FX2 8 *H6G FPCACA 3,2 8 *HL6 BNG 7 ZF2 9 *J5Q LDX 0 AMON(3) 7 *JKB SLL 0 3 17 *K52 BPZ 0 ZF5 [J IF NOT MN ON,ERROR 9 *KJL GEOERR 1,MONITOR 9 *L4= ZF2 LDX 0 AMON(3) 9 *LHW STO 0 AWORK1(2) 7 *M3G SLL 0 2 17 *MH6 BPZ 0 ZF5 [J IF NOT MN ON,TEST 18 *N2Q ZF3 LDX 3 FPTR(3) [LOOK FOR AMONCAT BLOCK 15 *NGB BXE 3 FX2,ZF4 [ J IF ABSENT 9 *P22 LDX 0 ATYPE(3) 8 *PFL SRL 0 12 10 *P_= SBN 0 APED+AMONCAT 8 *QDW BNZ 0 ZF3 9 *QYG CALL 7 TESTOUT 9 *RD6 ZF4 LDX 7 AWORK1(2) 9 *RXQ OUTNUM 7,OCTAL 9 *SCB MONOUT JPRINTOUT 11 *SX2 HUNTW 3,ADATA,AMONWORK 8 *TBL BNG 3 ZF5 9 *TW= CALL 7 TESTOUT 4 *W*W ZF5 4 *WTG ) 6 *X*6 ENDCOM 4 *XSQ # 8 *Y#B MENDAREA 25 4 *YS2 #END 8 ____ ...30020514000500000000