14 22FL SEG BMPRCHEK,860,EDWARD MOON,BMAP 4 22_= [ 2 23DW 18 23YG ...[*********************************************************** 13 24D6 [ THIS SEGMENT CHECKS A TABLE OF USERS 17 24XQ [ WHOSE PARTIAL RESTORE IS FORBIDDEN(NOPARTRES USED) 16 25CB [ OR WHICH MUST BE SWAPPED TO AN ALTERNATIVE USER 9 25X2 [ (SWAPPR USED) 4 26BL [ 11 26W= SEGENTRY K1BMPRCHEK,START 4 27*W [ 4 27TG [ 14 28*6 [ TABLE OF USERS FORBIDDEN OR TO BE SWAPPED 13 28SQ [ ENTRIES EITHER 4 WORDS OR 7 WORDS AS 8 29#B [ DEFINED BELOW :- 15 29S2 [ WORD 0 - BIT 0=0 RESTORE FORBIDDEN 20 2=?L [ =1 RESTORE OF PSEUDO USERSALSO FORBIDDEN 15 2=R= [ BIT 1=0 NO SWAPPING ALLOWED 21 2?=W [ =1 SWAP TO SPECIFIED USER(WORDS 4-6) IF BIT 0= 21 2?QG [ ELSE SWAP TO PROPER OWNER(WORDS 1-3) IF BI 16 2#=6 [ BITS 2-23 RECORD HEADER (4 OR 7) 14 2#PQ [ WORDS 1-3 FORBIDDEN USER 18 2*9B [ WORDS 4-6 ALTERNATIVE USER FOR SWAPPING 4 2*P2 [ 19 2B8L #DEF TYPEOFENT=0 [ STATEWORD AND RECORD HEADER 15 2BN= #DEF USERFORBID=1 [ FORBIDDEN USER 16 2C7W #DEF USERSWAP=USERFORBID+3 [ USER FOR SWAPPING 16 2CMG BITDEFS TYPEOFENT,0,SUDOFORBID,SWAPALLOWED 4 2CX# ...[ 9 2D76 SEGENTRY AFORBIDN 4 2DBY ...[ 9 2DLQ #ALT AFORBPTR=AFORBIDN 5 2F6B VFORBIDN 5 2FL2 #GAP 700 10 2G5L SEGENTRY AFORBIDEND 8 2GK= +0 4 2H4W [ 10 2HJG PRNOTAL +BMNOPARTRES 10 2J46 SWAPPR +BMPARTRES 13 2JHQ ...STRING 24HINITIATED INSTEAD OF 4 2K3B [ 5 2KH2 OUTPACK 8 2L2L SBX 4 FX1 8 2LG= OUTPACKX 3,5,6 8 2L_W ADX 4 FX1 7 2MFG EXIT 4 0 4 2M_6 [ 5 2NDQ MONOUT 8 2NYB SBX 4 FX1 7 2PD2 MONOUTX 3 8 2PXL ADX 4 FX1 7 2QC= EXIT 4 0 4 2QWW [ 4 2RBG [ 20 2RW6 ...[******************************************************* SWAPUSER 15 2S*Q ...[ SUBROUTINE TO SWAP THE USERNAMES OF A USER 16 2STB ...[ BEING RESTORED FOR THE NOMINATED ALTERNATIVE 4 2T*2 [ 5 2TSL SWAPUSER 8 2W#= SBX 7 FX1 20 2WRW NGS 2 AWORK1(2) [ SET SWITCH -VE TO SHOW SWAP DONE 8 2X?G SBX 1 FX1 18 2XR6 STO 1 AWORK2(2) [ SAVE PTR. TO TABLE ENTRY 11 2Y=Q HUNTMISB 1,FI,FRESTUSER 7 2YQB SBX 3 1 19 2_=2 STO 3 AWORK3(2) [ AND PTR. TO FRESTUSER ENTRY 8 2_PL LDX 1 FX1 9 329= SMO AWORK2(2) 17 32NW LDN 3 USERSWAP(1) [ PTR. TO SWAPPED USER 7 338G LDN 5 3 10 33N6 LDN 6 JPDUSERNAME 9 347Q CALL 4 OUTPACK 17 34MB ... LDN 3 STRING(1) [ 'INSTEAD OF ' STRING 7 35LL LDN 5 6 10 366= LDN 6 JPDVARCHAR 9 36KW CALL 4 OUTPACK 11 36MS ... SETNCORE 4,3,FI,FUTILITY 17 36PQ ... LDX 0 ACES [INIT LAST 3 SPACES 9 36RN ... STO 0 A1+3(3) 8 36TL ... ADN 3 A1 14 36XJ ... LDCT 0 #120 [COLON 16 36_G ... STO 0 0(3) [1ST CHAR OF 16 7 373D ... BCHX 3 / 11 375G HUNTMISB 1,FI,FRESTUSER 9 37K6 SMO AWORK3(2) 16 37S4 ... LDN 2 FRUSE(1) [ FORBIDDEN USER 8 3832 ... MVCH 2 12 17 389Y ... SBN 3 3 [UNDO MVCH EFFECTS 9 38DW ... ANDX 3 BITS22LS 7 38MS ... LDN 5 4 9 38WQ ... CALL 4 OUTPACK 10 395N ... MFREEW FI,FUTILITY 9 39#L ... LDX 3 SWAPPR(1) 17 39HL CALL 4 MONOUT [ SEND SWAPPED MESSAGE 9 3=3= ... ADX 1 AWORK2(2) 11 3?2G HUNTMISB 3,FI,FRESTUSER 9 3?G6 ... ADX 3 AWORK3(2) 10 3#FB LDN 5 USERSWAP(1) 9 3#_2 LDN 6 FRUSE(3) 16 3*DL MOVE 5 3 [ SWAP USERNAMES 7 3*Y= ... NGN 0 1 9 3BCW STO 0 FRINC(3) 20 3BXG STOZ FRFIL(3) [ SET INCR. NO. -VE AND FILE NO. 17 3CC6 STOZ FRSUP(3) [ =0.SET SUP. USER 0 8 3CWQ ADX 7 FX1 7 3DBB EXIT 7 0 4 3DW2 [ 4 3F*L [ 20 3FT= ...[********************************************************* START 14 3G#W [ START OF MAIN SEGMENT TO CHECK USERNAMES 4 3GSG [ 5 3H#6 START 20 3HRQ STOZ AWORK1(2) [ SWITCH TO SEE IF ANY SWAPS DONE 11 3J?B HUNTMISB 3,FI,FRESTUSER 18 3JR2 ... LDX 7 A1(3) [ PTR. TO END OF FRESTUSER 17 3KQ= STO 7 AWORK4(2) [ SAVED FOR LATER CHECKS 5 3L9W NXTFRUSE 8 3LFN ... LDX 1 FX1 17 3LPG LDN 1 VFORBIDN(1) [ PTR. TO START OF TABLE 5 3M96 NXTABENT 10 3MNQ LDX 0 TYPEOFENT(1) 16 3N8B BZE 0 XENDOFTAB [ J. IF END OF TAB 9 3NN2 LDX 0 FRINC(3) 18 3P7L BZE 0 NXTPRUSER [ IGNORE ANY DELETED ENTRIES 10 3PM= SEGENTRY K50BMPRCHEK 6 3Q6W NULL 21 3QLG TESTNAMX 3,FRUSE(3),USERFORBID(1),NOTFORBIDN,4 [ J. IF NAMES NOT 20 3R66 JBC XFORBIDN,1,SWAPALLOWED [ J. IF NO SWAPPING ALLOWED 21 3R*Y ... JBS NOTFORBIDN,1,SUDOFORBID [ NO SWAP IF ONLY PSEUDOS FORBIDDEN 15 3RKQ CALL 7 SWAPUSER [ ELSE SWAP USER 20 3S5B BRN NXTPRUSER [ J. TO CHECK NEXT FRESTUSER ENTRY 6 3SK2 NOTFORBIDN 10 3T4L LDEX 0 TYPEOFENT(1) 20 3TJ= ADS 0 1 [ UPDATE PTR. TO NEXT TABLE ENTRY 9 3W3W BRN NXTABENT 6 3WHG XENDOFTAB 21 3X36 TESTNAMX 3,FRUSE(3),FRSUP(3),PSEUDO,4 [ J. IF THIS USER PSEUDO 9 3XGQ BRN NXTPRUSER 5 3Y2B PSEUDO 8 3Y=8 ... LDX 1 FX1 19 3YG2 LDN 1 VFORBIDN(1) [ PTR. TO START OF TABLE AGAIN 6 3Y_L NEXTABUSE 10 3_F= LDX 0 TYPEOFENT(1) 16 3_YW ... BZE 0 NXTPRUSER [J. IF END OF TABLE 21 42DG TESTNAMX 3,FRSUP(3),USERFORBID(1),NOFORBID,4 [ J. IF NAMES NOT SA 20 42Y6 JBC NXTPRUSER,1,SUDOFORBID [ J. IF PSEUDOS NOT FORBIDDEN 21 43CQ JBC XFORBIDN,1,SWAPALLOWED [ J. IF SWAPPING NOT PERMITTED 21 43XB ... SBN 1 USERSWAP-USERFORBID [ ADJUST PTR. SO THAT PROPER USER WI 20 44C2 CALL 7 SWAPUSER [ BE SWAPPED FOR PSEUDO AND DO SWAP 20 44FK ... BRN NXTPRUSER [ TO CHECK NEXT FRESTUSER ENTRY 5 44J8 ...NOFORBID 10 44LR ... LDEX 0 TYPEOFENT(1) 19 44PB ... ADS 0 1 [ UPDATE PTR. TO TABLE ENTRIES 9 44R_ ... BRN NEXTABUSE 6 44WL NXTPRUSER 19 45B= ADN 3 8 [ PTR. TO NEXT FRESTUSER ENTRY 11 45L4 ... HUNTMISB 1,FI,FRESTUSER 7 45TW ... LDX 0 3 7 465N ... SBX 0 1 19 46*G BXU 0 AWORK4(2),NXTFRUSE [ J. IF NOT END OF FRESTUSER 9 46T6 LDX 0 AWORK1(2) 17 47#Q BZE 0 UP [ UP IF NO SWAPS DONE 14 47SB UPPLUS 1 [ ELSE UP+1 5 48#2 UP UP 4 48RL [ 21 49?= ...[*********************************************************** XFORBIDN 18 49QW [ THE RESTORE IS FORBIDDEN AND NO ALTERNATIVE IS ALLOWED 14 4==G [ THEREFORE INFORM OPERATORS AND RELOAD 4 4=Q6 [ 10 4?9Q SEGENTRY K51BMPRCHEK 5 4?PB XFORBIDN 16 4#92 LDN 3 FRUSE(3) [ FORBIDDEN USERNAME 7 4#NL LDN 5 3 10 4*8= LDN 6 JPDUSERNAME 9 4*MW CALL 4 OUTPACK 18 4B7G LDX 3 PRNOTAL(1) [ OUTPUT 'FORBIDDEN' MESSAGE 9 4BM6 CALL 4 MONOUT 7 4C6Q EMSCONWT 14 4CLB GRELOAD [ AND RELOAD 4 4D62 #END 6 ____ ...611573620001