[OpenBIOS] PATCH: Fix b(case)...b(of)...b(endof)...b(endcase)
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Mon May 25 18:34:07 CEST 2009
Mark Cave-Ayland wrote:
> It seems that b(case)...b(of)...b(endof)...b(endcase) was broken in
> exactly the same way as the b(do)...b(loop) commands during Fcode
> evaluation. This patch fixes this, which now allows the Martux/Milax
> CDROM images to fail gracefully rather than segfaulting:
Just remembered that I forgot to post my test case for completeness:
\ Test Fcode case...of...endof...endcase
\ Forth: 1 case 0 of ." zero" endof 1 of ." one" endof endcase
here
cc c, \ offset16
a6 c, \ 1
c4 c, \ b(case)
a5 c, \ 0
1c c, 00 c, 0c c, \ b(of)
12 c, 04 c, 7a c, 65 c, 72 c, 6f c, \ b(") zero
90 c, \ type
c6 c, 00 c, 10 c, \ b(endof)
a6 c, \ 1
1c c, 00 c, 0b c, \ b(of)
12 c, 03 c, 6f c, 6e c, 65 c, \ b(") one
90 c, \ type
c6 c, 00 c, 03 c, \ b(endof)
c5 c, \ b(endcase)
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
More information about the OpenBIOS
mailing list