Hallo Ole,
ich kenne das Spiel nicht, läuft das im Zeichenmode oder in einem Grafik-Modus von DOS?
Hat zwar nichts mit Websites zu tun, aber wie man da rankommt an die Screenshots, wird sich schon rausfinden lassen. Im Zeichenmodus ist es relativ einfach. Man muss allerdings über etwas Erfahrung mit Residenten Programmen verfügen. Es muss "nur" ein Abbild des Bildspeichers (bei VGA) ab Adresse $B800:0000, gemacht werden. Dafür muss man im Bios nachschauen, wieviele Zeilen und wieviele Spalten gerade eingestellt sind:
Ab Adresse $0400:0000 findest Du den BIOS-Variablen-Bereich. D<ays steht dieser Record drin (Hier in Pascal implementiert). Das gilt auchb heute noch unter Windows-Systemen, nur dass man da mit einem Descriptor zugreifen muss und nicht mit einer absoluten Adresse.
BiosVarType = record
COM1 : Word;
COM2 : Word;
COM3 : Word;
COM4 : Word;
SERIAL1 : Word;
SERIAL2 : Word;
SERIAL3 : Word;
SERIAL4 : Word;
CONFIG : Word;
POST1 : Byte;
RAM : Word;
POST2 : Word;
KeyBoard1 : Byte;
KeyBoard2 : Byte;
ALTCode : Byte;
KeyBufNext : Word;
KeyBufLast : Word;
KeyBuf : Array[0..31] of byte;
DiskFlags : byte;
MotorFlags : byte;
DiskTime : byte;
DiskErr : byte;
DiskControl: array[0..6] of byte;
CrtMode : byte; { Aktiver Bildschirmmodus }
ScrCols : word; { Aktuelle Anzahl der Spalten }
ScrSize : word; { Anzahl der Bytes pro Bildschirmseite }
ScrPageOfs : word; { Offsetadresse der aktuellen Bildseite }
CursPos : Array[0..7] of CursPosType; { Cursorpositionen der acht
Bildschirmseiten , XPos, YPos }
CursStart : byte;
CursEnd : byte;
ScrPage : byte; { Nummer der aktuellen Bildschirmseite }
VideoPort : Word; { Portadresse des akt. Videocontrollers }
VideoMode : Byte; { Aktueller Videomodus, Modusauswahlregister }
Palette : Byte;
Res1 : Array[0..4] of byte;
Ticks : word; { Ticker 18.2 mal pro sec }
Hours : word; { Stunden }
Days : byte; { Tage seit Booten des PC }
CtrlBreak : byte; { Bit 7 ist gesetzt, wenn <Ctrl-Break> auftrat }
ColdStart : word; { Wenn 1234h drin steht, Warmstart }
HDStatus : byte; { }
HDCount : byte; { Anzahl der Festplatten }
end;
Dir Drucktaste hat einen eigenen Interrupt ($05), den kann man dann auf einen eigenen Handler umbiegen. Sowas kann man in C oder Pascal unter Zuhilfenahme von integriertem Assemblercode in ca. 150 Zeilen schreibem. Hatte ich auch mal. Leider finde ich es nicht wieder.
Wenn es sich um Grafik-Ausgabe (pixelorientiert) handelt, muss man die Spezifukation der Grafikkarte kennen und wissen, wo das Programm sienen Grafik-Bildschirm-Puffer hinlegt. Da ist es dann nicht so einfach.
In alter Erinnerung an dir Anfänge der PC-Technik
Liebe Grüße
Tom