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