On Dec 13, 2012, at 4:36 PM, Mark Cave-Ayland wrote:
Hi both,
Good news - we finally have SOB from William so I've applied to 2 easiest patches to review :)
I understand that an implementation of get-key-map is still required, however if you are both still interested in booting OS X, I'd be grateful for some more testing from SVN trunk in order to determine which patches are still need (and why). For example, some of them should no longer be required because "<value> to active-package" should now work.
Let me know how you both get on now - any interesting screenshots always appreciated ;)
Kind regards,
Mark.
We don't go very far without get-key-map, so I applied my new get-key-map patch, then printed out the CIF after trying to boot Mac OS X. The frame-buffer-adr patch works. The wrapper patch works.
CIF output:
============================================================= OpenBIOS 1.0 [Dec 12 2012 20:16] Configuration device id QEMU version 1 machine id 2 CPUs: 1 Memory: 512M UUID: 00000000-0000-0000-0000-000000000000 CPU type PowerPC,750
Welcome to OpenBIOS v1.0 built on Dec 12 2012 20:16 Trying hd:,\:tbxi... Trying hd:,\ppc\bootinfo.txt... No valid state has been set by load or init-program
0 > boot cd:,\:tbxi >> finddevice("/openprom") = 0xfff49f40
getprop(0xfff49f40, "model", 0x0565f68c, 255) = 15 0x0565f68c 4f 70 65 6e 46 69 72 6d 77 61 72 65 20 33 00 __ OpenFirmware 3. peer(0x00000000) = 0xfff49d80 getprop(0xfff49d80, "#address-cells", 0x056579d0, 4) = 4 0x056579d0 00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __ .... peer(0x00000000) = 0xfff49d80 getprop(0xfff49d80, "#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 1fc5b098 finddevice("/options") = 0xfff4a0e8 finddevice("/chosen") = 0xfff4a160 of_client_interface: interpret 056133e4 interpret dev /chosen new-device " memory-map" device-name active-package device-end ([1] -- [2]) handle_calls return: 00000000 fff57a90 getprop(0xfff4a160, "mmu", 0x056579ec, 4) = 4 0x056579ec 1f c5 a8 2c __ __ __ __ __ __ __ __ __ __ __ __ .Ũ, getprop(0xfff4a160, "memory", 0x056579f0, 4) = 4 0x056579f0 1f c5 ae 58 __ __ __ __ __ __ __ __ __ __ __ __ .ŮX peer(0x00000000) = 0xfff49d80 of_client_interface: interpret 05616db8 fff49d80 0000000a 056131d4 interpret get-package-property if 0 0 then ([4] -- [3]) handle_calls return: 00000000 00000019 fff56d04 getprop(0xfff4a160, "stdout", 0x056579f4, 4) = 4 0x056579f4 1f c5 af 5c __ __ __ __ __ __ __ __ __ __ __ __ .ů\ instance-to-package(0x1fc5af5c) = 0xfff567a4 getprop(0xfff4a160, "stdin", 0x056579f8, 4) = 4 0x056579f8 1f c5 b0 64 __ __ __ __ __ __ __ __ __ __ __ __ .Űd instance-to-package(0x1fc5b064) = 0xfff567a4 getprop(0xfff567a4, "name", 0x0565f81c, 31) = 5 0x0565f81c 63 68 2d 62 00 __ __ __ __ __ __ __ __ __ __ __ ch-b. open("keyboard") = 0x1fc5b49c of_client_interface: call-method 05616d78 1fc5b098 1fc5b49c call-method slw_init_keymap ([3] -- [2]) handle_calls return: 00000000 fff57558 of_client_interface: call-method 05616d88 1fc5b098 call-method slw_update_keymap ([2] -- [1]) handle_calls return: 00000000 getprop(0xfff4a0e8, "security-mode", 0x0565f83c, 32) = -1 of_client_interface: call-method 05616d60 1fc5b098 00000000 call-method slw_set_output_level ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c70 1fc5b098 call-method slw_cr ([2] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c70 1fc5b098 call-method slw_cr ([2] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 0000004d call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000061 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000063 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000020 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 0000004f call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000053 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000020 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000058 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000020 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 0000004c call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 0000006f call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000061 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000064 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000065 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c78 1fc5b098 00000072 call-method slw_emit ([3] -- [1]) handle_calls return: 00000000 of_client_interface: call-method 05613c70 1fc5b098 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
I think the next patch to commit is the draw-rectangle patch: http://lists.openbios.org/pipermail/openbios/2011-August/006642.html