mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-26 11:30:12 +00:00
8139c2520c
mostly using lzsa compression
158 lines
1.8 KiB
ArmAsm
158 lines
1.8 KiB
ArmAsm
|
|
game_over:
|
|
lda #$a0
|
|
jsr clear_top_a
|
|
|
|
bit SET_TEXT
|
|
|
|
lda #10
|
|
sta CV
|
|
lda #15
|
|
sta CH
|
|
|
|
lda #>(game_over_man)
|
|
sta OUTH
|
|
lda #<(game_over_man)
|
|
sta OUTL
|
|
|
|
jsr move_and_print
|
|
|
|
jsr page_flip
|
|
|
|
hang_forever:
|
|
jmp hang_forever
|
|
|
|
rts
|
|
|
|
game_over_man:
|
|
.asciiz "GAME OVER"
|
|
|
|
show_map:
|
|
|
|
lda DRAW_PAGE
|
|
clc
|
|
adc #$4 ; page to load at?
|
|
; FIXME: really need to load at 0xc and
|
|
; copy
|
|
pha
|
|
|
|
lda #<(map_lzsa)
|
|
sta getsrc_smc+1
|
|
lda #>(map_lzsa)
|
|
sta getsrc_smc+2
|
|
|
|
pla
|
|
|
|
jsr decompress_lzsa2_fast
|
|
|
|
|
|
; basic_plot(8+((map_x&0x3)*6)+(tfv_x/6),
|
|
; 8+(((map_x&0xc)>>2)*6)+(tfv_y/6))
|
|
|
|
; horizontal
|
|
|
|
lda MAP_X
|
|
and #3
|
|
asl
|
|
sta TEMP
|
|
asl
|
|
clc
|
|
adc TEMP ; ( MAP_X & 3 ) * 6
|
|
sta TEMP
|
|
|
|
lda TFV_X
|
|
lsr
|
|
lsr
|
|
lsr ; TFV/8
|
|
|
|
adc TEMP
|
|
adc #8
|
|
sta CH
|
|
|
|
; vertical
|
|
|
|
lda MAP_X
|
|
and #$c
|
|
lsr
|
|
sta TEMP
|
|
asl
|
|
clc
|
|
adc TEMP ; ( MAP_X & C ) * 6
|
|
sta TEMP
|
|
|
|
lda TFV_Y
|
|
lsr
|
|
lsr
|
|
lsr ; TFV/8
|
|
|
|
adc TEMP
|
|
adc #8
|
|
lsr ; divide by 2 as htab_vtab multiplies
|
|
sta CV
|
|
|
|
jsr htab_vtab
|
|
lda #$19 ; red/orange
|
|
ldy #0
|
|
sta (BASL),Y
|
|
|
|
|
|
jsr page_flip
|
|
|
|
jsr wait_until_keypressed
|
|
|
|
rts
|
|
|
|
|
|
|
|
print_help:
|
|
lda #$a0
|
|
jsr clear_top_a
|
|
|
|
bit SET_TEXT
|
|
|
|
lda #1
|
|
sta CV
|
|
lda #18
|
|
sta CH
|
|
|
|
lda #>(help1)
|
|
sta OUTH
|
|
lda #<(help1)
|
|
sta OUTL
|
|
|
|
jsr move_and_print
|
|
jsr point_to_end_string
|
|
|
|
lda #3
|
|
sta CV
|
|
lda #4
|
|
sta CH
|
|
|
|
help_loop:
|
|
jsr move_and_print
|
|
jsr point_to_end_string
|
|
inc CV
|
|
|
|
lda #11
|
|
cmp CV
|
|
bne help_loop
|
|
|
|
jsr page_flip
|
|
|
|
jsr wait_until_keypressed
|
|
|
|
bit SET_GR ; set graphics
|
|
|
|
rts
|
|
|
|
help1: .asciiz "HELP"
|
|
help2: .asciiz "ARROWS - MOVE"
|
|
help3: .asciiz "W/A/S/D - MOVE"
|
|
help4: .asciiz "Z/X - SPEED UP / SLOW DOWN"
|
|
help5: .asciiz "SPACE - STOP"
|
|
help6: .asciiz "RETURN - LAND / ENTER / ACTION"
|
|
help7: .asciiz "I - INVENTORY"
|
|
help8: .asciiz "M - MAP"
|
|
help9: .asciiz "ESC - QUIT"
|
|
|