Here is the eva-debug? code from SLOF if anyone can make anything of it:
Code:
: new-token
eva-debug? IF
s" x" get-ip >r next-ip read-fcode# r> set-ip (u.) $cat strdup
header
THEN
new-token
;
Code:
: evaluate-fcode ( -- )
BEGIN
get-ip break-fcode-addr = IF
TRUE fcode-end !
THEN
fcode-end @ 0=
WHILE
fcode@ ( fcode# )
eva-debug? IF
dup
get-ip 8 u.r ." : "
." [" 3 u.r ." ] "
THEN
\ When it is not immediate and in compile-mode, then compile
get-token 0= ?compile-mode AND IF ( xt )
compile,
ELSE \ immediate or "interpretation" mode
eva-debug? IF dup xt>name type space THEN
execute
THEN
eva-debug? IF .s cr THEN
break-fcode-steps IF
break-fcode-steps 1- TO break-fcode-steps
break-fcode-steps 0= IF
TRUE fcode-end !
THEN
THEN
next-ip
REPEAT
;
I suppose something like this code be added to Apple Open Firmware...
This is for evaluating fcode, which is what PCI cards have, but it's only going to show the immediate or interpretation parts of the fcode which is only a small portion of the total fcode. Basically, we can get the same effect by adding extra code to the PCI rom fcode ourselves.
Probably the issues are going to be in the fcode that gets compiled. I suppose it would be possible to modify the compiler to add extra code for debugging... but again we can get the same effect by adding the extra code to the PCI rom fcode ourselves.
Phone video/photos should not be any problem. What exactly do you need to see? Is there some kind of verbose mode, running before the machine boots to the OS and showing error messages?
On second thought, I don't think video will be good enough since you'll want to be able to paste code and the output may be larger than what can be shown on the screen. Do you have two Macs with serial port and a serial cable to connect them? Otherwise we can try ethernet connection.
We can make a verbose mode. The idea is to probe everything except the pci card, then setup the console output to serial port, then probe the pci card. I believe Open Firmware 2.4 has a probe-mask so that it doesn't probe the same thing twice. If that doesn't work maybe we can rely on the fact that Open Firmware is supposed to capture console output until the output device is available.
Something like the following (for Open Firmware 2.4) could be added to the end of nvramrc (if there's enough space remaining? post the contents of your nvramrc):
Code:
." [ probe-all (except gpu)"
pci-probe-history 1 12 << or to pci-probe-history
probe-all
." ] probe-all (except gpu)"
." [ install-console"
install-console
." ] install-console"
." [ banner"
banner
." ] banner"
." [ probing GPU"
pci-probe-history 1 12 << not to pci-probe-history
probe-all
." ] probing GPU"
Replace 12 with the device ID of the GPU.
This script changes pci-probe-history so that the GPU doesn't get probed during the first probe-all.
Then it does the normal stuff - probe-all, install-console, banner, then it removes GPU from the history so that the last probe-all can probe it.