REM KID.BAS -- JUST ECHOES KEYBOARD ENTRY TO CONSOLE, BUT IN LARGE FORM. REM DESIGNED TO AMUSE A YOUNG CHILD. BORING FOR ADULTS. REM REM WRITTEN IN SBASIC BY MIKE KRUGER OCT 1983 REM VAR R,C,RE,CE,I,W,J =INTEGER VAR K,E,Q =CHAR DIM STRING:10; P(6) REM E AND Q ARE ESCAPE AND EQUALS E=1BH Q=3DH REM REM THE CHECK.WIDTH PROCEDURE CHECKS THAT THERE IS ENOUGH ROOM TO REM PRINT THE NEXT CHARACTER ON THE SCREEN GIVEN CURRENT CURSOR REM ASSIGNMENTS. SCREEN RUNS FROM 0,0 (UPPER LEFT) T0 23,79. REM LETTERS ARE NOT ALL THE SAME WIDTH. REM PROCEDURE CHECK.WIDTH VAR BLK=STRING:20 VAR IP = INTEGER REM IF (C+W) > 79 OR (K=0DH) THEN BEGIN BLK=" " C=0 R=R+8 IF R > 16 THEN R=0 PRINT E;Q;CHR$(R+32);CHR$(C+32); FOR I = 1 TO 7 PRINT BLK;BLK;BLK;BLK; NEXT I PRINT E;Q;CHR$(R+32);CHR$(C+32); END IF REM HOUSEKEEPING: RE, CE WILL BE COORDINATES FOR THIS ENTRY; REM R, C FOR NEXT ENTRY RE=R CE=C REM THE "2" IN THE FOLLOWING EQUATION ALLOWS FOR 2 BLANK COLUMNS BETWEEN. C=C+W+2 END PROCEDURE REM PROCEDURE OUTCHAR REM OUTPUTS THE CHARACTER TO THE SCREEN PRINT E;Q;CHR$(RE+0+32);CHR$(CE+32);P(0); E;Q;CHR$(RE+1+32);CHR$(CE+32);P(1); E;Q;CHR$(RE+2+32);CHR$(CE+32);P(2); E;Q;CHR$(RE+3+32);CHR$(CE+32);P(3); E;Q;CHR$(RE+4+32);CHR$(CE+32);P(4); E;Q;CHR$(RE+5+32);CHR$(CE+32);P(5); E;Q;CHR$(RE+6+32);CHR$(CE+32);P(6); E;Q;CHR$(R+32);CHR$(C+32); END PROCEDURE REM PROCEDURE CLEAR.P VAR RR=INTEGER FOR RR=0 TO 6 P(RR)="" NEXT RR END PROCEDURE REM ----------------------------------------------------------------- PRINT CHR$(26);"Press Any Key" REM MAIN LOOP OF PROGRAM. NOTE: MUST HIT RESET TO GET OUT 0LOOP INPUT3 K REM CHANGE TO UPPER CASE IF (K>60H) AND (K<7BH) THEN K=K-20H REM CASE K OF ' ' : BEGIN W=5 CHECK.WIDTH PRINT E;Q;CHR$(R+32);CHR$(C+32); END SPACE 0DH : BEGIN W=0 CHECK.WIDTH PRINT E;Q;CHR$(R+32);CHR$(C+32); END CR 09H : BEGIN PRINT CHR$(26); FOR I=1 TO 24 PRINT"ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ"; PRINT"ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ" NEXT I END TAB '\' : BEGIN PRINT CHR$(26);CHR$(07); R=0 C=0 END '[' : PRINT CHR$(07); ']' : PRINT CHR$(07); ';' : PRINT CHR$(07); ':' : PRINT CHR$(07); '`' : PRINT CHR$(07); '=' : PRINT CHR$(07); '-' : PRINT CHR$(07); '' : PRINT CHR$(07); '!' : PRINT CHR$(07); '@' : PRINT CHR$(07); '#' : PRINT CHR$(07); '$' : PRINT CHR$(07); '%' : PRINT CHR$(07); '^' : PRINT CHR$(07); '&' : PRINT CHR$(07); '\' : PRINT CHR$(07); 'A' : BEGIN W=6 CHECK.WIDTH P(0)=" ŸŸ " P(1)=" Ÿ Ÿ " P(2)="Ÿ Ÿ" P(3)="Ÿ Ÿ" P(4)="ŸŸŸŸŸŸ" P(5)="Ÿ Ÿ" P(6)="Ÿ Ÿ" OUTCHAR REM END A 'B' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸ " P(1)=" Ÿ Ÿ" P(2)=" Ÿ Ÿ" P(3)=" ŸŸŸ " P(4)=" Ÿ Ÿ" P(5)=" Ÿ Ÿ" P(6)="ŸŸŸŸ " REM OUTCHAR END B 'C' : BEGIN W=5 CHECK.WIDTH P(0)=" ŸŸŸ " P(1)="Ÿ Ÿ" P(2)="Ÿ " P(3)="Ÿ " P(4)="Ÿ " P(5)="Ÿ Ÿ" P(6)=" ŸŸŸ " OUTCHAR REM END C 'D' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸ " P(1)=" Ÿ Ÿ" P(2)=" Ÿ Ÿ" P(3)=" Ÿ Ÿ" P(4)=" Ÿ Ÿ" P(5)=" Ÿ Ÿ" P(6)="ŸŸŸŸ " OUTCHAR REM END D 'E' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸŸ" P(1)="Ÿ " P(2)="Ÿ " P(3)="ŸŸŸŸ " P(4)="Ÿ " P(5)="Ÿ " P(6)="ŸŸŸŸŸ" OUTCHAR REM END E 'F' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸŸ" P(1)="Ÿ " P(2)="Ÿ " P(3)="ŸŸŸŸ " P(4)="Ÿ " P(5)="Ÿ " P(6)="Ÿ " OUTCHAR REM END F 'G' : BEGIN W=5 CHECK.WIDTH P(0)=" ŸŸŸ " P(1)="Ÿ Ÿ" P(2)="Ÿ " P(3)="Ÿ ŸŸŸ" P(4)="Ÿ Ÿ" P(5)="Ÿ Ÿ" P(6)=" ŸŸŸ " OUTCHAR REM END G 'H' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="Ÿ Ÿ" P(2)="Ÿ Ÿ" P(3)="ŸŸŸŸŸ" P(4)="Ÿ Ÿ" P(5)="Ÿ Ÿ" P(6)="Ÿ Ÿ" OUTCHAR REM END H 'I' : BEGIN W=3 CHECK.WIDTH P(0)="ŸŸŸ" P(1)=" Ÿ " P(2)=" Ÿ " P(3)=" Ÿ " P(4)=" Ÿ " P(5)=" Ÿ " P(6)="ŸŸŸ" OUTCHAR REM END I 'J' : BEGIN W=5 CHECK.WIDTH P(0)=" ŸŸŸ" P(1)=" Ÿ " P(2)=" Ÿ " P(3)=" Ÿ " P(4)="Ÿ Ÿ " P(5)="Ÿ Ÿ " P(6)=" ŸŸ " OUTCHAR REM END J 'K' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="Ÿ Ÿ " P(2)="Ÿ Ÿ " P(3)="ŸŸ " P(4)="Ÿ Ÿ " P(5)="Ÿ Ÿ " P(6)="Ÿ Ÿ" OUTCHAR REM END K 'L' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ " P(1)="Ÿ " P(2)="Ÿ " P(3)="Ÿ " P(4)="Ÿ " P(5)="Ÿ " P(6)="ŸŸŸŸŸ" OUTCHAR REM END L 'M' : BEGIN W=6 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="ŸŸ ŸŸ" P(2)="Ÿ ŸŸ Ÿ" P(3)="Ÿ ŸŸ Ÿ" P(4)="Ÿ Ÿ" P(5)="Ÿ Ÿ" P(6)="Ÿ Ÿ" OUTCHAR REM END M 'N' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="ŸŸ Ÿ" P(2)="Ÿ Ÿ Ÿ" P(3)="Ÿ Ÿ Ÿ" P(4)="Ÿ Ÿ Ÿ" P(5)="Ÿ ŸŸ" P(6)="Ÿ Ÿ" OUTCHAR REM END N 'O' : BEGIN W=5 CHECK.WIDTH P(0)=" ŸŸŸ " P(1)="Ÿ Ÿ" P(2)="Ÿ Ÿ" P(3)="Ÿ Ÿ" P(4)="Ÿ Ÿ" P(5)="Ÿ Ÿ" P(6)=" ŸŸŸ " OUTCHAR REM END O 'P' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸ " P(1)="Ÿ Ÿ" P(2)="Ÿ Ÿ" P(3)="ŸŸŸŸ " P(4)="Ÿ " P(5)="Ÿ " P(6)="Ÿ " OUTCHAR REM END P 'Q' : BEGIN W=6 CHECK.WIDTH P(0)=" ŸŸŸ " P(1)="Ÿ Ÿ " P(2)="Ÿ Ÿ " P(3)="Ÿ Ÿ " P(4)="Ÿ Ÿ Ÿ " P(5)="Ÿ ŸŸ " P(6)=" ŸŸŸ Ÿ" OUTCHAR REM END Q 'S' : BEGIN W=5 CHECK.WIDTH P(0)=" ŸŸŸ " P(1)="Ÿ Ÿ" P(2)="Ÿ " P(3)=" ŸŸŸ " P(4)=" Ÿ" P(5)="Ÿ Ÿ" P(6)=" ŸŸŸ " OUTCHAR REM END S 'T' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸŸ" P(1)=" Ÿ " P(2)=" Ÿ " P(3)=" Ÿ " P(4)=" Ÿ " P(5)=" Ÿ " P(6)=" Ÿ " OUTCHAR REM END T 'U' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="Ÿ Ÿ" P(2)="Ÿ Ÿ" P(3)="Ÿ Ÿ" P(4)="Ÿ Ÿ" P(5)="Ÿ Ÿ" P(6)=" ŸŸŸ " OUTCHAR REM END U 'V' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="Ÿ Ÿ" P(2)="Ÿ Ÿ" P(3)="Ÿ Ÿ" P(4)="Ÿ Ÿ" P(5)=" Ÿ Ÿ " P(6)=" Ÿ " OUTCHAR REM END V 'R' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸ " P(1)="Ÿ Ÿ" P(2)="Ÿ Ÿ" P(3)="ŸŸŸŸ " P(4)="Ÿ Ÿ " P(5)="Ÿ Ÿ " P(6)="Ÿ Ÿ" OUTCHAR REM END R 'W' : BEGIN W=8 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="Ÿ Ÿ" P(2)="Ÿ ƒŸ" P(3)="Ÿ Ÿ Ÿ" P(4)="Ÿ Ÿ Ÿ" P(5)=" Ÿ Ÿ Ÿ Ÿ " P(6)=" Ÿ Ÿ " OUTCHAR REM END W 'X' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="Ÿ Ÿ" P(2)=" Ÿ Ÿ " P(3)=" Ÿ " P(4)=" Ÿ Ÿ " P(5)="Ÿ Ÿ" P(6)="Ÿ Ÿ" OUTCHAR REM END X 'Y' : BEGIN W=5 CHECK.WIDTH P(0)="Ÿ Ÿ" P(1)="Ÿ Ÿ" P(2)="Ÿ Ÿ" P(3)=" Ÿ Ÿ " P(4)=" Ÿ " P(5)=" Ÿ " P(6)=" Ÿ " OUTCHAR REM END Y 'Z' : BEGIN W=5 CHECK.WIDTH P(0)="ŸŸŸŸŸ" P(1)=" Ÿ" P(2)=" Ÿ " P(3)=" Ÿ " P(4)=" Ÿ " P(5)="Ÿ " P(6)="ŸŸŸŸŸ" OUTCHAR REM END Z '?' : BEGIN W=5 CHECK.WIDTH P(0)=" ŸŸŸ " P(1)="Ÿ Ÿ" P(2)=" Ÿ" P(3)=" Ÿ " P(4)=" Ÿ " P(5)=" " P(6)=" Ÿ " OUTCHAR REM END QUESTIONMARK '.' : BEGIN W=2 CHECK.WIDTH CLEAR.P P(5)="ŸŸ" P(6)="ŸŸ" OUTCHAR END PERIOD ',' : BEGIN W=2 CHECK.WIDTH CLEAR.P P(3)="ŸŸ" P(4)="ŸŸ" P(5)=" Ÿ" P(6)="Ÿ " OUTCHAR END COMMA 1BH : BEGIN I=1 REPEAT BEGIN FOR J=1 TO I PRINT "Ÿ"; NEXT J PRINT I=I+1 END UNTIL I=79 REPEAT BEGIN FOR J=1 TO I PRINT "ÿ"; NEXT J PRINT I=I-1 END UNTIL I=0 END ESCAPE END GO TO 0LOOP