[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    { Subject: How to reboot With TP7.0 ??? }
    Var
      hook : Word Absolute $0040:$0072;

    Procedure Reboot(Cold : Boolean); Far;
    begin
      if (Cold = True) then
        hook := $0000
      else
        hook := $1234;

      ExitProc := ptr($FFFF,$0000);
    end;

    {
    P.S.  Note that it does not require any Units to compile.  Though
    depending on your Implementation, you may need to call HALT to
    trip the Exit code (which caUses a reboot).
    }

    Program reset;
    Uses
      Dos;
    Var
      regs : Registers;
    begin
      intr(25,regs);
    end.

    { Yeah but it is easier to do it in Inline Asm
    eg:
    }
    Program reset;
    begin
      Asm
        INT 19h; {19h = 25 decimal}
            end;
    end.

    {
    One Word about this interupt is that it is the fastest reboot
    I know of but some memory managers, eg QEMM 6.03 don't like it,
    It will seriously hang Windows if called from a Dos Shell,
    Microsoft Mouse Driver 8.20 doesn't seem to like being run
    after you call int 19h and it was resident.
    Other than that it works like a gem!
    }

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]