mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-31 12:05:05 +02:00
59 lines
1.1 KiB
NASM
59 lines
1.1 KiB
NASM
; draw_spin.asm -- CONTROL payload: draw the same three boxes, then freeze.
|
|
;
|
|
; It proves the coordinates and the renderer mapping (the boxes appear in the
|
|
; next dumped frame). It deliberately does NOT return, so the OS is dead from
|
|
; this point. Compare with draw_box.asm, which returns and leaves the OS alive
|
|
; and whose boxes are gone by the next dumped frame: the OS repaints.
|
|
;
|
|
; Linked at bit 01840000h by dwt/visual/build.sh.
|
|
|
|
.text
|
|
_start:
|
|
setf 16, 0, 0
|
|
setf 32, 0, 1
|
|
movi 0FFFFh, a0, L
|
|
|
|
; box A (50,50)
|
|
movi 0400C832h, a2, L
|
|
movi 32, a3, L
|
|
movi 2, a4, L
|
|
rowA:
|
|
move a4, a5
|
|
wordA:
|
|
move a0, *a2+, 0
|
|
dsjs a5, wordA
|
|
addi 03E0h, a2
|
|
dsjs a3, rowA
|
|
|
|
; box B (250,400)
|
|
movi 040640FAh, a2, L
|
|
movi 32, a3, L
|
|
movi 2, a4, L
|
|
rowB:
|
|
move a4, a5
|
|
wordB:
|
|
move a0, *a2+, 0
|
|
dsjs a5, wordB
|
|
addi 03E0h, a2
|
|
dsjs a3, rowB
|
|
|
|
; box C (930,750)
|
|
movi 040BBBA2h, a2, L
|
|
movi 32, a3, L
|
|
movi 2, a4, L
|
|
rowC:
|
|
move a4, a5
|
|
wordC:
|
|
move a0, *a2+, 0
|
|
dsjs a5, wordC
|
|
addi 03E0h, a2
|
|
dsjs a3, rowC
|
|
|
|
movi 05B5Bh, a0, L
|
|
move a0, @01850020h, 0 ; SPIN_MARK = 5B5B
|
|
dint
|
|
spin:
|
|
nop
|
|
jruc spin
|
|
.end
|