{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FILESECU83)}}
====== FILESECU83 ======
(George Source)
**Macros used:** [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ERRORX|ERRORX]], [[george:macro:ERRTEST|ERRTEST]], [[george:macro:FNORM|FNORM]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OPENDIR|OPENDIR]], [[george:macro:REWRITE|REWRITE]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:VFREEW|VFREEW]]
22FL SEG FILESECU,80,CSS SPECIAL SEGMENT
22^= SEGENTRY K1FILESECU,SF1 [SETFILEPASS (SF) ENTRY.
23DW SEGENTRY K2FILESECU,SF2 [ASSIGNPASS (AP) ENTRY.
23YG SEGENTRY K3FILESECU,SF3 [CHECK PASSWORD ENTRY.
24D6 #DEF XPASSLENGTH=4 [NUMBER OF CHARACTERS ALLOWED.
24XQ XKEY 4HJ.MC
25CB SF1 [SETFILEPASS: THIS SECTION SETS UP A BLOCK ADATA/JMCPASS
25X2 [WHICH HOLDS THE JOBS CURRENT PASSWORD.
26BL [THE ADATA/JMCPASS BLOCK IS MERELY A RENAMED CPB/CUNI BLOCK.
26W= VFREEW ADATA,JMCPASS [FREE ANY PASSWORD BLOCK.
27TG SPARAPASS
28*6 MHUNT 3,CPB,CUNI
28SQ LDX 0 ANUM(3)
29S2 BNG 0 NULL
2=?L BZE 0 NULL
2=R= SBN 0 XPASSLENGTH+1
2?=W BPZ 0 XLONG
2?QG NAME 3,ADATA,JMCPASS
2#=6 NULL ENDCOM
2#PQ XLONGMESS +JLONGPASS
2*9B XLONG
2B8L LDX 6 XLONGMESS(1)
2BN= LDN 0 4
2C7W STO 0 ANUM(3)
2CMG NAME 3,ADATA,JMCPASS
2D76 MONOUTX 6
2DLQ ENDCOM
2F6B #PAGE
2FL2 SF2 [ASSIGNPASS: THIS SECTION ASSIGNS THE PASSWORD
2G5L [HELD BY THE JOB TO THE FILE WHOSE NAME IS GIVEN IN %A
2GK= [IF THE FILE ALREADY HAS A PASSWORD, %B MUST BE THE OLD
2H4W [PASSWORD.
2HJG SPARAPASS [SHOULD BE FILENAME.
2J46 MHUNT 3,CPB,CUNI
2K3B NAMETOP 3,FILE,FNAME
2L2L FNORM [TO CHECK FORMAT AND TO GIVE US FILE/FABSNB
2LG= TESTREP NAMEFORM,NAMEFORM
2L^W MHUNT 2,FILE,FNAME
2MFG NAMETOP 2,CPB,CUNI
2NDQ MHUNT 2,FILE,FABSNB [PRODUCED BY FNORM
2NYB LDX 0 ATYPE(2)
2PXL ANDN 0 #2200 [CHECK FOR WFILE OR NOT FILE.
2QC= BNZ 0 MERR1
2QWW OPENDIR MBRK,GENERAL,QUERY
2RBG TESTREP OK,OPENDIR
2RW6 ERRTEST 3,OUCH,NAME,NOFILE,NOUSER,WRGEN,VRYWRONG
2S*Q OUCH
2STB ENDCOM
2T*2 OPENDIR
2W#= OWNERCHECK
2WRW TESTREP2 NOTOWNER,NOTOWNER
2X?G SPARAPASS [OLD PASSWORD - MAY HAVE BEEN OMITTED.
2XR6 MHUNT 2,CPB,CUNI
2Y=Q NAME 2,ADATA,JMCPASSB
2YQB DOWN FILESECU,3
2^=2 BRN XFAIL
2^PL LDX 6 XKEY(1)
329= HUNTW 2,ADATA,JMCPASS
32NW BNG 2 SETNULL
338G LDX 6 ACES
33N6 LDX 3 FX2
347Q STO 6 AWORK1(3)
34MB LDX 1 ANUM(2)
3572 LDN 5 APARA(2)
35LL LDN 6 AWORK1(3)
366= MVCH 5 0(1)
36KW LDX 6 AWORK1(3)
375G SETNULL
384Q MHUNTW 2,FILE,ENT
38JB LDX 5 EUSE1(2)
3942 BNG 5 XDIR
39HL LDX 1 FX1
3=3= ERX 6 XKEY(1)
3=GW STO 6 EU(2)
3?2G NAME 2,FILE,FWB
3?G6 LDEX 2 ECOPS(2)
3?^Q BZE 2 NOBCKSP
3#FB BACKSPACE
3#^2 NOBCKSP
3*DL REWRITE
3*Y= XFAIL
3BCW CLOSETOP
3BXG ENDCOM
3CC6 XDIRERR +ERDIR
3CWQ XDIR
3DBB CLOSETOP
3DW2 LDX 6 XDIRERR(1)
3F*L BRN MERR1+1
3FT= NOTOWNERR +ERNOTOWN
3G#W NOTOWNER
3GSG CLOSETOP
3H#6 LDX 6 NOTOWNERR(1)
3HRQ COMERRX 6
3J?B XERENT +ERENTTYPE
3JR2 MERR1 LDX 6 XERENT(1)
3K=L COMERRX 6
3KQ= NAMEFORM
3L9W ENDCOM
3LPG MBRK
3M96 COMBRKIN
3MNQ #PAGE
3N8B SF3
3NN2 [THIS SECTION IS ENTERED TO CHECK A FILE'S
3P7L [PASSWORD WITH EITHER THAT IN THE ADATA/JMCPASSB OR
3PM= [ADATA/JMCPASS BLOCK (IN THAT ORDER OF PREFERENCE.
3Q6W [THIS VERSION ASSUMES THE EXISTANCE OF A FILE/ENT BLOCK
3QLG HUNT 3,FILE,ENT
3R66 BNG 3 NOFILENT
3RKQ LDX 6 EU(3) [THE FILE'S PASSWORD.
3SK2 BZE 6 SF3FIN [NO PASSWORD TO CHECK.
3T4L SMO FX1
3TJ= ERX 6 XKEY
3W3W HUNTW 3,ADATA,JMCPASSB
3X36 BPZ 3 SF3GOT
3XGQ HUNTW 3,ADATA,JMCPASS
3YG2 BNG 3 NOPASS
3Y^L SF3GOT
3^F= LDX 1 ANUM(3)
3^YW BNG 1 NOPASS
42DG BZE 1 NOPASS
42Y6 LDX 4 ACES
43CQ STO 4 AWORK1(2)
43XB LDN 4 APARA(3)
44C2 LDN 5 AWORK1(2)
44WL MVCH 4 0(1)
45B= BXU 6 AWORK1(2),PASSFAIL
45TW SF3FIN
46*G UPPLUS 1
46T6 NOFILENT
47#Q GEOERR 1,FILE/ENT
47SB MJMPFAIL
48#2 +JMCPASSFAIL
48RL NOPASS
49?= PASSFAIL
49QW LDX 1 FX1
4==G LDX 6 MJMPFAIL(1)
4=Q6 ERRORX 6
4?9Q UP
4?PB #END
^^^^ ...676242310008