diff --git a/game/init.fnl b/game/init.fnl index e5d62d7..9380e38 100644 --- a/game/init.fnl +++ b/game/init.fnl @@ -126,6 +126,30 @@ [:bne :page]] (vm:drop)) +(vm:def :clearline ; pscreen -- + [:lda vm.TOP :x] [:sta vm.W] + [:lda vm.TOPH :x] [:sta vm.WH] + (vm:drop) + [:block + :row + [:ldy 0x2f] [:lda 0] + :start + [:sta [vm.W] :y] + [:dey] + [:bpl :start] + + [:lda vm.WH] + [:cmp 0x3d] + [:bcs :done] + ; cmp has cleared carry for us here + [:lda 4] [:adc vm.WH] [:sta vm.WH] + [:bcc :row] + :done]) + +(vm:word :drawfooter + 0x21d0 :clearline + 0x2250 :clearline 0x22d0 :clearline 0x2350 :clearline 0x23d0 :clearline) + (vm:word :drawmaprow ; pscreen pmap -- pmap mapw (vm:for :2dup :bget :lookup-tile :drawtile @@ -137,6 +161,12 @@ :screen + :