mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-30 12:03:54 +02:00
60 lines
1.1 KiB
NASM
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
|