10 rem ************************************************************ 20 rem ** ATARI To IFF Picture converter ** 30 rem ** ** 40 rem ** By Francois Lionet ** 50 rem ************************************************************ 60 key off : mode 1 : curs on : show on : locate 0,0 : centre ">> IFF picture converter <<<" 70 N$=file select$("*.PI1"," Please choose a .NEO or .PI1 picture.") 80 if N$="" then default : end 90 X=instr(N$,".PI1") : if X=0 then X=instr(N$,".NEO") 100 if X=0 then bell : goto 60 110 NS$=left$(N$,X)+"IFF" 120 hide on : curs off : mode 0 : fade 1 : wait 7 130 load N$ 140 erase 11 : reserve as work 11,50000 150 AD=start(11) 160 A$="FORM" : gosub 400 : A=0 : gosub 390 : A$="ILBM" : gosub 400 170 A$="BMHD" : gosub 400 : A=20 : gosub 390 180 doke AD,320 : doke AD+2,200 : doke AD+4,0 : doke AD+6,0 : poke AD+8,4 : poke AD+9,0 : poke AD+10,0 : poke AD+11,0 : doke AD+12,0 : poke AD+14,10 : poke AD+15,11 : doke AD+16,320 : doke AD+18,200 190 AD=AD+20 200 A$="CMAP" : gosub 400 : A=48 : gosub 390 210 for X=0 to 15 220 C=colour(X) : R=(C and $700)/$100 : G=(C and $70)/$10 : B=C and $7 230 poke AD,R*32 : poke AD+1,G*32 : poke AD+2,B*32 : AD=AD+3 240 next X 250 A$="BODY" : gosub 400 : A=32000 : gosub 390 260 for Y=0 to 199 270 for P=0 to 3 : AE=logic+Y*160+P*2 280 for X=0 to 19*8 step 8 290 doke AD,deek(AE+X) : doke AE+X,0 : AD=AD+2 300 next X 310 next P 320 next Y 330 loke start(11)+4,AD-start(11)-8 340 fade 1 : wait 8 : fade 1,0,$777 : mode 1 : locate 0,10 : centre "Saving "+NS$ 350 show on 360 NS$=file select$("*.iff",space$((32-len(N$))/2)+NS$) 370 bsave NS$,start(11) to AD 380 goto 60 390 loke AD,A : AD=AD+4 : return 400 loke AD,leek(varptr(A$)) : AD=AD+4 : return