1. dos_interrupt() question.

Q1.
I've noticed that the sequence return by dos_interrupt() sometimes
contains elements greater than 16 bits. I dont know why, maybee 'cause
eu's 31-bit integer sceeme.

The user has to and_bits() the values with FFFFh to ensure that all values
are 16-bits in respect of AX CX DX BX etc...

Should'nt the values return already be scaled to 16-bit integers?

Q2.
Since we are useing eu in 32-bit protected mode with the causway extender
from macheal divore, should'nt dos_interrupt() pass a 32-bit protected mode
stack to the causway extender instead of a 16-bit stack?

Just courious...

new topic     » topic index » view message » categorize

2. Re: dos_interrupt() question.

Hayden McKay wrote:
> Q1.
> I've noticed that the sequence return by dos_interrupt() sometimes
> contains elements greater than 16 bits. I dont know why, maybee 'cause
> eu's 31-bit integer sceeme.
> 
> The user has to and_bits() the values with FFFFh to ensure that all values
> are 16-bits in respect of AX CX DX BX etc...
> 
> Should'nt the values return already be scaled to 16-bit integers?

I think they are. Maybe you printed some of these values in hex,
and the negative ones were displayed with a bunch of leading F's.
e.g. -1 might look like FFFFFFFF
 
> Q2.
> Since we are useing eu in 32-bit protected mode with the causway extender
> from macheal divore, should'nt dos_interrupt() pass a 32-bit protected mode
> stack to the causway extender instead of a 16-bit stack?

Euphoria for DOS operates mainly with the CPU in 32-bit mode.
But whenever you call a DOS system routine, you have to switch
the CPU into 16-bit mode, and use the 16-bit registers.
DOS is a 16-bit operating system.
This switching back and forth is handled by the Causeway extender.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu