›;›; READPIC - Reads MicroIllustrator›; picture files. Original code by›; Robert E. Wilson, REW Consulting.›;›; Modified for Action! and converted›; to code blocks by Harold Long,›; Bolton, MA. 14-Jan-1985›;›PROC GetByt=*() [›;Provides CCIO and bailout functions›$A5$AA$C5$AC$D0$06$A5$A9$C5$AB$F0$16 ›$A2$10$A9$00$8D$58$03$8D$59$03$20$56 ›$E4$30$09$E6$A9$D0$02$E6$AA$60$A9$01 ›$85$A0$68$68$60]›;Provides screen address canculation›PROC NxtPnt=*() [$24$A2$50$2C$C6$A5$F0 ›$0E$A9$50$18$65$A3$85$A3$A9$00$65$A4 ›$85$A4$60$A9$60$85$A5$C6$A6$F0$0E$A9 ›$28$18$65$AD$85$A3$A9$00$65$AE$85$A4 ›$60$A9$02$85$A6$A9$01$18$65$AD$85$AD ›$85$A3$A9$00$65$AE$85$AE$85$A4$60]››;›BYTE FUNC READPIC=*() [›; Segment contains 181 bytes.›$A5$58$85$AD$85$A3$A5$59$85$AE$85$A4 ›$A9$60$85$A5$A9$02$85$A6$A9$07$8D$52 ›$03$A9$A0$8D$54$03$A9$00$8D$55$03$85 ›$A7$85$AC$A9$FF$85$AB$85$A9$85$AA$20 ›GetByt$85$A0$A5$A9$C9$07$F0$0A$C9$0C ›$F0$10$C9$1A$F0$2B$D0$EB$A5$A0$4A$6A ›$6A$85$A2$18$90$E1$A9$05$85$A1$20GetByt›$A6$A7$9D$C4$02$E6$A7$C6$A1$D0$F2 ›$20GetByt$85$AB$20GetByt$85$AC$18$90 ›$C2$A5$A2$F0$24$20GetByt$85$A1$29$7F ›$D0$0F$20GetByt$85$A8$E6$A8$20GetByt ›$85$A7$18$90$06$85$A7$A9$01$85$A8$A5 ›$A1$29$80$85$A1$20GetByt$85$A0$A0$00 ›$A5$A0$91$A3$20NxtPnt$A5$A2$F0$EE$C6 ›$A7$D0$04$C6$A8$F0$C2$A5$A1$F0$E9$D0 ›$E0]››;›; Build an ANCIC E mode display list›;›MODULE›BYTE SDMCTL=$22F, DINDEX=$57›CARD SDLSTL=$230››PROC ANTIC_E()› BYTE TEMP› CARD CHANGE› Graphics (8+16) ;Need GR 8› TEMP=Peek(SDMCTL) ;Save display control reg› Poke (SDMCTL, 0) ;Turn off display› Poke (SDLSTL+3,78) ;Force the first LMS› FOR CHANGE=(SDLSTL+6) TO (SDLSTL+204) ;WE KNOW HOW LONG MODE 8 IS› DO› IF Peek (CHANGE)=15 THEN› Poke (CHANGE, 14)› ELSEIF Peek (CHANGE)=79 THEN› Poke (CHANGE, 78)› FI› OD› Poke (DINDEX,7) ;Fool OS to think it's mode 7› Poke (SDMCTL, TEMP) ;Turn screen back on›RETURN››MODULE ;FILEHAN.ACT - General file and screen handler››; Copyright (c) 1984 Harold Long, Bolton MA››BYTE ARRAY fname(18) ;file name+ext›BYTE ARRAY infile(16),outfile(16) ››BYTE FUNC IsLower(BYTE c)›› IF (c>='a) AND (c<='z) THEN› RETURN(1)› FI›RETURN(0)››BYTE FUNC ToUpper(BYTE c)›› IF IsLower(c) THEN› c ==- $20› FI›RETURN(c)››PROC Test_Name(BYTE POINTER fname)› BYTE chr, cnt, ext› BYTE ARRAY str132(24)› chr=0› ext=0› FOR cnt=1 TO fname(0) DO› fname(cnt)=ToUpper(fname(cnt))› IF fname(cnt)='. THEN ext=cnt FI› IF fname(cnt)=': THEN chr=1 FI› OD› IF (ext>0) AND (ext # (fname(0)-3)) THEN› fname(0)=ext+3› FI› IF chr=0 THEN› str132(0)=fname(0)+3› str132(1)='D› str132(2)='1› str132(3)=':› FOR cnt=1 TO fname(0) DO› str132(cnt+3)=fname(cnt) OD› FOR cnt=0 TO str132(0) DO› fname(cnt)=str132(cnt) OD› FI›RETURN››;›; Main shell routine›;›PROC Shell(BYTE ARRAY infile, outfile)›BYTE result›BYTE key=764› Close(1) ;for sure› Open(1,infile,4,0) ;open input› ANTIC_E() ;set up display list this way› ;for all those poor 400/800› ;owners...› result=READPIC()› Close(1)›DO› UNTIL key # 255›OD›key=255›RETURN››PROC Get_Files()›BYTE cnt›DO› Poke(82,1)› Put(125)› PutE()› PrintE("ÍÉÃÒÏÓ - MicroIllustrator Utilities.")› PrintE("Provides simple cut and paste")› PrintE("functions as demonstration routines.")› PrintE("Copyright (c) 1984 Harold Long")› PrintE("Permission granted to distribute for")› PrintE("non-commercial purposes.")› PutE()› Position(1,8)› PrintE("Input File? ") › Close(7)› Open(7,"K:",4,0)› DO› Position(13,8)› Put(' )› InputS(infile)› Test_Name(infile)› Position(13,8)› Print(" ")› Position(13,8)› Put(' )› Print(infile)› PutE()› PutE()› Print("Correct (Y/N)? ")› DO› cnt=GetD(7)› UNTIL cnt='Y OR cnt='y› OR cnt='N OR cnt='n OD› Put(cnt)› UNTIL cnt='Y OR cnt='y OD› PutE()› Shell(infile, outfile)›OD›RETURN››