void main() { byte colour byte colour_index byte wait_for byte bar_start byte direction colour = 0 disable_irq() vic_cr1 = 0 vic_border = black bar_start = $50 direction = 1 while true { wait_for = bar_start for colour_index, 0, until, colours.length { colour = colours[colour_index] while wait_for != vic_raster { } stabilize(10) vic_border = colour wait_for += 2 } bar_start += direction if bar_start == $50 { direction = 1 } if bar_start == $A0 { direction = $ff } } } inline asm void stabilize(byte x){ burn: DEX BNE burn ? RTS } const array colours = [ $06, $06, $06, $0e, $06, $0e, $0e, $06, $0e, $0e, $0e, $03, $0e, $03, $03, $0e, $03, $03, $03, $01, $03, $01, $01, $03, $01, $01, $01, $03, $01, $01, $03, $01, $03, $03, $03, $0e, $03, $03, $0e, $03, $0e, $0e, $0e, $06, $0e, $0e, $06, $0e, $06, $06, $06, $00, $00, $00 ]