Ok, here's the code, although it is kinda big, and i don't know how to put it in one of those scrolling box things
10 VDU 5
20 R%=0:NOW%=0:NEX%=RND(7)
30 PROC_PIECE
40 S%=0:LVL%=14:LS%=0
50 C%=0:HIT%=FALSE
60 X%=44:Z%=52
70 *FX 4,1
80 *FX 12,1
90 *FX 11,15
100 *GSCALE1
110 *REFRESH OFF
120 GCOL0:VDU5:CLG:CLS:MOVE 1,20:PRINT " "
130 RECTANGLE 0,0,95,3:RECTANGLE 24,0,3,64:RECTANGLE 68,0,3,64
150 PROC_NEW
160 GCOL4,0
170 REPEAT
180 PROC_DISP
190 *REFRESH
200 PROC_DISP
210 C%=C%+1
220 A%=0
230 IF C% MOD LVL% = 0:Z%=Z%-4
240 KEY%=INKEY(0)
250 IF KEY%=136:X%=X%-4
260 IF KEY%=137:X%=X%+4
270 IF INKEY(-42):C%=-1
280 IF KEY%=139:PROC_ROTL
290 PROC_HIT
300 UNTIL HIT% OR KEY%=27 OR KEY%=127
310 IF KEY%=136:X%=X%+4
320 IF KEY%=139 PROC_ROTR
330 IF KEY%=137:X%=X%-4
340 PROC_HIT
350 IF HIT% Z%=Z%+4:PROC_DISP:PROC_LINE:PROC_NEW
360 IF KEY%=27 PROC_END
370 IF KEY%=127 PROC_PAUSE
380 GOTO 160
390 DEFPROC_PAUSE
400 RECTANGLE FILL 0,0,96,64:*REFRESH
410 WAIT20
420 REPEAT UNTIL INKEY(1)>0
430 RECTANGLE FILL 0,0,96,64
440 ENDPROC
450 DEFPROC_NEW //Creates a new piece and updates the screen
460 NOW%=NEX%:NEX%=RND(7)
470 X%=44:Z%=56
480 R%=NOW%
490 PROC_PIECE:PROC_HIT
500 IF HIT% PROC_END
510 GCOLLVL%:RECTANGLE FILL 0,4,23,57:RECTANGLE FILL 72,4,23,57:GCOL15:RECTANGLE FILL 0,20,23,24:GCOL4,0
520 GCOL15:RECTANGLE FILL 0,57,23,9:RECTANGLE FILL 72,57,23,9:GCOL0:MOVE 1,62:PRINT ;S%:MOVE 73,62:PRINT ;LS%:GCOL4,0
530 R%=NEX%:X%=8:Z%=30:PROC_PIECE:PROC_DISP
540 R%=NOW%:PROC_PIECE
550 X%=44:Z%=56
560 ENDPROC
570 DEFPROC_DISP //Displays the current piece at location X,Z
580 RECTANGLE FILL D%+X%,I%+Z%,3
590 RECTANGLE FILL E%+X%,J%+Z%,3
600 RECTANGLE FILL F%+X%,K%+Z%,3
610 RECTANGLE FILL G%+X%,L%+Z%,3
620 ENDPROC
630 DEFPROC_HIT //Detects whether the current piece is hitting anything
640 HIT%= (POINT(D%+X%,I%+Z%)=0) OR (POINT(E%+X%,J%+Z%)=0) OR (POINT(F%+X%,K%+Z%)=0) OR (POINT(G%+X%,L%+Z%)=0)
650 ENDPROC
660 DEFPROC_ROTR //Rotates the piece right
670 B%=D%
680 D%=-I%
690 I%=B%
700 B%=E%
710 E%=-J%
720 J%=B%
730 B%=F%
740 F%=-K%
750 K%=B%
760 B%=G%
770 G%=-L%
780 L%=B%
790 ENDPROC
800 DEFPROC_ROTL Rotates the piece left
810 B%=-D%
820 D%=I%
830 I%=B%
840 B%=-E%
850 E%=J%
860 J%=B%
870 B%=-F%
880 F%=K%
890 K%=B%
900 B%=-G%
910 G%=L%
920 L%=B%
930 ENDPROC
940 DEFPROC_PIECE //creates a new piece based on R%
950 D%=0:E%=0:F%=0:G%=0:I%=0:J%=0:K%=0:L%=0
960 IF R%=1 I%=4:K%=-4:L%=-8
970 IF R%=2 D%=-4:F%=4:L%=4
980 IF R%=3 D%=-4:I%=-4:J%=-4:L%=4
990 IF R%=4 D%=-4:I%=4:J%=4:L%=-4
1000 IF R%=5 D%=-4:G%=4:K%=4:L%=4
1010 IF R%=6 D%=4:G%=-4:K%=4:L%=4
1020 IF R%=7 F%=4:G%=4:J%=4:L%=4
1030 ENDPROC
1040 DEFPROC_LINE //the beginning of the line checking algorithem
1050 LIN%=-20
1060 IF J%+Z%>LIN%:LIN%=J%+Z%
1070 IF I%+Z%>LIN%:LIN%=I%+Z%
1080 IF K%+Z%>LIN%:LIN%=K%+Z%
1090 IF L%+Z%>LIN%:LIN%=L%+Z%
1100 T%=0
1110 FOR G%=LIN% TO LIN%-16 STEP -4
1120 LIN%=G%:IF LIN%>0 PROC_CHECK
1130 NEXT
1140 S%=S%+(T%*5)^2
1150 LS%=LS%+T%
1160 LVL%=14.999-S%/500
1170 ENDPROC
1180 DEFPROC_CHECK //checks to see if the current line is full
1190 B%=0
1200 FOR F%=28 TO 64 STEP 4
1210 IF 0=POINT(F%,LIN%) B%=B%+1
1220 NEXT
1230 IF B%=10 PROC_REM:T%=T%+1
1240 ENDPROC
1250 DEFPROC_REM //removes a full line and shifts the rest of the screen down
1260 GCOL15:RECTANGLE FILL 28,LIN%,39,3:GCOL4,0
1270 REPEAT
1280 C%=0:LIN%=LIN%+4
1290 FOR F%=28 TO 64 STEP 4
1300 IF 0=POINT(F%,LIN%) C%=C%+1:RECTANGLE FILL F%,LIN%-4,3,7
1310 NEXT
1320 UNTIL C%=0
1330 ENDPROC
1340 DEFPROC_END //ends the program and re-sets all the variables
1350 GCOL0
1360 *FX4,0
1370 *FX11,30
1380 *FX12,10
1390 CLG:CLS
1400 *REFRESH ON
1410 VDU 4
I use a lot of RECTANGLE FILL methods to draw things