c64-livecoding/wip-hugo/routines/triangle/triangle.inc
2025-05-02 21:57:59 +02:00

29 lines
862 B
PHP

;;; -*- Mode: asm; indent-tabs-mode: t; tab-width: 8 -*-
;; The triangles 3 corner-positions, they may be in any given order.
;; This is inputs to the subrotine!
A_X = $EA
A_Y = $E9
B_X = $E8
B_Y = $E7
C_X = $E6
C_Y = $E5
;; Differense in height (after these points have been sorted look in triangle.s for more detail)
AB = $E4
BC = $E3
;; We need some values for Bresenham's line algorithm, see triangle.s and line_down.s
V_l = $E2 ;16-bit value (uses E3)
V_r = $E0 ;16-bit value (used E1)
dy_2_l = $DE ;16-bit value (used DF)
dy_2_r = $DC ;16-bit value (used DD)
D_l = $DA ;16-bit value (uses DB)
D_r = $D8 ;16-bit value (uses D9)
;; These come from mem.inc
;; Takes up FF - F5
X_pos = $FC
Y_pos = $FB
byte_to_paint = $FE ; Byte with one 1 that corisponds to a pixel.
btp_mem_pos = $F9 ; 16-bit value (uses FA), byte to paint memory position