• Please review our updated Terms and Rules here

TI-74 Basic programs?

thumbs

Experienced Member
Joined
Feb 1, 2018
Messages
53
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.

Thanks.
 
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
140 EQX=(PI*EQA)/(EQB/EQC): EQY=(EQX/12): EQZ=EQC/EQB*EQA

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)
 
Pretty cool, Thumbs. I've got a bicycle dynamometer program somewhere -

I'll see if I can find it.

Jack
 
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
 
Last edited:
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
120 IF N=0 THEN PRINT 0:pAUSE:STOP
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!
 
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


Example:

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
2040 MPG=(ENDM-START)/GALS
2050 PRINT "MPG =";MPG:pAUSE:GOTO 2010

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

2000 REM RUN 2000
2010 START=1000
2020 ENDM=1100
2030 GALS=10
2040 MPG=(ENDM-START)/GALS
2050 PRINT "MPG =";MPG:pAUSE:END
 
Last edited:
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.
 
Thanks Jack.

That's good to know. I'm stilling trying to get deeper into the 74.....it may take a while :)
 
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,

http://www.seacoastonline.com/article/20070412/ENTERTAIN/704120346

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
20530 PRINT AGE;"age ";:ACCEPT NULL(AGE),AGE
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
 
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,

http://www.csgnetwork.com/compcalc.html

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
4070 COMR=(CYLD+DHDP+HCC)/(DHDP+HCC)

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


Example:

BORE=87mm
STROKE=69mm
DECK HEIGHT=1.5mm
COMBUSTION CHAMBER VOLUME,cc=50cc

COMPRESSION RATIO to 1= 7.962
DECK HEIGHT DISPLACEMENT,cc= 8.917
 
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"


200 PRINT DATE$:pAUSE
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
210 PRINT T$;" ";R$;HS;TAL;"> ";:ACCEPT NULL(HS),HS:TAL=TAL+HS

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
270 PRINT T$;" ";R$;PH;TAL;"> ";:ACCEPT NULL(PH),PH:TAL=TAL+PH

280 READ R$:T$=R$:IF R$="elec"THEN READ R$ ELSE 280
290 PRINT T$;" ";R$;EL;TAL;"> ";:ACCEPT NULL(EL),EL:TAL=TAL+EL

300 READ R$:T$=R$:IF R$="n-gas"THEN READ R$ ELSE 300
310 PRINT T$;" ";R$;GS;TAL;"> ";:ACCEPT NULL(GS),GS:TAL=TAL+GS

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

400 NCK=CK-TAL
410 PRINT "exp";TAL;" nw.acc.bal";NCK:pAUSE
420 TAL=0:RESTORE:GOTO 200


Example:

CK=2000

house=300.50
card1=50.75
card2=60.55
card3=70.25
phone=90.65
elec=80.75
n-gas=70.40
ins1=87.35
ins2=75.80
ins3=63.25
misc1=12.20
misc2=40.60
misc3=23.80

NOTE$="none"


note..none
exp 1026.85
nw.acc.bal 973.15
 
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


Examples:

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
 
Last edited:
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
3040 ACM=ECM+BCM:CCM=ACM+BCM+DCM:RCM=CCM/2
3050 PRINT "Large offset (A),in.";ACM:pAUSE
3060 PRINT "Cam dia,in.";CCM:pAUSE
3070 PRINT "Cam radius,in.";RCM:pAUSE:GOTO 3005


Example:

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)

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

9-11-21

Code:
Example:

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" --------\--------->| | /
                          *          | |
                        |       *
                        |          | | |
                        |<-- A --->| | |
                 1.437" Large offset | |
                                     | |
                                 B-->| |<--small offset .125"
 
Last edited:
Steam engines are a lot of fun - Here's the dynamometer pgm

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

http://ftp.whtech.com/hexbus_cc40_ti74/Software in PCIF format/dyno2.txt

Jack

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.
 
Last edited:
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.

https://www.translatorscafe.com/unit-converter/en/prefixes/15-14/micro-milli/
...................

p=pico
n=nano
m=micro
ml=milli
u=unit
k=kilo
mg=mega
g=giga


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
 
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,

https://spicerparts.com/calculators/transmission-ratio-rpm-calculator


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


Example:

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)
 
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.....

https://www.binaryhexconverter.com/

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)
9670 RETURN

9800 H9$=A9$:F9$="":CT=0
9805 PRINT H9$;" hex ";:ACCEPT VALIDATE(UALPHANUM)NULL(H9$),H9$
9810 CT=CT+1:G9$=SEG$(H9$,CT,1)
9820 IF CT<6 THEN GOSUB 9900 ELSE Z8$=F9$:RETURN
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"
9985 RETURN



Example:

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]
 
Last edited:
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:

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

It should be:

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