Add new o65 operating system

git-svn-id: svn://svn.cc65.org/cc65/trunk@1253 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2002-04-21 14:30:40 +00:00
parent 0e4eef1f0f
commit 1c3e74a148
4 changed files with 29 additions and 17 deletions

View File

@@ -814,6 +814,7 @@ static void ParseO65 (void)
static const IdentTok OperatingSystems [] = { static const IdentTok OperatingSystems [] = {
{ "LUNIX", CFGTOK_LUNIX }, { "LUNIX", CFGTOK_LUNIX },
{ "OSA65", CFGTOK_OSA65 }, { "OSA65", CFGTOK_OSA65 },
{ "CC65", CFGTOK_CC65 },
}; };
while (CfgTok == CFGTOK_IDENT) { while (CfgTok == CFGTOK_IDENT) {
@@ -901,6 +902,10 @@ static void ParseO65 (void)
O65SetOS (O65FmtDesc, O65OS_OSA65); O65SetOS (O65FmtDesc, O65OS_OSA65);
break; break;
case CFGTOK_CC65:
O65SetOS (O65FmtDesc, O65OS_CC65);
break;
default: default:
CfgError ("Unexpected OS token"); CfgError ("Unexpected OS token");
} }

View File

@@ -90,9 +90,9 @@
#define O65RELOC_WORD 0x80 #define O65RELOC_WORD 0x80
#define O65RELOC_HIGH 0x40 #define O65RELOC_HIGH 0x40
#define O65RELOC_LOW 0x20 #define O65RELOC_LOW 0x20
#define O65RELOC_SEGADR 0xc0 #define O65RELOC_SEGADR 0xC0
#define O65RELOC_SEG 0xa0 #define O65RELOC_SEG 0xA0
#define O65RELOC_MASK 0xc0 #define O65RELOC_MASK 0xE0
/* O65 executable file header */ /* O65 executable file header */
typedef struct O65Header O65Header; typedef struct O65Header O65Header;
@@ -1013,6 +1013,7 @@ void O65SetOS (O65Desc* D, unsigned OS)
{ {
static const unsigned char OSA65 [2] = { O65OS_OSA65, 0 }; static const unsigned char OSA65 [2] = { O65OS_OSA65, 0 };
static const unsigned char Lunix [2] = { O65OS_LUNIX, 0 }; static const unsigned char Lunix [2] = { O65OS_LUNIX, 0 };
static const unsigned char CC65 [4] = { O65OS_CC65, 0, 0, 0 };
/* Write the correct option */ /* Write the correct option */
switch (OS) { switch (OS) {
@@ -1025,6 +1026,10 @@ void O65SetOS (O65Desc* D, unsigned OS)
O65SetOption (D, O65OPT_OS, Lunix, sizeof (Lunix)); O65SetOption (D, O65OPT_OS, Lunix, sizeof (Lunix));
break; break;
case O65OS_CC65:
O65SetOption (D, O65OPT_OS, CC65, sizeof (CC65));
break;
default: default:
Internal ("Trying to set invalid O65 operating system: %u", OS); Internal ("Trying to set invalid O65 operating system: %u", OS);

View File

@@ -64,6 +64,7 @@ typedef struct O65Desc O65Desc;
/* Operating system codes for O65OPT_OS */ /* Operating system codes for O65OPT_OS */
#define O65OS_OSA65 1 #define O65OS_OSA65 1
#define O65OS_LUNIX 2 #define O65OS_LUNIX 2
#define O65OS_CC65 3

View File

@@ -101,6 +101,7 @@ typedef enum {
CFGTOK_LUNIX, CFGTOK_LUNIX,
CFGTOK_OSA65, CFGTOK_OSA65,
CFGTOK_CC65,
CFGTOK_CONDES, CFGTOK_CONDES,
CFGTOK_SEGMENT, CFGTOK_SEGMENT,