1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2026-04-26 12:19:18 +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
+5 -5
View File
@@ -8,7 +8,7 @@ DHGRSPRED = dhgr.tk/utils/DHGRSPRED.REL
DHGREASY = dhgr.tk/utils/DHGREASY.REL DHGREASY = dhgr.tk/utils/DHGREASY.REL
DHGRRGB = dhgr.tk/utils/DHGRRGB.REL DHGRRGB = dhgr.tk/utils/DHGRRGB.REL
DHGRSHOW = dhgr.tk/utils/DHGRSHOW.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 PENGUINS = dhgr.tk/demos/penguins/PENGUINS.REL
@@ -22,7 +22,7 @@ test: $(DHGRTEST)
cp $(DHGRTEST) prodos/dhgr.tk/test cp $(DHGRTEST) prodos/dhgr.tk/test
cp dhgr.tk/test/*.BIN 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/
-mkdir prodos/dhgr.tk/utils -mkdir prodos/dhgr.tk/utils
-mkdir prodos/dhgr.tk/utils/samples -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 ./plasm -AMOW dhgr.tk/utils/dhgrshow.pla
acme --setpc 4094 -o $(DHGRSHOW) dhgr.tk/utils/dhgrshow.a 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 $(DLGRCONV): dhgr.tk/utils/dlgrconv.pla $(DHGRLIB) $(DHGRUTILS) dhgr.tk/inc/dhgrlib.plh dhgr.tk/inc/dhgrutils.plh
./plasm -AMOW dhgr.tk/utils/dlgrshow.pla ./plasm -AMOW dhgr.tk/utils/dlgrconv.pla
acme --setpc 4094 -o $(DLGRSHOW) dhgr.tk/utils/dlgrshow.a 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 $(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 ./plasm -AMOW dhgr.tk/utils/dhgrrgb.pla
+1 -1
View File
@@ -24,7 +24,7 @@ byte[] = 16, 12, 32 // BLUE
byte[] = 0, 28, 16 // GREEN byte[] = 0, 28, 16 // GREEN
byte[] = 16, 20, 0 // BROWN byte[] = 16, 20, 0 // BROWN
byte[] = 32, 4, 16 // RED byte[] = 32, 4, 16 // RED
// Calculated 0-255 R G B //// Calculated 0-255 R G B
//byte[] = 32, 46, 120 // BLUE //byte[] = 32, 46, 120 // BLUE
//byte[] = 8, 126, 32 // GREEN //byte[] = 8, 126, 32 // GREEN
//byte[] = 96, 82, 8 // BROWN //byte[] = 96, 82, 8 // BROWN
@@ -7,12 +7,13 @@ include "dhgr.tk/inc/dhgrutils.plh"
sysflags restxt1|resxtxt1|reshgr1|resxhgr1 // Reserve all the pages sysflags restxt1|resxtxt1|reshgr1|resxhgr1 // Reserve all the pages
const FRAME_WIDTH = 80 const FRAME_WIDTH = 80
const FRAME_HEIGHT = 48 const FRAME_HEIGHT = 48
const FRAME_SIZE = FRAME_WIDTH * FRAME_HEIGHT / 2 const FRAME_SIZE = FRAME_WIDTH * FRAME_HEIGHT / 2
const DLGRFRAME_SIZE = 2047 const DLGRFRAME_SIZE = 2047
const PAUSE = 1 const PAUSE = 1
const HEIGHT_X2 = 2 const HEIGHT_X2 = 2
const WRITE_DHGR = 4
var arg, srcfilelist, srcpath, srcexp, srccnt var arg, srcfilelist, srcpath, srcexp, srccnt
var entrylist, entrycnt var entrylist, entrycnt
@@ -67,57 +68,62 @@ def dlgrRead(filestr)#1
if frameptr and fileio:read(refnum, frameptr, DLGRFRAME_SIZE) <> DLGRFRAME_SIZE if frameptr and fileio:read(refnum, frameptr, DLGRFRAME_SIZE) <> DLGRFRAME_SIZE
heaprelease(frameptr) heaprelease(frameptr)
frameptr = NULL frameptr = NULL
dhgrMode(DHGR_TEXT_MODE)
puts("Error reading: "); puts(filestr); putln
fin fin
fileio:close(refnum) fileio:close(refnum)
fin fin
return frameptr return frameptr
end end
def dlgrImport(filename, framenum)#0 def dhgrWrite(filename)#1
var dlgrptr
byte screennum, i, j, numrows
char[64] screenfile char[64] screenfile
screennum = framenum / 4 strcpy(@screenfile, filename)
numrows = 192 / FRAME_HEIGHT strcat(@screenfile, ".DHGR")
if flags & HEIGHT_X2 if screenWrite(@screenfile)
numrows = numrows / 2 dhgrMode(DHGR_TEXT_MODE)
fin puts("Error writing: "); puts(@screenfile); putln
numrows-- return FALSE
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)
fin 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) dlgrptr = dlgrRead(filename)
if dlgrptr if dlgrptr
dlgr2dcgr(dlgrptr) dlgr2dcgr(dlgrptr)
heaprelease(dlgrptr) heaprelease(dlgrptr)
if flags & HEIGHT_X2 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 else
dcgrPixMap(30, j*FRAME_HEIGHT, FRAME_WIDTH, FRAME_HEIGHT, @frame) dcgrPixMap(30, 72, FRAME_WIDTH, FRAME_HEIGHT, @frame)
fin fin
if flags & WRITE_DHGR
return dhgrWrite(filename)
fin
return TRUE
fin fin
strcpy(@screenfile, filename) return FALSE
strcat(@screenfile, ".SCR")
screenfile++
screenfile[screenfile] = '0' + screennum
screennum++
//if screenWrite(@screenfile)
// dhgrMode(DHGR_TEXT_MODE)
// puts("Error writing: "); puts(@screenfile); putln
// return
//fin
end end
arg = argNext(argFirst) arg = argNext(argFirst)
while arg and ^(arg + 1) == '-' while arg and ^(arg + 1) == '-'
when toupper(^(arg + 2)) when toupper(^(arg + 2))
is 'P'
flags = flags | PAUSE
break
is '2' is '2'
flags = flags | HEIGHT_X2 flags = flags | HEIGHT_X2
break break
is 'W'
flags = flags | WRITE_DHGR
break
wend wend
arg = argNext(arg) arg = argNext(arg)
loop loop
@@ -147,14 +153,13 @@ while ^arg
loop loop
if srccnt if srccnt
dhgrMode(DHGR_COLOR_MODE) dhgrMode(DHGR_COLOR_MODE)
for entrycnt = 0 to srccnt - 1 while srccnt and dlgrConvert(srcfilelist)
dlgrImport(srcfilelist, entrycnt) if flags & PAUSE; getc; fin
srcfilelist = srcfilelist + t_fileentry srcfilelist = srcfilelist + t_fileentry
entrycnt++ srccnt--
next loop
getc
dhgrMode(DHGR_TEXT_MODE) dhgrMode(DHGR_TEXT_MODE)
return 0 return 0
fin fin
puts("Usage: DHGRGREASY [-P] [-2] [-T] FRAMEFILE\n") puts("Usage: DHGRGREASY [-P] [-2] [W] FRAMEFILE\n")
done done