Jump to content
IGNORED

Book: Basic programs for small computers


oddemann

Recommended Posts

Link to BOOK!

I will add the book in one post only, so that under the "book" the respons will be. Not spred out on many different pages. Is that OK?

In the begynning I might jump around, as with this start!
Program 2-3. Roman Numerals - TI-99/4; TI-99/4A
110 FOR I=1 TO 9
120 READ H$(I),T$(I),S$(I)
130 NEXT I
140 DATA C,X,I,CC,XX,II,CCC,XXX,III,CD,XL,IV,D,L,V
150 DATA DC,LX,VI,DCC,LXX,VII,DCCC,LXXX,VIII,CM,XC,IX
160 CALL CLEAR
170 R$=""
175 RANDOMIZE
180 N=INT(1999*RND)+1
190 NN=N
200 IF N<1000 THEN 230
210 R$="M"
220 N=N-1000
230 IF N<100 THEN 270
240 NR=INT(N/100)
250 R$=R$&H$(NR)
260 N=N-NR*100
270 IF N<10 THEN 310
280 NR=INT(N/10)
290 R$=R$&T$(NR)
300 N=N-NR*10
310 IF N=0 THEN 330
320 R$=R$&S$(N)
330 PRINT "GIVEN THE ROMAN NUMERAL"
340 PRINT R$
350 PRINT :"WHAT IS THE CORRESPONDING"
360 PRINT "NUMBER?"
370 INPUT ANS
380 PRINT
390 IF ANS=NN THEN 430
400 PRINT "THE NUMBER IS";NN
410 INPUT "PRESS <ENTER>":ES
420 GOTO 160
430 PRINT "CORRECT I"
440 PRINT
450 PRINT "ANOTHER PROBLEM?"
460 PRINT "(Y/N)"
470 CALL KEY(0,K,S)
480 IF K=89 THEN 160
490 IF K<>78 THEN 470
500 END

OK!

Program 4-3. Graphics Demo - TI-99/4A
110 CALL CLEAR
120 PRINT "PRESS ANY KEY TO STOP."
130 FOR C=1 TO 16
140 CALL COLOR(C,C,C)
150 NEXT C
160 RANDOMIZE
170 CALL SOUND(-50,INT(1600*RND+110),2)
180 CALL HCHAR(INT(24*RND+1),INT(32*RND+1),8*INT(16*RND+1)+31)
190 CALL KEY(0,K,S)
200 IF S<1 THEN 160
210 END
Program 4-7. Doodle - TI-99/4A
110 CALL CLEAR
120 PRINT "PRESS ARROW KEYS TO DRAW."
130 PRINT ::"PRESS THE SPACE BAR"::"TO CHANGE COLO ARS "
140 PRINT :::"PRESS <ENTER> TO START."
150 CALL KEY(0,K,S)
160 IF K<>13 THEN 150
170 CALL CLEAR
180 FOR C=1 TO 16
190 CALL COLOR(C,C,C)
200 NEXT C
210 X=12
220 Y=15
230 C=16
240 R=31+8*C
250 CALL HCHAR(X,Y,
260 CALL HCHAR(X,Y,R)
270 CALL KEY(0,K,S)
280 IF K<>69 THEN 320
290 DX=-1
300 DY=0 tms
310 GOTO 490
320 IF K<>68 THEN 360
330 DX=0
340 DY=1
350 GOTO 490
360 IF K<>88 THEN 400
370 DX=1
380 DY=0
390 GOTO 490
400 IF K<>83 THEN 440
410 DX=0
420 DY=-1
430 GOTO 490
440 IF K<>32 THEN 250
450 C=C-1
460 IF C>0 THEN 240
470 C=16
480 GOTO 240
490 X=X+DX
500 Y=Y+DY
510 X=INT(24*((X-1)/24-INT((X-1)/24)))+1
520 Y=INT(32*((Y-1)/32-INT((Y-1)/32)))+1
530 GOTO 250
540 END
Program 4-10. Color Code - TI-99/4A
100 CALL CLEAR
110 PRINT TAB(7);"COLOR CODE"
120 CALL CHAR(93,"3C7EFFFFFFFF7E3C")
130 PRINT ::::"GUESS THE CORRECT SEQUENCE"
140 PRINT "OF FOUR COLORS."
150 CALL CHAR(120,"3C7EFFFFFFFF7E3C")
160 PRINT :"GUESS BY PRESSING THE"
170 PRINT "COLOR NUMBERS."
180 CALL COLOR(12,16,1)
190 PRINT :::CHR$(93);" RIGHT COLOR AND POSITION"
200 PRINT :CHR$(120);" RIGHT COLOR ONLY"
210 FOR I=1 TO 3
220 CALL CHAR((11+I)*8,"0")
230 CALL CHAR((11+I)*8+1,"FFFFFFFFFFFFFFFF")
240 NEXT I
250 FOR I=1 TO 6
260 READ C(I)
270 NEXT I
280 DATA 96,97,104,105,112,113
290 CALL COLOR(9,3,16)
300 CALL COLOR(10,5,12)
310 CALL COLOR(11,7,14)
320 CALL CHAR(92,"FFFFFFFFFFFFFFFFF")
330 PRINT :::"PRESS ANY KEY TO START.";
340 CALL KEY(0,K,S)
350 IF S<1 THEN 340
360 CALL CLEAR
370 FOR I=9 TO 17
380 CALL VCHAR(4,I,92,20)
390 NEXT I
400 FOR I=1 TO 4
410 RANDOMIZE
420 A(I)=INT(RND*6+1)
430 NEXT I
440 FOR I=1 TO 6
450 CALL HCHAR(1,3*I-1,48+I)
460 CALL HCHAR(1,3*I,C(I))
470 NEXT I
480 FOR I=1 TO 7
490 CALL HCHAR(1,21+I,ASC(SEG$("0-ERASE",I,1)))
500 NEXT I
510 I=0
520 I=I+1
530 IF I>9 THEN 930
540 IA=3+2*I
550 CALL HCHAR(IA,8,48+I)
560 FOR J=1 TO 4
570 JA=8+2*J
580 CALL SOUND(100,1497,2)
590 CALL KEY(0,K,S)
600 CALL HCHAR(IA,JA,92)
610 CALL HCHAR(IA,JA,32)
620 IF S<1 THEN 590
630 IF (K>47)*(K<55)<>1 THEN 590
640 IF K<>48 THEN 690
650 FOR K=J TO 1 STEP -1
660 CALL HCHAR(IA,8+K*2,92)
670 NEXT K
680 GOTO 560
690 B(J)=K-48
700 CALL HCHAR(IA,JA,C(K-48))
710 NEXT J
720 L=1
730 FOR J=1 TO 4
740 D(J)=A(J)
750 IF A(J)<>B(J)THEN 800
760 CALL HCHAR(IA,21+L,93)
770 B(J)=0
780 D(J)=8
790 L=L+1
800 NEXT J
810 IF L=5 THEN 990
820 FOR J=1 TO 4
830 FOR J1=1 TO 4
840 IF D(J)<>B(J1)THEN 900
850 CALL HCHAR(IA,21+L,120)
860 B(J1)=0
870 D(J)=8
880 L=L+1
890 IF L=5 THEN 520
900 NEXT J1
910 NEXT J
920 GOTO 520
930 CALL SOUND(150,330,2)
940 CALL SOUND(150,262,2)
950 FOR J=1 TO 4
960 CALL HCHAR(23,8+2*J,C(A(J)))
970 NEXT J
980 GOTO 1040
990 FOR J=1 TO 3
1000 CALL SOUND(100,262,2)
1010 CALL SOUND(100,330,2)
1020 CALL SOUND(100,392,2)
1030 NEXT J
1040 PRINT "TRY AGAIN? (Y/N)";
1050 CALL KEY(0,K,S)
1060 IF K=89 THEN 360
1070 IF K<>78 THEN 1050
1080 CALL CLEAR
1090 END
Program 4-14. Matching Shapes - TI-99/4A
110 DEF R=INT(12*RND+5)
120 GOTO 480
130 CALL VCHAR(X,Y,96,3)
140 CALL HCHAR(X+1,Y-1,96,3)
150 RETURN
160 FOR I=X TO X+2
170 CALL HCHAR(I,Y-1,104,3)
180 NEXT I
190 RETURN
200 CALL HCHAR(X,Y-1,113)
210 CALL VCHAR(X,Y,112,3)
220 CALL HCHAR(X,Y+1,114)
230 CALL HCHAR(X+1,Y-1,112,3)
240 CALL HCHAR(X+2,Y-1,116)
250 CALL HCHAR(X+2,Y+1,115)
260 RETURN
270 CALL HCHAR(X,Y-1,121)
280 CALL HCHAR(X+1,Y-1,120)
290 CALL HCHAR(X+1,Y,121)
300 CALL HCHAR(X+2,Y-1,120,2)
310 CALL HCHAR(X+2,Y+1,121)
320 RETURN
330 CALL VCHAR(X,Y,128,3)
340 CALL HCHAR(X,Y-1,129)
350 CALL HCHAR(X,Y+1,130)
360 CALL HCHAR(X+1,Y+1,131)
370 CALL HCHAR(X+2,Y+1,132)
380 CALL HCHAR(X+2,Y-1,133)
390 CALL HCHAR(X+1,Y-1,134)
400 RETURN
410 CALL HCHAR(X,Y,137)
420 CALL HCHAR(X+1,Y-1,138)
430 CALL VCHAR(X+1,Y,136,2)
440 CALL HCHAR(X+1,Y+1,139)
450 CALL HCHAR(X+2,Y-1,140)
460 CALL HCHAR(X+2,Y+1,141)
470 RETURN
480 CALL CLEAR
490 PRINT TAB(7);"MATCHING SHAPES"::::::::::::
500 FOR C=96 TO 136 STEP 8
510 CALL CHAR(C,"FFFFFFFFFFFFFFFF")
520 NEXT C
530 FOR I=1 TO 16
540 READ C,C$
550 CALL CHAR(C,C$)
560 NEXT I
570 DATA 113,00030F1F3F3F7F7F,114,00C0F0F8FCFCFEFE,115,FEFEFCFCF8F0C,116,7F7F3F3F1F0F03,121,80C0E0F0F8FCFEFF
580 DATA 129,0101030307070F0F,130,8080C0C0E0E0F0F,131,F8F8FCFCFCFCF8F8,132,F0F0E0E0C0C0808,133
590 DATA 0F0F070703030101,134,1F1F3F3F3F3F1F1F,137,18183C3C7E7EFFFF,138,0101030307070F0F,139,8080C0C0E0E0F0F
600 DATA 140,1F1F3F3F7F7FFFFF,141,F8F8FCFCFEFEFFFF
610 FOR P=1 TO 10
620 CALL CLEAR
630 X=11
640 Y=15
650 RANDOMIZE
660 N=INT(6*RND+1)
670 CALL COLOR(8+N,R,1)
680 ON N GOSUB 130,160,200,270,330,410
690 D=INT(4*RND+1)
700 FOR M=1 TO 4
710 X=21
720 Y=7*M-1
730 IF MOD THEN 770
740 J(M)=N
750 ON N GOSUB 130,160,200,270,330,410
760 GOTO 860
770 E=INT(6*RND+1)
780 IF E=N THEN 770
790 IF M=1 THEN 830
800 FOR L=1 TO M-1
810 IF E=J(L)THEN 770
820 NEXT L
830 J(M)=E
840 CALL COLOR(8+E,R,1)
850 ON E GOSUB 130,160,200,270,330,410
860 NEXT M
870 PRINT TAB(4);"1      2      3      4"
880 PRINT ::"WHICH SHAPE MATCHES?":::
890 CALL SOUND(150,1497,2)
900 CALL KEY(0,K,S)
910 IF S<1 THEN 900
920 IF K=48+D THEN 960
930 CALL SOUND(100,330,2)
940 CALL SOUND(100,262,2)
950 GOTO 900
960 CALL HCHAR(19,7*D-2,42,3)
970 CALL HCHAR(21,3,32,20)
980 CALL SOUND(100,262,2)
990 CALL SOUND(100,330,2)
1000 CALL SOUND(100,392,2)
1010 CALL SOUND(200,523,2)
1020 NEXT P
1030 PRINT ::"TRY AGAIN? (Y/N)"
1040 CALL KEY(0,K,S)
1050 IF K=89 THEN 600
1060 IF K<>78 THEN 1040
1070 CALL CLEAR
1080 END

Problem!!! Stops in line 680

 

Program 4-18. Counting Shapes - TI-99/4A

110 GOTO 470
120 CALL VCHAR(X,Y,96,3)
130 CALL HCHAR(X+1,Y-1,96,3)
140 RETURN
150 FOR I=X TO X+2
160 CALL HCHAR(I,Y-1,104,3)
170 NEXT I
180 RETURN
190 CALL HCHAR(X,Y-1,113)
200 CALL VCHAR(X,Y,112,3)
210 CALL HCHAR(X,Y+1,114)
220 CALL HCHAR(X+1,Y-1,112,3)
230 CALL HCHAR(X+2,Y-1,116)
240 CALL HCHAR(X+2,Y+1,115)
250 RETURN
260 CALL HCHAR(X,Y-1,121)
270 CALL HCHAR(X+1,Y-1,120)
280 CALL HCHAR(X+1,Y,121)
290 CALL HCHAR(X+2,Y-1,120,2)
300 CALL HCHAR(X+2,Y+1,121)
310 RETURN
320 CALL VCHAR(X,Y,128,3)
330 CALL HCHAR(X,Y-1,129)
340 CALL HCHAR(X,Y+1,130)
350 CALL HCHAR(X+1,Y+1,131)
360 CALL HCHAR(X+2,Y+1,132)
370 CALL HCHAR(X+2,Y-1,133)
380 CALL HCHAR(X+1,Y-1,134)
390 RETURN
400 CALL HCHAR(X,Y,137)
410 CALL HCHAR(X+1,Y-1,138)
420 CALL VCHAR(X+1,Y,136,2)
430 CALL HCHAR(X+1,Y+1,139)
440 CALL HCHAR(X+2,Y-1,140)
450 CALL HCHAR(X+2,Y+1,141)
460 RETURN
470 CALL CLEAR
480 PRINT TAB(7);"COUNTING SHAPES":
490 FOR C=96 TO 136 STEP 8
500 CALL CHAR(C,"FFFFFFFFFFFFFFFF")
510 NEXT C
520 FOR I=1 TO 16
530 READ C,C$
540 CALL CHAR(C,C$)
550 NEXT I
560 DATA 113,00030F1F3F3F7F7F,114,00C0F0F8FCFCFEFE,115,FEFEFCFCF8F0C,116,7F7F3F3F1F0F03,121,80C0E0F0F8FCFEFF 
570 DATA 129,0101030307070F0F,130,8080C0C0E0E0F0F,131,F8F8FCFCFCFCF8F8,132,F0F0E0E0C0C0808,133
580 DATA 0F0F070703030101,134,1F1F3F3F3F3F1F1F,137,18183C3C7E7EFFFF,138,0101030307070F0F,139,8080C0C0E0E0F0F
590 DATA 140,1F1F3F3F7F7FFFFF,141,F8F8FCFCFEFEFFFF
600 FOR I=1 TO 9
610 READ X1(I),Y1(I)
620 NEXT I
630 DATA 8,5,9,11,7,17,10,23,14,7,13,16,14,28,19,11,18,22
640 FOR K=1 TO 10
650 CALL CLEAR
660 C=INT(12*RND+5)
670 N=INT(9*RND+1)
680 S=INT(6*RND+1)
690 CALL COLOR(S+8,C,1)
700 FOR L=1 TO N
710 X=X1(L)
720 Y=Y1(L)
730 ON S GOSUB 120,150,190,260,320,400
740 NEXT L
750 PRINT "HOW MANY OBJECTS?"
760 CALL SOUND(100,1497,2)
770 CALL KEY(0,KE,ST)
780 IF ST<1 THEN 770
790 CALL HCHAR(23,22,KE)
800 IF KE=48+N THEN 850
810 CALL SOUND(100,330,2)
820 CALL SOUND(100,262,2)
830 CALL HCHAR(23,22,32)
840 GOTO 760
850 CALL SOUND(100,262,2)
860 CALL SOUND(100,330,2)
870 CALL SOUND(100,392,2)
880 CALL SOUND(200,523,2)
890 NEXT K
900 CALL CLEAR
910 PRINT "TRY AGAIN? (Y/N)"
920 CALL KEY(0,KE,ST)
930 IF KE=89 THEN 640
940 IF KE<>78 THEN 920
950 CALL CLEAR
960 END
Program 4-21. Locating Points - TI-99/4A
100 DEF R(N)=INT(N*RND+1)
110 CALL CLEAR
120 PRINT "    *******************":"    *";TAB(23);"*":"    * LOCATING POINTS *"
130 PRINT "    *";TAB(23);"*":"    *******************"::::::
140 A$="1818181818181818"
150 B$="181818FFFF181818"
160 C$="000000FFFF"
170 FOR C=96 TO 112 STEP 8
180 CALL CHAR(C,A$)
190 CALL CHAR(C+1,B$)
200 CALL CHAR(C+2,C$)
210 NEXT C
220 CALL CHAR(120,"183C7EFFFF7E3C18")
230 CALL CHAR(128,"183C7EFFFF7E3C18")
240 CALL CHAR(129,"00000000030C30C")
250 CALL CHAR(130,"030C30C")
260 CALL CHAR(94,"00102828444482FE")
270 CALL COLOR(10,5,1)
280 CALL COLOR(11,10,1)
290 CALL COLOR(12,11,1)
300 CALL COLOR(13,7,1)
310 CALL CHAR(140,"1010101010101")
320 CALL CHAR(141,"000000FF")
330 CALL CHAR(142,"101010F")
340 CALL COLOR(14,13,1)
350 A$="* h h h h h h h"
360 B$="ajjijjijjijjijjijjijji"
370 C$="abbabbabbabbabbabbabbabb"
380 CALL CLEAR
390 CALL COLOR(2,2,1)
400 GOTO 610 **
410 CALL SOUND(100,330,2)
420 CALL SOUND(100,262,2)
430 RETURN
440 CALL SOUND(100,262,2)
450 CALL SOUND(100,330,2)
460 CALL SOUND(100,392,2)
470 CALL SOUND(200,523,2)
480 RETURN
490 CALL CLEAR
500 PRINT "    Y":"    ";A$:" ^     ";A$:"   4";B$:"    ";A$:"    ";A$:"   3";B$
510 PRINT "    ";A$:"    ";A$:"   2";B$
520 PRINT "    ";A$:"    ";A$:"   1";B$:"    ";A$:"    ";A$:"   0";C$
530 PRINT "    0 12 3 4 5 6 7":::
540 CALL HCHAR(20,31,88)
550 RETURN
560 PRINT TAB(16);"PRESS <ENTER>";
570 CALL KEY(0,K,S)
580 IF K<>13 THEN 570
590 CALL HCHAR(24,18,32,13)
600 RETURN
610 GOSUB 490
620 PRINT "THE LOCATION OF A POINT IS":"GIVEN BY ITS X-COORDINATE"
630 PRINT "AND Y-COORDINATE (X,Y)"
640 RANDOMIZE
650 X=R(5)
660 GOSUB 1790
670 GOSUB 1840
680 CALL HCHAR(Y1,X1+2,40)
690 CALL HCHAR(Y1,X1+3,48+X)
700 CALL HCHAR(Y1,X1+4,44)
710 GOSUB 1880
720 CALL HCHAR(Y1,X1+5,48+Y)
730 CALL HCHAR(Y1,X1+6,41)
740 PRINT :"WANT ANOTHER EXAMPLE? (Y/N)";
750 CALL KEY(0,K,S)
760 IF K=89 THEN 610
770 IF K<>78 THEN 750
780 CALL CLEAR
790 PRINT "YOU WILL BE SHOWN A POINT."::"PRESS THE NUMBER OF THE"
800 PRINT :"X-COORDINATE THEN THE"
810 PRINT :"NUMBER OF THE Y-COORDINATE.":::::::
820 GOSUB 560
830 CALL CLEAR
840 GOSUB 490
850 PRINT :::
860 RANDOMIZE
870 GOSUB 1780
880 CALL HCHAR(21,7,40)
890 CALL HCHAR(21,9,44)
900 CALL HCHAR(21,11,41)
910 CALL KEY(0,K,S)
920 CALL HCHAR(21,8,63)
930 CALL HCHAR(21,8,32)
940 IF S<1 THEN 910
950 CALL HCHAR(21,8,K)
960 X2=K
970 CALL KEY(0,K,S)
980 CALL HCHAR(21,10,63)
990 CALL HCHAR(21,10,32)
1000 IF S<1 THEN 970
1010 CALL HCHAR(21,10,K)
1020 Y2=K
1030 IF X2<>X+48 THEN 1100
1040 IF Y2<>Y+48 THEN 1100
1050 GOSUB 440
1060 PRINT "PRESS":"1 FOR SAME TYPE PROBLEM":"2 TO CONTINUE PROGRAM";
1070 CALL KEY(0,K,S)
1080 IF K=49 THEN 830
1090 IF K=50 THEN 1160 ELSE 1070
1100 GOSUB 410
1110 GOSUB 1840
1120 GOSUB 1880
1130 PRINT "THE CORRECT ANSWER IS (";STR$(X);",";STR$(Y);")"
1140 GOSUB 560
1150 GOTO 830
1160 CALL CLEAR
1170 PRINT "NOW YOU WILL BE GIVEN THE"::"COORDINAT"
1180 PRINT :"USE THE ARROW KEYS TO MOVE"::"THE POINT TO THE CORRECT"
1190 PRINT :"PLACE, THEN PRESS <ENTER>.":::::
1200 GOSUB 560
1210 CALL CLEAR
1220 GOSUB 490
1230 RANDOMIZE
1240 X=R(7)
1250 Y=R(4)
1260 X1=7+3*X
1270 Y1=17-3*Y
1280 PRINT :"PLOT (";STR$(X);",";STR$(Y);")"::
1290 C1=97
1300 A=17
1310 A1=A
1320 B=7
1330 B1=B
1340 CALL HCHAR(A,B,120)
1350 CALL KEY(0,K,S)
1360 IF S<1 THEN 1350
1370 IF K=13 THEN 1620
1380 IF K<>69 THEN 1430
1390 IF A=5 THEN 1350
1400 CALL GCHAR(A-3,B,C)
1410 A=A-3
1420 GOTO 1570
1430 IF K<>88 THEN 1480
1440 IF A=17 THEN 1350
1450 CALL GCHAR(A+3,B,C)
1460 A=A+3
1470 GOTO 1570
1480 IF K<>83 THEN 1530
1490 IF B=7 THEN 1350
1500 CALL GCHAR(A,B-3,C)
1510 B=B-3
1520 GOTO 1570
1530 IF K<>68 THEN 1350
1540 IF B=28 THEN 1350
1550 CALL GCHAR(A,B+3,C)
1560 B=B+3
1570 CALL HCHAR(A1,B1,C1)
1580 A1=A
1590 B1=B
1600 C1=C
1610 GOTO 1340
1620 CALL SOUND(150,1397,2)
1630 CALL GCHAR(Y1,X1,C)
1640 IF C=120 THEN 1710
1650 GOSUB 410
1660 CALL HCHAR(Y1,X1,128)
1670 GOSUB 1840
1680 GOSUB 1880
1690 GOSUB 560
1700 GOTO 1210
1710 GOSUB 440
1720 PRINT "PRESS":"1 FOR SAME TYPE PROBLEM": "2 TO END PROGRAM";
1730 CALL KEY(0,K,S)
1740 IF K=49 THEN 1210
1750 IF K<>50 THEN 1730
1760 CALL CLEAR
1770 STOP
1780 X=R(7)
1790 Y=R(4)
1800 X1=7+3*X
1810 Y1=17-3*Y
1820 CALL HCHAR(Y1,X1,128)
1830 RETURN
1840 FOR I=Y1+1 TO 17
1850 CALL HCHAR(I,X1,112)
1860 NEXT I
1870 RETURN
1880 FOR I=X1-1 TO 7 STEP -1
1890 CALL HCHAR(Y1,I,114)
1900 NEXT I
1910 RETURN
1920 END

BUG! But works!

 

 

Program 5-3. Musical Keyboard - TI-99/4A
110 DIM N(13,2),L$(2),M$(2)
120 CALL CLEAR
130 CALL SCREEN(
140 PRINT " ** MUSICAL KEYBOARD **":::::::::::
150 CALL CHAR(97,"0")
160 CALL CHAR(98,"FFFFFFFFFFFFFFFF")
170 CALL CHAR(99,"0101010101010101")
180 CALL CHAR(100,"808080808080808")
190 L$(1)="dabbabbacdabbabbabbacdabbabb" 
200 L$(2)="bbabbabbacdabbabbacdabbabbab"
210 M$(l)="dacdacdacdacdacdacdacdacdacd"
220 M$(2)="cdacdacdacdacdacdacdacdacdac"
230 CALL COLOR(9,2,16)
240 FOR C=1 TO 13
250 READ N(C,1),N(C,2)
260 NEXT C
270 DATA 67,262,68,294,69,330,70,349,71,392,65,440,66,494,67,523,68,587,69,659,70,698,71,784,65,880
280 R=1
290 GOSUB 750
300 PRINT ::"THE LETTER NAMES OF THE KEYS"::"ARE THE FIRST 7 LETTERS"::"OF THE ALPHABET."
310 DATA 67,68,69,70,71,65,66,67,68
320 FOR C=4 TO 28 STEP 3
330 READ G
340 CALL HCHAR(15,C,G)
350 NEXT C
360 PRINT :"THE KEYBOARD HAS GROUPS OF"::"TWO AND THREE BLACK KEYS."
370 GOSUB 870
380 GOSUB 750
390 PRINT :"YOU MAY REMEMBER THAT JUST"::"LEFT OF THE TWO BLACK KEYS"::"IS THE KEY CALLED ,C'.":
400 CALL HCHAR(14,4,67)
410 CALL HCHAR(14,25,67)
420 GOSUB 870
430 SC=0
440 FOR T=1 TO 10
450 F=0
460 RANDOMIZE
470 R=INT(2*RND+1)
480 X=INT(9*RND+1)
490 J=3*X+R
500 GOSUB 750
510 PRINT ::::TAB(;"NAME THE KEY"::::
520 IF R=1 THEN 540
530 X=X+4
540 CALL HCHAR(14,J,63)
550 CALL KEY(0,K,S)
560 CALL COLOR(4,16,16)
570 CALL COLOR(4,7,16)
580 IF S<1 THEN 550
590 IF K=N(X,1)THEN 630
600 CALL SOUND(400,-8,2)
610 F=1
620 GOTO 550
630 CALL HCHAR(14,J,K)
640 CALL SOUND(600,N(X,2),2)c
650 CALL SOUND(1,N(X,2),30)
660 IF F=1 THEN 680
670 SC=SC+1
680 NEXT T
690 CALL COLOR(4,2,1)
700 PRINT "SCORE";SC;"OUT OF 10"
710 PRINT ::"TRY AGAIN? (Y/N)"
720 CALL KEY(0,K,S)
730 IF K=89 THEN 430aq
740 IF K=78 THEN 910 ELSE 720
750 CALL CLEAR
760 FOR C=1 TO 12
770 PRINT L$(R)
780 IF R=2 THEN 800
790 CALL HCHAR(23,31,97)
800 NEXT C
810 FOR C=1 TO 3
820 PRINT M$(R)
830 IF R=2 THEN 850
840 CALL HCHAR(23,31,97)
850 NEXT C
860 RETURN
870 PRINT :"PRESS <ENTER>.";
880 CALL KEY(0,K,S)
890 IF K<>13 THEN 880
900 RETURN
910 CALL CLEAR
920 END
Bugs, works kinda!
Program 5-6. Treble Clef - TI-99/4A
110 DIM N(9,2)
120 CALL CLEAR
130 PRINT TAB(6);"** TREBLE CLEF **"::::::::::::
140 FOR C=1 TO 9
150 READ N(C,1),N(C,2)
160 NEXT C
170 DATA 70,698,69,659,68,587,67,523,66,494,65,440,71,392,70,349,69,330
180 FOR C=96 TO 131
190 READ C$
200 CALL CHAR(C,C$)
210 NEXT C
220 DATA 000000FF,0000384482828282,8282828282828282,848488FF889090A,0000000000010102,A0A0C0C0C040404
230 DATA 040810FF2040808,404040FF2020202,010204040810101,202020202020202,202040FF4040404,000000FF0304081
240 DATA 101010FF1010101,000000FF18040201,808080808080808,102020202040404,0808080808080808,C020201010080808
250 DATA 808080FF4040402,404040FF2020100C,040404FF04040404,2020101008040403,0202020202010101,0808101020408
260 DATA 804038FF,010101FF01010101,030C30FF,0101010101010101,0101010111110E,00000000000F30C,0000000000F00C03
270 DATA 0102020404040201,708808304040004,804040202020408,8060100F,010608F
280 L$="''''''''''''''''''''''"
290 GOSUB 820
300 PRINT :"THINK OF THE WORD 'FACE' FOR"::"THE NOTE NAMES ON SPACES."::
310 CALL HCHAR(14,14,70)
320 CALL HCHAR(12,17,65)
330 CALL HCHAR(10,20,67)
340 CALL HCHAR(8,23,69)
350 GOSUB 870
360 GOSUB 820
370 PRINT :"MEMORIZE THIS PHRASE TO HELP"::"LEARN LINE NOTES E G B D F."::
380 DATA 15,69,15,86,15,69,15,82,15,89,13,71,13,79,13,79,13,68,11,66,11,79,11,89,9,68,9,79
390 DATA 9,69,9,83,7,70,7,73,7,78,7,69
400 FOR I=9 TO 28
410 READ C,G
420 CALL HCHAR(C,I,G)
430 NEXT I
440 GOSUB 870
450 GOSUB 820
460 PRINT TAB(;"NAME THE NOTE":::::
470 FOR T=1 TO 10
480 RANDOMIZE
490 X=INT(9*PND+1)
500 J=5+X
510 CALL HCHAR(J,20,125)
520 CALL HCHAR(J,21,126)
530 CALL HCHAR(J+1,19,127)
540 CALL HCHAR(J+1,22,129)
550 CALL HCHAR(J+2,20,130)
560 CALL HCHAR(J+2,21,131)
570 CALL HCHAR(J+1,21,128)
580 CALL SOUND(150,1397,4)
590 CALL KEY(0,K,S)
600 IF S<1 THEN 590
610 IF K=N(X,1)THEN 640
620 CALL SOUND(200,-5,4)
630 GOTO 590
640 CALL HCHAR(J+1,21,N(X,1))
650 CALL SOUND(500,N(X,2),2)
660 CALL SOUND(1,N(X,2),30)
670 IF X/2=INT(X/2)THEN 720
680 CALL HCHAR(J,20,32,2)
690 CALL HCHAR(J+1,19,96,4)
700 CALL HCHAR(J+2,20,32,2)
710 GOTO 750
720 CALL HCHAR(J,20,96,2)
730 CALL HCHAR(J+1,19,32,4)
740 CALL HCHAR(J+2,20,96,2)
750 NEXT T
760 PRINT "GOOD! TRY AGAIN? (Y/N)";
770 CALL KEY(0,K,S)
780 IF K=78 THEN 920
790 IF K<>89 THEN 770
800 CALL HCHAR(24,13,32,15)
810 GOTO 450
820 CALL CLEAR
830 PRINT TAB(9);"TREBLE CLEF":::
840 PRINT " a":" b":"'''c''"&L$:" de":"''fg''"&L$;" h i":"'jklm'"&L$
850 PRINT " nop q":"'rst't"&L$:" u v w":"''xyz'"&L$:" {":" {":" !"
860 RETURN
870 PRINT :TAB(16);"PRESS <ENTER>";
880 CALL KEY(0,K,S)
890 IF K<>13 THEN 880
900 CALL HCHAR(24,18,32,13)
910 RETURN
920 CALL CLEAR
930 END

Bug!

 

 

 

Program 5-9. Bass Clef - TI-99/4A

110 DIM N(9,2)
120 CALL CLEAR
130 PRINT TAB(7);"** BASS CLEF **":::::::::::
140 FOR I=1 TO 9
150 READ N(I,1),N(I,2)
160 NEXT I
170 DATA 65,220,71,196,70,175,69,165,68,147,67,131,66,123,65,110,71,110
180 FOR I=96 TO 114
190 READ C$
200 CALL CHAR(I,C$)
210 NEXT I
220 DATA 000000FF,000000FF0F10608,000000FFFF,000000FF80700C03,010204181020204,8040202010080804,40583CFF3C18
230 DATA 040202FF01010101,0101020204040408,080810FF2040808,0101020408,000E1F1F1F0E
240 DATA 00000000000F30C,0000000000F00C03,0102020404040201,708808304040004,804040202020408,8060100F,010608F
250 L$="''''''''''''''''''''''"
260 GOSUB 760
270 PRINT :"LEARN THIS PHRASE FOR THE"::"NOTES ON SPACES, A C E G."::
280 GOSUB 800
290 DATA 13,30,15,65,15,76,15,76,15,32,13,67,13,79,13,87,13,83,13,32,11,69,11,65,11,84,11,32
300 DATA 9,71,9,82,9,65,9,83,9,83
310 GOSUB 860
320 GOSUB 760
330 PRINT :"THIS PHRASE HELPS YOU KNOW"::"THE LINE NOTES, G B D F A."::
340 GOSUB 800
350 DATA 8,32,16,71,16,82,16,69,16,65,16,84,14,66,14,73,14,71,12,68,12,79,12,71,12,83,10,70,10,73
360 DATA 10,71,10,72,10,84,8,65,8,78,8,73,8,77,8,65,8,76,8,83,8,32
370 GOSUB 860
380 GOSUB 760
390 PRINT TAB(;"NAME THE NOTE":::::
400 FOR T=l TO 10
410 RANDOMIZE
420 X=INT(9*RND+1)
430 J=6+X
440 CALL HCHAR(J,20,108)
450 CALL HCHAR(J,21,109)
460 CALL HCHAR(J+1,19,110)
470 CALL HCHAR(J+1,22,112)
480 CALL HCHAR(J+2,20,113)
490 CALL HCHAR(J+2,21,114)
500 CALL HCHAR(J+1,21,111)
510 CALL SOUND(150,1397,4)
520 CALL KEY(0,K,S)
530 IF S<1 THEN 520
540 IF K=N(X,1)THEN 570
550 CALL SOUND(200,-5,4)
560 GOTO 520
570 CALL HCHAR(J+1,21,N(X,1))
580 IF X<9 THEN 610
590 CALL SOUND(500,1475,30,1475,30,1475,30,-4,1)
600 GOTO 620
610 CALL SOUND(500,N(X,2),2)
620 CALL SOUND(1,N(X,2),30)
630 IF X/2=INT(X/2)THEN 680
640 CALL HCHAR(J,20,32,2)
650 CALL HCHAR(J+1,19,96,4)
660 CALL HCHAR(J+2,20,32,2)
670 GOTO 710
680 CALL HCHAR(J,20,96,2)
690 CALL HCHAR(J+1,19,32,4)
700 CALL HCHAR(J+2,20,96,2)
710 NEXT T
720 PRINT :"GOODl TRY AGAIN? (Y/N)"
730 CALL KEY(0,K,S)
740 IF K=89 THEN 380
750 IF K=78 THEN 900 ELSE 730
760 CALL CLEAR
770 PRINT TAB(10);"BASS CLEF":::
780 PRINT ::"''abc'"&L$:" d   e k":"'f'''g"&L$:"     h k":"'''''i"&L$:"    h":"''''i'"&L$:"   j":"''''''"&L$:::
790 RETURN
800 READ C,J
810 FOR I=C TO J
820 READ K,G
830 CALL HCHAR(K,I,G)
840 NEXT I
850 RETURN
860 PRINT TAB(16);"PRESS <ENTER>";
870 CALL KEY(0,K,S)
880 IF K<>13 THEN 870
890 RETURN
900 CALL CLEAR
910 END
BAD LINE NUMBER IN 310
Edited by oddemann
Link to comment
Share on other sites

Raw copy of the rest of the book!

I have not been able to clean and debug. But if anyone wants to help og have fun, then copy else do not!
For I think if you = 1 or X programs, step to the one you like.
Go have fun!
until next time!
Gosub later when I have time!

I will clean and put it all in post on top.
I will return ;) later to fix it! Busy day!

 

Program 6-3. Buying Items - TI-99/4A

100 CALL CLEAR
110 PRINT TAB(6);"MATH COMPETENCY"
120 CALL CHAR(136,"080402FF020408")
130 PRINT :::TAB(7);"BUYING ITEMS"
140 CALL COLOR(14,9,16)
150 PRINT •••••:::::
160 DIM I$(3,*5),I(3,5,2),N$(6),J(5),H$(3),S$(4)
170 FOR C=l TO 6
180 READ N$(C)
190 NEXT C
200 FOR A=l TO 3
210 FOR C=l TO 5
220 READ I$(A,C),I(A,C,1),I(A,C,2)
230 NEXT C
240 NEXT A
250 DATA ANGIE,CINDY,CHERY,RICKY,BOBBY,RANDY,PENCIL,8,15
260 DATA ERASER,2,10,NOTEBOOK,35,99,RULER,29,49
270 DATA PAPER,59,90,DOLL,249,599,BALL,49,89,TRUCK,100,150
280 DATA GAME,270,500,MODEL,300,700,CANDY,20,50
290 DATA MEAT,123,425,FRUIT,24,50,CHIPS,100,257,BR
EAD,100,179
300 H$(1)="PENCIL AND ERASER"
310 H$(2)="BALL AND TRUCK"
320 H$(3)="CANDY AND FRUIT"
330 GOTO 550
340 PRINT TAB(15);"PRESS <ENTER>";
350 CALL KEY(0,K,S)
360 IF K<>13 THEN 350
370 RETURN
380 CALL SOUND(100,330,2)
390 CALL SOUND(150,262,2)
400 RETURN
410 CALL SOUND(100,262,2)
420 CALL SOUND(100,330,2)
430 CALL SOUND(100,392,2)
440 CALL SOUND(200,523,2)
450 RETURN
460 P$=STR$(P)
470 IF LEN(P$)>1 THEN 490
480 P$="0"&P$
490 IF LEN(P$)>2 THEN 510
500 P$=" "&P$
510 PR$=SEG$(P$,LEN(P$)-1,2)
520 PL$=SEG$(P$,l,LEN(P$)-2)
530 P$="$"&PL$&"."&PR$
540 RETURN
550 RANDOMIZE
560 A=INT(RND*3+1)
570 TP=0
580 CALL CLEAR
590 PRINT "GIVEN THIS PRICE LIST:"::
600 FOR C=l TO 5
610 D=I(A,C,2)-I(A,C,1)
620 P=I(A,C,1)+INT(RND*D+1)
630 GOSUB 460
640 TP=TP+P
650 PRINT TAB(6);I$(A,C);TAB(15);P$
660 NEXT C
670 R=INT(RND*13+4)
680 CALL COLOR(13,R,R)
690 CALL HCHAR(18,6,128,18)
700 CALL VCHAR(19,6,128,5)
710 CALL VCHAR(19,23,128,5)
720 CALL HCHAR(24,6,128,18)
730 F=INT(RND*2+1)
740 IF F=2 THEN 790
750 PRINT ::"HOW MUCH WILL IT COST"
760 PRINT "TO BUY ALL THE ITEMS"
770 PRINT "ON THE LIST?"
780 GOTO 830
790 N=INT(RND*6+1)
800 PRINT ::N$(N);" WANTS TO BUY"
810 PRINT "EVERYTHING ON THE LIST."
820 PRINT "WHAT WILL THE TOTAL COST BE?"
830 INPUT "$":X
840 IF ABS(X-TP/100)<.001 THEN 920
850 GOSUB 380
860 PRINT :"ADD ALL FIVE NUMBERS."
870 P=TP
880 GOSUB 460
890 PRINT "THE TOTAL IS ";P$:::
900 GOSUB 340
910 GOTO 550
920 GOSUB 410
930 CALL HCHAR(20,1,32,128)
940 IF F=2 THEN 970
950 PRINT "IF YOU COULD ONLY SPEND"
960 GOTO 980
970 PRINT "IF ";N$(N);" COULD ONLY SPEND"
980 IF A<>1 THEN 1010
990 M=INT(RND*5+25)
1000 GOTO 1050
1010 IF A<>2 THEN 1040
1020 M=INT(RND*36+239)
1030 GOTO 1050
1040 M=INT(RND*18+100)
1050 P=M
1060 GOSUB 460
1070 PRINT P$;", WHICH OF THESE PAIRS"
1080 PRINT "OF ITEMS COULD ";
1090 IF F<>1 THEN 1120
1100 PRINT "YOU BUY?"::
1110 GOTO 1160
1120 IF N>3 THEN 1150
1130 PRINT "SHE BUY?"::
1140 GOTO 1160
1150 PRINT "HE BUY?"::
1160 R=INT(RND*4+1)
1170 FOR V=l TO 4
1180 IF V=R THEN 1280
1190 X=INT(RND*2+4)
1200 S$(V)=I$(A,X)
1210 X=INT(RND*3+1)
1220 S$(V)=S$(V)&" AND "&I$(A,X)
1230 IF V=l THEN 1290
1240 FOR Vl=l TO V-l
1250 IF S$(V1)=S$(V)THEN 1190
1260 NEXT VI
1270 GOTO 1290
1280 S$(V)=H$(A)
1290 PRINT TAB(3);CHR$(64+V);" "&S$(V)
1300 NEXT V
1310 CALL SOUND(150,1397,2)
1320 CALL KEY(0,K,S)
1330 IF (K<65)+(K>68)THEN 1320
1340 CALL HCHAR(K-45,4,42)
1350 IF K<>64+R THEN 1410
1360 GOSUB 410
1370 PRINT :"TRY AGAIN? (Y/N)"r
1380 CALL KEY(0,K,S)
1390 IF K=89 THEN 550
1400 IF K=78 THEN 1450 ELSE 1380
1410 GOSUB 380
1420 CALL HCHAR(19+R,3,136)
1430 PRINT : "THE TOTAL OF THE TV70 ITEMS MUST BE L
ESS THAN ";P$
1440 GOTO 1370
1450 CALL CLEAR
1460 END
Program 6-6. Sales Tax - TI-99/4A

110 FOR 1=1 TO 4
120 READ T$(I)
130 FOR J=l TO 4
140 READ P$(I,J),P(I,J)
150 NEXT J
160 NEXT I
170 DATA HARDWARE,HAMMER,1500,PLIERS,300,SAW,600,N
AILS,100
180 DATA CLOTHES,BELT,400,TIE,500,SHIRT,600,PANTS, 2000
190 DATA TOYS,BALL,100,CAR,200,GAME,500,DOLL,600
200 DATA SUPPLIES,PAPER,400,CLIPS,100,PENCILS,100,
ENVELOPES,200
210 CALL CLEAR
220 A=0
230 PRINT "SALES TAX ON THE FOLLOWING"
235 RANDOMIZE
240 T=INT(4*RND+2)
250 PRINT "ITEMS IS";T;"PER CENT, OR"
260 PRINT "$.0";STR$(T);" FOR EACH DOLLAR SPENT."
270 PRINT "WHAT IS THE TOTAL COST?"
280 PRINT
290 I=INT(4*RND+1)
300 PRINT TAB(;T$(I)
310 PRINT
320 FOR J=l TO 4
330 C=P(I,J)+25*(INT(4*RND))
340 GOSUB 660
350 PRINT P$(I,J),C$
360 A=A+C
370 NEXT J
380 PRINT "########################"
390 PRINT
400 INPUT "TOTAL COST = $ ":B
410 PRINT
420 TX=1+T/100
430 TA=INT(((A/100)*TX+.005)*100)/100
440 IF ABS(B-TA)<.01 THEN 580
450 C=A
460 GOSUB 660
470 PRINT "ADD COSTS FOR TOTAL."
480 PRINT "PRICE OF ITEMS = "?C$
490 PRINT "MULTIPLY BY ";T/100?" FOR TAX,"
500 PRINT "THEN ADD."
510 PRINT
520 C=TA*100
530 GOSUB 660
540 PRINT "TOTAL COST = ";C$
550 PRINT
560 INPUT "PRESS <ENTER>":E$
570 GOTO 210
580 PRINT "CORRECT 1"
590 PRINT
600 PRINT "CHOOSE: 1 TRY AGAIN"
610 PRINT TAB(9);"2 END"
620 CALL KEY(0,K,S)
630 IF K=49 THEN 210
640 IF K=50 THEN 700
650 GOTO 620
660 C$=STR$(C)
670 L=LEN(C$)
680 C$="$"&SEG$(C?,1,L-2)&"."&SEG$(C$,L-1,2)
690 RETURN
700 CALL CLEAR
710 END
Program 6-9. Earning Money - TI-99/4A

100 CALL CLEAR
110 PRINT TAB(6);"MATH COMPETENCY" /m
120 PRINT :::TAB(7);"EARNING MONEY"
130 PRINT :::::::::: **>
140 DIM N$(5),J$(5),T$(5)
150 FOR 1=0 TO 5 /**
160 READ N$(I),J$(I),T$(I)
170 NEXT I ^
180 DATA SAM,DOING ODD JOBS,JOHN,JOE,MOWING LAWNS,ANDY,BOB,TENDING CHILDREN,MARK,ANN
190 DATA RUNNING ERRANDS,LENA,SUE,DOING HOUSEWORK, ^ AURA,KAY,DELIVERING ADS,DAWN
200 GOTO 370
210 PRINT :TAB(15);"PRESS <ENTER>";
220 CALL KEY(0,K,S)
230 IF K<>13 THEN 220
240 RETURN
250 CALL SOUND(100,330,2)
260 CALL SOUND(150,262,2)
270 RETURN
280 CALL SOUND(100,262,2)
290 CALL SOUND(100, 330, 2)
300 CALL SOUND(100,392,2)
310 CALL SOUND(200,523,2)
320 RETURN
330 P=100+25*INT(RND*10)
340 P$=STR$(P)
350 P$="$"&SEG$(P$,1,LEN(P$)-2)&"."&SEG$(P$,LEN(P$)"I ,2 ) /3^s
360 RETURN
370 CALL CLEAR
380 RANDOMIZE
390 N=INT(RND*6)
400 H=8+INT(RND*11)
410 GOSUB 330
420 PRINT N$(N);" WORKS";H;"HOURS PER WEEK."
430 IF N<3 THEN 460
440 PRINT : "SHE EARNS ";
450 GOTO 470
460 PRINT :"HE EARNS ";
470 PRINT P$;" PER HOUR."
480 IF N<3 THEN 510
490 PRINT :"HOW MUCH DOES SHE EARN"
500 GOTO 520
510 PRINT :"HOW MUCH DOES HE EARN"
520 PRINT :"IN A WEEK?"::
530 INPUT "$":D ^
540 D1=P*H/100
550 IF ABS(D-Dl)>.001 THEN 610
560 GOSUB 280
570 PRINT ::"TRY AGAIN? (Y/N)"
580 CALL KEY(0,K,S)
590 IF K=89 THEN 370
600 IF K=78 THEN 680 ELSE 580
610 GOSUB 250
620 PRINT :"MULTIPLY";H;"HOURS BY ";P$::"PER HOUR, n
630 P=H*P
640 GOSUB 340
650 PRINT :"THE ANSWER IS ";P$
660 GOSUB 210
670 GOTO 370
680 CALL CLEAR
690 RANDOMIZE
700 N=INT(RND*6)
710 H=INT(RND*ll)+8
720 GOSUB 330
730 PRINT N$(N);" EARNS ";P$;" PER HOUR."
740 IF N<3 THEN 770
750 PRINT :"SHE WORKS";
760 GOTO 780
770 PRINT :"HE WORKS";
780 PRINT H;"HOURS PER WEEK."
790 IF N<3 THEN 820
800 PRINT :"HOW MUCH WILL SHE EARN IN"
810 GOTO 830
820 PRINT :"HOW MUCH WILL HE EARN IN"
830 W=INT(RND*19)+2
840 PRINT :W;"WEEKS?"::
850 INPUT "$":D
860 Dl=P*H*W/100
870 IF ABS(D-Dl)>.001 THEN 930
880 GOSUB 280
890 PRINT ::"TRY AGAIN? (Y/N)"
900 CALL KEY(0,K,S)
910 IF K=89 THEN 680
920 IF K=78 THEN 1030 ELSE 900
930 GOSUB 250
940 PRINT :"MULTIPLY";H;"HOURS BY"
950 PRINT $;" PER HOUR."
960 PRINT :"THEN MULTIPLY BY";W;"WEEKS."
970 PRINT :"THE ANSWER IS ";
980 P=H*P*W
990 GOSUB 340
1000 PRINT P$:::
1010 GOSUB 210
1020 GOTO 680
1030 CALL CLEAR
1040 J=INT(RND*6)
1050 T=INT(RND*6)
1060 GOSUB 330
1070 W=INT(RND*+2
1080 PRINT T$(T);" EARNED ";P$;" LAST WEEK"
1090 PRINT :J$(J);"."
1100 IF T<3 THEN 1130
1110 PRINT :"IF SHE EARNED THIS AMOUNT"
1120 GOTO 1140
1130 PRINT :"IF HE EARNED THIS AMOUNT"
1140 PRINT :"EVERY WEEK, WHAT WOULD THE"
1150 PRINT :"TOTAL INCOME BE FOR"
1160 PRINT :W;"WEEKS?": :
1170 INPUT "$":D
1180 D1=P*W/100
1190 IF ABS(D-Dl)>.001 THEN 1250
1200 GOSUB 280
1210 PRINT ::"TRY AGAIN? (Y/N)";
1220 CALL KEY(0,K,S)
1230 IF K=89 THEN 1030
1240 IF K=78 THEN 1330 ELSE 1220
1250 GOSUB 250
1260 PRINT :"MULTIPLY ";P$;" PER WEEK"
1270 PRINT :"BY";W;"WEEKS."
1280 P=P*W
1290 GOSUB 340
1300 PRINT
1310 GOSUB 210
1320 GOTO 1030
1330 CALL CLEAR
1340 END
Program 6-12. Weekly Expenses - TI-99/4A

20 DIM A$(3,5),N$(6),P$(3) ^ 30 FOR A=l TO 3 ^
40 READ N$(A),N$(A+3)fP$(A)
50 FOR B=l TO 5 ^
60 READ A$(A,B)
70 NEXT B m.
80 NEXT A
90 DATA LENA,ANDY,IS GOING TO ^
100 DATA CAMP BEAVER,CAMP FEE,HORSE RIDING,TENNIS, _
CRAFTS
110 DATA AURA,BILL,WILL ATTEND ^ 120 DATA SPORTS CLINIC,TUITION,UNIFORM FEE,EQUIPME
NT FEE,SPECIAL EVENT
130 DATA MARY,JOHN,WILL STAY AT
140 DATA LOGAN CANYON,CAMP FEE,T-SHIRTS,ACTIVITY F
EE,SUPPLIES
150 CALL CLEAR
155 RANDOMIZE
160 I=INT(3*RND+1)
170 PRINT "HERE ARE THE EXPENSES FOR"
180 PRINT "ONE WEEK AT ";A$(1,1); "."
190 PRINT
200 C=INT(5*RND+l)*1000+4000
210 GOSUB 680
220 PRINT A$(I,2),C$
230 T=C
240 C=INT(12*RND+l)*25+275
250 GOSUB 680
260 PRINT A$(I,3),C$
270 T=T+C
280 C=INT(8*RND+1)*50+150
290 GOSUB 680
300 PRINT A$(I,4)/C$
310 T=T+C
320 C=INT(5*RND+l)*50+50
330 GOSUB 680
340 PRINT A$(I,5),C$
350 T=T+C
360 PRINT
370 PRINT "TOTAL EXPENSES FOR ONE WEEK"
380 INPUT "$":A
390 PRINT
400 IF A=T/100 THEN 440
410 PRINT "ADD THE NUMBERS TO GET"
420 PRINT "TOTAL ";T/100
430 PRINT
440 W=INT(7*RND+2)
450 PRINT N$(INT(6*RND+1));" ";P$(INT(3*RND+1))
460 PRINT A$(l,l)y" FOR";W;"WEEKS."
470 PRINT "WHAT WILL IT COST?"
480 INPUT "$":A
490 PRINT
500 IF A=W*T/100 THEN 610
510 PRINT "MULTIPLY TOTAL EXPENSES"
520 PRINT "PER V7EEK TIMES" ;W? "WEEKS : "
530 C=T*W
540 GOSUB 680
550 PRINT "$";T/100;"*";W;"= ";C$
560 PRINT
570 PRINT "PRESS ENTER."
580 CALL KEY(0,K,S)
590 IF K=13 THEN 150
600 GOTO 580 ^
610 PRINT "CORRECT I"
620 PRINT tm
630 PRINT "PRESS 1 ANOTHER PROBLEM" ^ 640 PRINT TAB(7b"2 END PROGRAM"
650 CALL KEY(0fK,S) im
660 IF K=49 THEN 150
670 IF K=50 THEN 730 ELSE 650 ^
680 M$=STR$(C)
690 IF LEN(M$)>3 THEN 700 /m~
695 M$=" "&M$ _
700 L=LEN(M$)
710 C$="$"&SEG$(M$,1,L-2)&,,."&SEG$(M$,L-1,2) a*
720 RETURN
730 CALL CLEAR ^V
740 END
Program 6-15. Saving Money - TI-99/4A

120 CALL CLEAR
130 FOR C=l TO 6
140 READ N$(C)
150 NEXT C
160 FOR C=l TO 3
170 READ A$(C),B(C),M(C),F(C)
180 NEXT C
190 DATA SALLY,HEIDI,NANCY,BRENT,DAVID,CHUCK
200 DATA BIKE,80,5,7,STEREO,90,5,14,COMPUTER,100,1
0,10
210 CALL CLEAR
215 RANDOMIZE
220 R6=INT(6*RND+1)
230 PRINT N$(R6);" WANTS TO BUY A"
240 R3=INT(3*RND+1)
250 PRINT A$(R3)y"."
260 T=B(R3)+M(R3)*INT(F(R3)*RND+1)
270 GOSUB 570
290 P$="HE"
300 IF R6>=4 THEN 320 m,
310 P$="SHE"
320 W=10*INT(4*RND+1) ^
330 PRINT "IF ";P$?" SAVES FOR";W;"WEEKS,"
340 PRINT "HOW MUCH WILL ";N$(R6)?" NEED" ***•
350 PRINT "TO SAVE EACH WEEK?" ^ 360 PRINT
370 S=(T/W)/100 *»
380 INPUT ANS
390 IF ABS(ANS-S)<.01 THEN 470 /*>
400 PRINT "TOTAL COST "?C$
410 PRINT "DIVIDED BY"?W;"WEEKS =" ^
420 GOSUB 560
430 PRINT C$ ^ 440 PRINT ^
450 INPUT "PRESS <ENTER>":E$
460 GOTO 210 ,4ft,
470 PRINT
480 PRINT "CORRECT I" ^
490 PRINT
500 PRINT "ANOTHER PROBLEM?" ^
510 PRINT "(Y/N)" ^ 520 CALL KEY(0,K,S)
530 IF K=89 THEN 210 ^
540 IF K=78 THEN 610
550 GOTO 520 ^s
560 T=S
570 T=INT(100*T) ^
580 T$=STR$(T) _
590 C$="$,,&SEG$(T$,1,LEN(T$)-2)&,,."&SEG$(T$,LEN(T$ ^
600 RETURN
610 END
Program 7-3. Divison - TI-99/4A

110 CALL CHAR(37,"804020202020408")
120 CALL CHAR(38,"00000000000000FF")
130 CALL CLEAR
140 PRINT "DIVISION WITH REMAINDER"::::
150 PRINT TAB(ll);"QUOTIENT"
160 PRINT TAB(10);"&&&&&&&&&&"
170 PRINT " DIVISOR %DIVIDEND"::::
180 INPUT "DIVISOR: ":I
190 IF I<>0 THEN 220
200 PRINT :"SORRY, DIVISOR CANNOT = 0"::
210 GOTO 180
220 INPUT "DIVIDEND: ":D
230 Q=INT(D/I)
240 R=D-Q*I
250 PRINT : "QUOTIENT =";Q;" R";R
260 PRINT :::"CHOOSE:"
270 PRINT " 1 ANOTHER PROBLEM"
280 PRINT " 2 END PROGRAM"
290 CALL KEY(0,K,S)
300 IF K=49 THEN 130
310 IF K<>50 THEN 290
320 CALL CLEAR
330 END
Program 7-6. Find All Factors - TI-99/4A f^$\
110 CALL CLEAR
120 PRINT "FINDING ALL FACTORS" **>
130 PRINT
140 PRINT "ENTER NUMBER TO BE" ^
150 INPUT "FACTORED: ":N /_ 160 IF N>1 THEN 190
170 PRINT "ENTER NUMBER > 1"
180 GOTO 130
190 PRINT :"FACTORS OF";N;"ARE"
200 PRINT N?
210 B=INT(N/2+1)
220 FOR C=2 TO B
230 IF N/C<>INT(N/C)THEN 280
240 B=N/C
250 PRINT B;
260 IF B=l THEN 300
270 IF B=2 THEN 290
280 NEXT C
290 PRINT " 1"
300 PRINT
310 PRINT "CHOOSE:"
320 PRINT " 1 ANOTHER PROBLEM"
330 PRINT " 2 END PROGRAM"
340 CALL KEY(0,K,S)
350 IF K=49 THEN 110
360 IF K<>50 THEN 340
370 CALL CLEAR
380 END
Program 7-9. Prime Factors - TI-99/4A
110 CALL CLEAR
120 PRINT "PRIME FACTORS OR"
130 PRINT "COMPLETE FACTORIZATION"
140 PRINT
150 PRINT "ENTER NUMBER TO BE"
160 INPUT "FACTORED: ":N
170 IF N>1 THEN 200
180 PRINT "NUMBER MUST BE > 1"
190 GOTO 140
200 PRINT
210 PRINT "THE PRIME FACTORS ARE:"
220 G=INT(N/2)
230 FOR 1=2 TO G
240 IF N/K>INT(N/I)THEN 290
250 N=N/I
260 G=N
270 PRINT I?
280 GOTO 230
290 NEXT I
300 IF N=l THEN 320
310 PRINT N
320 PRINT
330 PRINT
340 PRINT "CHOOSE:"
350 PRINT " 1 ANOTHER PROBLEM"
360 PRINT " 2 END PROGRAM"
370 CALL KEY(0,K,S)
380 IF K=49 THEN 110
390 IF K<>50 THEN 370
400 CALL CLEAR
410 END
Program 7-12. Greatest Common Factor - TI-99/4A

110 CALL CLEAR
120 PRINT "GREATEST COMMON FACTOR"
130 PRINT "OF TWO NUMBERS"
140 PRINT
150 INPUT "FIRST NUMBER ":M
160 IF M>1 THEN 190
170 PRINT "ENTER NUMBER > 1"
180 GOTO 140
190 IF M<10000 THEN 220
200 PRINT "MUST BE < 10000"
210 GOTO 140
220 PRINT
230 INPUT "SECOND NUMBER ":N
240 IF N>1 THEN 270
250 PRINT "ENTER NUMBER > 1"
260 GOTO 220
270 IF N<10000 THEN 300
280 PRINT "MUST BE < 10000"
290 GOTO 220
300 PRINT
310 PRINT "GREATEST COMMON FACTOR ="
320 IF MON THEN 350
330 G=M
340 GOTO 470
350 IF M<N THEN 390
360 MM=M
370 M=N
380 N=MM
390 FOR 1=1 TO M
400 IF (M/I)<>INT(M/I)THEN 450
410 J=M/I
420 IF (N/J)<>INT(N/J)THEN 450
430 G=J
440 GOTO 470
450 NEXT I
460 G=l
470 PRINT G
480 PRINT
490 PRINT "CHOOSE:"
500 PRINT " 1 ANOTHER PROBLEM"
510 PRINT " 2 END PROGRAM"
520 CALL KEY(0,K,S)
530 IF K=49 THEN 110
540 IF K<>50 THEN 520
550 CALL CLEAR
560 END
Program 7-15. Least Common Multiple - TI-99/4A

110 CALL CLEAR
120 PRINT "LEAST COMMON MULTIPLE"
130 PRINT "OF 2 OR 3 GIVEN NUMBERS"
140 PRINT
150 PRINT "HOW MANY NUMBERS —2 OR 3?"
160 CALL KEY(0,K,S)
170 IF K<50 THEN 160
180 IF K>51 THEN 160
190 PRINT K-48?" NUMBERS"
200 FOR C=1 TO K-48
210 PRINT
220 PRINT "NUMBER";C?
230 INPUT N(C)
240 IF N(C)>1 THEN 270
250 PRINT "NUMBER MUST BE > 1"
260 GOTO 210
270 IF N(C)<1000 THEN 300
280 PRINT "NUMBER MUST BE < 1000"
290 GOTO 210
300 NEXT C
310 IF K=51 THEN 460
320 IF N(1)<>N(2)THEN 350
330 L=N(1)
340 GOTO 690
350 IF N(1)<N(2)THEN 390
360 NN=N(1)
370 N(1)=N(2)
380 N(2)=NN
390 FOR C=1 TO N(1)
400 IF C*N(2)/N(1)<>INT(C*N(2)/N(1))THEN 430
410 L=C*N(2)
420 GOTO 690
430 NEXT C
440 L=N(1)*N(2) ^ 450 GOTO 690
460 SW=0
470 FOR C=1 TO 2
480 IF N(C)<=N(C+1)THEN 530
490 NN=N(C)
500 N(C)=N(C+1)
510 N(C+1)=NN
520 SW=1 ^ 530 NEXT C
540 IF SW=1 THEN 460
550 FOR C=l TO N(2)
560 F=C*N(3)
570 IF (F/N(1)=INT(F/N(1)))+(F/N(2)=INT(F/N(2)))<>-2 THEN 600
580 L=F
590 GOTO 690
600 NEXT C
610 M=N(2)*N(3)
620 FOR C=1 TO N(1)
630 F=C*M
640 IF F/N(1)<>INT(F/N(1))THEN 670
650 L=F
660 GOTO 690
670 NEXT C
680 L=M*N(1)
690 PRINT ::"LEAST COMMON MULTIPLE IS"
700 PRINT L
710 PRINT ::"CHOOSE:"
720 PRINT " 1 ANOTHER PROBLEM"
730 PRINT " 2 END PROGRAM"
740 CALL KEY(0,K,S)
750 IF K=49 THEN 110
760 IF K<>50 THEN 740
770 CALL CLEAR
780 END
Program 7-18. Equivalent Fractions - TI-99/4A

110 CALL CLEAR
120 PRINT TAB(10);"A{5 SPACES}C"
130 PRINT TAB(10);"- = -"
140 PRINT TAB(10);"B{5 SPACES}D":::
150 PRINT "WHICH IS THE UNKNOWN?"
160 PRINT "CHOOSE A, B, C, OR D.":::
170 CALL KEY(0,K,S)
180 IF (K<65)+(K>68)THEN 170
190 ON K-64 GOTO 200,310,450,560
200 INPUT "ENTER B = ":B
210 IF B<>0 THEN 240
220 PRINT "B CANNOT = 0"::
230 GOTO 200
240 INPUT "ENTER C = ":C
250 INPUT "ENTER D = ":D
260 IF D<>0 THEN 290
270 PRINT "D CANNOT = 0"::
280 GOTO 250
290 A=INT(100*(B*C/D+.005))/100
300 GOTO 690
310 INPUT "ENTER A = ":A
320 IF A<>0 THEN 350
330 PRINT "SORRY, A<>0"::
340 GOTO 310
350 INPUT "ENTER C = ":C
360 IF C<>0 THEN 390
370 PRINT "SORRY, C<>0"::
380 GOTO 350
390 INPUT "ENTER D = ":D
400 IF D<>0 THEN 430
410 PRINT "D CANNOT = 0"::
420 GOTO 390
430 B=INT(100*(A*D/C+.005))/l00
440 GOTO 690
450 INPUT "ENTER A = ":A
460 INPUT "ENTER B = ":B
470 IF B<>0 THEN 500
480 PRINT "B CANNOT = 0"::
490 GOTO 460
500 INPUT "ENTER D = ":D
510 IF D<>0 THEN 540
520 PRINT "D CANNOT = 0"::
530 GOTO 500
540 C=INT(100*(A*D/B+.005))/100
550 GOTO 690
560 INPUT "ENTER A = ":A
570 IF A<>0 THEN 600
580 PRINT "SORRY, A<>0"::
590 GOTO 560
600 INPUT "ENTER B = ":B ^ 610 IF B<>0 THEN 640
620 PRINT "B CANNOT = 0"::
630 GOTO 600
640 INPUT "ENTER C = ":C
650 IF C<>0 THEN 680 **s
660 PRINT "SORRY, C<>0"::
670 GOTO 640 ^
680 D=INT(100*(B*C/A+.005))/l00
690 CALL CLEAR
700 PRINT TAB(7);A,C
710 PRINT TAB(7);" = "
720 PRINT TAB(7);B,D
730 PRINT :::"CHOOSE:"
740 PRINT " 1 ANOTHER PROBLEM"
750 PRINT " 2 END PROGRAM"
760 CALL KEY(0,K,S)
770 IF K=49 THEN 110
780 IF K<>50 THEN 760
790 CALL CLEAR
800 END
Program 7-21. Simplifying Fractions - TI-99/4A

110 CALL CLEAR
120 PRINT "SIMPLIFYING FRACTIONS"::::
130 INPUT "NUMERATOR ={3 SPACES}":N
140 INPUT "DENOMINATOR = ":D
150 IF D<>0 THEN 180 ^ 160 PRINT "DENOMINATOR CANNOT = 0"::
170 GOTO 140
180 IF D>N THEN 210
190 LIM=D ^
200 GOTO 220
210 LIM=N
220 S=—2
230 IF D/2<>INT(D/2)THEN 250
240 IF N/2=INT(N/2)THEN 260
250 S=-l
260 FOR C=LIM TO 2 STEP S
270 A=N/C
280 IF A<>INT(A)THEN 310
290 B=D/C
300 IF B=INT(B)THEN 340
310 NEXT C
320 PRINT ::N;"/";D;" CANNOT BE SIMPLIFIED"
330 GOTO 350 ^
340 PRINT :N;"/";D;" = ";A;"/";B
350 PRINT :::"CHOOSE:" ^
360 PRINT " 1 ANOTHER PROBLEM"
370 PRINT " 2 END PROGRAM"
380 CALL KEY(0,K,S)
390 IF K=49 THEN 110
400 IF K<>50 THEN 380
410 CALL CLEAR
420 END
Program 7-24. Multiplying Fractions - TI-99/4A

110 CALL CLEAR
120 PRINT "MULTIPLYING FRACTIONS"::::
130 PRINT "HOW MANY FRACTIONS?":::
140 CALL KEY(0,K,S)
150 IF (K<50)+(K>57)THEN 140
160 CALL HCHAR(21,23,K)
170 C=K-48
180 NT=1
190 DT=1
200 FOR I=1 TO C
210 PRINT "FRACTION";I
220 INPUT "{4 SPACES}NUMERATOR ={3 SPACES}":N(I)
230 NT=NT*N(I)
240 INPUT "    DENOMINATOR = ":D(l)
250 IF D(I)<>0 THEN 280
260 PRINT '."DENOMINATOR CANNOT BE ZERO."::
270 GOTO 240
280 DT=DT*D(I)
290 NEXT I
300 PRINT :::"** MULTIPLY **"::
310 FOR I=1 TO C 
320 PRINT STR$(N(I));"/";STR$(D(I))
330 NEXT I
340 PRINT " "
350 FOR I=1 TO C
360 A=NT/D(I)
370 IF A<>INT(A)THEN 420
380 B=DT/D(I)
390 IF B<>INT(B)THEN 420
400 NT=A
410 DT=B ms
420 NEXT I
430 SW=0
440 FOR 1=1 TO C-l
450 IF D(I)<=D(I+1)THEN 500
460 DD=D(I)
470 D(I)=D(I+1)
480 D(I+1)=DD
490 SW=1
500 NEXT I
510 IF SV7=1 THEN 430
520 L=D(C)
530 FOR I=L TO 2 STEP -1
540 A=NT/I
550 IF A<>INT(A)THEN 580
560 B=DT/I
570 IF B=INT(B)THEN 610
580 NEXT I
590 A=NT
600 B=DT
610 IF A>=B THEN 640
620 PRINT ::STR$(A);"/M;STR$(B)
630 GOTO 700
640 W=INT(A/B)
650 R=A-W*B
660 IF R<>0 THEN 690
670 PRINT W
680 GOTO 700
690 PRINT W;"{3 SPACES}";STR$(R);"/";STR$(B)
700 PRINT :::"CHOOSE:":" 1 ANOTHER PROBLEM"
710 PRINT " 2 END PROGRAM";
720 CALL KEY(0,K,S)
730 IF K=49 THEN 110
740 IF K<>50 THEN 720
750 CALL CLEAR
760 END
Program 7-27. Dividing Fractions - TI-99/4A

110 CALL CLEAR
120 PRINT "THE FIRST FRACTION IS"
130 PRINT "DIVIDED BY THE"
140 PRINT "SECOND FRACTION." ^ 150 PRINT ::TAB(10);"Nl/Dl"
160 PRINT TAB(9);n " ^
170 PRINT TAB(10);"N2/D2":::
180 INPUT "ENTER Nl = ":N1 ^
190 INPUT "ENTER Dl = ":D1
200 IF D1<>0 THEN 230 ^ 210 PRINT :"DENOMINATOR CANNOT BE ZERO.":: ^ 220 GOTO 190
230 PRINT /*•,
240 INPUT "ENTER N2 = ":N2
250 IF N2<>0 THEN 280 ^
260 PRINT "SORRY, CANNOT =0"
270 GOTO 230 ^
280 INPUT "ENTER D2 = ":D2 ^
290 IF D2<>0 THEN 320
300 PRINT :"DENOMINATOR CANNOT BE ZERO.":: ^
310 GOTO 280
320 NT=N1*D2 ^
330 DT=D1*N2
340 PRINT :::STR$(N1);"/";STR$(D1) ^ 350 PRINT " " ^ 360 PRINT STR$(N2)?"/";STR$(D2)
370 PRINT :::"EQUALS":: m^
380 IF NT<DT THEN 410
390 L=DT ^
400 GOTO 420
410 L=NT **
420 FOR I=L TO 2 STEP -1 ^ 430 A=NT/I
440 IF A<>INT(A)THEN 470 ^
450 B=DT/l
460 IF B=INT(B)THEN 500 <«v
470 NEXT I
480 A=NT
490 B=DT
500 IF A>=B THEN 530
510 PRINT ::STR$(A);"/";STR$(B) 520 GOTO 620
530 IF B<>1 THEN 560
540 PRINT ::A
550 GOTO 620
560 C=INT(A/B)
570 R=A-C*B
580 IF R=0 THEN 610
590 PRINT C;" ";STR$(R);"/";STR$(B)
600 GOTO 620
610 PRINT C
620 PRINT :::"CHOOSE:":" 1 ANOTHER PROBLEM"
630 PRINT " 2 END PROGRAM";
640 CALL KEY(0,KfS)
650 IF K=49 THEN 110
660 IF K<>50 THEN 640
670 CALL CLEAR
680 END
Program 7-30. Adding Fractions - TI-99/4A

110 CALL CLEAR
120 PRINT "** ADDING FRACTIONS **" ^
130 PRINT :: ^'CHOOSE:" ^ 140 PRINT :"1 LIKE DENOMINATORS" '
150 PRINT :"2 UNLIKE DENOMINATORS"::: ^
160 CALL KEY(0,KfS)
170 IF K=50 THEN 410 ^
180 IF K<>49 THEN 160
190 CALL CLEAR ^
200 CH=sl ^ 210 PRINT "ADDING FRACTIONS WITH"
220 PRINT "LIKE DENOMINATORS" ^
230 PRINT ::"H0W MANY FRACTIONS?"
240 CALL KEY(0,K,S) ^
250 IF (K<50)+(K>57)THEN 240
260 CALL HCHAR(23,23,K) ^
270 C=K-48
280 PRINT ::"WHAT IS THE DENOMINATOR?" '
290 INPUT DT ^ 300 IF DT<>0 THEN 330
310 PRINT "DENOMINATOR CANNOT =0" ^
320 GOTO 280
330 PRINT ::"ENTER THE NUMERATORS":: **
340 NT=0
350 FOR 1=1 TO C ^ 360 INPUT N(I) ^ 370 NT=NT+N(I)
380 D(I)=DT ^
390 NEXT I
400 GOTO 720 /»*
410 CALL CLEAR
420 PRINT "ADDING UP TO FIVE" ^
430 PRINT "FRACTIONS WHICH MAY HAVE"
440 PRINT "UNLIKE DENOMINATORS"
450 PRINT ::"HOW MANY FRACTIONS?":: ^
460 CALL KEY(0,K,S)
470 IF (K<50)+ (K>53)THEN 460 **>
480 CALL HCHAR(22,23,K)
490 C=K-48 ^
500 NT=0 _
510 DT=1 "* 520 FOR 1=1 TO C ^ 530 PRINT "FRACTION";I
540 INPUT "{3 SPACES}NUMERATOR ={3 SPACES}":N(I) ^
550 INPUT "{3 SPACES^DENOMINATOR = ":D(I)
560 IF D(I)<>0 THEN 590 "^
570 PRINT :"DENOMINATOR CANOT BE ZERO"::
580 GOTO 550
590 IF 1=1 THEN 630
600 FOR J=l TO 1-1
610 IF D(I)=D(J)THEN 650
620 NEXT J
630 F=D(I)
640 GOTO 660
650 F=l
660 DT=DT*F
670 NEXT I
680 FOR 1=1 TO C
690 F=DT/D(I)
700 NT=NT+N(I)*F
710 NEXT I
720 CALL CLEAR
730 PRINT "** ADDING FRACTIONS **":::
740 FOR 1=1 TO C
750 PRINT STR$(N(I));"/";STR$(D(I))
760 NEXT I
770 PRINT " "::
780 IF DT>NT THEN 810
790 L=DT
800 GOTO 820
810 L=NT
820 ST=-2
830 IF DT/2<>INT(DT/2)THEN 850
840 IF NT/2=INT(NT/2)THEN 860
850 ST=-1
860 FOR I=L TO 2 STEP ST
870 A=NT/I
880 IF A<>INT(A)THEN 910
890 B=DT/l
900 IF B=INT(B)THEN 940
910 NEXT I
920 A=NT
930 B=DT
940 PRINT STR$(A);"/";STR$(B)
950 IF A<B THEN 1020
960 W=INT(A/B)
970 R=A-W*B
980 IF R<>0 THEN 1010
990 PRINT "OR";W
1000 GOTO 1020
1010 PRINT :"OR ";W;" ";STR$(R);"/";STR$(B)
1020 PRINT ^"CHOOSE:":" 1 ANOTHER PROBLEM"
1030 PRINT " 2 END PROGRAM"
1040 CALL KEY(0,K,S)
1050 IF K=49 THEN 110
1060 IF K<>50 THEN 1040
1070 CALL CLEAR
1080 END
Program 7-33. Simultaneous Equations - TI-99/4A sm\
110 CALL CLEAR
120 PRINT "SOLVING SIMULTANEOUS" •
130 PRINT "EQUATIONS BY THE" ^ 140 PRINT "MATRIX INVERSION TECHNIQUE"
150 PRINT ::"SOLVE [A][X] = [B]" ^
160 PRINT :"ENTER DEGREE OF THE MATRIX"
170 PRINT "OR NUMBER OF EQUATIONS":: ^
180 INPUT "N = ":N
190 IF N<10 THEN 220 ^
200 PRINT :"N MUST BE < 10":: ^ 210 GOTO 180
220 IF N>1 THEN 250 ^
230 PRINT :"1<N<10{3 SPACES}TRY AGAIN"::
240 GOTO 180 "^
250 PRINT ::"THE COEFFICIENTS OF X"
260 PRINT "ARE THE 'A' MATRIX." ^
270 PRINT :"INPUT THE VALUES ROW BY ROW:"
280 PRINT :"A(1,1),A(1,2),A(1,3),..."
290 PRINT "A(2,1),A(2,2),A(2,3), ..." ^ 300 PRINT ". ": ". ": ". "
310 PRINT "A(N,1),A(N,2),...,A(N,N)"::: ^
320 FOR 1=1 TO N
330 FOR J=l TO N ^
340 INPUT "A("&STR$(I)&","S.STR$(J)&") = ":A(I,J) A
350 W(I,J)=A(I,J) **>
360 NEXT J ^ 370 PRINT
380 INPUT "B("&STR$(I)&") = ":B(I) ^
390 PRINT ::
400 NEXT I ^
410 PRINT ::"—SOLVING—"::
420 REM INVERT MATRIX A ^
430 FOR C=l TO N _
440 IF W(C,C)<>0 THEN 460
450 GOSUB 710 ^
460 W(C,C)=1/W(C,C)
470 FOR D=l TO N ^
480 IF (D-C)=0 THEN 540
490 W(D,C)=W(D,C)*W(C,C) ^ 500 FOR E=l TO N
510 IF (E-C)=0 THEN 530 ^ 520 W(D,E)=W(D,E)-W(D,C)*W(C,E) ^ 530 NEXT E
540 NEXT D <^
550 FOR E=l TO N
560 IF (E-C)=0 THEN 580 **
570 W(C,E)=-W(C,C)*W(C,E)
580 NEXT E
590 NEXT C
600 PRINT ::"SOLUTION VECTOR X:"::
610 FOR 1=1 TO N
620 X(I)=0
630 FOR J=l TO N
640 X(I)=X(I)+W(I,J)*B(J)
650 NEXT J
660 PRINT :"X("&STR$(I)&") = ";X(I)
670 NEXT I
680 PRINT ::
690 GOTO 870
700 REM SUB TO SWITCH ROWS
710 FOR F=C+1 TO N
720 IF W(F,C)=0 THEN 820
730 FOR E=l TO N
740 DW=W(C,E)
750 W(C,E)=W(F,E)
760 W(F,E)=DW
770 NEXT E
780 DB=B(C)
790 B(C)=B(F)
800 B(F)=DB
810 GOTO 860
820 NEXT F
830 PRINT "SORRY, DETERMINANT=0."
840 PRINT "NO UNIQUE SOLUTION."
850 GOTO 870
860 RETURN
870 PRINT :"PRESS 1 FOR ANOTHER PROBLEM"
880 PRINT TAB(7);"2 TO END PROGRAM"
890 CALL KEY(0,K,S)
900 IF K=49 THEN 110
910 IF K<>50 THEN 890
920 CALL CLEAR
930 END
Program 8-3. Bubble Sort - TI-99/4A

110 DIM A(50) ^
120 FOR 1=1 TO 50
130 RANDOMIZE ^
140 A(I)=INT(RND*100+1) _
150 PRINT A(I);
160 NEXT I ^ 170 PRINT ::
200 LIM=49 /^\
210 SW=0
220 FOR 1=1 TO LIM ^
230 IF A(I)<=A(I+1)THEN 290 _
240 AA=A(I) ^ 250 A(I)=A(I+1) ~
260 A(I+1)=AA
270 SW=1 /m>
280 LIM=I
290 NEXT I ^
300 IF SW=1 THEN 210
500 FOR 1=1 TO 50 /mh
510 PRINT A(I);
520 NEXT I
530 END
Program 8-6. Shell Sort - TI-99/4A

110 DIM A(50)
120 FOR 1=1 TO 50
130 RANDOMIZE
140 A(I)=INT(RND*100+1)
150 PRINT A(I);
160 NEXT I
170 PRINT :: 4*
200 B=l
210 B=2*B ^
220 IF B<=50 THEN 210 ^
230 B=INT(B/2) ^ 240 IF B=0 THEN 500 ^ 250 FOR 1=1 TO 50-B
260 C=I *^
270 D=C+B
280 IF A(C)<=A(D)THEN 340 ^
290 AA=A(C)
300 A(C)=A(D) ""*>
310 A(D)=AA a
320 C=C-B
330 IF C>0 THEN 270 ***
340 NEXT I
350 GOTO 230 ^
500 FOR 1=1 TO 50
510 PRINT A(I); ^ 520 NEXT I _
530 END
Program 8-9. Maximum and Minimum Sort - TI-99/4A

110 DIM A(50)
120 N=50
130 FOR 1=1 TO 50
140 RANDOMIZE
150 A(I)=INT(RND*100+1)
160 PRINT A(I);
170 NEXT I
180 PRINT : :
200 S=l
210 MN=A(S)
220 IMIN=S
230 MX=MN
240 IMAX=S
250 FOR I=S TO N
260 IF A(I)<=MX THEN 290
270 MX=A(I)
280 IMAX=I
290 IF A(I)>=MN THEN 320
300 MN=A(I)
310 IMIN=I
320 NEXT I
330 IF IMINON THEN 350
340 IMIN=IMAX
350 AA=A(N)
360 A(N)=A(IMAX)
370 A(IMAX)=AA
380 N=N-1
390 AA=A(S)
400 A(S)=A(IMIN)
410 A(IMIN)=AA m\
420 S=S+1
430 IF N>S THEN 210 **\
500 FOR 1=1 TO 50
510 PRINT A(I);
520 NEXT I
530 END
Program 8-12. Quick Sort - TI-99/4A

110 CALL CLEAR
120 DIM A(50)
130 N=50
140 FOR 1=1 TO N
150 RANDOMIZE
160 A(I)=INT(RND*100)+1
170 PRINT A(I)?
180 NEXT I
190 PRINT
200 S(l)=l
210 S(2)=N
220 T=l
230 IF T=0 THEN 520
240 T=T-1
250 I=2*T
260 L=S(I+1)
270 M=S(l+2)
280 X=A(L)
290 J=L
300 K=M+1
310 K=K-1
320 IF K=J THEN 400
330 IF X<=A(K)THEN 310
340 A(J)=A(K)
350 J=J+1
360 IF K=J THEN 400
370 IF X>=A(J)THEN 350
380 A(K)=A(J)
390 GOTO 310
400 A(J)=X
410 IF M-J<2 THEN 460
420 I=2*T
430 S(l+l)=J+l
440 S(I+2)=M
450 T=T+1
460 IF K-L<2 THEN 230
470 I=2*T
480 S(I+1)=L
490 S(I+2)=K-1
500 T=T+1
510 GOTO 230
520 PRINT
530 FOR 1=1 TO N
540 PRINT A(I);
550 NEXT I
560 END
Program 8-15. Test Scores - TI-99/4A

110 CALL CLEAR
120 DIM N$(17),S(2),P(17) **
130 FOR 1=0 TO 17
140 READ N$(I),F$ ^
150 PRINT :N$(I);", "?F$
160 N$(l)=F$&" "&N$(I) ^ 170 P(I)=0 ^ 180 FOR J=0 TO 2
190 READ T(J) ^
200 P(I)=P(I)+T(J)
210 S(J)=S(J)+T(J) ^
220 PRINT T(J);
230 NEXT J
240 A=INT(P(I)/3+.5)
250 PRINT " ";P(I);A
260 V=V+A
270 L=L+3
280 IF L<21 THEN 300
290 GOSUB 730
300 NEXT I
310 FOR J=0 TO 2
320 S(J)=INT(S(J)/18+.5)
330 NEXT J
340 PRINT :"AVERAGES"
350 PRINT S(0);S(1);S(2);"{7 SPACES}";INT(V/18+.5)
360 M=16
370 W=0
380 FOR 1=0 TO M
390 IF P(I)>=P(I+1)THEN 480
400 D=P(I)
410 P(I)=P(I+1)
420 P(I+1)=D
430 W=l
440 M=I
450 D$=N$(I)
460 N$(l)=N$(l+l)
470 N$(I+1)=D$
480 NEXT I
490 IF W=l THEN 370
500 GOSUB 730
510 FOR 1=0 TO 17
520 PRINT P(l);INT(P(I)/3+.5);N$(l)
530 NEXT I
540 GOTO 790
550 DATA ADAMS,BOB,91,82,71
560 DATA BROWN,ANDY,96,84,72
570 DATA CARSON,GRANT,94,79,67
580 DATA ELLIS,CINDY,82,88,65
590 DATA HANSEN,ANGIE,96,67,72
600 DATA HANSEN,KELLY,72,97,65
610 DATA JENSEN,ED,88,71,71
620 DATA JENSEN,LENA,71,97,78
630 DATA KENT,RICHARD,77,73,78
640 DATA LARSEN,JOHN,92,82,83
650 DATA MARTIN,CHERY,88,71,97
660 DATA NELSON,RANDY,80,72,99
670 DATA ROGERS,BRIAN,78,77,98
680 DATA SMITH,AURA,97,80,64
690 DATA SMITH,BILL,62,67,87
700 DATA SMITH,JIM,64,81,87
710 DATA TAYLOR,JENNY,77,61,64
720 DATA WHITE,LEWIS,94,65,94
730 L=0 ^ 740 PRINT :"PRESS <ENTER>";
750 CALL KEY(0,K,ST) **
760 IF K<>13 THEN 750
770 CALL CLEAR ^
780 RETURN
790 END
Program 9-5. Teeth Wisdom - TI-99/4A
110 CALL CLEAR
120 PRINT TAB(4)•"******************"
130 PRINT TAB(4);"*,,;TAB(21);"*"
140 PRINT TAB(4);"* TEETH WISDOM *"
150 PRINT TAB(4);"*,,;TAB(21);"*"
160 PRINT TAB(4);"******************":::::: :
170 PRINT : ::
180 FOR C=94 TO 157
190 CALL COLOR(2,13,l)
200 READ C$
210 CALL CHAR(C,C$)
220 CALL COLOR(2,16,1)
230 NEXT C
240 DATA 0000001F1010101,000000FF
250 DATA 00000F1F3F7F7F7F,000083C7C7E7EFEF,0000E0F0F8FCFEFE,FFFFFFFFFFFFFFFFF,EFEFEFEFEFEFEFEF,0 ii ni i
260 DATA 70F8FCFCFEFEFEFF,FEF8C,0E1F3F3F7F7F7FFF,7F1F03,,,,,00000000000000F8,010101010101,FCFEFFFFFEFCF83
270 DATA 000000000000001F,3F7FFFFF7F3F1F0C,80808080808,,,0F1F1F1F1F1F0E,E0F8F8F8F8F8F,071F1F1F1F1F0F
280 DATA F0F8F8F8F8F87,1F3F3F3F3F3F1F,F0F8F8F8F8F8F,0F1F1F1F1F1F0F,F8FCFCFCFCFCF8,7FFFFFFFFFFF7F
290 DATA E0F0F0F0F0F0E,070F0F0F0F0F07,FEFFFFFFFFFFFE,0303030303030301,FFFFFFFFFFFFFFFF,C0C0C0C0C0C0C08,""
300 DATA FFFFFCF0E0C08,FFFF7E181,FFFF3F0F070301,FFFEFEFCFCF8F8F8,FF7F7F3F3F1F1F1F,F0F0F0F0F0F0F0F
310 DATA 0F0F0F0F0F0F0F0F,E0E0E0E0C0C0808,0707070703030101,0000000000071FFF,0000031FFFFFFFFF,00FFFFFFFFFFFFFFFF
320 DATA 0000C0F8FFFFFFFF,000000000070F8FF,01070F1F3F3F7FFF,80E0F0F8FCFCFEFF,010103030307070F,8080C0C0C0E0E0F
330 DATA 0F0F1F1F1F3F3F3F,F0F0F8F8F8FCFCFC,3F7F7F7F7F7F7F7F7F,FCFEFEFEFEFEFEFE
340 FOR C=9 TO 13
350 CALL COLOR(C,16,10)
360 NEXT C
370 CALL COLOR(14,10,1)
380 CALL COLOR(15,10,1)
390 CALL COLOR(16,10,1)
400 CALL CLEAR
410 CALL COLOR(2,2,1)
420 PRINT "YOU WILL SEE A DIAGRAM OF"
430 PRINT :"THE TEETH WITH THE NAMES"
440 PRINT :"0F THE TEETH." ^ 450 A$=CHR$(128)&CHR$(129)
460 B$=CHR$(130)&CHR$(131) m^
470 PRINT ::"WHEN YOU KNOW THE NAMES,"
480 PRINT :"PRESS <ENTER>." ^
490 D$=CHR$(132)&CHR$(133)&CHR$(134)
500 PRINT ::"THE LABELS WILL CLEAR AND" ^ 510 PRINT :"YOU WILL BE GIVEN A QUIZ.":::: ^ 520 FOR C=l TO 5 •
530 READ N$(C) m,
540 W$(C)=N$(C)
550 NEXT C ^
560 DATA CENTRAL INCISORS,LATERAL INCISORS,CUSPIDS
,BICUSPIDS,MOLARS ^ 570 GOSUB 1160 A
580 CALL CLEAR ~
590 PRINT TAB(; "\_CENTRAL INCISORS" ^ 600 PRINT TAB(5);CHR$(145)&CHR$(146)&CHR$(147)&CHR
$(148)&CHR$(149) ^s
610 PRINT TAB(4);CHR$(150);"e*abe";CHR$(151);" LA
TERAL INCISORS" ^
620 PRINT " ";CHR$(150);"phcdcjs";CHR$(151)
630 PRINT " ";CHR$(152);"qrieeektu";CHR$(153);,,CUS ^ PIDS" ^
640 PRINT " ";CHR$(154);"xyeeeeezt";CHR$(155);"BIC USPIDS" /^
650 PRINT " ";CHR$(156);"|{,}e";CHR$(136)&CHR$(137
)&CHR$(138);"e{,}";CHR$(127)&CHR$(157) ^
660 PRINT " e";A$;CHR$(139);" "?CHR$(140);B$;"e"
;"MOLARS"
670 PRINT " e";A$;CHR$(141);" ";CHR$(142);B$;"e" ^
680 PRINT " ";D$;CHR$(143);n ";CHR$(144);D$
690 PRINT " eee eee"::: A*
700 GOSUB 1160
710 CALL HCHAR(23,16,32,13) **>
720 CALL HCHAR(10,10,32,18)
730 CALL HCHAR(12,13,32,18)
740 CALL HCHAR(14,15,32,7)
750 CALL HCHAR(15,15,32,9)
760 CALL HCHAR(17,15,32,6) ^
770 PRINT TAB(;"NAME THE TEETH"::
780 FOR C=l TO 5 ^.
790 RANDOMIZE
800 I=INT(5*RND+1) ^
810 IF W$(I)="" THEN 800
820 PRINT TAB(9);C;W$(I)
830 A(I)=C ^ 840 W$(I)=""
850 NEXT C
860 FOR C=l TO 5
870 I=INT(5*RND+1)
880 IF A(I)=0 THEN 870
890 CALL KEY(0,K,S)
900 CALL COLOR(I+8,6,10)
910 CALL COLOR(I+8,16,10)
920 IF S<1 THEN 890
930 IF (K<49)+(K>53)THEN 890
940 CALL HCHAR(18+K-48,11,62)
950 IF K-48=A(I)THEN 1000
960 CALL SOUND(150,330,0)
970 CALL SOUND(150,262,0)
980 CALL VCHAR(19,11,32,5)
990 GOTO 890
1000 CALL SOUND(150,262,0)
1010 CALL SOUND(150,330,0)
1020 CALL SOUND(150,392,0)
1030 CALL SOUND(200,523,0)
1040 CALL VCHAR(19,11,32,5)
1050 A(I)=0
1060 NEXT C
1070 PRINT ::"TRY AGAIN? (Y/N)"
1080 CALL KEY(0,K,S)
1090 IF K=78 THEN 1200
1100 IF K<>89 THEN 1080
1110 FOR C=l TO 5
1120 W$(C)=N$(C)
1130 NEXT C
1140 GOTO 580
1150 STOP
1160 PRINT TAB(14);"PRESS <ENTER>"
1170 CALL KEY(0,K,S)
1180 IF K<>13 THEN 1170
1190 RETURN
1200 CALL CLEAR
1210 END
Program 9-11. States and Capitals - TI-99/4A

100 GOTO 160
110 PRINT :::"PRESS <ENTER>";
120 CALL KEY(0,K,S)
130 IF K<>13 THEN 120
140 CALL CLEAR
150 RETURN
160 CALL CLEAR
170 PRINT "** STATES AND CAPITALS **":::::
180 PRINT "TYPE IN THE NAME OF THE"
190 PRINT "CAPITAL AS THE STATE NAME"
200 PRINT "APPEARS."
210 PRINT :"CITIES MUST BE SPELLED":"CORRECTLY TO
BE COUNTED":"AS CORRECT."
220 PRINT :"PRESS LEFT ARROW TO ERASE."::
230 DIM S$(49),C$(49)
240 FOR 1=0 TO 49
250 READ S$(l),C$(l)
260 NEXT I
270 DATA ALABAMA,MONTGOMERY,ALASKA,JUNEAU,ARIZONA,PHOENIX,ARKANSAS,LITTLE ROCK,CALIFORNIA,SACRAMENTO,COLORADO
280 DATA DENVER,CONNECTICUT,HARTFORD,DELAWARE,DOVER,FLORIDA,TALLAHASSEE,GEORGIA,ATLANTA,HAWAII,HONOLULU,IDAHO
290 DATA BOISE,ILLINOIS,SPRINGFIELD,INDIANA,INDIANAPOLIS,IOWA,DES MOINES,KANSAS,TOPEKA,KENTUCKY,FRANKFORT
300 DATA LOUISIANA,BATON ROUGE,MAINE,AUGUSTA,MARYLAND,ANNAPOLIS,MASSACHUSETTS,BOSTON,MICHIGAN,LANSING
310 DATA MINNESOTA,ST. PAUL,MISSISSIPPI,JACKSON,MISSOURI,JEFFERSON CITY,MONTANA,HELENA,NEBRASKA,LINCOLN
320 DATA NEVADA,CARSON CITY,NEW HAMPSHIRE,CONCORD,NEW JERSEY,TRENTON,NEW MEXICO,SANTA FE,NEW YORK,ALBANY
330 DATA NORTH CAROLINA,RALEIGH,NORTH DAKOTA,BISMARCK,OHIO,COLUMBUS,OKLAHOMA,OKLAHOMA CITY,OREGON,SALEM
340 DATA PENNSYLVANIA,HARRISBURG,RHODE ISLAND,PROVIDENCE,SOUTH CAROLINA,COLUMBIA,SOUTH DAKOTA,PIERRE
350 DATA TENNESSEE,NASHVILLE,TEXAS,AUSTIN,UTAH,SALT LAKE CITY,VERMONT,MONTPELIER,VIRGINIA,RICHMOND
360 DATA WASHINGTON,OLYMPIA,WEST VIRGINIA,CHARLESTON,WISCONSIN,MADISON,WYOMING,CHEYENNE
370 G=0
380 P=19
390 GOSUB 110
400 FOR N=l TO 50
410 CALL CLEAR
420 F=0
430 RANDOMIZE
440 R=INT(50*RND)
450 IF S$(R)="" THEN 440
460 PRINT N
470 PRINT ::::"STATE: ";S$(R)
480 PRINT ::"CAPITAL: ":::::
490 B$=""
500 G=G+1
510 CALL SOUND(100,1497,2)
520 FOR 1=1 TO 20
530 CALL KEY(0,K,S)
540 IF K=13 THEN 670
550 IF S<1 THEN 530
560 IF K<>8 THEN 640
570 1=1-1
580 IF I>0 THEN 610
590 1=1
600 GOTO 530
610 B$=SEG$(B$,1,LEN(B$)-1)
620 CALL HCHAR(P,11+1,32)
630 GOTO 530
640 CALL HCHAR(P,11+I,K)
650 B$=B$&CHR$(K)
660 NEXT I
670 IF B$=C$(R)THEN 780
680 CALL SOUND(100,330,4)
690 CALL SOUND(100,262,4)
700 CALL HCHAR(P,12,32,20)
710 F=F+1
720 IF F=l THEN 490
730 FOR 1=1 TO LEN(C$(R))
740 CALL HCHAR(P,11+I,ASC(SEG$(C$(R),I,1)))
750 NEXT I
760 GOSUB 110
770 GOTO 410
780 PRINT "CORRECT I"
790 CALL SOUND(100,262,2)
800 CALL SOUND(100,330,2)
810 CALL SOUND(100,392,2)
820 CALL SOUND(150,523,2)
830 S$(R)=""
840 NEXT N
850 CALL CLEAR
860 PRINT "YOU ANSWERED ALL 50."
870 PRINT ::::"NUMBER OF GUESSES: ";G:::::
880 END
Program 9-14. South America - TI-99/4A

110 DIM S$(11),C$(11)
120 CALL CLEAR ^
130 PRINT TAB(4);"** SOUTH AMERICA **" ^ 140 PRINT ::"MATCH THE COUNTRY WITH THE"::"CAPITAL
CITY."::"PRESS THE CORRECT LETTER."::::: Ah
150 FOR 1=0 TO 11
160 READ S$(I),C$(I) ^N
170 NEXT I
180 DATA COLOMBIA,BOGOTA,BRAZIL,BRASILIA,ARGENTINA ^ ,BUENOS AIRES,VENEZUELA,CARACAS,FRENCH GUIANA, ^ CAYENNE
190 DATA GUYANA,GEORGETOWN,PERU,LIMA,URUGUAY,MONTE VIDEO,SURINAME,PARAMARIBO,ECUADOR,QUITO
200 DATA CHILE,SANTIAGO,BOLIVIA,SUCRE
210 PRINT ::"PRESS ANY KEY TO START."
220 CALL KEY(0,K,S) m
230 IF S<1 THEN 220 ^
240 SC=0 m
250 FOR T=l TO 12 ^
260 CALL CLEAR
270 RANDOMIZE Ah
280 R=INT(12*RND)
290 IF S$(R) = "" THEN 280 "^
300 FOR 1=0 TO 11
310 PRINT TAB(4);CHR$(65+I);" ";C$(l) ^ 320 NEXT I ^
330 PRINT ::S$(R);" ???"
340 CALL KEY(0,K,S) m.
350 IF (K<65)+(K>76)THEN 340
360 CALL HCHAR(23,26,K) Ah
370 IF K-65=R THEN 400
380 PRINT :"THE CAPITAL IS "?C$(R) m< 390 GOTO 420
400 PRINT :"CORRECT I" ^ 410 SC=SC+1 ^
420 S$(R)=""
430 PRINT :::"PRESS <ENTER>"; Ah
440 CALL KEY(0,K,S)
450 IF K<>13 THEN 440 ^
460 NEXT T
470 CALL CLEAR
480 PRINT "SOUTH AMERICA"::::"YOUR SCORE WAS";SC:: ^ "OUT OF 12 COUNTRIES.":::
490 END
Program 9-17. Countries - TI-99/4A

110 DIM A$(7),C$(50),C(50)
120 CALL CLEAR
130 PRINT "YOU V7ILL BE GIVEN THE":: "NAME OF A COUN
TRY. "
140 PRINT :"WHERE IS IT LOCATED?"
150 PRINT ::"SEVEN CONTINENTS ARE LISTED."::"CHOOS
E THE RIGHT NUMBER."
160 FOR 1=0 TO 50
170 READ C$(I),C(I)
180 NEXT I
190 DATA FRANCE,3,BRAZIL,2,LIBYA,5,UNITED STATES,1,CANADA,1,MEXICO,1,PERU,2,NORWAY,3,U.S.S.R.,4,CHILE,2
200 DATA CHINA,4,JAPAN,4,SPAIN,3,DENMARK,3,ITALY,3,PORTUGAL,3,ENGLAND,3,INDIA,4,IRAN,4,GERMANY,3
210 DATA ARGENTINA,2,URUGUAY,2,PARAGUAY,2,ECUADOR,2,BOLIVIA,2,COLOMBIA,2,VENEZUELA,2,KOREA,4,IRELAND,3
220 DATA QUEENSLAND,6,NEW SOUTH WALES,6,WESTERN AUSTRALIA,6,MONGOLIA,4,NIGER,5,CHAD,5,ZAIRE,5,HONDURAS,1
230 DATA EGYPT,5,SWITZERLAND,3,CAMBODIA,4,VIETNAM,4,FINLAND,3,SWEDEN,3,GUATEMALA,1,IRAQ,4
240 DATA ZAMBIA,5,BANGLADESH,4,AUSTRIA,3,POLAND,3, ^ CZECHOSLAVAKIA,3,GUYANA,2 ^ 250 FOR 1=1 TO 7
260 READ A$(I)
270 NEXT I
280 DATA NORTH AMERICA, SOUTH AMERICA, EUROPE, ASIA, AFRICA,AUSTRALIA,ANTARCTICA
290 PRINT ::"PRESS ANY KEY TO BEGIN." ^
300 CALL KEY(0,K,S)
310 IF S<1 THEN 300 ^ 320 T=l
330 SC=0
340 FOR 1=1 TO 10 m,
350 CALL CLEAR
360 PRINT "1 NORTH AMERICA":"2 SOUTH AMERICA":"3 E ***
UROPE":"4 ASIA"
370 PRINT "5 AFRICA":"6 AUSTRALIA":"7 ANTARCTICA": ^
380 RANDOMIZE m>
390 R=INT(51*RND) ^ 400 IF C$(R)="" THEN 390
410 PRINT C$(R) **
420 PRINT :-."WHICH CONTINENT?"
430 CALL KEY(0,K,S) **
440 IF (K<49)+(K>55)THEN 430
450 CALL HCHAR(23,21,K)
460 IF K=C(R)+48 THEN 490 ^
470 PRINT ::"SORRY, ";C$(R);" IS IN":A$(C(R))
480 GOTO 520 *ms
490 PRINT :"CORRECT 1"
500 SC=SC+1 <**
510 C$(R)=""
520 PRINT ::"PRESS <ENTER>"; ^ 530 CALL KEY(0,K,S) A
540 IF K<>13 THEN 530
550 NEXT I m^
560 CALL CLEAR
570 PRINT "OUT OF 10 PROBLEMS," ^
580 PRINT :"YOUR SCORE IS";SC
590 PRINT ::::"TRY AGAIN? (Y/N)" ^ 600 CALL KEY(0,K,S) ^ 610 IF K=78 THEN 710
620 IF K<>89 THEN 600 ,•*
630 T=T+1
640 IF T<5 THEN 330
650 PRINT ::"ONE MOMENT PLEASE."
660 RESTORE
670 FOR 1=0 TO 50
680 READ C$(I),C(I)
690 NEXT I
700 GOTO 330
Program 9-21. Multiplication Invasion - TI-99/4A

110 DIM A(3),C(3),R(3),P(3) ' 120 CALL CLEAR ^ 130 PRINT "* MULTIPLICATION INVASION *" ^ 140 PRINT ::"USE THE ARROW KEYS TO MOVE LEFT OR R
IGHT." /%
150 PRINT :"GET ABOVE THE PROBLEM THEN TYPE THE A
NSWER AND":"PRESS <ENTER>" **>
160 PRINT :"DON'T LET THE INVADERS FLOATTO THE TOP
OR THE GAME ENDS1" "*»
170 PRINT ::"CORRECT = 10 POINTS":"WRONG ^ {3 SPACES}= -5 POINTS"
180 CALL CHAR(96,"FFFFFFFFFFFFFFFF") «
190 CALL COLOR(9,7,l)
200 CALL CHAR(97,"08080808087F3E1C08") **i
210 PRINT ::"CHOOSE: 1 BEGINNER":TAB(9);"2 MEDIUM"
:TAB(9);"3 FAST"; ^ 220 CALL KEY(0fK,S) ^ 230 IF (K<49)+(K>51)THEN 220 ^ 240 L=(4-(K-48))*2 ^ 250 CALL CLEAR
260 SC=0 ^*s
270 T=0
280 C(l)=3 ^
290 C(2)=14
300 C(3)=25 "* 310 FOR 1=1 TO 3 ^
320 CALL HCHAR(1,C(I),96,5)
330 NEXT I **
340 FOR Y=l TO 3
350 RANDOMIZE "*<
360 GOSUB 880
370 NEXT Y
380 Y=2
390 CALL HCHAR(2,C(Y)+2,97)
400 KL=0
410 CALL KEY(0,K,S)
420 IF S<1 THEN 770
430 IF K<>83 THEN 490
440 CALL HCHAR(2,C(Y)+2,32)
450 Y=Y-1
460 IF Y>0 THEN 770
470 Y=l
480 GOTO 770
490 IF K<>68 THEN 550
500 CALL HCHAR(2,C(Y)+2,32)
510 Y=Y+1
520 IF Y<4 THEN 770
530 Y=3
540 GOTO 770
550 IF (K<48)+(K>57)THEN 770
560 CALL HCHAR(2,C(Y)+2,K)
570 B=K-48
580 CALL KEY(0,K,S)
590 IF S<1 THEN 580
600 IF K=13 THEN 640
610 IF (K<48)+(K>57)THEN 580
620 CALL HCHAR(2,C(Y)+3,K)
630 B=10*B+(K-48)
640 IF B<>A(Y)THEN 740
650 FOR 1=262 TO 392 STEP 12
660 CALL SOUND(-99,I,2)
670 NEXT I
680 CALL HCHAR(R(Y),C(Y),32,5)
690 CALL HCHAR(2,C(Y)+2,32,2)
700 GOSUB 880
710 SC=SC+10
720 T=T+1
730 GOTO 760
740 CALL SOUND(100,-6,4)
750 SC=SC-5
760 CALL HCHAR(2,C(Y)+2,32,2)
770 KL=KL+1
780 CALL HCHAR(2,C(Y)+2,97)
790 IF KL<L THEN 410
800 PRINT
810 FOR 1=1 TO 3
820 CALL HCHAR(1,C(I),96,5)
830 R(I)=R(I)-1
840 IF R(I)<=2 THEN 980
850 NEXT I
860 CALL HCHAR(2,C(Y)+2,97)
870 GOTO 400 m880
M=INT(10*RND) _
890 N=INT(10*RND)
900 A(Y)=M*N /ms
910 CALL HCHAR(23,C(Y),M+48)
920 CALL HCHAR(23,C(Y)+1,42) ^H
930 CALL HCHAR(23,C(Y)+2,N+48)
940 CALL HCHAR(23,C(Y)+3,61) ^ 950 CALL HCHAR(23,C(Y)+4,63) A
960 R(Y)=23 ^ 970 RETURN **
980 FOR 1=1 TO 16
990 CALL SCREEN(I) ^
1000 NEXT I
1010 CALL CLEAR "*>
1020 PRINT "GAME OVER" _
1030 PRINT ::"SCORE = ";SC::"NUMBER OF PROBLEMS =
1040 END
  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...