amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > CybergraphX - Linker libs [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

01.04.2008, 06:35 Uhr

Mad_Dog
Posts: 1944
Nutzer
Hallo,

Wo finde ich die CybergraphX linker-Lib für Storm C und gcc?
Hab im Aminet und mit Google gesucht, aber nichts gefunden.

Bei dem Dev Kit von der CybergraphX 4 CD sind nur die entsprechenden Sources der Linker Lib für SASC und Dice dabei.

--
http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

01.04.2008, 08:45 Uhr

thomas
Posts: 7718
Nutzer

Probier mal fd2pragma. Das kann zumindest für VBCC alles notwendige erstellen, aber ich glaube, es unterstützt auch GCC.

http://aminet.net/package/dev/misc/fd2pragma

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

02.04.2008, 06:35 Uhr

Mad_Dog
Posts: 1944
Nutzer
Hi,

Ich hab mal folgendes ausprobiert (stammt von Haage&Partner selbst):
http://aminet.net/package/biz/haage/StormC_FD2Prag

Als Eingabe habe ich die fd-Datei von der CybergraphX 4 CD genommen:

code:
##base _CyberGfxBase
##bias 30
*--- functions in V40 or higher (Release 40.40) ---
##private
cgfxPrivate1()()
cgfxPrivate2()()
cgfxPrivate3()()
cgfxPrivate4()()
##public
*
IsCyberModeID(displayID)(d0)
*
BestCModeIDTagList(BestModeIDTags)(a0)
*
CModeRequestTagList(ModeRequest,ModeRequestTags)(a0,a1)
*
AllocCModeListTagList(ModeListTags)(a1)
*
FreeCModeList(ModeList)(a0)
*
##private
cgfxPrivate5()()
##public
*
ScalePixelArray(srcRect,SrcW,SrcH,SrcMod,RastPort,DestX,DestY,DestW,DestH,SrcFormat)(a0,d0,d1,d2,a1,d3,d4,d5,d6,d7)
*
GetCyberMapAttr(CyberGfxBitmap,CyberAttrTag)(a0,d0)
*
GetCyberIDAttr(CyberIDAttr,CyberDisplayModeID)(d0,d1)
*
ReadRGBPixel(RastPort,x,y)(a1,d0,d1)
*
WriteRGBPixel(RastPort,x,y,argb)(a1,d0,d1,d2)
*
ReadPixelArray(destRect,destX,destY,destMod,RastPort,SrcX,SrcY,SizeX,SizeY,DestFormat)(a0,d0,d1,d2,a1,d3,d4,d5,d6,d7)
*
WritePixelArray(srcRect,SrcX,SrcY,SrcMod,RastPort,DestX,DestY,SizeX,SizeY,SrcFormat)(a0,d0,d1,d2,a1,d3,d4,d5,d6,d7)
*
MovePixelArray(SrcX,SrcY,RastPort,DestX,DestY,SizeX,SizeY)(d0,d1,a1,d2,d3,d4,d5)
*
##private
cgfxPrivate6()()
##public
*
InvertPixelArray(RastPort,DestX,DestY,SizeX,SizeY)(a1,d0,d1,d2,d3)
*
FillPixelArray(RastPort,DestX,DestY,SizeX,SizeY,ARGB)(a1,d0,d1,d2,d3,d4)
*
DoCDrawMethodTagList(Hook,RastPort,TagList)(a0,a1,a2)
*
CVideoCtrlTagList(ViewPort,TagList)(a0,a1)
*
*--- functions in V40 or higher (Release 40.60) ---
*
LockBitMapTagList(BitMap,TagList)(a0,a1)
*
UnLockBitMap(Handle)(a0)
*
UnLockBitMapTagList(Handle,TagList)(a0,a1)
*
*--- functions in V41 or higher ---
*
ExtractColor(RastPort,BitMap,Colour,SrcX,SrcY,Width,Height)(A0,A1,D0,D1,D2,D3,D4)
*
##private
cgfxPrivate7()()
##public
*
WriteLUTPixelArray(srcRect,SrcX,SrcY,SrcMod,RastPort,ColorTab,DestX,DestY,SizeX,SizeY,CTFormat)(a0,d0,d1,d2,a1,a2,d3,d4,d5,d6,d7)
##end


Herausgekommen ist folgendes:
c code:
#ifndef _INCLUDE_CYBERGRAPHICS_LIB_H
#define _INCLUDE_CYBERGRAPHICS_LIB_H

/*
 * File generated by FD2Pragma from cybergraphics_lib.fd
 * DO NOT EDIT
 * FD2Pragma is written by M.Rock for Haage & Partner
 * $VER: cybergraphics_pragmas.h 0.0 (02-Apr-08)
 */
#ifdef __cplusplus
extern "C" {
#endif
// #pragma amicall(CyberGfxBase, 0x1E, cgfxPrivate1())
// #pragma amicall(CyberGfxBase, 0x24, cgfxPrivate2())
// #pragma amicall(CyberGfxBase, 0x2A, cgfxPrivate3())
// #pragma amicall(CyberGfxBase, 0x30, cgfxPrivate4())
#pragma amicall(CyberGfxBase, 0x36, IsCyberModeID(d0))
#pragma tagcall(CyberGfxBase, 0x3C, BestCModeIDTagList(a0))
#pragma tagcall(CyberGfxBase, 0x42, CModeRequestTagList(a0, a1))
#pragma tagcall(CyberGfxBase, 0x48, AllocCModeListTagList(a1))
#pragma amicall(CyberGfxBase, 0x4E, FreeCModeList(a0))
// #pragma amicall(CyberGfxBase, 0x54, cgfxPrivate5())
#pragma amicall(CyberGfxBase, 0x5A, ScalePixelArray(a0, d0, d1, d2, a1, d3, d4, d5, d6, d7))
#pragma amicall(CyberGfxBase, 0x60, GetCyberMapAttr(a0, d0))
#pragma amicall(CyberGfxBase, 0x66, GetCyberIDAttr(d0, d1))
#pragma amicall(CyberGfxBase, 0x6C, ReadRGBPixel(a1, d0, d1))
#pragma amicall(CyberGfxBase, 0x72, WriteRGBPixel(a1, d0, d1, d2))
#pragma amicall(CyberGfxBase, 0x78, ReadPixelArray(a0, d0, d1, d2, a1, d3, d4, d5, d6, d7))
#pragma amicall(CyberGfxBase, 0x7E, WritePixelArray(a0, d0, d1, d2, a1, d3, d4, d5, d6, d7))
#pragma amicall(CyberGfxBase, 0x84, MovePixelArray(d0, d1, a1, d2, d3, d4, d5))
// #pragma amicall(CyberGfxBase, 0x8A, cgfxPrivate6())
#pragma amicall(CyberGfxBase, 0x90, InvertPixelArray(a1, d0, d1, d2, d3))
#pragma amicall(CyberGfxBase, 0x96, FillPixelArray(a1, d0, d1, d2, d3, d4))
#pragma amicall(CyberGfxBase, 0x9C, DoCDrawMethodTagList(a0, a1, a2))
#pragma amicall(CyberGfxBase, 0xA2, CVideoCtrlTagList(a0, a1))
#pragma amicall(CyberGfxBase, 0xA8, LockBitMapTagList(a0, a1))
#pragma amicall(CyberGfxBase, 0xAE, UnLockBitMap(a0))
#pragma amicall(CyberGfxBase, 0xB4, UnLockBitMapTagList(a0, a1))
#pragma amicall(CyberGfxBase, 0xBA, ExtractColor(a0, a1, d0, d1, d2, d3, d4))
// #pragma amicall(CyberGfxBase, 0xC0, cgfxPrivate7())
#pragma amicall(CyberGfxBase, 0xC6, WriteLUTPixelArray(a0, d0, d1, d2, a1, a2, d3, d4, d5, d6, d7))
#ifdef __cplusplus
};
#endif
#endif


Leider verdaut das Storm C nicht. :(

Fehlermeldung:

Zitat:
"pragma amicall" - Deklaration ist für überladene Funktionen nicht erlaubt.

Um es vorwegzunehmen: Ich habe fd2Pragma noch nie benutzt und daher keinen Plan davon. :glow:

Warum "überladene Funktionen"? Ich möchte doch ein C-Programm schreiben und da gibt es keine überladene Funktionen... Bin etwas ratlos. ?(
--
http://www.norman-interactive.com

[ Dieser Beitrag wurde von Mad_Dog am 02.04.2008 um 06:36 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

02.04.2008, 08:18 Uhr

thomas
Posts: 7718
Nutzer

Probier doch mal die aktuelle Version von fd2pragma und nicht diese uralte.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

02.04.2008, 20:37 Uhr

Mad_Dog
Posts: 1944
Nutzer
Ok.

Damit bekomme ich folgendes:
c code:
#ifndef _INCLUDE_PRAGMA_CYBERGRAPHICS_LIB_H
#define _INCLUDE_PRAGMA_CYBERGRAPHICS_LIB_H

#ifndef CLIB_CYBERGRAPHICS_PROTOS_H
#include <clib/cybergraphics_protos.h>
#endif

#if defined(AZTEC_C) || defined(__MAXON__) || defined(__STORM__)
#pragma amicall(CyberGfxBase,0x036,IsCyberModeID(d0))
#pragma amicall(CyberGfxBase,0x03c,BestCModeIDTagList(a0))
#pragma amicall(CyberGfxBase,0x042,CModeRequestTagList(a0,a1))
#pragma amicall(CyberGfxBase,0x048,AllocCModeListTagList(a1))
#pragma amicall(CyberGfxBase,0x04e,FreeCModeList(a0))
#pragma amicall(CyberGfxBase,0x05a,ScalePixelArray(a0,d0,d1,d2,a1,d3,d4,d5,d6,d7))
#pragma amicall(CyberGfxBase,0x060,GetCyberMapAttr(a0,d0))
#pragma amicall(CyberGfxBase,0x066,GetCyberIDAttr(d0,d1))
#pragma amicall(CyberGfxBase,0x06c,ReadRGBPixel(a1,d0,d1))
#pragma amicall(CyberGfxBase,0x072,WriteRGBPixel(a1,d0,d1,d2))
#pragma amicall(CyberGfxBase,0x078,ReadPixelArray(a0,d0,d1,d2,a1,d3,d4,d5,d6,d7))
#pragma amicall(CyberGfxBase,0x07e,WritePixelArray(a0,d0,d1,d2,a1,d3,d4,d5,d6,d7))
#pragma amicall(CyberGfxBase,0x084,MovePixelArray(d0,d1,a1,d2,d3,d4,d5))
#pragma amicall(CyberGfxBase,0x090,InvertPixelArray(a1,d0,d1,d2,d3))
#pragma amicall(CyberGfxBase,0x096,FillPixelArray(a1,d0,d1,d2,d3,d4))
#pragma amicall(CyberGfxBase,0x09c,DoCDrawMethodTagList(a0,a1,a2))
#pragma amicall(CyberGfxBase,0x0a2,CVideoCtrlTagList(a0,a1))
#pragma amicall(CyberGfxBase,0x0a8,LockBitMapTagList(a0,a1))
#pragma amicall(CyberGfxBase,0x0ae,UnLockBitMap(a0))
#pragma amicall(CyberGfxBase,0x0b4,UnLockBitMapTagList(a0,a1))
#pragma amicall(CyberGfxBase,0x0ba,ExtractColor(a0,a1,d0,d1,d2,d3,d4))
#pragma amicall(CyberGfxBase,0x0c6,WriteLUTPixelArray(a0,d0,d1,d2,a1,a2,d3,d4,d5,d6,d7))
#endif
#if defined(_DCC) || defined(__SASC)
#pragma  libcall CyberGfxBase IsCyberModeID          036 001
#pragma  libcall CyberGfxBase BestCModeIDTagList     03c 801
#pragma  libcall CyberGfxBase CModeRequestTagList    042 9802
#pragma  libcall CyberGfxBase AllocCModeListTagList  048 901
#pragma  libcall CyberGfxBase FreeCModeList          04e 801
#pragma  libcall CyberGfxBase ScalePixelArray        05a 76543921080a
#pragma  libcall CyberGfxBase GetCyberMapAttr        060 0802
#pragma  libcall CyberGfxBase GetCyberIDAttr         066 1002
#pragma  libcall CyberGfxBase ReadRGBPixel           06c 10903
#pragma  libcall CyberGfxBase WriteRGBPixel          072 210904
#pragma  libcall CyberGfxBase ReadPixelArray         078 76543921080a
#pragma  libcall CyberGfxBase WritePixelArray        07e 76543921080a
#pragma  libcall CyberGfxBase MovePixelArray         084 543291007
#pragma  libcall CyberGfxBase InvertPixelArray       090 3210905
#pragma  libcall CyberGfxBase FillPixelArray         096 43210906
#pragma  libcall CyberGfxBase DoCDrawMethodTagList   09c a9803
#pragma  libcall CyberGfxBase CVideoCtrlTagList      0a2 9802
#pragma  libcall CyberGfxBase LockBitMapTagList      0a8 9802
#pragma  libcall CyberGfxBase UnLockBitMap           0ae 801
#pragma  libcall CyberGfxBase UnLockBitMapTagList    0b4 9802
#pragma  libcall CyberGfxBase ExtractColor           0ba 432109807
#pragma  libcall CyberGfxBase WriteLUTPixelArray     0c6 76543a921080b
#endif
#ifdef __STORM__
#pragma tagcall(CyberGfxBase,0x03c,BestCModeIDTags(a0))
#pragma tagcall(CyberGfxBase,0x042,CModeRequestTags(a0,a1))
#pragma tagcall(CyberGfxBase,0x048,AllocCModeListTags(a1))
#pragma tagcall(CyberGfxBase,0x09c,DoCDrawMethodTags(a0,a1,a2))
#pragma tagcall(CyberGfxBase,0x0a2,CVideoCtrlTags(a0,a1))
#pragma tagcall(CyberGfxBase,0x0a8,LockBitMapTags(a0,a1))
#pragma tagcall(CyberGfxBase,0x0b4,UnLockBitMapTags(a0,a1))
#endif
#ifdef __SASC_60
#pragma  tagcall CyberGfxBase BestCModeIDTags        03c 801
#pragma  tagcall CyberGfxBase CModeRequestTags       042 9802
#pragma  tagcall CyberGfxBase AllocCModeListTags     048 901
#pragma  tagcall CyberGfxBase DoCDrawMethodTags      09c a9803
#pragma  tagcall CyberGfxBase CVideoCtrlTags         0a2 9802
#pragma  tagcall CyberGfxBase LockBitMapTags         0a8 9802
#pragma  tagcall CyberGfxBase UnLockBitMapTags       0b4 9802
#endif

#endif	/*  _INCLUDE_PRAGMA_CYBERGRAPHICS_LIB_H  */

c code:
#ifndef _PROTO_CYBERGRAPHICS_H
#define _PROTO_CYBERGRAPHICS_H

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#if !defined(CLIB_CYBERGRAPHICS_PROTOS_H) && !defined(__GNUC__)
#include <clib/cybergraphics_protos.h>
#endif

#ifndef __NOLIBBASE__
extern struct Library *CyberGfxBase;
#endif

#ifdef __GNUC__
#include <inline/cybergraphics.h>
#elif !defined(__VBCC__)
#include <pragma/cybergraphics_lib.h>
#endif

#endif	/*  _PROTO_CYBERGRAPHICS_H  */


Jetzt sagt mir Storm C aber:

Zitat:
Linker Fehler:Symbol "__CyberGfxBase" nicht definiert
--
http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

02.04.2008, 21:01 Uhr

thomas
Posts: 7718
Nutzer
Zitat:
Original von Mad_Dog:

Zitat:
Linker Fehler:Symbol "__CyberGfxBase" nicht definiert



http://w3.norman-interactive.com/C-Kurs_7_1.html

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

02.04.2008, 21:52 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von thomas:
Zitat:
Original von Mad_Dog:

Zitat:
Linker Fehler:Symbol "__CyberGfxBase" nicht definiert


http://w3.norman-interactive.com/C-Kurs_7_1.html


;)

Ich habe eben auf das automatische Öffnen der Libraries vertraut...


--
http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

02.04.2008, 22:08 Uhr

thomas
Posts: 7718
Nutzer

Dafür reichen Include-Dateien aber nicht aus, dann mußt du auch eine Auto-Open Linker-Lib erstellen. Das kann fd2pragma auch, soviel ich weiß.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > CybergraphX - Linker libs [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.