On Nov 14, 2012, at 4:35 AM, Mark Cave-Ayland wrote:
On 14/11/12 02:39, Programmingkid wrote:
It is probably a lot of stuff. The get-key-map word is one of them. I'm going to have to put bootx under the microscope to see what else is the problem.
Well may I make a suggestion? At the moment, our ability to help is limited because you are the only person with a copy of OS X.
It would make more sense rather than simply stating "I need to do X, Y and Z" on the mailing list, that you post sections of log file to the mailing list so that people who know more about Open Firmware can make a better judgment as to what is the best way forward.
In particular, I'd expect you to be posting sections of log file with CIF debugging enabled so you can see exactly what Forth is being executed and whether or not it is failing.
The other alternative is for someone to send me a copy of OS X bought from Ebay or similar...
This will help you:
http://www.ebay.com/itm/Apple-Mac-OS-X-Jaguar-Version-10-2-Install-Discs-Mac...
Here is the debug output from enabling DEBUG_CIF:
0 > boot cd:,\:tbxi >> finddevice("/openprom") = 0xfff48f3c
getprop(0xfff48f3c, "model", 0x0565f68c, 255) = 15 0x0565f68c 4f 70 65 6e 46 69 72 6d 77 61 72 65 20 33 00 __ OpenFirmware 3. peer(0x00000000) = 0xfff48d7c getprop(0xfff48d7c, "#address-cells", 0x056579d0, 4) = 4 0x056579d0 00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __ .... peer(0x00000000) = 0xfff48d7c getprop(0xfff48d7c, "#size-cells", 0x056579d4, 4) = 4 0x056579d4 00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __ .... of_client_interface: interpret 05616674 interpret hex unselect-dev " /packages" find-device new-device " sl_words" device-name : open true ; : close ; 0 value outputLevel : slw_set_output_level dup 0= if 0 stdout ! then to outputLevel ; : slw_emit 2 outputLevel <= if emit else drop then ; : slw_cr 2 outputLevel <= if cr then ; 0 value keyboardIH 20 buffer: keyMap : slw_init_keymap to keyboardIH keyMap dup 20 0 fill ; : slw_update_keymap { ; dpth } depth -> dpth keyboardIH if " get-key-map" keyboardIH $call-method depth dpth - 1 = if 20 then 4 / 0 do dup i 4 * + l@ keyMap i 4 * + tuck l@ or swap l! loop drop then ; 0 value screenIH 0 value cursorAddr 0 value cursorX 0 value cursorY 0 value cursorW 0 value cursorH 0 value cursorFrames 0 value cursorPixelSize 0 value cursorStage 0 value cursorTime 0 value cursorDelay : slw_spin screenIH 0<> cursorAddr 0<> and if get-msecs dup cursorTime - cursorDelay >= if to cursorTime slw_update_keymap cursorStage 1+ cursorFrames mod dup to cursorStage handle_calls return: 00000000 1fc5b2f0 finddevice("/options") = 0xfff490e4 finddevice("/chosen") = 0xfff4915c of_client_interface: interpret 056133e4 interpret dev /chosen new-device " memory-map" device-name active-package device-end ([1] -- [2]) handle_calls return: 00000000 fff56864 getprop(0xfff4915c, "mmu", 0x056579ec, 4) = 4 0x056579ec 1f c5 a8 2c __ __ __ __ __ __ __ __ __ __ __ __ .Ũ, getprop(0xfff4915c, "memory", 0x056579f0, 4) = 4 0x056579f0 1f c5 ae 58 __ __ __ __ __ __ __ __ __ __ __ __ .ŮX peer(0x00000000) = 0xfff48d7c of_client_interface: interpret 05616db8 fff48d7c 0000000a 056131d4 interpret get-package-property if 0 0 then ([4] -- [3]) handle_calls return: 00000000 00000019 fff55b44 getprop(0xfff4915c, "stdout", 0x056579f4, 4) = 4 0x056579f4 1f c5 af 5c __ __ __ __ __ __ __ __ __ __ __ __ .ů\ instance-to-package(0x1fc5af5c) = 0xfff555e4 getprop(0xfff4915c, "stdin", 0x056579f8, 4) = 4 0x056579f8 1f c5 b0 64 __ __ __ __ __ __ __ __ __ __ __ __ .Űd instance-to-package(0x1fc5b064) = 0xfff555e4 getprop(0xfff555e4, "name", 0x0565f81c, 31) = 5 0x0565f81c 63 68 2d 62 00 __ __ __ __ __ __ __ __ __ __ __ ch-b. open("keyboard") = 0x00000000 open("kbd") = 0x00000000 of_client_interface: call-method 05616d78 1fc5b2f0 00000000 call-method slw_init_keymap ([3] -- [2]) handle_calls return: 00000000 fff5632c of_client_interface: call-method 05616d88 1fc5b2f0 call-method slw_update_keymap ([2] -- [1]) handle_calls return: 00000000 getprop(0xfff490e4, "security-mode", 0x0565f83c, 32) = -1 of_client_interface: call-method 05616d60 1fc5b2f0 00000000 call-method slw_set_output_level ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c70 1fc5b2f0 call-method slw_cr ([2] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c70 1fc5b2f0 call-method slw_cr ([2] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 0000004d call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000061 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000063 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000020 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 0000004f call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000053 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000020 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000058 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000020 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 0000004c call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 0000006f call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000061 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000064 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000065 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b2f0 00000072 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c70 1fc5b2f0 call-method slw_cr ([2] -- [1]) handle_calls return: 00000000 claim(0x05000000, 4194304, 0) = 0x05000000 claim(0x05400000, 2097152, 0) = 0x05400000 claim(0x04000000, 16777216, 0) = 0x04000000 claim(0x00004000, 67092480, 0) = 0x00004000
The first thing that bothers me is this:
open("keyboard") = 0x00000000 open("kbd") = 0x00000000
Bootx can't open the keyboard node and call any of its methods. This is something to fix. I would fix it myself, but I couldn't find any documentation on how the DECLARE_NODE() method works.
On a side note, the partition selection patch I sent you appears to be ready to commit. It is the patch that has made the most difference. Because of it, the Mac OS actually beings to start booting when I use the boot word.
On 2012-Nov-14 09:46 , Programmingkid wrote:
The first thing that bothers me is this:
open("keyboard") = 0x00000000 open("kbd") = 0x00000000
Bootx can't open the keyboard node and call any of its methods. This is something to fix. I would fix it myself, but I couldn't find any documentation on how the DECLARE_NODE() method works.
Does OpenBIOS have a devalias for keyboard, and is it correct?
On Nov 14, 2012, at 12:55 PM, Tarl Neustaedter wrote:
On 2012-Nov-14 09:46 , Programmingkid wrote:
The first thing that bothers me is this:
open("keyboard") = 0x00000000 open("kbd") = 0x00000000
Bootx can't open the keyboard node and call any of its methods. This is something to fix. I would fix it myself, but I couldn't find any documentation on how the DECLARE_NODE() method works.
Does OpenBIOS have a devalias for keyboard, and is it correct?
It doesn't yet. It does have a adb-keyboard node.
On 14/11/12 17:55, Tarl Neustaedter wrote:
On 2012-Nov-14 09:46 , Programmingkid wrote:
The first thing that bothers me is this:
open("keyboard") = 0x00000000 open("kbd") = 0x00000000
Bootx can't open the keyboard node and call any of its methods. This is something to fix. I would fix it myself, but I couldn't find any documentation on how the DECLARE_NODE() method works.
Does OpenBIOS have a devalias for keyboard, and is it correct?
Yeah - that's my reading of it too...
ATB,
Mark.