pixelpedant Posted January 22, 2022 Share Posted January 22, 2022 Anyone have information or documentation on the data structure of the CSGD clipart format? Doesn't seem like anything particularly obvious, looking at the binary data. Presumably something more similar to the TI Artist Instance format than the TI Artist bitmap format (which is just VDP pattern and, optionally, colour data dumps). Files typically use the NAME/GR naming structure. But does anyone have documentation on the data structure? Quote Link to comment Share on other sites More sharing options...
+qwertyfan994 Posted January 23, 2022 Share Posted January 23, 2022 5 hours ago, pixelpedant said: Anyone have information or documentation on the data structure of the CSGD clipart format? Doesn't seem like anything particularly obvious, looking at the binary data. Presumably something more similar to the TI Artist Instance format than the TI Artist bitmap format (which is just VDP pattern and, optionally, colour data dumps). Files typically use the NAME/GR naming structure. But does anyone have documentation on the data structure? I have some old source code for MS-DOS viewers and converters when I was playing around with a simple C compiler for MS-DOS. I am not sure where I read about the CSGD format decoding, though. I think I was working on getting it to work from MS-DOS and then convert it to a Geneve executable, but I don't find my Geneve code. /* SHOWGR.C - A 'C' PROGRAM TO DISPLAY '_GR' FILES FROM THE MDOS PROMPT */ /* JEFFREY A. KUHLMANN 27FEB94 */ #include "graphics.h" #include "stdio.h" #include "string.h" #include "stdlib.h" #include "io.h" #include "conio.h" char infn[81]; /* input file name */ char str1[81]; char buf[10000]; FILE inf; int arry[20]; /* utility array */ char rows[81]; /* row string */ char cols[81]; /* columns string */ int ctr,end,delim,col,row; int rctr,cctr,cptr; int chardat[8],chrptr; char hexdat[81]; int hex[4]; int blank[4],where,pval,ccc; int mptr,fd,gm; main(argc,argv) int argc; char **argv; { gm=4; if (argc<2) { setvmode(2); puts("TI-CSGD PICTURE VIEWER FOR MDOS"); puts("Press any key when done"); puts("viewing picture..."); puts("TI-CSGD file name? (w/o _GR)"); gets(infn); } else strcpy(infn,argv[1]); strcat(infn,".GR"); if(argc>2)gm=atoi(argv[2]); setvmode(gm); fd=open(infn,O_BINARY); /* where=bread(infn,0,1,buf); */ mptr=157; if (!fd) {printf("Can't open %s",infn); setvmode(2);exit(0);} read(fd,buf,382); for(rctr=0;rctr<5;rctr++) for(cctr=0;cctr<5;cctr++) for(ccc=0;ccc<8;ccc++) { pval=buf[mptr++]; shwpic(); } while(!kbhit()); /* wait for keypress */ setvmode(2); exit(0); } shwpic() { int lctr,ltemp,ltemp1,one; one=1; for(lctr=7;lctr>=0;lctr=lctr-1) { if(lctr)ltemp1=one<<lctr; else ltemp1=1; pen_color(15); if(pval>=ltemp1) setpixel(cctr*8+ccc+1,rctr*8+(7-lctr)+1); pval=pval%ltemp1; } return; } </code> <code> /* GR2TIA.C - A 'C' PROGRAM TO CONVERT '_GR' FILES TO TI-Artist FROM THE MDOS PROMPT */ /* JEFFREY A. KUHLMANN 27FEB94 */ #include "dos.h" #include "graphics.h" #include "stdio.h" #include "string.h" #include "stdlib.h" #include "io.h" #include "conio.h" char infn[81]; /* input file name */ char infn1[81]; char str1[81]; char buf[10000]; FILE inf,outf; int arry[20]; /* utility array */ char rows[81]; /* row string */ char cols[81]; /* columns string */ int ctr,end,delim,col,row; int rctr,cctr,cptr; int chardat[8],chrptr; char hexdat[81]; int hex[4]; int blank[4],where,pval,ccc; int mptr,fd,gm,fd1; main(argc,argv) int argc; char **argv; { gm=6; if (argc<2) { setvmode(2); puts("TI-CSGD PICTURE VIEWER FOR MDOS"); puts("Press any key when done"); puts("viewing picture..."); puts("TI-CSGD file name? (w/o _GR)"); gets(infn); strcpy(infn1,infn); } else {strcpy(infn,argv[1]); strcpy(infn1,infn);} strcat(infn,".GR"); if(argc>2)gm=atoi(argv[2]); setvmode(gm); fd=open(infn,O_BINARY); /* where=bread(infn,0,1,buf); */ mptr=157; if (!fd) {printf("Can't open %s",infn); setvmode(2);exit(0);} read(fd,buf,382); for(rctr=0;rctr<5;rctr++) for(cctr=0;cctr<5;cctr++) for(ccc=0;ccc<8;ccc++) { pval=buf[mptr++]; shwpic(); } sati(); /* save as TI-Artist Instance */ /* poke (0xb800,0,255); for (pval=0;pval<81;pval++)poke(0xb800,pval,255); */ /* while(!kbhit()); */ /* wait for keypress */ setvmode(2); exit(0); } shwpic() { int lctr,ltemp,ltemp1,one; one=1; for(lctr=7;lctr>=0;lctr=lctr-1) { if(lctr)ltemp1=one<<lctr; else ltemp1=1; pen_color(15); if(pval>=ltemp1) setpixel(cctr*8+ccc,rctr*8+(7-lctr)); pval=pval%ltemp1; } return; } sati() { int rctr,cctr,ctr,res; strcat(infn1,".I"); fd1=fopen(infn1,"w"); fprintf(fd1,"5,5\n"); for(rctr=0;rctr<=4;rctr++) for(cctr=0;cctr<=4;cctr++) { for(ctr=0;ctr<=7;ctr++) {res=peekb(0xb800,(rctr*8+ctr)*40+cctr); /* res=255; */ if( ((ctr)) & 1) res=peekb(0xba00,(rctr*8+ctr-1)*40+cctr); fprintf(fd1,"%d",res); if(ctr<7)fprintf(fd1,",");} fprintf(fd1,"\n"); } fclose(fd1); /* pokeb(0xb800,0,255); pokeb(0xb800,5,255); pokeb(0xb800,80*20,255); pokeb(0xb800,80*20+5,255); */ return; } 1 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted January 23, 2022 Share Posted January 23, 2022 I think the format for the graphics may have actually been in one of the three CSGD manuals. I went looking for mine tonight but I only found my manual set for the Printer's Apprentice and all of my manuals for Asgard's PagePro (There are about 20-30 of the PagePro manuals). 1 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted January 23, 2022 Share Posted January 23, 2022 I would like to be able to find documentation of the font formats for all of these. I found just enough on the back page of the TI Artist manual to decipher those. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.