1 '
2 ' BLOCK CRUSH 
4 '             
5 '   BY  M.T   
6 '
7 '
10 CLEAR 300,&HAFFF
20 DEFINT A-Z
25 '
29 IF PEEK(&HB328)=&HC9 GOTO 100
30 OUT 81,1
40   AD=&HB000:K=100
50   Y=0
60 FOR I=0 TO 15:READ A$:A=VAL("&H"+A$):Y=Y+A:POKE AD+I,A:NEXT
70   READ X:IF X<>Y THEN WIDTH,:PRINT"Data error in "K:BEEP:END
80   AD=AD+16:K=K+10
90 IF AD<&HB340 GOTO 50
95 '
99 '----------------------------------------------------------  B000
100 DATA 00,00,00,00,00,00,00,00,08,48,48,80,28,C8,8A,AC, 830
110 DATA 59,CA,59,1A,09,09,09,09,08,07,06,05,F6,FF,FF,FF, 1479
120 DATA FF,FF,FF,06,60,FF,FF,FF,FF,FF,FF,6F,80,88,30,33, 2871
130 DATA 70,77,00,00,E0,EE,00,00,C0,CC,10,11,88,08,33,03, 1320
140 DATA 77,07,00,00,EE,0E,00,00,CC,0C,11,01,21,5D,30,22, 820
150 DATA 38,B3,CD,47,B1,CD,BD,B2,3A,29,B3,B7,C8,DB,01,CB, 2344
160 DATA 7F,20,EF,C9,21,00,B4,11,01,B4,01,45,01,36,00,ED, 1372
170 DATA B0,C9,CD,EE,B0,CD,B4,B0,3A,30,B3,C6,07,67,2E,5E, 2290
180 DATA 22,38,B3,CD,B3,B1,DB,09,CB,77,20,E6,21,04,09,7D, 1813
190 DATA 32,76,B1,7C,32,5E,B1,CD,EE,B0,CD,BD,B2,CD,47,B1, 2434
200 DATA CD,B4,B0,3A,29,B3,B7,C8,3A,37,B3,B7,C0,DB,09,CB, 2320
210 DATA 47,20,E4,C9,3E,00,3D,20,FD,C9,D5,16,00,5D,62,6A, 1673
220 DATA CB,3F,30,01,19,CB,23,CB,12,B7,20,F4,D1,C9,50,3E, 1810
230 DATA 20,D3,40,42,10,FE,EE,20,0D,20,F6,AF,D3,40,C9,7C, 1979
240 DATA 08,3E,78,CD,BA,B0,08,5F,16,F3,19,23,23,C9,21,2B, 1497
250 DATA B3,35,C0,DB,08,CB,67,20,04,36,06,18,02,36,0A,3A, 1201
255 '-----------------------------------------------------      B100
260 DATA 30,B3,4F,2A,31,B3,DB,00,CB,67,28,28,CB,77,C0,3E, 1757
270 DATA 59,B9,C8,36,00,0C,CB,41,20,01,23,79,32,30,B3,22, 1308
280 DATA 31,B3,0F,38,05,11,1C,B0,18,03,11,24,B0,EB,01,08, 1025
290 DATA 00,ED,B0,C9,AF,B9,C8,E5,11,07,00,19,36,00,E1,0D, 1744
300 DATA CB,41,28,D7,2B,18,D4,21,2C,B3,35,C0,36,03,2A,38, 1458
310 DATA B3,E5,ED,5B,3A,B3,ED,4B,2E,B3,05,20,15,06,05,7A, 1701
320 DATA 84,FE,FF,28,07,FE,68,28,03,67,18,06,7A,ED,44,57, 1736
330 DATA 18,EE,0D,20,2B,0E,04,7B,85,FE,00,28,11,FE,63,28, 1328
340 DATA 08,FE,5D,6F,D4,83,B2,18,17,32,37,B3,18,0C,3A,B5, 1593
350 DATA B0,3D,3D,FE,55,38,03,32,B5,B0,7B,ED,44,5F,18,D8, 1866
360 DATA ED,43,2E,B3,ED,53,3A,B3,22,38,B3,D1,7C,BA,20,03, 1909
370 DATA 7D,BB,C8,D9,2A,33,B3,11,3C,B3,CD,EF,B2,D9,E5,24, 2361
380 DATA 2D,CB,3C,CB,3D,CB,3D,CD,DF,B0,22,33,B3,E5,11,3C, 2010
390 DATA B3,CD,01,B3,E1,3A,39,B3,E6,01,17,17,17,17,57,3A, 1551
400 DATA 38,B3,E6,03,17,17,82,11,2C,B0,83,5F,CD,13,B3,E1, 1735
410 DATA CB,3C,CB,3C,CB,3C,54,CB,3D,CB,3D,5D,3E,0D,CD,BA, 1960
415 '--------------------------------------------------------- B200
420 DATA B0,06,B4,4A,09,7E,B7,20,05,ED,53,35,B3,C9,3D,77, 1724
430 DATA 08,2A,35,B3,ED,4B,3A,B3,7A,BC,28,04,78,ED,44,47, 1681
440 DATA 7B,BD,28,04,79,ED,44,4F,ED,53,35,B3,ED,43,3A,B3, 1954
450 DATA 08,20,38,3A,B5,B0,3D,FE,55,38,03,32,B5,B0,3A,29, 1476
460 DATA B3,3D,32,29,B3,EB,CB,24,CB,24,CD,DF,B0,23,11,40, 1943
470 DATA B3,06,10,1A,B7,28,06,13,13,13,10,F7,C9,EB,36,14, 1286
480 DATA 23,73,23,72,01,32,4B,CD,CE,B0,C9,01,10,20,CD,CE, 1673
490 DATA B0,DB,09,CB,77,C0,DB,00,0F,0F,0F,E6,0F,D6,03,32, 1694
500 DATA 5E,B1,C9,3A,30,B3,94,C6,0F,FE,11,D0,1E,FF,E5,FE, 2365
510 DATA 08,20,0A,3A,30,B3,0F,3E,00,38,0D,18,04,38,06,D6, 785
520 DATA 09,16,FF,18,05,2F,C6,08,16,01,21,14,B0,85,6F,7E, 1190
530 DATA 32,5E,B1,E1,D9,01,50,10,CD,CE,B0,D9,C9,21,2A,B3, 2119
540 DATA 35,C0,36,96,DD,21,40,B3,06,10,DD,7E,00,B7,28,17, 1561
550 DATA D6,04,DD,77,00,DD,6E,01,DD,66,02,16,B0,5F,0E,04, 1526
560 DATA 1A,77,23,13,0D,20,F9,11,03,00,DD,19,10,DC,C9,1A, 1222
570 DATA 77,23,13,1A,77,01,77,00,09,13,1A,77,23,13,1A,77, 810
575 '---------------------------------------------------------- B300
580 DATA C9,7E,12,23,13,7E,12,01,77,00,09,13,7E,12,23,13, 889
590 DATA 7E,12,C9,1A,AE,77,23,13,1A,AE,77,13,01,77,00,09, 1185
600 DATA 1A,AE,77,23,13,1A,AE,77,C9,41,04,FA,04,20,05,05, 1258
610 DATA 00,43,FE,00,00,00,00,00,50,02,FF,FF,00,00,00,00, 913
620 '
630 '
640 '
650 WIDTH 80,25:CONSOLE,,0,1
660 '
670 DEFUSR=&HB04C:DEFUSR1=&HB064:DEFUSR2=&HB072
680 OV=&HB337:NO=&HB329:SP=&HB0B5
690 DIM W%(1),S$(9)
700 W%(0)=&HD8A5:W%(1)=W%(0)
710 M$=CHR$(29):N$=CHR$(31):M$=M$+M$+M$+N$
720 P$="   "+M$+"   "+M$+"   "
730 S$(0)=""+M$+" "+M$+""
740 S$(1)=" "+M$+"  "+M$+"  "
750 S$(2)=""+M$+""+M$+""
760 S$(3)=""+M$+" "+M$+""
770 S$(4)=""+M$+""+M$+"  "
780 S$(5)=" "+M$+""+M$+""
790 S$(6)=""+M$+""+M$+""
800 S$(7)=""+M$+" "+M$+"  "
810 S$(8)=""+M$+""+M$+""
820 S$(9)=""+M$+""+M$+""
830 B$=""+M$+""+M$+""
835 '
840 'demo
845 '
850 GOSUB 1190
860 IF INP(1)=127 GOTO 930
870 M=RND(1)*5+1:GOSUB 1380
880 LOCATE 20,16:COLOR2:PRINT"HIT RETURN KEY"
890 A=USR(0)
900 OUT 81,33:OUT 81,32
910 IF PEEK(NO)=0 GOTO 850
915 '
920 'game start
925 '
930 B=4:M=1
940 POKE SP,150:GOSUB 1190:GOSUB 1380
950 POKE OV,0:POKE &HB33B,1:POKE &HB33A,255
960 FOR I=0 TO 3:LOCATE 59+I*4,21:COLOR 7
970 IF B>I THEN PRINTB$ ELSE PRINTP$
980 NEXT
990 FOR I=0 TO 5:BEEP1:FOR J=0 TO 30:NEXT:BEEP0:FOR J=0 TO 30:NEXT:NEXT
1000 A=USR2(0)
1010 IF PEEK(NO) GOTO 1080
1015 '
1020 'ر
1025 '
1030 FOR I=0 TO 1
1040 OUT 81,33:FOR J=0 TO 400:NEXT
1050 OUT 81,32:FOR J=0 TO 400:NEXT
1060 NEXT:B=B+1:M=M+1:IF M>5 THEN 1140
1070 GOTO 940
1080 FOR I=0 TO 50:OUT 81,33:BEEP1:OUT 81,32:BEEP0:NEXT
1090 S=PEEK(SP)+20:IF S>140 THEN S=140
1100 POKE SP,S
1110 B=B-1:IF B>=0 GOTO 950
1115 '
1120 'game over
1125 '
1130 COLOR 2
1140 LOCATE 15,10:COLOR 5:PRINT"    "
1150 LOCATE 15,11:COLOR 1:PRINT"       "
1160 LOCATE 15,12:COLOR 4:PRINT"      "
1170 FOR K=0 TO 3000:IF INP(1)=127 GOTO 930
1180 NEXT:GOTO 850
1185 '
1190 '
1195 '
1200 COLOR 7,0,1:PRINT CHR$(12)
1210 FOR I=0 TO 25:PUT@A(0,I)-(1,I),W%:PUT@A(54,I)-(55,I),W%:NEXT
1220 LINE(116,3)-(155,99),PSET,3,B
1230 LOCATE 59,1 :PRINT"           
1240 LOCATE 59,2 :PRINT"            
1250 LOCATE 59,3 :PRINT"     
1260 LOCATE 59,4 :PRINT"         
1270 LOCATE 59,5 :PRINT"     ":COLOR5
1280 LOCATE 59,6 :PRINT"     ":COLOR7
1290 LOCATE 59,7 :PRINT"       
1300 LOCATE 59,8 :PRINT"      
1310 LOCATE 59,9 :PRINT"      ":COLOR5
1320 LOCATE 59,10:PRINT"      ":COLOR5
1330 LOCATE 60,12:PRINT"
1340 LOCATE 60,13:PRINT"   
1350 LOCATE 60,14:PRINT"   
1360 RETURN
1365 '
1370 'block
1375 '
1380 ON M GOSUB 1560,1570,1580,1590,1600
1390 COLOR4
1400 LOCATE 65,16:PRINTS$(INT(M/10))
1410 LOCATE 68,16:PRINTS$(M MOD 10)
1420 A=USR1(0):X=0
1430 FOR I=0 TO 13:READ A$
1440  FOR J=0 TO 12:A=VAL(MID$(A$,J+1,1)):K=1
1450   IF A=0 GOTO 1500
1460   IF A=5 THEN K=3 ELSE IF A=6 THEN K=255:GOTO 1480
1470   X=X+1
1480   POKE &HB400+J+I*13,K
1490   LINE(J*8+4,I*4)-(J*8+10,I*4+2),PSET,A,BF
1500  NEXT
1510 NEXT
1520 FOR I=&HB340 TO &HB370 STEP3:POKE I,0:NEXT
1530 FOR I=&HB33C TO &HB33F:POKE I,0:NEXT:POKE &HB334,0
1540 POKE NO,X:RETURN
1545 '
1550 'data table
1555 '
1560 RESTORE 2000:RETURN
1570 RESTORE 3000:RETURN
1580 RESTORE 4000:RETURN
1590 RESTORE 5000:RETURN
1600 RESTORE 6000:RETURN
2000 '-----------------
2010 DATA"
2020 DATA"
2030 DATA"1111111111111
2040 DATA"
2050 DATA"3333333333333
2060 DATA"
2070 DATA"7777777777777
2080 DATA"
2090 DATA"4444444444444
2100 DATA"
2110 DATA"
2120 DATA"
2130 DATA"
2140 DATA"
3000 '-----------------
3010 DATA"
3020 DATA" 6  6   5 5
3030 DATA" 66 6654444 5
3040 DATA" 6 6  444444
3050 DATA" 444444466445
3060 DATA" 1414444 644
3070 DATA"4444466 66445
3080 DATA" 22446  644
3090 DATA" 224 6 6444
3100 DATA"444666 644
3110 DATA"    4   64444
3120 DATA"         444
3130 DATA"
3140 DATA"
4000 '-----------------
4010 DATA"
4020 DATA"     777
4030 DATA"    76667
4040 DATA"   76 6 67
4050 DATA"   7666667
4060 DATA"    71117
4070 DATA"   7766677
4080 DATA"  767767767
4090 DATA" 76776667767
4100 DATA" 76777677767
4110 DATA"    76667
4120 DATA"   7677767
4130 DATA"   767 767
4140 DATA"   767 767
5000 '-----------------
5010 DATA"5555555555555
5020 DATA"5511111111155
5030 DATA"5111666661165
5040 DATA"5116555551165
5050 DATA"5116555551165
5060 DATA"5116555551165
5070 DATA"5555551111165
5080 DATA"5555511166655
5090 DATA"5555511655555
5100 DATA"5555566655555
5110 DATA"5555555555555
5120 DATA"5555511655555
5130 DATA"5555566655555
5140 DATA"5555555555555
6000 '-----------------
6010 DATA"
6020 DATA" 11111111117
6030 DATA"1111111111117
6040 DATA"111 6   6 111
6050 DATA"111 61116 111
6060 DATA"   6611166
6070 DATA"  661111166
6080 DATA"  611535116
6090 DATA"  613555316
6100 DATA"  615535516
6110 DATA"  613554316
6120 DATA"  611535416
6130 DATA"  551111155
6140 DATA"   5555555
