mirror of
https://github.com/cc65/cc65.git
synced 2025-01-12 17:30:50 +00:00
new macros supporting 6502DTV cpu
This commit is contained in:
parent
4b8233ec3f
commit
7baf52bdbd
@ -419,6 +419,8 @@ The assembler accepts
|
|||||||
<tt><ref id=".P02" name=".P02"></tt> command was given).
|
<tt><ref id=".P02" name=".P02"></tt> command was given).
|
||||||
<item>all valid 6502 mnemonics plus a set of illegal instructions when in
|
<item>all valid 6502 mnemonics plus a set of illegal instructions when in
|
||||||
<ref id="6502X-mode" name="6502X mode">.
|
<ref id="6502X-mode" name="6502X mode">.
|
||||||
|
<item>all valid 6502DTV mnemonics when in 6502DTV mode (after the
|
||||||
|
<tt><ref id=".PDTV" name=".PDTV"></tt> command was given).
|
||||||
<item>all valid 65SC02 mnemonics when in 65SC02 mode (after the
|
<item>all valid 65SC02 mnemonics when in 65SC02 mode (after the
|
||||||
<tt><ref id=".PSC02" name=".PSC02"></tt> command was given).
|
<tt><ref id=".PSC02" name=".PSC02"></tt> command was given).
|
||||||
<item>all valid 65C02 mnemonics when in 65C02 mode (after the
|
<item>all valid 65C02 mnemonics when in 65C02 mode (after the
|
||||||
@ -3153,6 +3155,12 @@ Here's a list of all control commands and a description, what they do:
|
|||||||
(see <tt><ref id=".PC02" name=".PC02"></tt> command).
|
(see <tt><ref id=".PC02" name=".PC02"></tt> command).
|
||||||
|
|
||||||
|
|
||||||
|
<sect1><tt>.IFPDTV</tt><label id=".IFPDTV"><p>
|
||||||
|
|
||||||
|
Conditional assembly: Check if the assembler is currently in 6502DTV mode
|
||||||
|
(see <tt><ref id=".PDTV" name=".PDTV"></tt> command).
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt>.IFPSC02</tt><label id=".IFPSC02"><p>
|
<sect1><tt>.IFPSC02</tt><label id=".IFPSC02"><p>
|
||||||
|
|
||||||
Conditional assembly: Check if the assembler is currently in 65SC02 mode
|
Conditional assembly: Check if the assembler is currently in 65SC02 mode
|
||||||
@ -3585,6 +3593,14 @@ Here's a list of all control commands and a description, what they do:
|
|||||||
<tt><ref id=".P4510" name=".P4510"></tt>
|
<tt><ref id=".P4510" name=".P4510"></tt>
|
||||||
|
|
||||||
|
|
||||||
|
<sect1><tt>.PDTV</tt><label id=".PDTV"><p>
|
||||||
|
|
||||||
|
Enable the 6502DTV instruction set. This is a superset of the 6502
|
||||||
|
instruction set.
|
||||||
|
|
||||||
|
See: <tt><ref id=".P02" name=".P02"></tt></tt>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt>.POPCPU</tt><label id=".POPCPU"><p>
|
<sect1><tt>.POPCPU</tt><label id=".POPCPU"><p>
|
||||||
|
|
||||||
Pop the last CPU setting from the stack, and activate it.
|
Pop the last CPU setting from the stack, and activate it.
|
||||||
@ -3848,10 +3864,11 @@ Here's a list of all control commands and a description, what they do:
|
|||||||
Switch the CPU instruction set. The command is followed by a string that
|
Switch the CPU instruction set. The command is followed by a string that
|
||||||
specifies the CPU. Possible values are those that can also be supplied to
|
specifies the CPU. Possible values are those that can also be supplied to
|
||||||
the <tt><ref id="option--cpu" name="--cpu"></tt> command line option,
|
the <tt><ref id="option--cpu" name="--cpu"></tt> command line option,
|
||||||
namely: 6502, 6502X, 65SC02, 65C02, 65816, 4510 and HuC6280.
|
namely: 6502, 6502X, 6502DTV, 65SC02, 65C02, 65816, 4510 and HuC6280.
|
||||||
|
|
||||||
See: <tt><ref id=".CPU" name=".CPU"></tt>,
|
See: <tt><ref id=".CPU" name=".CPU"></tt>,
|
||||||
<tt><ref id=".IFP02" name=".IFP02"></tt>,
|
<tt><ref id=".IFP02" name=".IFP02"></tt>,
|
||||||
|
<tt><ref id=".IFPDTV" name=".IFPDTV"></tt>,
|
||||||
<tt><ref id=".IFP816" name=".IFP816"></tt>,
|
<tt><ref id=".IFP816" name=".IFP816"></tt>,
|
||||||
<tt><ref id=".IFPC02" name=".IFPC02"></tt>,
|
<tt><ref id=".IFPC02" name=".IFPC02"></tt>,
|
||||||
<tt><ref id=".IFPSC02" name=".IFPSC02"></tt>,
|
<tt><ref id=".IFPSC02" name=".IFPSC02"></tt>,
|
||||||
@ -4586,6 +4603,7 @@ each supported CPU a constant similar to
|
|||||||
CPU_SWEET16
|
CPU_SWEET16
|
||||||
CPU_HUC6280
|
CPU_HUC6280
|
||||||
CPU_4510
|
CPU_4510
|
||||||
|
CPU_6502DTV
|
||||||
</verb></tscreen>
|
</verb></tscreen>
|
||||||
|
|
||||||
is defined. These constants may be used to determine the exact type of the
|
is defined. These constants may be used to determine the exact type of the
|
||||||
@ -4600,6 +4618,7 @@ another constant is defined:
|
|||||||
CPU_ISET_SWEET16
|
CPU_ISET_SWEET16
|
||||||
CPU_ISET_HUC6280
|
CPU_ISET_HUC6280
|
||||||
CPU_ISET_4510
|
CPU_ISET_4510
|
||||||
|
CPU_ISET_6502DTV
|
||||||
</verb></tscreen>
|
</verb></tscreen>
|
||||||
|
|
||||||
The value read from the <tt/<ref id=".CPU" name=".CPU">/ pseudo variable may
|
The value read from the <tt/<ref id=".CPU" name=".CPU">/ pseudo variable may
|
||||||
|
@ -416,6 +416,16 @@ void DoConditionals (void)
|
|||||||
CalcOverallIfCond ();
|
CalcOverallIfCond ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TOK_IFPDTV:
|
||||||
|
D = AllocIf (".IFPDTV", 1);
|
||||||
|
NextTok ();
|
||||||
|
if (IfCond) {
|
||||||
|
SetIfCond (D, GetCPU() == CPU_6502DTV);
|
||||||
|
}
|
||||||
|
ExpectSep ();
|
||||||
|
CalcOverallIfCond ();
|
||||||
|
break;
|
||||||
|
|
||||||
case TOK_IFPSC02:
|
case TOK_IFPSC02:
|
||||||
D = AllocIf (".IFPSC02", 1);
|
D = AllocIf (".IFPSC02", 1);
|
||||||
NextTok ();
|
NextTok ();
|
||||||
@ -470,6 +480,7 @@ int CheckConditionals (void)
|
|||||||
case TOK_IFP4510:
|
case TOK_IFP4510:
|
||||||
case TOK_IFP816:
|
case TOK_IFP816:
|
||||||
case TOK_IFPC02:
|
case TOK_IFPC02:
|
||||||
|
case TOK_IFPDTV:
|
||||||
case TOK_IFPSC02:
|
case TOK_IFPSC02:
|
||||||
case TOK_IFREF:
|
case TOK_IFREF:
|
||||||
DoConditionals ();
|
DoConditionals ();
|
||||||
|
@ -1552,6 +1552,14 @@ static void DoP4510 (void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void DoPDTV (void)
|
||||||
|
/* Switch to C64DTV CPU */
|
||||||
|
{
|
||||||
|
SetCPU (CPU_6502DTV);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void DoPageLength (void)
|
static void DoPageLength (void)
|
||||||
/* Set the page length for the listing */
|
/* Set the page length for the listing */
|
||||||
{
|
{
|
||||||
@ -2058,6 +2066,7 @@ static CtrlDesc CtrlCmdTab [] = {
|
|||||||
{ ccKeepToken, DoConditionals }, /* .IFP4510 */
|
{ ccKeepToken, DoConditionals }, /* .IFP4510 */
|
||||||
{ ccKeepToken, DoConditionals }, /* .IFP816 */
|
{ ccKeepToken, DoConditionals }, /* .IFP816 */
|
||||||
{ ccKeepToken, DoConditionals }, /* .IFPC02 */
|
{ ccKeepToken, DoConditionals }, /* .IFPC02 */
|
||||||
|
{ ccKeepToken, DoConditionals }, /* .IFPDTV */
|
||||||
{ ccKeepToken, DoConditionals }, /* .IFPSC02 */
|
{ ccKeepToken, DoConditionals }, /* .IFPSC02 */
|
||||||
{ ccKeepToken, DoConditionals }, /* .IFREF */
|
{ ccKeepToken, DoConditionals }, /* .IFREF */
|
||||||
{ ccNone, DoImport },
|
{ ccNone, DoImport },
|
||||||
@ -2091,6 +2100,7 @@ static CtrlDesc CtrlCmdTab [] = {
|
|||||||
{ ccNone, DoPageLength },
|
{ ccNone, DoPageLength },
|
||||||
{ ccNone, DoUnexpected }, /* .PARAMCOUNT */
|
{ ccNone, DoUnexpected }, /* .PARAMCOUNT */
|
||||||
{ ccNone, DoPC02 },
|
{ ccNone, DoPC02 },
|
||||||
|
{ ccNone, DoPDTV },
|
||||||
{ ccNone, DoPopCPU },
|
{ ccNone, DoPopCPU },
|
||||||
{ ccNone, DoPopSeg },
|
{ ccNone, DoPopSeg },
|
||||||
{ ccNone, DoProc },
|
{ ccNone, DoProc },
|
||||||
|
@ -219,6 +219,7 @@ struct DotKeyword {
|
|||||||
{ ".IFP4510", TOK_IFP4510 },
|
{ ".IFP4510", TOK_IFP4510 },
|
||||||
{ ".IFP816", TOK_IFP816 },
|
{ ".IFP816", TOK_IFP816 },
|
||||||
{ ".IFPC02", TOK_IFPC02 },
|
{ ".IFPC02", TOK_IFPC02 },
|
||||||
|
{ ".IFPDTV", TOK_IFPDTV },
|
||||||
{ ".IFPSC02", TOK_IFPSC02 },
|
{ ".IFPSC02", TOK_IFPSC02 },
|
||||||
{ ".IFREF", TOK_IFREF },
|
{ ".IFREF", TOK_IFREF },
|
||||||
{ ".IMPORT", TOK_IMPORT },
|
{ ".IMPORT", TOK_IMPORT },
|
||||||
@ -258,6 +259,7 @@ struct DotKeyword {
|
|||||||
{ ".PAGELENGTH", TOK_PAGELENGTH },
|
{ ".PAGELENGTH", TOK_PAGELENGTH },
|
||||||
{ ".PARAMCOUNT", TOK_PARAMCOUNT },
|
{ ".PARAMCOUNT", TOK_PARAMCOUNT },
|
||||||
{ ".PC02", TOK_PC02 },
|
{ ".PC02", TOK_PC02 },
|
||||||
|
{ ".PDTV", TOK_PDTV },
|
||||||
{ ".POPCPU", TOK_POPCPU },
|
{ ".POPCPU", TOK_POPCPU },
|
||||||
{ ".POPSEG", TOK_POPSEG },
|
{ ".POPSEG", TOK_POPSEG },
|
||||||
{ ".PROC", TOK_PROC },
|
{ ".PROC", TOK_PROC },
|
||||||
|
@ -196,6 +196,7 @@ typedef enum token_t {
|
|||||||
TOK_IFP4510,
|
TOK_IFP4510,
|
||||||
TOK_IFP816,
|
TOK_IFP816,
|
||||||
TOK_IFPC02,
|
TOK_IFPC02,
|
||||||
|
TOK_IFPDTV,
|
||||||
TOK_IFPSC02,
|
TOK_IFPSC02,
|
||||||
TOK_IFREF,
|
TOK_IFREF,
|
||||||
TOK_IMPORT,
|
TOK_IMPORT,
|
||||||
@ -229,6 +230,7 @@ typedef enum token_t {
|
|||||||
TOK_PAGELENGTH,
|
TOK_PAGELENGTH,
|
||||||
TOK_PARAMCOUNT,
|
TOK_PARAMCOUNT,
|
||||||
TOK_PC02,
|
TOK_PC02,
|
||||||
|
TOK_PDTV,
|
||||||
TOK_POPCPU,
|
TOK_POPCPU,
|
||||||
TOK_POPSEG,
|
TOK_POPSEG,
|
||||||
TOK_PROC,
|
TOK_PROC,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user