CANCOM863
(George Source)
Macros used: ACROSSVAR, BICE, CCON, COMERR, COMERRX, FJOCA, MENDAREA, MFREE, MHUNT, PARAFREE, PARAMOVE, PARANEXT, SEGENTRY, SPARAPAS, TESTREP2, TRACE, WRONG
- CANCOM863.txt
22FL #LIS K0CANCOM>K0COMMAND>K0ALLGEO 22^= #SEG CANCOM [ BILL IZATT : CENT 23DW 8HCANCOM 23YG [ ENTRY POINT. THIS LOCATION MUST REMAIN FIXED 24D6 SEGENTRY K1CANCOM,SENTRY1 24XQ [ 25CB [ 25X2 [ THIS SEGMENT CHECKS THAT THE SPECIFIED COMMAND IS 26BL [ CANCELLABLE AND IN AN ALLOWABLE CONTEXT TO BE CANCELLED. 26W= [ IT THEN PASSES CONTROL TO THE APPROPRIATE SEGMENT TO 27*W [ EFFECT THE CANCELLATION OR OUTPUTS THE APPROPRIATE ERROR 27TG [ MESSAGE. 28*6 [ THE FOLLOWING IS A LIST OF CANCELLABLE COMMANDS (SHORT- 28SQ [ FORM,LONG-FORM),FORBIDDEN CONTEXTS FOR CANCELLATION, AND 29#B [ LINKS TO THE CANCELLING SEGMENTS 29S2 SEGENTRY K90CANCOM [ THE START OF THE LIST 2=?L VERBLIST 2=R= ...#SKI JSKI31 2?=W BICE QI,QUIET,#00264,PNTLAST,3 2?QG #SKI ICANWEN 2#=6 BICE WE,WHENEVER,#00000,CANWEN,1 2#PQ BICE RV,RETRIEVE,#00000,CANCRVX,1 2*9B BICE AH,ATTACH,#00051,ATTACHA,5 2*P2 BICE AE,ASSOCIATE,#00351,ASSOC,2 2B8L BICE PR,PROPERTY,#351,PROPERTY,2 2BN= BICE AU,ATTRIBUTE,#151,ATTRIBUT,2 2C7W BICE CL,CONCEPTUAL,#00051,DELCON,1 2CMG BICE FN,FINISH,#00351,FINISH,2 2D76 BICE ET,ENTRUST,#00400,ENTRUST,2 2DLQ BICE AO,ALLOCATE,#00340,ALLOCATE,2 2DRY ...#SKI JSKI15 2D^6 ... BICE OP,OPERATOR,#00062,OPERATOR,2 2F6B #SKI AR 2FL2 BICE AR,ARCHIVE,#00002,ARCHIVE,2 2FR8 ...#UNS FTS1 2FYB ... BICE FZ,FREEZE,2,FREEZE,2 2G26 ...#UNS EXSEX2 2G3W ... BICE SX,SECUREX,#00002,ERASE,5 2G4D ...#UNS IDC 2G52 ... BICE DU,DUMP,#251,DUMP,2 2G58 ...#UNS ILOGACC 2G5B ... BICE LA,LOGACCESS,#00002,LOGCOM,1 2G5D ...#UNS AV7900S 2G5G ... BICE MV,MAKEVCC,#00351,MAKEVCC,2 2G5L SEGENTRY K91CANCOM [ THE END OF THE LIST 2GK= #DEF VBLISTLEN=0?-VERBLIST 2H4W #DEF SIZEBICE=BICESIZE [ NO OF WORDS IN BICE MACRO 2HJG [ THE FOLLOWING IS A LIST OF SUB-TYPES FOR THE CONTEXT 2J46 [ ERROR MESSAGES. 2JHQ PCOMPLIS 2K3B +JBREAK 2KH2 +JNOBREAK 2L2L +JPROGISH 2LG= +JFULL 2L^W +JTENT 2MFG +JCOR 2M^6 +JNOCOR 2NDQ +JREM 2NYB +JATT 2PD2 +JPTCR 2PXL +JOPCON 2QC= +JMOPCON 2QWW +JJDF 2RBG +JDIR 2RW6 +JCOM 2S*Q TWO +2 2STB THTEN +13 2T*2 NUM +VBLISTLEN 2TSL MERCONT +ERCONT 2W#= [ 2WRW SENTRY1 2X?G PARANEXT #20 [SEPARATE COMMAND TO BE CANCELLED FROM 2XR6 [ITS FIRST PARAMETER AND PARAPASS IT 2Y=Q [ACROSS 2YQB ... TESTREP2 UNPAIR,ZN2 [ERROR IF UNPAIRED DELIMITER 2^28 ... TESTREP2 TOOMANY,ZN3 [ERROR IF TOOMANY PARAMS 2^=2 MHUNT 3,CPB,CUNI 2^PL LDX 7 ANUM(3) [GET WORD CONTAINING PARAMETER TYPE AND 329= [THE NO. OF CHARACTERS 32NW BNG 7 NOK [BRANCH IF PARAMETER MISSING 338G ANDN 7 #7777 33N6 TXL 7 THTEN(1) [TEST IF LONGER THAN TWELVE CHARACTERS 347Q BCS NOK 34MB COMERR INVERB 3572 NOK BNZ 7 N1 [TEST IF PARAMETER NULL 35LL COMERR JPARNULL,JCOMA 366= N1 BPZ 7 N2 [TEST IF MISSING 36KW COMERR JPARMIS,JCOMA 375G N2 ANDN 7 #7777 [LEAVE ONLY NO. OF CHARACTERS 37K6 LDX 4 NUM(1) [GET COUNT FOR TESTING LIST OF COMMANDS 384Q TXU 7 TWO(1) [TEST IF SHORT-FORM 38JB BCS N3 3942 LDN 6 0 39HL N4 LDX 5 VERBLIST(1) [GET NEXT SHORT-FORM 3=3= SBX 5 APARA(3) 3=GW BZE 5 VRBOK [WAS IT THE SAME AS THE COMMAND TO BE 3?2G [CANCELLED? 3?G6 ADN 6 SIZEBICE [ LOOK AT NEXT COMMAND IN TABLE 3?^Q ADN 1 SIZEBICE 3#FB TXL 6 4 [DOES AT LEAST ONE POSSIBLE COMMAND 3#^2 [REMAIN? 3*DL BCS N4 3*Y= ZN1 COMERR ERCOMM 3B5D ...ZN2 SPARAPAS [SET UP CUNI BLOCK 3B=L ... COMERR ERUNPAIR 3B#B ...ZN3 3BB6 ... COMERR JMAXPAR 3BCW N3 ADN 7 3 [CALCULATE NO. OF WORDS TAKEN UP BY THE 3BXG SRL 7 2 [COMMAND (INCLUDING THE SPACE-FILLING OF 3CC6 [THE LAST WORD,IF NECESSARY) 3CWQ LDN 6 0 3DBB N5 LDN 2 1 3DW2 SMO 2 3F*L LDX 5 VERBLIST(1) [GET NEXT WORD OF COMMAND 3FT= SMO 2 3G#W SBX 5 APARA-1(3) 3GSG BZE 5 N6 [DOES IT COMPARE SO FAR? 3H#6 ADN 6 SIZEBICE [ LOOK AT NEXT COMMAND IN TABLE 3HRQ ADN 1 SIZEBICE 3J?B TXL 6 4 [AT LEAST ONE POSSIBLE COMMAND REMAINS? 3JR2 BCS N5 3K=L COMERR ERCOMM 3KQ= N6 ADN 2 1 3L9W TXL 7 2 [HAVE WE CHECKED ALL THE WORDS THAT THE 3LPG [COMMAND TAKES UP YET? 3M96 BCC N5+1 3MNQ VRBOK LDX 5 VERBLIST+4(1) [GET FORBIDDEN CONTEXTS 3N8B #SKI K6CANCOM>999-999 3NN2 ( 3P7L TRACE APARA(3),COMCAN 3PM= TRACE 5,FORBTEXT 3Q6W LDX 2 FX2 3QLG TRACE CONTEXT(2),CURRTEXT 3R66 ) 3RKQ SMO FX2 3S5B ANDX 5 CONTEXT [MASK OUT NON-COINCIDENTAL CONTEXTS 3SK2 ... BZE 5 TXTPRV [DOES A FORBIDDEN CONTEXT COINCIDE WITH 3T4L [A CURRENT CONTEXT? 3TJ= SLL 5 9 3W3W LDN 7 0 3WHG N8 BPZ 5 N7 [DOES THIS BIT INDICATE THE CONTEXT 3X36 [ERROR? 3XGQ LDX 1 FX1 3Y2B SMO 7 3YG2 LDX 5 PCOMPLIS(1) [GET POINTER TO APPROPRIATE SUB-MESSAGE 3Y^L COMERRX MERCONT(1),5 [POINTER TO ERROR MESSAGE (+ERCONT) IS 3^F= [IMPLICIT 3^YW N7 SLL 5 1 [PREPARE NEXT BIT 42DG ADN 7 1 [UPDATE POINTER 42Y6 BRN N8 42^N ...TXTPRV 4322 ... LDN 5 2 432# ... SMO FX2 432L ... ANDX 5 CONTEXT 432Y ... BNZ 5 TXTOK 433= ... LDX 5 VERBLIST+4(1) 434S ... ANDX 5 ICONTEXT [OBTAIN REQD PRIVILEGE 436B ... BZE 5 TXTOK [J IF PRIVILEGE NOT REQUIRED 437Y ... FJOCA 1,2 [GET JOBQE BLOCK 439G ... LDX 7 JPRIV(1) [OBTAIN JOB PRIVILEGE 43?4 ... ANDX 7 5 43#L ... ERX 7 5 43B8 ... BNZ 7 WRONG [J IF USER HAS NOT REQUIRED PRIVILEGE 43CQ TXTOK LDX 7 ANUM(3) [GET NO. OF CHARACTERS 43XB ANDN 7 #7777 [IN COMMAND TO BE CANCELLED 44C2 PARAMOVE 7 [MOVE UP PARAMETERS OF COMMAND TO BE 44WL [CANCELLED IN CPB/CALAS BLOCK,OVERWRITING 45B= [THE COMMAND ITSELF 45TW PARAFREE [FREE ALL CPB/CMULTI BLOCKS 46*G MFREE CPB,CUNI [FREE THE CPB/CUNI BLOCK 46T6 SMO 6 47#Q LDN 5 VERBLIST+5(1) [GET POINTER TO LINK-PAIR OF SEGMENT 47SB [WHICH WILL EFFECT THE CANCELLATION 48#2 LDN 6 AWORK1(2) 48RL MOVE 5 HLINK [ MOVE LINK FOR ACROSSVAR 49?= CCON [ SET BIT INDICATING CANCEL COMMAND 49QW ACROSSVAR AWORK1(2) 4=2N ...WRONG COMERR ANOPRIV 4==G MENDAREA 30,GAPCANCOM 4=Q6 #END ^^^^ ...46151774000900000000