View Full Version : TI-74 Basic programs?

February 17th, 2018, 07:50 AM
I'm not sure if this the proper place to post this, but does anyone have any TI-74 Basic language programs they'd like to share?

Like I've said, I'm no programmer, but I have couple that might be useful. The more I play with the 74, the more I'm fascinated by it. I'm finding more and more reasons to use it; from storing readily available passwords offline to helping me do my bills. Nobody can peek or poke around in this machine or track me while I'm using it. As best I can tell, it's totally secure.

If you do have any programs, just post them here so all can benefit.

The 74 may be old, but it's a great little machine....and puts us completely in charge.


February 24th, 2018, 08:39 PM
Like said, I'm no programmer. But here's a program to calculate the gearing of your bicycle in 'gear inches'. (check my math :)

100 PRINT "Gear Inches": PAUSE 1
110 PRINT EQA;"> wheel dia,in. ";: ACCEPT NULL(EQA),EQA
120 PRINT EQB;"> rear tooth #,fw. ";: ACCEPT NULL(EQB),EQB
130 PRINT EQC;"> front tooth #,crank ";: ACCEPT NULL(EQC),EQC

150 PRINT USING "dist crank rev,in. ###.###";EQX: PAUSE
160 PRINT USING "dist crank rev,ft. ###.###";EQY: PAUSE
170 PRINT USING "wheel dia equiv,in ###.###";EQZ: PAUSE
180 GOTO 100

WHEEL DIAMETER, inches, overall rear rim/tire diameter (26")

REAR TOOTH COUNT, tooth count of desired free wheel/cassette sprocket (34t)

FRONT TOOTH COUNT, tooth count of desired crank sprocket (28t)

DISTANCE, CRANK REVOLUTION, inches, distance bicycle travels in one crank revolution (67.267")

DISTANCE, CRANK REVOLUTION, feet, distance bicycle travels in one crank revolution (5.606')

GEAR INCHES, inches, the gearing effect wheel diameter equivalent in inches (21.412" whl/dia)

February 28th, 2018, 08:39 PM
Pretty cool, Thumbs. I've got a bicycle dynamometer program somewhere -

I'll see if I can find it.


March 3rd, 2018, 05:52 AM
I have a difficult time keeping track of passwords. I don't like leaving passwords around on scraps of paper. And I don't leave important information in any device that has access to the outside world. Here's a program that I use on my 74 to keep track of my passwords.

1 Z$="": PRINT "Usernames Passwords": PAUSE 1: GOTO 18000

1000 DATA 1,<retail username password>
1010 DATA ABCD aaaa 1234a5,ABCD bbbb 2345b6
1020 DATA ABCD cccc 3456c7,eof

1100 DATA 2,<automotive username password>
1110 DATA ABCD xxxx 1234x5,ABCD yyyy 2345y6
1120 DATA ABCD zzzz 3456z7,eof

18000 PRINT Z$;" > ";: ACCEPT NULL(Z$),Z$: PRINT ">..";: RESTORE
18005 IF Z$="" THEN Z$="1"
18010 IF Z$="0" THEN PRINT: GOTO 1
18015 READ A$: IF A$=Z$ THEN 18040
18020 IF A$="end" THEN PRINT Z$;" not found": Z$="": PAUSE: GOTO 18000
18030 GOTO 18015
18040 IF A$="eof" THEN PRINT "> end..": PAUSE 1: GOTO 18000
18050 PRINT A$: PAUSE: READ A$: GOTO 18040

32000 DATA eof
32010 DATA end

March 4th, 2018, 09:02 AM
Have not played enough with my TI-74 and I need to!

One of the first things I did when I got it back in Dec '16 was benchmark it calculating the factorial of a given number, the TI-74 fared better than the portable Tandy PC-6 and I made a short video of it -> https://youtu.be/Kv8epjcPcKk

The program is by all means simple and straight forward...

100 ! Factorial
110 INPUT "Number to Factorial? ";N
130 F=1
140 FOR I=1 TO N
150 F=F*I
160 NEXT I
170 PRINT N;"!=";F=PAUSE
180 END

Completely agree that this portable is a joy to use. As I said, there is a LOT more to do with it. Cheers!

March 5th, 2018, 09:52 PM
Here are some miles per gallon programs I use. My old cars only have speedometers in MPH, so the input distances are in miles. I've used the first program when I've traveled through Canada. The second program is more direct using inputs. The third program I use when I have the 74 with me and don't wish to write info on paper. Since the 74 doesn't seem to store program variable info, I enter the variable info directly into the program for storage.

(edited to correct for undesired emojis -- no space in line 2400, RM$="")

2000 PRINT "Gas Mileage":PAUSE 1
2010 PRINT "Clear y-n ";AM$;" ";:ACCEPT NULL(AM$),AM$
2015 PRINT "Fill tank now...":PAUSE
2020 IF AM$="y"THEN 2400
2030 PRINT "Start mileage";BM;:ACCEPT NULL(BM),BM
2040 PRINT "Drive..refilled tank? y-n ";CM$;" ";:ACCEPT NULL(CM$),CMS
2041 IF CM$="y"THEN 2045
2042 PRINT "Drive..then refill tank":PAUSE :GOTO 2040
2045 PRINT "End mileage";DM;:ACCEPT NULL(DM),DM
2050 PRINT "Refill (g)al or (l)iter ";EM$;" ";:ACCEPT NULL(EM$),EM$
2060 IF EM$="g"THEN 2100
2070 IF EM$="l"THEN 2200
2080 PRINT "g or l...":PAUSE :GOTO 2050

2100 PRINT "Gallons added";FM;:ACCEPT NULL(FM),FM
2110 WM=(DM-BM)/FM:XM=((DM-BM)*1.6093472)/FM
2120 YM=(DM-BM)/(FM*3.785332):ZM=((DM-BM)*1.6093472)/(FM*3.785332)
2130 GOTO 2300

2200 PRINT "Liters added";GM;:ACCEPT NULL(GM),GM
2210 WM=(DM-BM)/(GM*.26417):XM=((DM-BM)*1.6093472)/(GM*.26417)
2220 YM=(DM-BM)/GM:ZM=((DM-BM)*1.6093472)/GM
2230 GOTO 2300

2300 PRINT USING"mi/gal ###.##";WM:PAUSE
2305 PRINT USING"km/gal ###.##";XM:PAUSE
2310 PRINT USING"mi/liter ###.##";YM:PAUSE
2315 PRINT USING"km/liter ###.##";ZM:PAUSE
2320 PRINT "Again y-n ";RM$;" ";:ACCEPT NULL(RM$),RM$
2330 IF RM$="y"THEN 2000 ELSE 2300

2400 BM=0:dM=0:WM=0:XM=0:YM=0:ZM=0:FM=0:CM$="":EM$="":RM$="":GOTO 2030


Clear y-n y
Start mileage 1000
Drive..refilled tank y-n y
End mileage 1100
Refill (g)al or (l)iter g
gallons added 10 (10 gal = 37.85 liter)

mi/gal 10
km/gal 16.09
mi/liter 2.64
km/liter 4.25

.................................................. ....

2000 REM RUN 2000
2010 PRINT "Start miles";START;:INPUT "";START
2020 PRINT "End miles";ENDM;:INPUT "";ENDM
2030 PRINT "Gals added";GALS;:INPUT "";GALS

.................................................. ....

2000 REM RUN 2000
2010 START=1000
2020 ENDM=1100
2030 GALS=10

March 8th, 2018, 09:27 AM
Hi Thumbs - It's possible to store data above the high memory pointer

(assuming you have RAM above the high memory pointer), & it will sur-

vive power cycling, & (usually) crashes.

March 8th, 2018, 08:51 PM
Thanks Jack.

That's good to know. I'm stilling trying to get deeper into the 74.....it may take a while :)

March 27th, 2018, 05:48 PM
My cardiologist said I should lose weight. So, I went online to find information on calories so I could do something on my TI-74. I found this website,


Read their website for more details and complete information. They have information on maintaining calories. If I understand it correctly, anything over your desired weight maintaining calories, you gain weight and anything under you lose weight. Below are several routines I made using their math and examples. The routines seem to yield the example results they gave. I'm no programmer or dietition, so double check any results.

The first two routines are short and direct. The third is more descriptive.

20000 REM (for men) AL=activity level 1.2 1.375 1.55 1.725 1.9
20010 LBS=175:HTIN=72:AGE=30:AL=1.55
20020 PRINT "INT((66+(6.23*LBS)+(12.7*HTIN)-(6.8*AGE))*AL)":PAUSE:END

To use the above routine (for men), seed the variables on line 20010; LBS=desired weight in pounds, HTIN=height in inches, AGE=age in years, AL=activity level, sedentary 1.2 to extra active 1.9

Then, RUN 20000, press [ENTER], press [SHIFT] [PB] [ENTER] for maintaining calories (2893).

Do similar to use the (for women) routine below.

20100 REM (for women) AL=activity level 1.2 1.375 1.55 1.725 1.9
20110 LBS=140:HTIN=66:AGE=30:AL=1.55
20120 PRINT "INT((655+(4.35*LBS)+(4.7*HTIN)-(4.7*AGE))*AL)":PAUSE:END


For a more menu driven routine, type in the routine below and RUN 20500.

20500 PRINT "Maintain Calories":PAUSE 1
20505 PRINT MW$;" (m)an or (w)oman ";:ACCEPT NULL(MW$),MW$
20510 PRINT LBS;"desired lbs ";:ACCEPT NULL(LBS),LBS
20520 PRINT HTIN;"height inches ";:ACCEPT NULL(HTIN),HTIN
20540 PRINT "1=sedentary 2=lightly active":PAUSE
20550 PRINT "3=moderately 4=very active":PAUSE
20560 PRINT "5=extra active":PAUSE
20570 PRINT AL$;" activity level 1-5 ";:ACCEPT NULL(AL$),AL$
20580 IF AL$="1"THEN AL=1.2:GOTO 20640
20590 IF AL$="2"THEN AL=1.375:GOTO 20640
20600 IF AL$="3"THEN AL=1.55:GOTO 20640
20610 IF AL$="4"THEN AL=1.725:GOTO 20640
20620 IF AL$="5"THEN AL=1.9:GOTO 20640
20630 PRINT "error..1-5":PAUSE:GOTO 20540
20640 IF MW$="m"THEN 20670
20650 IF MW$="w"THEN 20690
20660 PRINT "error..m w":PAUSE:GOTO 20505

20670 SCM=(66+(6.23*LBS)+(12.7*HTIN)-(6.8*AGE))*AL
20680 PRINT "Maintain calories";INT(SCM);"@";LBS:PAUSE:GOTO 20500

20690 SCW=(655+(4.35*LBS)+(4.7*HTIN)-(4.7*AGE))*AL
20700 PRINT "Maintain calories";INT(SCW);"@";LBS:PAUSE:GOTO 20500

Examples for 20500 routine:

Man, LBS=175 HTIN=72 AGE=30 AL=3, Maintain calories=2893

Woman, LBS=140 HTIN=66 AGE=30 AL=3, Maintain calories=2221

April 5th, 2018, 01:11 PM
I was helping my grandson rebuild his air-cooled VW Beetle engine. He needed to determine his compression ratio for each cylinder. We went online and found compression ratio calculators. Most were for engines with head gaskets and possibly dome/dished pistons which he has neither. He has 87mm cylinders with flat pistons, no head gasket, and a 69mm stroke. I made this program for the TI-74 a little more specific to his situation. For comparison, we used this websites calculator,


If we entered the head gasket bore diameter as, 0 and the head gasket thickness as, 0 and dome/dished piston volume as, 0 with a deck height of 1.5mm it yielded, 7.962 to 1 Comp/Ratio with total displacement volume of 58.917cc (that's his combustion chamber 50cc + his deck height displacement of 8.917cc)

It looks like the TI-74 is yielding similar results as the online calculator. Like I've said before, I'm no programmer or engineer, so check over the results for yourself. At any rate, he used the 74 to determine his compression ratio as it was easier to use.

4000 PRINT "Comp/Ratio Air-cooled VW":PAUSE 1
4010 PRINT BMM;" bore,mm ";:ACCEPT NULL(BMM),BMM
4020 PRINT SMM;" stroke,mm ";:ACCEPT NULL(SMM),SMM
4030 PRINT DMM;" deck height,mm ";:ACCEPT NULL(DMM),DMM
4040 PRINT HCC;" comb chamber vol,cc ";:ACCEPT NULL(HCC),HCC
4050 CYLD=BMM^2*SMM*.0031416/4
4060 DHDP=BMM^2*DMM*.0031416/4

4080 PRINT USING"Compression Ratio ##.###";COMR;:PRINT " to 1":PAUSE
4090 PRINT USING"Deck Height Disp,cc ##.###";DHDP:PAUSE
4100 GOTO 4000




April 21st, 2018, 08:17 PM
I'm not sure if this will make sense to anyone else, but this helps me pay my bills. I admit my monthly bills are quite simple. CK in line 1 is my current checking account balance. DATE$ is for date or indentity. NOTE$ is for a short note or reminder. The values in line 100 to 195 are the stored current bill identities and values. Change or expand the programs bill identities and values as needed (these are ficticious values). Enter 0 for no bill value.

Since the TI-74 doesn't retain variables when turned off, I'm storing the initial bill values in DATA statements. CK will load in from the program at the beginning; alter CK thereafter if desired. All of the bill values must be entered in by hand. When a bill value is present as a left side value, enter it. After that, alter any value to see how the (exp) expense total and the (nw.acc.bal) new checking account balance changes. The left figure is from the DATA statements, the center figure is the entered in value and the right figure is the tally. I suppose I could tally the bills in one line on the display directly but this has a little more discription. It isn't great but it helps me even-out my flexible payment bills on my fixed monthly income.

1 CK=2000:dATE$="Bills: apr2 2018": GOTO 100
2 REM 4-18-18

100 DATA house,300.50
110 DATA card1,50.75
120 DATA card2,60.55
125 DATA card3,70.25
130 DATA phone,90.65
140 DATA elec,80.75
150 DATA n-gas,70.40
160 DATA ins1,87.35
170 DATA ins2,75.80
175 DATA ins3,63.25
180 DATA misc1,12.20
185 DATA misc2,40.60
190 DATA misc3,23.80,eof

195 NOTE$="none"

203 PRINT CK;"ck.acc.bal > ";:ACCEPT NULL(CK),CK
204 IF CK=0 THEN 1

205 READ R$:T$=R$:IF R$="house"THEN READ R$ ELSE 205

220 READ R$:T$=R$:IF R$="card1"THEN READ R$ ELSE 220
230 PRINT T$;" ";R$;C1;TAL;"> ";:ACCEPT NULL(C1),C1:TAL=TAL+C1

240 READ R$:T$=R$:IF R$="card2"THEN READ R$ ELSE 240
250 PRINT T$;" ";R$;C2;TAL;"> ";:ACCEPT NULL(C2),C2:TAL=TAL+C2

252 READ R$:T$=R$:IF R$="card3"THEN READ R$ ELSE 252
254 PRINT T$;" ";R$;C3;TAL;"> ";:ACCEPT NULL(C3),C3:TAL=TAL+C3

260 READ R$:T$=R$:IF R$="phone"THEN READ R$ ELSE 260

280 READ R$:T$=R$:IF R$="elec"THEN READ R$ ELSE 280

300 READ R$:T$=R$:IF R$="n-gas"THEN READ R$ ELSE 300

320 READ R$:T$=R$:IF R$="ins1"THEN READ R$ ELSE 320
330 PRINT T$;" ";R$;I1;TAL;"> ";:ACCEPT NULL(I1),I1:TAL=TAL+I1

340 READ R$:T$=R$:IF R$="ins2"THEN READ R$ ELSE 340
350 PRINT T$;" ";R$;I2;TAL;"> ";:ACCEPT NULL(I2),I2:TAL=TAL+I2

352 READ R$:T$=R$:IF R$="ins3"THEN READ R$ ELSE 352
354 PRINT T$;" ";R$;I3;TAL;"> ";:ACCEPT NULL(I3),I3:TAL=TAL+I3

360 READ R$:T$=R$:IF R$="misc1"THEN READ R$ ELSE 360
370 PRINT T$;" ";R$;M1;TAL;"> ";:ACCEPT NULL(M1),M1:TAL=TAL+M1

380 READ R$:T$=R$:IF R$="misc2"THEN READ R$ ELSE 380
390 PRINT T$;" ";R$;M2;TAL;"> ";:ACCEPT NULL(M2),M2:TAL=TAL+M2

392 READ R$:T$=R$:IF R$="misc3"THEN READ R$ ELSE 392
394 PRINT T$;" ";R$;M3;TAL;"> ";:ACCEPT NULL(M3),M3:TAL=TAL+M3

395 PRINT "note..none";NOTE$:PAUSE

410 PRINT "exp";TAL;" nw.acc.bal";NCK:PAUSE





exp 1026.85
nw.acc.bal 973.15

May 12th, 2018, 10:53 PM
I made this small RPN style calculator mainly to work on my old car's suspension using a polar to rectangular(pr) and a rectangular to polar(rp) routine in Basic. I find it helpful to roll over or alter previous inputs. Using the TI-74 in calculator mode I used the (x,y) key then P>R and R>P to check RPN Calc's operation. It seems to be working okay, showing similar results as the 74 calculator mode. Check out RPN Calc thoroughly to see if it's working properly before using it. All angles are in degrees decimal. Answers with ">" direction indicator (use CTL 4 arrow if desired), uses the "space bar" to bring the answer to 1) input. Use "shift #" to clear or "0" to end. For 'pr' enter radius first then angle. For 'rp' enter x first then y.

16000 PRINT "RPN Calc ":PAUSE 1
16001 C=0:Z$="?":d=0:dEG
16002 PRINT "1)";C;": ";:ACCEPT NULL(C),C
16010 PRINT "2)";D;": ";:ACCEPT NULL(D),D
16012 PRINT Z$;") + - * / ^ rt pr rp ";:ACCEPT NULL(Z$),Z$
16015 IF Z$="0"THEN END
16020 IF Z$="+"THEN A=C+D:GOTO 16080
16030 IF Z$="-"THEN A=C-D:GOTO 16080
16040 IF Z$="*"THEN A=C*D:GOTO 16080
16050 IF Z$="/"THEN A=C/D:GOTO 16080
16060 IF Z$="^"THEN A=C^D:GOTO 16080
16070 IF Z$="rt"THEN A=C^(1/D):GOTO 16080
16072 IF Z$="pr"THEN Y=C*SIN(D):X=C*COS(D):GOTO 16100
16073 IF Z$="rp"THEN R=SQR(C^2+D^2):A=ASIN(D/R):GOTO 16110
16078 PRINT ">..error":PAUSE:GOTO 16002

16080 ANS=A:PRINT "ans=";A;":";C;Z$;D;:PAUSE
16090 PRINT ">":A$=KEY$:IF A$="#"THEN 16001
16092 IF A$=" "THEN C=A:GOTO 16002
16093 IF A$="0"THEN END
16095 GOTO 16002

16100 PRINT "x=";X;"y=";Y:PAUSE:GOTO 16002

16110 IF C<0 AND D>0 THEN A=ABS(180-A)
16112 IF C<0 AND D<0 THEN A=ABS(180-A)-360
16120 PRINT "r=";R;CHR$(242);"a=";A:PAUSE:GOTO 16002


1) 1728, 2) 3, rt = 12
1) 100, 2) 40, pr =, x=76.60444431, y=64.27876097
1) 145, 2) 23, rp =, r=146.812806, a=9.013204356

July 11th, 2018, 07:15 AM
Recently I decided to build a small stationary steam engine for entertainment. Not being a professional machinist or engineer, I needed to figure out how to determine and make a small eccentric cam for the valve. I came up with this program for the TI-74. I made a diagram of a cams dimensional values below using text and characters. The diagram and its proportions aren't too pretty but it should give some idea of what I thought was a way to determine an eccentric cams stroke and demensions.

3000 REM RUN 3000
3005 PRINT "Eccentric Cam":PAUSE 1
3010 PRINT ECM;" o/a stroke,in. ";: ACCEPT NULL(ECM),ECM
3020 PRINT DCM;" shaft dia,in. ";: ACCEPT NULL(DCM),DCM
3030 PRINT BCM;" small offset (B),in. ";: ACCEPT NULL(BCM),BCM
3050 PRINT "Large offset (A),in.";ACM:PAUSE
3060 PRINT "Cam dia,in.";CCM:PAUSE
3070 PRINT "Cam radius,in.";RCM:PAUSE:GOTO 3005


overall stroke desired 1.312"
driving shaft diameter .5"
small offset (B) .125"

Large offset (A)= 1.437"
Cam diameter= 2.062"
Cam radius= 1.031"

Cam dia. 2.062"
| |
* *
/ \
1.031" <Rad>+ (+) (overall stroke 1.312")
shaft dia. .5" --------\--- --->| | /
| * | | |
| *
| | | |
1.437" Large offset |< -A- > | | |
| |
| |
B-->| |<--small offset .125

(the text diagram I made won't post properly....sorry, the best I can do)

July 11th, 2018, 03:28 PM
Steam engines are a lot of fun - Here's the dynamometer pgm

I mentioned awhile back - Nothing special, but might be useful...



I should mention that the "Deceleration" term is an attempt to model

the real-world behavior of a bicycle - At low speeds, where the inverse-

square nature of aerodynamic drag is not yet the dominant factor.

July 30th, 2018, 09:07 PM

October 30th, 2018, 06:02 PM
Unit-Unit, 10-30-18

I'm not very good at math. Every now and then I play with electronics. Here's a program I wrote for the TI-74 that converts the value from one unit to another. The conversion range is what I use most.

Here's a unit converter I found on line that could be used in place of or used to confirm the TI-74's results. If you type in the TI-74 program check to make sure it's working properly.



6000 PRINT "Unit-Unit":PAUSE 1
6005 INPUT "Value ";C9," p,n,m,ml,k,mg,g ";Z$," p n m ml u k mg g ";X$

6010 W9=0:A=0:IF Z$="p"THEN W9=C9*10^-12
6020 IF Z$="n"THEN W9=C9*10^-9
6030 IF Z$="m"THEN W9=C9*10^-6
6040 IF Z$="ml"THEN W9=C9*.001
6050 IF Z$="k"THEN W9=C9*1000
6060 IF Z$="mg"THEN W9=C9*10^6
6070 IF Z$="g"THEN W9=C9*10^9

6090 IF X$="p"THEN A=W9*10^12
6100 IF X$="n"THEN A=W9*10^9
6110 IF X$="m"THEN A=W9*10^6
6120 IF X$="ml"THEN A=W9*1000
6130 IF X$="k"THEN A=W9*.001
6140 IF X$="mg"THEN A=W9*10^-6
6150 IF X$="g"THEN A=W9*10^-9
6160 IF X$="u"THEN A=W9:X$="u"

6170 IF W9=0 OR A=0 THEN PRINT"error..":PAUSE:GOTO 6005
6180 PRINT C9;Z$;" =";A;X$:PAUSE:GOTO 6005

Example: Value = 155

155 (ml)milli-sec is how many (m)micro-sec ?

155 (ml)milli-sec = 155000 (m)micro-sec

November 10th, 2018, 08:07 PM
Drive Ratio, 11-10-18

My grandson was setting up his drive train on his air-cooled VW Bug. Since his cooling is tied to engine rpm/fan he wanted to know what his setup would be doing. I made this program for the TI-74 to help him determine what he had. Hope I did it right :)

Here's an online calculator that gives similar mph results,


5000 PRINT "Drive Ratio":PAUSE 1
5005 IMAGE #####.##
5010 PRINT AA;"> r&p ratio to 1 ";:ACCEPT NULL(AA),AA
5020 PRINT BB;"> Xth gear ratio to 1 ";:ACCEPT NULL(BB),BB
5030 PRINT CC;"> engine stroke,in. ";:ACCEPT NULL(CC),CC
5040 PRINT DD;"> engine rpm ";:ACCEPT NULL(DD),DD
5050 PRINT EE;"> tire dia,in. ";:ACCEPT NULL(EE),EE

5100 XX=AA*BB
5110 YY=DD*EE/(XX*336)
5120 ZZ=CC*2*DD/12

5130 PRINT "Drive ratio,? to 1=";:PRINT USING 5005;XX:PAUSE
5140 PRINT "Vehicle speed,mph=";:PRINT USING 5005;YY:PAUSE
5150 PRINT "Piston speed,ft/min=";:PRINT USING 5005;ZZ:PAUSE
5160 GOTO 5000


r&p ratio to 1, 4.125
Xth gear ratio to 1, .89 (4th)
engine stroke,in. 2.717"
engine rpm, 3500
tire dia,in. 24.5"

Drive ratio,? to 1= 3.67
Vehicle speed,mph= 69.52
Piston speed,ft/min= 1584.92

ring & pinion ratio, ? to 1
Xth gear ratio, ? to 1, refers to 1st, 2nd, 3rd, etc... gear ratio
engine stroke, inches
engine rpm, rev/min
tire diameter, mounted tire overall diameter, inches

Drive ratio, final drive ratio (r&p + gear), ? to 1
Vehicle speed, mph
Piston speed, feet/minute (4000 ft/min max)

Caleb Hansberry
November 21st, 2018, 09:48 PM
Thanks for posting these programs here! I love programmable calculators.

November 28th, 2018, 09:12 PM
Bin Dec Hex, 11-28-18

I was given an old Tandy Color Computer. While playing around with it I decided I needed something to convert from binary to decimal to hex. I found these bin-dec-hex converters online.....


They work great but I wanted something that was a little easier and would roll between binary, decimal and hex. So, I wrote this program for my TI-74. It will only do decimal to 1048575, hex to FFFFF and binary a little larger. I confirmed the output with the online converters above and it seems to give similar results. Like I say, I'm no programmer or math expert so if you type it in make sure it's working okay.

9000 PRINT "Bin Dec Hex":PAUSE .8
9002 T8$=Z8$:PRINT Z8$;" bin ";:ACCEPT NULL(Z8$),Z8$
9005 J8=0:A8=0:I8=LEN(Z8$):IF Z8$=""THEN 9000
9010 C8=VAL(SEG$(Z8$,I8,1)):A8=A8+INT(C8*2^J8 ):J8=J8+1:I8=I8-1
9015 IF C8>1 OR C8<0 THEN PRINT "..not binary":PAUSE:Z8$=T8$:GOTO 9000
9020 IF I8=0 THEN PRINT "Dec=";A8:PAUSE:GOTO 9500
9030 GOTO 9010

9500 PRINT A8;"dec ";:ACCEPT NULL(A8 ),A8
9502 IF A8<0 THEN PRINT "..pos # only":PAUSE:GOTO 9500
9505 A9=A8:IF A8>1048575 THEN PRINT "..dec 1048575 max":PAUSE:GOTO 9500
9510 B9=A8/16^4:K9=INT(B9):A8=B9-INT(B9):B9=(A8*16^4)/16^3:C9=INT(B9)
9520 A8=B9-INT(B9):B9=(A8*16^3)/16^2:W9=INT(B9):A8=B9-INT(B9):B9=(A8*16^2)/16
9530 I9=INT(B9):A8=B9-INT(B9):J9=INT(A8*16.001)
9540 A9$="":CC=K9:GOSUB 9600:CC=C9:GOSUB 9600:CC=W9:GOSUB 9600
9550 CC=I9:GOSUB 9600:CC=J9:GOSUB 9600
9560 PRINT "Hex= ";A9$:PAUSE:GOSUB 9800
9570 IF F9$=""THEN PRINT "..not hex":PAUSE:GOTO 9560
9580 GOTO 9000

9600 IF CC=10 THEN A9$=A9$&"A"
9610 IF CC=11 THEN A9$=A9$&"B"
9620 IF CC=12 THEN A9$=A9$&"C"
9630 IF CC=13 THEN A9$=A9$&"D"
9640 IF CC=14 THEN A9$=A9$&"E"
9650 IF CC=15 THEN A9$=A9$&"F"
9660 IF CC<10 THEN A9$=A9$&STR$(CC)

9800 H9$=A9$:F9$="":CT=0
9810 CT=CT+1:G9$=SEG$(H9$,CT,1)
9830 GOTO 9810

9900 IF G9$="F"THEN F9$=F9$&"1111"
9910 IF G9$="E"THEN F9$=F9$&"1110"
9915 IF G9$="D"THEN F9$=F9$&"1101"
9920 IF G9$="C"THEN F9$=F9$&"1100"
9925 IF G9$="B"THEN F9$=F9$&"1011"
9930 IF G9$="A"THEN F9$=F9$&"1010"
9935 IF G9$="9"THEN F9$=F9$&"1001"
9940 IF G9$="8"THEN F9$=F9$&"1000"
9945 IF G9$="7"THEN F9$=F9$&"0111"
9950 IF G9$="6"THEN F9$=F9$&"0110"
9955 IF G9$="5"THEN F9$=F9$&"0101"
9960 IF G9$="4"THEN F9$=F9$&"0100"
9965 IF G9$="3"THEN F9$=F9$&"0011"
9970 IF G9$="2"THEN F9$=F9$&"0010"
9975 IF G9$="1"THEN F9$=F9$&"0001"
9980 IF G9$="0"THEN F9$=F9$&"0000"


bin 11111111111111111111 [enter]
Dec= 1048575 [enter]
1048575 dec 49152 [enter]
Hex= 0C000 [enter]
0C000 hex 0FAE2 [enter]

00001111101011100010 bin [enter]
Dec= 64226 [enter]
64226 dec [enter]
Hex= 0FAE2 [enter]
0FAE2 hex [enter]

December 15th, 2018, 08:16 AM
On the Dec Bin Hex program I found an error today. (I can only edit up to 15 mins after I post). Line 9820 reads:


It should be:

9820 IF CT<6 THEN GOSUB 9900 ELSE Z8$=F9$:GOTO 9000

December 16th, 2018, 12:53 PM
Speaking of spaghetti code... "8)

Just kidding - BASIC limits choice in this regard.

Although it can be done...

January 4th, 2019, 09:39 PM
Conversions, 1-4-19

I thought it would be nice to have a package of my own frequently used conversions. The layout 'mi>km', miles to kilometers, made sense to me. The number 1.6093 multiplied by miles should yield kilometers. Enter your own conversions and multiplier beginning at 7000 in the DATA statements. I included some conversions I frequently use. Use multipliers with more digits for more accurate results.

For conversions using a formula like 'f>c', fahrenheit to celsius, enter the conversion then a -1 for the number multiplier. This will send the program to the 7900s where you can work the equation. Follow the programming example that's there. Keep all conversions with a number multiplier between 7000 and 7399 (above the -1s).

The 'ans' variable on the display will contain the answer. You can use it to seed another input. If you type the program in, make sure it's all working properly. On line 7490 make sure you type 'end..,..' (end, two periods, comma, two periods).

Entering 'conv' for a conversion will list the conversions. Entering 'conv#' will list the conversions plus the conversion multiplier. Compare all conversions to known results before using.

(I'm no programmer but if you have the red sauce I have the code :)

7000 DATA mi>km,1.6093,km>mi,0.6214
7010 DATA yd>m,0.9144,m>yd,1.0936
7020 DATA ft>m,0.3048,m>ft,3.2808

7030 DATA in>mm,25.4,mm>in,0.03937
7040 DATA in>cm,2.54,cm>in,0.3937
7050 DATA in>m,0.0254,m>in,39.37

7060 DATA in2>mm2,645.16,mm2>in2,0.00155
7070 DATA in2>cm2,6.4516,cm2>in2,0.155
7080 DATA ft2>m2,0.0929,m2>ft2,10.764

7090 DATA in3>cm3,16.387,cm3>in3,0.06102
7100 DATA gal>ltr,3.7854,ltr>gal,0.26417
7110 DATA in3>gal,0.004329,gal>in3,231

7120 DATA in3>ltr,0.01639,ltr>in3,61.023
7130 DATA gal>cm3,3785.4,cm3>gal,0.000264
7140 DATA lbs>kgs,0.4536,kgs>lbs,2.2046

7150 DATA mph>ft/s,1.46667,ft/s>mph,0.6818166322

7400 REM only -1s below
7405 DATA f>c,-1,c>f,-1

7490 DATA end..,..

7500 PRINT "Conversion":PAUSE .8:A9$="":B9=0:RESTORE 7000
7510 PRINT Z9$;" conv ";:ACCEPT NULL(Z9$),Z9$
7512 IF Z9$="conv"OR Z9$="conv#"THEN C9=0:GOTO 7800
7518 PRINT C9;"num ";:ACCEPT NULL(C9),C9
7520 READ A9$,B9
7525 IF B9=-1THEN 7900
7530 IF A9$=Z9$THEN 7570
7540 IF A9$="end.."THEN PRINT Z9$;" not found":Z9$="":PAUSE:GOTO 7500
7550 GOTO 7520

7570 ANS=C9*B9
7580 PRINT "ans";C9;A9$;" =";ANS:PAUSE:GOTO 7500

7800 RESTORE 7000
7810 READ A9$,B9$:IF Z9$="conv"THEN PRINT A9$:PAUSE
7815 IF Z9$="conv#"THEN PRINT A9$;" ";B9$:PAUSE
7820 IF A9$="end.."THEN 7500 ELSE 7810
7830 GOTO 7500

7900 IF Z9$="c>f"THEN ANS=(C9*(9/5))+32:A9$=Z9$:GOTO 7580
7910 IF Z9$="f>c"THEN ANS=(C9-32)*(5/9):A9$=Z9$:GOTO 7580

7990 A9$="end..":GOTO 7540


conv lbs>kgs [enter]
0 num 210 [enter]
ans 210 lbs>kgs = 95.256

lbs>kgs conv [enter]
210 num 300 [enter]
ans 300 lbs>kgs = 136.08

lbs>kgs conv kgs>lbs [enter]
300 num 136.08 [enter]
ans 136.08 kgs>lbs = 300.001968

January 25th, 2019, 05:45 AM
Wind Chill, 1-25-19

Sometimes the weather report doesn't give the wind chill. Sometimes my local weather conditions differ from the weather report. When it's really cold outside I like to know the wind chill. I went online and found math for wind chill and made this for the TI-74. It seems to yield similar results as weather forecasts. Check it out.

600 PRINT "Wind Chill":PAUSE .6
630 WCHIL=35.74+(.6215*TEMP)-(35.75*WSPED^.16)+(.4275*TEMP*WSPED^.16)
640 ANS=WCHIL:PRINT USING"ans wind chill,deg f=###.#";WCHIL:PAUSE:GOTO 600


0 temp,deg f -5 [enter]
0 wind speed,mph 13 [enter]
ans wind chill,deg f=-24.5

-5 temp,deg f 13 [enter]
13 wind speed,mph 5 [enter]
ans wind chill,degf= 4.8

January 29th, 2019, 10:00 AM
A few years ago, I wrote a crappy program to calculate prime numbers. Every once in a while, at social gatherings, I'd pull out the TI-74 and announce that whatever number on the screen is a prime number.

March 2nd, 2019, 06:23 AM
Simpson's Rule, 3-2-19

I found this website that calculated the volume of an American football with a definite integral.


As I've said before, I'm no programmer and I'm poor at math. But I wanted to see if I could work a definite integral on my TI-74. I found Simpson's Rule which is supposed to work a definite integral. I programmed Simpson's Rule on my 74. I put the definite integral on line 8100. It seems to work okay....at least it gave the results of their football example.

8000 PRINT "Simpson's Rule":PAUSE 1:Z=0:V=1:Y=0
8005 PRINT "Def.Integral..line 8100":PAUSE 1
8010 PRINT A;"start ";:ACCEPT NULL(A),A
8020 PRINT B;"end ";:ACCEPT NULL(B),B
8030 PRINT C;"step ";:ACCEPT NULL(C),C
8040 D=(B-A)/C:X=A-D
8045 IF (C/2)-INT(C/2)>0 THEN PRINT "..step even #s only":PAUSE :GOTO 8030
8050 X=X+D:IF X>B THEN 8130
8060 IF X=B THEN V=1
8070 IF V=1 THEN 8100
8080 IF V=2 THEN V=4:GOTO 8100
8090 IF V=4 THEN V=2

8100 Y=((-.0944*X^2)+3.4)^2*PI

8105 PRINT "x=";X;" y=";Y
8110 Y=Y*V:IF V=1 THEN V=2
8120 Z=Z+Y:GOTO 8050
8130 F=(Z*D)/3
8140 ANS=F:PRINT "ans=";F:PAUSE:GOTO 8000

Football example:

0 start -5.5 [enter]
0 end 5.5 [enter]
0 step 20 [enter]

ans= 232.1679769 in3 - football volume (cubic inches)

(delete line 8105 if you don't want to see X and Y on the display)

March 2nd, 2019, 07:14 AM
Of course that's assuming it's not the New England Patriots footballs!

Simpson's Rule, 3-2-19

I found this website that calculated the volume of an American football with a definite integral.


As I've said before, I'm no programmer and I'm poor at math. But I wanted to see if I could work a definite integral on my TI-74. I found Simpson's Rule which is supposed to work a definite integral. I programmed Simpson's Rule on my 74. I put the definite integral on line 8100. It seems to work okay....at least it gave the results of their football example.

8000 PRINT "Simpson's Rule":PAUSE 1:Z=0:V=1:Y=0
8005 PRINT "Def.Integral..line 8100":PAUSE 1
8010 PRINT A;"start ";:ACCEPT NULL(A),A
8020 PRINT B;"end ";:ACCEPT NULL(B),B
8030 PRINT C;"step ";:ACCEPT NULL(C),C
8040 D=(B-A)/C:X=A-D
8045 IF (C/2)-INT(C/2)>0 THEN PRINT "..step even #s only":PAUSE :GOTO 8030
8050 X=X+D:IF X>B THEN 8130
8060 IF X=B THEN V=1
8070 IF V=1 THEN 8100
8080 IF V=2 THEN V=4:GOTO 8100
8090 IF V=4 THEN V=2

8100 Y=((-.0944*X^2)+3.4)^2*PI

8105 PRINT "x=";X;" y=";Y
8110 Y=Y*V:IF V=1 THEN V=2
8120 Z=Z+Y:GOTO 8050
8130 F=(Z*D)/3
8140 ANS=F:PRINT "ans=";F:PAUSE:GOTO 8000

Football example:

0 start -5.5 [enter]
0 end 5.5 [enter]
0 step 20 [enter]

ans= 232.1679769 in3 - football volume (cubic inches)

(delete line 8105 if you don't want to see X and Y on the display)

April 3rd, 2019, 07:29 AM
Calories Burned Cycling, 4-3-19

Now that the weather's warmer, I'm back on my bicycle. If I didn't ride my bicycle I'd probably not excercise at all. I vary my ride frequently and often wonder how many calories a given ride burns. I found this Calories Burned Cycling calculator online:


It seems to work good. I decided to write a program for my Ti-74 using their math and info. The Ti-74 yields results pretty close to the example given. Checkout the website for more detailed information with an explanation and examples of MET. I did include some of their MET values I thought were pertinent.

1400 DATA met number is the..
1402 DATA metabolic equivalent of task
1405 DATA leisure 5.5 mph = 3.5 met
1410 DATA leisure 9.4 mph = 5.8 met
1420 DATA bicycling general = 7.5 met
1430 DATA mountain general = 8.5 met
1440 DATA fast 14-15.9 mph = 10 met
1450 DATA racing 16-19 mph = 12 met
1490 DATA end

1500 PRINT "Calories Burned Cycling":PAUSE .8:A7$="":RESTORE 1400
1510 PRINT W;"your weight ";:ACCEPT NULL(W),W
1520 PRINT CW$;" (l)bs or (k)gs ";:ACCEPT NULL(CW$),CW$
1530 IF CW$="l"THEN WT=W*0.45359237:GOTO 1560
1540 IF CW$="k"THEN 1560
1550 GOTO 1520

1560 PRINT MT$;" (m)et or (v)iew ";:ACCEPT NULL(MT$),MT$
1570 IF MT$="v"THEN 1600 ELSE 1590
1580 GOTO 1560

1600 READ A7$
1610 IF A7$="end"THEN RESTORE 1400:GOTO 1560
1620 GOTO 1600

1630 PRINT MIN;"ride mins ";:ACCEPT NULL(MIN),MIN
1640 ANS=((MET*WT*3.5)/200)*MIN
1650 PRINT USING"ans calories burned ####.#";ANS:PAUSE:GOTO 1500


0 your weight 160 [enter]
(l)bs or (k)gs l [enter] -- pounds or kilograms
(m)et or (v)iew m [enter] -- to enter or view met value
0 met 5.8 [enter] -- met number from list
0 ride mins 80 [enter] -- total minutes of bike ride

ans calories burned 589.3

160 your weight 72.72 [enter]
l (l)bs or (k)gs k [enter]
m (m)et or (v)iew [enter]
5.8 met [enter]
80 ride mins [enter]

ans calories burned 589.3

April 3rd, 2019, 10:49 PM
Calories Burned Cycling, corrections, 4-4-19

I found some errors. Change:

1540 IF CW$="k"THEN WT=W:GOTO 1560

1570 IF MT$="v"THEN 1600
1575 IF MT$="m"THEN 1590

The Kgs example result: 590.5

If I find anymore, I'll let you know. Like I've said, I'm no programmer.

May 17th, 2019, 01:14 PM
Right Triangle, 5-17-19

I like playing with old cars. I needed something more flexible than P>R and R>P for suspension geometry and body angles. I made this program for my ti74 that works a right triangle. I tried to describe the labeling I used for the right triangle in the program with text. On input type h for help. All angles are in degrees decimal (deg dec).

I used this prompt for input, " _ _>_ _;_ _ " for "sa>sb;aa" meaning I want Side A using Side B and Angle A. The underscore characters "_ _" in the prompt are [ctl] [5] keyboard characters without any space between.

Before using Right Triangle, run through every input to be sure it's yielding accurate known results. (see IF/THENs below) I gave a right triangle sides and angles example. Expect some rounding error in example results.

After viewing answer with following input values use [space] to repeat the answer. And like usual, I'm no programmer or math expert but the program seems to work good for me.

14000 PRINT "Right Triangle":PAUSE .6:RESTORE 14400:ON ERROR 14490
14005 Z$=D$:PRINT D$;:INPUT " _ _>_ _;_ _ ";D$:IF D$=""THEN D$=Z$
14008 IF D$="h"THEN 14300

14010 IF D$="sa>sb;aa"THEN INPUT "sb ";B,"aa ";C:F=B*TAN(C):GOTO 14210
14020 IF D$="sa>sc;aa"THEN INPUT "sc ";B,"aa ";C:F=B*SIN(C):GOTO 14210
14030 IF D$="sa>sc;ab"THEN INPUT "sc ";B,"ab ";C:F=B*COS(C):GOTO 14210
14040 IF D$="sb>sc;aa"THEN INPUT "sc ";B,"aa ";C:F=B*COS(C):GOTO 14210
14050 IF D$="sb>sa;ab"THEN INPUT "sa ";B,"ab ";C:F=B*TAN(C):GOTO 14210
14060 IF D$="sb>sa;aa"THEN INPUT "sa ";B,"aa ";C:F=B/TAN(C):GOTO 14210
14070 IF D$="sc>sa;aa"THEN INPUT "sa ";B,"aa ";C:F=B/SIN(C):GOTO 14210
14080 IF D$="sc>sb;aa"THEN INPUT "sb ";B,"aa ";C:F=B/COS(C):GOTO 14210
14090 IF D$="sc>sa;ab"THEN INPUT "sa ";B,"ab ";C:F=B/COS(C):GOTO 14210

14100 IF D$="aa>sa;sc"THEN INPUT "sa ";B,"sc ";C:F=ASIN(B/C):GOTO 14210
14110 IF D$="aa>sb;sc"THEN INPUT "sb ";B,"sc ";C:F=ACOS(B/C):GOTO 14210
14120 IF D$="aa>sa;sb"THEN INPUT "sa ";B,"sb ";C:F=ATN(B/C):GOTO 14210
14130 IF D$="ab>sb;sc"THEN INPUT "sb ";B,"sc ";C:F=ASIN(B/C):GOTO 14210
14140 IF D$="ab>sa;sc"THEN INPUT "sa ";B,"sc ";C:F=ACOS(B/C):GOTO 14210
14150 IF D$="ab>sa;sb"THEN INPUT "sa ";C,"sb ";B:F=ATN(B/C):GOTO 14210

14160 IF D$="sa>sb;sc"THEN INPUT "sb ";C,"sc ";B:F=SQR(B^2-C^2):GOTO 14200
14170 IF D$="sb>sa;sc"THEN INPUT "sa ";C,"sc ";B:F=SQR(B^2-C^2):GOTO 14200
14180 IF D$="sc>sa;sb"THEN INPUT "sa ";C,"sb ";B:F=SQR(C^2+B^2):GOTO 14200
14190 PRINT "not found..":PAUSE:GOTO 14005

14200 E=B:B=C:C=E
14210 ANS=F:PRINT "ans";F;SEG$(D$,1,2):PAUSE:PRINT SEG$(D$,4,6);" =";B;";";C
14220 A$=KEY$:IF A$=" "THEN 14210 ELSE 14000

14300 READ H$
14310 IF H$="end"THEN PRINT "end..":PAUSE 1:D$="":GOTO 14000
14330 GOTO 14300

14400 DATA Right Triangle Sides Angles (deg dec)
14402 DATA make an x y number line
14405 DATA where x y cross the angle is 90 deg
14410 DATA the y axis is Side A (sa)
14415 DATA the x axis is Side B (sb)
14420 DATA the hypotenuse from y to x is Side C (sc)
14425 DATA where y and hypotenuse meet is Angle B (ab)
14430 DATA where x and hypotenuse meet is Angle A (aa)
14435 DATA end

14490 PRINT "error..":PAUSE:GOTO 14000

Example: sa=25.5:sb=120:sc=122.68:aa=12:ab=78 (expect some rounding error)

May 17th, 2019, 08:20 PM
Right Triangle edit: 5-17-19

To be sure you're in degree mode put DEG at the beginning of 14000:

14000 DEG:PRINT "Right Triangle":PAUSE .6:RESTORE 14400:ON ERROR 14490

For labeling, x y sides are positive:

14405 DATA where +x +y cross the angle is 90 deg

July 3rd, 2019, 07:05 AM
Heat Index, 7-3-19

Summer is here. Since temperature and humidity will vary from location to location, I decided to make a Heat Index program for my Ti-74 that I could use as I'm traveling and camping. I found this heat index formula,


I also found a chart of temperature/humidity heat index values,


According to the chart, the temperature and humidity inputs need to be in a certain range to yield proper results. The temperature also needs to be in degrees fahrenheit and the relative humidity needs to be in percent. The output is a temperature in degrees fahrenheit of what the input temperature and humidity combined would seem to feel like.

Check results to the chart to be sure the program is working properly. If the answer seems unusual, check it to the chart. The only limit is on the range of the heat index output value. It seems to work okay but remember, I'm no programmer or math expert.

700 PRINT "Heat Index":PAUSE .6
710 PRINT T;"temp,deg f ";:ACCEPT NULL(T),T
720 PRINT RH;"relative humidity,% ";:ACCEPT NULL(RH),RH
730 A1=-42.379+(2.04901523*T):A2=(10.14333127*RH)
740 A3=(0.22475541*T*RH):A4=(6.83782*10^-3*T^2)
750 A5=(5.481717*10^-2*RH^2):A6=(1.2287*10^-3*T^2*RH)
760 A7=(8.5282*10^-4*T*RH^2):A8=(1.99*10^-6*T^2*RH^2)

770 ANS=A1+A2-A3-A4-A5+A6+A7-A8
780 IF ANS>137 OR ANS<80 THEN PRINT "error..inputs out of range":PAUSE:GOTO 710
790 PRINT USING"ans Heat Index,deg f=####.#";ANS:PAUSE:GOTO 700


0 temp,deg f 94
0 relative humidity,% 70
ans Heat Index,deg f= 119.0

94 temp,deg f 90
70 relative humidity,% 65
ans Heat Index,deg f= 102.6

August 20th, 2019, 02:33 PM
Parabola, 8-20-19

I have some left-over thin aluminum roofing flashing. I want to see if I can make a parabolic solar cooker that would grill a hamburger. I need to figure and trace out 1/2 of a parabolic curve for a cardboard template I'll use to trace the curve for the vertical aluminum ribs. I went online for a parabolic calculator but found them a little confusing. So I found a formula and made a program for my ti74. Check the ti74's output to an online calculator.

After punching in some numbers, I decided to make the dish/reflector 6 feet in diameter and 18 inches high/deep. This should put the focus even with the outer edge of the reflector so I can easily mount a support across the dish at the focal point for the grill. I haven't built it but I'm hoping it will generate enough heat at the focal point to cook a hamburger using the sun. Cool if it did. (I must remember to wear good eye protection if I build and use it.)

(enter 0 at 'increment (x)' to start over)

900 PRINT "Parabola":PAUSE .6
910 INPUT "radius (x) ";R9,"height (y) ";T9:C9=T9/R9^2
920 Z9=R9^2/(4*T9):PRINT "focus=";Z9:PAUSE
925 INPUT "increment (x) ? ";K9:I9=K9^2*C9:IF K9<=0 THEN 900
930 IF K9>R9 THEN PRINT "max incremented (x)=";R9:PAUSE:GOTO 925
940 PRINT USING"INCREMENT (y)=###.###";I9;:PRINT " @";K9;"(x)":PAUSE:GOTO 925

My planned dish example:

radius (x) 36"
height (y) 18"
focus= 18"

increment (x) then INCREMENT (y)

1" = .014"
2" = .056"
3" = .125"
4" = .222"
5" = .347"
6" = .500"
7" = .680"
8" = .889"
9" = 1.125"
10" = 1.389"
11" = 1.681"
12" = 2.000"
13" = 2.347"
14" = 2.722"
15" = 3.125"
16" = 3.556"
17" = 4.014"
18" = 4.500"
19" = 5.014"
20" = 5.556"
21" = 6.125"
22" = 6.722"
23" = 7.347"
24" = 8.000"
25" = 8.681"
26" = 9.389"
27" = 10.125"
28" = 10.889"
29" = 11.681"
30" = 12.500"
31" = 13.347"
32" = 14.222"
33" = 15.125"
34" = 16.056"
35" = 17.014"
36" = 18.000"

November 4th, 2019, 08:54 PM
Combined Gas Law, 11-4-19

On one of my old cars I want to increase the pressure in my copper radiator and raise the boiling point of the coolant. Using water as the coolant, what temperature would my coolant boil with a 16 psi radiator cap instead of my current 15 psi cap? I wanted the answer in customary English units of which I'm most familiar. I found this Combined Gas Law calculator online....


I made a program for my Ti74. (I don't always have access to wifi and my phone is 'dumb') The program yields similar results to the online calculator. If I'm understanding and calculating correctly, going from a 15 psi cap at a 212 deg f boiling point to a 16 psi cap should yield a boiling temp of 257 deg f. I'm no math expert or programmer so check the results for yourself. But I think I'll give a 16 psi cap a try.

1100 PRINT "Combined Gas Law":PAUSE .8
1105 PRINT "Enter 0 For":PAUSE .8
1107 PRINT "Desired Quanity":PAUSE .8
1110 PRINT A;"> V1,in3 ";:ACCEPT NULL(A),A:V1=A
1120 PRINT B;"> P1,psi ";:ACCEPT NULL(B),B:P1=B
1130 PRINT C;"> T1,deg f ";:ACCEPT NULL(C),C:T1=C+459.67
1140 PRINT D;"> V2,in3 ";:ACCEPT NULL(D),D:V2=D
1150 PRINT E;"> P2,psi ";:ACCEPT NULL(E),E:P2=E
1160 PRINT F;"> T2,deg f ";:ACCEPT NULL(F),F:T2=F+459.67

1170 IF A=0 THEN X=(V2*P2*T1)/(P1*T2):X$="V1,in3=":A=X:GOTO 1240
1180 IF B=0 THEN X=(V2*P2*T1)/(V1*T2):X$="P1,psi=":B=X:GOTO 1240
1190 IF C=0 THEN X=(V1*P1*T2)/(V2*P2):X=X-459.67:X$="T1,deg f=":C=X:GOTO 1240
1200 IF D=0 THEN X=(V1*P1*T2)/(P2*T1):X$="V2,in3=":D=X:GOTO 1240
1210 IF E=0 THEN X=(V1*P1*T2)/(V2*T1):X$="P2,psi=":E=X:GOTO 1240
1220 IF F=0 THEN X=(V2*P2*T1)/(V1*P1):X=X-459.67:X$="T2,deg f=":F=X:GOTO 1240
1230 PRINT "error..":PAUSE:GOTO 1100

1240 ANS=X:PRINT "ans ";X$;X:PAUSE:GOTO 1100

For my radiator:

V1=1 in3 [enter]
P1=15 psi [enter]
T1=212 deg f [enter]

V2=1 in3 [enter]
P2=16 psi [enter]
T2=0 [enter]

T2=256.778 deg f

December 15th, 2019, 06:17 AM
Stat, 12-15-19

My granddaughter was showing me how to use/do paired statistics. She had her TI-84 and I had my TI-74 in Calc Mode trying to keep up with her. In Calc Mode I haven't found a way to view entered data. But unlike variables in Basic Mode, Calc Mode stores the stat data with the TI-74 off. In Basic Mode the Basic programm is saved with the TI-74 off.

In the TI-74 User's Guide, TI gives the stat formulas and a spring example using paired data. I thought if I were to store paired data in Basic DATA statements in a program my paired data would be stored and more easily edited. Using TI's stat formulas I wrote a Basic program to do stats. The program yields the same results for TI's spring example as calculated in the Calc Mode using the [stat] keys. How many lines of DATA statements before you're out of memory or it errors itself out, I don't know. I allowed almost 500 program lines for the paired data.

Like I say, I'm no math expect or programmer so check it out for yourself. The program is intended for use with paired data. I'm going to get my granddaughter to show me a few more things now that I can view, edit and enter data more easily.

1 DATA 27,99
2 DATA 32,152
3 DATA 23,81
4 DATA 25,98
5 DATA 31,151
6 DATA 28,112

499 DATA 1.E+126,1.E+126

500 ON ERROR 810:RESTORE:X=0:Y=0:N=0:SUMX=0:SUMY=0
505 N=N+1:READ X,Y:PRINT "Stat";X;Y
510 IF X=1.E+126 AND Y=1.E+126 THEN 580
570 GOTO 505

590 PRINT "sumy =";SUMY:PAUSE
600 PRINT "meanx =";MEANX:PAUSE
610 PRINT "meany =";MEANY:PAUSE
620 PRINT "sumx2 =";SUMX2:PAUSE
630 PRINT "sumy2 =";SUMY2:PAUSE
640 PRINT "sumxy =";SUMXY:PAUSE

650 A=(SUMX*(((SUMX*SUMY)/(N-1))-SUMXY))/(((N-1)*SUMX2)-SUMX^2)+(SUMY/(N-1))
660 PRINT "A intercept =";A:PAUSE
670 B=(((N-1)*SUMXY)-(SUMX*SUMY))/(((N-1)*SUMX2)-SUMX^2)
680 PRINT "B slope =";B:PAUSE
690 SX=((((N-1)*SUMX2)-SUMX^2)/((N-1)*((N-1)-1))):SX=SQR(ABS(SX))
700 SY=((((N-1)*SUMY2)-SUMY^2)/((N-1)*((N-1)-1))):SY=SQR(ABS(SY)):R=(B*SX)/SY

710 PRINT "R cor coef =";R:PAUSE
740 PRINT "N =";N-1:N=N-1:PAUSE

770 INPUT "est x or y ";Z$:IF Z$="x"THEN 790
780 IF Z$="y"THEN 800 ELSE 500
790 INPUT "est,x enter y ";Y:X=(Y-A)/B:PRINT "est x =";X:PAUSE:GOTO 770
800 INPUT "est,y enter x ";X:Y=A+(B*X):PRINT "est y =";Y:PAUSE:GOTO 770

810 PRINT "Error..redo":PAUSE:END

Example: enter paired data into program DATA statements starting with line number 1

1 DATA 27,99
2 DATA 32,152
3 DATA 23,81
4 DATA 25,98
5 DATA 31,151
6 DATA 28,112

now RUN, use [enter] to toggle through the results

sumx = 166
sumy = 693
meanx = 27.66666667
meany = 115.5
sumx2 = 4652
sumy2 = 84415
sumxy = 19667
A intercept = -114.8483146
B slope = 8.325842697
R cor coef = .9697571933
SX = 3.444802849
SY = 29.57532756
N = 6

estimate x, (enter y) 84.97191011
est x= 24

estimate y, (enter x) 24
est y= 84.97191011

December 15th, 2019, 02:25 PM
Stat, 12-15-19 Edit:

I can only edit a short time after I post. I was looking over the Stat program and I see I was a little redundant. You can reduce the repetitive math by replacing these lines if you want. Stat should operate the same and yield the same results.

580 N=N-1:PRINT :PRINT "sumx =";SUMX:PAUSE


670 B=((N*SUMXY)-(SUMX*SUMY))/((N*SUMX2)-SUMX^2)

690 SX=(((N*SUMX2)-SUMX^2)/(N*(N-1))):SX=SQR(ABS(SX))

700 SY=(((N*SUMY2)-SUMY^2)/(N*(N-1))):SY=SQR(ABS(SY)):R=(B*SX)/SY


January 22nd, 2020, 06:41 PM
Ohm DC, 1-22-2020

I wanted to be able to work a list of formulas directly. I put the formulas in DATA statements. With the [+] [-] keys I can scroll up and down the formula list. When I find a formula I want, I break the program and do [SHIFT] [PB]. I store the formula holding [FN] and [SHIFT] then [1]. I seed the variables, recall the formula with [FN] [1] then [ENTER] the formula and look at the variable result.

Sometimes I seed the variables in the DATA statement followed by the formula and a PRINT statement. I break the program, recall with [SHIFT] [PB] then [ENTER] the formula for the result. In the program below I include some Ohms Law DC formulas I use. Here's a webite that has more formulas.


I find this quicker and easier than writing seperate small programs or typing everything in repeatedly. I'm no programmer or math expert, so check everything out before using.


1 DATA Ohm DC..use + - keys
6 DATA R=P/I^2
7 DATA R=E^2/P

99 DATA end..

100 C9=0:DIM A9$(105)
110 C9=C9+1:READ A9$(C9)
120 IF A9$(C9)="end.."THEN 200
130 GOTO 110

200 C9=0
210 C9=C9+1:PRINT A9$(C9):IF A9$(C9)="end.."THEN 230
220 IF KEY$="+"THEN C9=C9+1:PRINT A9$(C9)
225 IF C9>98 THEN C9=99
230 IF KEY$="-"THEN C9=C9-1:PRINT A9$(C9):IF C9<2 THEN C9=0 ELSE 230
240 IF A9$(C9)="end.."THEN C9=C9-1:GOTO 230
250 GOTO 210

Examples: E=12 R=2 I=6

[RUN] [ENTER] [+]


E=I*R [FN]and[SHIFT] [1]

[FN] [1] E=I*R [ENTER]

E [ENTER] 12


[RUN] [ENTER] [+]




February 20th, 2020, 08:32 PM
Vectors, 2-20-20

I could find a single magnitude and angle using [P>R] in calc mode. I wrote this program to find the resultant of a number of vectors. All angles are in degrees decimal (dd). On a quadrant, angles are positive rotating counter-clock-wise (CCW) 0 to 359 degrees. 'resang-360' shows the resultant angle negative from 0 rotating in the clock-wise (CW) direction.

I went online to find examples of vector addition and the resultant. There are many websites explaining the process. Here are two with worked examples and a third with example and calculator. The Vectors program seems to give similar results. [spc] bar at the end repeats the answer and [enter] returns to the beginning. Re-RUN to clear.




I'm no math expert or programmer so check the program out completely for yourself. I might have missed something or there could be thing's of which I'm unaware.

6000 PRINT "Vectors":PAUSE .6:DEG
6002 PRINT "..all angles deg dec":PAUSE 1.2
6005 VA=0:VB=0:PRINT X;"# of vectors ";:ACCEPT NULL(V),V
6008 IF V>9 OR V<2 THEN PRINT "error..2 to 9":PAUSE:GOTO 6005
6010 PRINT M9(V);"#";V;"mag ";:ACCEPT NULL(M9(V)),M9(V)
6012 PRINT N9(V);"#";V;"dd ";:ACCEPT NULL(N9(V)),N9(V)
6015 IF N9(V)<0 THEN N9(V)=N9(V)+360
6020 IF V=1 THEN 6100 ELSE V=V-1:GOTO 6010

6100 V=X:PRINT"..."
6110 A=SIN(N9(V)):SA(V)=M9(V)*A:A=COS(N9(V)):SB(V)=M9(V )*A
6120 VA=VA+SA(V):VB=VB+SB(V):V=V-1:IF V=0 THEN 6200
6130 GOTO 6110

6210 IF VA>0 AND VB<0 THEN F=180+F
6220 IF VA<0 AND VB<0 THEN F=180+F
6230 IF VA<0 AND VB>0 THEN F=360+F
6240 PRINT "resmag= ";E;"mag":PAUSE:PRINT "resang= ";F;"dd":PAUSE
6250 PRINT "resang-360= ";RESANG-360;:PRINT "dd":PAUSE
6260 PRINT "[spc] or [enter]":IF KEY$=" "THEN 6240 ELSE 6005

Example 1, with the boat example:

0 # of vectors, 2
0 # 2 mag, 15000 N
0 # 2 dd, 30 dd
0 # 1 mag, 20000 N
0 # 1 dd, -50 dd

resmag= 27003.49804 N
resang= 343.1644917 dd
resang-360= -16.8355083 dd

(from 0 dd, 343.1644917 CCW same as -16.8355083 CW)


Example 2, with the series RLC circuit:

0 # of vectors, 3
0 # 3 mag, 245.04 ohm
0 # 3 dd, 90 dd
0 # 2 mag, 250 ohm
0 # 2 dd, 0 dd
0 # 1 mag, 1.7684E3 ohm
0 # 1 dd, -90 dd

resmag= 1543.737571 ohm
resang= 279.3197872 dd
resang-360= -80.68021281 dd


Example 3, 4 vectors with the online calculator:

0 # of vectors, 4
0 # 4 mag, 120
0 # 4 dd, 160
0 # 3 mag, 110
0 # 3 dd, 225
0 # 2 mag, 140
0 # 2 dd, 260
0 # 1 mag, 120
0 # 1 dd, 340

resmag= 238.5998386 mag
resang= 244.6668012 dd
resang-360= -115.3331988 dd