74 lines
1.3 KiB
NASM
74 lines
1.3 KiB
NASM
org $aa8000
|
|
db $4f, $52 ;OR
|
|
OWShuffleMode:
|
|
dw 1
|
|
OWShuffleFlags:
|
|
dw 0
|
|
OWShuffleReserved:
|
|
dw 0
|
|
|
|
|
|
|
|
;Hooks
|
|
org $02a999
|
|
jsl OWEdgeTransition : nop #4 ;LDA $02A4E3,X : ORA $7EF3CA
|
|
|
|
;Code
|
|
org $aaa000
|
|
OWEdgeTransition:
|
|
{
|
|
;Assume you're at links house = $2c
|
|
;transitioning right will result in X = $2d
|
|
;transitioning left will result in X = $2b
|
|
;up X = $24
|
|
;down X = $34
|
|
|
|
;compares X to determine direction of edge transition
|
|
cpx $8a : bcc .upOrLeft
|
|
dex : cpx $8a : bne .downEdge
|
|
bra .rightEdge
|
|
.upOrLeft
|
|
inx : cpx $8a : bne .upEdge
|
|
bra .leftEdge
|
|
|
|
;sets new OWID and coords
|
|
.downEdge
|
|
dec $21 : dec $21
|
|
dec $e7 : dec $e7
|
|
dec $e9 : dec $e9
|
|
dec $611 : dec $611
|
|
dec $613 : dec $613
|
|
lda $700 : sec : sbc #$10 : sta $700
|
|
bra .return
|
|
|
|
.rightEdge
|
|
dec $23 : dec $23
|
|
dec $e1 : dec $e1
|
|
dec $e3 : dec $e3
|
|
dec $615 : dec $615
|
|
dec $617 : dec $617
|
|
dec $700 : dec $700
|
|
bra .return
|
|
|
|
.upEdge
|
|
inc $21 : inc $21
|
|
inc $e7 : inc $e7
|
|
inc $e9 : inc $e9
|
|
inc $611 : inc $611
|
|
inc $613 : inc $613
|
|
lda $700 : clc : adc #$10 : sta $700
|
|
bra .return
|
|
|
|
.leftEdge
|
|
inc $23 : inc $23
|
|
inc $e1 : inc $e1
|
|
inc $e3 : inc $e3
|
|
inc $615 : inc $615
|
|
inc $617 : inc $617
|
|
inc $700 : inc $700
|
|
|
|
.return
|
|
;Infinite loop at Link's
|
|
lda #$2c
|
|
rtl
|
|
} |