home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 11 / makemark.pas next >
Encoding:
Pascal/Delphi Source File  |  1989-04-17  |  2.1 KB  |  47 lines

  1. (* ┌───────────────────────────────────────────────────────────────────────┐
  2.    │       MAKEMARK (3.0)  -  Generieren der superkurzen MARKer-Datei      │
  3.    │                                                                       │
  4.    │    Copyright (c) 1987,1988,1989  Karsten Gieselmann & DMV Software    │
  5.    └───────────────────────────────────────────────────────────────────────┘ *)
  6.  
  7. {$IFDEF Ver40}                      (* Compilerschalter für Turbo Pascal 4.0 *)
  8.   {$R-,S-,I+,F-,V-,B-,N-}
  9. {$ENDIF}
  10.  
  11. {$IFDEF Ver50}                      (* Compilerschalter für Turbo Pascal 5.0 *)
  12.   {$R-,S-,I+,F-,V-,B-,N-,A-,E-,O-}
  13. {$ENDIF}
  14.  
  15.  
  16. Program MakeMark;
  17.  
  18. Const ComFileName = 'MARK.COM';                   (* Name des MARK-Programms *)
  19.  
  20.       Code : Array [1..23] of Byte = (
  21.  
  22.             $FA,            (*  CLI              ;Interrupts verbieten       *)
  23.             $0E,            (*  PUSH    CS       ;Codesegment...             *)
  24.             $07,            (*  POP     ES       ;...nach ES laden           *)
  25.             $33,$C0,        (*  XOR     AX,AX    ;AX löschen...              *)
  26.             $8E,$D8,        (*  MOV     DS,AX    ;...als Segment nach DS...  *)
  27.             $89,$C6,        (*  MOV     SI,AX    ;...und als Offset nach SI  *)
  28.             $BF,$17,$01,    (*  MOV     DI,0117  ;Beginn der IntVec-Tabelle  *)
  29.             $B9,$00,$02,    (*  MOV     CX,0200  ;Länge der Tabelle          *)
  30.             $F3,            (*  REPZ             ;Kopieren bis Tabellenende  *)
  31.             $A5,            (*  MOVSW            ;                           *)
  32.             $FB,            (*  STI              ;Interrupts zulassen        *)
  33.             $BA,$17,$05,    (*  MOV     DX,0517  ;22 Code-, 1024 Datenbytes  *)
  34.             $CD,$27);       (*  INT     27       ;...resident machen         *)
  35.  
  36.  
  37. Var   ComFile : File of Byte;
  38.       Count   : Byte;
  39.  
  40. Begin
  41. Assign(ComFile, ComFileName); Rewrite(ComFile);
  42. For Count:=1 to SizeOf(Code) do
  43.    Write(ComFile, Code[Count]);
  44. Close(ComFile);
  45. Write(^M^J, 'COM-File ', ComFileName, ' generiert!', ^M^J);
  46. End.
  47.