<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Nov 14, 2012, at 4:35 AM, Mark Cave-Ayland wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On 14/11/12 02:39, Programmingkid wrote:<br><br><blockquote type="cite">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.<br></blockquote><br>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.<br><br>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.<br><br>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.<br><br>The other alternative is for someone to send me a copy of OS X bought from Ebay or similar...<br></div></blockquote><br></div><div>This will help you: </div><div><br></div><div><a href="http://www.ebay.com/itm/Apple-Mac-OS-X-Jaguar-Version-10-2-Install-Discs-Mac-OS-X-Developer-Tools-Disc-/170940103365?pt=US_Operating_Systems_Software&hash=item27ccd2fac5">http://www.ebay.com/itm/Apple-Mac-OS-X-Jaguar-Version-10-2-Install-Discs-Mac-OS-X-Developer-Tools-Disc-/170940103365?pt=US_Operating_Systems_Software&hash=item27ccd2fac5</a></div><div><br></div><br><div>Here is the debug output from enabling DEBUG_CIF:</div><div><br></div><div><div>0 > boot cd:,<a href="smb://:tbxi">\\:tbxi</a> >> finddevice("/openprom") = 0xfff48f3c</div><div>>> getprop(0xfff48f3c, "model", 0x0565f68c, 255) = 15</div><div>>> 0x0565f68c  4f 70 65 6e 46 69 72 6d 77 61 72 65 20 33 00 __  OpenFirmware 3.</div><div>>> peer(0x00000000) = 0xfff48d7c</div><div>>> getprop(0xfff48d7c, "#address-cells", 0x056579d0, 4) = 4</div><div>>> 0x056579d0  00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __  ....</div><div>>> peer(0x00000000) = 0xfff48d7c</div><div>>> getprop(0xfff48d7c, "#size-cells", 0x056579d4, 4) = 4</div><div>>> 0x056579d4  00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __  ....</div><div>>> of_client_interface: interpret 05616674</div><div>>> 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</div><div>>> finddevice("/options") = 0xfff490e4</div><div>>> finddevice("/chosen") = 0xfff4915c</div><div>>> of_client_interface: interpret 056133e4</div><div>>> interpret  dev /chosen new-device " memory-map" device-name active-package device-end ([1] -- [2])</div><div>>> handle_calls return: 00000000 fff56864</div><div>>> getprop(0xfff4915c, "mmu", 0x056579ec, 4) = 4</div><div>>> 0x056579ec  1f c5 a8 2c __ __ __ __ __ __ __ __ __ __ __ __  .Ũ,</div><div>>> getprop(0xfff4915c, "memory", 0x056579f0, 4) = 4</div><div>>> 0x056579f0  1f c5 ae 58 __ __ __ __ __ __ __ __ __ __ __ __  .ŮX</div><div>>> peer(0x00000000) = 0xfff48d7c</div><div>>> of_client_interface: interpret 05616db8 fff48d7c 0000000a 056131d4</div><div>>> interpret get-package-property if 0 0 then ([4] -- [3])</div><div>>> handle_calls return: 00000000 00000019 fff55b44</div><div>>> getprop(0xfff4915c, "stdout", 0x056579f4, 4) = 4</div><div>>> 0x056579f4  1f c5 af 5c __ __ __ __ __ __ __ __ __ __ __ __  .ů\</div><div>>> instance-to-package(0x1fc5af5c) = 0xfff555e4</div><div>>> getprop(0xfff4915c, "stdin", 0x056579f8, 4) = 4</div><div>>> 0x056579f8  1f c5 b0 64 __ __ __ __ __ __ __ __ __ __ __ __  .Űd</div><div>>> instance-to-package(0x1fc5b064) = 0xfff555e4</div><div>>> getprop(0xfff555e4, "name", 0x0565f81c, 31) = 5</div><div>>> 0x0565f81c  63 68 2d 62 00 __ __ __ __ __ __ __ __ __ __ __  ch-b.</div><div>>> open("keyboard") = 0x00000000</div><div>>> open("kbd") = 0x00000000</div><div>>> of_client_interface: call-method 05616d78 1fc5b2f0 00000000</div><div>>> call-method slw_init_keymap ([3] -- [2])</div><div>>> handle_calls return: 00000000 fff5632c</div><div>>> of_client_interface: call-method 05616d88 1fc5b2f0</div><div>>> call-method slw_update_keymap ([2] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> getprop(0xfff490e4, "security-mode", 0x0565f83c, 32) = -1</div><div>>> of_client_interface: call-method 05616d60 1fc5b2f0 00000000</div><div>>> call-method slw_set_output_level ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c70 1fc5b2f0</div><div>>> call-method slw_cr ([2] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c70 1fc5b2f0</div><div>>> call-method slw_cr ([2] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 0000004d</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000061</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000063</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000020</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 0000004f</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000053</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000020</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000058</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000020</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 0000004c</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 0000006f</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000061</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000064</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000065</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c78 1fc5b2f0 00000072</div><div>>> call-method slw_emit ([3] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> of_client_interface: call-method 05613c70 1fc5b2f0</div><div>>> call-method slw_cr ([2] -- [1])</div><div>>> handle_calls return: 00000000</div><div>>> claim(0x05000000, 4194304, 0) = 0x05000000</div><div>>> claim(0x05400000, 2097152, 0) = 0x05400000</div><div>>> claim(0x04000000, 16777216, 0) = 0x04000000</div><div>>> claim(0x00004000, 67092480, 0) = 0x00004000</div></div><div><br></div><div><br></div><div>The first thing that bothers me is this: </div><div><br></div><div>>> open("keyboard") = 0x00000000</div><div>>> open("kbd") = 0x00000000</div><div><br></div><div>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 <span class="Apple-style-span" style="font-family: Menlo; font-size: 11px; ">DECLARE_NODE() method works. </span></div><div><br></div><div>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. </div><div><br></div><div><br></div></body></html>