I've been making a few improvements.
First off, I decided to throw some 1K terminating resistors on the data and address buses. It got rid of plenty of phantom signals, so I don't know why I didn't try this sooner.
Attachment:
File comment: Card bus closeup
IMG_20180416_054251953.jpg [ 2.55 MiB | Viewed 5801 times ]
I've updated the debug card to now let me directly control the data and address buses. The address bus LED signals are going through 74245's to avoid having to zigzag back and forth like with '244's.
Attachment:
File comment: Debug Card
IMG_20180414_054330378.jpg [ 2.94 MiB | Viewed 5801 times ]
While I was at it, I overhauled the Address Control card. Replaced the '244's with '245's to make the wiring easier for my eyes to follow. I also touched up the 5V traces to make sure the chips were all getting power. Tests show that this card is working better than ever! At least
something I built works.
Attachment:
File comment: Address Control Card Rev 2
IMG_20180416_050234131.jpg [ 2.79 MiB | Viewed 5801 times ]
Let's see, what else have I been doing...
Attachment:
File comment: Front panel energized
IMG_20180416_054242816.jpg [ 2.17 MiB | Viewed 5801 times ]
I'm running a few EPROM reads and RAM writes using the front panel logic. Since the status control card isn't present to actually perform tasks like telling the address control card to load the front panel switch value, or deposit a value into RAM, I'm having to manually signal those inputs high or low.
I get to be the orchestrator. During such tests, I can successfully read and write values from RAM. The individual clear signals don't seem to work incredibly well, but the individual set signals seem to be just fine. I'll have to check over that card next to see what the heck I'm doing wrong.
I burned an EPROM with zeros for the reset vector, and tried entering a program into RAM by hand to see if I could get something to run. Nothing too fancy, but something I know works fine on an OSI-300.
Code:
A2 05 8E 08 00 4C 00 00
The rest of RAM was filled with garbage. The majority of ROM was filled with 0xFF's. I tried letting the CPU run, performing a reset first. I watched the lights to see what was going on, only to see that the CPU was jumping around all over the place, probably running on errant instructions in RAM. A few of my values got clobbered...
So, that leads me to believe that my reset circuitry is perchance causing issues, or I'm misunderstanding how that's supposed to work. I'm using a DS1223 to perform the reset automatically on power-up, but I can also pull the line low and let it pulse low, then high. I get the feeling the machine didn't correctly check the reset vector, but I will look into this next. I also intend to burn another EPROM with some simple routine to see if it can handle that -- not sure what yet.
After that for fun, I hooked up a pulse generator to the clock input, because I can use that to adjust the pulse speed to be relatively low.
https://youtu.be/0onkPg9NOp8