Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
Try these commands on Open Firmware 2.4:

" devicepath\filepath" (load)
Then check load-base contents
load-base 100 dump
Also check
pwd .properties words to make sure load didn't do anything to the context. Then you can byte-load from the offset in the rom where the 0xF1 start fcode is at.
load-base offset + 1 byte-load
This seems to work so far. But in this case i have allready cut the PCI-header. So no need to load from a particular offset.

Code:
0 > " ide0/@0:1,\TEST6.ROM" (load)  ok
0 > 600000 100 dump
00600000: f1 08 e2 5e 00 01 54 6b 12 2a 00 00 00 00 00 00 :...^..Tk.*......:
00600010: 00 00 00 00 de 10 4d 00 c3 83 ef ff 08 10 00 00 :......M.........:
00600020: ff ff ff 7f 00 00 00 80 22 00 a5 f1 00 00 00 00 :........".......:
00600030: 00 00 00 00 52 a5 b5 08 00 ba 12 88 00 a0 00 b0 :....R...........:
00600040: 00 b8 00 c0 00 33 7e 1d db 00 02 00 ff ff ff ff :.....3~.........:
00600050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000c0: ff ff ff ff 52 b5 08 01 b7 12 05 68 65 72 65 3a :....R......here::
006000d0: 90 ad 10 00 00 00 08 9c a9 8f 12 06 73 74 61 63 :............stac:
006000e0: 6b 3a 90 9f c2 b5 08 02 b7 9d 12 06 20 68 65 72 :k:.......... her:
006000f0: 65 3a 90 ad 10 00 00 00 08 9c a9 8f 12 06 73 74 :e:............st: ok
0 > pwd .properties words no active package
 ok

Nice to finally see anything load at all. But if now i would start the byte-load, no device would be selected. Can this command also be used from within the device?
 
But I also have the Keyspan Twin Serial Adapters USA-28 and USA-28X.
Thanks I just ordered one as well a a NOS PNY 6200 PCI 256MB.

I haven't given up on the 512MB card, but I'm at a loss on getting a working ROM for it. There is some stuff about the PSTRAPS/nVSTRAPS that doesn't always translate from PC to Mac even when you copy the strap directly over from the PC ROM to the FCODE ROM.

I remember I would always used Arti's Windows based Strap editor to hard set a few values after I used the ROM Maker. The ID in the the tables and the amount of VRAM, but I don't have that tool anymore.....

Sometimes the active timing table set in the STRAP( 0-7 ) isn't always honored when we put the FCODE ROM on, as well as the VRAM Size. I think there is a VRAM Size register set later in the ROM, but the STRAP needs the override and needs to match the size set in the register. It got to the point where I would just do both overrides on any card I flashed and I has zero issue, tho I never tested Leopard as it had not shipped yet.
 
Anyway " pci/@e/@0" open-dev u. doesn't actually crash the system, the built-in video just stops updating at this point when the nVidia screen turns on:

IMG_0483.jpeg


If I type bye it happily boots OS 9 but no sign of the display output on the nVidia card even tho all the properties of the card are mostly correct in the DiplayNameReg.

If I don't do " pci/@e/@0" open-dev u. before booting the Mac OS 9 then I get a bus error and must reboot after I run the rom to the end in OF.

Anyway, we'll know more when my eBay orders get in and we can all get on the same page but for the Rev. of the Beige G3.

Joe and I worked on this many years ago over at the old XPF forums, I was trying to ge a PCI Geforce2 MX 200 to work in my PM8600, but I didn't really know enough, and I like still don't. Closest I ever got was I got the display connected to the GeForce card to turn on for a brief moment then back off in my PM7200.

I did get the card to work fine in a Sawtooth. Tho beware that at some point Apple/nVidia made PCI cards stop working with the OS X drivers. I'm thinking they started working again in 10.4.3. So for testing always try a fully updated 10.4.11 first.
 
This seems to work so far. But in this case i have allready cut the PCI-header. So no need to load from a particular offset.

Code:
0 >
[CODE]
dev pci/@e
" ide0/@0:1,\TEST6.ROM" (load)  ok
600000 100 dump
00600000: f1 08 e2 5e 00 01 54 6b 12 2a 00 00 00 00 00 00 :...^..Tk.*......:
00600010: 00 00 00 00 de 10 4d 00 c3 83 ef ff 08 10 00 00 :......M.........:
00600020: ff ff ff 7f 00 00 00 80 22 00 a5 f1 00 00 00 00 :........".......:
00600030: 00 00 00 00 52 a5 b5 08 00 ba 12 88 00 a0 00 b0 :....R...........:
00600040: 00 b8 00 c0 00 33 7e 1d db 00 02 00 ff ff ff ff :.....3~.........:
00600050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
00600090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000c0: ff ff ff ff 52 b5 08 01 b7 12 05 68 65 72 65 3a :....R......here::
006000d0: 90 ad 10 00 00 00 08 9c a9 8f 12 06 73 74 61 63 :............stac:
006000e0: 6b 3a 90 9f c2 b5 08 02 b7 9d 12 06 20 68 65 72 :k:.......... her:
006000f0: 65 3a 90 ad 10 00 00 00 08 9c a9 8f 12 06 73 74 :e:............st: ok
0 > pwd .properties words no active package
ok[/CODE]

Nice to finally see anything load at all. But if now i would start the byte-load, no device would be selected. Can this command also be used from within the device?
Select the device first!



Code:
dev pci/@e
" ide0/@0:1,\TEST6.ROM" (load)  ok
600000 100 dump
words
 
Finally after all at least i got it to start the debugging. This time the unaltered ROM with the PCI-header, using the offset "trick".

But this tim it dropped the debugging after 4k again. Just like as with the ROM flashed to the card.

Code:
0 > " ide0/@0:1,\TEST5.ROM" (load)  ok
0 > 600000 100 dump
00600000: 55 aa 40 00 00 00 00 00 00 00 00 00 00 00 00 00 :U.@.............:
00600010: 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 :........ .......:
00600020: 50 43 49 52 de 10 21 02 00 00 20 00 00 00 00 03 :PCIR..!... .....:
00600030: 7f 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 :................:
00600040: f1 08 7c 29 00 00 ff 93 12 2a 00 00 00 00 00 00 :..|).....*......:
00600050: 00 00 00 00 de 10 4d 00 c3 83 ef ff 08 10 00 00 :......M.........:
00600060: ff ff ff 7f 00 00 00 80 22 00 a5 f1 00 00 00 00 :........".......:
00600070: 00 00 00 00 52 12 06 5b 20 4e 56 34 33 90 92 12 :....R..[ NV43...:
00600080: 05 68 65 72 65 3a 90 ad 9b 92 a5 b5 08 00 ba 12 :.here:..........:
00600090: 88 00 a0 00 b0 00 b8 00 c0 00 33 7e 1d db 00 02 :..........3~....:
006000a0: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................: ok
0 > pwd .properties words no active package
 ok
0 > 600040 1 byte-load [ NV43
here:ff858876
no current instance ok
0 > dev pci/@e  ok
0 > 600040 1 byte-load [ NV43
here:ff87ba14
no current instance ok
0 > words
close           open
 ok
0 > " pci/@e" select-dev r_3 @00007010.l = 82000000
w_3 @00007010.l = ffffffff
r_3 @00007010.l = ff000000
w_3 @00007010.l = 82000000
r_3 @00007014.l = 90000008
w_3 @00007014.l = ffffffff
r_3 @00007014.l = f0000008
w_3 @00007014.l = 90000008
r_3 @00007018.l = 81000000
w_3 @00007018.l = ffffffff
r_3 @00007018.l = ff000000
w_3 @00007018.l = 81000000
r_3 @00007030.l = 80820000
w_3 @00007030.l = ffffffff
r_3 @00007030.l = fffe0001
w_3 @00007030.l = 80820000
r_3 @00007004.w = 4
w_3 @00007004.w = 6
w_0 @00000004.l = 1000000
 ok
0 > 600040 1 byte-load [ NV43
here:ff89ebb4
get subsystem-id
set subsystem-id
get subsystem-id
val93f=4d
r_3 @00007014.l = 90000008
r_3 @00007010.l = 82000000
w_3 @00007010.l = ffffffff
r_3 @00007010.l = ff000000
w_3 @00007010.l = 82000000
r_3 @00007014.l = 90000008
w_3 @00007014.l = ffffffff
r_3 @00007014.l = f0000008
w_3 @00007014.l  9000008
r_3 @00007018.l = 81000000
w_3 @00007018.l = ffffffff
r_3 @00007018.l = ff000000
w_3 @00007018.l = 81000000
r_3 @00007030.l = 80820000
w_3 @00007030.l = ffffffff
r_3 @00007030.l = fffe0001
w_3 @00007030.l = 80820000
r_3 @00007004.w = 6
w_3 @00007004.w = 6
w_0 @00000004.l = 1000000
r_0 @00000000.l = a100a104
r_0 @00101000.l = 8b904e23
w_0 @0000184c.l = 0
w_0 @00001850.l = 1000000
w_0 @00001854.l = 0
r_0 @00000200.l = 103
w_0 @00000200.l = 103
r_0 @00000200.l = 103
w_0 @000c03c3.b = 1
r_0 @000c03c3.b = 1
r_0 @000c03cc.b = 0
w_0 @000c03cc.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @000c23c3.b = 1
r_0 @000c23c3.b = 1
r_0 @000c23cc.b = 0
w_0 @000c23cc.b = 1
w_0 @006013d4.b = 44
r_0 @006013d5.b = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006013d5.b = 4
w_0 @006033d4.b = 44
w_0 @006033d5.b = 4
w_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006013d4.b = 44
r_0 @006013d5.b = 4
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 1
w_0 @006033d4.b = 44
w_0 @006033d5.b = 1
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @000c23c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c23c3.b = 1
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006033d4.b = 21
w_0 @006033d5.b = fa
r_0 @00602804.l = 0
w_0 @00602804.l = 80
w_0 @00602860.l = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @000c03c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c03c3.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @006013d4.b = 21
w_0 @006013d5.b = fa
r_0 @00600804.l = 0
w_0 @00600804.l = 80
w_0 @00600860.l = 0
 ok
0 >
 
Later i'll try the same process again with the ROM without the header, to see if it gets any better.
 
Finally after all at least i got it to start the debugging. This time the unaltered ROM with the PCI-header, using the offset "trick".

But this tim it dropped the debugging after 4k again. Just like as with the ROM flashed to the card.

Code:
0 >
[CODE]dev pci/@e
: open true ; : close ;
" ide0/@0:1,\TEST5.ROM" (load)
" pci/@e" select-dev
600000 1 byte-load
ok
0 > 600000 100 dump
00600000: 55 aa 40 00 00 00 00 00 00 00 00 00 00 00 00 00 :U.@.............:
00600010: 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 :........ .......:
00600020: 50 43 49 52 de 10 21 02 00 00 20 00 00 00 00 03 :pCIR..!... .....:
00600030: 7f 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 :................:
00600040: f1 08 7c 29 00 00 ff 93 12 2a 00 00 00 00 00 00 :..|).....*......:
00600050: 00 00 00 00 de 10 4d 00 c3 83 ef ff 08 10 00 00 :......M.........:
00600060: ff ff ff 7f 00 00 00 80 22 00 a5 f1 00 00 00 00 :........".......:
00600070: 00 00 00 00 52 12 06 5b 20 4e 56 34 33 90 92 12 :....R..[ NV43...:
00600080: 05 68 65 72 65 3a 90 ad 9b 92 a5 b5 08 00 ba 12 :.here:..........:
00600090: 88 00 a0 00 b0 00 b8 00 c0 00 33 7e 1d db 00 02 :..........3~....:
006000a0: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................:
006000f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff :................: ok
0 > pwd .properties words no active package
ok
0 > 600040 1 byte-load [ NV43
here:ff858876
no current instance ok
0 > dev pci/@e ok
0 > 600040 1 byte-load [ NV43
here:ff87ba14
no current instance ok
0 > words
close open
ok
0 > " pci/@e" select-dev r_3 @00007010.l = 82000000
w_3 @00007010.l = ffffffff
r_3 @00007010.l = ff000000
w_3 @00007010.l = 82000000
r_3 @00007014.l = 90000008
w_3 @00007014.l = ffffffff
r_3 @00007014.l = f0000008
w_3 @00007014.l = 90000008
r_3 @00007018.l = 81000000
w_3 @00007018.l = ffffffff
r_3 @00007018.l = ff000000
w_3 @00007018.l = 81000000
r_3 @00007030.l = 80820000
w_3 @00007030.l = ffffffff
r_3 @00007030.l = fffe0001
w_3 @00007030.l = 80820000
r_3 @00007004.w = 4
w_3 @00007004.w = 6
w_0 @00000004.l = 1000000
ok
0 > 600040 1 byte-load [ NV43
here:ff89ebb4
get subsystem-id
set subsystem-id
get subsystem-id
val93f=4d
r_3 @00007014.l = 90000008
r_3 @00007010.l = 82000000
w_3 @00007010.l = ffffffff
r_3 @00007010.l = ff000000
w_3 @00007010.l = 82000000
r_3 @00007014.l = 90000008
w_3 @00007014.l = ffffffff
r_3 @00007014.l = f0000008
w_3 @00007014.l 9000008
r_3 @00007018.l = 81000000
w_3 @00007018.l = ffffffff
r_3 @00007018.l = ff000000
w_3 @00007018.l = 81000000
r_3 @00007030.l = 80820000
w_3 @00007030.l = ffffffff
r_3 @00007030.l = fffe0001
w_3 @00007030.l = 80820000
r_3 @00007004.w = 6
w_3 @00007004.w = 6
w_0 @00000004.l = 1000000
r_0 @00000000.l = a100a104
r_0 @00101000.l = 8b904e23
w_0 @0000184c.l = 0
w_0 @00001850.l = 1000000
w_0 @00001854.l = 0
r_0 @00000200.l = 103
w_0 @00000200.l = 103
r_0 @00000200.l = 103
w_0 @000c03c3.b = 1
r_0 @000c03c3.b = 1
r_0 @000c03cc.b = 0
w_0 @000c03cc.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @000c23c3.b = 1
r_0 @000c23c3.b = 1
r_0 @000c23cc.b = 0
w_0 @000c23cc.b = 1
w_0 @006013d4.b = 44
r_0 @006013d5.b = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006013d5.b = 4
w_0 @006033d4.b = 44
w_0 @006033d5.b = 4
w_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006013d4.b = 44
r_0 @006013d5.b = 4
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 1
w_0 @006033d4.b = 44
w_0 @006033d5.b = 1
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @000c23c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c23c3.b = 1
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006033d4.b = 21
w_0 @006033d5.b = fa
r_0 @00602804.l = 0
w_0 @00602804.l = 80
w_0 @00602860.l = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @000c03c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c03c3.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @006013d4.b = 21
w_0 @006013d5.b = fa
r_0 @00600804.l = 0
w_0 @00600804.l = 80
w_0 @00600860.l = 0
ok
0 >[/CODE]
so " fd:,\jvt5.rom" (load) return (load) unknown word on oOF 2.0.x.

Anyway, looks like you found a way that load doesn't do load then go and you can leave the PCI header intact.

A few things to try here:

Code:
dev pci/@e
: open true ; : close ;
" ide0/@0:1,\TEST5.ROM" (load)
" pci/@e" select-dev
600040 1 byte-load


Code:
dev pci/@e
: open true ; : close ;
" ide0/@0:1,\TEST5.ROM" (load)
" pci/@e" open-dev to myself
600040 1 byte-load


Code:
dev pci/@e
" ide0/@0:1,\TEST5.ROM" (load)
600040 1 byte-load
" pci/@e" select-dev
600040 1 byte-load

Code:
dev pci/@e
" ide0/@0:1,\TEST5.ROM" (load)
600040 1 byte-load
" pci/@e" open-dev to my-self
600040 1 byte-load

Sometime on my system the debug rom bombs out before finish too, seems to be random. Just reset-all and try each set of commands a few times before you give up!
 
@flyproductions if you ever get tired of burning CD's you should be able to load a file over the serial connection.


Interesting is the source command as I can't get scripts that start with \ comment to run on old world Macs.
 
Would you mind to run a benchmark for the 9200 with OpenGL Extensions Viewer 3.0, similar as possible resolution and settings on a B&W or G4? Would be highly interested, how it compares to the 9000pro.

just a couple for now :) done in 10.4.11 with OpenGL Extensions view 3.0 on a Dual 1.42Ghz MDD with 2GB of RAM

Picture 1.png


Picture 2.png


tis worth noting the 9200 I tested here is of the more uncommon 9200 PRO/9250 based Radeon 9200 Mac Edition (note the 5960 device ID and 201 ROM revision)

but I believe the clocks and performance are identical to the 9200 based 9200 Mac Edition,
I do have one of those so at some point I will compare, but I need to flash it back to its Mac ROM as I often use it as an x86 PCI card
I also have a Radeon 9200 AGP that I flash between PC and Mac, which I would like to test for my own curiosity sakes for a back to back AGP vs PCI comparison
 
  • Like
Reactions: flyproductions
Anyway, looks like you found a way that load doesn't do load then go and you can leave the PCI header intact.
Wouldn't say "i found". It was more that i was pointed to.

Code:
" ide0/@0:1,\TEST5.ROM" (load)

Was the key so far to get anything loaded at all. Now i can dump as much of the ROM as i want.

But as soon as i get the debugging stuff running (i tried any combination multiple times, with and without the PCI-header), it stops at the exact same point after 4k as it did with the ROM flashed to the card.
 
Joe and I worked on this many years ago over at the old XPF forums, I was trying to ge a PCI Geforce2 MX 200 to work in my PM8600, but I didn't really know enough, and I like still don't. Closest I ever got was I got the display connected to the GeForce card to turn on for a brief moment then back off in my PM7200.
As mentioned earlier, the 2MX seems to play much better with the Rev. C Beiges.

Even with the f**ed V-Ram, i get a (garbeled) normal bootscreen with the Apple-Logo and the spinning wheel. It hangs when entering the OS now. But that's because...

I could swear, before it partially died, it ran just normal like the 9000pro or the Rage. But it's a relatively weak card and only has VGA. So not so much tears cried. 4MX could be a nice card and i'd bet, at least in Rev. C, it would work too. But 4MX PCI should be quite impossible to be found these days.
 
Wouldn't say "i found". It was more that i was pointed to.

Code:
" ide0/@0:1,\TEST5.ROM" (load)

Was the key so far to get anything loaded at all. Now i can dump as much of the ROM as i want.

But as soon as i get the debugging stuff running (i tried any combination multiple times, with and without the PCI-header), it stops at the exact same point after 4k as it did with the ROM flashed to the card.
Does the card pull the no show now?

Now you're not limited to the size of the eeprom for test roms and you don't have to shlep over to your PC to flash each test.

Give us the .properties of the card before and after testing the rom?
 
Last edited:
  • Like
Reactions: flyproductions
Thanks for confirming my suspicion, that 9200 and 9000pro are very close with some slight advantage for the 9000pro.
Yeah the Radeon 9000 Pro should be faster its core configuration is identical to that of the 9200, except its clocked a good bit faster :)

a Radeon 9200 Mac Edition is 250Mhz Core Clock and 200Mhz Mem Clock

where as a Radeon 9000 Pro is 275Mhz Core Clock and 250Mhz Mem clock :)


so by that measure the 9000 Pro is indisputably faster and the results back that up, and for those curious I also compared the clocks of the 5961 and 5960 Device ID Mac Edition 9200 ROM's and they are identical as I thought so would perform identically

the only advantage the 9200 has over the 9000 Pro is the 128MB VRAM, but I imagine more extensive benchmarking would be required to figure out how that plays into things, and ill let someone else do that LOL
 
the only advantage the 9200 has over the 9000 Pro is the 128MB VRAM,...
The Hercules i have was available in 128 too. But i think i have seen 2 or 3 on ebay in over 20 years. Not even in the old days. And for the Radeon 8500, the 64MB-variant most sources claimed to be faster than 128.
 
Give us the .properties of the card before and after testing the rom?
Thanks! I was just about to run out of ideas.

So here we go:

Code:
0 > dev pci/@e  ok
0 > .properties
vendor-id               000010de
device-id               00000221
revision-id             000000a1
class-code              00030000
interrupts              00000001
min-grant               00000005
max-latency             00000001
devsel-speed            00000001
fast-back-to-back
AAPL,interrupts         00000018
AAPL,slot-name          B1
name                    pci10de,221
compatible              pci10de,221
device_type             display
reg                     00007000 00000000 00000000  00000000 00000000
                        02007010 00000000 00000000  00000000 01000000
                        42007014 00000000 00000000  00000000 10000000
                        02007018 00000000 00000000  00000000 01000000
                        02007030 00000000 00000000  00000000 00020000
power-consumption       00000000 00000000
assigned-addresses      c2007014 00000000 90000000  00000000 10000000
                        82007010 00000000 82000000  00000000 01000000
                        82007018 00000000 81000000  00000000 01000000
                        82007030 00000000 80820000  00000000 00020000

 ok
0 > : open true ; : close ;  ok
0 > " ide0/@0:1,\TEST5.ROM" (load)  ok
0 > " pci/@e" select-dev  ok
0 > 4d encode-int " subsystem-id" property  ok
0 > 600000 1 byte-load [ NV43
here:ff8588d8
get subsystem-id
val93f=4d
r_3 @00007014.l = 90000008
r_3 @00007010.l = 82000000
w_3 @00007010.l = ffffffff
r_3 @00007010.l = ff000000
w_3 @00007010.l = 82000000
r_3 @00007014.l = 90000008
w_3 @00007014.l = ffffffff
r_3 @00007014.l = f0000008
w_3 @00007014.l = 90000008
r_3 @00007018.l = 81000000
w_3 @00007018.l = ffffffff
r_3 @00007018.l = ff000000
w_3 @00007018.l = 81000000
r_3 @00007030.l = 80820000
w_3 @00007030.l = ffffffff
r_3 @00007030.l = fffe0001
w_3 @00007030.l = 80820000
r_3 @00007004.w = 4
w_3 @00007004.w = 6
w_0 @00000004.l = 1000000
r_0 @00000000.l = a100a104
r_0 @00101000.l = 8b904e23
w_0 @0000184c.l = 0
w_0 @00001850.l = 1000000
w_0 @00001854.l = 0
r_0 @00000200.l = 103
w_0 @00000200.l = 103
r_0 @00000200.l = 103
w_0 @000c03c3.b = 1
r_0 @000c03c3.b = 1
r_0 @000c03cc.b = 0
w_0 @000c03cc.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @000c23c3.b = 1
r_0 @000c23c3.b = 1
r_0 @000c23cc.b = 0
w_0 @000c23cc.b = 1
w_0 @006013d4.b = 44
r_0 @006013d5.b = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006013d5.b = 4
w_0 @006033d4.b = 44
w_0 @006033d5.b = 4
w_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006013d4.b = 44
r_0 @006013d5.b = 4
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 1
w_0 @006033d4.b = 44
w_0 @006033d5.b = 1
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @000c23c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c23c3.b = 1
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006033d4.b = 21
w_0 @006033d5.b = fa
r_0 @00602804.l = 0
w_0 @00602804.l = 80
w_0 @00602860.l = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @000c03c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c03c3.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @006013d4.b = 21
w_0 @006013d5.b = fa
r_0 @00600804.l = 0
w_0 @00600804.l = 80
w_0 @00600860.l = 0
 ok
0 > .properties
vendor-id               000010de
device-id               00000221
revision-id             000000a1
class-code              00030000
interrupts              00000001
min-grant               00000005
max-latency             00000001
devsel-speed            00000001
fast-back-to-back
AAPL,interrupts         00000018
AAPL,slot-name          B1
name                    pci10de,221
compatible              pci10de,221
device_type             display
reg                     00007000 00000000 00000000  00000000 00000000
                        02007010 00000000 00000000  00000000 01000000
                        42007014 00000000 00000000  00000000 10000000
                        02007018 00000000 00000000  00000000 01000000
                        02007030 00000000 00000000  00000000 00020000
power-consumption       00000000 00000000
assigned-addresses      c2007014 00000000 90000000  00000000 10000000
                        82007010 00000000 82000000  00000000 01000000
                        82007018 00000000 81000000  00000000 01000000
                        82007030 00000000 80820000  00000000 00020000
subsystem-id            00000010
model                   Geforce 6200

 ok
0 >

It's the ROM without header again. Therefor 600000 instead of 600040.

At least it's a GeForce 6200 now! 😁
 
Thanks! I was just about to run out of ideas.

So here we go:

Code:
0 > dev pci/@e  ok
0 > .properties
vendor-id               000010de
device-id               00000221
revision-id             000000a1
class-code              00030000
interrupts              00000001
min-grant               00000005
max-latency             00000001
devsel-speed            00000001
fast-back-to-back
AAPL,interrupts         00000018
AAPL,slot-name          B1
name                    pci10de,221
compatible              pci10de,221
device_type             display
reg                     00007000 00000000 00000000  00000000 00000000
                        02007010 00000000 00000000  00000000 01000000
                        42007014 00000000 00000000  00000000 10000000
                        02007018 00000000 00000000  00000000 01000000
                        02007030 00000000 00000000  00000000 00020000
power-consumption       00000000 00000000
assigned-addresses      c2007014 00000000 90000000  00000000 10000000
                        82007010 00000000 82000000  00000000 01000000
                        82007018 00000000 81000000  00000000 01000000
                        82007030 00000000 80820000  00000000 00020000

 ok
0 > : open true ; : close ;  ok
0 > " ide0/@0:1,\TEST5.ROM" (load)  ok
0 > " pci/@e" select-dev  ok
0 > 4d encode-int " subsystem-id" property  ok
0 > 600000 1 byte-load [ NV43
here:ff8588d8
get subsystem-id
val93f=4d
r_3 @00007014.l = 90000008
r_3 @00007010.l = 82000000
w_3 @00007010.l = ffffffff
r_3 @00007010.l = ff000000
w_3 @00007010.l = 82000000
r_3 @00007014.l = 90000008
w_3 @00007014.l = ffffffff
r_3 @00007014.l = f0000008
w_3 @00007014.l = 90000008
r_3 @00007018.l = 81000000
w_3 @00007018.l = ffffffff
r_3 @00007018.l = ff000000
w_3 @00007018.l = 81000000
r_3 @00007030.l = 80820000
w_3 @00007030.l = ffffffff
r_3 @00007030.l = fffe0001
w_3 @00007030.l = 80820000
r_3 @00007004.w = 4
w_3 @00007004.w = 6
w_0 @00000004.l = 1000000
r_0 @00000000.l = a100a104
r_0 @00101000.l = 8b904e23
w_0 @0000184c.l = 0
w_0 @00001850.l = 1000000
w_0 @00001854.l = 0
r_0 @00000200.l = 103
w_0 @00000200.l = 103
r_0 @00000200.l = 103
w_0 @000c03c3.b = 1
r_0 @000c03c3.b = 1
r_0 @000c03cc.b = 0
w_0 @000c03cc.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @000c23c3.b = 1
r_0 @000c23c3.b = 1
r_0 @000c23cc.b = 0
w_0 @000c23cc.b = 1
w_0 @006013d4.b = 44
r_0 @006013d5.b = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006013d5.b = 4
w_0 @006033d4.b = 44
w_0 @006033d5.b = 4
w_0 @006033d4.b = 0
w_0 @006013d4.b = 44
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006013d4.b = 44
r_0 @006013d5.b = 4
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
r_0 @006013d4.b = 44
r_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @006013d5.b = 1
w_0 @006033d4.b = 44
w_0 @006033d5.b = 1
w_0 @006033d4.b = 44
w_0 @006013d4.b = 44
w_0 @000c23c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c23c3.b = 1
w_0 @006033d4.b = 1f
w_0 @006033d5.b = 57
w_0 @006033d4.b = 21
w_0 @006033d5.b = fa
r_0 @00602804.l = 0
w_0 @00602804.l = 80
w_0 @00602860.l = 0
r_0 @006013d4.b = 44
r_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @006013d5.b = 0
w_0 @006033d4.b = 44
w_0 @006033d5.b = 0
w_0 @006033d4.b = 21
w_0 @006013d4.b = 44
w_0 @000c03c3.b = 1
w_0 @000c03c2.b = e3
r_0 @000c03c3.b = 1
w_0 @006013d4.b = 1f
w_0 @006013d5.b = 57
w_0 @006013d4.b = 21
w_0 @006013d5.b = fa
r_0 @00600804.l = 0
w_0 @00600804.l = 80
w_0 @00600860.l = 0
 ok
0 > .properties
vendor-id               000010de
device-id               00000221
revision-id             000000a1
class-code              00030000
interrupts              00000001
min-grant               00000005
max-latency             00000001
devsel-speed            00000001
fast-back-to-back
AAPL,interrupts         00000018
AAPL,slot-name          B1
name                    pci10de,221
compatible              pci10de,221
device_type             display
reg                     00007000 00000000 00000000  00000000 00000000
                        02007010 00000000 00000000  00000000 01000000
                        42007014 00000000 00000000  00000000 10000000
                        02007018 00000000 00000000  00000000 01000000
                        02007030 00000000 00000000  00000000 00020000
power-consumption       00000000 00000000
assigned-addresses      c2007014 00000000 90000000  00000000 10000000
                        82007010 00000000 82000000  00000000 01000000
                        82007018 00000000 81000000  00000000 01000000
                        82007030 00000000 80820000  00000000 00020000
subsystem-id            00000010
model                   Geforce 6200

 ok
0 >

It's the ROM without header again. Therefor 600000 instead of 600040.

At least it's a GeForce 6200 now! 😁
So we know it get's at least this far, pretty near the end of the .4th file, but I doubt it all happens in linear order:

Code:
: colon_definition_function_dd7                                                    \ (dd7)                [0b5 0b7]
    value_940_0                                                                    \ (940 0)            [940]
    28                                                                            \                    [010]
    =                                                                            \                    [03c]
    if                                                                            \ (0x30)            [014]
        34                                                                        \                    [010]
        value_93d_0                                                                \ (93d 0)            [93d]
        =                                                                        \                    [03c]
        if                                                                        \ (0x24)            [014]
            value_942_0                                                            \ (942 0)            [942]
            10000                                                                \                    [010]
            and                                                                    \                    [023]
            0<>                                                                    \                    [035]
            if                                                                    \ (0xe)                [014]
                2a                                                                \                    [010]
                to value_940_0                                                    \ (940 0)            [0c3 940]
            else                                                                \ (0xc)                [013 0b2]
                29                                                                \                    [010]
                to value_940_0                                                    \ (940 0)            [0c3 940]
            then                                                                \                    [0b2]
        then                                                                    \                    [0b2]
    then                                                                        \                    [0b2]
    value_940_0                                                                    \ (940 0)            [940]
    31                                                                            \                    [010]
    =                                                                            \                    [03c]
    if                                                                            \ (0x2a)            [014]
        34                                                                        \                    [010]
        value_93d_0                                                                \ (93d 0)            [93d]
        =                                                                        \                    [03c]
        if                                                                        \ (0x1e)            [014]
            value_942_0                                                            \ (942 0)            [942]
            10000                                                                \                    [010]
            and                                                                    \                    [023]
            0<>                                                                    \                    [035]
            if                                                                    \ (0x8)                [014]
                " :dd7" myabort
                abort                                                            \                    [216]
            else                                                                \ (0xc)                [013 0b2]
                32                                                                \                    [010]
                to value_940_0                                                    \ (940 0)            [0c3 940]
            then                                                                \                    [0b2]
        then                                                                    \                    [0b2]
    then                                                                        \                    [0b2]
    value_940_0                                                                    \ (940 0)            [940]
    to value_941_0                                                                \ (941 0)            [0c3 941]
    value_940_0                                                                    \ (940 0)            [940]
    case                                                                        \                    [0c4]
        4d                                                                        \                    [010]
        of                                                                        \ (0x25)            [01c]
            42                                                                    \                    [010]
            to value_944_0                                                        \ (944 0)            [0c3 944]
            42                                                                    \                    [010]
            to value_943_0                                                        \ (943 0)            [0c3 943]
            " Geforce 6200"                                                        \                    [012]
            model                                                                \                    [119]
        endof                                                                    \ (0x5)                [0c6]
        " :dd7#2" myabort
        abort                                                                    \                    [216]
    endcase                                                                        \                    [0c5]
    ;
 
  • Like
Reactions: flyproductions
Gave the one with the header another shot. Sadly results in 100% the same.

At least gives no "vendor-id missing"-error.
 
So we know it get's at least this far, pretty near the end of the .4th file, but I doubt it all happens in linear order:

Code:
: colon_definition_function_dd7                                                    \ (dd7)                [0b5 0b7]
    value_940_0                                                                    \ (940 0)            [940]
    28                                                                            \                    [010]
    =                                                                            \                    [03c]
    if                                                                            \ (0x30)            [014]
        34                                                                        \                    [010]
        value_93d_0                                                                \ (93d 0)            [93d]
        =                                                                        \                    [03c]
        if                                                                        \ (0x24)            [014]
            value_942_0                                                            \ (942 0)            [942]
            10000                                                                \                    [010]
            and                                                                    \                    [023]
            0<>                                                                    \                    [035]
            if                                                                    \ (0xe)                [014]
                2a                                                                \                    [010]
                to value_940_0                                                    \ (940 0)            [0c3 940]
            else                                                                \ (0xc)                [013 0b2]
                29                                                                \                    [010]
                to value_940_0                                                    \ (940 0)            [0c3 940]
            then                                                                \                    [0b2]
        then                                                                    \                    [0b2]
    then                                                                        \                    [0b2]
    value_940_0                                                                    \ (940 0)            [940]
    31                                                                            \                    [010]
    =                                                                            \                    [03c]
    if                                                                            \ (0x2a)            [014]
        34                                                                        \                    [010]
        value_93d_0                                                                \ (93d 0)            [93d]
        =                                                                        \                    [03c]
        if                                                                        \ (0x1e)            [014]
            value_942_0                                                            \ (942 0)            [942]
            10000                                                                \                    [010]
            and                                                                    \                    [023]
            0<>                                                                    \                    [035]
            if                                                                    \ (0x8)                [014]
                " :dd7" myabort
                abort                                                            \                    [216]
            else                                                                \ (0xc)                [013 0b2]
                32                                                                \                    [010]
                to value_940_0                                                    \ (940 0)            [0c3 940]
            then                                                                \                    [0b2]
        then                                                                    \                    [0b2]
    then                                                                        \                    [0b2]
    value_940_0                                                                    \ (940 0)            [940]
    to value_941_0                                                                \ (941 0)            [0c3 941]
    value_940_0                                                                    \ (940 0)            [940]
    case                                                                        \                    [0c4]
        4d                                                                        \                    [010]
        of                                                                        \ (0x25)            [01c]
            42                                                                    \                    [010]
            to value_944_0                                                        \ (944 0)            [0c3 944]
            42                                                                    \                    [010]
            to value_943_0                                                        \ (943 0)            [0c3 943]
            " Geforce 6200"                                                        \                    [012]
            model                                                                \                    [119]
        endof                                                                    \ (0x5)                [0c6]
        " :dd7#2" myabort
        abort                                                                    \                    [216]
    endcase                                                                        \                    [0c5]
    ;
Anyway colon_definition_function_dd7 here above is the colon definition, that defines the function like a word for Open Firmware.

Like this:

Code:
: open true ; : close ;

Those are two very simple colon definitions, the start with : and end with ;.

Here we have a more complex colon definition, but it's all 4th.

So search the 4th file Joe attached with the debug rom we are using for "colon_definition_function_dd7":

Code:
snip

\                    [0b2]
    colon_definition_function_dda                                                \ (dda)                [dda]
    101000                                                                        \                    [010]
    colon_definition_function_a11                                                \ (a11)                [a11]
    to value_942_0                                                                \ (942 0)            [0c3 942]
    colon_definition_function_dd7                                                \ (dd7)                [dd7]. <<------HERE is where that is actually executed
    value_942_0                                                                    \ (942 0)            [942] <<------IS THIS WHAT HAPPENS NEXT?
    6                                                                            \                    [010]
    rshift                                                                        \                    [028]
    1                                                                            \                    [0a6]
    and                                                                            \                    [023]
    to value_94f_0                                                                \ (94f 0)            [0c3 94f]
    value_93d_0                                                                    \ (93d 0)            [93d]
    17                                                                            \                    [010]
    >=                                                                            \                    [042]
    value_93d_0                                                                    \ (93d 0)            [93d]
    20                                                                            \                    [010]
    <>                                                                            \                    [03d]
    and                                                                            \                    [023]
    if                                                                            \ (0x13)            [014]
        value_942_0                                                                \ (942 0)            [942]
        15                                                                        \                    [010]
        rshift                                                                    \                    [028]
        2                                                                        \                    [0a7]
        and                                                                        \                    [023]
        value_94f_0                                                                \ (94f 0)            [94f]
        or                                                                        \                    [024]
        to value_94f_0                                                            \ (94f 0)            [0c3 94f]
    then                                                                        \                    [0b2]
    0                                                                            \                    [0a5]
    184c                                                                        \                    [010]
    colon_definition_function_a13                                                \ (a13)                [a13]

See we have to fallow along the chain of execution until we find what fails!

Much easier if we had fcode-verbose? as that prints every single line of fcode and when it fails it's much easier to search your 4th file for the exact point where the code fails.
 
@flyproductions Did you notice, tho you likely didn't as you can't use this ROM, but the rom we are using is set to 128MB for VRAM,size.

Not sure how that happened, tho it likely doesn't matter at this point, something to fix later perhaps.
 
I just tested. Output is somehow different and no errors anymore. (see attached)
I some how sent the wrong #6. That was an old debug version with every line numbered. But it is interesting that it stopped in :dd6.
I have attached the correct version.

This seems to work so far. But in this case i have allready cut the PCI-header. So no need to load from a particular offset.
The (load) can be done outside the device.
Then the byte-load can be done within the device.

Anyway " pci/@e/@0" open-dev u. doesn't actually crash the system, the built-in video just stops updating at this point when the nVidia screen turns on:

If I type bye it happily boots OS 9 but no sign of the display output on the nVidia card even tho all the properties of the card are mostly correct in the DiplayNameReg.

Anyway, we'll know more when my eBay orders get in and we can all get on the same page but for the Rev. of the Beige G3.
Is a display connected to both the built-in video and the 6200?
I wonder if there's a problem with having more than one display, and maybe booting with scca as input and output will allow the 6200 to show something.
 

Attachments

  • 6200 #6B.zip
    327.3 KB · Views: 68
I some how sent the wrong #6. That was an old debug version with every line numbered. But it is interesting that it stopped in :dd6.
I have attached the correct version.


The (load) can be done outside the device.
Then the byte-load can be done within the device.


Is a display connected to both the built-in video and the 6200?
I wonder if there's a problem with having more than one display, and maybe booting with scca as input and output will allow the 6200 to show something.
Are there really that many reads and writes @006013d4 and @006013d5? It just seems to repeat the same R/W for 30 mins. there?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.