home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / nethack-3.1 / sys / amiga / splitter / amiout.h next >
Encoding:
C/C++ Source or Header  |  1992-03-12  |  2.8 KB  |  82 lines

  1. /*    SCCS Id: @(#)amiout.h        3.1   91/15/09
  2. /*    Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1990      */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4. /* This version: $Revision: 1.2 $ */
  5. /* Last edit: $Date: 92/02/09 12:38:04 $ */
  6.  
  7. /*
  8.  * This is essentially a.out.h for the Amiga object and load file format,
  9.  * as extended by Lattice (now SAS, then adopted by CBM, and extended again).
  10.  */
  11. /* object file structure */
  12.     
  13.     /* these blocks are of the form: ID,N,N data longs */
  14. #define HUNK_UNIT    999
  15. #define HUNK_NAME    1000
  16. #define HUNK_DEBUG    1009
  17.     /* these blocks are of the form: ID,N*,N data longs. */
  18.     /* If (N* && 0xc0000000 == 0xc0000000) then an additional long appears*/
  19. #define HUNK_CODE    1001
  20. #define HUNK_DATA    1002
  21. #define HUNK_BSS    1003
  22. # define MEM_OBJ_ANY     0
  23. # define MEM_OBJ_FAST    (1<<31)
  24. # define MEM_OBJ_CHIP    (1<<30)
  25. # define MEM_OBJ_EXTEND 0xc0000000
  26.     /* these blocks are of the form: ID, (N!=0,long,N data longs)*, 0 */
  27. #define HUNK_RELOC32    1004
  28. #define HUNK_RELOC16    1005
  29. #define HUNK_RELOC8    1006
  30. /*#define HUNK_RELOC32s ???        /* ADOS 2.0 */
  31. #define HUNK_DRELOC32    0x3f7        /* Lattice & ADOS 2.0 */
  32. #define HUNK_DRELOC16    0x3f8        /* Lattice & ADOS 2.0 */
  33. #define HUNK_DRELOC8    0x3f9        /* Lattice & ADOS 2.0 */
  34.     /* these blocks are of the form: ID,(symbol data unit)*,0 */
  35. #define HUNK_EXT    1007
  36. #define        EXT_SYMB    0    /* SDU format 0 */
  37. #define        EXT_DEF        1    /* SDU format 1 */
  38. #define        EXT_ABS        2    /* SDU format 1 */
  39. #define        EXT_RES        3    /* SDU format 1 */
  40. #define        EXT_REF32    129    /* SDU format 2 */
  41. #define        EXT_COMMON    130    /* SDU format 3 */
  42. #define        EXT_REF16    131    /* SDU format 2 */
  43. #define        EXT_REF8    132    /* SDU format 2 */
  44. #define        EXT_DREF32    133    /* ADOS 2.0 */
  45. #define        EXT_DREF16    0x86    /* SDU format 2 Lattice - data ref */
  46. #define        EXT_DREF8    135    /* ADOS 2.0 */
  47. #define    HUNK_SYMBOL    1008
  48.     /* these blocks are of the form: ID */
  49. #define HUNK_END    1010
  50.  
  51. /* load file structure */
  52.     /* these blocks are of the form:
  53.      * ID,(N!=0,X,X longs)*,0,SZ,first,last,last-first+1 sizes
  54.      */
  55. #define HUNK_HEADER    1011
  56.     /* these blocks are of the form:
  57.      * ID,SZ,M+2,M+1 longs of 0,overlay data table [(O+1)*8+M+1 longs]
  58.      * where M=tree depth (root=0), O=# overlays-1 [zero base]
  59.      */
  60. #define HUNK_OVERLAY    1013
  61.     /* these blocks are of the form: ID */
  62. #define HUNK_BREAK    1014
  63.  
  64. /* link library structure */
  65.         /* NB - this is a Lattice extension.  It is perfectly
  66.          * legal to concatenate .o files and call it a library.
  67.          * Now adopted by ADOS 2.0
  68.          */
  69.     /* these blocks are of the form:
  70.      * ID, size in longs of the code/data/etc following
  71.      */
  72. #define LIB_HUNK    1018
  73.     /* these blocks are of the form:
  74.      * ID, size, 16-bit size of string table, string table, reloc info
  75.      */
  76. #define LIB_INDEX    1019
  77.     /* the ADOS 2.0 book defines them this way -
  78.      * it's wrong, right?
  79.      */
  80. /* #define HUNK_LIB 1019 */
  81. /* #define HUNK_INDEX 1020 */
  82.