tl2655600 发表于 2008-10-24 22:35:59

6502问题

如何在6502中实现控制屏幕上图像移动?

[ 本帖最后由 tl2655600 于 2008-10-27 21:48 编辑 ]

dragon_ 发表于 2008-10-24 22:47:05

自己操作显存。

jljeee 发表于 2008-10-25 08:16:52

这个会让人晕掉的

tl2655600 发表于 2008-10-25 18:37:46

难道要先画图形,再读键,再清屏,在画图形。。。。。。
:L 好麻烦啊

dragon_ 发表于 2008-10-25 19:45:41

如果LZ认为有更好的方法,那就好好研究,争取把它搞出来。:D

tl2655600 发表于 2008-10-27 12:47:26

问一下,NCTOOLS808到底能不能制作BIN程序啊?
我做出来的BIN一打开就关机
开头要打个AE EE EA 00 1000 20 AC XX YY 70 03 31 03 FF FF什么的,我已经打了啊?
程序就NCTOOLS808上测试很正常啊

dragon_ 发表于 2008-10-27 17:31:58

AC XX YY 打错了。
应为4C xx yy
最好是AA A5 5A 00 10 00 20 4C XX YY 70 03 31 03 FF FF
不过我从来不用NcTools808制作程序。

[ 本帖最后由 dragon_ 于 2008-10-27 17:35 编辑 ]

tl2655600 发表于 2008-10-27 21:41:22

汗:L ,我两个都试过了!
都不行

LS顺便问一下,你觉得什么编程最方便?要在808平台上哦:lol

tl2655600 发表于 2008-10-27 21:46:02

还有一个问题,控制屏幕上图像的方法我已经想到了,可怎么也运行不起来:'(
有可能是我写错了,可就是不知道错在哪里
:L :L

下面是我编的,还请高手指点迷津


2000 ldx#$00
2002 stx$2100
2005 lda#$28
2007 sta$03c4(808 x轴地址)
200a lda#$05
200c sta$03d6(808 圆半径地址)
200f lda$2100
2012 sta$03c3(808 y轴地址)
2015 int$c737 (808 清屏中断)
2018 int$ca0e (808 画圆中断)
201b pha
201c int$c006(808 读键地址,键值放在a)
201f cmp#$16(“16” 为808 键盘“→”键值)
2021 bne$2025
2024 inx
2025 cmp#$17(“17” 为808 键盘“←”键值)
2027 bne$202b
202a dex
202b cmp#$19
202d beq$2039
2030 pla
2031 cmp#$a0
2033 beq$2000
2036 jmp$200f
2039 rts

[ 本帖最后由 tl2655600 于 2008-11-3 22:53 编辑 ]

tl2655600 发表于 2008-10-27 21:47:14

注:“808 ”是机型tc808简称

dragon_ 发表于 2008-10-27 22:15:25

原帖由 tl2655600 于 2008-10-27 21:41 发表 http://bbs.emsky.net/images/common/back.gif
汗:L ,我两个都试过了!
都不行

LS顺便问一下,你觉得什么编程最方便?要在808平台上哦:lol
我写那个就是可以的,不行那是你自己的程序有问题。注意bin程序执行是从$4000开始的,不是$2000。
WQX端的汇编编译器有很多……

[ 本帖最后由 dragon_ 于 2008-10-27 22:17 编辑 ]

dragon_ 发表于 2008-10-27 22:22:11

原帖由 tl2655600 于 2008-10-27 21:46 发表 http://bbs.emsky.net/images/common/back.gif
还有一个问题,控制屏幕上图像的方法我已经想到了,可怎么也运行不起来:'(
有可能是我写错了,可就是不知道错在哪里
:L :L

下面是我编的,还请高手指点迷津


2000 ldx#$00
2002 stx$2100
2005 lda#$28
2007 sta$03c4(80 ...
你的$2100是用来干什么的?inx和dex又有什么意义?这里应该有问题。
仔细看看lda $2000,x的含义。

tl2655600 发表于 2008-10-28 09:54:04

哦,我知道了,运行不起来关键在200F!!

tl2655600 发表于 2008-10-29 12:27:56

我改了一下,还不行,汗

2000 ldx#$00
2002 lda#$28
2005 sta$03c4(808 x轴地址)
2007 lda#$05
200a sta$03d6
200cstx$2100
200f lda$2100
2012 sta$03c3(808 y轴地址)
2015 int$c737 (808 清屏中断)
2018 int$ca0e (808 画圆中断)
201b pha
201c int$c006(808 读键地址,键值放在a)
201f cmp#$16(“16” 为808 键盘“→”键值)
2021 bne$2025
2024 inx
2025 cmp#$17(“17” 为808 键盘“←”键值)
2027 bne$202b
202a dex
202b cmp#$19
202d beq$2039
2030 pla
2031 cmp#$a0
2033 beq$2000
2036 jmp$200c
2039 rts

dragon_ 发表于 2008-10-29 12:40:30

运行之后有何反应?
第一句先改成
2000 ldx#$10
看看圆画出来没。

[ 本帖最后由 dragon_ 于 2008-10-29 12:41 编辑 ]

tl2655600 发表于 2008-10-29 12:44:58

运行后按→时会越进一大步,后来就不行了,只有按“目录”退出

tl2655600 发表于 2008-10-29 12:45:52

圆一开始就出来了

dragon_ 发表于 2008-10-29 12:48:49

按你写的来看,是正常的。
有QQ上QQ,这里不好发挥。

[ 本帖最后由 dragon_ 于 2008-10-29 12:56 编辑 ]

布网鱼 发表于 2009-1-22 10:46:54

NCTOOL写的程序从$2000执行,应用程序里的BIN从$4000执行,假如用了JSR和JMP等跳转就不行。

sun 发表于 2009-2-1 15:47:02

寫program當要執行一些副程式,應先要了解它會否影響當前的a x y值, 很明顯在這裡當你執行int後的a與x值已改變了,之後的pha與inx,dex已沒意義.另外你程序中有檢測x-coor(cmp #$a0), 但缺乏檢測x-coor為#$00, 這樣若一開始按左時, 下一個圓會畫在哪裡呢? 最後,在運用pha pla是需要小心一點, 你在$201b上pha後若檢測到按鍵值是#$19, 在$202d處會跳到$2039結束, 但是你沒注意到你並未pla而跳出, 這樣永遠也不能正常跳出!
页: [1]
查看完整版本: 6502问题