The program is a alpha version, more to come...
But it seem to work good :)

Copy / Paste the example codes (unfold them) 
inside the C64 windows, jump a line and type RUN + ENTER!

Example code 03

10 PRINT CHR$(147):V=53248:POKE 2040,13:POKE V+21,1:POKE V+39,7

20 FOR I=0 TO 62:READ A:POKE 832+I,A:NEXT

30 FOR I=0 TO 24:POKE 1024+I*40+30,160:POKE 55296+I*40+30,2:NEXT

40 X=60:Y=130

50 J=PEEK(56320):IF (J AND 4)=0 THEN X=X-2

60 IF (J AND 8)=0 THEN X=X+2

70 IF (J AND 1)=0 THEN Y=Y-2

80 IF (J AND 2)=0 THEN Y=Y+2

85 IF X<24 THEN X=24

86 IF Y<50 THEN Y=50

87 IF Y>229 THEN Y=229

90 POKE V,X AND 255:POKE V+1,Y:POKE V+16,-(X>255)

92 W=TI

94 IF TI=W THEN 94

100 IF PEEK(V+31) AND 1 THEN POKE V+39,2:X=60:Y=130:FOR T=1 TO 200:NEXT

110 POKE V+39,7:GOTO 50

120 DATA 0,0,0,0,0,0,0,24,0,0,126,0,1,255,128,3,255,192,7,255,224

130 DATA 7,255,224,15,255,240,15,255,240,15,255,240,15,255,240,15,255,240,7,255,224

140 DATA 7,255,224,3,255,192,1,255,128,0,126,0,0,24,0,0,0,0,0,0,0

Example code 02

10 PRINT CHR$(147);:POKE 53280,0:POKE 53281,0:DIM X(30),V(30),Y(30)

20 FOR I=0 TO 30:X(I)=INT(RND(1)*40):Y(I)=INT(RND(1)*25)

25 V(I)=1+INT(RND(1)*3):NEXT

30 FOR I=0 TO 30:POKE 1024+Y(I)*40+X(I),32

40 X(I)=X(I)-V(I):IF X(I)<0 THEN X(I)=X(I)+40:Y(I)=INT(RND(1)*25)

50 A=1024+Y(I)*40+X(I):POKE A,42:POKE A+54272,9+V(I)*2

60 NEXT:T=TI+2

65 IF TI<T THEN 65

70 GOTO 30

Example code 01

10 PRINT CHR$(147);:POKE 53280,0:POKE 53281,0

20 DIM U(6,3),W(6,3),E(3),F(3),G(3),H(3)

30 FOR P=0 TO 6:FOR I=0 TO 3:READ U(P,I),W(P,I):NEXT:NEXT

40 DATA -1,0,0,0,1,0,2,0,0,0,1,0,0,1,1,1,-1,0,0,0,1,0,0,1

50 DATA 0,0,1,0,-1,1,0,1,-1,0,0,0,0,1,1,1

60 DATA -1,0,0,0,1,0,1,1,-1,0,0,0,1,0,-1,1

70 FOR R=2 TO 22:A=R*40:POKE 1024+A+14,160:POKE 1024+A+25,160

75 POKE 55296+A+14,11:POKE 55296+A+25,11:NEXT

80 FOR C=14 TO 25:POKE 1024+880+C,160:POKE 55296+880+C,11:NEXT

85 PRINT CHR$(19);CHR$(5);TAB(14);"T E T R I S"

90 SC=0:L=0:GOSUB 900

110 P=INT(RND(1)*7):K=P+2:X=4:Y=1

115 FOR I=0 TO 3:E(I)=U(P,I):F(I)=W(P,I):NEXT

120 GOSUB 500:IF R THEN 800

130 V=160:GOSUB 600:T0=TI:DL=30-INT(L/5)*3:IF DL<6 THEN DL=6

150 GET A$:DX=0:DY=0:RT=0

160 IF A$="A" OR A$=CHR$(157) THEN DX=-1

170 IF A$="D" OR A$=CHR$(29) THEN DX=1

180 IF A$="W" OR A$=CHR$(145) THEN RT=1

190 IF A$="S" OR A$=CHR$(17) THEN DY=1

200 IF TI-T0>=DL THEN DY=1:T0=TI

210 IF DX=0 AND DY=0 AND RT=0 THEN 150

220 V=32:GOSUB 600

230 IF DX=0 AND RT=0 THEN 300

240 OX=X:FOR I=0 TO 3:G(I)=E(I):H(I)=F(I):NEXT

250 X=X+DX:IF RT AND P<>1 THEN FOR I=0 TO 3:T=E(I):E(I)=-F(I):F(I)=T:NEXT

260 GOSUB 500:IF R=0 THEN 300

270 X=OX:FOR I=0 TO 3:E(I)=G(I):F(I)=H(I):NEXT

300 IF DY=0 THEN 400

310 Y=Y+1:GOSUB 500:IF R=0 THEN 400

320 Y=Y-1:V=160:GOSUB 600:GOTO 700

400 V=160:GOSUB 600:GOTO 150

500 R=0:FOR I=0 TO 3:A=X+E(I):B=Y+F(I)

510 IF A<0 OR A>9 OR B<0 OR B>19 THEN R=1:A=0:B=0

520 IF PEEK(1024+(B+2)*40+A+15)<>32 THEN R=1

530 NEXT:RETURN

600 FOR I=0 TO 3:A=1024+(Y+F(I)+2)*40+X+E(I)+15

610 POKE A,V:POKE A+54272,K:NEXT:RETURN

700 N=0:R=19

710 F1=1:FOR C=0 TO 9:IF PEEK(1024+(R+2)*40+C+15)=32 THEN F1=0

720 NEXT

730 IF F1=0 THEN R=R-1:GOTO 790

735 IF R=0 THEN 760

740 FOR Q=R TO 1 STEP -1:FOR C=0 TO 9:A=1024+(Q+2)*40+C+15

750 POKE A,PEEK(A-40):POKE A+54272,PEEK(A+54232):NEXT:NEXT

760 FOR C=0 TO 9:POKE 1104+C+15,32:NEXT:N=N+1:GOTO 710

790 IF R>=0 THEN 710

795 SC=SC+N*N*100+10:L=L+N:GOSUB 900:GOTO 110

800 PRINT CHR$(19);:FOR I=1 TO 10:PRINT:NEXT:PRINT TAB(15);"GAME OVER":END

900 PRINT CHR$(19);CHR$(17);CHR$(154);"SCORE";SC;" LIGNES";L;" ";:RETURN

Updated 2 hours ago
Published 2 days ago
StatusIn development
PlatformsHTML5
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorCreepyCat
GenreEducational
Tagsbasic, Commodore 64, dev, game, programming
ContentNo generative AI was used

Comments

Log in with itch.io to leave a comment.

Cool

Thanks! :)