The propeller has a small bootloader built in, and that reads the contents of the 8 pin Serial ROM (24LC256) for the main VGA driver code.
NB: Being a serial rom it's quite "slow" in computer terms and back when I wrote it put I a coment in the z80 boot code say it takes 1.35 sec for the propeller to boot.
IF either the propeller or the serial rom the issue (or U5 the 3.3v regulator come to think of it) then the MTX would boot, play the start up tune, and then lock up waiting for the propeller to initialise. Combined with a non-functioning sound system, that would explain the symptoms.
I've run some tests faking a propeller issue (by removing the serial rom that's easier to pull!) normal boot black screens after the tones as expected. Reset with C held down will produce a blue screen and "CPM boot" and then lock. Reset M for MTX mode produces a normal boot. With the propeller disbled the VGA mointor reported no signal the whole time I was testing.
The Normal MTX boot up is:
Quick and diry test for paged ram
Check for an initialise autoboot roms
Setup the PSG and VDP.
The key thing to note from that is that the normal boot sequence has done nothing with either the PSG or VDP before it calls the boot roms.
With a CFX-2 fitted there are 2 auto-boot rom images in the flash chip.
- The rom in slot 4, the CPM rom gets the first try, that checks for the C key, then starts the Propeller in 80 column mode and runs CPM boot process if it's pressed
- The rom in slot 5 is next, the SDX rom, that checks for the M key or space key (magrom mode) and starts propeller in 40 column mode and initialises the the basic extensions if neither key is pressed.
All of the paged boot rom checks occur "long" before the Propeller finishes booting so both need to wait at some point. The CPM rom sets up the VDP while it's waiting, as it's basically free CPU cycles, and once the CPM boot message is printed the VDP is ignored.
The SDX rom however, if it's taking conrol, has to request and wait for the propeller's 40 column mode to initialise before setting up the VDP. It's done that way so that the VDP shadowing works.
Thats why reset-C produces a blue screen and normal reset doesn't. So, the test at this point might be to test both reset-C and reset-M with the board connected and ROM plugged in, and see what happens.
If reset-M gets to the basic prompt then both the boot rom and the CPLD are doing what they should and something in the propeller subsystem is the likely culpit.
NB2: The Silicon disc if fitted can be tested from basic with:
Code: Select all
10 FOR X=1 TO 20
20 PRINT INP(83)
30 NEXT
If that prints anything other than 120 on every line the CPLD is probably paging that correctly too.