From bf13f24098687964d73bdf7241662df1a4030b73 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 27 Apr 2023 01:24:38 -0400 Subject: [PATCH] dhgr_viewer: automate --- graphics/dhgr_viewer/Makefile | 31 +++ graphics/dhgr_viewer/make_dhgr_viewer.c | 288 ++++++++++++++++++++ graphics/dhgr_viewer/plain/c64.png | Bin 0 -> 7947 bytes graphics/dhgr_viewer/plain/plain.data | 4 + graphics/dhgr_viewer/plain/stardew_dhgr.png | Bin 0 -> 37087 bytes graphics/dhgr_viewer/plain/sworg.png | Bin 0 -> 21724 bytes utils/hgr-utils/png2dhgr.c | 9 +- 7 files changed, 330 insertions(+), 2 deletions(-) create mode 100644 graphics/dhgr_viewer/Makefile create mode 100644 graphics/dhgr_viewer/make_dhgr_viewer.c create mode 100644 graphics/dhgr_viewer/plain/c64.png create mode 100644 graphics/dhgr_viewer/plain/plain.data create mode 100644 graphics/dhgr_viewer/plain/stardew_dhgr.png create mode 100644 graphics/dhgr_viewer/plain/sworg.png diff --git a/graphics/dhgr_viewer/Makefile b/graphics/dhgr_viewer/Makefile new file mode 100644 index 00000000..dacc899a --- /dev/null +++ b/graphics/dhgr_viewer/Makefile @@ -0,0 +1,31 @@ +include ../../Makefile.inc + +DOS33 = ../../utils/dos33fs-utils/dos33 +B2D = ../../utils/bmp2dhr/b2d +PNG_TO_40x96 = ../../utils/gr-utils/png_to_40x96 +PNG_TO_RLE = ../../utils/gr-utils/png2rle +EMPTY_DISK = ../../empty_disk/empty.dsk +TOKENIZE = ../../utils/asoft_basic-utils/tokenize_asoft + +all: make_dhgr_viewer + + +### + +make_dhgr_viewer: make_dhgr_viewer.o + $(CC) $(LFLAGS) -o make_dhgr_viewer make_dhgr_viewer.o + +make_dhgr_viewer.o: make_dhgr_viewer.c + $(CC) $(CFLAGS) -c make_dhgr_viewer.c + +### + +HELLO: hello.bas + $(TOKENIZE) < hello.bas > HELLO + +### + + +clean: + rm -f *~ *.o *.lst HELLO make_dhgr_viewer + diff --git a/graphics/dhgr_viewer/make_dhgr_viewer.c b/graphics/dhgr_viewer/make_dhgr_viewer.c new file mode 100644 index 00000000..674cda9b --- /dev/null +++ b/graphics/dhgr_viewer/make_dhgr_viewer.c @@ -0,0 +1,288 @@ +/* TODO: bail if will over-write files */ + + +#include +#include +#include +#include + +#define MAX_FILES 1024 + +static char *png_filenames[MAX_FILES]; +static char *zx02_aux_filenames[MAX_FILES]; +static char *zx02_bin_filenames[MAX_FILES]; +static char *labels[MAX_FILES]; + +/* Format: + +file_label FILE.ZX02 file.png + +*/ + +int main(int argc, char **argv) { + + char *result; + char string[BUFSIZ]; + int num_files=0; + int i,j,count,line=0; + char temp_png[BUFSIZ]; + char temp_zx02[BUFSIZ]; + char temp_label[BUFSIZ]; + char s_filename[BUFSIZ]; + char filename_base[BUFSIZ]; + char temp[BUFSIZ]; + + FILE *sss; + + /******************************************/ + /* parse command line */ + /******************************************/ + + if (argc>1) { + strcpy(filename_base,argv[1]); + } + else { + strcpy(filename_base,"dhires_plain"); + } + sprintf(s_filename,"%s.s",filename_base); + + /******************************************/ + /* scan in data */ + /******************************************/ + + while(1) { + line++; + result=fgets(string,BUFSIZ,stdin); + if (result==NULL) { + break; + } + if (result[0]=='#') continue; + + count=sscanf(string,"%s %s %s",temp_label,temp_zx02,temp_png); + if (count!=3) { + fprintf(stderr,"WARNING! weird input line %d (%d)\n",line,count); + fprintf(stderr,"\t%s",string); + } + else { + labels[num_files]=strdup(temp_label); + png_filenames[num_files]=strdup(temp_png); + + sprintf(temp,"%s.AUX.ZX02",temp_zx02); + zx02_aux_filenames[num_files]=strdup(temp); + + sprintf(temp,"%s.BIN.ZX02",temp_zx02); + zx02_bin_filenames[num_files]=strdup(temp); + + num_files++; + if (num_files>=MAX_FILES) { + fprintf(stderr,"ERROR! Too many files!\n"); + exit(-1); + } + } + } + + if (num_files==0) { + fprintf(stderr,"ERROR! No files found!\n"); + exit(-1); + } + + /******************************************/ + /* generate S file */ + /******************************************/ + + sss=fopen(s_filename,"w"); + if (sss==NULL) { + fprintf(stderr,"ERRROR opening %s\n",s_filename); + exit(-1); + } + + + fprintf(sss,"; Some nice hires images\n\n"); + fprintf(sss,".include \"../dhires_main.s\"\n\n"); + fprintf(sss,"MAX_FILES = %d\n\n",num_files); + + fprintf(sss,"bin_filenames_low:\n"); + for(i=0;i%s_filename_bin\n",labels[i]); + } + fprintf(sss,"\n"); + + fprintf(sss,"aux_filenames_low:\n"); + for(i=0;i%s_filename_aux\n",labels[i]); + } + fprintf(sss,"\n"); + + + fprintf(sss,"; filename to open is 30-character Apple text:\n"); + + for(i=0;i HELLO\n\n"); + + fprintf(sss,"####\n\n"); + + fprintf(sss,"%s.dsk:\tHELLO DHIRES\\\n",filename_base); + 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 XKSqL9AD_uQ00000NkvXXu0mjf=S|2< literal 0 HcmV?d00001 diff --git a/graphics/dhgr_viewer/plain/sworg.png b/graphics/dhgr_viewer/plain/sworg.png new file mode 100644 index 0000000000000000000000000000000000000000..a547c2caedc85d8096c5ed248d676802ad0ae875 GIT binary patch literal 21724 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 literal 0 HcmV?d00001 diff --git a/utils/hgr-utils/png2dhgr.c b/utils/hgr-utils/png2dhgr.c index e15fe155..1f8f8e36 100644 --- a/utils/hgr-utils/png2dhgr.c +++ b/utils/hgr-utils/png2dhgr.c @@ -71,6 +71,7 @@ int loadpng(char *filename, unsigned char *image,*out_ptr; int width, height; int a2_color; + int skip=1; png_byte bit_depth; png_structp png_ptr; @@ -121,11 +122,15 @@ int loadpng(char *filename, color_type = png_get_color_type(png_ptr, info_ptr); bit_depth = png_get_bit_depth(png_ptr, info_ptr); - if (width!=140) { + if ((width!=140) && (width!=280)) { fprintf(stderr,"Unknown width %d\n",width); return -1; } + if (width==280) { + skip=2; + } + if (height!=192) { fprintf(stderr,"Unknown height %d\n",height); return -1; @@ -183,7 +188,7 @@ int loadpng(char *filename, for(y=0;y