[OpenBIOS] [Qemu-ppc] MorphOS 4.x on QEMU

BALATON Zoltan balaton at eik.bme.hu
Mon Mar 3 17:20:18 CET 2014


On Mon, 3 Mar 2014, BALATON Zoltan wrote:
> It can be. It looks like that the buffer is cleared before it gets used by 
> later code. Do you have any idea how to fix this?

OK, how about this patch:

Index: forth/system/ciface.fs
===================================================================
--- forth/system/ciface.fs	(revision 1270)
+++ forth/system/ciface.fs	(working copy)
@@ -108,7 +108,6 @@
    dup 0= if 0 else dup cstrlen then

    ( buf prev prev_len )
-  0 3 pick c!

    \ verify that prev exists (overkill...)
    dup if
@@ -126,7 +125,7 @@
      dup 1+ -rot ci-strcpy drop 1
    else
      ( buf )
-    drop 0
+    0 swap c! 0
    then
  ;



with this it gets further (and then fails like before, assumably because 
of missing/wrong properties but it seems to get over the nextprop issue at 
least). Here is the debug log I get now with SVN trunk and the above patch 
(without Olivier's):

>> finddevice("/uni-n") = 0xfff512f4
>> finddevice("/cpus") = 0xfff4ba7c
>> child(0xfff4ba7c) = 0xfff517dc
>> nextprop(0xfff517dc, "", 0x07de7e30) = 1
>> 0x07de7e30  6e 61 6d 65 00 00 00 00 00 00 00 00 00 00 00 00  name............
>> 0x07de7e40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>> getprop(0xfff517dc, "name", 0x07de7df0, 64) = 11
>> 0x07de7df0  50 6f 77 65 72 50 43 2c 47 34 00 __ __ __ __ __  PowerPC,G4.
>> nextprop(0xfff517dc, "name", 0x07de7e30) = 1
>> 0x07de7e30  64 65 76 69 63 65 5f 74 79 70 65 00 00 00 00 00  device_type.....
>> 0x07de7e40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>> getprop(0xfff517dc, "device_type", 0x07de7df0, 64) = 4
>> 0x07de7df0  63 70 75 00 __ __ __ __ __ __ __ __ __ __ __ __  cpu.
>> nextprop(0xfff517dc, "device_type", 0x07de7e30) = 1
>> 0x07de7e30  63 70 75 2d 76 65 72 73 69 6f 6e 00 00 00 00 00  cpu-version.....
>> 0x07de7e40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>> getprop(0xfff517dc, "cpu-version", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 0c 02 09 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> nextprop(0xfff517dc, "cpu-version", 0x07de7e30) = 1
>> 0x07de7e30  64 63 61 63 68 65 2d 73 69 7a 65 00 00 00 00 00  dcache-size.....
>> 0x07de7e40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>> getprop(0xfff517dc, "dcache-size", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 80 00 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> nextprop(0xfff517dc, "dcache-size", 0x07de7e30) = 1
>> 0x07de7e30  69 63 61 63 68 65 2d 73 69 7a 65 00 00 00 00 00  icache-size.....
>> 0x07de7e40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>> getprop(0xfff517dc, "icache-size", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 80 00 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> nextprop(0xfff517dc, "icache-size", 0x07de7e30) = 1
>> 0x07de7e30  64 63 61 63 68 65 2d 73 65 74 73 00 00 00 00 00  dcache-sets.....
>> 0x07de7e40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>> getprop(0xfff517dc, "dcache-sets", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 00 80 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> nextprop(0xfff517dc, "dcache-sets", 0x07de7e30) = 1
>> 0x07de7e30  69 63 61 63 68 65 2d 73 65 74 73 00 00 00 00 00  icache-sets.....
>> 0x07de7e40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>> getprop(0xfff517dc, "icache-sets", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 00 80 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> nextprop(0xfff517dc, "icache-sets", 0x07de7e30) = 1
>> 0x07de7e30  64 63 61 63 68 65 2d 62 6c 6f 63 6b 2d 73 69 7a  dcache-block-siz
>> 0x07de7e40  65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  e...............
>> getprop(0xfff517dc, "dcache-block-size", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 00 20 __ __ __ __ __ __ __ __ __ __ __ __  ...
>> nextprop(0xfff517dc, "dcache-block-size", 0x07de7e30) = 1
>> 0x07de7e30  69 63 61 63 68 65 2d 62 6c 6f 63 6b 2d 73 69 7a  icache-block-siz
>> 0x07de7e40  65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  e...............
>> getprop(0xfff517dc, "icache-block-size", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 00 20 __ __ __ __ __ __ __ __ __ __ __ __  ...
>> nextprop(0xfff517dc, "icache-block-size", 0x07de7e30) = 1
>> 0x07de7e30  74 69 6d 65 62 61 73 65 2d 66 72 65 71 75 65 6e  timebase-frequen
>> 0x07de7e40  63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00  cy..............
>> getprop(0xfff517dc, "timebase-frequency", 0x07de7df0, 64) = 4
>> 0x07de7df0  3b 9a ca 00 __ __ __ __ __ __ __ __ __ __ __ __  ;...
>> nextprop(0xfff517dc, "timebase-frequency", 0x07de7e30) = 1
>> 0x07de7e30  63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 00  clock-frequency.
>> 0x07de7e40  63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00  cy..............
>> getprop(0xfff517dc, "clock-frequency", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 00 00 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> nextprop(0xfff517dc, "clock-frequency", 0x07de7e30) = 1
>> 0x07de7e30  73 74 61 74 65 00 66 72 65 71 75 65 6e 63 79 00  state.frequency.
>> 0x07de7e40  63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00  cy..............
>> getprop(0xfff517dc, "state", 0x07de7df0, 64) = 8
>> 0x07de7df0  72 75 6e 6e 69 6e 67 00 __ __ __ __ __ __ __ __  running.
>> nextprop(0xfff517dc, "state", 0x07de7e30) = 1
>> 0x07de7e30  72 65 67 00 65 00 66 72 65 71 75 65 6e 63 79 00  reg.e.frequency.
>> 0x07de7e40  63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00  cy..............
>> getprop(0xfff517dc, "reg", 0x07de7df0, 64) = 4
>> 0x07de7df0  00 00 00 00 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> nextprop(0xfff517dc, "reg", 0x07de7e30) = 1
>> 0x07de7e30  61 76 61 69 6c 61 62 6c 65 00 75 65 6e 63 79 00  available.uency.
>> 0x07de7e40  63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00  cy..............
>> getprop(0xfff517dc, "available", 0x07de7df0, 64) = 40
>> 0x07de7df0  00 00 40 00 00 3f c0 00 00 68 72 4c 07 5d 0d b4  .. at ..?...hrL.]..
>> 0x07de7e00  07 e1 00 00 78 1f 00 00 81 00 00 00 7e f0 00 00  ....x.......~...
>> 0x07de7e10  00 00 00 00 ff ff ff ff __ __ __ __ __ __ __ __  ........
>> nextprop(0xfff517dc, "available", 0x07de7e30) = 1
>> 0x07de7e30  74 72 61 6e 73 6c 61 74 69 6f 6e 73 00 63 79 00  translations.cy.
>> 0x07de7e40  63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00  cy..............
>> getprop(0xfff517dc, "translations", 0x07de7df0, 64) = 80
>> 0x07de7df0  00 00 10 00 00 00 30 00 00 00 10 00 00 00 00 00  ......0.........
>> 0x07de7e00  00 40 00 00 00 28 80 00 00 40 00 00 00 00 00 02  . at ...(... at ......
>> 0x07de7e10  07 c5 80 00 00 1b 80 00 07 c5 80 00 00 00 00 00  ................
>> 0x07de7e20  80 00 00 00 01 00 00 00 80 00 00 00 00 00 00 6a  ...............j
>> nextprop(0xfff517dc, "translations", 0x07de7e30) = 0
>> 0x07de7e30  00 72 61 6e 73 6c 61 74 69 6f 6e 73 00 63 79 00  .ranslations.cy.
>> 0x07de7e40  63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00  cy..............
>> child(0xfff517dc) = 0x00000000

Regards,
BALATON Zoltan



More information about the OpenBIOS mailing list