如何在 6502 Assembly 中读取从 $0200 到 $05ff 的网格

问题描述

所以我接到了一个任务,我们必须使用 6502 汇编仿真器使用彩色像素制作符号。我不太明白这个网格是如何工作的。有人可以解释一下这个网格是如何工作的,也许可以举个例子吗?

这是模拟器的链接https://skilldrick.github.io/easy6502/#first-program

以及我要使用的网格:https://i.stack.imgur.com/QuqPi.png

解决方法

我认为迈克尔的命令是正确的;由于潜在的寄存器歧义原因避免使用“x”和“y”,地址 private int x = null; //if x is not null return x otherwise return: (assign 1 to x and return 1) get { return x ?? (x = 1); } 包含 (p,q) 处的像素,用于 p 和 q 在 0 到 31 的范围内,并且在每个字节中包含低四位确定像素颜色。

所以例如get { if(addCommand == null){ addCommand = new RelayCommand(obj => { Phone phone = new Phone(); Phones.Insert(0,phone); SelectedPhone = phone; } } return addCommand; } 是左上角的像素,$0200 + (q*32) + p 是左上角右侧的像素,$0200 是左上角下方的像素。

在 6502 术语中,通用绘图子例程的一种可能的直接实现可以使用索引间接寻址,将 $0201 存储到零页位置,然后通过 $0220 进行索引以达到其中的特定水平位置排。在我的脑海里,没有检查汇编程序使用的语法和硬编码零页地址 $80 和 $81 的使用:

$0200 + (q*32)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...