From e127bff706c78cee1ca4b093ec97af7828d2622c Mon Sep 17 00:00:00 2001 From: fumiama Date: Thu, 1 Apr 2021 00:35:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BF=AE=E5=A4=8Dscore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.asm | 8 ++++---- print16.asm | 29 ++++++++++++++++++++--------- printbyte.asm | 4 ++++ printscore.asm | 2 +- snake.prg | Bin 276 -> 278 bytes 5 files changed, 29 insertions(+), 14 deletions(-) diff --git a/main.asm b/main.asm index 5b2985a..440c64d 100644 --- a/main.asm +++ b/main.asm @@ -2,7 +2,7 @@ .require "platform/c64_0.oph" .require "platform/c64kernal.oph" -.alias cblk $bf +.alias cblk $a6 .alias go_u $55 ; 上 .alias go_d $5f ; 下 @@ -30,9 +30,9 @@ main: .macro init lda #147 ;清屏 jsr chrout - lda #$aa - ; sta s - sta s + 1 + lda #$a8 + sta s + ;sta s + 1 jsr printscore .macend diff --git a/print16.asm b/print16.asm index b8d4747..86520a5 100644 --- a/print16.asm +++ b/print16.asm @@ -2,7 +2,8 @@ ; print16 从内存打印16位int(十进制5位),空位补0 ; 以BE方式存储以便打印 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -.macro print16 +print16: +.scope .data zp .space _num 6 .text @@ -16,8 +17,8 @@ sta _num, x bne - - `splitbyte _1, 4 - `splitbyte _1 + 1, 2 + `splitbyte s, 4 + `splitbyte s + 1, 2 `carry `print _num @@ -29,9 +30,13 @@ mod10: lda _num, y ldx #$ff -* inx clc - sbc #10 +* inx + ;jsr printbyte + sbc #9 + ;jsr printbyte + ;dey + ;rts bcc - clc adc #$3a @@ -41,20 +46,22 @@ mod10: adc _num, y sta _num, y rts -.macend +.scend .macro splitbyte lda _1 - jsr printbyte sta _num + _2 + ;jsr printbyte lsr lsr lsr lsr sta _num + _2 - 1 + ;jsr printbyte lda #$0f - ora _num + _2 + and _num + _2 sta _num + _2 + ;jsr printbyte .macend .macro carry @@ -65,9 +72,13 @@ mod10: * jsr mod10 ; dey bne - + lda #$30 + clc + adc _num + sta _num pla tay .macend -.require "printbyte.asm" \ No newline at end of file + .require "printbyte.asm" \ No newline at end of file diff --git a/printbyte.asm b/printbyte.asm index 30ebd2e..b9a8c8c 100644 --- a/printbyte.asm +++ b/printbyte.asm @@ -2,6 +2,7 @@ .space _na 1 ; a的临时存放处 .text printbyte: + pha sta _na txa pha @@ -12,6 +13,9 @@ printbyte: jsr chrout ; putchar(a) dex ; x-- bne - ; if(x != 0) goto 上个星号 + lda #$20 + jsr chrout pla tax + pla rts \ No newline at end of file diff --git a/printscore.asm b/printscore.asm index 3e670df..f418c3a 100644 --- a/printscore.asm +++ b/printscore.asm @@ -9,7 +9,7 @@ printscore: dex bne - `print score_str - `print16 s + jsr print16 ldx #15 * jsr chrout dex diff --git a/snake.prg b/snake.prg index 428e6bb03828a1f486bc44d85f3e04fd19e6b3b6..6e1813b98f73e3babc0354e8554806f862c37db3 100644 GIT binary patch delta 206 zcmbQjG>vIOK>dnV7KJd5gq6z{@he>Vf9k?7j~N~-D;IDmuyAIq$WW-~fQcsrJNpN@ zGI(@(tYlckc4{iyh2KkATDiP{pp|nazbaQN*HYG24lth`$meL~nBlR2Md2LBh2JX; zBvRR0*)mpu3};)w05LpcRYrpQPBw-`|0Q0$GD{_ lvC@EzCzAo}wl6CcfHX*3D{l+m0)~yeAJ~8bCoX(T005L@QXv2U delta 204 zcmbQnG=*tGK>ey#R)sK*gq8aj@he>Vf9k?7j~N~--!9-#;NZ+yk>Szhv65jC+o`#^ z92b5qWl{Ld(Obyj1q8hX94q;G3qjnatRUfhh;SZAI3L8F;jw^4;S|S(-x(`FM&`nd z%vhC?urrrq(f=0`FS#bT{*uVFnwiVd)lr$t0i+XP&PWJ$_78GpXl3j2Sj4f?fQ>Da c0qnjn8LJXn*;_akFl=Q1zy=gLap7A601tRn>;M1&