home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser 1998 October
/
STC_CD_10_1998.iso
/
BASE
/
PD_PATCH
/
PATCH.H
< prev
next >
Wrap
C/C++ Source or Header
|
1998-09-26
|
4KB
|
142 lines
#include <stdio.h>
#include <tos.h>
#include "grafik.h"
#include <aes.h>
#define EdDI_1_1 1
#define NOVA 2
/* Die folgenden Konstanten beschreiben einerseits die vorhandene
Grafikhardware, und andererseits das CLUT-Format*/
#define ST_MOD 0
#define TT_MOD 2
/* Originalroutinen aus PD */
#define V_OPNVWK 0
#define GRAF_HANDLE 1
#define PHYSBASE 2
#define LOGBASE 3
#define VQ_EXTND 4
#define V_CLSVWK 5
#define SETSCREEN 6
#define DRAW_MENU 7
#define VQ_MOUSE 8
#define VRO_CPYFM 9
#define V_HIDE_C 10
#define V_SHOW_C 11
#define MXALLOC 12
#define FCLOSE 13
#define RESET 14
#define SETGDT 15
#define ESC_H_ETC 16
#define ETVTRM 17
#define GEMDOS2 18
#define JMPGEMD 19
#define BOMB4 20
#define LINEA 21
#define TRACE 22
#define AESVDI 23
#define NOPRIV 24
#define BOMBEN 25
#define TOS1 26
#define SETMYEXC 27
#define GEMDOS2A 28
#define SHOW_CURS 29
#define HIDE_CURS 30
#define RESET_A 31
#define ANZ_ROUT 32
/* und Daten (DATA, BSS ) */
#define PTRGEMD 0
#define PTRTERM 1
#define ORSR33 2
#define ORSR45 3
#define ORSR46 4
#define ANZBOMB 5
#define B_2AD06 6
#define B_2BE54 7
#define B_2BE60 8
#define B_23E58 9
#define ANZ_DAT 10
/* Adresse und name einer Routine */
typedef struct
{ long addr;
char name[30];
}PD_ROUT;
/* Programmheader */
typedef struct
{ int ph_branch;
long ph_tlen; /* Länge des TEXT-Abschnitts */
long ph_dlen; /* Länge des DATA-Abschnitts */
long ph_blen; /* Länge des BSS-Abschnitts */
long ph_slen; /* Länge des Symboltabelle */
long ph_res1; /* reserviert */
long ph_prgflags; /* Flags */
int ph_absflag; /* 0:Relozierungsinfo vorh. */
}PH;
/* Typdefinition für den Dateiheader einer Borland-Object-Datei */
typedef struct
{ unsigned long magic; /* 0x4EFA001C */
unsigned long imageBytes;
unsigned long symInfoBytes;
unsigned long nameBytes;
unsigned long versionInfo;
unsigned long debugInfo;
unsigned long reserved1;
unsigned long reserved2;
} LIBHEADER;
#define MAGIC 0x4EFA001CL
/* neue Routinen... */
typedef struct
{ long reloz[200]; /* neue Adressen die reloziert werden müssen */
int anz_r; /* deren Anzahl */
int neues[100]; /* Nummer für N_ROUT */
int neue;
long ersetze[100][2];
int ers;
}N_ROUT;
/*Auf die folgende Struct wird auch auf Assembler zugegriffen
(xbra_Gd_trm, tst_id) da dort davon ausgegangen wird, da₧ p_bp
bei Offset 0, p_flags bei Offset 4 und p_frame bei Offset 12
stehen, darf dies nicht geändert werden, oder eben der S-Code ebenfalls */
typedef struct
{ BASPAG *p_bp; /* eigene BASEPAGE */
volatile long p_flags[2] ; /* werden gesetzt wenn File geöfnet */
int p_frame, /* Framelänge: 6 oder 8 */
p_x, /* letzte Mausposition */
p_y,
p_x_offs,
p_y_offs,
p_ms; /* Mausstatus für v_hide_c... */
p_masch, /* ST,TT,... */
p_vopn, /* 0: v_opnbm; 1:v_opnvwk2 */
p_bhdl[3]; /* Handel der 2 Bitmaps und des AES-Bilds. */
p_log; /* Logische Bitmap */
p_phys; /* Phys. Bitmap */
ULONG p_mmaske[8], /* Maus Maske */
p_mzeiger[8], /* Maus Maske */
p_msave[8]; /* Zum Retten des Maushintergrunds */
void *p_baddr[3]; /* PHYSBASE der 2 Bitmaps und der Grafikkarte
Im 1-Monitormodus:{NULL,?,Startbildschirmaddr} */
int *p_pdhdl; /* Da speichert PD den Workstationhandel */
char p_res, /* Resolution, für [ST]T-Shift-Mode-Register*/
p_mxa;
int p_bs_m; /* welcher Mode bei Mxalloc für Bildschirmsp. verwendet werden soll?*/
}PDX;
/* Typedefinition für die Einträge in der Symboltabelle */
typedef struct
{ char Type; /* Typeintrag */
unsigned char Position; /* Offset */
int Wert; /* Name */
} SYMENTRY;
typedef struct
{ char *sy_name; /* Name des Symbols */
long sy_atxt; /* Adresse relativ zum TEXT Anfang */
char *sy_aram; /* aktuelle Adresse im RAM */
SYMENTRY *sy_stab; /* Beginn in Symboltable */
long sy_len; /* Länge */
}SYMB;