如何禁用 Commodore 64 中的屏幕?

发布于 2024-12-18 00:03:54 字数 118 浏览 1 评论 0原文

我知道这个问题是非常具体的问题,但我知道这里有一些 c64 代码专家。所以,这是我的问题。

当我尝试使用 $d011 技巧禁用屏幕时,上/下边框也会打开。我想在不打开上/下边框的情况下做到这一点。是否可以?

I know this question is very spesific question but I know there are some c64 code gurus around here. So, here is my question.

When I try to disable screen using $d011 trick, upper/lower border also opens. I want to do that without opening upper/lower borders. Is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鯉魚旗 2024-12-25 00:03:54

哦,一个c64问题。好的。 :) 我的代码存档中有一个示例。您需要在屏幕的开头而不是末尾执行 $d011 技巧。

这是 ACME 源代码。

    !to "nobadlines.prg",cbm

!macro WAIT .v {
    ldy #.v
    dey
    bne *-1
}

    * = $0801
    !byte $0c, $08, $00, $00, $9e, $32, $30, $36, $31, $00, $00, $00

    * = $080d
    lda #$01
    sta $3fff
    sei
start:
    lda #$30
    cmp $d012
    bne *-3
    lda #$00
    sta $d011
    +WAIT 24
    lda #$0b
    sta $d011
    lda #$31
    cmp $d012
    bne *-3
    lda #$1b
    sta $d011
    +WAIT 8
    bit $ea
    ldx #$00
loop1:
    txa
    sta $d020
    sta $d021
    +WAIT 9
    inx
    cpx #254
    bne loop1
    asl $3fff
    bne start
    inc $3fff
    jmp start

这是应要求提供的 Kick Assembler 版本。

    * = $0801
    BasicUpstart($080d);

    * = $080d
.macro WAIT(duration) {
        ldy #duration
        dey
        bne *-1
}

        lda #$01
        sta $3fff
        sei
start:
        lda #$30
        cmp $d012
        bne *-3
        lda #$00
        sta $d011
        WAIT(24)
        lda #$0b
        sta $d011
        lda #$31
        cmp $d012
        bne *-3
        lda #$1b
        sta $d011
        WAIT(8)
        bit $ea
        ldx #$00
loop1:
        txa
        sta $d020
        sta $d021
        WAIT(9)
        inx
        cpx #254
        bne loop1
        asl $3fff
        bne start
        inc $3fff
        jmp start

Oh, a c64 question. Nice. :) I have one sample in my code archive. You need to do the $d011 trick at the beginning of the screen, not at the end.

This is an ACME source code.

    !to "nobadlines.prg",cbm

!macro WAIT .v {
    ldy #.v
    dey
    bne *-1
}

    * = $0801
    !byte $0c, $08, $00, $00, $9e, $32, $30, $36, $31, $00, $00, $00

    * = $080d
    lda #$01
    sta $3fff
    sei
start:
    lda #$30
    cmp $d012
    bne *-3
    lda #$00
    sta $d011
    +WAIT 24
    lda #$0b
    sta $d011
    lda #$31
    cmp $d012
    bne *-3
    lda #$1b
    sta $d011
    +WAIT 8
    bit $ea
    ldx #$00
loop1:
    txa
    sta $d020
    sta $d021
    +WAIT 9
    inx
    cpx #254
    bne loop1
    asl $3fff
    bne start
    inc $3fff
    jmp start

Here is the Kick Assembler version upon a request.

    * = $0801
    BasicUpstart($080d);

    * = $080d
.macro WAIT(duration) {
        ldy #duration
        dey
        bne *-1
}

        lda #$01
        sta $3fff
        sei
start:
        lda #$30
        cmp $d012
        bne *-3
        lda #$00
        sta $d011
        WAIT(24)
        lda #$0b
        sta $d011
        lda #$31
        cmp $d012
        bne *-3
        lda #$1b
        sta $d011
        WAIT(8)
        bit $ea
        ldx #$00
loop1:
        txa
        sta $d020
        sta $d021
        WAIT(9)
        inx
        cpx #254
        bne loop1
        asl $3fff
        bne start
        inc $3fff
        jmp start
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文