Page 1 of 1

Diode ROM and Serial Bootloader

Posted: Fri Apr 28, 2023 1:11 pm
by Martin_H
There have been two interesting projects in the Cosmac Elf email list that I thought I would describe here. The reason is that someone more hardware orientated than me might find it interesting.

The first is a diode ROM which was pretty straight forward. It used a decoder IC plus some 1N4148's with headers to allow for changing contents of the ROM. I thought it was pretty slick, because he essentially built a low density programmable ROM that you can physically manipulate.

The second was a 16 bytes serial bootloader. Here the 1802 has an advantage over the 6502 because it has some I/O built-in. The bootloader downloaded a program from one of the external flag pins, and placed it into RAM. Then transferred control to the downloaded program.

The reason I found this interesting is that it created a batch programming environment with very little hardware. Now to actually use this you use another computer to feed in the serial data, but in principle a more primitive system could be built using paper tape or cassette tape.

Re: Diode ROM and Serial Bootloader

Posted: Fri Apr 28, 2023 4:13 pm
by BigEd
Nice! (It's a good feature of the 1802, to be able to bootstrap. The transputer also had such a scheme... maybe the parallel propeller too?)

Re: Diode ROM and Serial Bootloader

Posted: Sat Apr 29, 2023 11:00 pm
by Martin_H
Yes, the Propeller chip boots using SPI from a serial EEPROM. It can also boot off its serial port from a host PC.

Re: Diode ROM and Serial Bootloader

Posted: Sun Apr 30, 2023 1:18 pm
by plasmo
Z280 is designed to bootstrap from its built-in serial port. It was the inspiration for many of my SBC that have the serial bootstrap function.
Bill

Re: Diode ROM and Serial Bootloader

Posted: Sun Apr 30, 2023 2:38 pm
by drogon
BigEd wrote:
Nice! (It's a good feature of the 1802, to be able to bootstrap. The transputer also had such a scheme... maybe the parallel propeller too?)
The Transputer one is interesting - mostly because the means it works - there isn't a bootloader in ROM as such, but the microcode recognises commands send down any of the Transputers links just after coming out of reset - it's a crude debugging interface - read/write RAM and "go at an address". This lets you test RAM before loading code into it, then poke in a small bootloader, then run it. It seems crude but it was used to bootstrap 1000s of transputers in an array very quickly.

I do like the minimal PROM approach though - and knowing a 22v10 GAL can hold 40-50 bytes of ROM data might make an interesting challenge - a DIL EEPROM which are essentially "unobtainium" ...

-Gordon

Re: Diode ROM and Serial Bootloader

Posted: Sun Apr 30, 2023 6:30 pm
by plasmo
drogon wrote:

I do like the minimal PROM approach though - and knowing a 22v10 GAL can hold 40-50 bytes of ROM data might make an interesting challenge - a DIL EEPROM which are essentially "unobtainium" ...

-Gordon
Can 22V10 really holds 40-50 bytes of ROM? I routinely do serial bootstrap and/or CF bootstrap with 32 bytes of ROM, so perhaps 22V10 can do both small (and fast) ROM and some address decode? That’ll be interesting.
Bill

Re: Diode ROM and Serial Bootloader

Posted: Sun Apr 30, 2023 7:19 pm
by drogon
plasmo wrote:
drogon wrote:

I do like the minimal PROM approach though - and knowing a 22v10 GAL can hold 40-50 bytes of ROM data might make an interesting challenge - a DIL EEPROM which are essentially "unobtainium" ...

-Gordon
Can 22V10 really holds 40-50 bytes of ROM? I routinely do serial bootstrap and/or CF bootstrap with 32 bytes of ROM, so perhaps 22V10 can do both small (and fast) ROM and some address decode? That’ll be interesting.
Bill
Well, I've not tried it myself, but this thread does suggest it's very possible:

viewtopic.php?f=10&t=3383&start=30&hilit=gal+prom

-Gordon

Re: Diode ROM and Serial Bootloader

Posted: Mon May 01, 2023 3:49 am
by MichaelM
Although I’ve not tried it with the 22V10 PALs, I did try it with the Coolrunner II CPLD family. I was surprised at how much of my soft-core’s microcode could be packed into these devices. The Coolrunner II parts are more like Programmable Logic Arrays (PLA) than the 22V10, but either part can easily function as fast small- to medium-sized ROMs.