首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PET CBM C64 MOS6510组件在屏幕上打印带有计算出的屏幕地址的letter?

PET CBM C64 MOS6510组件在屏幕上打印带有计算出的屏幕地址的letter?
EN

Stack Overflow用户
提问于 2020-09-20 15:51:12
回答 1查看 70关注 0票数 2

我刚接触C64的汇编语言编程,我有一个关于保存和加载内存区的过程的问题。我对以下几点表示关注:

代码语言:javascript
复制
lda #$01
sta $0400

将字母A放在屏幕的左上角

代码语言:javascript
复制
ldx #$00
lda #$01
sta $0400, x

有了这个,我可以使用x寄存器作为计数器,并可以比较我使用循环的频率。

但是现在我有了一个16位的计算(屏幕起始地址加上xxx),并将结果存储在一个内存地址中,比如$4000和$4001。如何使用此值作为新的屏幕地址,在屏幕上的计算区域上打印字母a?

EN

回答 1

Stack Overflow用户

发布于 2020-09-21 01:46:38

好了,现在我明白了(间接),Y的意思了。我的解决方案现在看起来是这样的:

代码语言:javascript
复制
.var lines = $28       //40 characters
.var currentPos = $fd  //save screen address

calcLine:  
ldx #$05               //counter 5 backward
ldy #$00               //Sets carry to 0
lda #lines             //A=40 
asl                    //A=80 

calc:
clc 
adc #lines             //A=120 (or $78 in hex) 
bcc next               //If carry, then increase
iny

next:
dex
cpx #$00
bne calc
sta currentPos     //If carry, then increase 
sty currentPos+1   //Save value if carry

//add screen start address ($0400)
clc
lda currentPos+1
adc #$04
sta currentPos+1

lda #$42    //the sign

sta (currentPos),y 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63976732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档