Re: set_vector bug

new topic     » goto parent     » topic index » view thread      » older message » newer message

Pete Eberlein reported:
> I discovered a problem with set_vector when using Michael Bolin's
> keyread.e.  Sometimes keyread.e will crash, with a type-check
> error in set_vector (which is in machine.e).  The problem seems
> to be that the code_segment sometimes does not fit in a
> Euphoria  integer.

Check that you have the latest version of keyread.e.
I fixed a bug in keyread.e on November 1/97 and re-uploaded it
to the Archive. If it's the fixed version it should have
"Rob Craig" somewhere in a comment beside the fixed code.
Without the fix, it may run for quite a while before causing
the type_check error that you saw.

The problem is that Michael copied a bug that I had in
hardint.ex where it tries to get the code segment number
by reading 4 bytes, when it should only read 2 bytes.
That bug has since been corrected in 2.0 alpha, but
Michael and a few others had already copied the
v1.5 hardint.ex.

> Better change that to an atom in the next release, Robert.
> DOS32 code segment descriptors are 32-bits, not 16 as
> noted near the get_segment code in call_mach.ex.

A protected-mode address consists of a 16-bit segment
number and a 32-bit offset within the segment.

Regards,
     Rob Craig
     Rapid Deployment Software

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu