VOGONS


First post, by LightStruk

User metadata
Rank Member
Rank
Member

Modern OS and firmware developers have many advantages that 1980s and early 1990s developers did not, such as JTAG debug interfaces built into the hardware, not to mention full system emulators in software. Being able to place breakpoints, inspect registers, and review memory locations at will makes modern embedded or low-level software development tolerable.

What did engineers do back then? Once the system is partially running, with a working screen and keyboard, one can make progress, but what if there's a problem before that point?

I can imagine several things they might have used, like 80h POST codes, beep codes, LEDs, or a serial console. Any of those are still fumbling around in the dark, though, effectively just printf("made it this far"). Did they have anything more sophisticated?

Reply 1 of 6, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Sometimes they had a development board with all the main hardware components on wired into a mainframe or other powerful box and ran analyses and test on it from that. Then when they'd nailed the basic operations they'd move onto alpha boards which would be more like production boards, but have a load of test connectors on still, that they could hook to other machines or logic analysers etc. They had sophisticated tools, but they cost into the tens of thousands a piece, and were much larger than today's equivalents.

A similar kind of process was used for any computer hardware, so you can get some of the flavor of it from this..
https://hackaday.com/2013/12/09/guest-post-th … commodore-c128/

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 3 of 6, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

A fair bit was done in software emulation on like PDPs and Vaxen, though they tended to call it simulation then. So then there'd be "some" code ready to try when the first hardware sampled. You can find developer "simulators" for old 8 bit CPU/MCU on some of the old MSDOS ftp mirrors.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 4 of 6, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

Nice question, I've also thought about it. From what I found, each CPU socket had an interposer-like device to sit between the CPU and socket where it can see all memory accesses, etc. So I guess for a breakpoint it would literally substitute an int3 for whatever address you set it on. I think GameSharks/GameGenies work a lot like this, actually. Bet you had to disable L1 cache for the whole thing to work properly.

Since this hardware is presumably super difficult to get ahold of now, I think PCem would be a better solution for debugging this now.

Once you're out of the BIOS and into the boot sector/DOS/etc. I think Numega SoftICE was considered second-to-none.

Reply 6 of 6, by LightStruk

User metadata
Rank Member
Rank
Member
retardware wrote on 2021-09-15, 16:31:

ICEs were already common in the 1970s.
I think it is safe to assume IBM used stuff like this.

This PDF is gold. The manual to an ICE from 1979 for the 8088! Definitely, if I were a BIOS developer for that original IBM PC team, I would have wanted this product.