[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