The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (FreeBSD)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
Manage MultiMod's ROMs
03-29-2021, 10:33 PM
Post: #1
Manage MultiMod's ROMs
Mark Fleming's excellent new MultiMod (MM) accessory for the HP-71B easily lets you add several ROM images to your 71B as explained in this post and in more detail in the manual (available in the repo).

You can issue several commands to ‘manage’ the ROMs as follows:

Code:
    Enable Standard Modules – POKE “2C000”,”1”
    Enable Standard + Hidden Module – POKE “2C000”,”3”
    Disable all modules – POKE “2C000”,”0”

Once you have configured things, you will mostly just leave them enabled; after all, that’s the whole point of installing them – to have them available for your use. But there are some times when you may want to change the status, for example:

Disable Modules – sometimes when troubleshooting or exploring issues with a particular ROM, you can simply pull it out (after turning off) to see how things behave with the module not installed. Another similar case is when you want to use a conflicting module – for example if you have the Forth/Assembler ROM in the MM, but you want to plug-in your HP-41 Translator ROM to check something.

In the case of the MM, you can’t (or shouldn’t) pull the module out, you simply issue the above command to Disable all modules, then power-cycle the 71B (OFF then ON) and all the ROMs are now unplugged and you can proceed to use the unit as if none of the ROMs were installed.

Enable Hidden Module – This 8KB module is described on pp. 13-14 in the user manual. Although pre-configured to include JFG’s excellent User Library LEX, this module slot can be used to hold any 8KB ROM image. One possible use of this is to store LEX files which may conflict with other LEX files you install into IRAMs or even main RAM. When you need to use those LEX files, you want some means to remove (or hide from the OS) the LEX files which conflict, but without having to disable the entire MM. One easy way to do this is to create an 8K ROM image and install it in the hidden module. When you need to use the LEX files stored there, you enable the hidden ROMs, but when you want to suppress those in order to be able to use the others, you can simply hide the hidden module by enabling only the Standard modules.

While playing with this, I was annoyed at constantly having to use the POKE commands, so I created this simple little program, Manage MultiMod (MMM) to let you easily select the operating mode without the tedium of typing the commands.

Code:
100 ! MMM - Manage MultiMod ROMs
200 DISP "(S)td/(H)id/(D)is MM ?"
210 ON POS("SHDQ",KEY$)+1 GOTO 210,300,400,500,700
300 POKE "2C000","1" @ GOTO 600
400 POKE "2C000","3" @ GOTO 600
500 POKE "2C000","0"
600 WAIT .5 @ OFF 
700 DISP "" @ END

Notes:

When you run the program, it displays the operating mode choices:

[S] – Enable Standard Modules (but not the hidden module)
[H] – Enable Standard and Hidden Modules
[D] – Disable all Modules
[Q] – Quit, without making any changes (Not displayed but always available)

All other keys are ignored (technically [ON] will abort, but don’t do that, play nice)

In order for the configuration changes to take effect the 71B must be power-cycled. The program can only do half of that, once it has POKE’d the config value, it shuts-off the 71B; you will have to press [ON] to turn your machine back on.

The “Wait .5” is to provide a short ‘bus settling’ type delay, giving the POKE command enough time to be processed before shutting down. You never notice this is needed when doing this manually as you can’t enter new commands fast enough to cause problems. Without this, the program can crash to MEMORY LOST, while in practice, the extra time isn’t even noticed.

In general, KEYS$ should never be used, KEYWAIT$ should be used instead (KEYWAIT$ shuts OS down to low-power mode while waiting for a key to be pressed), if you have that keyword in a LEX file, however it’s possible that if you disable all the ROMs in the MM, you no longer have that keyword available, so it’s used here to insure it can work in all modes.

Thanks Mark for an excellent reason to dabble further with my favorite machine. Big Grin

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Manage MultiMod's ROMs - rprosperi - 03-29-2021 10:33 PM
RE: Manage MultiMod's ROMs - Dave Britten - 03-29-2021, 10:48 PM
RE: Manage MultiMod's ROMs - twoweims - 03-30-2021, 01:10 AM
RE: Manage MultiMod's ROMs - rprosperi - 03-30-2021, 01:20 AM
RE: Manage MultiMod's ROMs - Allen - 03-30-2021, 12:41 PM
RE: Manage MultiMod's ROMs - rprosperi - 05-08-2021, 09:52 PM



User(s) browsing this thread: 5 Guest(s)