home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 02 / mmr / makemark.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-11-12  |  1.8 KB  |  30 lines

  1. (*---------------------------------------------------------------------------*)
  2. (*                            MAKEMARK.PAS  (v1.0)                           *)
  3. (*      Erzeugen der superkurzen MARKer-Datei MARK.COM (MS-DOS/Turbo)        *)
  4. (*           (c) 1987  Karsten Gieselmann  &  PASCAL International           *)
  5. (*---------------------------------------------------------------------------*)
  6. Program MakeMark (Output, ComFile);
  7. Const Code :Array [0..22] of Byte =
  8.               ($FA,         (*  CLI              ;Interrupts verbieten       *)
  9.                $0E,         (*  PUSH    CS       ;Codesegment...             *)
  10.                $07,         (*  POP     ES       ;...nach ES laden           *)
  11.                $33,$C0,     (*  XOR     AX,AX    ;AX loeschen...             *)
  12.                $8E,$D8,     (*  MOV     DS,AX    ;...als Segment nach DS...  *)
  13.                $89,$C6,     (*  MOV     SI,AX    ;...und als Offset nach SI  *)
  14.                $BF,$17,$01, (*  MOV     DI,0117  ;Beginn der IntVec-Tabelle  *)
  15.                $B9,$00,$02, (*  MOV     CX,0200  ;Laenge der Tabelle         *)
  16.                $F3,         (*  REPZ             ;Kopieren bis Tabellenende  *)
  17.                $A5,         (*  MOVSW            ;                           *)
  18.                $FB,         (*  STI              ;Interrupts zulassen        *)
  19.                $BA,$17,$05, (*  MOV     DX,0517  ;22 Code-, 1024 Datenbytes  *)
  20.                $CD,$27);    (*  INT     27       ;...resident machen         *)
  21.       ComFileName = 'MARK.COM';
  22. Var   ComFile :File of Byte;
  23.       Count   :Integer;
  24. Begin
  25.   Assign (ComFile, ComFileName);  ReWrite (ComFile);
  26.   For Count := 0 to pred(SizeOf(Code)) do  Write (ComFile, Code[Count]);
  27.   Close (ComFile);
  28.   WriteLn;  Writeln ('COM-File ', ComFileName, ' generiert!');  Writeln;
  29. End.
  30.