// idea @ilmenit
// https://demozoo.org/productions/280623
// for 8bit AtariXL, OS Rev 2

alias prev_x = os_OLDCOL.lo
alias cursor_x = os_COLCRS.lo
alias prev_y = os_OLDROW
alias cursor_y = os_ROWCRS
alias color = os_ATACHR

byte i

array(byte) color_height = [
  170,150,144,144,122,122,110,110,94,94,86,86,82,80
]

asm void openmode(byte register(a) m) @ $ef9c extern
asm void drawto() @ $f9c2 extern

void main(){
  openmode(9)
  os_COLOR4 = $b0

  for i,0,to,79 {
    cursor_x = i
    prev_x = i
    prev_y = 1

    for color,13,downto,0 {
      cursor_y = color_height[color]
      if pokey_random < $80 {
        color_height[color] -= 1
      }
      if pokey_random <  $80 {
        color_height[color] += 1
      }
      drawto()
    }
  }

  while true {}
}
