Tetris C64
Basic
Actualizado el 8 de Febrero del 2020 por Adelino (27 códigos) (Publicado el 25 de Noviembre del 2019)
10.230 visualizaciones desde el 25 de Noviembre del 2019
Juego de tipo tetris para Commodore 64.


10 POKE 53280,0: POKE 53281,0
20 PRINT CHR$(0) CHR$(147)
30 DIM E(255),H(250),F(24),Y(24)
40 DIM A(2,6,3,3),I(6,3)
50 E(29)=1: E(157)=2: E(145)=3
60 G(0)=1: G(1)=2: G(2)=3
70 X(0)=10: X(1)=1: X(2)=-1
80 Q=55279: Y=51456
100 FOR X=9 TO 0 STEP-1
110 C(X)=Y: Y=Y-256
120 H(X+48)=X: H(X+65)=X+10
130 NEXT
140 FOR X=828 TO 975: READ E$
150 Y=H(ASC(MID$(E$,2)))
160 POKE X,Y+16*H(ASC(E$))
170 NEXT
180 G=239: P=215
190 FOR Y=0 TO 24
200 A=12: F(Y)=10*Y
210 G=G+30: Q=Q+30
220 POKE Q+11,11: POKE Q-54261,207
230 FOR X=0 TO 9
240 C=C+1: G=G+1: Q=Q+1
250 POKE Q,A-1: POKE Q-54272,207
260 POKE C(0)+C,A: IF Y>23 GOTO 310
270 A=1: IF Y<1 THEN POKE Q,11: GOTO 310
290 H(C)=Y: IF G>255 THEN G=G-256: P=P+1
300 POKE C(3)+C,G: POKE C(4)+C,P
310 NEXT X,Y
320 FOR G=0 TO 3: C=G<1
330 FOR A=0 TO 6: I(A,G)=N+3
340 FOR Y=-C TO 3+C
350 FOR X=0 TO 3
360 IF C THEN READ Q
370 IF G THEN Q=A(G-1,A,Y,X)
380 IF Q THEN POKE C(5)+N,X+F(Y): N=N+1
390 IF Q>G THEN A(G,A,X,3-Y)=3
400 NEXT X,Y,A,G
410 P=INT(RND(0)*7)
420 REM ***** Inicio *****
430 A=P: G=0
440 FOR Y=0 TO 1
450 IF Y THEN P=INT(RND(0)*7)
460 X=C(5)+I(P,0)-3
470 FOR N=0 TO 3
480 C=5+PEEK(X): X=X+1
490 Q=PEEK(C(3)+C)+256*PEEK(C(4)+C)
500 POKE Q+172,P+1: POKE Q-54100,207
510 IF Y GOTO 550
520 IF PEEK(C(0)+C)>1 GOTO 520
530 POKE C(0)+C,0: POKE C(1)+N,C
540 POKE Q,P+1: POKE Q+172,0
550 NEXT N,Y
560 POKE 251,A+1: POKE 252,5
570 REM ***** Rutina *****
580 C=PEEK(252): Y=G: T=TI
590 E$=" ": IF TI-T<8 THEN GET E$
600 IF E$="" GOTO 590
610 X=E(ASC(E$))
620 IF X>2 THEN IF H(C) THEN G=G(Y)
630 POKE 252,C+X(X): POKE 253,I(A,G)
640 SYS 828
650 IF PEEK(253)<1 GOTO 580
660 IF X THEN G=Y: GOTO 590
670 REM ***** Lineas *****
680 FOR N=0 TO 3
690 POKE C(0)+PEEK(C(1)+N),A+2
700 Y=H(PEEK(C(1)+N)): Y(Y)=Y(Y)+1
710 IF Y(Y)<9 GOTO 760
720 POKE 251,F(Y): POKE 252,F(Y+1)
730 SYS 931
740 Y(Y)=Y(Y-1): Y=Y-1
750 IF Y(Y) GOTO 730
760 NEXT
770 GOTO 430
800 REM ***** Ensamblador *****
828 DATA A6,FD : REM LDX FD
830 DATA A0,04 : REM LDY #04
832 DATA 88 : REM *DEY
833 DATA 84,FE : REM STY FE
835 DATA A5,FC : REM LDA FC
837 DATA 18 : REM CLC
838 DATA 7D,00,C5: REM ADC C500,X
841 DATA 99,00,C2: REM STA C200,Y
844 DATA A8 : REM TAY
845 DATA B9,00,C0: REM LDA C000,Y
848 DATA E9,01 : REM SBC #01
850 DATA 10,4E : REM BPL 930
852 DATA CA : REM DEX
853 DATA A4,FE : REM LDY FE
855 DATA D0,E7 : REM BNE 832
857 DATA 84,FD : REM STY FD
859 DATA A0,04 : REM LDY #04
861 DATA 88 : REM *DEY
862 DATA 84,FE : REM STY FE
864 DATA BE,00,C2: REM LDX C200,Y
867 DATA DE,00,C0: REM DEC C000,X
870 DATA D0,10 : REM BNE 888
872 DATA BD,00,C3: REM LDA C300,X
875 DATA 85,B2 : REM STA B2
877 DATA BD,00,C4: REM LDA C400,X
880 DATA 85,B3 : REM STA B3
882 DATA A5,FB : REM LDA FB
884 DATA A0,00 : REM LDY #00
886 DATA 91,B2 : REM STA (B2),Y
888 DATA A4,FE : REM *LDY FE
890 DATA D0,E1 : REM BNE 861
892 DATA A0,04 : REM LDY #04
894 DATA 88 : REM *DEY
895 DATA 84,FE : REM STY FE
897 DATA BE,00,C1: REM LDX C100,Y
900 DATA B9,00,C2: REM LDA C200,Y
903 DATA 99,00,C1: REM STA C100,Y
906 DATA FE,00,C0: REM INC C000,X
909 DATA F0,0F : REM BEQ 926
911 DATA BD,00,C3: REM LDA C300,X
914 DATA 85,B2 : REM STA B2
916 DATA BD,00,C4: REM LDA C400,X
919 DATA 85,B3 : REM STA B3
921 DATA A9,00 : REM LDA #00
923 DATA A8 : REM TAY
924 DATA 91,B2 : REM STA (B2),Y
926 DATA A4,FE : REM *LDY FE
928 DATA D0,DC : REM BNE 894
930 DATA 60 : REM *RTS
931 DATA A6,FC : REM LDX FC
933 DATA A0,09 : REM LDY #09
935 DATA 88 : REM *DEY
936 DATA 84,FE : REM STY FE
938 DATA A4,FB : REM LDY FB
940 DATA B9,00,C0: REM LDA C000,Y
943 DATA 9D,00,C0: REM STA C000,X
946 DATA A8 : REM TAY
947 DATA BD,00,C3: REM LDA C300,X
950 DATA 85,B2 : REM STA B2
952 DATA BD,00,C4: REM LDA C400,X
955 DATA 85,B3 : REM STA B3
957 DATA 88 : REM DEY
958 DATA 98 : REM TYA
959 DATA A0,00 : REM LDY #00
961 DATA 91,B2 : REM STA (B2),Y
963 DATA CA : REM DEX
964 DATA C6,FB : REM DEC FB
966 DATA A4,FE : REM LDY FE
968 DATA D0,DD : REM BNE 935
970 DATA CA : REM DEX
971 DATA 86,FC : REM STX FC
973 DATA C6,FB : REM DEC FB
975 DATA 60 : REM RTS
1000 REM ***** Datos *****
1010 DATA 1,1,1,1,0,0,0,0
1020 DATA 0,1,0,0,0,1,1,1
1030 DATA 0,0,1,0,1,1,1,0
1040 DATA 0,1,1,0,0,0,1,1
1050 DATA 0,1,1,0,1,1,0,0
1060 DATA 0,1,0,0,1,1,1,0
1070 DATA 0,1,1,0,0,1,1,0
No hay comentarios