HP Forums

Full Version: HP-67 FUN rom documentation thread
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
This thread is to complete the documentation for the newly created 67FUN rom.

Here is a link to the PDF of the current 67 FUN rom manual: 67 FUN rom manual PDF

Feel free to make corrections, etc. Proofing is great!

There are some items that still need to be done. By PROGRAM, here is what is needed.

2636 - Need information for usage of labels and registers
CH - Need information for usage of labels and registers (Chess game)
GOLF - Need information for usage of labels and registers
OAB - Need information for usage of labels and registers (One Arm Bandit)
TTT - Need information for usage of labels and registers (Tic Tac Toe)

AOS - Need information on usage of labels ONLY
JT - Need information on usage of labels ONLY (Jive Turkey)
ML - Need information on usage of labels ONLY (Moon Lander)

ART - Needs a sample game, instructions and information on usage of labels and registers (Artillery)
BSP - Needs a sample game, instructions and information on usage of labels and registers (Battleship)
SPW - Needs a sample game, instructions and information on usage of labels and registers (SpaceWar)
ST - Needs a sample game, instructions and information on usage of labels and registers (Star Trek)

SD - done (Sum of digits)
CHK - done (Chuck-a-luck)
R and S - done (Random Number and Seed)
RF - done (Reset flags)


How can anyone help? For example, if you wish to help with GOLF, determine what some or all of the registers or labels are used for, then post that information here and I will incorporate it into the document and update the PDF / link.

There are four of the games that still need most of the work to be done. I'm working on them, but if someone else wishes to jump in, please help.

I would really love to have this be a very detailed manual so these programs can be enjoyed by a number of people.

So who is able to help? :-)
(11-30-2016 05:07 PM)Gene Wrote: [ -> ]There are some items that still need to be done. By PROGRAM, here is what is needed.

2636 - Need information for usage of labels and registers
CH - Need information for usage of labels and registers (Chess game)
GOLF - Need information for usage of labels and registers

OK, here is some first information.

============================================================

"2636"

Registers:

Game of 26:
00: random seed
01: bank
02: counts occurences of user's number
03: loop counter (13 runs)
04: loop counter (10 dice per run)
05: user's number, amount won/lost

Game of 36:
00: random seed
01: bank
02: control number for indirect call (8=user, 9=HP)
03: user's score
04: HP's score
05: bet

Relevant Labels:
A: Start game of 26
B: Enter bet, start game of 36, user first
C: Enter bet, start game of 36, HP first
D: show bank
08: user rolls a die
09: HP rolls a die
77: roll a die, display scores, check if > 36.
88: adjust and display amount won/lost, show bank
99: roll a die (random number between 1 and 6)

00...03, 06, 07: used

Flags:
00: set if score > 36
01: set=user first, clear=HP first

============================================================

"CH"

Registers:
01: move counter

Relevant Labels:
01: append "P" for pawn
02: append "N" for knight
03: append "B" for bishop
04: append "R" for rook
05: append "Q" for queen
06: append "K" for king
07: display HP's move (calls 98), get user's move and divide by 10
08: second last move
09: display final move, "checkmate"
98: decode move, generate Alpha incl. "check" (if applicable)
99: display HP's move (calls 98), get user's move

00, 10...15: used

============================================================

"GOLF"

Registers:
00: random seed
01: distance to hole
02: modified user input at E, loop counter
03: user input at B, C, D
04: shot counter

Labels:
01: used
02: putter loop
03: displays distance to hole in yards or feet
04: reads and checks user input at B, C, D

A: new game
B: Enter 1..4, hit a wood club
C: Enter 1..9, hit an iron
D: Enter 1..3, hit a wedge
E: Enter 1..15, use the putter

============================================================

I would rather see XROM "S" and XROM "R" in the listings (instead of 23,25 and 23,26). The seed does not require at least 6 decimals, not even preferably. Actually it does not matter whether you enter 0,3 or 0,345678 – one is as good as the other. The seed should have at most 9 decimals, preferably up to 6.

"GOLF": Typo at 2b): "shows" instead of "shots".
"JT": the instructions should say that the secret number is between 0 and 99. ;-)
"CHK": the instructions need some major corrections. The output is different from what's mentioned there (nothing "left or right of the decimal point", missing WIN/PAY message, first example should read 5, 56, 566, etc.).
"SD": I posted an optimized version that requires less registers (and clears flag 29 ;-)). Obviously it did not make it into the ROM.

Dieter
Great!

The PDF in the original post links to the updated PDF with the changes Dieter suggested. It also has more information for the SPW (SpaceWar) game. More to come!

Note as well... I have every intention of doing the sample games for BSP and ART, etc. Just haven't done them yet. It is the more technical details that are missing for programs I did not re-write that are important. :-)

thanks all.

That link is also the same as this one if anyone wants to pull it down from here: 67 FUN rom write-up PDF
(11-30-2016 08:22 PM)Gene Wrote: [ -> ]The PDF in the original post links to the updated PDF.

There are some typos in the updated information.

And JT still has some errors:
1) XEQ "JT"
2) Calculator will ask for the probability of an honest answer (1...100%)
3) Start a new game with B, calculator will generate...
4) Enter your guess for this number and press C (!)
5) Depending on... ...and press C (!) again...
6) ...
7) ...return to step 4 to continue.

Labels:
A: Set honesty, reset guess counter
B: Start a new game
C: Check guess
D: Display number of guesses

The listings and instructions now show the RNG functions as XEQ "R" and XEQ "S". I think this should be XROM "R" resp. XROM "S", like it is displayed on the 41.

"ML": you should mention the flashing display of the final touchdown speed.

"OAB" registers:
R00: random seed
R01: number of remaining games
R02: bank/pot
R03: three-digit number
R04: constant 10 (arghh... should have removed that!)
R05: first digit
R06: second digit
R07: third digit

LBL 01: display remaining games and stop
LBL 02: random number generator (1..9)
LBL 04: store first digit
LBL 05: store second digit
LBL 09: check for 123, 246, 369 etc.

Flags:
00: hold at least one digit
01: hold first digit
02: hold second digit
03: hold third digit

Dieter
Great. All these changes are made and should be "live" in the PDF.

I looked over the CHK listing and I didn't see anything else wrong as before. Note that I changed the example so that one of the games played was a win.
(11-30-2016 10:34 PM)Gene Wrote: [ -> ]I looked over the CHK listing and I didn't see anything else wrong as before. Note that I changed the example so that one of the games played was a win.

My post originally said "CHK still has some errors", but the following corrections refer to JT... #-) So I updated my post a few minutes before you posted your reply. Sorry for the confusion.

Dieter
(11-30-2016 10:34 PM)Gene Wrote: [ -> ]Great. All these changes are made and should be "live" in the PDF.

A note on TTT: The program always displays the three rows of the board (FIX 3) and finally the complete board (FIX 9). Especially during the first moves two adjacent rows of the board may be identical, so there are two pause displays with the same numbers which may be hard to distinguish on a fast emulator. However, on a real device (or e.g. on V41 set to a realistic speed) this is no problem, an additional CLD makes sure the rows are properly separated.

The example in the PDF is a bit misleading here. It should look more like this:
After XEQ "TTT" the initial board with the calculator's first move is displayed:

1.000
1.000
1.010

...followed by the move (2) and the complete board display (right of decimal point):

2.010000000

Now the player selects the lower left corner: 1 [R/S]
And the next move of the calculator (center) is displayed.

2.000
2.010
2.210

5.210010000

...etc. etc.

If a printer is connected, the 3-digit board display should also be printed while the final overview only appears in the display.

Instead of R/S the player can also press B to enter his move. C re-displays the board. After this the next move can again be entered via R/S or B.

LBL A: start game
LBL B: enter move (or simply press R/S)
LBL C: display board

LBL 01...09: Return possible moves for board position 1...9
Since position 2 is initally occupied by the calculator there is no LBL 02

LBL 10: x=1: record HP's move, x=2: record player's move, both stored in R02
LBL 11: display one row of the board
LBL 12: determine HP's move after first move of player
LBL 13: record HP's move on board
LBL 14: split off next digit from R03

R00: move counter
R01: complete board
R02: HP's or player's move
R03: calculator's move (digits represent fields to choose after 1st, 2nd, ... move)

Dieter
PDF has been updated with TTT material. I think the example game gives a better feel now. Thank you.
PDF in this thread has been updated with instructions and sample game for the BSP Battleship program now.
There are some items that still need to be done. By PROGRAM, here is what is needed.

AOS - Need information on usage of labels ONLY
ML - Need information on usage of labels ONLY (Moon Lander)
BSP - Needs information on usage of labels and registers (Battleship)


ART - Needs a sample game, instructions and information on usage of labels and registers (Artillery)
SPW - Needs a sample game, instructions and information on usage of labels and registers (SpaceWar)
ST - Needs a sample game, instructions and information on usage of labels and registers (Star Trek)


TTT - done (Tic Tac Toe)
2636 - done
CH - done (Chess game)
GOLF - done
OAB - done (One Arm Bandit)
SD - done (Sum of digits)
JT - done
CHK - done (Chuck-a-luck)
R and S - done (Random Number and Seed)
RF - done (Reset flags)
(12-01-2016 04:50 PM)Gene Wrote: [ -> ]AOS - Need information on usage of labels ONLY

That's a tough one – many labels are used several times. The only thing I can say for sure is that LBL 99 is the common exit point for all operations. This way a following R/S will set flag 22 so that the result of a manually executed math function can be used for subsequent calcuations with the program (cf. original AOS program documentation). BTW this feature seems to be missing in the PDF.

(12-01-2016 04:50 PM)Gene Wrote: [ -> ]ML - Need information on usage of labels ONLY (Moon Lander)

LBL A: start game.
LBL B: restart. This is a leftover from the original HP67 program. If the user missed the exact moment when the fuel amount has to be enterd (..."0"...) and the key is pressed too late, the running program will stop on a 67/97. Pressing B then restarts it (which will cost you 5 fuel units). On the 41 pressing keys during a running program will (mostly) not do anything, so the whole LBL B part could just as well be removed. Now that it remains included pressing B will also restart the game if you happend to have stopped it anyhow in the middle of a calculation. If there should be a revised ROM version 1.1 some time this part can be removed and with a slight modification also the use of R04 can be saved.

LBL 02: out of fuel, calculate crash velocity
LBL 03: display speed at touchdown
LBL 04: loop for flashing display
LBL 05: calculate new fuel, speed and altitude from fuel units in X
LBL 09: display fuel, speed and altitude, countdown for fuel entry

BTW there still is an error in TTT. Here it says "The integer 2 indicates ready for second move, the user’s". That's not correct. The "2" in the first board output is just the calculator's first move: position 2 in the center of the lower row. Like the 5, 7 and 3 in the following moves.

(12-01-2016 04:50 PM)Gene Wrote: [ -> ]BSP - Needs information on usage of labels and registers (Battleship)
...

Later. ;-)

Edit: here we go.

R00: random seed
R01: battleship's position (X)
R02: battleship's position (Y)
R03: number of hits
R04: battleship's manoevrability in X/Y direction
R05: number of torpedos left

LBL A: start game

LBL 01: main loop (show torpedos, prompt for coordinates)
LBL 02: torpedos > 0, skip "you lose" message
LBL 03: ship destroyed (direct hit or 5 minor hits)
LBL 04: display final win/lose message, reset display

The instructions do not say that the player loses if he runs out of torpedos, i.e. after all twelve have been fired without destroying the ship.

And a final remark on chess: Labels 01...06 translate the original codes 1...6 into the letters P, N, B, R, Q and K. This does not neccessarily mean that this piece (pawn, knight, ... king) is moved, it may also be used for identifying the queen's or king's rook, queen's or king's bishop etc., like in the 5th move of your example (5. B-KB4).

Dieter
Hopefully updated with these changes in the PDF. Fixed that pesky TTT mistake.

Added information for BSP and ART sample games / instructions. ART is difficult for me, so I must be playing very badly!

Link here: PDF of 67 fun rom write-up
(12-01-2016 08:07 PM)Gene Wrote: [ -> ]Hopefully updated with these changes in the PDF. Fixed that pesky TTT mistake.

I originally posted another error report here, but I just realized I used an old version of the PDF. #-)
However, you may have noticed the BSP updates in my previous post.

Edit: There is an error in ML. LBL 04 is not a loop for a flashing *countdown* display. It makes the crash/touchdown speed display flash. So a perfect smooth landing would show a flashing "0". I just managed this in my probably first ML game after 1980 when I played it on a 34C. ;-) And there is a comma missing at LBL 09. It displays fuel, speed and altitude, and then it shows the countdown for the user's fuel entry.

Dieter
(12-01-2016 04:50 PM)Gene Wrote: [ -> ]SPW - Needs a sample game, instructions and information on usage of labels and registers (SpaceWar)

Sent you a copy of SPW documentation.

(12-01-2016 04:50 PM)Gene Wrote: [ -> ]ST - Needs a sample game, instructions and information on usage of labels and registers (Star Trek)

Working on it... Smile
Yes, those changes / updates have been made and the PDF at the link has been updated.

What remains:

1) General proofing and testing of the sample games. Is there a typo or goof?
2) Artillery game - Better sample game? Proof instructions and add register / label information.
3) SpaceWar and StarTrek - need all the stuff. I think this is being worked on by Robert. :-)
(12-01-2016 08:57 PM)RobertM Wrote: [ -> ]Sent you a copy of SPW documentation.



Gene: Sent you an email. No sign of it so far. Must be slow electrons today!
(12-01-2016 08:46 PM)Dieter Wrote: [ -> ]Edit: There is an error in ML. LBL 04 is not a loop for a flashing *countdown* display. It makes the crash/touchdown speed display flash. So a perfect smooth landing would show a flashing "0". I just managed this in my probably first ML game after 1980 when I played it on a 34C. ;-) And there is a comma missing at LBL 09. It displays fuel, speed and altitude, and then it shows the countdown for the user's fuel entry.

Dieter


Gene: Fixed these.
PDF in this thread is now updated with the SpaceWar example game and instructions. Thanks Robert!

Link here: PDF
(12-01-2016 10:58 PM)Gene Wrote: [ -> ]PDF in this thread is now updated with the SpaceWar example game and instructions. Thanks Robert!

Link here: PDF

Oops ... for SpaceWar, I forgot to add a line in "Instructions" (last line, after STATUS, before "Example Game") should be:
Code:
DOCK    d    Dock at the Base – must be adjacent to it
Pages: 1 2
Reference URL's