14 228= ... SEG TRAPCHEC,3,FILE,USERCOMS,G400 4 22BG ...[ 16 22JQ ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 22R2 ...[ 4 22_= ...# 6 23DW ...#UNS G400 13 23YG ...# THIS CHAPTER IS FOR G3PLUS-IH MK2 21 25CB # THIS SEGMENT IS USED BY THE TRAPCHECK COMMAND AND THE CHECKTRAP 21 25X2 # A SEARCH IS MADE FOR THE TRAP FOR THE GIVEN USER (OR HIS GROUP) OR 21 26BL # GROUP TRAP OF A SUPEROOR USER. AN APPROPRIATE REPLY IS GIVEN. ERRO 21 26W= # ARE REPORTED WHERE A USER ATTEMPTS TO ASCERTAIN THE ACCESS OF ANOT 21 27*W # IN ANOTHER USER'S FILE OR WHERE HE IS NOT ALLOWED ACCESS IN ANOTHE 18 27TG # USER'S FILE IE THE RESULT OF THE SEARCH IS NEGATIVE. 4 28*6 [ 12 28SQ SEGENTRY K3TRAPCHEC,PARAMSDONE 12 29#B SEGENTRY K5TRAPCHEC,ZCHECKTRA 19 29LR ... SEGENTRY K7TRAPCHEC,(GEOERR)[OLD AND REDUNDANT ENTRYPOINT 3 29_8 ... 14 2=6C ... FSHENTRY K8TRAPCHEC,,RETFROMA,RETFROMA 4 2=?L [ 8 2J46 ONE +1 5 2JHQ PARA1 5 2K3B +5 7 2KH2 8HGROUP 5 2L2L PARA2 5 2LG= +3 6 2L_W 8HALL 5 2MFG PARA3 5 2M_6 +5 7 2NDQ 8HERASE 5 2NYB +5 7 2PD2 8HWRITE 5 2PXL +6 7 2QC= 8HAPPEND 6 2QWW +4 6 2RBG 8HREAD 5 2RW6 +7 7 2S*Q 8HEXECUTE 5 2STB PARA4 8 2T*2 PM6 4H: 7 2TSL MASTER 12HMASTER 7 2W#= MANAG 12HMANAGER 5 2WRW ZGEOER1 10 2X?G GEOERR 1,JBBLOCK? 6 2XR6 RCHEQNAME 20 2Y=Q # ROUTINE CHECKS IF THE NAME IN THE ^TRAP-TYPE^ BLOCK AT X1 IS 20 2YQB # EQUAL TO ANY OF THE NAMES IN THE FULLY EXPANDED ABS.NAME BLOCK 14 2_=2 # AT X2.CALLED BY X7,USES X2,X3,X4,X0. 12 2_PL LDX 4 A1(2) [ 12 329= SBN 4 4 [ 21 32NW STOZ 3 [X4= COUNT OF NAMES IN FABSNB LESS 1 17 338G SMO FX1 [MUST BE 1 OR MORE 12 33N6 DVD 3 SIX [ 15 347Q ADX 2 A1(2) [A1(2) NOW 15 34MB TESTA [POINTS TO 15 3572 SBN 2 6 [NEXT NAME UP 19 35LL TESTNAMX 3,A1+1(2),ETRUSER1(1),TBCT,3 [J IF NAMES ONEQUAL 16 366= EXIT 7 1 [EXIT +1 IF OK 4 36KW TBCT 16 375G BCT 4 TESTA [J FOR NEXT NAME 21 37K6 EXIT 7 0 [TOP NAME IS :MASTER,SO DON'T NEED 15 384Q [TO CHECK IT. 5 38JB SIX +6 21 3942 # X7 IS USED TO INDICATE WHETHER TRAPCHECK COMMAND OR MACRO 13 39HL # B1=1,B2=0 INDICATES COMMAND 13 3=3= # B1=1,B2=1 INDICATES MACRO 4 3=GW [ 6 3*Y= ZCHECKTRA 14 3DBB # THIS SECTION INITIALISES ACCUMULATORS 15 3DW2 LDCT 7 #300 [MACRO MARKER 20 3F*L LDCT 4 #400 [TO SET B0 OF X4 =1 AS A MARKER 16 3FT= LDN 6 0 [INITIALISE X6 7 3G#W LDN 5 0 6 3GBK ...#UNS G400 4 3GC2 ...( 10 3GCC ... SEGENTRY K20TRAPCHEC 6 3GCS ... NULL 20 3GD# ... TESTHOOK XCHWF [ IGNORE ALL TRAPS IF IN A HOOK 10 3GDW ... SEGENTRY K21TRAPCHEC 4 3GFD ...) 10 3GG4 ... SEGENTRY K90TRAPCHEC 6 3GM= ... NULL 17 3GSG ... JBS XCHWF,2,CXTSYSIS [J IF SYSISSUED ACT 10 3H4# ... SEGENTRY K91TRAPCHEC 16 3H#6 BRUSEN T30Q [J IF NO JOBBLOCK 17 3HRQ CJOBLOCK 3 [FIND CURRENT JOBLOCK 21 3M96 SPRIVTEST JSSTART,3,T30Q [TEST IF PRIV,J TO T30Q IF NOT HELD 5 3MNQ XCHWF 19 3N8B HUNT 1,FILE,FABSNB [J ROUND WINDING THRU'ENTRY 15 3NN2 LDN 0 #200 [FOR W/F'S 9 3P7L ANDX 0 ATYPE(1) 8 3PM= BNZ 0 QEOF 21 3Q6W RSTEP STEP [THIS SECTION SETS POINTER TO END OF 8 3QLG BZE 3 QEOF 10 3R66 LDX 5 ERES-A1(3) 17 3RKQ BNZ 5 RSTEP [ZERO IF NEXT ENTRY 4 3S5B QEOF 8 3SK2 LDN 5 CALL 9 3T4L #SKI K6TRAPCHEC>99-99 10 3TJ= TRACE 3,PRIVHELD 8 3W3W BRN PRIV2 10 3W?N ... SEGENTRY K92TRAPCHEC 4 3WHG T30Q 10 3X36 MHUNT 1,FILE,FABSNB 8 3XGQ LDN 0 #200 9 3Y2B ANDX 0 ATYPE(1) 8 3YG2 BZE 0 NOWF1 21 3Y_L LDN 0 1 [IN CASE OF NON-FILESTORE ENTRANT WHI 21 3_F= ANDX 0 ATYPE(1) [IS WORKFILE, TREAT AS ORDINARY FILE 18 3_YW BNZ 0 NOWF1 [IT WILL BE A WORKTAPE 14 42DG FINDWFN ,3 [X3->FCB 15 42Y6 FINDFEXTRA 3,3 [X3 -> FEXTRA 14 43CQ LDX 5 FWORKTRAP(3) [TRAPS. 8 43XB BRN PRIV4 5 44C2 NOWF1 19 44WL SETNCORE 4,3,FILE,FAPB, [SET UP FAPB FOR COMPARISON 7 45B= LDN 0 4 13 45TW STO 0 A1(3) [R.H. 7 46*G #SKI ANOUSER 16 46T6 BRUSEN NOJOBLOCK [J IF NO JOBLOCK 14 47#Q CJOBLOCK 2 [JOBLOCK 19 47SB LDX 0 ALOGLEN(2) [FOR A CHECKTRAPS IN NO USER 20 48#2 SBN 0 ASTJOB [CONTEXT,WE NEED THE USER-NAME 17 48RL BNZ 0 YJOBLK [J IF EXISTS JOBBLK 16 49?= PROPUSER [GET PROPER USER 10 49QW MHUNTW 3,FILE,FAPB 17 4==G TESTREP2 OK,NOJOBLO [J IF ALREADY PROPER 9 4=Q6 ADN 2 ACOMMUNE1 8 4?9Q BRN MOIT 5 4?PB YJOBLK 14 4#92 ADN 2 JUSER [ORIGIN 4 4#NL MOIT 15 4*8= ADN 3 A1+1 [DESTINATION 16 4*MW MOVE 2 3 [NAME GOES ACROSS 17 4B7G BRN T30 [J. TO SET UP FABSNB 6 4BM6 NOJOBLOCK 5 4C6Q NOJOBLOK 19 4CLB LDX 2 FX2 [PTR TO CPREFIX IN CURRENT 5 4D62 NOJOBLO 14 4DKL ADN 2 CPREFIX [ACTIVITY 8 4F5= BRN MOIT 4 4FJW # 18 4G4G # THIS ROUTINE CHECKS THAT,IF A USER PARAM IS GIVEN 19 4GJ6 # AND THE CURRENT USER DOES NOT OWN THE FILE-NAME GIVEN, 18 4H3Q # THE USERNAME PARAMETER IS EQUAL TO THE CURRENT USER. 12 4HHB # IF NOT,AN ERROR IS REPORTED 5 4J32 TSEST 18 4JGL BNG 4 T43A [MARKER SET BY TRAPPARA,NO USER PARAM 7 4K2= #SKI ANOUSER 4 4KFW ( 7 4K_G #SKI K6TRAPCHEC 17 4LF6 BRUSEN ZGEOER1 [ERROR IF NO JOBLOCK 4 4LYQ ) 7 4MDB CJOBLOCK 3 14 4MY2 MHUNTW 1,FILE,FAPB [COMPARE 14 4NCL LDN 2 3 [3.WORDS 4 4NX= QLP 14 4PBW SMO 2 [IN FAPB 17 4PWG LDX 0 A1(1) [WITH JOB'S PROPER 15 4QB6 SMO 2 [USER-NAME 11 4QTQ BXU 0 JUSER-1(3),QUEER 8 4R*B BCT 2 QLP 8 4RT2 BRN T43A 5 4S#L QUEER 6 4SS= CLOSE 9 4T?W ... COMERR ERNOAUTH 4 4TRG ...# 21 4WQQ # ENTRY FROM TRAPPARA. THE FAPB HAS BEEN SET UP AND B0 OF X6 SET IF 10 4X=B # A'GROUP'PARAMETER GINEN. 18 4XQ2 # THE DIRECTORY IS OPENED AND OWNERSHIP OF THE FILE CHECKED 4 4Y9L [ 6 4YP= PARAMSDONE 4 4_8W [ 7 4_NG LDN 5 0 17 5286 MHUNTW 3,FILE,FTRAP [RENAME FTRAP BLOCK 10 52MQ NAMETOP 3,FILE,FAPB 10 537B MHUNT 2,FILE,FABSNB 7 53M2 LDN 0 2 9 546L ORS 0 ATYPE(2) 8 54L= LDN 0 #200 9 555W ANDX 0 ATYPE(2) 9 55KG BZE 0 NOTWF5 7 5656 LDN 0 1 21 56JQ ANDX 0 ATYPE(2) [IF NON-FILESTORE I.E. WORKTAPE, TREA 16 574B BNZ 0 NOTWF5 [AS NON-WORKFILE 14 57J2 FINDWFL 3 [-> FCB 15 583L FINDFEXTRA 3 [-> FEXTRA 10 58H= LDX 5 FWORKTRAP(3) 10 592W MHUNT 1,FILE,FNAME 10 59GG NAMETOP 1,CPB,CUNI 7 59Q# ... FSHSKIP 8 5=26 BRN YZYZ 8 5=7# ... FSHCODE AORB 8 5=#G ... BRN YYYZ 5 5=FQ NOTWF5 11 5=_B OPENDIR ZBRAK,READ,QUERY 10 5?F2 MHUNT 3,FILE,FNAME 8 5?YL CHAIN 3,FX2 17 5#D= NAMETOP 3,CPB,CUNI [RENAME FNAME BLOCK 14 5#XW TESTREP2 OK,OKDIROP [JIF OK 15 5*CG ... REPALLER [REPORT ERRORS 10 5*G5 ... FSHCODE A,SKIPINB2 4 5*JN ...( 9 5*M? ... TRANSFIN ,,ALIEN 5 5*PW ...SKIPINB2 4 5*SF ...) 6 5*X6 ... ENDCOM 5 5G?Q OKDIROP 7 5GRB OWNERCHECK 15 5H?2 TESTREPNOT OK,TSEST [J IF NOT OWNER 13 5HQL LDCT 5 #400 [MARKER 4 5J== T43A 19 5JPW T30 [ENTRY FOR CHECKTRAPS MACRO 16 5K9G SETNCORE 4,3,FILE,FABSNB [SET UP FABSNB 10 5KP6 MHUNTW 2,FILE,FAPB 15 5L8Q ADN 2 ETRUSER1 [MOVE PTRS 12 5LNB ADN 3 A1+1 [ 17 5M82 MOVE 2 3 [MOVE IN USER-NAME 8 5MML SBN 3 A1+1 7 5N7= LDN 0 4 13 5NLW STO 0 A1(3) [R.H. 5 5P6G SEARCH 19 5PL6 STEP [STEP ONTO 1ST TRAPS RECORD 16 5Q5Q BZE 3 NDENT [JIF END-OF-FILE 18 5QKB LDX 0 ERES-A1(3) [X0=2ND WORD OF RECORD 17 5R52 BZE 0 NDENT [JIF NEXT NAME REC 16 5RJL BPZ 0 SEARCH [JIF NOT TRAP REC 16 5RLT ... LDEX 0 ETRAPMODES-A1(3) [TRAPS IN RECORD 17 5RP4 ... LDEX 4 5 [TRAPS FOUND SO FAR 20 5RR? ... ANDX 4 0 [TRAPS IN RECORD WE HAVE ALREADY 18 5RTG ... [FOUND USER TO POSSESS 20 5RXP ... ERX 4 0 [ARE THERE ANY OTHER TRAPS IN REC 18 5R_Y ... BZE 4 SEARCH [IF NOT, IGNORE RECORD 15 5S4= LDX 0 ETRAPMODES-A1(3) [MODES WORD 17 5SHW BPZ 0 TCNOGRUP [J IF NOT GROUP TRAP 9 5T3G LDX 0 MANAG(1) 18 5TH6 BXU 0 ETRUSER1-A1(3),MACROCHTR [J IF NOT :MANAGER 10 5W2Q LDX 0 MANAG+1(1) 10 5WGB LDX 2 MANAG+2(1) 11 5X22 TXU 0 ETRUSER2-A1(3) 13 5XFL BXU 2 ETRUSER3-A1(3),MACROCHTR 18 5X_= LDEX 0 ETRAPMODES-A1(3) [MANAGER,GROUP = EVERYONE 7 5YDW ORX 5 0 9 5YYG BRN XMANAT 6 5_D6 MACROCHTR 21 5_XQ # THIS SECTION LOOKS TO SEE WHETHER A USER IS ALLOWED ACCESS TO A FI 21 62CB # AS A MEMBER OF A GROUP BY COMPARING THE TRAP USERNAME WITH EACH 19 62X2 # COMPONENT OF THE EXPANDED FULL ABSOLUTE NAME OF THE TRAPEE 15 63BL # IF OK THE TRAPSTYLE BITS ARE CRED INTO X5 10 63W= HUNT 2,FILE,FABSNB 14 64*W TESTNAMX 3,A1+1(2),MASTER(1),YFOUND,3 20 64TG BRN YFIND [IF NAME ALREADY UP TO :MASTER 19 65*6 YFOUND [DO NOT EXPAND USING FINDNAME 7 65SQ FINDNAME 14 66#B TESTREPN NOUSER,YFIND [J IF OK 9 66S2 GEOERR 1,CORRDICT 5 67?L YFIND 7 67R= READAGAIN 9 68=W MHUNTW 1,FILE,FRB 9 68QG STO 7 AWORK1(2) 10 69=6 HUNT 2, FILE,FABSNB 18 69PQ CALL 7 RCHEQNAME [CHECK NAMES IN FABSNB 16 6=9B BRN T7 [NAMES NOT EQUAL 18 6=P2 LDEX 0 ETRAPMODES(1) [OR IN TRAPBITS,EX. FOR 15 6?8L ORS 0 5 [GROUP BIT 8 6?N= SMO FX2 9 6#7W LDX 7 AWORK1 15 6#MG FREECORE 1 [FREE FRB 5 6*76 XMANAT 7 6*LQ LDEX 0 5 19 6B6B SBN 0 CALL [J IF^ALL^NOT YET ESTABLISHED 9 6BL2 BNZ 0 SEARCH 9 6C5L BRN NDENTF 4 6CK= T7 9 6D4W MFREE FILE,FRB 9 6DJG LDX 7 AWORK1(2) 9 6F46 BRN SEARCH 5 6FHQ TCNOGRUP 19 6G3B BNG 6 SEARCH [JIF NOT GROUP BUT GROUP REQD 10 6GH2 MHUNTW 2,FILE,FAPB 7 6H2L LDN 1 3 5 6HG= TCLOOPQ 7 6H_W SMO 1 18 6JFG LDX 0 A1(2) [CHECK IF NAMES THE SAME 16 6J_6 SMO 1 [IN FAPB & TRAP 10 6KDQ BXU 0 0(3),SEARCH 9 6KYB BCT 1 TCLOOPQ 14 6LD2 LDEX 0 4(3) [TRAPBITS 18 6LXL ORX 5 0 [DON'T WANT^GROUP^ BIT 7 6MC= LDEX 0 5 20 6MWW SBN 0 CALL [J BACK TO FINISH SEARCH THROUGH 9 6NBG BNZ 0 SEARCH 5 6NW6 NDENTF 9 6P*Q #SKI K6TRAPCHEC>99-99 10 6PTB TRACE 5,TRAPBITS 6 6Q*2 T49 STEP 8 6QSL BZE 3 NDENT 15 6R#= LDX 0 ERES-A1(3) [LOOP THRU TO 8 6RRW BNZ 0 T49 5 6S?G NDENT 7 6SR6 SLL 7 2 8 6T=Q BZE 7 YY 4 7G=L PRIV 15 7GQ= MFREE FILE,FABSNB [FREE FABSNB 5 7H9W PRIV3 9 7HPG MFREE FILE,FAPB 5 7J96 PRIV4 9 7JNQ ANDX 5 BITS22LS 5 7K8B PRIV2 8 7KD8 ... LDX 2 FX2 15 7KN2 STO 5 ACOMMUNE7(2) [STORE REPLY 5 7L7L UP 4 7L9T ...YY 7 7L#4 ...#UNS ILOGACC 4 7LB? ...( 14 7LDG ...# LOG THIS ACCESS OR ATTEMPTED ACCESS 10 7LGP ... MHUNTW 2,FILE,FAPB 10 7LJY ... NAME 2,FILE,FTRAP 16 7LM7 ... ORS 6 ETRAPMODES(2) [INDICATE IF GROUP 8 7LPB ... LOGACCESS 10 10 7LRK ... MHUNTW 2,FILE,FTRAP 10 7LTS ... NAME 2,FILE,FAPB 10 7LY3 ... ERS 6 ETRAPMODES(2) 4 7M2= ...) 16 7M4F ... CLOSE [CLOSE DIRECTORY 10 7M6W MFREE FILE,FABSNB 4 7M8K ...YYYZ 10 7M=# ... FSHCODE A,SKIPINB1 4 7M#3 ...( 7 7M*Q ... LDN 7 1 9 7MCF ... TRANSFIN 7,,ALIEN 5 7MF8 ...SKIPINB1 4 7MGX ...) 5 7MJL ...RETFROMA 21 7MLG BNZ 5 YZYZ [DO NOT JUMP IF NOT OWNER AND NO ACCE 21 7N66 # NORMALLY WHEN THERE IS A NEGATIVE RESPONSE TO A CHECK BY A USER AB 21 7NKQ # HIS ACCESS TO ANOTHER USER'S FILE AN ERROR IS REPORTED, BUT FOR TE 21 7P5B # PURPOSES, A REPLY WILL BE GIVEN INDICATING THAT NO ACCESS IS PERMI 9 7PK2 MONOUT JNOACC 8 7Q4L BRN TERM 16 7QJ= YZYZ ANDX 5 BITS22LS [CLEAR B0 OF X5 8 7R3W BNZ 5 Y14 10 7RHG MICH MONOUT CHTRAPREP2 8 7S36 BRN TERM 7 7SGQ Y14 ORX 5 6 20 7T2B LDN 7 4 [X7 CONTAINS SIZE FOR OUTBLOCK 18 7TG2 BPZ 5 NOGPOUT [J IF NEED NO GROUP PARM 7 7T_L ADN 7 3 5 7WF= NOGPOUT 18 7WYW LDN 3 4 [DEFAULT COUNT FOR LOOP 7 7XDG LDEX 0 5 8 7XY6 SBN 0 CALL 15 7YCQ BNZ 0 NOTALLP [J IF NOT ALL 20 7YXB ADN 7 3 [ONLY NEED ONE MORE PARAM IF ALL 9 7_C2 BRN SETBLOQ 5 7_WL NOTALLP 8 82B= ADN 0 CALL 4 82TW Y59 7 83*G SRC 0 1 18 83T6 BPZ 0 PARACT [J IF NEXT BIT NOT SET 21 84#Q ADN 7 3 [IF IT IS,ADD ANOTHER 3WDS TO OUTBLOK 5 84SB PARACT 15 85#2 BCT 3 Y59 [BRN ON COUNT 5 85RL SETBLOQ 10 86?= MHUNT 1,FILE,FABSNB 21 86QW LDX 0 ALOGLEN(1) [IF FABSNB ONLY & 6 WDS LONG,USE CUNI 21 87=G SBN 0 4 [BLOCK TO OUTPARAM ENTRANT NAME.O/W 21 87Q6 BZE 0 USECUNIPARA [USE LOCAL NAME IN FABSNB FOR UP-TO- 15 889Q [DATE DETAILS 8 88PB LDN 0 #200 9 8992 ANDX 0 ATYPE(1) 15 89NL BNZ 0 USECUNIPARA [J IF W/F. 10 8=8= ADX 1 ALOGLEN(1) 9 8=MW LDX 0 A1-6(1) 20 8?7G BZE 0 USECUNIPARA [EXIT IF NAMELESS FILE(I.E.M.T.). 20 8?M6 TESTUSER A1-6(1),USECUNIPARA [OR IF DIR BEING TRAPCHECKED-ELSE 21 8#6Q [NNORM GOES POTTY & GEOERRS SHORTFAB. 14 8#LB SETNCORE 10+CPDATA-A1+1,1,ADATA,CREADL 8 8*62 STOZ A1(1) 18 8*KL UNNORM TWO [CONVERT ABSOLUTE NAME 11 8B5= MHUNTW 1,ADATA,CREADL 14 8BJW LDX 6 A1(1) [CHAR.CT. 7 8C4G LDX 0 6 20 8CJ6 ADN 0 1 [MIN NO. WDS. TO CONTAIN PARAM 7 8D3Q SRA 0 2 7 8DHB ADX 7 0 15 8F32 OUTBLOCK 7 [PARAM BLOCK 12 8FGL OUTPARAM 6,CPDATA,ADATA,CREADL 9 8G2= MFREE CPB,CUNI 9 8GFW BRN OUTUSER 6 8G_G USECUNIPARA 9 8HF6 MHUNT 2,CPB,CUNI 18 8HYQ ADX 7 ALOGLEN(2) [SIZE OF FILENAME PARAM 7 8JDB SBN 7 1 15 8JY2 OUTBLOCK 7 [OUTPUT BLOCK 9 8KCL MHUNT 1,CPB,CUNI 9 8KX= LDEX 6 ANUM(1) 17 8LBW OUTPARAM 6,APARA,CPB,CUNI [OUTPARAM FILE NAME 9 8LWG MFREE CPB,CUNI 5 8MB6 OUTUSER 8 8MTQ LDN 6 12 17 8N*B OUTPARAM 6,A1+1,FILE,FAPB [OUTPARAM USERNAME 16 8NT2 BPZ 5 NOGRPAR [J IF NO GP. MODE 8 8P#L ADN 1 PARA1 17 8PS= CALL 6 OUTPARAM [OUTPUT GROUP PARAM 5 8Q?W NOGRPAR 7 8QRG LDEX 0 5 15 8R?6 SBN 0 CALL [J IF NOT ALL 9 8RQQ BNZ 0 PARALOOP 8 8S=B ADN 1 PARA2 17 8SQ2 CALL 6 OUTPARAM [OUTPUT ^ALL^ PARAM 9 8T9L BRN MONOUT 5 8TP= PARALOOP 10 8W8W LDN 3 PARA4-PARA3 7 8WNG ZP2Q SRC 5 1 18 8X86 BPZ 5 NOLUK [J IF NEXT BIT NOT SET 10 8XMQ ADN 1 PARA3-3(3) 17 8Y7B CALL 6 OUTPARAM [OUTPUT APPR. PARAM 5 8YM2 NOLUK 7 8_6L SBN 3 3 19 8_L= BNZ 3 ZP2Q [J BACK IF COUNT NOT EXPIRED 5 925W MONOUT 17 92KG MFREE FILE,FAPB [FREE OUR TRUSTY FAPB 16 9356 MONOUT CHTRAPREP [OUTPUT MESSAGE 4 93JQ TERM 6 944B ENDCOM 5 94J2 OUTPARAM 8 953L SBX 6 FX1 15 95H= LDX 4 0(1) [NO. CHARS 16 962W ADN 1 1 [PTR FOR MOVE 16 96GG MHUNTW 2,FILE,FAPB [MOVE IN 2 WORDS 8 9726 ADN 2 A1 7 97FQ MOVE 1 2 19 97_B OUTPARAM 4,A1,FILE,FAPB [OUTPARAM PARAMETER FROM FAPB 8 98F2 ADX 6 FX1 7 98YL EXIT 6 0 5 99D= ZBRAK 7 99N4 ... FSHSKIP 7 99XW COMBRKIN 8 9=54 ... FSHCODE AORB 9 9=== ... BRN (GEOERR) 4 9=CG [ 11 9=X6 MENDAREA 25,K99TRAPCHEC 4 9?BQ #END 8 ____ ...12764344000200000000