mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-19 15:30:08 +00:00
keen: more work on mars map
This commit is contained in:
parent
e002d2e982
commit
d34a2131a9
@ -193,12 +193,12 @@ draw_keen:
|
|||||||
|
|
||||||
lda KEEN_Y
|
lda KEEN_Y
|
||||||
and #1
|
and #1
|
||||||
bne draw_keen_odd
|
beq draw_keen_even
|
||||||
|
|
||||||
draw_keen_odd:
|
draw_keen_odd:
|
||||||
|
|
||||||
|
; calculate address of KEEN_Y/2
|
||||||
|
|
||||||
draw_keen_even:
|
|
||||||
lda KEEN_Y
|
lda KEEN_Y
|
||||||
and #$FE
|
and #$FE
|
||||||
tay
|
tay
|
||||||
@ -210,9 +210,68 @@ draw_keen_even:
|
|||||||
sta OUTH
|
sta OUTH
|
||||||
|
|
||||||
ldy KEEN_X
|
ldy KEEN_X
|
||||||
|
|
||||||
|
lda (OUTL),Y
|
||||||
|
and #$0f
|
||||||
|
ora #$D0
|
||||||
|
sta (OUTL),Y
|
||||||
|
|
||||||
|
lda KEEN_Y
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
|
||||||
|
and #$FE
|
||||||
|
tay
|
||||||
|
lda gr_offsets,Y
|
||||||
|
sta OUTL
|
||||||
|
lda gr_offsets+1,Y
|
||||||
|
clc
|
||||||
|
adc DRAW_PAGE
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
ldy KEEN_X
|
||||||
|
|
||||||
|
lda #$23
|
||||||
|
sta (OUTL),Y
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
draw_keen_even:
|
||||||
|
|
||||||
|
lda KEEN_Y
|
||||||
|
; and #$FE ; no need to mask, know bottom bit is 0
|
||||||
|
tay
|
||||||
|
lda gr_offsets,Y
|
||||||
|
sta OUTL
|
||||||
|
lda gr_offsets+1,Y
|
||||||
|
clc
|
||||||
|
adc DRAW_PAGE
|
||||||
|
sta OUTH
|
||||||
|
ldy KEEN_X ; adjust with Xpos
|
||||||
|
|
||||||
lda #$3D
|
lda #$3D
|
||||||
sta (OUTL),Y
|
sta (OUTL),Y
|
||||||
|
|
||||||
|
lda KEEN_Y
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
; and #$FE ; no need to mask
|
||||||
|
tay
|
||||||
|
lda gr_offsets,Y
|
||||||
|
sta OUTL
|
||||||
|
lda gr_offsets+1,Y
|
||||||
|
clc
|
||||||
|
adc DRAW_PAGE
|
||||||
|
sta OUTH
|
||||||
|
ldy KEEN_X ; adjust with Xpos
|
||||||
|
|
||||||
|
lda (OUTL),Y
|
||||||
|
and #$F0
|
||||||
|
ora #$02
|
||||||
|
sta (OUTL),Y
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
@ -328,12 +387,11 @@ check_left:
|
|||||||
bne check_right
|
bne check_right
|
||||||
|
|
||||||
left_pressed:
|
left_pressed:
|
||||||
; lda KEEN_DIRECTION
|
ldy KEEN_X
|
||||||
; cmp #$ff ; check if facing left
|
dey
|
||||||
; bne face_left
|
ldx KEEN_Y
|
||||||
|
jsr check_valid_feet
|
||||||
; lda #1
|
bcc done_left_pressed
|
||||||
; sta KEEN_WALKING
|
|
||||||
dec KEEN_X
|
dec KEEN_X
|
||||||
done_left_pressed:
|
done_left_pressed:
|
||||||
jmp done_keypress
|
jmp done_keypress
|
||||||
@ -345,6 +403,11 @@ check_right:
|
|||||||
bne check_up
|
bne check_up
|
||||||
|
|
||||||
right_pressed:
|
right_pressed:
|
||||||
|
ldy KEEN_X
|
||||||
|
iny
|
||||||
|
ldx KEEN_Y
|
||||||
|
jsr check_valid_feet
|
||||||
|
bcc done_right_pressed
|
||||||
inc KEEN_X
|
inc KEEN_X
|
||||||
done_right_pressed:
|
done_right_pressed:
|
||||||
jmp done_keypress
|
jmp done_keypress
|
||||||
@ -356,6 +419,11 @@ check_up:
|
|||||||
bne check_down
|
bne check_down
|
||||||
|
|
||||||
up_pressed:
|
up_pressed:
|
||||||
|
ldy KEEN_X
|
||||||
|
ldx KEEN_Y
|
||||||
|
dex
|
||||||
|
jsr check_valid_feet
|
||||||
|
bcc done_up_pressed
|
||||||
dec KEEN_Y
|
dec KEEN_Y
|
||||||
done_up_pressed:
|
done_up_pressed:
|
||||||
jmp done_keypress
|
jmp done_keypress
|
||||||
@ -366,7 +434,11 @@ check_down:
|
|||||||
cmp #$0A
|
cmp #$0A
|
||||||
bne check_space
|
bne check_space
|
||||||
down_pressed:
|
down_pressed:
|
||||||
|
ldy KEEN_X
|
||||||
|
ldx KEEN_Y
|
||||||
|
inx
|
||||||
|
jsr check_valid_feet
|
||||||
|
bcc done_up_pressed
|
||||||
inc KEEN_Y
|
inc KEEN_Y
|
||||||
done_down_pressed:
|
done_down_pressed:
|
||||||
jmp done_keypress
|
jmp done_keypress
|
||||||
@ -408,3 +480,37 @@ done_keypress:
|
|||||||
no_keypress:
|
no_keypress:
|
||||||
bit KEYRESET
|
bit KEYRESET
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; essentially if SCRN(Y,X+2)=9
|
||||||
|
check_valid_feet:
|
||||||
|
txa
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
and #$FE
|
||||||
|
tax
|
||||||
|
lda gr_offsets,X
|
||||||
|
sta OUTL
|
||||||
|
lda gr_offsets+1,X
|
||||||
|
clc
|
||||||
|
adc #$8 ; into $C00 page (bg lives here)
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
lda (OUTL),Y
|
||||||
|
and #$F0
|
||||||
|
cmp #$90
|
||||||
|
beq feet_valid
|
||||||
|
bne feet_invalid
|
||||||
|
|
||||||
|
feet_valid:
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
feet_invalid:
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user