mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-03-04 04:30:18 +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
|
TFV: tfv.o
|
||||||
ld65 -o TFV tfv.o -C ./apple2_1000.inc
|
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
|
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
|
jsr title_screen
|
||||||
|
|
||||||
enter_name:
|
;======================
|
||||||
|
; get name
|
||||||
|
;======================
|
||||||
|
|
||||||
jsr TEXT
|
jsr enter_name
|
||||||
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
|
|
||||||
|
|
||||||
;=====================
|
;=====================
|
||||||
; Start the game
|
; Flying
|
||||||
;=====================
|
;=====================
|
||||||
|
|
||||||
|
jsr flying_start
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;=====================
|
||||||
|
; All finished
|
||||||
|
;=====================
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
lda #$4
|
lda #$4
|
||||||
@ -207,6 +82,8 @@ exit:
|
|||||||
.include "opener.s"
|
.include "opener.s"
|
||||||
.include "utils.s"
|
.include "utils.s"
|
||||||
.include "title.s"
|
.include "title.s"
|
||||||
|
.include "textentry.s"
|
||||||
|
.include "flying.s"
|
||||||
|
|
||||||
;===============================================
|
;===============================================
|
||||||
; Variables
|
; 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