home *** CD-ROM | disk | FTP | other *** search
- (*---------------------------------------------------------------------------*)
- (* MAKEMARK.PAS (v1.0) *)
- (* Erzeugen der superkurzen MARKer-Datei MARK.COM (MS-DOS/Turbo) *)
- (* (c) 1987 Karsten Gieselmann & PASCAL International *)
- (*---------------------------------------------------------------------------*)
- Program MakeMark (Output, ComFile);
- Const Code :Array [0..22] of Byte =
- ($FA, (* CLI ;Interrupts verbieten *)
- $0E, (* PUSH CS ;Codesegment... *)
- $07, (* POP ES ;...nach ES laden *)
- $33,$C0, (* XOR AX,AX ;AX loeschen... *)
- $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 ;Laenge 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 *)
- ComFileName = 'MARK.COM';
- Var ComFile :File of Byte;
- Count :Integer;
- Begin
- Assign (ComFile, ComFileName); ReWrite (ComFile);
- For Count := 0 to pred(SizeOf(Code)) do Write (ComFile, Code[Count]);
- Close (ComFile);
- WriteLn; Writeln ('COM-File ', ComFileName, ' generiert!'); Writeln;
- End.