0 REM ãïíðõôå¡’êõ’ð繶’øó›1 DATA 84,82,85,197,70,65,76,83,197,83,84,65,82,212,83,69,76,69,67,212,79›2 DATA 80,84,73,79,206,84,82,89,164,67,79,68,69,164,67,164,68,73,82,164›3 DATA 69,78,84,164,80,82,164,208,75,69,89,80,82,69,83,83,69,196,67,79›4 DATA 78,83,79,204,193,201,217,78,67,164,68,79,78,197,68,77,65,216,77,79›5 DATA 82,197,68,84,79,208,66,79,212,216,68,69,204,79,217,79,216,214,88,67›6 DATA 200,69,216,88,177,83,212,76,201,86,65,82,201,202›60 OPEN #1,4,0,"K:"›70 GRAPHICS 0:POKE 82,2›80 POKE 580,1:POKE 16,64:POKE 53774,64›90 SETCOLOR 4,10,0:SETCOLOR 2,10,0›100 TRUE=(1=1):FALSE=(1=0):START=6:SELECT=5:OPTION=3›110 DIM TRY$(30),CODE$(30),C$(32),DIR$(1235),ENT$(17),PR$(14),NC$(30)›120 C$="ZZENTER*************************"›500 IF PEEK(1612)<>126 THEN GOSUB 2500:GOSUB 1000:POKE 1612,126›510 GOTO 3000›997 END ›999 REM GET PASSWORD CODE›1000 POKE 752,1:GOSUB 2000:POSITION 2,2:? "ÃÏÄź";:POSITION 7,2›1010 P=0:TRY$=""›1040 P=P+1:KEYPRESSED=FALSE›1045 IF P=30 THEN 1300›1050 IF PEEK(764)<>255 AND PEEK(764)<>154 THEN KEYPRESSED=TRUE›1060 CONSOL=PEEK(53279)›1065 IF CONSOL=START THEN 1500›1070 IF CONSOL=SELECT THEN 1200›1075 IF CONSOL=OPTION THEN 1300›1100 IF NOT KEYPRESSED THEN 1050›1110 GET #1,A›1130 TRY$(P)=CHR$(A)›1140 PRINT "­";›1160 GOTO 1040›1198 REM BACKSPACE›1200 IF P<=1 THEN GOTO 1050›1210 P=P-1:TRY$(P)="":? "ý ";›1220 GOTO 1050›1298 REM CLEAR LINE›1300 POSITION 7,2:FOR I=1 TO P:? " ";:NEXT I:TRY$="":POSITION 7,2:P=1:GOTO 1050›1498 REM CHECK ENTERED CODE›1500 PRINT "ž";:FOR I=1 TO 200:NEXT I›1505 IF TRY$<>CODE$ THEN 1600›1510 GOTO 1999›1598 REM NO GOOD›1600 GOSUB 2000:POSITION 16,12:? "ÌÏÃËÏÕÔ"›1610 SOUND 1,50,10,10:POKE 755,2:FOR I=1 TO 50›1620 IF PEEK(53279)<>START THEN NEXT I›1630 SOUND 1,100,10,10:POKE 755,0:FOR I=1 TO 50›1640 IF PEEK(53279)<>START THEN NEXT I:GOTO 1610›1650 POP :SOUND 1,0,0,0:POKE 755,2:GOTO 1000›1999 RETURN ›2000 ? "}";:FOR Y=1 TO 23:? "                                      ";:NEXT Y›2010 RETURN ›2500 P=3›2510 IF C$(P,P)="*" THEN 2600›2520 CODE$(P-2)=C$(P,P)›2530 P=P+1›2540 GOTO 2510›2600 RETURN ›2998 REM MENU›3000 PRINT "}";›3010 PRINT " MENU"›3020 PRINT " ";›3040 PRINT " 1 EXIT TO BASIC"›3050 PRINT " 2 CHANGE PASSWORD CODE"›3060 PRINT " 3 DISK DIRECTORY"›3070 PRINT "";›3080 GET #1,A›3090 IF A=ASC("S") THEN GOSUB 9000›3100 IF A=ASC("B") AND LI=-999 THEN GRAPHICS 0:END ›3200 IF A<49 OR A>51 THEN 3080›3210 ON A-48 GOTO 5000,6000,7000›5000 GRAPHICS 0:POKE 580,0:POKE 1612,0:NEW ›5999 REM CHANGE CODE WORD›6000 POKE 752,0›6005 ? "}ENTER NEW CODE PASSWORD(S)";:INPUT #16,NC$›6010 OPEN #2,12,0,"D:AUTORUN.BAS"›6020 IF LEN(NC$)>29 THEN NC$(29)=""›6030 FOR I=LEN(NC$)+1 TO 30:NC$(LEN(NC$)+1)="*":NEXT I›6040 GET #2,A:IF A=90 THEN GET #2,A:IF A=90 THEN 6060›6050 GOTO 6040›6060 FOR I=1 TO 30:PUT #2,ASC(NC$(I,I)):NEXT I›6070 CLOSE #2›6075 POKE 752,1›6080 GOTO 3000›6999 REM DIRECTORY ROUTINE›7000 OPEN #5,6,0,"D:*.*"›7010 DIR$(1)=" ":DIR$(1235)=" ":DIR$(2)=DIR$›7020 DONE=FALSE›7030 POKE 752,1›7040 P=0›7050 P=P+1›7060 INPUT #5,ENT$›7070 IF ENT$(5,8)="FREE" THEN DONE=TRUE›7080 IF DONE THEN 7110›7090 DIR$(P*19-18,P*19)=ENT$›7100 GOTO 7050›7110 CLOSE #5:DMAX=P›7120 P=1:MORE=FALSE:IF DMAX>40 THEN MORE=TRUE›7130 DTOP=40:IF NOT MORE THEN DTOP=DMAX›7140 POKE 82,2:POKE 83,39:PRINT "}             ÄÉÒÅÃÔÏÒÙ               "›7150 PRINT DIR$(P,DTOP*19);:IF DTOP/2<>INT(DTOP/2) THEN PRINT ›7160 BOT=PEEK(84)-1›7170 ? " ";:IF MORE THEN POSITION 17,22:PRINT "";›7180 X=1:Y=1:POSITION X,Y:? ""›7190 KEYPRESSED=FALSE›7210 IF PEEK(764)<>255 THEN KEYPRESSED=TRUE›7220 CONSOL=PEEK(53279)›7230 IF CONSOL=START AND MORE AND P<>1 THEN 7120›7240 IF CONSOL=START AND MORE THEN P=(DTOP+1)*19+1:DTOP=DMAX:GOTO 7140›7245 IF CONSOL=SELECT THEN 3000›7250 IF KEYPRESSED THEN 7270›7260 GOTO 7210›7270 OY=Y:OX=X›7280 GET #1,V:IF V=45 THEN Y=Y-1:IF Y<1 THEN Y=1›7290 IF V=61 THEN Y=Y+1:IF Y>BOT THEN Y=BOT›7300 IF V=43 OR V=42 THEN XCH=XCH+1:IF XCH/2=INT(XCH/2) THEN X=1:GOTO 7320›7310 IF V=43 OR V=42 THEN X=20›7320 IF V=155 THEN 7350›7330 POSITION OX,OY:? " ":POSITION X,Y:? ""›7340 GOTO 7190›7350 EX=0:PR$="D:":FOR X1=X+3 TO X+13›7360 LOCATE X1,Y,V:IF V=32 THEN 7400›7370 PR$(LEN(PR$)+1)=CHR$(V)›7380 IF X1=X+10 THEN 7400›7390 GOTO 7430›7400 IF EX=1 THEN EX=0:GOTO 7420›7410 X1=X+11:LOCATE X1,Y,V:IF V<>32 THEN PR$(LEN(PR$)+1)=".":X1=X1-1:EX=1:GOTO 7430›7420 GOTO 7440›7430 NEXT X1›7440 TRAP 7450:RUN PR$›7450 POSITION 13,23:? "CANNOT BE RUN";:GET #1,A›7460 GOTO 7120›8990 REM ›8991 REM THIS ROUTINE IS NOT ON THE MENU›8992 REM IT RESTORES THE PROGRAM TO BASIC WITH›8993 REM THE LISTING INTACT›8994 REM TO USE THIS OPTION PRESS S AT THE MENU›8995 REM AND THEN PRESS B WHEN YOU HEAR THE BUZZER›9000 ST=PEEK(136)+PEEK(137)*256›9010 LI=PEEK(ST)+PEEK(ST+1)*256:IF LI<>9510 THEN ST=ST+PEEK(ST+2):GOTO 9010›9020 IF PEEK(ST+2)=0 THEN POKE ST+2,72:RESTORE 1›9030 FOR I=1 TO 115:LI=PEEK(130)+PEEK(131)*256+(I-1):READ VARI:POKE LI,VARI:NEXT I:LI=-999:? "ý":RETURN ›9498 REM PROTECT SAVE ROUTINE›9500 FOR VARI=PEEK(130)+PEEK(131)*256 TO PEEK(132)+PEEK(133)*256:POKE VARI,155:NEXT VARI›9510 POKE PEEK(138)+PEEK(139)*256+2,0:SAVE "D:AUTORUN.BAS":NEW ›