16 228Y ... SEG WHENEVER,,CENT(COMMAND PROCESSOR),,G286 4 22CW ...[ 15 22LS ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 13 22TQ ...[ THIS EXCLUDES CODE UNDER #SKI G286 4 234N ...[ 7 23?L ...#OPT G286 = 0 6 23GJ ...#SKI G286&1 14 23PG ...# WITH UGUG EDIT M286 (MULTI-COMMAND LINES) 15 23YG [ ENTRY POINT. THIS LOCATION MUST REMAIN FIXED 12 24D6 SEGENTRY K1WHENEVER,QENTRY1 4 24XQ [ 4 25CB [ 19 25X2 [ THIS SEGMENT CONTAINS THE CODE NECESSARY TO IMPLEMENT THE 20 26BL [ WHENEVER COMMAND.THE COMMAND PARAMETER OF THE WHENEVER COMMAND 20 26W= [ IS STORED IN A COMDAT/CWHEN BLOCK WHICH IS CHAINED BEHIND THE 19 27*W [ CURRENT LINE BUFFER.THIS CONSTITUTES A WHENEVER LEVEL IF A 19 27TG [ WHENEVER LEVEL EXISTS ALREADY IT IS REPLACED BY NEW ONE 4 28*6 # 5 28SQ QENTRY1 17 29#B MHUNTW 2,CPB,CALAS [CURRENT /CALAS BLOCK 17 29S2 LDX 4 CPBFSD(2) [LOAD MACRO INDICATOR 17 2=?L BNG 4 WRONGLEV [JUMP IF NOT MACRO 18 2=R= PARAPASS [GET THE 1ST PARAMETER 17 2?=W MHUNT 2,CPB,CUNI [FIND PARAMETER BLOCK 9 2?QG LDX 4 ANUM(2) 20 2#=6 BNG 4 NOTEXIST [JUMP IF PARAMETER NON EXISTENT 18 2#PQ BZE 4 NOTEXIST [JUMP IF PARAMETER NULL 18 2*9B ANDN 4 #7777 [GET LENGTH OF PARAMETER 19 2*P2 ADN 2 APARA [GET POINTER TO THE PARAMETER 16 2B8L LDCH 6 0(2) [LOAD 1ST CHAR 13 2BDD BXE 6 SJ(1),XJTEX [J IF J 8 2BN= TXU 6 SF(1) 21 2C7W BCS NFIN [J IF STRING DOES NOT START WITH 'F' 7 2CMG LDN 6 2 9 2D76 TXU 4 SIX(1) 8 2DLQ BCC NFID 7 2F6B LDN 6 3 4 2FL2 NFID 16 2G5L LDN 3 TABLEF(1) [SET PTR TO TABLE 8 2GK= BRN SFIN 5 2GNB XJTEX 9 2GRG LDN 3 TABLEJ(1) 7 2GWL LDN 6 4 8 2G_Q BRN SFIN 4 2H4W NFIN 8 2HJG SBN 6 #42 9 2J46 BNG 6 NOLUCK 9 2JHQ TXL 6 TWO(1) 18 2K3B BCC NOLUCK [J IF 1ST CHAR NOT B OR C 7 2KH2 SMO 6 20 2L2L LDX 3 TAB(1) [GET ADDRESS OF REQUIRED TABLE 19 2LG= ADX 3 1 [CONVERT TO ABSOLUTE ADDRESS 4 2L_W SFIN 17 2MFG SBN 4 1 [REDUCE COUNT BY 1 19 2M_6 BZE 4 NOLUCK [J IF NO MORE CHARS IN /CUNI 17 2NDQ BCHX 2 / [UPDATE /CUNI POINTER 17 2NYB LDX 7 2 [DUPLICATE POINTER 8 2PD2 BRN X2 5 2PXL UPDATE2 19 2QC= LDX 2 7 [RELOAD POINTER TO PARAMETER 5 2QWW UPDATE1 16 2RBG SLC 3 2 [FIND THE START 15 2RW6 ADX 3 0 [OF THE NEXT 16 2S*Q SRC 3 2 [CHARACTER STRING 20 2STB X2 LDCH 0 0(3) [LOAD LENGTH OF STRING IN TABLE 19 2T*2 BZE 0 NOLUCK [J IF END OF TABLE REACHED 17 2TSL BCHX 3 / [UPDATE TABLE POINTER 20 2W#= TXU 4 0 [J IF PARAMETER IS NOT THE SAME 19 2WRW BCS UPDATE1 [LENGTH AS STRING IN TABLE 18 2X?G X1 LDCH 5 0(2) [GET NEXT CHAR OF PARAM. 18 2XR6 LDCH 1 0(3) [GET NEXT CHAR OF STRING 7 2Y=Q TXU 5 1 18 2YQB BCS UPDATE2 [J IF CHARS. DO NOT MATCH 15 2_=2 BCHX 2 / [UPDATE BOTH 14 2_PL BCHX 3 / [POINTERS 17 329= BCT 0 X1 [J IF MORE TO COMPARE 14 32NW LDX 1 FX1 [RESET X1 9 338G TXU 6 THREE(1) 17 33N6 BCS X3 [J IF NOT W/FINISHED 8 347Q SMO FX2 9 34MB LDX 2 CONTEXT 19 3572 BPZ 2 NOTSYS [J IF NOT SYSTEM ISSUED JOB 4 35LL X3 8 366= MHUNTW 2,CLB 20 36KW LDX 7 ANUMCHA(2) [LOAD THE LENGTH OF THE WHENEVER 18 375G LDX 3 2 [DUPLICATE POINTER TO CLB 18 37K6 ADN 2 CLBFIR [POINTER TO THE WHENEVER 17 384Q PV LDCH 5 0(2) [LOAD NEXT CHARACTER 16 38JB BCHX 2 / [UPDATE POINTER 17 3942 BCT 7 PV1 [J IF MORE CHARACTERS 8 39HL BRN PV2 17 3=3= PV1 TXU 5 PCOMMA(1) [JUMP IF CHARACTER 15 3=GW BCS PV [IS NOT COMMA 21 3?2G PV2 LDX 5 7 [LOAD NO OF CHARACTERS TO BE MOVED 19 3?G6 ADN 5 3 [CONVERT TO SIZE NEEDED FOR 17 3?_Q SRL 5 2 [COMDAT/CWHEN BLOCK 20 3#FB ADN 5 CPDATA-A1 [NO. WORDS REQUIRED FOR REC HDR. 20 3#_2 SBX 2 3 [RELATIVE POINTER TO CHARACTERS 18 3*DL STO 2 4 [STORE RELATIVE PTR IN X4 21 3*Y= LDN 2 JWHEN [SET COUNT OF NO. TYPES OF WHENEVER 20 3BCW WLOOP LDX 3 FPTR(3) [PTR TO 1ST/NEXT BLOCK AFTER CLB 9 3BXG LDX 0 ATYPE(3) 8 3CC6 SRL 0 12 9 3CWQ TXU 0 XCALAS(1) 8 3DBB BCC XGCOR 7 3DW2 SMO 6 9 3F*L TXU 0 TYPE(1) 21 3FT= BCC WCHANG [J IF CORRECT TYPE OF COMDAT/- BLOCK 20 3G#W BCT 2 WLOOP [J IF STILL MORE BLOCKS TO CHECK 8 3GSG XGCOR GETCORE 5,1 7 3H#6 FINDCORE 3 7 3HRQ SMO 6 20 3J?B LDX 0 TYPE(1) [GET TYPE OF BLOCK TO BE SET UP 8 3JR2 SLL 0 12 16 3K=L NAMEX 3 [NAME THE BLOCK 5 3KQ= WCHAIN 8 3L9W MHUNTW 2,CLB 6 3L?4 ...#SKI G286&1 4 3L#= ...( 16 3L*D ... LDX 5 2 [ HOLD CLB IN X5 9 3LBL ... LDX 2 FPTR(2) 9 3LCS ... LDX 0 ATYPE(2) 8 3LF2 ... SRL 0 12 10 3LG8 ... SBN 0 IUSER+HULL 19 3LHB ... BZE 0 XCCS [ IF CLB POINTS TO IUSER THEN 19 3LJJ ... [ CHAIN COMDAT AFTER IUSER 18 3LKQ ... LDX 2 5 [ ELSE CHAIN AFTER CLB 4 3LLY ...XCCS 4 3LN6 ...) 18 3LPG CHAIN 3,2 [CHAIN AFTER LINE BUFFER 6 3LTC ...#SKI G286&1 16 3L_# ... LDX 2 5 [ RELOCATE CLB 7 3M59 ...#SKI G286&1$1 17 3M96 LDX 2 BPTR(3) [RELOCATE LINE BUFFER 20 3MNQ X4 STO 7 A1(3) [STORE CHARACTER COUNT IN COMDAT 18 3N8B BZE 7 PV3 [JUMP IF NO CHARS TO MOVE 18 3NN2 ADX 2 4 [POINTER TO CHAR STRING 18 3P7L ADN 3 CPDATA [PTR. TO START OF AREA 20 3PM= CHARMOVE 2,7 [MOVE CHARACTER STRING FROM LINE 18 3Q6W [BUFFER TO COMDAT/CWHEN 19 3QLG PV3 MARKAXES [MARK ALL PARAMETERS ACCESSED 7 3R66 SBN 6 2 9 3RKQ BNZ 6 XFINISHED 8 3S5B LDN 0 #1000 8 3SK2 SMO FX2 9 3T4L ORS 0 EXT+11 9 3TJ= BRN XENDCOM 6 3W3W XFINISHED 15 3WB? BCT 6 XENDCOM [J IF NOT X6=1 2 3WNN 8 3X36 LDCT 0 #40 9 3XGQ ANDX 0 FINISH 9 3Y2B BZE 0 XENDCOM 8 3YG2 LDCT 0 #400 21 3Y_L ADN 0 1 [ MARK 'SEARCH FOR WE FINISH BLOCK' 10 3_F= STO 0 JOBEVENTS(2) 5 3_YW XENDCOM 17 42DG ENDCOM [TERMINATE COMMAND 5 42Y6 WCHANG 16 43CQ LDN 6 JWHEN+1 [SET UP COUNT FOR 21 43XB SBX 6 2 [SET UP COUNT FOR REHUNTING THIS BLOC 20 44C2 ALTLEN 3,5 [ALTER WHENEVER BLK TO NEW SIZE 15 44WL MHUNTW 2,CLB [RE-HUNT CLB 7 45B= LDX 3 2 17 45TW WLOP1 LDX 3 FPTR(3) [RELOCATE POINTER TO 13 46*G BCT 6 WLOP1 [BLO 8 46T6 BRN X4 7 47#Q TAB +TABLEB 7 47SB +TABLEC 9 48#2 TABLEB 8H6REAKIN0 12 48RL TABLEC 19H5OMERR;OMMANDERROR0 11 49?= TABLEF 15H5INISH7INISHED0 13 49H4 TABLEJ 20H3TEX>OBTIMEEXCEEDED0 9 49QW TYPE +COMDAT+CBRK 10 4==G +COMDAT+CWHEN 9 4=Q6 +COMDAT+CFIN 10 4?9Q +COMDAT+CFIND 10 4?FJ +COMDAT+CJTEX 10 4?PB XCALAS +CPB+CALAS 7 4#92 TWO +2 8 4#NL PCOMMA #34 8 4*8= SF #46 8 4*D4 SJ #52 8 4*MW SIX +6 5 4B7G THREE +3 4 4BM6 # 10 4C6Q [ COMMAND ERROR REPORTS 4 4CLB # 5 4D62 NOTEXIST 18 4DKL LDX 6 Y1(1) [CONDITION PARAM. MISSING 8 4F5= LDX 7 Y2(1) 8 4FJW BRN RERR 5 4G4G NOLUCK 18 4GJ6 LDX 1 FX1 [PARAMETER FORMAT ERROR 8 4H3Q LDX 6 Y3(1) 8 4HHB BRN RER1 5 4J32 NOTSYS 19 4JGL LDX 6 Y5(1) [ONLY ALLOWED FOR SYSTEM JOB 8 4K2= BRN RER1 5 4KFW WRONGLEV 18 4K_G LDX 6 Y4(1) [ONLY ALLOWED IN A MACRO 16 4LF6 RER1 NGN 7 1 [NO SUBMESSAGE 16 4LYQ RERR COMERRX 6,7 [REPORT THE ERROR 4 4MDB # 7 4MY2 Y1 +JPARMIS 6 4NCL Y2 +JCOND 7 4NX= Y3 +APFERR 6 4PBW Y4 +JMDF 7 4PWG Y5 +JNOTSYS 11 4QB6 MENDAREA 50,K99WHENEVER 4 4QTQ #END 8 ____ ...74136456000100000000