mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-04-09 01:37:17 +00:00
Add GREASY frame import utility
This commit is contained in:
parent
6593a32253
commit
27da5dca92
Binary file not shown.
@ -165,11 +165,12 @@ export def spriteRead(filestr)#5
|
||||
end
|
||||
export def spriteWrite(filestr, xorg, yorg, width, height, sprptr)#1
|
||||
var sprsize
|
||||
byte refnum, i
|
||||
byte refnum, i, result
|
||||
|
||||
sprsize = (width + 1) / 2 * height
|
||||
fileio:destroy(filestr)
|
||||
if fileio:create(filestr, $06, $0000) == FILE_ERR_OK
|
||||
result = fileio:create(filestr, $06, $0000)
|
||||
if result == FILE_ERR_OK
|
||||
refnum = fileio:open(filestr)
|
||||
if refnum
|
||||
fileio:write(refnum, @xorg, 1)
|
||||
@ -178,10 +179,13 @@ export def spriteWrite(filestr, xorg, yorg, width, height, sprptr)#1
|
||||
fileio:write(refnum, @height, 1)
|
||||
sprsize = (width + 1) / 2 * height
|
||||
fileio:write(refnum, sprptr, sprsize)
|
||||
result = perr
|
||||
fileio:close(refnum)
|
||||
else
|
||||
result = perr
|
||||
fin
|
||||
fin
|
||||
return perr
|
||||
return result
|
||||
end
|
||||
export def screenRead(filestr)#1
|
||||
byte refnum
|
||||
@ -197,18 +201,23 @@ export def screenRead(filestr)#1
|
||||
return perr
|
||||
end
|
||||
export def screenWrite(filestr)#1
|
||||
byte refnum
|
||||
byte refnum, result
|
||||
|
||||
fileio:destroy(filestr)
|
||||
if fileio:create(filestr, $06, $0000) == FILE_ERR_OK
|
||||
result = fileio:create(filestr, $06, $2000)
|
||||
if result == FILE_ERR_OK
|
||||
refnum = fileio:open(filestr)
|
||||
if refnum
|
||||
^page1x // Write AUX bytes
|
||||
fileio:write(refnum, $2000, $2000)
|
||||
^page1m // Write MAIN bytes
|
||||
fileio:write(refnum, $2000, $2000)
|
||||
if fileio:write(refnum, $2000, $2000) == $2000
|
||||
^page1m // Write MAIN bytes
|
||||
fileio:write(refnum, $2000, $2000)
|
||||
fin
|
||||
result = perr
|
||||
fileio:close(refnum)
|
||||
else
|
||||
result = perr
|
||||
fin
|
||||
fin
|
||||
return perr
|
||||
return result
|
||||
end
|
||||
|
@ -86,6 +86,7 @@ GRTEST = rel/apple/GRTEST\#FE1000
|
||||
DGRTEST = rel/apple/DGRTEST\#FE1000
|
||||
DCGRTEST = rel/apple/DCGRTEST\#FE1000
|
||||
DCGRSPRED = rel/apple/DCGRSPRED\#FE1000
|
||||
DCGREASY = rel/apple/DCGREASY\#FE1000
|
||||
MEMMGR = rel/MEMMGR\#FE1000
|
||||
MEMTEST = rel/MEMTEST\#FE1000
|
||||
FIBERTEST = rel/FIBERTEST\#FE1000
|
||||
@ -122,7 +123,7 @@ TXTTYPE = .TXT
|
||||
#SYSTYPE = \#FF2000
|
||||
#TXTTYPE = \#040000
|
||||
|
||||
apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVMJIT) $(PLVM802) $(PLVM03) $(PLVMJIT03) $(CMD) $(CMDJIT) $(JIT) $(JIT16) $(JITUNE) $(SOSCMD) $(SOSCMDJIT) $(PLASMAPLASM) $(CODEOPT) $(PLFORTH) $(HRFORTH) $(HR2FORTH) $(TX2FORTH) $(SEXPR) $(SMATH) $(DRAWL) $(ZIPCHIP) $(MATCHFILES) $(ARGS) $(MEMMGR) $(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(COPY) $(DEL) $(REN) $(CAT) $(NEWDIR) $(TYPE) $(INITSLOT) $(SOS) $(ROD) $(SIEVE) $(PRIMEGAP) $(MOUSE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) $(HTTPD) $(TFTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(SFM) $(SFMSPRT) $(GRAFIX) $(GFXDEMO) $(LINES) $(HGRTILE) $(HGRFONT) $(HGRSPRITE) $(HGRLIB) $(TILETEST) $(HGRTEST) $(DCGRLIB) $(GRLIB) $(DGRLIB) $(DCGRUTILS) $(GRTEST) $(DGRTEST) $(HGRTEST) $(DCGRTEST) $(DCGRSPRED) $(FILEIO_APL) $(CONIO_APL) $(JOYBUZZ) $(PORTIO) $(SPIPORT) $(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(INT32) $(INT32TEST) $(SANE) $(FPSTR) $(FPU) $(SANITY) $(LZ4) $(LZ4CAT) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ) $(CONIOTEST)
|
||||
apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVMJIT) $(PLVM802) $(PLVM03) $(PLVMJIT03) $(CMD) $(CMDJIT) $(JIT) $(JIT16) $(JITUNE) $(SOSCMD) $(SOSCMDJIT) $(PLASMAPLASM) $(CODEOPT) $(PLFORTH) $(HRFORTH) $(HR2FORTH) $(TX2FORTH) $(SEXPR) $(SMATH) $(DRAWL) $(ZIPCHIP) $(MATCHFILES) $(ARGS) $(MEMMGR) $(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(COPY) $(DEL) $(REN) $(CAT) $(NEWDIR) $(TYPE) $(INITSLOT) $(SOS) $(ROD) $(SIEVE) $(PRIMEGAP) $(MOUSE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) $(HTTPD) $(TFTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(SFM) $(SFMSPRT) $(GRAFIX) $(GFXDEMO) $(LINES) $(HGRTILE) $(HGRFONT) $(HGRSPRITE) $(HGRLIB) $(TILETEST) $(HGRTEST) $(DCGRLIB) $(GRLIB) $(DGRLIB) $(DCGRUTILS) $(GRTEST) $(DGRTEST) $(HGRTEST) $(DCGRTEST) $(DCGRSPRED) $(DCGREASY) $(FILEIO_APL) $(CONIO_APL) $(JOYBUZZ) $(PORTIO) $(SPIPORT) $(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(INT32) $(INT32TEST) $(SANE) $(FPSTR) $(FPU) $(SANITY) $(LZ4) $(LZ4CAT) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ) $(CONIOTEST)
|
||||
|
||||
-rm vmsrc/plvmzp.inc
|
||||
|
||||
@ -540,6 +541,10 @@ $(DCGRSPRED): utilsrc/apple/dcgrspred.pla $(DCGRLIB) $(DCGRUTILS) $(PLASM)
|
||||
./$(PLASM) -AMOW utilsrc/apple/dcgrspred.pla
|
||||
acme --setpc 4094 -o $(DCGRSPRED) utilsrc/apple/dcgrspred.a
|
||||
|
||||
$(DCGREASY): utilsrc/apple/dcgreasy.pla $(DCGRLIB) $(DCGRUTILS) $(PLASM)
|
||||
./$(PLASM) -AMOW utilsrc/apple/dcgreasy.pla
|
||||
acme --setpc 4094 -o $(DCGREASY) utilsrc/apple/dcgreasy.a
|
||||
|
||||
$(MON): utilsrc/apple/mon.pla $(PLASM)
|
||||
./$(PLASM) -AMOW utilsrc/apple/mon.pla
|
||||
acme --setpc 4094 -o $(MON) utilsrc/apple/mon.a
|
||||
|
@ -21,6 +21,7 @@ cp rel/apple/HGRLIB#FE1000 prodos/sys/HGRLIB.REL
|
||||
cp rel/apple/DCGRLIB#FE1000 prodos/sys/DCGRLIB.REL
|
||||
cp rel/apple/DCGRUTILS#FE1000 prodos/sys/DCGRUTILS.REL
|
||||
cp rel/apple/DCGRSPRED#FE1000 prodos/sys/DCGRSPRED.REL
|
||||
cp rel/apple/DCGREASY#FE1000 prodos/sys/DCGREASY.REL
|
||||
cp rel/apple/GRLIB#FE1000 prodos/sys/GRLIB.REL
|
||||
cp rel/apple/DGRLIB#FE1000 prodos/sys/DGRLIB.REL
|
||||
cp rel/apple/COPY#FE1000 prodos/sys/COPY.REL
|
||||
@ -147,6 +148,7 @@ cp samplesrc/dgrtest.pla prodos/bld/samples/DGRTEST.PLA.TXT
|
||||
cp samplesrc/hgrtest.pla prodos/bld/samples/HGRTEST.PLA.TXT
|
||||
cp samplesrc/dcgrtest.pla prodos/bld/samples/DCGRTEST.PLA.TXT
|
||||
cp utilsrc/apple/dcgrspred.pla prodos/bld/samples/DCGRSPRED.PLA.TXT
|
||||
cp utilsrc/apple/dcgreasy.pla prodos/bld/samples/DCGREASY.PLA.TXT
|
||||
cp samplesrc/tiletest.pla prodos/bld/samples/TILETEST.PLA.TXT
|
||||
cp samplesrc/fibertest.pla prodos/bld/samples/FIBERTEST.PLA.TXT
|
||||
cp samplesrc/mousetest.pla prodos/bld/samples/MOUSETEST.PLA.TXT
|
||||
|
117
src/utilsrc/apple/dcgreasy.pla
Normal file
117
src/utilsrc/apple/dcgreasy.pla
Normal file
@ -0,0 +1,117 @@
|
||||
include "inc/cmdsys.plh"
|
||||
include "inc/args.plh"
|
||||
include "inc/dcgrlib.plh"
|
||||
include "inc/dcgrutils.plh"
|
||||
include "inc/fileio.plh"
|
||||
|
||||
sysflags restxt1|resxtxt1|reshgr1|resxhgr1 // Reserve all the pages
|
||||
|
||||
char[64] greasyfile = ""
|
||||
byte[20*40] frame
|
||||
byte pause = FALSE
|
||||
|
||||
var arg
|
||||
|
||||
def greasy2dcgr(pGreasy)#0
|
||||
byte i, j, cl, ch
|
||||
var pPixmap
|
||||
|
||||
pPixmap = @frame
|
||||
for j = 0 to 39 step 2
|
||||
for i = 0 to 39 step 2
|
||||
cl = ^(pGreasy + i)
|
||||
ch = ^(pGreasy + i + 1)
|
||||
^(pPixmap + i / 2) = (cl & $0F) | (ch << 4)
|
||||
^(pPixmap + i / 2 + 20) = (cl >> 4) | (ch & $F0)
|
||||
next
|
||||
pPixmap = pPixmap + 40
|
||||
pGreasy = pGreasy + 40
|
||||
next
|
||||
end
|
||||
|
||||
def greasyRead(filestr, frame)#1
|
||||
var sprptr, sprsize
|
||||
byte refnum, numframes
|
||||
|
||||
sprptr = 0
|
||||
refnum = fileio:open(filestr)
|
||||
if refnum
|
||||
sprsize = 40 * 40 / 2
|
||||
sprptr = heapalloc(sprsize)
|
||||
if sprptr and fileio:read(refnum, @numframes, 1)
|
||||
if numframes < frame
|
||||
heaprelease(sprptr)
|
||||
sprptr = NULL
|
||||
fin
|
||||
fin
|
||||
if sprptr
|
||||
if fileio:setmark(refnum, (frame - 1) * sprsize + 1, 0)
|
||||
heaprelease(sprptr)
|
||||
sprptr = NULL
|
||||
elsif fileio:read(refnum, sprptr, sprsize) <> sprsize
|
||||
heaprelease(sprptr)
|
||||
sprptr = NULL
|
||||
fin
|
||||
fin
|
||||
fileio:close(refnum)
|
||||
fin
|
||||
return sprptr
|
||||
end
|
||||
|
||||
def importGreasy#0
|
||||
var grptr
|
||||
byte screennum, framenum, i, j
|
||||
char[64] screenfile
|
||||
|
||||
screennum = 1
|
||||
framenum = 1
|
||||
dcgrMode(0)
|
||||
while framenum
|
||||
dcgrColor(CLR_GREY1)
|
||||
dcgrClearBl7(0, 0, SCR_WIDTH7, SCR_HEIGHT)
|
||||
for j = 0 to 3
|
||||
for i = 0 to 2
|
||||
grptr = greasyRead(@greasyfile, framenum)
|
||||
if grptr
|
||||
greasy2dcgr(grptr)
|
||||
heaprelease(grptr)
|
||||
dcgrPixMap(i*40+20, j*40+20, 40, 40, @frame)
|
||||
framenum++
|
||||
else
|
||||
framenum = 0
|
||||
break
|
||||
fin
|
||||
next
|
||||
if framenum == 0; break; fin
|
||||
next
|
||||
strcpy(@screenfile, @greasyfile)
|
||||
strcat(@screenfile, ".SCR")
|
||||
screenfile++
|
||||
screenfile[screenfile] = '0' + screennum
|
||||
screennum++
|
||||
if screenWrite(@screenfile)
|
||||
dcgrMode(-1)
|
||||
puts("Error writing: "); puts(@screenfile); putln
|
||||
return
|
||||
fin
|
||||
if pause; getc; fin
|
||||
loop
|
||||
dcgrMode(-1)
|
||||
end
|
||||
|
||||
arg = argNext(argFirst)
|
||||
if ^arg
|
||||
if ^(arg + 1) == '-'
|
||||
if toupper(^(arg + 2)) == 'P'
|
||||
pause = TRUE
|
||||
fin
|
||||
arg = argNext(arg)
|
||||
fin
|
||||
if ^arg
|
||||
strcpy(@greasyfile, arg)
|
||||
importGreasy
|
||||
return 0
|
||||
fin
|
||||
fin
|
||||
puts("Usage: DCGRGREASY [-P] FRAMEFILE\n")
|
||||
done
|
Loading…
x
Reference in New Issue
Block a user