home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------------------------- *)
- (* MAKEMARK.PAS (v1.1) *)
- (* Erzeugen der superkurzen MARKer-Datei MARK.COM *)
- (* Copyright (c) 1988 Karsten Gieselmann & TOOLBOX *)
- (* ------------------------------------------------------------------------- *)
-
- PROGRAM MakeMark;
-
- CONST
- ComFileName = 'MARK.COM'; (* Name des MARK-Programms *)
-
- Code : ARRAY [1..23] OF BYTE = ( (* der Code der Binärdatei MARK.COM *)
-
- $FA, (* CLI ;Interrupts verbieten *)
- $0E, (* PUSH CS ;Codesegment... *)
- $07, (* POP ES ;...nach ES laden *)
- $33,$C0, (* XOR AX,AX ;AX löschen... *)
- $8E,$D8, (* MOV DS,AX ;...als Segment nach DS... *)
- $89,$C6, (* MOV SI,AX ;...und als Offset nach SI *)
- $BF,$17,$01, (* MOV DI,0117 ;Beginn der IntVec-Tabelle *)
- $B9,$00,$02, (* MOV CX,0200 ;Länge der Tabelle *)
- $F3, (* REPZ ;Kopieren bis Tabellenende *)
- $A5, (* MOVSW ; *)
- $FB, (* STI ;Interrupts zulassen *)
- $BA,$17,$05, (* MOV DX,0517 ;22 Code-, 1024 Datenbytes *)
- $CD,$27); (* INT 27 ;...resident machen *)
-
- VAR
- ComFile : FILE OF BYTE;
- Count : BYTE;
-
- BEGIN
- Assign (ComFile, ComFileName);
- ReWrite (ComFile);
- FOR Count:=1 TO SizeOf(Code) DO
- Write (ComFile, Code[Count]);
- Close (ComFile);
- WriteLn (^M^J'COM-File ', ComFileName, ' generiert!'^M^J);
- END.
-