Files
vt1200/dwt/visual/drawal.asm
T

60 lines
1.1 KiB
NASM

; drawal.asm -- one-shot static VRAM draw at word-aligned coordinates, return.
;
; Three solid-black 32x32 boxes:
; A (48,48) root weave, outside every window
; B (256,400) inside the Terminal Manager white body
; C (928,752) root weave, lower right
; All x are multiples of 16, which the TMS34010 16-bit field store requires.
; Writes marker words, then `rets` so the rdebug session and the OS survive.
;
; Linked at bit 01840000h by dwt/visual/build.sh.
.text
_start:
setf 16, 0, 0
setf 32, 0, 1
sub a0, a0 ; 0000 = black
; box A (48,48)
movi 0400C030h, 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 (256,400)
movi 04064100h, 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 (928,752)
movi 040BC3A0h, 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 0D2A0h, a0, L
move a0, @01850020h, 0 ; DRAW_MARK = D2A0
movi 0B0C0h, a0, L
move a0, @01850030h, 0 ; DRAW_MARK2 = B0C0
rets
.end