My bare metal diagnostic ROM is now good enough to be declared version 0.10.
The ROM image can be downloaded from the Github repository ( https://github.com/stephen-usher/Sincla ... l-Diag-ROM ) as the file "diagrom.bin".
This replaces the system ROMs in the same way as you would with an adapter for Minerva. Alternatively, you can hack a ROM cartridge so it selects the ROM for the whole of the ROM address range and use a Winbond W27C512 EEPROM as this has line drivers strong enough to override the system masked ROMs.
What the ROM can do.
The ROM will output to ser2 at 4800 baud and try to output to the screen at the same time. This means that if the video output part of the machine is non-functional you can still see if the rest of the machine is working.
The first thing the ROM will do will be to write a banner to both the screen and serial port before running a March and 'Own address' memory test on the main 128K of memory. It does this without requiring any working memory in the system. (Of course, if there's no RAM then nothing will appear on the screen.)
If the memory test fails then a message with address and error bits will be printed to the serial port and a set of coloured bars will be put into screen memory. The first is black or white depending upon which bank of memory failed, followed by red or green strips for each of the 8 bits.
If the memory test passes then the main initial tests are run. i.e. testing for and testing RAM expansions, testing the IPC, reading the keyboard and finally reading the serial port (ser2).
If this much of the machine is running using this ROM then it *should* boot QDOS or Minerva. If the tests fail you should be able to know where to look to fix the machine.
Bare Metal Diagnostic ROM: Now good enough to use.
-
- Super Gold Card
- Posts: 558
- Joined: Tue Mar 11, 2014 8:00 pm
- Location: Oxford, UK.
- Contact:
-
- Super Gold Card
- Posts: 558
- Joined: Tue Mar 11, 2014 8:00 pm
- Location: Oxford, UK.
- Contact:
Re: Bare Metal Diagnostic ROM: Now good enough to use.
Here's how to make a ROM adapter:
What you will need:
Bend all the pins except pin 7 of the 74LS04 so that they are straight out from the sides of the chip
Solder wires onto pins 1, 2 and 14 on the 74LS04. Clip off the other legs (NOT pin 7!) close to the body of the chip and save the pins for later.
Strip a wire and solder it between the bent out pins 20 and 22 on the 28 pin socket, leaving bare wire between them.
Solder a wire long enough to stretch between the top left of the left QL ROM to the far side of the right QL socket. Solder one of the cut chip pins onto one end and solder the other end to pin 1 on the socket.
Solder the wire connected to pin 2 of the 74LS04 to the middle of the wire joining pins 20 and 22 on the 40 pin socket.
Solder cut off chip pins onto the other wires on the 74LS04.
You can now start plugging things into the QL ROM sockets. The 28 pin socket pushes into the left ROM socket and pin 7 of the 74LS04 plugs into the bottom left hole in the right ROM socket.
The wire from pin 14 of the 74LS04 plugs into the top left hole in the right QL ROM socket (power).
The wire from pin 1 of the 74LS04 plugs into the hole for pin 22 on the right QL ROM socket.
The wire from pin 1 of the 40 pin socket plugs into the hole for pin 20 on the right QL ROM socket.
You can now plug a 27C512 (or 27C256) EPROM into the 28 pin socket.
Note that pin numbers on chips and sockets start in the top left, work their way down to the bottom, then across to the right side and continue from the bottom to the top.
I hope that this helps.
This is an early prototype of this "hack" with a few wires that you won't need:
What you will need:
- A 28 pin socket, not turned pin.
- A 74LS04
- Some bodge wire, something like 28AWG or wirewrap wire.
- A little patience and simple soldering skills.
Bend all the pins except pin 7 of the 74LS04 so that they are straight out from the sides of the chip
Solder wires onto pins 1, 2 and 14 on the 74LS04. Clip off the other legs (NOT pin 7!) close to the body of the chip and save the pins for later.
Strip a wire and solder it between the bent out pins 20 and 22 on the 28 pin socket, leaving bare wire between them.
Solder a wire long enough to stretch between the top left of the left QL ROM to the far side of the right QL socket. Solder one of the cut chip pins onto one end and solder the other end to pin 1 on the socket.
Solder the wire connected to pin 2 of the 74LS04 to the middle of the wire joining pins 20 and 22 on the 40 pin socket.
Solder cut off chip pins onto the other wires on the 74LS04.
You can now start plugging things into the QL ROM sockets. The 28 pin socket pushes into the left ROM socket and pin 7 of the 74LS04 plugs into the bottom left hole in the right ROM socket.
The wire from pin 14 of the 74LS04 plugs into the top left hole in the right QL ROM socket (power).
The wire from pin 1 of the 74LS04 plugs into the hole for pin 22 on the right QL ROM socket.
The wire from pin 1 of the 40 pin socket plugs into the hole for pin 20 on the right QL ROM socket.
You can now plug a 27C512 (or 27C256) EPROM into the 28 pin socket.
Note that pin numbers on chips and sockets start in the top left, work their way down to the bottom, then across to the right side and continue from the bottom to the top.
I hope that this helps.
This is an early prototype of this "hack" with a few wires that you won't need:
-
- ROM Dongle
- Posts: 46
- Joined: Thu Jan 27, 2022 6:02 pm
Re: Bare Metal Diagnostic ROM: Now good enough to use.
I've known your diagnostic ROM by means the screen fault thread. Congratulations for your work, it' may be a fantastic help to fix our faulty QL.
How should wire the SER 2 to RS232 PC cable?
How should wire the SER 2 to RS232 PC cable?
-
- Super Gold Card
- Posts: 558
- Joined: Tue Mar 11, 2014 8:00 pm
- Location: Oxford, UK.
- Contact:
Re: Bare Metal Diagnostic ROM: Now good enough to use.
It only really needs the three wire connection, RX, TX and ground. I believe that for a PC serial port you swap the RX and TX lines as a "null modem".
The output is 4800 baud 8 bits data, no parity, 1 stop bit, no flow control.