1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-02-13 00:31:21 +00:00

more compiled sprite tests

This commit is contained in:
David Schmenk 2024-09-12 09:07:01 -07:00
parent 0b531e7f3e
commit 2a9eb9c55d

View File

@ -219,7 +219,7 @@ def compileSprite#0
dcgrOpMem(OP_SRC)
end
def dcgrTest#0
word i, j, k, ok7, om7, inci, incj, inck
word i, j, k, i7, im7, k7, km7, s7w, inci, incj, inck
word backblk, backspan, backw7, backofst
word restrblk, restrspan, restrw7, restrw
byte mode
@ -238,13 +238,13 @@ def dcgrTest#0
dcgrColor(DCLR_BLACK)
dcgrFillBl7Scr(21/7, 30, 100/7, 132)
dcgrColor(DCLR_WHITE)
dcgrHLinScr((21/7)*7, (21/7)*7+(100/7)*7, 30)
dcgrHLinScr((21/7)*7, (21/7)*7+(100/7)*7, 30+132)
dcgrVLinScr(30, 30+132, (21/7)*7)
dcgrVLinScr(30, 30+132, (21/7)*7+(100/7)*7)
dcgrHLinScr((21/7)*7-1, (21/7)*7+(100/7)*7, 29)
dcgrHLinScr((21/7)*7-1, (21/7)*7+(100/7)*7, 29+133)
dcgrVLinScr(29, 29+133, (21/7)*7-1)
dcgrVLinScr(29, 29+133, (21/7)*7+(100/7)*7)
dcgrBoldStrScr(30, 10, "Hello, DCGR!")
i = 64; j = 64; k = 86
ok7 = k/7
k7 = k/7
inci = 1; incj = 1; inck = 2
backblk, backspan, backw7 = dcgrAllocBl7Mem(SCR_WIDTH, 16)
dcgrScrBl7Mem(0, 170, backw7, 16, backblk, backspan)
@ -254,43 +254,53 @@ def dcgrTest#0
if ^$C000 >= 128
mode = (^$C010 & $7F) - '0'
fin
ok7, om7 = divmod(k, 7)
k7, km7 = divmod(k, 7)
i7, im7 = divmod(i, 7)
if i7 + sprite7width < (21/7)+(100/7)
s7w = sprite7width
else
s7w = (21/7)+(100/7) - i7
fin
dcgrOpMem(OP_SRC)
when mode
is 1
dcgrPixScr(i, j, 16, 16, @sprite)
dcgrMemBl7Scr(i7, j, s7w, 16, sprite7[im7], sprite7span)
is 2
if k < 0 and om7 // Handle off left edge special case
ok7--
om7 = 7 + om7
if k < 0 and km7 // Handle off left edge special case
k7--
km7 = 7 + km7
fin
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (ok7 << 2), backspan, restrw7, 16, restrblk, restrspan)
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (k7 << 2), backspan, restrw7, 16, restrblk, restrspan)
dcgrOpMem(OP_AND)
dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7mask[om7], sprite7span, restrw7, 16, restrblk, restrspan)
dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7mask[km7], sprite7span, restrw7, 16, restrblk, restrspan)
dcgrOpMem(OP_XOR)
dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7[om7], sprite7span, restrw7, 16, restrblk, restrspan)
dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7[km7], sprite7span, restrw7, 16, restrblk, restrspan)
dcgrOpMem(OP_SRC)
dcgrMemBl7Scr(ok7, 170, restrw7, 16, restrblk, restrspan)
dcgrMemBl7Scr(k7, 170, restrw7, 16, restrblk, restrspan)
break
is 3
dcgrPixScr(i, j, 16, 16, @sprite)
is 4
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (ok7 << 2), backspan, restrw7, 16, restrblk, restrspan)
dcgrPixMem(om7 + 2, 0, 16, 16, @sprite, restrw, 16, restrblk, restrspan)
dcgrMemBl7Scr(ok7, 170, restrw7, 16, restrblk, restrspan)
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (k7 << 2), backspan, restrw7, 16, restrblk, restrspan)
dcgrPixMem(km7 + 2, 0, 16, 16, @sprite, restrw, 16, restrblk, restrspan)
dcgrMemBl7Scr(k7, 170, restrw7, 16, restrblk, restrspan)
break
is 5
dcgrPixScr(i, j, 16, 16, @sprite)
is 6
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (ok7 << 2), backspan, restrw7, 16, restrblk, restrspan)
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (k7 << 2), backspan, restrw7, 16, restrblk, restrspan)
dcgrColor(DCLR_BLACK)
dcgrFillMem(om7 + 2, 4, 14, 8, restrblk, restrspan)
dcgrFillMem(km7 + 2, 4, 14, 8, restrblk, restrspan)
dcgrColor(DCLR_WHITE)
dcgrStrMem(om7 + 2, 4, "DC", restrw, 16, restrblk, restrspan)
dcgrMemBl7Scr(ok7, 170, restrw7, 16, restrblk, restrspan)
dcgrStrMem(km7 + 2, 4, "DC", restrw, 16, restrblk, restrspan)
dcgrMemBl7Scr(k7, 170, restrw7, 16, restrblk, restrspan)
break
is 7
dcgrMemBl7Scr(i7, j, s7w, 16, sprite7[im7], sprite7span)
break
is 8
dcgrPixScr(i, j, 16, 16, @sprite)
break
wend
if k > 136 or k < -16; inck = -inck; fin
k = k + inck