home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------------------------ *)
- (* BEGININT.INC *)
- (* Inline-Anweisung zum Beginn der Interrupt-Routine *)
- (* ------------------------------------------------------------------------ *)
- TYPE
- PgmRegs_= RECORD CASE Integer OF
- 1: (PgmDs, PgmEs, PgmSi, PgmDi, PgmDx, PgmCx, PgmBx, PgmAx,
- PgmSp, PgmBp, PgmIp, PgmCs, PgmFlags : INTEGER);
- 2: (PgmDsAlt, PgmEsAlt, PgmSiAlt, PgmDiAlt : Integer;
- PgmDl, PgmDh, PgmCl, PgmCh, PgmBl, PgmBh,
- PgmAl, PgmAh : Byte);
- END;
- VAR
- Dummy : ARRAY [0..15] OF BYTE;
- PgmRegs : PgmRegs_ ABSOLUTE Dummy;
- BEGIN
- Inline (
- $FB/ { STI }
- $83/$C4/$10/ { ADD SP,10 }
- $50/ { PUSH AX }
- $53/ { PUSH BX }
- $51/ { PUSH CX }
- $52/ { PUSH DX }
- $57/ { PUSH DI }
- $56/ { PUSH SI }
- $06/ { PUSH ES }
- $1E/ { PUSH DS }
- $2E/$A1/$A0/$00/{ MOV AX,CS:[A0]}
- $50/ { PUSH AX }
- $1F); { POP DS }
- (* ------------------------------------------------------------------------ *)
- (* Ende von BEGININT.INC *)