标签: ca65

C64 程序集渲染精灵

我使用ca65 汇编器ld65 链接器在 6502 汇编器中为 Commodore 64 编写了一个短程序。该程序应该在靠近显示器中心的某处呈现一个实心方形精灵,但我没有看到任何正在呈现的东西。

这是我的程序集:

    .segment "CODE"

    ; set sprite pointer index
    ; this, multiplied by $40, is the address
    ; in this case, the address is $2000
    ; $80 * $40 = $2000
    lda #$80
    sta $07f8

    ; enable sprite 0
    lda #$01
    sta $d015

    ; set x and y position
    lda #$80
    sta $d001
    sta $d002

loop:
    jmp loop

    .segment "GFXDATA"

    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF …
Run Code Online (Sandbox Code Playgroud)

assembly c64 6502 commodore ca65

8
推荐指数
1
解决办法
764
查看次数

在C64上删除侧边框的示例

我知道可以使用程序集删除C64中的顶部和底部边框,我找到了示例代码.但我找不到任何用于删除边框的示例代码(由1001 Crew发明).

有谁知道这方面的例子?

assembly c64 ca65

5
推荐指数
1
解决办法
1079
查看次数

在C64/Assembly中更改没有颜色记忆的文本颜色

我有一个像下面的代码,它工作正常.它清除屏幕,在屏幕上的前12个字符的颜色存储器中放置一些颜色,并在屏幕上打印文本.

         jsr $e544
         ldx #$00
         lda #3
loopclr: sta $d800,x
         inx
         cpx #$0c
         bne loopclr
         ldx #$00
         lda #0
loop:    lda message,x
         sta $0400,x
         inx
         cpx #$0c
         bne loop
         rts
message: .byte "Hello "
         .byte "World!"
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果有更简单的方法来改变C64程序集中的文本颜色,就像POKE 646,color在BASIC中一样?

编辑:我认为我需要更清楚,我可以使用

lda #color
sta 646
Run Code Online (Sandbox Code Playgroud)

但它不会影响1024+中汇编代码放在屏幕上的文本.

是否有影响屏幕上所有字符的地址?

编辑:我想我知道答案,不.

assembly c64 ca65

5
推荐指数
1
解决办法
1160
查看次数

ca65:Include Guard生成“错误:预期标识符”

为了学习如何使用ca65汇编程序,我一直在努力使include guards起作用。谷歌搜索和阅读《ca65用户指南》无济于事。这是产生错误的最小示例。

$ ls -l
total 16
-rw-r--r--  1 me  staff  60 Oct 22 19:40 65.inc
-rw-r--r--  1 me  staff  55 Oct 22 20:01 test.s
$
$ cat 65.inc
.ifndef _65_INC_
.define _65_INC_

.define NUMBER 1

.endif
$
$ cat test.s
.include "65.inc"
.include "65.inc"

    lda #NUMBER
    rts
$
$ ca65 test.s
65.inc(1): Error: Identifier expected
65.inc(2): Error: Identifier expected
65.inc(4): Error: Identifier expected
65.inc(4): Note: Macro was defined here
$
$ ls -l
total 16 …
Run Code Online (Sandbox Code Playgroud)

assembly c64 6502 ca65

3
推荐指数
1
解决办法
73
查看次数

标签 统计

assembly ×4

c64 ×4

ca65 ×4

6502 ×2

commodore ×1