Celebrated Too Soon
After glowing with the success of getting the machine working, I modified the monitor and it stopped working! After a day of mucking around with monitor code, I thought I better check if the signals are working. Checked with the oscilloscope and they appeared to be there. Checked the address/data bus and it was not reading the FRAM correctly. Replaced the FRAM (no), cleaned the boards (no). Okay check the signals properly (yes), the Control Board is not working properly. I have blown up IC5? How?
I will have to wait until the new boards arrive.
16 bit counter demo code
The new code has a 16 bit counter that will visually look better. I will post a video to prove that the machine is working!
Next Steps
Lot of things that could be done but writing some code to "save" and "load" a RAM page to FRAM sound like a good idea. Save recoding after each power up.
After that setting up the Serial IO interrupt code seems like a nice (big) step.
---
Saving code to FRAM is a bit tricky as FRAM is not available while being programmed.
So I need to load a program into "static" memory (0xC0 to 0xDF), not much to play with.
It is possible to swap between RAM pages, if necessary.
Anyway so I wrote some code to load from FRAM to RAM (0x80 to 0xBF), and auto-execute. At least I don't have to toggle code into the front panel anymore (other than than the six byte to load the code).
---
Uploaded the latest emulator code.
---
Replace the Control Board. No success.
The Paged Memory Board is reading rubbish but the FRAM read/write okay.
So I will have replace this board as well.
I am really surprised I destroyed two board with protective capacitors across every chip.
It was not like I noticed a static discharge.
Checked the ALU Board and it seems fine.
Don't have a check for the PC Board.
---
Refreshed my memory with the inner workings of the Interpreter.
Wrote a number of OpCodes:
- _Delay(ms)
- Mov AX,[BX] (current ROM/RAM Page only)
- Mov [BX],AX (current RAM Page only)
- Push AX
- Push Bx
- Pop AX
- Pop BX
- Xchg AX,BX
- Xchg AX,CX
- Xchg AX,DX
Replaced the Paged Memory Board. All good the CPU is talking to me now.
Used the front panel to input a 16 bit counter. Works fine.
---
Although I coded ROM Page 6 with a loadable 16 bit counter I could not get it to work?
It works on the emulator though. Perhaps the FRAM does not have the latest code?
---
The problem was that the Arduino Code was only set up to write 8 pages (4 ROM pages).
I am up to ROM page 6! So easy fix. And guess what, the program load code works.
All Good!
AlanX
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
I wish I knew. It was between FRAM reprogramming. I think I have blown the output stage but I have not checked. I have done this with LS-TTL when a solder bridge shorted the output to VCC. But this is my first HC casualty. I seem to have taken out the Paged Memory Board as well. Another time I took out a crystal oscillator gate (over powered) and the output stage of a RAM chip (memory conflict).
It is one of the reasons I went with the mother board and cards concept. Easier and cheaper to debug and fix.
Anyway, I will assemble a new Paged Memory Board tomorrow. Hopefully the CPU works again after that.
This project has a long way to go. I have to write another monitor for the Serial Card. I really want this CPU to talk to my laptop.
Regards AlanX
Are you sure? yes | no
Oh no, how come you fried your boards ?
Are you sure? yes | no