[OpenBIOS] OpenBIOS v1.1

Programmingkid programmingkidx at gmail.com
Wed Nov 14 15:46:25 CET 2012


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-OS-X-Developer-Tools-Disc-/170940103365?pt=US_Operating_Systems_Software&hash=item27ccd2fac5


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. 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20121114/db60544d/attachment.html>


More information about the OpenBIOS mailing list