Board index » delphi » INT $15 under NT4

INT $15 under NT4

Hello.

Is it not possible to execute an INT $15 asm statement from Delphi under
Windows NT enviroment without receiving an AV exception.
Or is it only DOS talk???

Exmaple

procedure TForm1.Button1Click(sender: TObject);
asm
  mov ax,$xxxx
  . . . . . .
  int $15            // AV fault
  . . . . . .
end;

Thomas.

 

Re:INT $15 under NT4


Quote
In article <3cd7ac9b$0$11911$edfad...@dspool01.news.tele.dk>, Thomas Larsen wrote:
> Hello.

> Is it not possible to execute an INT $15 asm statement from Delphi under
> Windows NT enviroment without receiving an AV exception.
> Or is it only DOS talk???

Yes.

Re:INT $15 under NT4


Quote
Thomas Larsen wrote in message

<3cd7ac9b$0$11911$edfad...@dspool01.news.tele.dk>...

Quote
>Hello.

>Is it not possible to execute an INT $15 asm statement from Delphi under
>Windows NT enviroment without receiving an AV exception.
>Or is it only DOS talk???

>Exmaple

>procedure TForm1.Button1Click(sender: TObject);
>asm
>  mov ax,$xxxx
>  . . . . . .
>  int $15            // AV fault
>  . . . . . .
>end;

As a hint: NT is a 32-bit operating system, and you are
only setting the bottom half of EAX.

That's not all that has changed. The list I have describes
interrupt 15h as "system services" which doesn't tell me
much, but it's a safe guess that it's been replaced by
WinAPI calls.

Don't be fooled by the fact that Windows NT will accept
16-bit DOS executables and run them. This is managed by
"subsystems", which translate the way executables talk to
the OS. But Delphi compiles to 32-bit Windows executables,
and in the cage where they run, you simply can't get at
the DOS subsystem. That's a different cage.

Groetjes,
Maarten Wiltink

Re:INT $15 under NT4


Yes, "int $15" is the old-style way of doing things and it is basically
"no longer supported."  Windows native system-calls should be used
instead.

If you find that "int $15" =does= work, then it is only because a layer
of software is trapping those interruptions and reflecting them to
appropriate Win32 native routines.  That's overhead that you don't need.

Quote
Maarten Wiltink wrote:

> Thomas Larsen wrote in message
> <3cd7ac9b$0$11911$edfad...@dspool01.news.tele.dk>...
> >Hello.

> >Is it not possible to execute an INT $15 asm statement from Delphi under
> >Windows NT enviroment without receiving an AV exception.
> >Or is it only DOS talk???

> >Exmaple

> >procedure TForm1.Button1Click(sender: TObject);
> >asm
> >  mov ax,$xxxx
> >  . . . . . .
> >  int $15            // AV fault
> >  . . . . . .
> >end;

> As a hint: NT is a 32-bit operating system, and you are
> only setting the bottom half of EAX.

> That's not all that has changed. The list I have describes
> interrupt 15h as "system services" which doesn't tell me
> much, but it's a safe guess that it's been replaced by
> WinAPI calls.

> Don't be fooled by the fact that Windows NT will accept
> 16-bit DOS executables and run them. This is managed by
> "subsystems", which translate the way executables talk to
> the OS. But Delphi compiles to 32-bit Windows executables,
> and in the cage where they run, you simply can't get at
> the DOS subsystem. That's a different cage.

----------------------------------------------------------------
Sundial Services :: Scottsdale, AZ (USA) :: (480) 946-8259
mailto:i...@sundialservices.com  (PGP public key available.)

- Show quoted text -

Quote
> Fast(!), automatic table-repair with two clicks of the mouse!
> ChimneySweep(R):  Release 4.0 is here!!
> http://www.sundialservices.com/products/chimneysweep

Other Threads