10 DIM CB(3),CM(3),MV$(6) 20 GOSUB 400:GOSUB 300 107 REM 108 REM MAIN LOOP 109 REM 110 AM=AM+1:IF AM>3 THEN AM=0 117 REM 118 REM SWITCH CHARACTER SETS 119 REM 120 POKE 53272,CM(AM):FOR K=0 TO 59:NEXT 127 REM 128 REM IS SHIFT, COMMODORE, OR CTRL PRESSED? 129 REM 130 IF PEEK(653)>0 THEN 200 190 GOTO 110 197 REM 198 REM ENDING ROUTINE 199 REM 200 POKE 808,237:POKE 648,4:POKE 53272,XX:POKE 56578,PEEK(56578)OR 3 210 POKE 56576,(PEEK(56576)AND 252)OR 3:PRINT "[154]":END 297 REM 298 REM SET UP SCREEN RANDOMLY 299 REM 300 MV$(0)="[156]A":MV$(1)="B":MV$(2)="C":MV$(3)="[144]D":MV$(4)="[129]E":MV$(5)="[149]F" 310 MV$(6)="[144]GH" 340 FOR I=0 TO 35:D=INT(RND(9)*24):R=2*INT(RND(9)*19):CC=INT(RND(9)*7) 350 PRINT "";:FOR J=0 TO D:PRINT "";:NEXT:PRINT TAB(R)MV$(CC)" ";:NEXT:RETURN 395 REM 396 REM VIDEO SET-UP ROUTINES 397 REM 398 REM SET VIDEO POINTERS 399 REM 400 VM=1:SM=6:FOR I=0 TO 3:CM(I)=I*2+8:NEXT:XX=PEEK(53272) 407 REM 408 REM SET STARTING ADDRESSES 409 REM 410 VB=16*1024*VM:SB=VB+1024*SM:FOR I=0 TO 3:CB(I)=CM(I)*1024+VB:NEXT 417 REM 418 REM POKE CHARACTER DATA INTO PLACE 419 REM 420 FOR I=0 TO 3:FOR J=CB(I)+8 TO CB(I)+71:READ A:POKE J,A:NEXT:NEXT 427 REM 428 REM SET UP BLANK CHARACTER 429 REM 430 FOR I=0 TO 3:FOR J=CB(I)+32*8 TO CB(I)+32*8+7:POKE J,0:NEXT:NEXT 437 REM 438 REM POKE NEW CHARACTER SET AND SCREEN MEMORY LOCATIONS 439 REM 440 SK=SM*16:POKE 648,SB/256 445 FOR I=0 TO 3:CM(I)=CM(I)+SK:NEXT:POKE 53272,CM(0) 447 REM 448 REM POKE NEW VIDEO BLOCK LOCATION 449 REM 450 POKE 56578,PEEK(56578)OR 3:POKE 56576,(PEEK(56576)AND 252)OR (3-VM) 457 REM 458 REM DISABLE SHIFT-COMMODORE AND RUN/STOP-RESTORE 459 REM 460 PRINT CHR$(8):POKE 808,234 490 PRINT "[147]":RETURN 997 REM 998 REM CHARACTER DATA 999 REM 1000 DATA 0,0,0,24,24,0,0,0 1010 DATA 124,254,146,238,254,124,0,0 1020 DATA 28,62,62,28,0,0,0,0 1030 DATA 56,64,128,128,128,128,192,192 1040 DATA 0,0,0,0,0,0,16,254 1050 DATA 0,64,64,255,255,2,2,0 1060 DATA 0,10,10,10,22,45,83,145 1070 DATA 0,80,80,80,104,172,202,137 1080 DATA 0,0,24,44,52,24,0,0 1090 DATA 124,254,146,238,254,84,124,0 1100 DATA 0,0,0,28,62,62,28,0 1110 DATA 0,0,0,128,128,128,67,63 1120 DATA 0,0,0,0,16,56,124,254 1130 DATA 2,7,14,158,121,112,224,64 1140 DATA 0,20,20,42,45,75,81,144 1150 DATA 0,40,40,84,180,210,138,9 1160 DATA 0,60,122,102,102,94,60,0 1170 DATA 124,254,146,238,254,84,40,124 1180 DATA 0,0,0,0,0,28,62,127 1190 DATA 3,3,1,1,1,1,2,28 1200 DATA 0,0,16,16,56,56,124,254 1210 DATA 24,30,24,24,24,24,120,24 1220 DATA 20,42,45,43,81,80,80,144 1230 DATA 40,84,180,212,138,10,10,9 1240 DATA 126,191,195,203,211,195,253,126 1250 DATA 124,254,146,238,254,84,124,0 1260 DATA 0,0,0,28,62,62,28,0 1270 DATA 252,194,1,01,1,0,0,0 1280 DATA 16,16,56,56,124,124,254,254 1290 DATA 72,240,112,56,28,14,15,18 1300 DATA 0,20,20,42,45,75,81,144 1310 DATA 0,40,40,84,180,210,138,9