MediaWiki:Sitenotice:
2024-03-02: The wiki ran out of disk space, so things were not working. This has been resolved by adding another 5GB of quota ;-) Thanks to Tim Lindner for reporting the issues. 2020-05-17: If a page gives you an error about some revision not being found, just EDIT the page and the old page should appear in the editor. If it does, just SAVE that and the page should be restored. OS-9 Al (talk) 12:22, 17 May 2020 (CDT)

WORDSMC

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Jump to navigation Jump to search
100 DIM A(480*5): A(480*5)=0
110 CLS: R=0: C=0
120 CC=PEEK(16384+R*32+C)
130 A$=INKEY$: IF A$<>"" THEN 160
140 IF K=0 THEN POKE 16384+R*32+C,128: K=1: GOTO 130
130 POKE 16384+R*32+C,255: K=0: GOTO 130
160 POKE 16384+R*32+C,CC:A=ASC(A$)
170 IF A=94 THEN 330
180 IF A=142 THEN 400
190 IF (A<32) OR (A>127) THEN 250
200 IF A=64 THEN POKE 16384+R*32+C,96; GOTO 270
210 IF (A>31) AND (A<65) THEN A=A+64
220 POKE 16384+R*32+C,A
230 C=C+1: IF C=32 THEN C=0: R=R+1: IF R=15 THEN R=0
240 GOTO 120
250 IF (A<8) OR (A>13) THEN 120
260 ON A-7 GOTO 270,290,310,120,120,350
270 C=C-1: IF C=-1 THEN C=31: R=R-1: IF R=-1 THEN R=14
280 GOTO 120
290 C=C+1: IF C=32 THEN C=0: R=R+1: IF R=15 THEN R=0
300 GOTO 120
310 R=R+1: IF R=15 THEN R=0
320 GOTO 120
330 R=R-1: IF R=-1 THEN R=14
340 GOTO 120
350 FOR J=1 TO 32-C
360 POKE 16384+R*32+C,223
370 C=C+1: NEXT J
380 R=R+1: C=0: IF R=15 THEN R=0
390 GOTO 120
400 PRINT@48O,"FUNCTION?";
410 A$=INKEY$: IF A$="" THEN 410
420 PRINT @490,A$;
430 IF A$="W" THEN 720
440 IF A$="L" THEN 760
450 IF A$="P" THEN 650
460 IF A$="S" THEN 560
470 IF A$<>"G" THEN 800
480 A$=INKEY$: IF A$="" THEN 480
490 PRINT @491,A$;:IF (A$<"1") OR (A$>"5") THEN 800
500 B=(VAL(A$)-1)*480
510 J=0
520 FOR I=B TO B+479
530 POKE 16384+J,A(I)
540 J=J+1: NEXT I
550 GOTO 800
560 A$=INKEY$: IF A$="" THEN 560
570 PRINT @491,A$;:IF (A$<"1") OR (A$>"5") THEN 800
580 B=(VAL(A$)-1)*480
590 J=0
600 FOR I=B TO B+479
610 A(I)=PEEK(16384+J)
620 J=J+1: NEXT I
630 A(480*5)=I-1
640 GOTO 800
650 FOR I=0 TO A(480*S)
660 IF A(I)=223 THEN LRINT: I=INT(I/32)*32+31: GOTO 690
670 B=A(I): IF B>90 THEN B=A(I)-64
680 LPRINT CHR$(B);
690 A$=INKEY$: IF A$<>"" THEN 800
700 NEXT I
710 GOTO 800
720 REM CASSETTE OUTPUT
730 CLS
740 CSAVE*A,"SCREEN"
750 A$="1": GOTO 500
760 REM CASSETTE INPUT
770 CLS
780 CLOAD*A,"SCREEN"
790 A$="1": GOTO 500
800 PRINT @480,"              ";:GOTO 120