[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