[OpenBIOS] PATH: Fix b(field) Fcode evaluation
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Mon May 25 18:40:15 CEST 2009
Hi everyone,
This patch fixes the Fcode evaluation of b(field) which was implemented
incorrectly. With this patch applied, corruption seen in several of the
package words for Milax/Martux has now disappeared. Included below are
the Fcode test cases I used (courtesy of Milax):
\ Test Fcode struct...field...constant (no headers)
\ Forth: struct /x field >filesize /x field >offset /x field >block0
constant /file-record 0 >offset .
here
cc c, \ offset16
a5 c, \ 0
02 c, 48 c, \ /x
b5 c, 08 c, 00 c, \ new-token
be c, \ b(field)
02 c, 48 c, \ /x
b5 c, 08 c, 01 c, \ new-token
be c, \ b(field)
02 c, 48 c, \ /x
b5 c, 08 c, 02 c, \ new-token
be c, \ b(field)
b5 c, 08 c, 03 c, \ new-token
ba c, \ b(constant)
a5 c, \ 0
08 c, 01 c, \ Fcode #801
9d c, \ Display stack
00 c, \ End
\ Headers version
here
cc c, \ offset16
a5 c, \ 0
02 c, 48 c, \ /x
b6 c, 09 c, 3e c, 66 c, 69 c, 6c c, 65 c, 73 c, 69 c, 7a c, 65 c, \
named-token (>filesize)
08 c, 00 c,
be c, \ b(field)
02 c, 48 c, \ /x
b6 c, 07 c, 3e c, 6f c, 66 c, 66 c, 73 c, 65 c, 74 c, \ named-token
(>offset)
08 c, 01 c,
be c, \ b(field)
02 c, 48 c, \ /x
b6 c, 07 c, 3e c, 62 c, 6c c, 6f c, 63 c, 6b c, 30 c, \ named-token
(>block0)
08 c, 02 c,
be c, \ b(field)
b6 c, 0c c, 2f c, 66 c, 69 c, 6c c, 65 c, 2d c, 72 c, 65 c, 63 c, 6f
c, \ named-token (/file-record)
72 c, 64 c,
08 c, 03 c,
ba c, \ b(constant)
a5 c, \ 0
08 c, 01 c, \ Fcode #801
9d c, \ Display stack
00 c, \ End
ATB,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openbios-bfield.patch
Type: text/x-diff
Size: 334 bytes
Desc: not available
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20090525/e2e3309a/attachment.bin>
More information about the OpenBIOS
mailing list