home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 1998 October / STC_CD_10_1998.iso / BASE / PD_PATCH / PATCH.H < prev    next >
C/C++ Source or Header  |  1998-09-26  |  4KB  |  142 lines

  1. #include <stdio.h>
  2. #include <tos.h>
  3. #include "grafik.h"
  4. #include <aes.h>
  5.  
  6. #define        EdDI_1_1    1
  7. #define        NOVA        2
  8.  
  9. /* Die folgenden Konstanten beschreiben einerseits die vorhandene 
  10. Grafikhardware, und andererseits das CLUT-Format*/
  11. #define ST_MOD        0
  12. #define TT_MOD        2
  13.  
  14. /* Originalroutinen aus PD    */
  15. #define        V_OPNVWK        0
  16. #define        GRAF_HANDLE        1
  17. #define        PHYSBASE        2
  18. #define        LOGBASE            3
  19. #define        VQ_EXTND        4
  20. #define        V_CLSVWK        5
  21. #define        SETSCREEN        6
  22. #define        DRAW_MENU        7
  23. #define        VQ_MOUSE        8
  24. #define        VRO_CPYFM        9
  25. #define        V_HIDE_C        10
  26. #define        V_SHOW_C        11
  27. #define        MXALLOC            12
  28. #define        FCLOSE            13
  29. #define        RESET            14
  30. #define        SETGDT            15
  31. #define        ESC_H_ETC        16
  32. #define        ETVTRM            17
  33. #define        GEMDOS2            18
  34. #define        JMPGEMD            19
  35. #define        BOMB4            20
  36. #define        LINEA            21
  37. #define        TRACE            22
  38. #define        AESVDI            23
  39. #define        NOPRIV            24
  40. #define        BOMBEN            25
  41. #define        TOS1            26
  42. #define        SETMYEXC        27
  43. #define        GEMDOS2A        28
  44. #define        SHOW_CURS        29
  45. #define        HIDE_CURS        30
  46. #define        RESET_A            31
  47. #define        ANZ_ROUT        32
  48.  
  49. /* und Daten (DATA, BSS    )    */
  50. #define        PTRGEMD            0
  51. #define        PTRTERM            1
  52. #define        ORSR33            2
  53. #define        ORSR45            3
  54. #define        ORSR46            4
  55. #define        ANZBOMB            5
  56. #define        B_2AD06            6
  57. #define        B_2BE54            7
  58. #define        B_2BE60            8
  59. #define        B_23E58            9
  60. #define        ANZ_DAT            10
  61.  
  62. /* Adresse und name einer Routine    */
  63. typedef struct
  64. {    long        addr;
  65.     char        name[30];
  66. }PD_ROUT;
  67.  
  68. /* Programmheader    */
  69. typedef struct
  70. {    int        ph_branch;
  71.     long    ph_tlen;            /* Länge des TEXT-Abschnitts    */
  72.     long    ph_dlen;            /* Länge des DATA-Abschnitts    */
  73.     long    ph_blen;            /* Länge des BSS-Abschnitts    */
  74.     long    ph_slen;            /* Länge des Symboltabelle    */
  75.     long    ph_res1;            /* reserviert    */
  76.     long    ph_prgflags;        /* Flags                    */
  77.     int        ph_absflag;            /* 0:Relozierungsinfo vorh.        */
  78. }PH;
  79. /* Typdefinition für den Dateiheader einer Borland-Object-Datei */
  80. typedef struct
  81. {    unsigned long magic;    /* 0x4EFA001C */
  82.     unsigned long imageBytes;
  83.     unsigned long symInfoBytes;
  84.     unsigned long nameBytes;
  85.     unsigned long versionInfo;
  86.     unsigned long debugInfo;
  87.     unsigned long reserved1;
  88.     unsigned long reserved2;
  89. } LIBHEADER;
  90.  
  91. #define MAGIC 0x4EFA001CL
  92. /* neue Routinen...    */
  93. typedef struct
  94. {    long    reloz[200];        /* neue Adressen die reloziert werden müssen    */
  95.     int     anz_r;            /* deren Anzahl    */
  96.     int     neues[100];        /* Nummer für N_ROUT    */
  97.     int     neue;
  98.     long    ersetze[100][2];
  99.     int     ers;
  100. }N_ROUT;
  101. /*Auf die folgende Struct wird auch auf Assembler zugegriffen 
  102.     (xbra_Gd_trm, tst_id) da dort davon ausgegangen wird, da₧ p_bp
  103.     bei Offset 0, p_flags bei Offset 4 und p_frame bei Offset 12
  104.     stehen, darf dies nicht    geändert werden, oder eben der S-Code ebenfalls    */
  105. typedef struct
  106. {    BASPAG *p_bp;            /* eigene BASEPAGE                    */
  107.     volatile long p_flags[2] ;        /* werden gesetzt wenn File geöfnet    */
  108.     int        p_frame,        /* Framelänge: 6 oder 8                */
  109.             p_x,            /* letzte Mausposition                */
  110.             p_y,
  111.             p_x_offs,
  112.             p_y_offs,
  113.             p_ms;            /* Mausstatus für v_hide_c...        */
  114.             p_masch,        /* ST,TT,...                        */
  115.             p_vopn,            /* 0: v_opnbm; 1:v_opnvwk2            */
  116.             p_bhdl[3];        /* Handel der 2 Bitmaps und des AES-Bilds.    */
  117.             p_log;            /* Logische Bitmap                    */
  118.             p_phys;            /* Phys. Bitmap                        */
  119.     ULONG    p_mmaske[8],    /* Maus Maske                        */
  120.             p_mzeiger[8],    /* Maus Maske                        */
  121.             p_msave[8];        /* Zum Retten des Maushintergrunds    */
  122.     void     *p_baddr[3];    /* PHYSBASE der 2 Bitmaps und der Grafikkarte
  123.                                 Im 1-Monitormodus:{NULL,?,Startbildschirmaddr}    */
  124.     int     *p_pdhdl;        /* Da speichert PD den Workstationhandel */
  125.     char    p_res,            /* Resolution, für [ST]T-Shift-Mode-Register*/
  126.             p_mxa;
  127.     int        p_bs_m;        /* welcher Mode bei Mxalloc für Bildschirmsp. verwendet werden soll?*/
  128. }PDX;
  129. /* Typedefinition für die Einträge in der Symboltabelle */
  130. typedef struct
  131. {    char Type; /* Typeintrag */
  132.     unsigned char Position; /* Offset */
  133.     int Wert; /* Name */
  134. } SYMENTRY;
  135. typedef struct
  136. {    char    *sy_name;        /* Name des Symbols                    */
  137.     long    sy_atxt;        /* Adresse relativ zum TEXT Anfang    */
  138.     char    *sy_aram;        /* aktuelle Adresse im RAM            */
  139.     SYMENTRY *sy_stab;        /* Beginn in Symboltable            */
  140.     long    sy_len;            /* Länge                            */
  141. }SYMB;
  142.