.version 9 .org 0x1000 start: mov sp, 0xfffe mov.w [0x10], 0x30 mov.w [0x7a], 256 mov.w [0x702], 60 mov.w [0x704], 0 mov p, 0 fill: mov a, p shr a, 5 xor a, p out [p], a.lo inc p bnz fill mov.w [0x20], tick mov.w [0x22], 60 sys present idle: hlt bra idle tick: push a push b movzx a, [0x422] mov b, a and a, 16 bz check_fast mov.w [0x22], 60 mov.w [0x702], 60 check_fast: and b, 32 bz resized mov.w [0x22], 120 mov.w [0x702], 120 resized: mov.b [0x422], 48 mov a, [0x7a] inc a cmp a, 385 blo store mov a, 192 store: mov.w [0x7a], a mov a, [0x704] inc a mov.w [0x704], a sys present pop b pop a reti