home *** CD-ROM | disk | FTP | other *** search
- #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;
-