65C02 code size optimization (22 bytes saved) in IEC code
This commit is contained in:
1 parent
1f777ebe60
commit
0618d38cdd
1 file changed
+83
-4
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
!ifdef CONFIG_IEC {
|
!ifdef CONFIG_IEC {
|
||||||
|
|
||||||
|
!ifndef HAS_OPCODES_65C02 {
|
||||||
|
|
||||||
|
|
||||||
iec_pull_atn_clk_release_data:
|
iec_pull_atn_clk_release_data:
|
||||||
|
|
||||||
@@ -34,7 +36,7 @@ iec_pull_clk_release_data:
|
|||||||
iec_pull_clk_release_data_1:
|
iec_pull_clk_release_data_1:
|
||||||
|
|
||||||
and #$FF - BIT_CIA2_PRA_DAT_OUT ; release
|
and #$FF - BIT_CIA2_PRA_DAT_OUT ; release
|
||||||
bne iec_pull_release_end ; branch always
|
bne iec__pull_release_end ; branch always
|
||||||
|
|
||||||
iec_pull_clk_release_data_oneshot:
|
iec_pull_clk_release_data_oneshot:
|
||||||
|
|
||||||
@@ -56,7 +58,7 @@ iec_release_clk_data:
|
|||||||
and #$FF - BIT_CIA2_PRA_DAT_OUT ; release
|
and #$FF - BIT_CIA2_PRA_DAT_OUT ; release
|
||||||
sta CIA2_PRA
|
sta CIA2_PRA
|
||||||
and #$FF - BIT_CIA2_PRA_CLK_OUT ; release
|
and #$FF - BIT_CIA2_PRA_CLK_OUT ; release
|
||||||
jmp iec_pull_release_end
|
+bra iec__pull_release_end
|
||||||
|
|
||||||
iec_release_clk_pull_data:
|
iec_release_clk_pull_data:
|
||||||
|
|
||||||
@@ -64,7 +66,7 @@ iec_release_clk_pull_data:
|
|||||||
ora #BIT_CIA2_PRA_DAT_OUT ; pull
|
ora #BIT_CIA2_PRA_DAT_OUT ; pull
|
||||||
sta CIA2_PRA
|
sta CIA2_PRA
|
||||||
and #$FF - BIT_CIA2_PRA_CLK_OUT ; release
|
and #$FF - BIT_CIA2_PRA_CLK_OUT ; release
|
||||||
bne iec_pull_release_end ; branch always
|
bne iec__pull_release_end ; branch always
|
||||||
|
|
||||||
iec_pull_data_release_atn_clk:
|
iec_pull_data_release_atn_clk:
|
||||||
|
|
||||||
@@ -83,8 +85,85 @@ iec_release_atn:
|
|||||||
|
|
||||||
; FALLTROUGH
|
; FALLTROUGH
|
||||||
|
|
||||||
iec_pull_release_end:
|
iec__pull_release_end:
|
||||||
|
|
||||||
sta CIA2_PRA
|
sta CIA2_PRA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
|
||||||
|
; 65C02 version
|
||||||
|
|
||||||
|
iec_pull_atn_clk_release_data:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_ATN_OUT
|
||||||
|
tsb CIA2_PRA
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
iec_pull_clk_release_data:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_CLK_OUT
|
||||||
|
tsb CIA2_PRA
|
||||||
|
lda #BIT_CIA2_PRA_DAT_OUT
|
||||||
|
bra iec__pull_release_trb
|
||||||
|
|
||||||
|
iec_pull_clk_release_data_oneshot:
|
||||||
|
|
||||||
|
lda CIA2_PRA
|
||||||
|
ora #BIT_CIA2_PRA_CLK_OUT ; pull
|
||||||
|
and #$FF - BIT_CIA2_PRA_DAT_OUT ; release
|
||||||
|
sta CIA2_PRA
|
||||||
|
rts
|
||||||
|
|
||||||
|
iec_release_atn_clk_data:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_ATN_OUT
|
||||||
|
trb CIA2_PRA
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
iec_release_clk_data:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_DAT_OUT
|
||||||
|
trb CIA2_PRA
|
||||||
|
bra iec__release_clk
|
||||||
|
|
||||||
|
iec_release_clk_pull_data:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_DAT_OUT
|
||||||
|
tsb CIA2_PRA
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
iec__release_clk:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_CLK_OUT
|
||||||
|
bra iec__pull_release_trb
|
||||||
|
|
||||||
|
iec_pull_data_release_atn_clk:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_DAT_OUT
|
||||||
|
tsb CIA2_PRA
|
||||||
|
lda #(BIT_CIA2_PRA_CLK_OUT + BIT_CIA2_PRA_ATN_OUT)
|
||||||
|
+skip_2_bytes_trash_nvz
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
iec_release_atn:
|
||||||
|
|
||||||
|
lda #BIT_CIA2_PRA_ATN_OUT
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
iec__pull_release_trb:
|
||||||
|
|
||||||
|
trb CIA2_PRA
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user