vpa_n could be the underlying issue. If the CPU does not recognise the autovector request, it would proceed as if a vector index was pushed on the databus -- which would be garbage in. Compare figure 5.6 and figure 6.4 in this doc: http://www.bitsavers.org/components/motorola/68000/MC68000_16-Bit_Microprocessor_Apr83.pdf
However, I don't immediately see how your
vpa_n code is wrong - so it may be something else still.
Hi all. Have been doing some more playing around with Silice by @sylefeb, a relatively easy to use HDL https://github.com/sylefeb/Silice and have implemented a Risc-V RVIMC CPU and plugged it into the display/audio system that I created for my j1eforth project. It is easier to write code in C for me than it is in Forth, so I've been able to implement an asteroids style game to test what I have been doing. Bound to be mistakes in there, doesn't yet fully meet timing, I'm working on it.
Happy to take any suggestions! Not formally tested, other than it runs the compiled by GCC asteroids game.
sudo xhost local:root export ETHMAC=xx:xx:xx:xx:xx:xx docker run -it --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" -v -v /localfolder/FPGA:/fpga -e LM_LICENSE_FILE=/fpga/license.dat --mac-address=$ETHMAC --privileged --ipc host -v /dev/bus/usb/:/dev/bus/usb/ dok3r/diamond:v3.7 export containerId=$(docker ps -l -q)
@lawrie If you have a working implementation on Mister to guide you, maybe it is not all that difficult to add mouse and disk.
The wikipedia page for the original Mac's describes the mouse, including its wiring across chips:
The disk hardware is essentially the same as the disk hardware on an Apple ][:
I think once the registers that the controller presents to the software are known, doing a verilog replacement can be similar to what you did for the QL.
Oh - just found the ultimate hardware description here:
And a ROM disassembly is here:
On the Mac, the rom just contains start-up code and device drivers. On the QL, it contained the whole operating system. The biggest part of Mac Plus rom seems to be the file system implementation.
I'm not sure that is correct. See below link for some details: