6502/vasm/output_tos.h

46 lines
1.0 KiB
C

/* output_tos.h header file for Atari TOS format */
/* (c) in 2009,2012 by Frank Wille */
/* section index */
#define _TEXT 0
#define _DATA 1
#define _BSS 2
/* TOS program header */
typedef struct
{
uint8_t ph_branch[2]; /* branch to start of program (0x601a) */
uint8_t ph_tlen[4]; /* .text length */
uint8_t ph_dlen[4]; /* .data length */
uint8_t ph_blen[4]; /* .bss length */
uint8_t ph_slen[4]; /* length of symbol table */
uint8_t ph_magic[4];
uint8_t ph_flags[4]; /* Atari special flags */
uint8_t ph_abs[2]; /* has to be 0, otherwise no relocation takes place */
} PH;
/* DRI symbol table */
#define DRI_NAMELEN 8
struct DRIsym
{
char name[DRI_NAMELEN];
uint8_t type[2];
uint8_t value[4];
};
#define STYP_UNDEF 0
#define STYP_BSS 0x0100
#define STYP_TEXT 0x0200
#define STYP_DATA 0x0400
#define STYP_EXTERNAL 0x0800
#define STYP_REGISTER 0x1000
#define STYP_GLOBAL 0x2000
#define STYP_EQUATED 0x4000
#define STYP_DEFINED 0x8000
#define STYP_LONGNAME 0x0048
#define STYP_TFILE 0x0280
#define STYP_TFARC 0x02c0