mirror of
https://github.com/KrisKennaway/ii-vision.git
synced 2024-12-12 22:29:12 +00:00
s/BIT TICK/STA TICK/
It doesn't functionally matter since I'm not using any conditional opcodes in the fast path anyway, but STA removes these side-effects. Earlier I had mistakenly thought that STA absolute did a read-before-write on 6502, but this is not the case (verified with visual6502.org)
This commit is contained in:
parent
b05c3bec1e
commit
722e9c5d70
140
player/main.s
140
player/main.s
@ -397,7 +397,7 @@ _op_header_hgr:
|
||||
; Y register has the high byte of the W5100 address pointer in the RX socket code, so we
|
||||
; can't trash this until we are ready to point back there.
|
||||
checkrecv:
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
LDA #<S0RXRSR ; 2 Socket 0 Received Size register
|
||||
STA WADRL ; 4
|
||||
@ -440,7 +440,7 @@ recv: ; 15 cycles so far
|
||||
; X will usually already be 0 from op_ack except during first frame when reading
|
||||
; header but reset it unconditionally
|
||||
LDX #$00 ; 2
|
||||
BIT TICK ; 4 ; 36
|
||||
STA TICK ; 4 ; 36
|
||||
|
||||
NOP ; 2
|
||||
STA dummy ; 4
|
||||
@ -464,7 +464,7 @@ op_nop:
|
||||
; - read 2 bytes from the stream as address of next opcode
|
||||
;
|
||||
; Each opcode has 6 cycles of padding, which is necessary to support reordering things to
|
||||
; get the second "BIT TICK" at the right cycle offset.
|
||||
; get the second "STA TICK" at the right cycle offset.
|
||||
;
|
||||
; Where possible we share code by JMPing to a common tail instruction sequence in one of the
|
||||
; earlier opcodes. This is critical for reducing code size enough to fit.
|
||||
@ -480,8 +480,8 @@ op_nop:
|
||||
.macro op_tick_4 page
|
||||
;4+(4)+2+4+4+4+5+4+5+4+5+4+5+4+4+4+4+3=73
|
||||
.ident (.concat ("op_tick_4_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
STA zpdummy ; 3
|
||||
@ -524,9 +524,9 @@ tickident page, 7
|
||||
.macro op_tick_6 page
|
||||
;4+(2+4)+3+4+4+5+4+5+4+5+4+5+4+4+4+5+3
|
||||
.ident (.concat ("op_tick_6_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
|
||||
@ -569,9 +569,9 @@ tickident page, 8
|
||||
.macro op_tick_8 page
|
||||
;4+(4+4)+3+3+55
|
||||
.ident (.concat ("op_tick_8_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_55")) ; 3 + 55
|
||||
@ -580,10 +580,10 @@ tickident page, 8
|
||||
.macro op_tick_10 page
|
||||
;4+(4+2+4)+3+56
|
||||
.ident (.concat ("op_tick_10_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_56")) ; 3 + 56
|
||||
.endmacro
|
||||
@ -591,10 +591,10 @@ tickident page, 8
|
||||
.macro op_tick_12 page
|
||||
;4+(4+4+4)+3+3+51
|
||||
.ident (.concat ("op_tick_12_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_51")) ; 3 + 51
|
||||
@ -603,11 +603,11 @@ tickident page, 8
|
||||
.macro op_tick_14 page
|
||||
;4+(4+4+2+4)+3+52
|
||||
.ident (.concat ("op_tick_14_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_52")) ; 3+52
|
||||
.endmacro
|
||||
@ -615,14 +615,14 @@ tickident page, 8
|
||||
.macro op_tick_16 page
|
||||
; 4+(4+4+4+4)+5+2+3+43
|
||||
.ident (.concat ("op_tick_16_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
; This temporarily violates X=0 invariant required by tick_6, but lets us share a
|
||||
; common opcode tail; otherwise we need a dummy 4-cycle opcode between the ticks, which
|
||||
; doesn't leave enough to JMP with.
|
||||
LDX WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA page << 8,x ; 5
|
||||
LDX #$00 ; 2 restore X=0 invariant
|
||||
@ -633,14 +633,14 @@ tickident page, 8
|
||||
.macro op_tick_18 page
|
||||
; 4 + (4+4+4+2+4)+5+5+2+2+4+5+4+5+4+4+4+4+3
|
||||
.ident (.concat ("op_tick_18_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
; lets us reorder the 5-cycle STA page << 8,y outside of tick loop.
|
||||
; This temporarily violates X=0 invariant required by tick_6
|
||||
LDX WDATA ; 4
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA page << 8,Y ; 5
|
||||
STA page << 8,X ; 5
|
||||
@ -667,12 +667,12 @@ tickident page, 8
|
||||
.macro op_tick_20 page
|
||||
;4+(4+4+5+3+4)+3+46=73
|
||||
.ident (.concat ("op_tick_20_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
STA zpdummy ; 3
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_46"))
|
||||
.endmacro
|
||||
@ -681,12 +681,12 @@ tickident page, 8
|
||||
.macro op_tick_22 page
|
||||
; 4+(4+4+5+4+4)+3+3+42
|
||||
.ident (.concat ("op_tick_22_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_42")) ; 3 + 42
|
||||
@ -695,13 +695,13 @@ tickident page, 8
|
||||
.macro op_tick_24 page
|
||||
;4+(4+4+5+4+3+4)+3+42
|
||||
.ident (.concat ("op_tick_24_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
STA zpdummy ; 3
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_42"))
|
||||
.endmacro
|
||||
@ -709,13 +709,13 @@ tickident page, 8
|
||||
.macro op_tick_26 page ; pattern repeats from op_tick_8
|
||||
; 4+(4+4+5+4+5+4)+3+37
|
||||
.ident (.concat ("op_tick_26_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
BIT TICK; 4
|
||||
STA TICK; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_37")) ; 3 + 37
|
||||
@ -724,14 +724,14 @@ tickident page, 8
|
||||
.macro op_tick_28 page ; pattern repeats from op_tick_10
|
||||
; 4+(4+2+4+5+4+5+4)+3+38
|
||||
.ident (.concat ("op_tick_28_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_38"))
|
||||
.endmacro
|
||||
@ -739,14 +739,14 @@ tickident page, 8
|
||||
.macro op_tick_30 page ; pattern repeats from op_tick_12
|
||||
;4+(4+4+5+4+5+4+4)+3+3+33
|
||||
.ident (.concat ("op_tick_30_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_33")) ; 3 + 33
|
||||
@ -755,7 +755,7 @@ tickident page, 8
|
||||
.macro op_tick_32 page ; pattern repeats from op_tick_14
|
||||
;4+(4+4+5+4+5+4+2+4)+3+34
|
||||
.ident (.concat ("op_tick_32_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -763,7 +763,7 @@ tickident page, 8
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_34"))
|
||||
.endmacro
|
||||
@ -771,7 +771,7 @@ tickident page, 8
|
||||
.macro op_tick_34 page ; pattern repeats from op_tick_16
|
||||
; 4+(4+4+5+4+5+4+4+4)+2+5+5+3+20
|
||||
.ident (.concat ("op_tick_34_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -779,7 +779,7 @@ tickident page, 8
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
LDX WDATA ; 4 ; allows reordering STA ...,X outside ticks
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA page << 8,Y ; 5
|
||||
STA page << 8,X ; 5
|
||||
@ -792,7 +792,7 @@ tickident page, 8
|
||||
.macro op_tick_36 page ; pattern repeats from op_tick_18
|
||||
;4+(4+4+5+4+5+4+4+2+4)+5+5+2+2+4+4+4+4+3
|
||||
.ident (.concat ("op_tick_36_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -801,7 +801,7 @@ tickident page, 8
|
||||
LDY WDATA ; 4
|
||||
LDX WDATA ; 4
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA page << 8,Y ; 5
|
||||
STA page << 8,X ; 5
|
||||
@ -820,7 +820,7 @@ tickident page, 8
|
||||
.macro op_tick_38 page ; pattern repeats from op_tick_20
|
||||
; 4 + (4+4+5+4+5+4+5+3+4)+3+28
|
||||
.ident (.concat ("op_tick_38_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -829,7 +829,7 @@ tickident page, 8
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
STA zpdummy ; 3
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_28")) ; 3 + 28
|
||||
.endmacro
|
||||
@ -838,7 +838,7 @@ tickident page, 8
|
||||
.macro op_tick_40 page ; pattern repeats from op_tick_22
|
||||
;4+(4+4+5+4+5+4+5+4+4)+3+3+24
|
||||
.ident (.concat ("op_tick_40_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -847,7 +847,7 @@ tickident page, 8
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_24"))
|
||||
@ -856,7 +856,7 @@ tickident page, 8
|
||||
.macro op_tick_42 page ; pattern repeats from op_tick_24
|
||||
;4+(4+4+5+4+5+4+5+4+3+4)+3+24
|
||||
.ident (.concat ("op_tick_42_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -866,7 +866,7 @@ tickident page, 8
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
STA zpdummy ; 3
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_24")) ; 3 + 24
|
||||
.endmacro
|
||||
@ -874,7 +874,7 @@ tickident page, 8
|
||||
.macro op_tick_44 page ; pattern repeats from op_tick_26
|
||||
; 4 + (4+4+5+4+5+4+5+4+5+4)+3+3+19
|
||||
.ident (.concat ("op_tick_44_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -884,7 +884,7 @@ tickident page, 8
|
||||
STA page << 8,Y ; 5
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
BIT TICK; 4
|
||||
STA TICK; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_19")) ; 3 + 19
|
||||
@ -893,7 +893,7 @@ tickident page, 8
|
||||
.macro op_tick_46 page ; pattern repeats from op_tick_28
|
||||
;4+(4+2+4+5+4+5+4+5+4+5+4)+3+20
|
||||
.ident (.concat ("op_tick_46_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -904,7 +904,7 @@ tickident page, 8
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_20"))
|
||||
.endmacro
|
||||
@ -912,7 +912,7 @@ tickident page, 8
|
||||
.macro op_tick_48 page ; pattern repeats from op_tick_30
|
||||
;4+(4+4+5+4+5+4+5+4+5+4+4)+3+3+15
|
||||
.ident (.concat ("op_tick_48_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -924,7 +924,7 @@ tickident page, 8
|
||||
STA page << 8,Y ; 5
|
||||
|
||||
LDA WDATA ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
STA zpdummy ; 3
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_15")) ; 3 + 15
|
||||
@ -933,7 +933,7 @@ tickident page, 8
|
||||
.macro op_tick_50 page ; pattern repeats from op_tick_32
|
||||
;4+(4+4+5+4+5+4+5+4+5+4+2+4)+3+16
|
||||
.ident (.concat ("op_tick_50_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -946,7 +946,7 @@ tickident page, 8
|
||||
|
||||
LDA WDATA ; 4
|
||||
NOP ; 2
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_16"))
|
||||
.endmacro
|
||||
@ -954,7 +954,7 @@ tickident page, 8
|
||||
.macro op_tick_52 page ; pattern repeats from op_tick_34
|
||||
;4+(4+4+5+4+5+4+5+4+5+4+4+4)+2+3+12
|
||||
.ident (.concat ("op_tick_52_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -967,7 +967,7 @@ tickident page, 8
|
||||
|
||||
LDA WDATA ; 4
|
||||
STA .ident (.concat ("_op_tick_6_page_", .string(page), "_jmp"))+2 ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
NOP ; 2
|
||||
|
||||
JMP .ident(.concat("_op_tick_page_", .string(page), "_tail_12"))
|
||||
@ -976,7 +976,7 @@ tickident page, 8
|
||||
.macro op_tick_54 page ; pattern repeats from op_tick_36
|
||||
; 4 + (4+4+5+4+5+4+5+3+3+4+5+4+4)+4+4+4+3
|
||||
.ident (.concat ("op_tick_54_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -992,7 +992,7 @@ tickident page, 8
|
||||
STA zpdummy ; 3
|
||||
STA zpdummy ; 3
|
||||
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
; used >3 pad cycles between tick pair; can't branch to tail
|
||||
STA @D+2 ; 4
|
||||
@ -1005,7 +1005,7 @@ tickident page, 8
|
||||
.macro op_tick_56 page
|
||||
; 4+(4+4+5+4+5+4+5+4+5+4+4+4+4)+2+4+4+3
|
||||
.ident (.concat ("op_tick_56_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -1020,7 +1020,7 @@ tickident page, 8
|
||||
STA @D+2 ; 4
|
||||
|
||||
STA dummy ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
; used >3 pad cycles between tick pair; can't branch to tail
|
||||
NOP ; 2
|
||||
@ -1034,7 +1034,7 @@ tickident page, 8
|
||||
.macro op_tick_58 page ; pattern repeats from op_tick_40
|
||||
;4+(4+4+5+4+5+4+5+4+5+4+4+3+3+4)+4+4+3
|
||||
.ident (.concat ("op_tick_58_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -1050,7 +1050,7 @@ tickident page, 8
|
||||
|
||||
STA zpdummy ; 3
|
||||
STA zpdummy ; 3
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
; used >3 pad cycles between tick pair; can't branch to tail
|
||||
LDA WDATA ; 4
|
||||
@ -1062,7 +1062,7 @@ tickident page, 8
|
||||
.macro op_tick_60 page
|
||||
; 4+(4+4+5+4+5+4+5+4+5+4+4+4+4+4)+2+4+3
|
||||
.ident (.concat ("op_tick_60_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -1079,7 +1079,7 @@ tickident page, 8
|
||||
LDA WDATA ; 4
|
||||
|
||||
STA dummy ; 4
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
; used >3 pad cycles between tick pair; can't branch to tail
|
||||
NOP ; 2
|
||||
@ -1091,7 +1091,7 @@ tickident page, 8
|
||||
.macro op_tick_62 page
|
||||
;4+(4+4+5+4+5+4+5+4+5+4+4+4+3+3+4)+4+3
|
||||
.ident (.concat ("op_tick_62_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -1108,7 +1108,7 @@ tickident page, 8
|
||||
|
||||
STA zpdummy ; 3
|
||||
STA zpdummy ; 3
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
; used >3 pad cycles between tick pair; can't branch to tail
|
||||
STA @D+1 ; 4
|
||||
@ -1119,7 +1119,7 @@ tickident page, 8
|
||||
.macro op_tick_64 page
|
||||
;4+(4+4+5+4+5+4+5+4+5+4+4+4+4+4+4)+2+3
|
||||
.ident (.concat ("op_tick_64_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -1137,7 +1137,7 @@ tickident page, 8
|
||||
STA @D+1 ; 4
|
||||
STA dummy ; 4
|
||||
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
NOP ; 2
|
||||
|
||||
@D:
|
||||
@ -1147,7 +1147,7 @@ tickident page, 8
|
||||
.macro op_tick_66 page ; pattern repeats from op_tick_8
|
||||
; 4+(4+4+5+4+5+4+5+4+5+4+4+4+3+4+3+4)+3
|
||||
.ident (.concat ("op_tick_66_page_", .string(page))):
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
LDA WDATA ; 4
|
||||
LDY WDATA ; 4
|
||||
STA page << 8,Y ; 5
|
||||
@ -1166,7 +1166,7 @@ tickident page, 8
|
||||
|
||||
STA zpdummy ; 3
|
||||
STA zpdummy ; 3
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
@D:
|
||||
JMP op_nop ; 3
|
||||
@ -1293,7 +1293,7 @@ op_terminate:
|
||||
; the last 4 bytes in a 2K "TCP frame". i.e. we can assume that we need to consume
|
||||
; exactly 2K from the W5100 socket buffer.
|
||||
op_ack:
|
||||
BIT TICK ; 4
|
||||
STA TICK ; 4
|
||||
|
||||
; allow flip-flopping the PAGE1/PAGE2 soft switches to steer writes to MAIN/AUX screens
|
||||
; actually this allows touching any $C0XX soft-switch, in case that is useful somehow
|
||||
@ -1314,7 +1314,7 @@ op_ack:
|
||||
LDX #<S0RXRD ; 2
|
||||
STX WADRL ; 4
|
||||
|
||||
BIT TICK ; 4 (36)
|
||||
STA TICK ; 4 (36)
|
||||
|
||||
LDA WDATA ; 4 Read high byte
|
||||
; No need to read low byte since it's guaranteed to be 0 since we're at the end of a 2K frame.
|
||||
@ -1339,7 +1339,7 @@ op_ack:
|
||||
; - used as the low byte for resetting the W5100 address pointer when we're ready to start processing more data
|
||||
LDX #$00 ; 2 restore invariant for dispatch loop
|
||||
|
||||
JMP checkrecv ; 3 (37 with following BIT TICK)
|
||||
JMP checkrecv ; 3 (37 with following STA TICK)
|
||||
|
||||
; Quit to ProDOS
|
||||
exit:
|
||||
|
Loading…
Reference in New Issue
Block a user