home *** CD-ROM | disk | FTP | other *** search
- (* ┌───────────────────────────────────────────────────────────────────────┐
- │ MAKEMARK (3.0) - Generieren der superkurzen MARKer-Datei │
- │ │
- │ Copyright (c) 1987,1988,1989 Karsten Gieselmann & DMV Software │
- └───────────────────────────────────────────────────────────────────────┘ *)
-
- {$IFDEF Ver40} (* Compilerschalter für Turbo Pascal 4.0 *)
- {$R-,S-,I+,F-,V-,B-,N-}
- {$ENDIF}
-
- {$IFDEF Ver50} (* Compilerschalter für Turbo Pascal 5.0 *)
- {$R-,S-,I+,F-,V-,B-,N-,A-,E-,O-}
- {$ENDIF}
-
-
- Program MakeMark;
-
- Const ComFileName = 'MARK.COM'; (* Name des MARK-Programms *)
-
- Code : Array [1..23] of Byte = (
-
- $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);
- Write(^M^J, 'COM-File ', ComFileName, ' generiert!', ^M^J);
- End.