Re: set_vector bug
- Posted by Robert Craig <rds at EMAIL.MSN.COM> Jan 06, 1998
- 565 views
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