Tape

Internal Binary Loader (IBL)

What is the IBL?

The IBL or Internal Binary Loader is a small program contained in four PROM chips on the main CPU PCB in the 5443A and will automatically be loaded into main memory then executed after power up reset. This automatic start only occures if no 21MX front panel is connected.

Front Panel Connector

The J2 connector is for the 21MX front panel.

Generally in 21MX systems the IBL is used to start the process of loading higher level software from paper tape or disk. In the signal analyzers the IBL loads software from a DC-100A tape cartridge. This process has a number of steps, the first is to generate a checksum of the software to ensure it loaded without error then the first of three light tests is performed. The light tests proform a number of functions, to indicate front panel lights work, it is a simple test of part of the I/O system, forces a reset of the I/O system and indicates a step in the loading process. Following the first light test the tape drive will attempt to start loading a tape. In the second stage a program called MGEN is loaded from the control tape and this MGEN software loades the the main system control software but also has the functions to allow Control tapes to be duplicated and verified. MGEN also allows the formatting of Data tapes. When MGEN has loaded control is passed to MGEN then the second light test is performed.

Front Panel

My 21MX Front Panel with USB Interface.

My primary goal of this project was to save the control software to a file or files on a PC so that we are no longer reliant on the fragile tapes for data storage, and be able to write the code back into the instrument so it could be be booted without using a tape.

The first step reading the system software is to make a copy of the IBL program. Once I had built my 21MX front panel with USB interface, reading code stored in the main memory was then quite an easy exercise. In the project there are two file formats used for code storage, I prefer the HP octal (*.OCT) data file format which is quite simple, it uses a checksum on each data record and can be easily edited in a text editor. The other file type is an absolute binary (*.ABS) which is generated by the ASM21 assembler, this can be found on the web, however I have made a few additions to the assembler for some of the 5420/23 specific instructions.

Being able to read and save software is all very well but without having some understanding of its operation it is hard to make it work if you haven't saved uninitialized code or started execution at the correct point to ensure it is initialized. This meant that I needed a disassembler and while ASM21 was available I couldn't find any disassembler for the 21MX processors so I wrote my own and it is incorporated in my HP21MX application that also communicates with front panel hardware I've built.

IBL Screen Dump

The is a screen dump of the IBL.

Once I had the source code for the IBL this allowed me to easily make modifications to the code so that I could move on to the next stage with was to read the MGEN program form the tape. I wanted an uninitialized copy of MGEN so a modified version of the IBL was necessary to achieve this. The checksum test was disabled, extra code was added to stop the tape motion after the MGEN load was completed, and a halt instruction replaced the jump indexed instruction which transfers control to MGEN. Once the load is complete MGEN can be saved to disk and the transfer address read from memory location 000402.

Different control software uses different versions of MGEN.

HP P/NCartridgeDate CodeAddress RangeTransfer Address
05420-100105420A/Control190816000-1777716001
05420-100205420A/Master190816000-1777716001
05420-100235420A/HP-IP Control193216000-1777716001
05420-100245420A/HP-IP Master193216000-1777716001
05420-100255420A/HP-IP Control201216000-1777716001
05420-100265420A/HP-IP Master201216000-1777716001
05420-100275420A/Extended Resolution2012UnknownUnknown
05420-100285420B/HP-IP Control230424000-2577724004
05420-100295420B/HP-IP Control - Master230424000-2577724004
05423-?????5423A Control - Master????34000-3777734001