1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-01-07 00:29:34 +00:00

Make dlgrshow a true conversion utility with dlgrconv

This commit is contained in:
David Schmenk 2024-11-28 10:39:44 -08:00
parent b7d8baa9de
commit ccf8893367
3 changed files with 48 additions and 43 deletions

View File

@ -8,7 +8,7 @@ DHGRSPRED = dhgr.tk/utils/DHGRSPRED.REL
DHGREASY = dhgr.tk/utils/DHGREASY.REL
DHGRRGB = dhgr.tk/utils/DHGRRGB.REL
DHGRSHOW = dhgr.tk/utils/DHGRSHOW.REL
DLGRSHOW = dhgr.tk/utils/DLGRSHOW.REL
DLGRCONV = dhgr.tk/utils/DLGRCONV.REL
PENGUINS = dhgr.tk/demos/penguins/PENGUINS.REL
@ -22,7 +22,7 @@ test: $(DHGRTEST)
cp $(DHGRTEST) prodos/dhgr.tk/test
cp dhgr.tk/test/*.BIN prodos/dhgr.tk/test
utils: $(DHGRSPRED) $(DHGREASY) $(DHGRRGB) $(DHGRSHOW) $(DLGRSHOW)
utils: $(DHGRSPRED) $(DHGREASY) $(DHGRRGB) $(DHGRSHOW) $(DLGRCONV)
-mkdir prodos/dhgr.tk/
-mkdir prodos/dhgr.tk/utils
-mkdir prodos/dhgr.tk/utils/samples
@ -67,9 +67,9 @@ $(DHGRSHOW): dhgr.tk/utils/dhgrshow.pla $(DHGRLIB) $(DHGRUTILS) dhgr.tk/inc/dhgr
./plasm -AMOW dhgr.tk/utils/dhgrshow.pla
acme --setpc 4094 -o $(DHGRSHOW) dhgr.tk/utils/dhgrshow.a
$(DLGRSHOW): dhgr.tk/utils/dlgrshow.pla $(DHGRLIB) $(DHGRUTILS) dhgr.tk/inc/dhgrlib.plh dhgr.tk/inc/dhgrutils.plh
./plasm -AMOW dhgr.tk/utils/dlgrshow.pla
acme --setpc 4094 -o $(DLGRSHOW) dhgr.tk/utils/dlgrshow.a
$(DLGRCONV): dhgr.tk/utils/dlgrconv.pla $(DHGRLIB) $(DHGRUTILS) dhgr.tk/inc/dhgrlib.plh dhgr.tk/inc/dhgrutils.plh
./plasm -AMOW dhgr.tk/utils/dlgrconv.pla
acme --setpc 4094 -o $(DLGRCONV) dhgr.tk/utils/dlgrconv.a
$(DHGRRGB): dhgr.tk/utils/dhgrrgb.pla $(DHGRLIB) $(DHGRUTILS) dhgr.tk/inc/dhgrlib.plh dhgr.tk/inc/dhgrutils.plh
./plasm -AMOW dhgr.tk/utils/dhgrrgb.pla

View File

@ -24,7 +24,7 @@ byte[] = 16, 12, 32 // BLUE
byte[] = 0, 28, 16 // GREEN
byte[] = 16, 20, 0 // BROWN
byte[] = 32, 4, 16 // RED
// Calculated 0-255 R G B
//// Calculated 0-255 R G B
//byte[] = 32, 46, 120 // BLUE
//byte[] = 8, 126, 32 // GREEN
//byte[] = 96, 82, 8 // BROWN

View File

@ -7,12 +7,13 @@ include "dhgr.tk/inc/dhgrutils.plh"
sysflags restxt1|resxtxt1|reshgr1|resxhgr1 // Reserve all the pages
const FRAME_WIDTH = 80
const FRAME_HEIGHT = 48
const FRAME_SIZE = FRAME_WIDTH * FRAME_HEIGHT / 2
const FRAME_WIDTH = 80
const FRAME_HEIGHT = 48
const FRAME_SIZE = FRAME_WIDTH * FRAME_HEIGHT / 2
const DLGRFRAME_SIZE = 2047
const PAUSE = 1
const HEIGHT_X2 = 2
const PAUSE = 1
const HEIGHT_X2 = 2
const WRITE_DHGR = 4
var arg, srcfilelist, srcpath, srcexp, srccnt
var entrylist, entrycnt
@ -67,57 +68,62 @@ def dlgrRead(filestr)#1
if frameptr and fileio:read(refnum, frameptr, DLGRFRAME_SIZE) <> DLGRFRAME_SIZE
heaprelease(frameptr)
frameptr = NULL
dhgrMode(DHGR_TEXT_MODE)
puts("Error reading: "); puts(filestr); putln
fin
fileio:close(refnum)
fin
return frameptr
end
def dlgrImport(filename, framenum)#0
var dlgrptr
byte screennum, i, j, numrows
def dhgrWrite(filename)#1
char[64] screenfile
screennum = framenum / 4
numrows = 192 / FRAME_HEIGHT
if flags & HEIGHT_X2
numrows = numrows / 2
fin
numrows--
j = framenum & ((flags & HEIGHT_X2) ?? 1 :: 3)
if not j
if framenum; getc; fin // Pause between frames
dcgrColor(CLR_GREY1)
dhgrClearBl7(0, 0, SCR_WIDTH7, SCR_HEIGHT)
strcpy(@screenfile, filename)
strcat(@screenfile, ".DHGR")
if screenWrite(@screenfile)
dhgrMode(DHGR_TEXT_MODE)
puts("Error writing: "); puts(@screenfile); putln
return FALSE
fin
return TRUE
end
def dlgrConvert(filename)#1
var dlgrptr
byte i, j, numrows
dcgrColor(CLR_GREY1)
dhgrClearBl7(0, 0, SCR_WIDTH7, SCR_HEIGHT)
dlgrptr = dlgrRead(filename)
if dlgrptr
dlgr2dcgr(dlgrptr)
heaprelease(dlgrptr)
if flags & HEIGHT_X2
dcgrPixMap(30, j*FRAME_HEIGHT*2, FRAME_WIDTH, FRAME_HEIGHT*2, @frame)
dcgrPixMap(30, 48, FRAME_WIDTH, FRAME_HEIGHT*2, @frame)
else
dcgrPixMap(30, j*FRAME_HEIGHT, FRAME_WIDTH, FRAME_HEIGHT, @frame)
dcgrPixMap(30, 72, FRAME_WIDTH, FRAME_HEIGHT, @frame)
fin
if flags & WRITE_DHGR
return dhgrWrite(filename)
fin
return TRUE
fin
strcpy(@screenfile, filename)
strcat(@screenfile, ".SCR")
screenfile++
screenfile[screenfile] = '0' + screennum
screennum++
//if screenWrite(@screenfile)
// dhgrMode(DHGR_TEXT_MODE)
// puts("Error writing: "); puts(@screenfile); putln
// return
//fin
return FALSE
end
arg = argNext(argFirst)
while arg and ^(arg + 1) == '-'
when toupper(^(arg + 2))
is 'P'
flags = flags | PAUSE
break
is '2'
flags = flags | HEIGHT_X2
break
is 'W'
flags = flags | WRITE_DHGR
break
wend
arg = argNext(arg)
loop
@ -147,14 +153,13 @@ while ^arg
loop
if srccnt
dhgrMode(DHGR_COLOR_MODE)
for entrycnt = 0 to srccnt - 1
dlgrImport(srcfilelist, entrycnt)
while srccnt and dlgrConvert(srcfilelist)
if flags & PAUSE; getc; fin
srcfilelist = srcfilelist + t_fileentry
entrycnt++
next
getc
srccnt--
loop
dhgrMode(DHGR_TEXT_MODE)
return 0
fin
puts("Usage: DHGRGREASY [-P] [-2] [-T] FRAMEFILE\n")
puts("Usage: DHGRGREASY [-P] [-2] [W] FRAMEFILE\n")
done