added pseudocommands for branch word-relative instructions
This commit is contained in:
1 parent
e9dd7ad7bc
commit
a64da02dad
1 file changed
+102
@@ -47,3 +47,105 @@
|
|||||||
tay
|
tay
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Branches with far offsets, substitutes by Bxx + JMP for CPUs not supporting the instruction
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
.pseudocommand bcs_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $B3, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
bcc __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
.pseudocommand bcc_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $93, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
bcs __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
.pseudocommand beq_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $F3, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
bne __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
.pseudocommand bne_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $D3, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
beq __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
.pseudocommand bmi_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $33, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
bpl __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
.pseudocommand bpl_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $13, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
bmi __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
.pseudocommand bvc_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $53, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
bvs __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
.pseudocommand bvs_far dst
|
||||||
|
{
|
||||||
|
#if CONFIG_CPU_CSG_65CE02
|
||||||
|
.var offset = mod($10000 + dst.getValue() - *, $10000)
|
||||||
|
.byte $73, mod(offset, $100), floor(offset / $100)
|
||||||
|
#else
|
||||||
|
bvc __l
|
||||||
|
jmp dst
|
||||||
|
__l:
|
||||||
|
#endif
|
||||||
|
}
|
||||||
Reference in new issue
Block a user