// Example of structs that can be optimized by going planar // https://cc65.github.io/mailarchive/2010-09/8593.html?fbclid=IwAR1IF_cTdyWcFeKU93VfL2Un1EuLjkGh7O7dQ4EVj4kpJzJAj01dbmEFQt8 .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" .const OFFSET_STRUCT_POS_Y = 1 .const XSPACE = $14 .const YSPACE = $14 .label x = 5 .label idx = 4 .label y = 3 .label line = 2 main: { lda #0 sta.z y sta.z idx sta.z x sta.z line b2: inc.z x ldy #0 b4: lda.z idx asl tax lda.z y sta p+OFFSET_STRUCT_POS_Y,x lda.z x sta p,x inc.z idx lax.z x axs #-[XSPACE] stx.z x iny cpy #8 bcc b4 lax.z y axs #-[YSPACE] stx.z y inc.z line lda.z line cmp #8 bcc b2 rts } p: .fill 2*$40, 0