Support for the .BANKBYTES, .LOBYTES and .HIBYTES pseudo functions contributed

by Kevin Schuetz <scrapdog@runbox.com>.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3965 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2009-05-18 16:11:34 +00:00
parent 37e08cac59
commit 8e8993de7e
7 changed files with 173 additions and 4 deletions

View File

@@ -482,6 +482,20 @@ static void DoAutoImport (void)
}
static void DoBankBytes (void)
/* Define bytes, extracting the bank byte from each expression in the list */
{
while (1) {
EmitByte (FuncBankByte ());
if (Tok != TOK_COMMA) {
break;
} else {
NextTok ();
}
}
}
static void DoBss (void)
/* Switch to the BSS segment */
@@ -991,6 +1005,20 @@ static void DoGlobalZP (void)
}
static void DoHiBytes (void)
/* Define bytes, extracting the hi byte from each expression in the list */
{
while (1) {
EmitByte (FuncHiByte ());
if (Tok != TOK_COMMA) {
break;
} else {
NextTok ();
}
}
}
static void DoI16 (void)
/* Switch the index registers to 16 bit mode (assembler only) */
@@ -1221,6 +1249,20 @@ static void DoList (void)
static void DoLoBytes (void)
/* Define bytes, extracting the lo byte from each expression in the list */
{
while (1) {
EmitByte (FuncLoByte ());
if (Tok != TOK_COMMA) {
break;
} else {
NextTok ();
}
}
}
static void DoListBytes (void)
/* Set maximum number of bytes to list for one line */
{
@@ -1725,6 +1767,7 @@ static CtrlDesc CtrlCmdTab [] = {
{ ccNone, DoAssert },
{ ccNone, DoAutoImport },
{ ccNone, DoUnexpected }, /* .BANKBYTE */
{ ccNone, DoBankBytes },
{ ccNone, DoUnexpected }, /* .BLANK */
{ ccNone, DoBss },
{ ccNone, DoByte },
@@ -1768,6 +1811,7 @@ static CtrlDesc CtrlCmdTab [] = {
{ ccNone, DoGlobal },
{ ccNone, DoGlobalZP },
{ ccNone, DoUnexpected }, /* .HIBYTE */
{ ccNone, DoHiBytes },
{ ccNone, DoUnexpected }, /* .HIWORD */
{ ccNone, DoI16 },
{ ccNone, DoI8 },
@@ -1795,6 +1839,7 @@ static CtrlDesc CtrlCmdTab [] = {
{ ccNone, DoList },
{ ccNone, DoListBytes },
{ ccNone, DoUnexpected }, /* .LOBYTE */
{ ccNone, DoLoBytes },
{ ccNone, DoUnexpected }, /* .LOCAL */
{ ccNone, DoLocalChar },
{ ccNone, DoUnexpected }, /* .LOWORD */