fixed some 65CE02 instabilities
This commit is contained in:
1 parent
9eb5c9cd2b
commit
da0f5a8150
10 files changed
+15
-11
No files matched your search
@@ -122,7 +122,7 @@
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
// #define CONFIG_BANNER_FANCY
|
||||
#define CONFIG_BANNER_BRAND
|
||||
#define CONFIG_SHOW_FEATURES
|
||||
// #define CONFIG_SHOW_FEATURES
|
||||
// #define CONFIG_SHOW_PAL_NTSC
|
||||
|
||||
|
||||
|
||||
+10
-10
@@ -156,7 +156,7 @@
|
||||
.pseudocommand bcs_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $B3, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
bcc __l
|
||||
@@ -168,7 +168,7 @@ __l:
|
||||
.pseudocommand bcc_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $93, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
bcs __l
|
||||
@@ -179,8 +179,8 @@ __l:
|
||||
|
||||
.pseudocommand beq_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02 && XXX_DISABLED // XXX causes problems with XEMU, investigate why
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $F3, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
bne __l
|
||||
@@ -191,8 +191,8 @@ __l:
|
||||
|
||||
.pseudocommand bne_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02 && XXX_DISABLED // XXX causes problems with XEMU, investigate why
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $D3, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
beq __l
|
||||
@@ -204,7 +204,7 @@ __l:
|
||||
.pseudocommand bmi_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $33, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
bpl __l
|
||||
@@ -216,7 +216,7 @@ __l:
|
||||
.pseudocommand bpl_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $13, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
bmi __l
|
||||
@@ -228,7 +228,7 @@ __l:
|
||||
.pseudocommand bvc_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $53, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
bvs __l
|
||||
@@ -240,7 +240,7 @@ __l:
|
||||
.pseudocommand bvs_16 dst
|
||||
{
|
||||
#if HAS_OPCODES_65CE02
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||
.var offset = mod($10000 + dst.getValue() - *, $10000) -2
|
||||
.byte $73, mod(offset, $100), floor(offset / $100)
|
||||
#else
|
||||
bvc __l
|
||||
|
||||
@@ -91,6 +91,8 @@ chrout_screen_jumptable_hi:
|
||||
|
||||
#else
|
||||
|
||||
.if (mod(*, $2) == 1) { nop } // align code so that vector never crosses page boundary
|
||||
|
||||
chrout_screen_jumptable:
|
||||
|
||||
.word chrout_screen_CLR
|
||||
@@ -116,6 +118,8 @@ chrout_screen_jumptable:
|
||||
.word chrout_screen_DEL
|
||||
.word chrout_screen_RETURN
|
||||
|
||||
.if (mod(*, $2) == 0) { nop } // make sure routine size is always the same, needed by build system
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user