; *** Graphics 9 Picture Printer›; *** for EPSON/GEMINI Printers.›; ›; Files MUST be uncompressed (most are)›; resulting in 7680 bytes or 62 SD sectors long.›;›; written by Joe McFarland 8/31/86.›; address questions to CIS #74666,601›;›; Action! language is (c) 1983 Action Computer Services›;›MODULE›BYTE x,y,dat,half,v,ty,C,key,› start=[6],select=[5]›CARD screen=88,console=[53279]›BYTE POINTER sloc›CHAR ARRAY printfile(15)›BYTE ARRAY drive,DN(1),file(1)››PROC Getdir()› drive="D1:*.PI?"›PrintE("List Directory Y/N")› y=GetD(7)›IF y='Y OR y='y Then› PrintE("Which Drive")› Print(">")› InputS(DN)› Sassign(drive,DN,2,2)› CLOSE(1)› OPEN(1,drive,6,0)› FOR X=0 TO 30› DO› INPUTSD(1,file)› IF EOF(1) Then PutE() EXIT FI› half=x MOD 2› IF half then PrintE(file)› Else Print(file):Print(" ") FI›OD›CLOSE(1)›FI›Return››PROC GetScreen()›PutE()›PrintE("ÓÔÁŇÔ = Print Picture")›PrintE("ÓĹĚĹĂÔ = New Picture")›PrintE("Graphic 9 Screen to print")›PrintE(">Dn:FILENAME.EXT")›Print(">")›InputS(printfile)›PrintE("IS PICTURE CODED?")› C=GetD(7)›;Some Gr9 pictures have a 'touch-tablet›;header.This routine discards the code.›Close(1)›Open(1,printfile,4,0)›IF C='Y OR C='y Then› For x=0 to 26› DO› GetD(1)› OD›FI›Graphics(9)›FOR sloc=screen TO screen+7679›DO› sloc^=GetD(1)›OD›Close(1)›RETURN›››PROC Dump()›;These are the color masks, 4 per Gr.9 color.›BYTE ARRAY template=[255 255 255 255 255 255 247 255 255 223 255 251 255 238 255 187› 255 85 255 170 221 119 221 119 170 85 170 85 204 51 204 51 › 102 51 102 51 34 136 34 136 0 85 0 85 0 51 0 51› 0 17 0 68 0 32 0 4 0 0 8 0 0 0 0 0]››Close(2)›Open(2,"P:",8)›PrintDE(2,"@A")›;›FOR x=0 TO 79›DO› PrintD(2," ");15› PrintD(2,"L")› FOR ty=0 TO 191 › DO › y=191-ty› sloc=screen+40*y+x/2› half=x MOD 2 ;which half?› v=sloc^› IF half THEN v=v&$0F › ELSE v=v RSH 4 FI ;shift color if odd › FOR dat=0 TO 3› DO › PutD(2,template(v*4+dat))› OD› OD ;done printing line› PutDE(2)›OD›PrintD(2," ") ›PrintDE(2,"@")› ;restore normal operation›Close(2)›Graphics(0)›PutE()›PrintF(" * Done printing %S%E",printfile)›PutE()›RETURN››PROC Main()› DO› Getdir()› Getscreen()› DO› key=Peek(console)› UNTIL key=start Or key=select› OD› IF key=start Then› Dump()› ELSE GRAPHICS(0)› FI› ;Main()› OD ›Return››||||