Merge branch 'regression'
This commit is contained in:
commit
4b352e8f63
1 changed files with 14 additions and 13 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue