Hi,
enclosed, the D_File mirrored version.
But, some of variable/conditions are corrupt...
Probably due to the DFILE relocation!
This an alterative release (
) :
The G() array is keep to check values, but it can be remove to seep up the display!
... if the bug can be found! (? memory error ?)
Code: Select all
2 GOSUB 800
3 GOSUB 1003
100 GOSUB 4000
200 LET A$(X+1,Y)="O"
201 LET V=G(X,Y)
203 IF V=0 THEN GOTO 208
204 IF V=10 OR V=11 THEN GOTO 700
205 LET L=L+V+1
206 LET S=S+V
207 LET D$(1,1 TO)=STR$(S)
208 LET A$(23)=B$+D$(1)+C$+E$(1)
210 LET G(X,Y)=11
211 LET S(H,1)=X
212 LET S(H,2)=Y
214 IF RND>.9 THEN GOSUB 600
250 LET K=CODE INKEY$
270 IF K>36 THEN GOSUB 500+10*(K-112)
280 LET X=X+R
281 LET Y=Y+U
290 LET H=H+1
295 IF H>M THEN LET H=1
300 IF L>0 THEN LET L=L-1
310 IF L=0 THEN GOSUB 400
399 GOTO 200
400 LET A$(S(T,1)+1,S(T,2))=" "
407 LET G(S(T,1),S(T,2))=0
410 LET T=T+1
420 IF T>M THEN LET T=1
430 RETURN
500 IF R=1 THEN RETURN
505 LET R=-1
506 LET U=0
507 RETURN
510 IF R=-1 THEN RETURN
515 LET R=1
516 LET U=0
517 RETURN
520 IF U=1 THEN RETURN
525 LET U=-1
526 LET R=0
527 RETURN
530 IF U=-1 THEN RETURN
535 LET U=1
536 LET R=0
537 RETURN
600 LET A=INT (RND*19)+2
605 LET B=INT (RND*29)+2
607 IF G(A,B) THEN RETURN
610 LET N=INT (RND*9)+1
620 LET A$(A+1,B)=CHR$ (N+156)
625 LET G(A,B)=N
630 RETURN
700 GOSUB 5000
705 PRINT AT 9,10;"ya«silly«cant" AND V=10;AT 11,4;"you«fell«in«the«dam«ditch" AND V=10;AT 9,9;"ya«daft«basket" AND V=11;AT 11,4;"you«ate«your«feckin«tail" AND V=11;AT 13,8;"play«again«‹y“nŒŠ"
710 IF S>Z THEN LET Z=S
750 POKE 16444,Z-(INT (Z/256)*256)
752 POKE 16445,INT (Z/255)
755 LET K$=INKEY$
757 IF K$="Y" THEN GOTO 3
758 IF K$="N" THEN GOTO 990
759 GOTO 755
777 GOTO 3
800 PRINT AT 2,8;"hello«and«welcome";AT 4,15;"to";AT 6,1;"trakkie«the«amazing«wobbly«worm";AT 10,6;"USE ARROW KEYS TO MOVE";AT 20,7;"PRESS A KEY TO PLAY"
810 IF INKEY$="" THEN GOTO 810
820 RETURN
990 PRINT AT 15,2;"please«your«fecking«self«then"
995 STOP
1003 CLS
1004 FAST
1005 CLEAR
1008 DIM A$(27,33)
1009 LET X=11
1010 LET Y=16
1011 DIM G(21,31)
1012 DIM S(555,2)
1013 LET V=0
1014 LET U=1
1015 LET R=0
1016 LET H=1
1017 LET T=1
1018 LET L=100
1019 LET M=555
1020 LET S=0
1021 LET B$="SCORE="
1022 LET C$=" HI SCORE="
1023 DIM D$(1,5)
1024 DIM E$(1,5)
1030 LET Z=PEEK (16445)*256+PEEK (16444)
1032 FOR A=1 TO 25
1033 LET A$(A,33)=CHR$ (118)
1034 LET A$(25,A)=CHR$ (118)
1036 NEXT A
1039 LET DES=8+PEEK (16400)+256*PEEK (16401)
1040 POKE 16507,PEEK (16396)
1044 POKE 16508,PEEK (16397)
1046 POKE 16396,DES-INT (DES/256)*256
1047 POKE 16397,INT (DES/256)
1099 SLOW
1102 LET E$(1,1 TO)=STR$(Z)
1103 LET D$(1,1 TO)=STR$(S)
1104 LET A$(23,TO)=B$+D$(1)+C$+E$(1)
1105 FOR I=1 TO 31
1110 LET A$(2,I)="x"
1115 LET A$(22,32-I)="x"
1125 LET G(1,I)=10
1126 LET G(21,I)=10
1140 NEXT I
1150 FOR I=2 TO 22
1160 LET A$(23-I,1)="x"
1162 LET A$(I,31)="x"
1165 LET G(I-1,1)=10
1166 LET G(I-1,31)=10
1170 NEXT I
1195 RETURN
4000 REM SET NEW DFILE
4010 POKE 16444,PEEK (16396)
4011 POKE 16445,PEEK (16397)
4020 RETURN
5000 REM RESTORE DFILE
5010 POKE 16396,PEEK (16507)
5020 POKE 16397,PEEK (16508)
5030 RETURN