mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-27 00:29:35 +00:00
tfv: split files up to be more like C version
This commit is contained in:
parent
05ba5f99eb
commit
38bffc0caf
@ -48,7 +48,7 @@ backgrounds.inc: $(PNG2RLE) \
|
||||
TFV: tfv.o
|
||||
ld65 -o TFV tfv.o -C ./apple2_1000.inc
|
||||
|
||||
tfv.o: tfv.s opener.s title.s utils.s backgrounds.inc zp.inc
|
||||
tfv.o: tfv.s flying.s opener.s title.s textentry.s utils.s backgrounds.inc zp.inc
|
||||
ca65 -o tfv.o tfv.s -l tfv.lst
|
||||
|
||||
|
||||
|
45
tfv/flying.s
Normal file
45
tfv/flying.s
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
flying_start:
|
||||
|
||||
jsr set_gr_page0
|
||||
|
||||
flying_loop:
|
||||
jsr gr_copy_to_current
|
||||
|
||||
jsr put_sprite
|
||||
|
||||
jsr wait_until_keypressed
|
||||
|
||||
lda LASTKEY
|
||||
|
||||
cmp #('Q')
|
||||
bne skipskip
|
||||
rts
|
||||
skipskip:
|
||||
|
||||
cmp #('I')
|
||||
bne check_down
|
||||
dec YPOS
|
||||
dec YPOS
|
||||
|
||||
check_down:
|
||||
cmp #('M')
|
||||
bne check_left
|
||||
inc YPOS
|
||||
inc YPOS
|
||||
|
||||
check_left:
|
||||
cmp #('J')
|
||||
bne check_right
|
||||
dec XPOS
|
||||
|
||||
check_right:
|
||||
cmp #('K')
|
||||
bne check_done
|
||||
inc XPOS
|
||||
|
||||
check_done:
|
||||
jmp flying_loop
|
||||
|
||||
|
||||
|
87
tfv/textentry.s
Normal file
87
tfv/textentry.s
Normal file
@ -0,0 +1,87 @@
|
||||
enter_name:
|
||||
|
||||
jsr TEXT
|
||||
jsr HOME
|
||||
|
||||
lda #>(enter_name_string)
|
||||
sta OUTH
|
||||
lda #<(enter_name_string)
|
||||
sta OUTL
|
||||
|
||||
jsr print_string
|
||||
|
||||
; zero out name
|
||||
|
||||
lda #<(name)
|
||||
sta MEMPTRL
|
||||
sta NAMEL
|
||||
lda #>(name)
|
||||
sta MEMPTRH
|
||||
sta NAMEH
|
||||
lda #0
|
||||
ldx #8
|
||||
jsr memset
|
||||
|
||||
name_loop:
|
||||
|
||||
jsr NORMAL
|
||||
|
||||
lda #11
|
||||
sta CH ; HTAB 12
|
||||
|
||||
lda #2
|
||||
jsr TABV ; VTAB 3
|
||||
|
||||
ldy #0
|
||||
sty NAMEX
|
||||
|
||||
name_line:
|
||||
cpy NAMEX
|
||||
bne name_notx
|
||||
lda #'+'
|
||||
jmp name_next
|
||||
|
||||
name_notx:
|
||||
lda NAMEL,Y
|
||||
beq name_zero
|
||||
ora #$80
|
||||
bne name_next
|
||||
|
||||
name_zero:
|
||||
lda #('_'+$80)
|
||||
name_next:
|
||||
jsr COUT
|
||||
lda #(' '+$80)
|
||||
jsr COUT
|
||||
iny
|
||||
cpy #8
|
||||
bne name_line
|
||||
|
||||
lda #7
|
||||
sta CV
|
||||
|
||||
lda #('@'+$80)
|
||||
sta CHAR
|
||||
|
||||
print_letters_loop:
|
||||
lda #11
|
||||
sta CH ; HTAB 12
|
||||
jsr VTAB
|
||||
|
||||
ldy #0
|
||||
|
||||
print_letters_inner_loop:
|
||||
lda CHAR
|
||||
jsr COUT
|
||||
inc CHAR
|
||||
lda #(' '+$80)
|
||||
jsr COUT
|
||||
iny
|
||||
|
||||
cpy #$8
|
||||
bne print_letters_inner_loop
|
||||
|
||||
jsr wait_until_keypressed
|
||||
|
||||
rts
|
||||
|
145
tfv/tfv.s
145
tfv/tfv.s
@ -43,147 +43,22 @@
|
||||
|
||||
jsr title_screen
|
||||
|
||||
enter_name:
|
||||
;======================
|
||||
; get name
|
||||
;======================
|
||||
|
||||
jsr TEXT
|
||||
jsr HOME
|
||||
|
||||
lda #>(enter_name_string)
|
||||
sta OUTH
|
||||
lda #<(enter_name_string)
|
||||
sta OUTL
|
||||
|
||||
jsr print_string
|
||||
|
||||
; zero out name
|
||||
|
||||
lda #<(name)
|
||||
sta MEMPTRL
|
||||
sta NAMEL
|
||||
lda #>(name)
|
||||
sta MEMPTRH
|
||||
sta NAMEH
|
||||
lda #0
|
||||
ldx #8
|
||||
jsr memset
|
||||
|
||||
name_loop:
|
||||
|
||||
jsr NORMAL
|
||||
|
||||
lda #11
|
||||
sta CH ; HTAB 12
|
||||
|
||||
lda #2
|
||||
jsr TABV ; VTAB 3
|
||||
|
||||
ldy #0
|
||||
sty NAMEX
|
||||
|
||||
name_line:
|
||||
cpy NAMEX
|
||||
bne name_notx
|
||||
lda #'+'
|
||||
jmp name_next
|
||||
|
||||
name_notx:
|
||||
lda NAMEL,Y
|
||||
beq name_zero
|
||||
ora #$80
|
||||
bne name_next
|
||||
|
||||
name_zero:
|
||||
lda #('_'+$80)
|
||||
name_next:
|
||||
jsr COUT
|
||||
lda #(' '+$80)
|
||||
jsr COUT
|
||||
iny
|
||||
cpy #8
|
||||
bne name_line
|
||||
|
||||
lda #7
|
||||
sta CV
|
||||
|
||||
lda #('@'+$80)
|
||||
sta CHAR
|
||||
|
||||
print_letters_loop:
|
||||
lda #11
|
||||
sta CH ; HTAB 12
|
||||
jsr VTAB
|
||||
|
||||
ldy #0
|
||||
|
||||
print_letters_inner_loop:
|
||||
lda CHAR
|
||||
jsr COUT
|
||||
inc CHAR
|
||||
lda #(' '+$80)
|
||||
jsr COUT
|
||||
iny
|
||||
|
||||
cpy #$8
|
||||
bne print_letters_inner_loop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
jsr wait_until_keypressed
|
||||
jsr enter_name
|
||||
|
||||
;=====================
|
||||
; Start the game
|
||||
; Flying
|
||||
;=====================
|
||||
|
||||
|
||||
flying_start:
|
||||
|
||||
jsr set_gr_page0
|
||||
|
||||
flying_loop:
|
||||
jsr gr_copy_to_current
|
||||
|
||||
jsr put_sprite
|
||||
|
||||
jsr wait_until_keypressed
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
lda LASTKEY
|
||||
|
||||
cmp #('Q')
|
||||
beq exit
|
||||
|
||||
cmp #('I')
|
||||
bne check_down
|
||||
dec YPOS
|
||||
dec YPOS
|
||||
|
||||
check_down:
|
||||
cmp #('M')
|
||||
bne check_left
|
||||
inc YPOS
|
||||
inc YPOS
|
||||
|
||||
check_left:
|
||||
cmp #('J')
|
||||
bne check_right
|
||||
dec XPOS
|
||||
|
||||
check_right:
|
||||
cmp #('K')
|
||||
bne check_done
|
||||
inc XPOS
|
||||
|
||||
check_done:
|
||||
jmp flying_loop
|
||||
|
||||
jsr flying_start
|
||||
|
||||
|
||||
;=====================
|
||||
; All finished
|
||||
;=====================
|
||||
exit:
|
||||
|
||||
lda #$4
|
||||
@ -207,6 +82,8 @@ exit:
|
||||
.include "opener.s"
|
||||
.include "utils.s"
|
||||
.include "title.s"
|
||||
.include "textentry.s"
|
||||
.include "flying.s"
|
||||
|
||||
;===============================================
|
||||
; Variables
|
||||
|
47
tfv/title.s
Normal file
47
tfv/title.s
Normal file
@ -0,0 +1,47 @@
|
||||
; Title Screen
|
||||
|
||||
title_screen:
|
||||
|
||||
;===========================
|
||||
; Clear both bottoms
|
||||
|
||||
lda #$0
|
||||
sta DRAW_PAGE
|
||||
jsr clear_bottom
|
||||
|
||||
lda #$4
|
||||
sta DRAW_PAGE
|
||||
jsr clear_bottom
|
||||
|
||||
;=============================
|
||||
; Load title_rle
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image off-screen 0xc00
|
||||
|
||||
lda #>(title_rle)
|
||||
sta GBASH
|
||||
lda #<(title_rle)
|
||||
sta GBASL
|
||||
jsr load_rle_gr
|
||||
|
||||
;=================================
|
||||
; copy to both pages
|
||||
|
||||
jsr gr_copy_to_current
|
||||
jsr page_flip
|
||||
jsr gr_copy_to_current
|
||||
|
||||
lda #20
|
||||
sta YPOS
|
||||
lda #20
|
||||
sta XPOS
|
||||
|
||||
;=================================
|
||||
; wait for keypress
|
||||
|
||||
jsr wait_until_keypressed
|
||||
|
||||
rts
|
Loading…
x
Reference in New Issue
Block a user