mirror of
https://github.com/fumiama/c64-snake.git
synced 2026-06-05 08:40:26 +08:00
main框架基本完成
This commit is contained in:
22
head.asm
Normal file
22
head.asm
Normal file
@@ -0,0 +1,22 @@
|
||||
.alias cblk $66 ; 边框
|
||||
.alias csnk $a0 ; 像素
|
||||
.alias csps $20 ; 空白
|
||||
|
||||
.alias go_u $55 ; 上
|
||||
.alias go_d $5f ; 下
|
||||
.alias go_l $1d ; 左
|
||||
.alias go_r $32 ; 右
|
||||
.alias st_g $a0 ; 开始/暂停
|
||||
.alias ed_g $20 ; 结束
|
||||
|
||||
.data zp
|
||||
.space d 1 ; 方向 值定义如上
|
||||
.space c 1 ; 🐍长度 最大255 最小0
|
||||
.space s 2 ; 得分 小端序
|
||||
|
||||
.data
|
||||
.org $0400
|
||||
.space title 40
|
||||
.space field 960 ; 蛇所在屏幕内存区
|
||||
|
||||
.text
|
||||
33
main.asm
33
main.asm
@@ -1,21 +1,7 @@
|
||||
.outfile "snake.prg"
|
||||
.require "platform/c64_0.oph"
|
||||
.require "platform/c64kernal.oph"
|
||||
|
||||
.alias cblk $a6
|
||||
|
||||
.alias go_u $55 ; 上
|
||||
.alias go_d $5f ; 下
|
||||
.alias go_l $1d ; 左
|
||||
.alias go_r $32 ; 右
|
||||
.alias st_g $a0 ; 开始/暂停
|
||||
.alias ed_g $20 ; 结束
|
||||
|
||||
.data zp
|
||||
.space d 1 ; 方向 值定义如上
|
||||
.space c 1 ; 🐍长度 最大255 最小0
|
||||
.space s 2 ; 得分 小端序
|
||||
.text
|
||||
.require "head.asm"
|
||||
|
||||
main:
|
||||
.scope
|
||||
@@ -28,21 +14,26 @@ main:
|
||||
; init 初始化界面、变量
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
.macro init
|
||||
lda #147 ;清屏
|
||||
lda #147 ; 清屏
|
||||
jsr chrout
|
||||
lda #$ff
|
||||
lda #$00
|
||||
sta s
|
||||
lda #$ff
|
||||
sta s + 1
|
||||
jsr printscore
|
||||
lda #$00
|
||||
sta s + 1 ; 初始化分数为0
|
||||
jsr printscore ; 打印分数
|
||||
lda #1
|
||||
sta field + 11*38 + 19 ; 初始化蛇位置
|
||||
sta c ; 初始化蛇长为1
|
||||
jsr printfield ; 打印蛇,包括边框
|
||||
.macend
|
||||
|
||||
.require "printscore.asm"
|
||||
.require "print16.asm"
|
||||
.require "printfield.asm"
|
||||
.require "print.asm"
|
||||
|
||||
.checkpc $A000 ; text段边界
|
||||
.data zp ; 零页段边界
|
||||
.data zp ; 零页段边界
|
||||
.checkpc $80
|
||||
.data
|
||||
.checkpc $D000 ; data段边界
|
||||
42
printfield.asm
Normal file
42
printfield.asm
Normal file
@@ -0,0 +1,42 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; printfield 打印蛇,包括边框
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
printfield:
|
||||
.scope
|
||||
.data zp
|
||||
.space _ptr 2
|
||||
.text
|
||||
ldx #23 ; i代表行数,不含边框
|
||||
lda #<field ; 取地址低8位
|
||||
sta _ptr
|
||||
lda #>field ; 取地址高8位
|
||||
sta _ptr + 1
|
||||
ldy #0
|
||||
* lda #cblk
|
||||
sta (_ptr), y ; 打印左边框
|
||||
lda #39
|
||||
jsr _addptr
|
||||
lda #cblk
|
||||
sta (_ptr), y ; 打印右边框
|
||||
lda #1
|
||||
jsr _addptr
|
||||
dex
|
||||
bne -
|
||||
lda #cblk
|
||||
ldy #40
|
||||
dec _ptr
|
||||
* sta (_ptr), y ; 打印底边
|
||||
dey
|
||||
bne -
|
||||
ldx #0
|
||||
jsr plot
|
||||
rts
|
||||
|
||||
_addptr:
|
||||
clc
|
||||
adc _ptr
|
||||
bcc +
|
||||
inc _ptr + 1
|
||||
* sta _ptr
|
||||
rts
|
||||
.scend
|
||||
Reference in New Issue
Block a user