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