Short: Use the picasso gfxboard with Modula-2 Author: C.Wartmann@GANDALF.berlinet.de Uploader: C Wartmann GANDALF berlinet de Type: dev/m2 Architecture: m68k-amigaos Use your Picasso II with Modula-2 ! Every function of vilintuisup.library avaible via Modula-2 + fast ML Line-routines. Lots of demo programms. FREEWARE, but please send me your suggestions/enhancements etc. via E-Mail. Dokumentatation zu den Modula-2 Schnittstellenmodulen für die Picasso Grafikkarte von VillageTronic. ******************************************************************************* : Program. VilIntuiSupL.def : Author. Carsten Wartmann (Crazy Video) : Address. Wutzkyallee 83, 12353 Berlin : Phone. 030/6614776 : E-Mail C.WARTMANN@GANDALF.berlinet.de Carsten_Wartmann@tfh-berlin.de : Version. 0.99c (0.99b) : Date. 21.08.1995 (16.11.1994) (24.8.94) (22.Feb.1994) : Copyright. Freeware : Language. Modula-2 : Compiler. M2Amiga V4.3d : Contents. Macht die VilIntuiSup.library für MODULA-2 (M2Amiga) : Contents. Programmierer nutzbar. *******************************************************************************) Folgende Routinen stellt die VilIntuiSup.library zur Verfügung : DEFINITION MODULE VilIntuiSupL{"vilintuisup.library",2} ; FROM SYSTEM IMPORT ADDRESS,BYTE ; FROM ExecD IMPORT ListPtr ; FROM IntuitionD IMPORT ScreenPtr,RememberPtr ; FROM UtilityD IMPORT TagItemPtr,Tag ; IMPORT vil:VilIntuiSupD,R ; (* Old function, do not use in future !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*) PROCEDURE OpenVillageScreen(mode{R.A0} : vil.DimensionPtr) : ScreenPtr ; CODE -30 ; PROCEDURE OpenVillageScreenTagList(tags{R.A0} : TagItemPtr) : ScreenPtr ; CODE -114 ; PROCEDURE CloseVillageScreen(screen{R.A0} : ScreenPtr) ; CODE -36 ; PROCEDURE LockVillageScreen(screen{R.A0} : ScreenPtr) : ADDRESS ; CODE -42 ; PROCEDURE UnLockVillageScreen(screen{R.A0} : ScreenPtr) ; CODE -48 ; PROCEDURE GetMemSize(screen{R.A0} : ScreenPtr) : LONGCARD ; CODE -72 ; PROCEDURE VillageScreenData(screen{R.A0} : ScreenPtr ; tag{R.D0} : Tag) : LONGCARD ; CODE -120 ; PROCEDURE IsVillageScreen(screen{R.A0} : ScreenPtr) : BOOLEAN ; CODE -66 ; PROCEDURE VillageRectFill(screen{R.A0} : ScreenPtr ; fillrec{R.A1} : vil.VilFillRecordPtr) : LONGINT ; CODE -78 ; PROCEDURE VillageBlitCopy(screen{R.A0} : ScreenPtr ; record{R.A1} : vil.VilCopyRecordPtr) ; CODE -54 ; PROCEDURE WaitVillageBlit ; CODE -60 ; PROCEDURE VillageModeRequest(tags{R.A0} : TagItemPtr) : LONGCARD ; CODE -84 ; PROCEDURE VillageModeList(memorykey{R.A0} : RememberPtr ; tags{R.A1} : TagItemPtr) : ListPtr ; CODE -90 ; PROCEDURE VillageBestModeID(tags{R.A0} : TagItemPtr) : LONGCARD ; CODE -108 ; PROCEDURE VillageGetBufAddr(screen{R.A0} : ScreenPtr ; num{R.D0} : LONGCARD) : ADDRESS ; CODE -126 ; PROCEDURE VillageSetDisplayBuf(screen{R.A0} : ScreenPtr ; num{R.D0} : LONGCARD) ; CODE -132 ; PROCEDURE VillageSetSegment(segnum{R.D0} : LONGCARD) ; CODE -96 ; PROCEDURE VillageGetSegment ; CODE -102 ; END VilIntuiSupL.lib2 Ansonsten ist noch VilIntuiSupD.def aufschlussreich. (******************************************************************************* : Program. VilIntuiSupD.def : Author. Carsten Wartmann (Crazy Video) : Address. Wutzkyallee 83, 12353 Berlin : Phone. 030/6614776 : E-Mail C.Wartmann@GANDALF.berlinet.de (bevorzugt) : E-Mail Carsten_Wartmann@tfh-berlin.de : Version. 1.0 : Date. 21.08.1995 (16.Nov.1994) : Copyright. Freeware : Language. Modula-2 : Compiler. M2Amiga V4.3d : Contents. Macht die VilIntuiSup.library für MODULA-2 (M2Amiga) : Contents. Programmierer nutzbar. : Contents. Enthält Die Definitionen der Tags, Const. etc. für : Contents. die VilIntuiSup.library *******************************************************************************) DEFINITION MODULE VilIntuiSupD ; FROM ExecD IMPORT Node ; FROM IntuitionD IMPORT ScreenPtr ; FROM UtilityD IMPORT tagUser ; FROM SYSTEM IMPORT ADDRESS,BYTE ; IMPORT R; [...] Definitionen gelöscht !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (* Support *) (* Setze PP für 68000er *) PROCEDURE SetPackedPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3} : CARDINAL ; color{R.D4} : CARDINAL) ; (* Setze TrueColorPixel *) PROCEDURE SetTrueColorPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3} : CARDINAL ; r{R.D4},g{R.D5},b{R.D6} : CARDINAL) ; (* Setze 15(6)BitPixel *) PROCEDURE Set15BitPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3} : CARDINAL ; r{R.D4},g{R.D5},b{R.D6} : CARDINAL) ; PROCEDURE Set16BitPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3} : CARDINAL ; r{R.D4},g{R.D5},b{R.D6} : CARDINAL) ; (* Linienroutinen *) (* In Assembler aber mit Sicherheitsabfrage *) PROCEDURE LinePacked(scr{R.A0} : ScreenPtr ; x1{R.D5},y1{R.D6}, x2{R.D2},y2{R.D3},color{R.D4} : LONGINT) ; color{R.D4} : INTEGER) ; PROCEDURE LineTrueColor(scr : ScreenPtr ; x1,y1,x2,y2,r,g,b : INTEGER) ; PROCEDURE Line15Bit(scr : ScreenPtr ; x1,y1,x2,y2,r,g,b : INTEGER) ; PROCEDURE Line16Bit(scr : ScreenPtr ; x1,y1,x2,y2,r,g,b : INTEGER) ; (* Hi-Color Support*) PROCEDURE Get15FromRGB(r{R.D4},g{R.D5},b{R.D6} : CARDINAL) : CARDINAL ; PROCEDURE Get16FromRGB(r{R.D4},g{R.D5},b{R.D6} : CARDINAL) : CARDINAL ; PROCEDURE Kreis(scr : ScreenPtr ; x,y,r,col : INTEGER) ; PROCEDURE ClearScreen(scr : ScreenPtr) ; PROCEDURE ClearBuf(scr : ScreenPtr ; bufadr : ADDRESS) ; END VilIntuiSupD . Hier nun eine detailiertere Beschreibung : Tja, ist noch in Arbeit... Man schaue sich die Demos an. Ansonsten wäre da noch die Doku von VT zur Vilintui, die Unterschiede der Bezeichner erkennt man aus den defs etc. Also *mir* reichen die Schnittstellen so wie sie jetzt sind. Wenn keine Reaktion kommt ist das auch die letzte Veröffentlichung. Ohne Anregungen/Kritik mache ich nicht weiter. Ich bitte jeden mir eine E-Mail zu schreiben, der diese Soft benutzt. (* Zu sagen wäre noch, das anscheinend in der Software von VillageTronic noch einige "Käfer" sind, so funktioniert z.B. das Blitten vom System-Mem ins Graphic-Mem nicht (naja, wenn Enforcer läuft gehts manchmal...) *) Das funktioniert jetzt. Obwohl ich mehrmals VT auf diesen Fehler hingewiesen habe kam keine Reaktion. Nach dem letzten Update der Picasso-Soft ging es plötzlich ! Die Punktsetzroutinen und die Chunky-Pixelroutine sind in Assembler implementiert und schneller als die C-Konstrukte von VT. MfG Carsten. ============