dos33fsprogs/tfv/tfv_info.s
Vince Weaver 8139c2520c tfv: update to match more modern vmw games
mostly using lzsa compression
2020-09-27 22:03:01 -04:00

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"