HP Forums
(15C) (BASIC Computer Games) Train (by Walt Koetke) - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (15C) (BASIC Computer Games) Train (by Walt Koetke) (/thread-13136.html)



(15C) (BASIC Computer Games) Train (by Walt Koetke) - Michael Zinn - 06-16-2019 11:20 PM

Source: https://www.atariarchives.org/basicgames/showpage.php?page=175

TRAIN is a program which uses the computer to generate problems with random initial conditions to teach about the time-speed-distance relationship (distance = rate x time). You then input your answer and the computer verifies your response.
TRAIN is merely an example of a student-generated problem. Maximum fun (and benefit) comes more from writing programs like this as opposed to solving the specific problem posed. Exchange your program with others -- you solve their problem and let them solve yours.
TRAIN was originally written in FOCAL by one student for use by others in his class. It was submitted to us by Walt Koetke, Lexington High School, Lexington, Mass.

BASIC
Code:

1 PRINT TAB(33);"TRAIN"
2 PRINT TAB(15);"CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY"
3 PRINT: PRINT: PRINT
4 PRINT "TIME - SPEED DISTANCE EXERCISE": PRINT
10 C=INT(25*RND(1))+40
15 D=INT(15*RND(1))+5
20 T=INT(19*RND(1))+20
25 PRINT " A CAR TRAVELING";C;"MPH CAN MAKE A CERTAIN TRIP IN"
30 PRINT D;"HOURS LESS THAN A TRAIN TRAVELING AT";T;"MPH."
35 PRINT "HOW LONG DOES THE TRIP TAKE BY CAR";
40 INPUT A
45 V=D*T/(C-T)
50 E=INT(ABS((V-A)*100/A)+.5)
55 IF E>5 THEN 70
60 PRINT "GOOD! ANSWER WITHIN";E;"PERCENT."
65 GOTO 80
70 PRINT "SORRY.  YOU WERE OFF BY";E;"PERCENT."
80 PRINT "CORRECT ANSWER IS";V;"HOURS."
90 PRINT
95 PRINT "ANOTHER PROBLEM (YES OR NO)";
100 INPUT A$
105 PRINT
110 IF A$="YES" THEN 10
999 END

HP 15-C Code
Code:

001  LBL 0        | 42,21, 0
002  R/S          |       31
003  CF 8         | 43, 5, 8
004  RTN          |   43  32
005  LBL 1        | 42,21, 1
006  CHS          |       16
007  STO I        |   44  25
008  LBL 2        | 42,21, 2
009  GTO I        |   22  25
010  LBL 3        | 42,21, 3
011  CHS          |       16
012  x<>y         |       34
013  1            |        1
014  -            |       30
015  TEST 0       | 43,30, 0
016  RTN          |   43  32
017  R_down       |       33
018  STO I        |   44  25
019  R_up         |   43  33
020  RTN          |   43  32
021  LBL B        | 42,21,12
022  SF 8         | 43, 4, 8
023  0            |        0
024  GSB 0        |    32  0
025  SF 8         | 43, 4, 8
026  1            |        1
027  GSB 0        |    32  0
028  SF 8         | 43, 4, 8
029  0            |        0
030  GSB 0        |    32  0
031  SF 8         | 43, 4, 8
032  2            |        2
033  GSB 0        |    32  0
034  SF 8         | 43, 4, 8
035  3            |        3
036  GSB 0        |    32  0
037  2            |        2
038  5            |        5
039  RAN#         |   42  36
040  *            |       20
041  INT          |   43  44
042  4            |        4
043  0            |        0
044  +            |       40
045  STO 1        |    44  1
046  1            |        1
047  5            |        5
048  RAN#         |   42  36
049  *            |       20
050  INT          |   43  44
051  5            |        5
052  +            |       40
053  STO 2        |    44  2
054  1            |        1
055  9            |        9
056  RAN#         |   42  36
057  *            |       20
058  INT          |   43  44
059  2            |        2
060  0            |        0
061  +            |       40
062  STO 4        |    44  4
063  SF 8         | 43, 4, 8
064  4            |        4
065  GSB 0        |    32  0
066  RCL 1        |    45  1
067  GSB 0        |    32  0
068  SF 8         | 43, 4, 8
069  5            |        5
070  GSB 0        |    32  0
071  RCL 2        |    45  2
072  GSB 0        |    32  0
073  SF 8         | 43, 4, 8
074  6            |        6
075  GSB 0        |    32  0
076  RCL 4        |    45  4
077  GSB 0        |    32  0
078  SF 8         | 43, 4, 8
079  7            |        7
080  GSB 0        |    32  0
081  SF 8         | 43, 4, 8
082  8            |        8
083  GSB 0        |    32  0
084  SF 9         | 43, 4, 9
085  R/S          |       31
086  CF 9         | 43, 5, 9
087  STO 0        |    44  0
088  RCL 2        |    45  2
089  RCL 4        |    45  4
090  *            |       20
091  RCL 1        |    45  1
092  RCL 4        |    45  4
093  -            |       30
094  /            |       10
095  STO 5        |    44  5
096  RCL 5        |    45  5
097  RCL 0        |    45  0
098  -            |       30
099  1            |        1
100  0            |        0
101  0            |        0
102  *            |       20
103  RCL 0        |    45  0
104  /            |       10
105  ABS          |   43  16
106  .            |       48
107  5            |        5
108  +            |       40
109  INT          |   43  44
110  STO 3        |    44  3
111  1            |        1
112  3            |        3
113  3            |        3
114  CHS          |       16
115  STO I        |   44  25
116  5            |        5
117  RCL 3        |    45  3
118  TEST 7       | 43,30, 7
119  GTO I        |   22  25
120  SF 8         | 43, 4, 8
121  9            |        9
122  GSB 0        |    32  0
123  RCL 3        |    45  3
124  GSB 0        |    32  0
125  SF 8         | 43, 4, 8
126  1            |        1
127  0            |        0
128  GSB 0        |    32  0
129  1            |        1
130  4            |        4
131  3            |        3
132  GTO 1        |    22  1
133  SF 8         | 43, 4, 8
134  1            |        1
135  1            |        1
136  GSB 0        |    32  0
137  RCL 3        |    45  3
138  GSB 0        |    32  0
139  SF 8         | 43, 4, 8
140  1            |        1
141  0            |        0
142  GSB 0        |    32  0
143  SF 8         | 43, 4, 8
144  1            |        1
145  2            |        2
146  GSB 0        |    32  0
147  RCL 5        |    45  5
148  GSB 0        |    32  0
149  SF 8         | 43, 4, 8
150  1            |        1
151  3            |        3
152  GSB 0        |    32  0
153  SF 8         | 43, 4, 8
154  1            |        1
155  4            |        4
156  GSB 0        |    32  0
157  R/S          |       31

Memory Dump
Code:

DM15_M1B
04  000000fffff000  00000000000008  0000000000000c  00000000000eae
08  00000000000000  2faf8befbe2280  00000000000000  00000000000000
14  00000000000000  1b2d2d2d2d2d2d  000000000002e6  00000000000000
18  00000000000000  0000000000007f  00000000a00000  00000000000000
e4  00000000000000  00000000000000  0000000000c220  f4f138ff20f3f1
e8  38ff203520f2f1  38ff20f0f138ff  203320f1f138ff  11f3f4f120f0f1
ec  38ff203320f938  ff887733f597c3  f3f3f143ebfaf5  c0b3fd30fcf0f0
f0  f1fb303545fdfb  3431fc34324049  ffc239ff20f838  ff20f738ff2034
f4  20f638ff203220  f538ff203120f4  38ff44faf0f2eb  fca1f9f142faf5
f8  ebfca1f5f141fa  f0f4ebfca1f5f2  20f338ff20f238  ff20f038ff20f1
fc  38ff20f038ff0b  b2b497c4b270fb  f1c5c303880297  c301b248ffc200
A: 000000fffff000  B: 000000fffffeae  C: 00000000000eae
S: 00000000000000
M: 395033178ff000  N: 00000000000000  G: 04

How to use
This is a compiled BASIC program, compiled with voyc https://gitlab.com/michaelzinn/voyc.
You use it like this:
Code:

| Calculator shows | Means                     | Do    |
| :--------------: | :-----------------------: | :---: |
|   Number         | The number shown          | Press R/S to continue |
| Complex number   | The text with that number | Look up the text, then press R/S to continue |
|   Blinking       | Input required            | Enter a number, then press R/S to continue (you don't have to press ENTER) |

Strings
Read the appropriate string when a complex number gets displayed:

Code:

0:
1:    TRAIN
2:    CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY
3:    TIME - SPEED DISTANCE EXERCISE
4:     A CAR TRAVELING
5:    MPH CAN MAKE A CERTAIN TRIP IN
6:    HOURS LESS THAN A TRAIN TRAVELING AT
7:    MPH.
8:    HOW LONG DOES THE TRIP TAKE BY CAR
9:    GOOD! ANSWER WITHIN
10:    PERCENT.
11:    SORRY.  YOU WERE OFF BY
12:    CORRECT ANSWER IS
13:    HOURS.
14:    ANOTHER PROBLEM (YES OR NO)