Does OB support a forth interpreter?

When I try and load one with the boot command it seems to treat it as a :tbxi and I just get the no valid init file.

\ comment 

cr

hex

00000000 encode-int " fcode-rom-offset" property
" scsi" encode-string " device-type" property
" UltraTek133" encode-string " name" property
" UltraTek133" encode-string " compatible" property
" 3.5.0" encode-bytes " Rom#" property
" 3.5.0" encode-string " rom-revision" property
" UltraTek133" encode-string " release" property
" PDC20269" encode-string " model" property
" UltraTek Firmware by FirmTek LLC, 2001. You may not alter or reverse engineer this product" \ encode-bytes " Copyright" property
" Authors: Nguyen Kim Chi, Rath Gyoergy." encode-bytes " authors" property
" Szerzoek: Nguyen Kim Chi, Rath Gyoergy." encode-bytes " Szerzoek" \ property
" 10/23/02" encode-string " release-date" property
" 12:33.03" encode-string " release-time" property
0000AD69 encode-int " subsystem-id" property
" SLOT-5" encode-string " AAPL,slot-name” property

The \ comment should trigger the forth interpreter, but that doesn’t seem to work with OpenBios.

Also, how does Openbios handle Fcode ROM’s that use compression?

The FCode probably has some compression and therefore loads itself in two different steps.
The first step is something like this:

Code:
hex
tokenizer[ 0000 ]tokenizer set-rev-level
tokenizer[ 004A ]tokenizer pci-architecture
tokenizer[ 002A ]tokenizer pci-data-structure-start
tokenizer[ 0020 ]tokenizer pci-data-structure-length
tokenizer[ 105A 4D69 018085 ]tokenizer pci-header
tokenizer[ 10000 ]tokenizer rom-size
fcode-version2
\ format:    0x08
\ checksum:  0x72c0 (ok)
\ len:       0xfd1a (64794 bytes)
hex
headerless
variable variable_800															\ (800)
…
variable variable_816															\ (816)
: colon_l!													\ (817)
: colon_l@													\ (818)
: colon_variable_805_l@													\ (819)
: colon_variable_804_l@													\ (81a)
: colon_definition_function_81b													\ (81b)
…
: colon_definition_function_822													\ (822)
: colon_variable_80a_l!													\ (823)
: colon_definition_function_824													\ (824)
…
: colon_definition_function_83f													\ (83f)

" "(…)" \ 252 bytes
encode-bytes

" "(…)" \ 252 bytes
encode-bytes
encode+

…

" "(…)" \ < 252 bytes
encode-bytes
encode+

" driver,FirmTek,MacOS,PowerPC"
property
colon_definition_function_83f													\ (83f)
colon_definition_function_824													\ (824)
['] c@
byte-load
fcode-end
pci-end

" driver,FirmTek,MacOS,PowerPC" is a property that's ≈ 61K bytes. Some stuff is done with this (colon_definition_function_83f), then it calls byte-load on the result which means there's more FCode in the result.

colon_definition_function_83f is like this:
Code:
: colon_definition_function_83f													\ (83f)
	" driver,FirmTek,MacOS,PowerPC"
	colon_definition_function_83e												\ (83e)
	0=
	if																			\ (0x5)
		2drop
		exit
	then
	get-package-property
	if																			\ (0x4)
		exit
	then
	drop
	dup
	colon_l@												\ (818)
	dup
	0
	<>
	if																			\ (0x56)
		colon_variable_80a_l!											\ (823)
		4
		+
		colon_variable_809_l!											\ (821)
		" create driver-buffer"
		evaluate
		colon_variable_80a_l@											\ (822)
		allot
		" driver-buffer"
		evaluate
		colon_variable_80b_l!											\ (825)
		colon_variable_80b_l@											\ (824)
		0
		<>
		if																		\ (0xb)
			colon_variable_80b_l@										\ (824)
			colon_variable_80a_l@										\ (822)
			erase
			colon_definition_function_83d										\ (83d)
		then
	else																		\ (0x5)
		2drop
	then
	" driver,FirmTek,MacOS,PowerPC"
	delete-property
	;

colon_definition_function_83d is maybe the decompression function.

I have a PC Promise ATA 133 card that by all looks is identical to the one used by Sonnet Tech in the Tempo ATA 133 line, however there exists no tool for flashing the Mac Fcode ROM to the card sans the Sonnet Flashing tool that won’t recognize a PC Card.

I tried using PCI-Passthough to Qemu-System-PPC to load the Fcode ROM from a  file in OpenBios, but the compressed part of the ROM doesn’t seem to work correct in OpenBios.

load hd:,\ppc\fwata3.bin
“  /pci/@e” open-dev to my-self
400004a 1 byte-load