HP Forums

Full Version: HP97 The journey begins
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
The 95C microcode would be much more interesting, so we could emulate it on another Topcat.
;)
(12-07-2021 10:14 PM)Massimo Gnerucci Wrote: [ -> ]The 95C microcode would be much more interesting, so we could emulate it on another Topcat.
Wink

I don't think the 95C microcode is available.

The 97 has some spare continuous memory available, so I was toying with the idea of using it to give the 97 similar programming capacity of the 95C which would give it 4 times the program and RAM memory.

I was thinking of a simple concept (yeah right - ha ha) whereby the user could switch between 4 memory banks using keys presses like I have for notes printing, ie [f][f][C] would switch program banks depending on what was in register C at the time.

Example - If reg C = 2, press [f][f][C], PGM bank 2 becomes active. From the 97's point of view, it is just normal memory and it will execute everything as normal. [f][f][C] is stored as a single program step.

You could also have [f][f][D] and C register index to select RAM storage banks.

From a coding point of view, the bank swapping is just changing a memory pointer to a base address, however swapping banks in this way means jumping to the current program counter + 1 which would be problematic, as for early Classic microcode jumps.

Things like GTO GSB can be limited to current bank, or if global becomes more complex. I think the 95C allowed access between the 4 programs.

Card storage would be up to 8 cards for program and data, but I would think to save the poor old card reader that these types of programs would be stored/recalled with internal memory and auto load the entire program or data file.

As mentioned, sounds simple but.....

Just thoughts :-)

cheers

Tony
(12-08-2021 01:34 AM)teenix Wrote: [ -> ]
(12-07-2021 10:14 PM)Massimo Gnerucci Wrote: [ -> ]The 95C microcode would be much more interesting, so we could emulate it on another Topcat.
;)

I don't think the 95C microcode is available.
I know, I know, but your genius can extract it from a single picture, can't it? :)

(12-08-2021 01:34 AM)teenix Wrote: [ -> ]The 97 has some spare continuous memory available, so I was toying with the idea of using it to give the 97 similar programming capacity of the 95C which would give it 4 times the program and RAM memory.
(...)
As mentioned, sounds simple but.....

Just thoughts :-)

salivating...
Hi all,

Still making some progress.

I was fiddling with extending the memory size four-fold and include it in the Continuous Memory. This seems possible although a little fiddly. While playing around, the code that prints messages ended up being too complex when coupled to the extra memory size, so I had to strip it all out of the code, pour over the operation of the 97 Microcode and then rewrite my code in a much simplified way. This part of it now appears to work on the 97 emulator and the 97 CPU board.

The hard part is keeping the microcode original, but it has the advantage of using that code to do it's normal routines for running programs, display formatting, error capture etc. That way I don't have to be concerned with it.

I have created the extra memory space which will give 4 banks of 224 step program memory, and 4 separate banks of the HP RAM.

So far I can swap RAM/PGM banks from the keyboard or from a running program.

For example, I can have a program running from Bank 0 and it executes a "GTO Bank 1" instruction. As per the 95C manual, this causes the program counter to reset and start executing the program in Bank 1.

The program in Bank 1 has a "GT0 Bank 2 LBL 0" instruction. From here the program swaps to Bank 2 and the HP Microcode starts searching for LBL 0 from the top of the program. When found, execution starts from there, else the program stops as normal with Error displayed.

At LBL 0, the RAM bank is swapped to Bank 2 and all those registers can now be accessed as normal.

As far as the 97 is concerned, nothing has changed and it is just operating as normal.

The next part to do is more complex. This is the normal "GSB LBL X" instruction. As per the 95C, this will execute a subroutine at LBL X in the same bank. Inside the subroutine, you can jump to another program bank and a "RTN" from that bank, or end of program, will cause a bank swap to the bank that had the matching GSB instruction. This can get complex due to allowing up to 2 more nested GSBs.

Storing and recalling these larger programs and the WDATA and MERGE functions without having to use up to 8 cards still requires some thought and is yet to be implemented. The programs can be stored on cards though, even with the extra program codes. If these cards are loaded into a real HP97, these program codes will be ignored.

cheers

Tony
Hi all,

After playing around with the PGM/RAM banking it is a bit clutzy to use.

The functioning of this is quite complex as my software has to interact with the original HP code and make minor changes to the data as the HP code does its normal processing. Even though it "appears" to work, the HP code is written in a way that preserves the precious ROM space and some code parts are shared with different routines. Some code also jumps into mid points to subroutines as well. This means that tracing the code as it operates can be tricky and as my code relies on things happening in certain sequences, something may happen that only appears that the sequence was working as expected.

Anyway, the long and short of it is that this will take some time to get going properly without modifying the HP code which I don't want to do. There are lots of other modifications required for the memory storage and PC software to cater for the different program/RAM sizes as well.

This will happen eventually, but for now the HP-97 seems to be functional although I'm sure some bug will surface when someone else uses it. I get too close sometimes and can't see the weather through the weather. The boards can be re-flashed so new software shouldn't be a problem.

I have written the 97 code in such a way that re-flashing can take as little as a second depending on what the uploader has to do. This should help to minimize re-flash errors. To help protect the print heads if re-flashing fails and the software goes crazy, the chip will revert to a special boot mode in protected code space, and the only thing it can do is wait for another re-flash.

Some extras that were added are battery-less Continuous Memory, Message printing, time/date printing, battery backed clock with alarm, 97S mode, text displayed program key codes, program storage for over 800 cards, Bluetooth and USB connectivity, re-flash via USB, quick disconnect printer ribbon, original battery charger and protection circuit, and HP 82240 IR interface. Installation is direct plug in replacement, however, the two wires for the charge socket need to be unsoldered and then soldered to the new board. If external charging is preferred, then this can be omitted. You could also discard the battery and run an external 5V 3A plug pak to power the unit if required. All other wiring for the printer and paper advance switch are connected from the top of the board and are easy to plug in.

I have a few PIC chips, other parts and circuit boards available to build just a few boards.

If anyone wants one then please PM or email me. I'll leave them for a day or so, and if I there are more queries than I have parts available for, I will "spin the bottle" at the names and the first that pop out can have first go with the ones that I have.
.
cheers

Tony
Hi all,

I just finished 4 days of 97 CPU board assembly. I could only make 4, I had hoped for 5, but one of the PICs was delivered in a sorry state with the pins bent. I carefully straightened them all awhile back but just before soldering it to the board I noticed a pin that I thought I'd missed. When I went to straighten it, it was loose and broke clean off at the plastic casing. An old Aussie saying when things go wrong - "bugger". There's no hope of fixing this, so a new unobtainium processor lives in the parts bin. Maybe one day I'll have a project for it that doesn't use that pin.

I programmed all boards and a test LED was flashing as it was supposed to do and after a couple of seconds, the buzzer sounded 3 times telling me that the printer has not homed at switch on when it was supposed to. Seeing how it isn't connected yet, that too is a good sign.

More testing and then should be off to the new owners soon.

cheers

Tony
Thanks for the update Tony.

Waitin'... ;)
It arrived today yeah!!! Board looks and works great.

I installed it with little trouble, one thing I needed to figure out was the card reader connector since the one installed on the board has 14 contacts and the cable only has 13. I did have some trouble reading cards, but I think that is the fault of my card reader. Now if I could figure out some of these fancy new features....

Paul.
I got my 97C board a couple weeks ago, and have been busy playing with it ever since. The manual in the CalCom folder answered many of my questions, including the one about the card reader cable. Teenix has been super helpful chasing down various issues. Be sure to get an USB/FTDI connector and reflash your board with the latest software, currently v. 9.

This board, along with my HP67C, allows me to transfer single programs, or blocks of programs, to and from the abundant memory on both boards to PC disk using the Bluetooth connection. Programs, or blocks of programs, on the PC disk can then be sent to another calculator. Simply put: 67C to computer to 97C. If we, as a community, load, save to local memory and then save to disk, all the HP original program packs, we can easily share them with each other. Programs can also be edited in Teenix's CCE33 emulator program. I'm working on a cheatsheet for using and integrating the various portions of this ecosystem.

My thanks to Teenix for all his work!
Has anyone considered having a run of card reader cables made?

I've looked into getting a run of flexible PCBs made with stiffeners at both ends, and they seem quite affordable. It looks like a run 10 would be around $11/ea. and 20 would $7/ea.

Let me know if you're interested in one (or more) and I get make up the design files and send them here for feedback. I'll also provide the gerbers and drawings if you want to make your own run (I'm not on this to make a profit, lol)...
Hi:

Not sure if you want a PM or not, but I would be in for 2 or 3 cables. I'm in the US.
Thanks for your efforts!

TomC
I made a patch cable a few years ago. It was a kludge, but it worked. I've also re-glued the separated conductors to the plastic on the original cable. This worked, too. Used just a micro drop of cyanoacrylate glue.


[attachment=10355]
(02-08-2022 01:46 PM)TomC Wrote: [ -> ]Hi:

Not sure if you want a PM or not, but I would be in for 2 or 3 cables. I'm in the US.
Thanks for your efforts!

TomC

Being in the open is better for now. I'll want 2, and with your 2-3, that's 4-5. If another 5-6 are wanted I can go ahead and make the order.
(02-08-2022 02:03 AM)hpux735 Wrote: [ -> ]Let me know if you're interested in one (or more) and I get make up the design files and send them here for feedback.

I'm in for two.
Hi all,

I've managed to get the HP-97 executing the 67's -x- function when Print X is pressed, either in Run Mode or from a program step.

I haven't done Print Stack or Print Regs yet as it has been a chore just doing the -x-. The HP-97 microcode is complex and working along side it is somewhat hard.

The functions are enabled/disabled by the key code combination [f] [f] [c]
It is enabled when the C register = 1
It is disabled when the C register = 0

The new code will show up as 16 16 13 in program mode or when SST is held down, or if PGM as Text is enabled it will show as "Prin67"

This new program step will save to a card and will execute in a program. It will be ignored in an original HP-97.

I'll get to the others as time permits.

cheers

Tony
Hello, Tony

I think I am the last one who received the first batch HP97 board.

Here is the picture in the attached picture which show the HP97S show date.

But 2022.0222 should be Tuesday not the Wednesday. I don't know whether it is a bug.








[attachment=10393]
(02-21-2022 05:02 PM)tangdfx Wrote: [ -> ]Hello, Tony

I think I am the last one who received the first batch HP97 board.

Here is the picture in the attached picture which show the HP97S show date.

But 2022.0222 should be Tuesday not the Wednesday. I don't know whether it is a bug.

Yes, probably you are the last one who received it...
Still waiting for mine, luckily it seems that, after waiting 25 days who-knows-where once landed here, it passed customs checks last friday!

:(
Get your FTDI connector out and update the Software using the CalCom program. Tony has fixed a number of issues. Current version is 12.
1 = Sunday
2 = Monday
3 = Tuesday
etc
7 = Saturday

I noticed I had 0 = Sunday in the help file, so I can change it so that 0 = Sunday if that is what everyone expects.

cheers

Tony
(02-21-2022 11:10 PM)Dreato Wrote: [ -> ]Get your FTDI connector out and update the Software using the CalCom program. Tony has fixed a number of issues. Current version is 12.

Yes,my revision is 12.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Reference URL's