HP97 The journey begins
|
12-18-2021, 03:52 AM
(This post was last modified: 12-18-2021 04:54 AM by teenix.)
Post: #544
|
|||
|
|||
RE: HP97 The journey begins
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 |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)