PDA

View Full Version : "Monitor" program in ROM -What is this?



Christoffer
May 6th, 2015, 09:50 AM
Hey! Been collecting, restoring and building 70's and 80's computers for a while now, But recently, on multiple occasions, the term "monitor" for a rom program has come up.
It's impossible to google, since there are a lot of modern things going under same name.

As i understand it, it's basically a bit more than a bootstrapper - less than a BIOS. is this correct?
Like, a rom program that allows the system to boot, and control various essential peripherals - serial driver, floppy drive, etc.

Am I right, or did i miss the point?

Thanks!

--Christoffer

g4ugm
May 6th, 2015, 10:14 AM
I found adding a CPU type improved my searches so try "8080 monitor rom" or "6809 monitor rom"..

What was in a monitor ROM varied from computer to computer and on the devices it had. As only the rich could afford floppies at the start one of the key features were the ability to load and save programs from some kind of backing store, usually via an RS232 serial device so the actual media could be paper tape or audio tape via some kind on interface. Often the information was in some kind of readable format, so intel HEX or Motorola S9 formats. Of course once the code was loaded you might want to debug it so the ability to insert breakis points into the code to debug it. Of course once you found your bug you also needed to be able to fix it so general display and alter storage. In fact at the start one might hand assemble your programs and then use this feature to type them in...

Whilst there would be routines to control serial devices, they might not be used by the programs that you load. Many programs would directly access the serial ports rather than use the routines in the ROM.

hope this is useful

krebizfan
May 6th, 2015, 10:17 AM
You should check with documentation for the specific system you are looking at. Different companies used the term differently.

Your post describes how it works from the DEC perspective. Loads enough interfaces to allow the user to choose which device will be the next step in the boot process. DEC monitor also had some minimal troubleshooting/diagnostic capability.

http://retrocmp.com/how-tos/interfacing-to-a-pdp-1105/194-interfacing-with-a-pdp-11-05-serial-console-monitor and PDF file at the bottom will provide more detail than you will need.

per
May 6th, 2015, 11:04 AM
(from the perspective of microcomputers)

A Monitor can be a lot of things, for example the more advanced monitors are like a simple machine-code debuggers, some only has abilities to load and run code, sometimes monitors doesn't even have a user-interface at all (but this is kind of rare). In any case it may or may not have a BIOS-like software interface as well.

It really depends on the system.

Chuck(G)
May 6th, 2015, 11:34 AM
I don't think there's a standard accepted term. "Monitor" can even refer to an entire operating system (e.g. IBM 1620 Monitor II-D or 7090 FMS). In the micro world it seems to imply a bootstrap ROM with some debugging capabilities. In the CDC 6000/Cyber series it referred to the "supervisor" mode of the CPU.

g4ugm
May 6th, 2015, 02:12 PM
So long as its "Monitor Rom" and refers to Micro's it looks pretty well accepted to me....

http://www.retrotechnology.com/restore/ROMmons.html

http://www.rasmicro.com/Mikbug/index.html

http://www.swtpc.com/mholley/MP_09/SBUG_Index.htm

but as you say, once the "ROM" is lost the term "Monitor" was also used to refer to a "Small" OS , as you list but also DMS on the 1130.

Then again it was used for a component of a larger system, so a "Job Monitor", "Tape Monitor" or "Disk Monitor"

Chuck(G)
May 6th, 2015, 02:28 PM
Mon i tor, noun: an instrument or device used for observing, checking, or keeping a continuous record of a process or quantity.

It's hard for me to see "monitor" thus used in the sense of a visual display device or code used as a debugging facility. It does make sense for describing an operating system.

Humpty-Dumpty land, I guess. :)

Christoffer
May 6th, 2015, 02:47 PM
Well thanks for the info :) - makes a lot of sense in context - The system in question is actually Grant Searle's 6 chip 6809 computer, that I'm currently building.

--Christoffer

g4ugm
May 6th, 2015, 02:53 PM
It might not make sense, and I agree its use in this way isn't especially logical, but the term was widely used that way. Just look at this page entitle "Rom Monitor Codes"

http://www.retrotechnology.com/restore/ROMmons.html

and a whole host of links to "ROM Monitors", google for "6809 Rom Monitor" and you will find this page

http://www.swtpc.com/mholley/MP_09/SBUG_Index.htm

which describes the "SBUG-E ROM Monitor".

Early 6800 system were supplied with MikBug which again is described as a Monitor here:-

http://www.rasmicro.com/Mikbug/index.html

I see many of these are also described as "Firmware" in the original documentation which doesn't make sense to me...

SiriusHardware
May 7th, 2015, 10:08 AM
BIOS=specific name given to the firmware which runs the low-level / system functions of a computer.

MONITOR = old name given to the firmware which presents the user of a microprocessor system with the user interface which can then be used to browse, alter and run code on the system, often including some sort of diagnostic tools such as single-step, which allows one instruction at a time to be executed and the contents of the RAM and Registers to be examined after each step.

I've described both of these as 'firmware', so what is firmware?

The original definition of 'firmware' is programme code which doesn't disappear from memory when the machine / power is switched off. This term really pre-dates the introduction of reliable in-system programme mass storage.

So typically, taking the Science of Cambridge MK14 as an example, the code which runs as soon as you turn it on and presents you with the user interface by which you can enter, browse and run code is its Monitor programme - because it is held in non-volatile PROM which can survive a power-down it is referred to as 'firmware', unlike the programmes which you enter into RAM yourself - these would be called 'Software' because they are lost from the machine's memory when it is turned off.

With the advent of mass non-volatile storage, ie, floppy discs and then hard discs, 'Software' became 'Code which is loaded into RAM from non-volatile storage and then runs in the RAM'. It still disappears from the RAM when you power the system off, but now it can easily be reloaded back into RAM from mass storage the next time the machine is powered up.

'Firmware' is still used to describe code which is normally held in non-volatile read-only memory, and includes the code which runs your washing machine, your car engine management system, your broadband router, your desktop and laptop computers, your tablet, your mobile phone and every other system which has an embedded microprocessor.

Firmware usually requires some RAM as well in order to be able to function, because it needs somewhere to store variables which change as the main code is running in the ROM. Most modern microcontrollers contain both ROM-like non-volatile memory for the program code and some RAM to use as a data / scratchpad area.

At one time it could definitely be stated that firmware always resided in Read-Only (ROM) memory which, once written, could not be changed (eg, Bipolar fusible-link PROMs as used on the MK14). This was still essentially the case when EPROMs came along: They were read-only to all intents and purposes since the only way to alter them was to remove them from the system, erase them and reprogramme them. More recently, this line has become less clear with the advent of EEPROM and flash memory: In-circuit reprogramming of the firmware is now more usually possible than not, using an external programmer such as another computer and / or specific programming tool. Some current microprocessors are also able to modify the contents of their own code memory, which means that it can no longer be described as ROM in the original sense.

Chuck(G)
May 7th, 2015, 10:19 AM
BIOS=specific name given to the firmware which runs the low-level / system functions of a computer.

To the best of my knowledge, the term "BIOS" was originated by DRI for CP/M, describing the Basic I/O System--if you will, the abstraction layer, which supplied basic character-level I/O and 128-byte sector disk I/O. Most commonly, it was in RAM, not ROM--so that conflicts with your definition of "firmware".


“When I use a word,” Humpty Dumpty said, in rather a scornful tone, “it means just what I choose it to mean—neither more nor less.” “The question is,” said Alice, “whether you can make words mean so many different things.” “The question is,” said Humpty Dumpty, “which is to be master—that’s all.”
ATTRIBUTION: LEWIS CARROLL (Charles L. Dodgson), Through the Looking-Glass, chapter 6, p. 205 (1934). First published in 1872.

It's been thus in computer-land since forever. Give me an example of a commonly-used term, and I'll find a different meaning for it. For example, what is a "label" in computerese? :)

SiriusHardware
May 7th, 2015, 01:09 PM
To the best of my knowledge, the term "BIOS" was originated by DRI for CP/M, describing the Basic I/O System--if you will, the abstraction layer, which supplied basic character-level I/O and 128-byte sector disk I/O. Most commonly, it was in RAM, not ROM--so that conflicts with your definition of "firmware".



Thanks, I wasn't aware of that origin of the term BIOS, although I'm sure you will agree it has now come to the point where the meaning is more or less as I defined it.

As a matter of interest, if the BIOS lived in RAM in those systems how did it get there? Presumably not off disk, because it had to be present and running before disk access was possible by the sound of it. One thing I like about the idea of BIOS in RAM is the ease with which it could be patched, if necessary.

On PCs (1990s or so) there used to be a setting (in the BIOS, ironically) which would allow the BIOS and the firmware for the video hardware to be copied into RAM and subsequently run from there, I think on the grounds that RAM was faster than ROM, so it could speed up the system a little. But the code still started off in a ROM and ran from there by default, so I would still call that firmware.

Chuck(G)
May 7th, 2015, 02:09 PM
It did, in fact get there from disk. One of my early 8" drive controllers (S100) used a 32-byte (256 bit) bipolar PROM to load the first sector from disk--after that, you had 128 bytes to do the rest, which was easy.

As a matter of fact, there were even some MS-DOS machines that did that--barely enough in the boot ROM to get a display going and get a sector read and read in the BIOS.

BIOS in RAM occurs in the MS-DOS PC era.