12 22FL #LIS K0SECURE>K0COMMAND>K0ALLGEO 16 22_= #SEG SECURE5 [RICHARD GRIMWADE 7 23DW 8HSECURE5 16 23YG # THIS CHAPTER IMPLEMENTS THE SECURITY 14 24D6 # HIGH,LOW OR NORMAL COMMAND. 21 24XQ # IF HIGH,IT SETS TWO BITS IN THE STATUS INDICATOR,CINDIC 15 25CB # IN THE USER'S DICTIONARY ENTRY. 16 25X2 # IF LOW,IT SETS ONE OF THE BITS ONLY. 15 26BL # IF NORMAL,IT CLEARS BOTH BITS. 4 26W= # 10 27*W SEGENTRY K1SECURE,XK1 4 27TG # 8 28*6 #SKI K6SECURE>20-20 10 28SQ MENDAREA 50,K99SECURE 8 29#B MHIGH 4HHIG 8 29S2 MNORMAL 4HNOR 8 2=?L MLOW 4HLOW 9 2=R= MGSECURE +GSECURE 9 2?=W MGSECURE1 +GHIGH 9 2?QG MGSECURE2 +GLOWS 4 2#=6 XK1 20 2#PQ PARAPASS [READ PARAMETER INTO CPB/CUNI BLOCK 16 2*9B HUNT 3,CPB,CUNI [PUT POINTER INTO X3 9 2*P2 LDX 7 ANUM(3) 18 2B8L BZE 7 N5 [TEST IF PARAMETER IS NULL, 14 2BN= BNG 7 N5 [OR ABSENT 9 2C7W LDX 7 APARA(3) 9 2CMG #SKI K6SECURE>999-999 11 2D76 TRACE APARA(3),SECPARA 8 2DLQ LDX 6 ACES 21 2F6B DCH 6 7 [REPLACE LEAST SIGNIFICANT CHARACTER OF 20 2FL2 [FIRST WORD OF PARAMETER WITH A SPACE 18 2G5L TXU 7 MHIGH(1) [TEST IF PARAMETER IS HIGH 8 2GK= BCC N6 18 2H4W TXU 7 MNORMAL(1) [TEST IF PARAMETER IS NORMAL 8 2HJG BCC N8 17 2J46 TXU 7 MLOW(1) [TEST IF PARAMETER IS LOW 8 2JHQ BCC N9 8 2K3B BRN N4 7 2KH2 N5 LDN 0 1 17 2L2L STO 0 JPARNUM(3) [SET PARAMETER NO. TO ONE 21 2LG= N4 COMERR ASECURE [ERROR IF PARAMETER NULL,ABSENT,NOT HIGH, 15 2L_W [NORMAL OR LOW 18 2MFG N6 LDX 7 CONTEXT(2) [TO TEST WHETHER MOP OR NOT 7 2M_6 SRC 7 4 8 2NDQ BNG 7 N7 20 2NYB COMERR ERHIGH [ERROR IF SECURITY HIGH AND NOT MOP 15 2PD2 N7 LDX 6 MGSECURE1(1) [SET HIGH MARKER 8 2PXL BRN N10 16 2QC= N8 LDN 6 0 [SET NORMAL MARKER 8 2QWW BRN N10 15 2RBG N9 LDX 6 MGSECURE2(1) [SET LOW MARKER 20 2RW6 N10 OPENBUDG NBKIN [IF PARAMETER VALID,I.E. HIGH,NORMAL 17 2S*Q [OR LOW,OPEN DICTIONARY 20 2STB MHUNTW 3,FILE,ADICTENT [PUT POINTER IN X3 TO FILE/ADICTENT 19 2T*2 [BLOCK,WHICH CONTAINS THE STATUS 15 2TSL [INDICATOR,CINDIC 20 2W#= LDX 7 MGSECURE(1) [TO TEST WHETHER CURRENT SECURITY IS 15 2WRW ANDX 7 CINDIC(3) [NORMAL OR NOT 8 2X?G BNZ 7 N11 20 2XR6 LDX 7 CONTEXT(2) [IF NORMAL,TO TEST WHETHER MOP OR NOT 7 2Y=Q SRC 7 4 8 2YQB BNG 7 N11 16 2_=2 CLOSE [CLOSE THE DICTIONARY 21 2_PL VFREE CPB,CUNI [THE CUNI BLOCK MUST BE FREED BEFORE THE 14 329= COMERR HSECURE [NEXT COMMAND 15 32NW N11 NGX 7 MGSECURE(1) [LOADS THE MASK 16 338G SBN 7 1 [INVERSE TO GSECURE 19 33N6 ANDX 7 CINDIC(3) [ZEROISES SECURITY BITS OF CINDIC 19 347Q ADX 7 6 [SETTING SECURITY BITS OF CINDIC 21 34MB STO 7 CINDIC(3) [RESTORE CINDIC,HAVING SET SECURITY BITS 9 3572 #SKI K6SECURE>499-499 12 35LL TRACE CINDIC(3),SECURITY 16 366= CLOSBUDG [CLOSE DICTIONARY 6 36KW ENDCOM 17 375G NBKIN COMBRKIN [IF BREAK IN OCCURS 4 37K6 #END 8 ____ ...35414456000100000000