有人质疑 ATARI-2600 吗?
当一个字节存储在 TIA HMP0 寄存器中时,精细位置调整将应用于粗略光束位置。Stella 手册称该值可以是 -8 到 7 之间的任何值。其中 -8 是(二进制 1000),7 是(二进制 0111),因为半字节被读取为二进制补码。
我的问题是,当应用任何负的精细位置值时,我无法让 Sprite 渲染。作为演示,请观察由于 HMOVE 按栅格线移动的结果而为 Sprite 0 渲染的对角线。然而,当应用的值的高位为 1(也称为负数)时,精灵就会消失,并且该扫描线上没有任何内容。为了进行比较,Sprite 1 将屏幕长度渲染为一条直线,b/c 没有应用精细位置。
可见线循环的代码如下:
ScanLoop
REPEAT 10 ; wait to
nop ; get beam
REPEND ; arbitrarily near center
; All we do here is ++ the hi nibble in the Accumulator
; and apply it to HMP0 to adjust the fine position.
; QUESTION FOR READER: WHY DOESN'T THE SPRITE RENDER WHEN
; …Run Code Online (Sandbox Code Playgroud)