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

amiga-news.de Forum > Programmierung > Farbe rausfinden mit Basic [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

28.07.2003, 10:16 Uhr

chkamiga
Posts:
[Ex-Mitglied]
Wie bekomme ich raus wo in der Farbpallette der Workbench z.B
rot ist? Ich benutze Maxon Basic und die Library Funktionen
kann ich noch nicht richtig anwenden, nur mit Subs komme ich klar.

[ - Ändern - Antworten - Zitieren - Direktlink - ]

28.07.2003, 21:34 Uhr

Holger
Posts: 8116
Nutzer
Ich fürchte, ohne Library-Funktionen wird das nicht gehen.
Ich fürchte auch, daß es kaum noch Maxon-Basic Benutzer geben wird, die Dir damit helfen können.
Um es mit den Worten des Seelenklempners zu sagen :"kann Dir zwar nicht helfen, aber gut, daß wir darüber gesprochen haben".:(

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

28.07.2003, 22:12 Uhr

chkamiga
Posts:
[Ex-Mitglied]
Schon klar das das ohne Library Funktionen nicht geht.
Ich möchte ja wissen wie ich das mit Library machen kann.
Prinzipiell ist das mit anderen Basics auf dem Amiga ja
das gleiche.

[ - Ändern - Antworten - Zitieren - Direktlink - ]

29.07.2003, 14:26 Uhr

Holger
Posts: 8116
Nutzer
Vermutlich schon, aber gerade die Art und Weise, wie man Library-Funktionen aufruft ist wahrscheinlich unterschiedlich.

mfg


--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

29.07.2003, 19:38 Uhr

mrbbc
Posts: 101
Nutzer
Normalerweise setzt man bei seiner Anwendung die Farben so wie man sie braucht und am Ende wieder zurück auf den Systemstandard.

Bei GFA- und Omicron-Basic war es so, dass man im Grunde auch alle Betriebssystemfunktionen verwenden konnte. Wenn das bei Maxon auch der Fall ist, brauchst du nur eine OS-Referenz.

--
it obvisiously seems to have been hard to write

[ - Antworten - Zitieren - Direktlink - ]

30.07.2003, 08:50 Uhr

chkamiga
Posts:
[Ex-Mitglied]
Es gibt aber auch eine Library Funktion mit der man die Farbe
rausfinden kann. Weiss denn niemand wie die unter Basic Funktioniert?

[ - Ändern - Antworten - Zitieren - Direktlink - ]

31.07.2003, 17:40 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von mrbbc:
Normalerweise setzt man bei seiner Anwendung die Farben so wie man sie braucht und am Ende wieder zurück auf den Systemstandard.

So etwas moechte ich auf _meiner_ Workbench nicht erleben.:nuke:

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

31.07.2003, 21:16 Uhr

kadi
Posts: 1528
Nutzer
Ist MAXON Basic nicht kompatibel zu AmigaBasic und/oder HiSoft Basic?

Das Beispiel habe ich, weil AmigaBasic unter Amithlon nicht mehr läuft in HisoftBasic testen können.

Vieleicht ist das Basic Listing ja trotzdem irgendwie hilfreich.

Es liest die RGB-Werte eines 32 Farbenscreens mit hilfe der GetRGB4 Funktion ein, rechnet sie in die merkwürdigen AmigaBasic PALETTE Werte (die komischerweise von 0,00 bis 1.00 gehen) um und zeichnet mit RectFill eine kleine Box in der Farbe.


DEFINT A-Z

REM $INCLUDE Graphics.bh
REM $INCLUDE Intuition.bh



'DECLARE FUNKTION ViewPortAddress&() LIBRARY :REM AmigaBasic ;-)
'DECLARE FUNKTION GetRGB4&() LIBRARY


LIBRARY OPEN "graphics.library"
LIBRARY OPEN "intuition.library"

SCREEN 1,320,200,5,1
WINDOW 2, "Bitte Taste drücken",,1,1

vp&=ViewPortAddress&(WINDOW(7))
cm&=PEEKL(vp&+4):rp&=WINDOW(8)

n1=0:n2=15:GOSUB farbesuchen
n1=16:n2=31:GOSUB farbesuchen

WINDOW CLOSE 2
SCREEN CLOSE 2
LIBRARY CLOSE
END

farbesuchen:
CLS:y=0

FOR i=n1 TO n2
farb=GetRGB4& (cm&,i)
r=INT(farb/2^8):r1!=1/15*r
rest=farb MOD 2^8
g=INT(rest/2^4):g1!=1/15*g
b=rest MOD 2^4 :b1!=1/15*b

PRINT "palette";:PRINT USING"###";i;
PRINT USING ",#.##";r1!,g1!,b1!
CALL SetAPen&(rp&,i)
CALL RectFill&(rp&,240,y,310,y+8)
y=y+8:CALL SetAPen&(rp&,1)

NEXT i

taste:ta$=INKEY$:IF ta$="" THEN taste

RETURN


Allerdings hast du dann nur die PALETTE RGB Werte. Wenn du ermitteln willst welche der Workbenchfarben ROT ist, dann musst du die Farbwerte ja noch auswerten.

Ich meine "PALETTE 1,1.00,0.00,0.00" ist ja ROT und "PALETTE1,0.93,0.19,0.05" würde man immernoch als ROT ansehen.

Du musst also noch auswerten was ein für deine Zwecke geeignetes ROT ist und was nicht.

Ab OS3.5 muss es irgendwo im OS Routinen geben, die PENs sharen und verwalten, wie man das programmiert weiß ich leicher überhaupt nicht.



[ Dieser Beitrag wurde von kadi am 31.07.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 11:06 Uhr

chkamiga
Posts:
[Ex-Mitglied]
Zitat:
Original von kadi:
Ist MAXON Basic nicht kompatibel zu AmigaBasic und/oder HiSoft Basic?

Das Beispiel habe ich, weil AmigaBasic unter Amithlon nicht mehr läuft in HisoftBasic testen können.

Vieleicht ist das Basic Listing ja trotzdem irgendwie hilfreich.

Es liest die RGB-Werte eines 32 Farbenscreens mit hilfe der GetRGB4 Funktion ein, rechnet sie in die merkwürdigen AmigaBasic PALETTE Werte (die komischerweise von 0,00 bis 1.00 gehen) um und zeichnet mit RectFill eine kleine Box in der Farbe.


DEFINT A-Z

REM $INCLUDE Graphics.bh
REM $INCLUDE Intuition.bh



'DECLARE FUNKTION ViewPortAddress&() LIBRARY :REM AmigaBasic ;-)
'DECLARE FUNKTION GetRGB4&() LIBRARY


LIBRARY OPEN "graphics.library"
LIBRARY OPEN "intuition.library"

SCREEN 1,320,200,5,1
WINDOW 2, "Bitte Taste drücken",,1,1

vp&=ViewPortAddress&(WINDOW(7))
cm&=PEEKL(vp&+4):rp&=WINDOW(8)

n1=0:n2=15:GOSUB farbesuchen
n1=16:n2=31:GOSUB farbesuchen

WINDOW CLOSE 2
SCREEN CLOSE 2
LIBRARY CLOSE
END

farbesuchen:
CLS:y=0

FOR i=n1 TO n2
farb=GetRGB4& (cm&,i)
r=INT(farb/2^8):r1!=1/15*r
rest=farb MOD 2^8
g=INT(rest/2^4):g1!=1/15*g
b=rest MOD 2^4 :b1!=1/15*b

PRINT "palette";:PRINT USING"###";i;
PRINT USING ",#.##";r1!,g1!,b1!
CALL SetAPen&(rp&,i)
CALL RectFill&(rp&,240,y,310,y+8)
y=y+8:CALL SetAPen&(rp&,1)

NEXT i

taste:ta$=INKEY$:IF ta$="" THEN taste

RETURN


Allerdings hast du dann nur die PALETTE RGB Werte. Wenn du ermitteln willst welche der Workbenchfarben ROT ist, dann musst du die Farbwerte ja noch auswerten.

Ich meine "PALETTE 1,1.00,0.00,0.00" ist ja ROT und "PALETTE1,0.93,0.19,0.05" würde man immernoch als ROT ansehen.

Du musst also noch auswerten was ein für deine Zwecke geeignetes ROT ist und was nicht.

Ab OS3.5 muss es irgendwo im OS Routinen geben, die PENs sharen und verwalten, wie man das programmiert weiß ich leicher überhaupt nicht.



[ Dieser Beitrag wurde von kadi am 31.07.2003 editiert. ]


Ja, diese Funktion ist mir schon bekannt, es ist mir aber zu kompliziert die Farbe damit zu berechnen. Es gibt direkt eine Funktion
mit der sich eine Farbe rausfinden lässt. Und ich würde gerne wissen
wie das geht.


[ - Ändern - Antworten - Zitieren - Direktlink - ]

01.08.2003, 12:57 Uhr

kadi
Posts: 1528
Nutzer
> Ja, diese Funktion ist mir schon bekannt, es ist mir aber zu
> kompliziert die Farbe damit zu berechnen. Es gibt direkt eine
> Funktion
> mit der sich eine Farbe rausfinden lässt. Und ich würde gerne
> wissen wie das geht.

Wenn du prinzipiell doch die Librarys in BASIC programmieren kannst - und weißt wie das geht, dann suchst du also nur die passende OS-Routine für Pensharing?

Ich glaube fast alle Beteiligten in diesem Thread haben das missverstanden und glaubten du brauchst auch Hilfe dabei, wie man Librarys prinzipiell in BASIC anwenden kann.

Hast du mal nach so Stichworten wie "amiga pensharing graphics.library" bei GOOGLE-Groups gesucht?

Die Funktion die du suchst heißt vieleicht:

ObtainBestPenA(colormap,red,green,blue,taglist) von OS3.0 V39


Ermitteln des Farbwertes, der am besten mit dem übergebenen Farbwert übereinstimmt...

Colormap zeigt auf die colormap, in der ein passendes Farbregister ermittelt werden soll.
red-green-blue Anteil als 32Bit Werte
Taglist ist ein Zeiger auf eine Tagliste, die wietere Einträge enthält

Die Tagliste enthält Einträge zur Präzision der Farbe, keine ahnung wie die Struktur aufgebaut ist, danach musst du dann noch googeln...

Das Ergebnis der Funktion ist der Ermittelte Farbregister, das mit ReleasePen() wieder freigegeben werden muß. ~0, falls kein passendes Farbregister gefunden wurde und auch kein freies mehr zur Verfügung steht.

Allerdings vermute ich das es in OS3.5 was besseres gibt...???

VIeleicht hilft dir die Info, damit du googeln kannst.





[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 14:11 Uhr

tokai
Posts: 1071
Nutzer
@kadi:

Um himmels willen, das funktioniert mit maxonbasic nie. ;)

In BlitzBasic2 konnte man SystemLibrary-Funktionen direkt verwenden, aber ich glaube kaum das sich das auch auf MaxonBasic anwenden lässt.



--
the truth is in there. :D

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 16:07 Uhr

chkamiga
Posts:
[Ex-Mitglied]
Ja, ich kann nicht alle Library Funktionen unter Basic benutzen,
insbesondere Funktion nicht. Da gibts immer ein Absturz bei
mir, irgendwas mache ich Falsch. Ja, das ist die Funktion die
ich meine, habe aber keine ahnung wie man eine Taglist unter
Basic macht und wie man die Funktion richtig anwendet. Das mit
Google wird nichts bringen, da wird kein Basic Source Code zu
Finden sein nur für C und so.

[ Dieser Beitrag wurde von chkamiga am 01.08.2003 editiert. ]

[ - Ändern - Antworten - Zitieren - Direktlink - ]

01.08.2003, 16:34 Uhr

CeaBear
Posts: 5
Nutzer
Zitat:
Original von chkamiga:
Ja, ich kann nicht alle Library Funktionen unter Basic benutzen,
insbesondere Funktion nicht. Da gibts immer ein Absturz bei
mir, irgendwas mache ich Falsch. Ja, das ist die Funktion die
ich meine, habe aber keine ahnung wie man eine Taglist unter
Basic macht und wie man die Funktion richtig anwendet. Das mit
Google wird nichts bringen, da wird kein Basic Source Code zu
Finden sein nur für C und so.

[ Dieser Beitrag wurde von chkamiga am 01.08.2003 editiert. ]



Hi chkamiga,

vielleicht hilft dir die Analyse von dem pmdevbas.lha
unter der URL:
http://www.boing.nu/scripts/pm/down.pl


Übrigens innerhalb von 2 Minuten mit Google gefunden!

Es erscheint mir MaxonBasic zu sein (keine Ahnung).
Im Modul Layout.bas sah es auch nach einer TagList aus (habs aber nur überflogen), aber ich konnte dich nicht mehr leiden sehen. *fg*

Du solltest vielleicht trotzdem mal das Grundprinzip des Library-Systems studieren..

Viel Glück!

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 17:55 Uhr

chkamiga
Posts:
[Ex-Mitglied]
Ja, schön und gut aber der Sourcecode dort hat nichts
mit ObtainBestPen zu tun.
Ich müsste schon direkt ein Beispiel Code für ObtainBestPen
haben. Wie eine Taglist aussieht weiss ich ja.

[ - Ändern - Antworten - Zitieren - Direktlink - ]

01.08.2003, 20:09 Uhr

kadi
Posts: 1528
Nutzer
Also in MaxonBasic musst du das in etwa so programmieren:



rr&=255*2^24
gg&=255*2^24
bb&=0*2^24 :REM gibts n << Linksshift Operator? so gehts nicht.

TAGLIST VARPTR(tags&(0)), _
OBP_Precision&, PRECISION_GUI&, _
OBP_FailIfBad&, FALSE&, _
TAG_DONE&


bp&=ObtainBestPenA&(cm&,rr&,gg&,bb&,VARPTR(tags&(0)))

PRINT"bestpen=";bp&



Ein kleines Problem ist da aber noch, nämlich die sache mit den 32Bit Werten für RGB.

ObtainBestPen erwartet 32Bit Werte, wenn man jetzt rr&=255 eingibt, klappt es nicht. In C würde man einen SHIFT Operator anwenden und es mit <<24 shiften. Aber wie macht man das in Basic? 255*2^24 müsste man rechnen, aber das geht nicht wegen der Vorzeichenbehaftung von & Variablen...da muss noch einer helfen...oder du weißt weiter...


[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 20:22 Uhr

kadi
Posts: 1528
Nutzer
Neee, das obige klappt nicht, total daneben, sorry, ich weiß nicht wie man das macht...

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 21:59 Uhr

chkamiga
Posts:
[Ex-Mitglied]
So daneben ist das gar nicht. Ich kann zwar nur bis 127 gehen, alles
was darüber ist gibt nen Überlauf, aber für die dunklen Farben Funktioniert
es. So bin ich doch schon ein Stück weiter :) Danke

[ - Ändern - Antworten - Zitieren - Direktlink - ]

01.08.2003, 22:41 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von kadi:
ObtainBestPen erwartet 32Bit Werte, wenn man jetzt rr&=255 eingibt, klappt es nicht. In C würde man einen SHIFT Operator anwenden und es mit <<24 shiften. Aber wie macht man das in Basic? 255*2^24 müsste man rechnen, aber das geht nicht wegen der Vorzeichenbehaftung von & Variablen...da muss noch einer helfen...oder du weißt weiter...

Die Werte nach links zu shiften ist ohnehin nicht der richtige Weg. Es ist zwar relativ egal, weil Systeme mit höherer Farbauslösung als 24Bit noch ziemlich lange aus sich warten lassen werden, trotzdem ist ein 32Bit-Wert ein 32Bit-Wert und sollte als solcher behandelt werden.
Wenn man also den maximalen Wert haben will, sollte man nicht 255 nach links shiften, sondern alle Bits setzen. Und das geht natürlich ziemlich einfach:
[code]
rr&=-1
gg&=-1
bb&=0

TAGLIST VARPTR(tags&(0)), _
OBP_Precision&, PRECISION_GUI&, _
OBP_FailIfBad&, FALSE&, _
TAG_DONE&

bp&=ObtainBestPenA&(cm&,rr&,gg&,bb&,VARPTR(tags&(0)))

PRINT"bestpen=";bp&
[/quote]
Für beliebige Werte wird's natürlich kniffliger. Aber bevor ich da jetzt Gehirnschmalz reinstecke, teilt mir erst mal mit, ob das mit dem Rot so funktioniert.
Weil ich kann's ja nicht testen. Aber wenn's so funktioniert, basteln wir auch eine allgemeine Funktion dafür.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 22:51 Uhr

kadi
Posts: 1528
Nutzer
Ich vergaß zu erwähnen, das die Funktion die PENs auch reserviert, das heißt, du musst die PENs mit CALL ReleasePen&(cm&,n) wieder freigeben.


Bei dir geht das? Mit HighSoft Basic irgendwie nicht. Nur Rot scheint zu funktionieren, Grün und Blau wird ignoriert... Deshalb vermutete ich, das da noch wo anders was nicht stimmt...

Gehts vieleicht wenn du anstatt a& a# verwendest? Oder gibts in Basic auch ULONG Variablen ohne Vorzeichenbehaftung? Hab alles vergessen...

Leider hab ich nur zu OS1.3 Zeiten bischen mit AmigaBasic rumprogrammiert - und mal ganz davon abgesehen, das ich alles wieder vergessen hab, hatte OS1.3 diese Funktionen auch noch garnicht.

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 23:20 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von kadi:
Ich vergaß zu erwähnen, das die Funktion die PENs auch reserviert, das heißt, du musst die PENs mit CALL ReleasePen&(cm&,n) wieder freigeben.

Ja, natürlich nicht vergessen. Ist nur problematisch, wenn BASIC wegen Laufzeitfehler aussteigt. Aber wenn das Programm erst einmal fertig ist, sollte auch ordentlich aufgeräumt werden.
Zitat:
Gehts vieleicht wenn du anstatt a& a# verwendest? Oder gibts in Basic auch ULONG Variablen ohne Vorzeichenbehaftung? Hab alles vergessen...
Fragen, über Fragen. Also, hier ist erst einmal die Routine, die RGB-Werte zwischen 0..255 inkl. in die 32Bit-Werte konvertiert, wenn es denn mit dem zweier-komplement so hinhaut, wie ich dachte.
code:
rem r&, g&, b& sollten die werte im bereich 0..255 enthalten
if r&<128 then rr&=r&*16843009
else rr&=(r&-255)*16843009-1
if g&<128 then gg&=g&*16843009
else gg&=(g&-255)*16843009-1
if b&<128 then bb&=b&*16843009
else bb&=(b&-255)*16843009-1

TAGLIST VARPTR(tags&(0)), _
OBP_Precision&, PRECISION_GUI&, _
OBP_FailIfBad&, FALSE&, _ 
TAG_DONE&

bp&=ObtainBestPenA&(cm&,rr&,gg&,bb&,VARPTR(tags&(0)))

PRINT"bestpen=";bp&
rem Pen hier benutzen

ReleasePen&(cm&,bp&)


Hoffentlich habe ich die basic-syntax richtig hinbekommen, ist schon ziemlich lange her.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 23:37 Uhr

kadi
Posts: 1528
Nutzer
Ja, mit -1 gehts auch. Aber mit den Shiftwerten auch!

Ich kann sie im Taschenrechner ausrechnen, zum Beispiel:

255*2^24=4278190080

rr&=4278190080
print rr&
-16777216

bepe&=ObtainBestPenA&(cm&,0,-1677721,0,0)

findet auch das Blau...

Also "rr&=4278190080" geht, aber "rr&=255*2^24" geht nicht, wegen Arithmetic overflow Error.

Keine Ahnung was man da macht, ist zu lange her.

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 23:41 Uhr

kadi
Posts: 1528
Nutzer
@ Holger:

Oh, cool, kann der chkamiga mal testen :-)

[ - Antworten - Zitieren - Direktlink - ]

02.08.2003, 00:20 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von kadi:
Ja, mit -1 gehts auch. Aber mit den Shiftwerten auch!

Jein. Der in diesem Code enthaltene Algorithmus löst zwei Probleme. Das eine ist die Sache mit dem Overflow. Bei Programmiersprachen, die den overflow ignorieren, liefern die mit if..then..else benutzenten Alternativen die gleichen 32Bit-Werte.
Das zweite ist die Sache mit dem theoretisch korrekten Wert. Die Dokumentation des AmigaOS weist die 32Bit Werte als Bruch aus, anders gesagt, wenn man den 8Bit-Wert 0xa0 haben will, lautet der korrekte 32Bit-Wert 0xa0a0a0a0 und nicht 0xa0000000. I.A. macht das keinen Unterschied und shiften geht schneller(1), aber wenn shiften sowieso nicht geht, wie bei Basic, und man ohnehin multiplizieren muß, warum dann nicht gleich richtig? Deshalb wird in dem Beispiel nicht mit 2^24 multipliziert, sondern mit 16843009 (0x01010101). Dann erhält man auch gleich den formal richtigen Wert.

(1) Man kann jetzt natürlich streiten, ob so ein Unterschied jemals relevant wird, da bislang jede Grafikhardware maximal 24Bit, also 8Bit pro Farbkomponenten darstellt. Aber schon, wenn man diese Werte tatsächlich als Brüche auffassen und z.B. einer 3D-Hardware als float übergeben würde, könnten sich sehr schnell sichtbare Differenzen ergeben.
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

02.08.2003, 11:55 Uhr

chkamiga
Posts:
[Ex-Mitglied]
Funktioniert :)

Das Entgültige Programm sieht nun so aus:

LIBRARY "graphics.library"

DECLARE FUNCTION ObtainBestPenA& LIBRARY 'cm&, r&, g&, b&, tags&
DECLARE SUB ReleasePen LIBRARY 'cm&, ExtendedNoden&

DIM tags&(10)

sWindow& = WINDOW(7)
sScreen& = PEEKL(sWindow& + 46)
sViewPort& = sScreen& + 44
cm& = PEEKL(sViewPort& + 4)

r&=255
g&=255
b&=0

IF r&<128 THEN rr&=r&*16843009 ELSE rr&=(r&-255)*16843009-1
IF g&<128 THEN gg&=g&*16843009 ELSE gg&=(g&-255)*16843009-1
IF b&<128 THEN bb&=b&*16843009 ELSE bb&=(b&-255)*16843009-1

TAGLIST VARPTR(tags&(0)), _
OBP_Precision&, PRECISION_GUI&, _
OBP_FailIfBad&, FALSE&, _
TAG_DONE&

bp&=ObtainBestPenA&(cm&,rr&,gg&,bb&,VARPTR(tags&(0)))

COLOR bp&:PRINT"bestpen=";bp&

ReleasePen cm&,bp&


Vielen Dank an alle. Ihr seid echt nett hier.

[ - Ändern - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Farbe rausfinden mit Basic [ - Suche - Neue Beiträge - Registrieren - Login - ]


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