The original firmware reads SW2 and performs either 1 of 8 primitive tests, or 1 of 8 running modes.
The tests rely on output ports to indicate information, but that requires some LEDs to monitor the states which might be pulsing rapidly. I feel this is rather unsatisfactory.
In a previous job, I worked for a smart card company. Smart cards are small but highly critical single-chip microprocessor systems. Any bugs would be disastrous, so checking smart card security costs literally millions of pounds. I only know a hand-waving amount about they work, but the start-up process is useful.
I propose this start-up test sequence:
- Check registers work
- Check the ROM contents have a valid checksum
- Check the CRTC is present (write/read a register)
- Initialise the CRTC (so that RAM gets refreshed)
- Check the VIA is present (write/read a register)
- Set the video colours
- Check the stack RAM is working (so you can use it for subroutines)
- Check the SCC is present (write/read a register)
- Check the video RAM stores data written to it
- Send failure report to the screen or serial port
- If no failures, boot up as normal
It could write a digit code to the output port to indicate the last test that succeeded, or a binary pattern showing which ones had succeeded or failed.
Keith
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.