Files
vt1200/dwt/visual/drawspin.asm
T

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