Merge branch 'regression'

This commit is contained in:
Brooke Vibber 2026-08-22 15:35:29 -07:00
commit 4b352e8f63

View file

@ -18,6 +18,7 @@ z_buffer_start: .res 1 ; u8: index into z_buffer
z_buffer_end: .res 1 ; u8: index into z_buffer
iter: .res 1 ; u8: iteration count
ptr: .res 2 ; u16
pixel_ptr: .res 2 ; u16
temp: .res 2 ; u16
temp2: .res 2 ; u16
@ -1267,21 +1268,21 @@ enough:
negative:
; temp1 = top half
lda #.lobyte(framebuffer_top + stride * half_height)
sta ptr
sta pixel_ptr
lda #.hibyte(framebuffer_top + stride * half_height)
sta ptr + 1
sta pixel_ptr + 1
jmp point
positive:
lda #.lobyte(framebuffer_bottom)
sta ptr
sta pixel_ptr
lda #.hibyte(framebuffer_bottom)
sta ptr + 1
sta pixel_ptr + 1
point:
; ptr += sy * stride
; pixel_ptr += sy * stride
; temp * 40
; = temp * 32 + temp * 8
; = (temp << 5) + (temp << 3)
@ -1289,10 +1290,10 @@ point:
shl16 temp
shl16 temp
shl16 temp
add16 ptr, ptr, temp
add16 pixel_ptr, pixel_ptr, temp
shl16 temp
shl16 temp
add16 ptr, ptr, temp
add16 pixel_ptr, pixel_ptr, temp
; Ok so temp1 points to the start of the line, which is 40 bytes.
; Get the byte and bit offsets
@ -1332,20 +1333,20 @@ shift_done:
draw_pixel:
; read, mask, or, write
lda (ptr),y
lda (pixel_ptr),y
and pixel_mask
ora pixel_color
sta (ptr),y
sta (pixel_ptr),y
dex
beq done
clc
lda #40
adc ptr
sta ptr
adc pixel_ptr
sta pixel_ptr
lda #0
adc ptr + 1
sta ptr + 1
adc pixel_ptr + 1
sta pixel_ptr + 1
jmp draw_pixel
done: