(****************************************************************************** :Program. TitleToObj.mod :Contents. Converts the ILBM pic "Title.IFF" to Title.obj :Remark. picture must have 5 planes (320*256) :Version. 0.2 :Date. 01.11.91 :Author. Markus Uhlendahl Peter Groth :Address. Vorm Burgtor 16 Kleine Koppel 12 :Address. D-4408 Dülmen D-4408 Dülmen :Phone. 02594/81540 02594/82375 :Language. Modula-2 :Translator. M2Amiga 4.0d :History. 27.07.91 --- 0.1 --- created 01.11.91 --- 0.2 --- bug fixed ******************************************************************************) MODULE TitleToObj; FROM Arts IMPORT Assert; FROM FileSystem IMPORT Close,File,Lookup,ReadBytes,Response,SetPos; FROM Heap IMPORT Allocate,Deallocate; FROM ObjFileCreator IMPORT AddData,AddDataBlock,AddLabel,CreateDataHunk,WriteObjFile; FROM String IMPORT Compare; FROM SYSTEM IMPORT ADDRESS,ADR; TYPE String4=ARRAY [0..4] OF CHAR; Chunk=RECORD id : String4; len : LONGCARD; data: ADDRESS; END; VAR chunk : Chunk; hunk,i : CARDINAL; file : File; dataPtr: POINTER TO SHORTCARD; data : SHORTCARD; PROCEDURE ReadChunk(VAR chunk:Chunk): BOOLEAN; VAR act: LONGINT; BEGIN ReadBytes(file,ADR(chunk.id),4,act); IF act=4 THEN ReadBytes(file,ADR(chunk.len),4,act); Allocate(chunk.data,chunk.len); Assert(chunk.data#NIL,ADR("Not enough memory")); ReadBytes(file,chunk.data,chunk.len,act); RETURN(TRUE); ELSE RETURN(FALSE); END; END ReadChunk; PROCEDURE FreeChunk(VAR chunk: Chunk); BEGIN Deallocate(chunk.data); END FreeChunk; BEGIN Lookup(file,"Grafik/Title.IFF",1024,FALSE); Assert(file.res=done,ADR("Title.IFF not found")); SetPos(file,12); hunk:=CreateDataHunk("pic",FALSE); WHILE ReadChunk(chunk) DO IF Compare(chunk.id,"BODY")=0 THEN AddLabel(hunk,"Title_data"); AddData(hunk,chunk.data,chunk.len); ELSIF Compare(chunk.id,"CMAP")=0 THEN AddLabel(hunk,"Title_cmap"); FOR i:=0 TO chunk.len-1 DO dataPtr:=ADDRESS(chunk.data+ADDRESS(i)); data:=dataPtr^ DIV 16; AddDataBlock(hunk,data); END; END; FreeChunk(chunk); END; WriteObjFile("obj/Title.obj","TitlePic"); END TitleToObj.