amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Search [ - Search - New posts - Register - Login - ]

1 -2- 3 4 5 6 7 Last Search results: 265 hits (30 per page)
akl   User

2011-01-05, 13:59 h

[ - Direct link - ]
topic: negativer addresszeiger?
Board: Programmierung

@Holger:
Haarespalten würde ich das nicht nennen. Der LowMemory-Mechanismus greift noch innerhalb von AllocMem - und zwar wird von dort aus aufgeräumt, nachdem es eigentlich bereits fehlgeschlagen war. Der Unterschied kann dementsprechend gewaltig sein, und deutlich größer als das, was zufällig wieder freiwerden würde. Leider war das in vielen AOS-Versionen nie richtig implementiert.
 
akl   User

2011-01-05, 11:06 h

[ - Direct link - ]
topic: negativer addresszeiger?
Board: Programmierung

@Thore:

>Was Du brauchst ist ein doppelter Rückgabewert.

Logisch. Allerdings setzt das voraus, dass man seine Anforderungen sorgfältig definiert.

Also entweder

tristate_pointer = MyAllocVecDirectDropIn(size, flags)

oder eben

pointer = MyAllocVecSimilarReplacement(size, flags, &status);

Aber man kann natürlich auch erstmal lang und breit mit anderen (also uns) darüber diskutieren ;-) nur um dann die Anforderungen zu ändern...
 
akl   User

2011-01-05, 11:04 h

[ - Direct link - ]
topic: negativer addresszeiger?
Board: Programmierung

@tboeckel:

>Unter AmigaOS4 kann man selbst bei angezeigten Null freien Bytes immer
>noch erfolgreich Speicher allokieren, weil es da einen Pager gibt, der
>genau das ermöglicht

Es braucht nichtmal einen Pager, sondern lediglich einen funktionierenden LowMemory-Mechanismus (vgl. "avail flush")
 
akl   User

2011-01-04, 21:17 h

[ - Direct link - ]
topic: teiltransparenz
Board: Programmierung

@Der_Wanderer:
Alpha-Effekte auf 8 Bit-Screens halte ich generell nicht für eine so besonders gute Idee, weil man für jede berechnete Transparenz eigentlich einen eigenen Pen allozieren müsste - wenn sich also 16 Pixel unterschiedlicher Farbe mit 16 anderen Pixeln unterschiedlicher Farbe überlagern, braucht man unter Umständen nochmal 16 Pens für die Transparenz...

Wenn's eine Arbeitsoberfläche ist und der vorherrschende Farbton einfarbig ist (Grau-/Blau-/Grüntöne oder ähnlich) dann sieht's vielleicht dennoch einigermaßen aus...

Wär's nicht sinnvoller, auf halbgare Transparenz bei 8 Bit besser ganz zu verzichten?!

[ Dieser Beitrag wurde von akl am 04.01.2011 um 21:17 Uhr geändert. ]
 
akl   User

2011-01-04, 18:03 h

[ - Direct link - ]
topic: teiltransparenz
Board: Programmierung

@AGSzabo:

Steht eigentlich alles hier:
http://de.wikipedia.org/wiki/Alpha_Blending

Die entscheidende Formel ist:

pixel = alpha * x + (1 - alpha) * y

Dass alpha nicht zwischen 0..1 liegt, sondern zwischen 0..255 - und dass x,y jeweils ebenfalls innerhalb 0..255 für R,G,B getrennt vorliegen, sollte klar sein. Deshalb muss auch pixel nochmal durch 255 geteilt werden und sichergestellt sein, dass das Ergebnis immer zwischen 0..255 liegt...

Eine optimierte Berechnung dafür bekommst Du sicher selbst hin, und ggf. einen Lookup-Table um die Multiplikationen einzusparen...

Viel Spass :-)

[ Dieser Beitrag wurde von akl am 04.01.2011 um 18:06 Uhr geändert. ]
 
akl   User

2011-01-01, 17:39 h

[ - Direct link - ]
topic: negativer addresszeiger?
Board: Programmierung

@AGSzabo:

Da beim Zweierkomplement glücklicherweise -1 mit 0xFFFFFFFF belegt ist und man rückwärts zählt (-2 ist 0xFFFFFFFE) kann man diese Werte vom Ende des Adressraums ziemlich entspannt als Fehlerwerte verwenden. Das wird auch an einigen Stellen im AmigaOS so gemacht (siehe z.B. Graphics/Layers/Intuition-Taglisten).

Das geht prinzipiell so lange, wie der allozierte Speicher (immer) größer ist, als das, was am Ende des Adressraums theoretisch an effektiv physikalisch verfügbarem RAM noch kommt.

Im dem Zusammenhang: Speicher, der von AllocVec zurückgegeben wird, ist grundsätzlich immer (mindestens) langwort-ausgerichtet.

Selbst wenn also im Bereich am Ende des Adreßraumes nicht sowieso ROM oder andere Nicht-RAM-Adressen liegen würden, würde bei AllocVec() grundsätzlich keine Adresse größer als 0xFFFFFFFC sein können.

Bis -4 hast Du also (mindestens) Luft ;-)

 
akl   User

2010-08-28, 09:09 h

[ - Direct link - ]
topic: Welche Programmiersprache
Board: Programmierung

@jochen22:
Das sind ja gleich drei Wünsche auf einmal, das geht nun wirklich nicht... (*)

(*) jedenfalls nicht diese, unter AOS
 
akl   User

2010-08-19, 09:45 h

[ - Direct link - ]
topic: html: elementhöhe in prozent
Board: Programmierung

@AGSzabo:
http://de.selfhtml.org/html/frames/eingebettete.htm
 
akl   User

2010-08-10, 14:11 h

[ - Direct link - ]
topic: MuForce und einige Programme
Board: Amiga, AmigaOS 4

@Thore:

>Und das war ja auch die Aussage, daß er dann sauberer arbeiten muss,
>um Fehler von vornherein auszuschließen.

Das muss man unter .NET oder Linux auch...

Die Frage ist die nach dem Qualitätsanspruch bzw. der Professionalität.

>Aminet-Programme von Hobbyprogrammierern als Messlatte zu verwenden >ist ein interessantes Thema....

Messlatte ist doch letztlich die Systemstabilität, oder? Wenn ich AmigaOS als Maßstab gegenüber Windows nehme, muss das de-facto das Verhalten des Durchschnitts der Programme sein, die ein typischer Anwender nutzt - da die Programme kein Qualitätssiegel tragen, gilt im Zweifel der Worst Case (alles Hobbyprogrammierer).

>aber vielleicht habt ihr auch nur nicht verstanden was ich aussagen
>wollte.

Durchaus - ich sehe das allerdings (inzwischen?) etwas differenzierter.

>Ich sagte auch nicht daß er es macht, ich sagte daß er es muss wenn er
>ein stabiles Programm will.

Die Frage ist doch, welche Techniken und Methoden man dazu einsetzt.

>da macht mal einmal die Anmerkung, Programmierer ohne systemseitige
>Sicherheit müssen für bugfreie Software sauber programmieren, und
>schon ists wieder nicht recht...

Du hast vielleicht einen meiner Einwände ebenfalls überlesen: ich denke, Programmierung für ein System wie AOS sensibilisiert für die Problematik und erleichtert das Erlernen entsprechender Techniken.

Wer unter AOS gut programmiert, kann z.B. auch gut für eine Spielekonsole oder ein Handy entwickeln - vielleicht schreibt er auch tendenziell bessere Windows-Software, aber da wäre ich vorsichtig.

Wer unter AOS schlecht programmiert, macht es unter Windows vielleicht sogar besser. Ich würde sogar behaupten, manche Bugs lassen sich dort einfacher finden.

>Laut eurer Meinung dürften sie sogar diesen messy code machen.. aber
>dann beschwert euch nicht wenn es auf ner anderen Maschine crasht.

Das ist jetzt etwas viel hineininterpretiert...
 
akl   User

2010-08-10, 09:46 h

[ - Direct link - ]
topic: MuForce und einige Programme
Board: Amiga, AmigaOS 4

@Thore:

>Und du wirst dich wundern, aber die meisten Amiga-Programme sind
>perfekter ausprogrammiert als so manches Win-Programm. Denn ohne
>Speicherschutz muss man von sich aus schon sauberer arbeiten.

Naja... unter .NET z.B. knallt es so schnell, da besteht die Schwierigkeit weniger darin, den Knall zu hören (= Speicherschutz schlägt) an, als die Richtung festzustellen, aus der er kam (= den Fehler zu finden).

Bei letzterem helfen bestimmte mit AOS unter relativ primitiven Bedingungen erlernte Techniken ganz gut weiter - der typische .NET Programmierer wird vielleicht den Fehler einfach ignorieren, wenn er nur jedes 10. Mal auftritt, nicht leicht zu reproduzieren ist und weil der Speicherschutz so gut ist... (*)

Aber genausogut ist das andere Argument richtig, dass unter AOS der Durchschnittsprogrammierer weniger sauber arbeitet - da es meistens trotz der Bugs nicht sofort zum Absturz kommt.

(*) Wobei innerhalb einer .NET Laufzeitumgebung (genauso wie innerhalb einer Java VM) sich letztlich doch wieder alle Threads den gleichen Adressraum und den gleichen Heap teilen - im Zeitalter von Multithreading und Multicore-CPUs verlagert das letztlich lediglich die bereits von der OS-Ebene bekannten Probleme auf die Applikationsebene. D.h. das OS an sich ist stabiler, dafür stürzen die Anwendungen umso freudiger ab... Unter .NET ist man daher z.B. fast geradezu dazu genötigt, sich ein MungWall selbst zusammenzubauen...
 
akl   User

2010-08-09, 11:31 h

[ - Direct link - ]
topic: MuForce und einige Programme
Board: Amiga, AmigaOS 4

@Ralf27:

zu 3:

- angenommen, die geschriebenen Daten sind länger als 4 Byte, was passiert wohl mit den Daten an Adresse 4?
- angenommen, die hingeschriebenen Daten werden später von einem anderen Programm gelesen und als Zeiger interpretiert, was passiert wohl mit dem Speicher an der entsprechenden Stelle, irgendwo im System?
- angenommen, Adresse 0 wird als Stringzeiger verwendet, und es kommt sehr lange kein NUL-Byte im Speicher...
- etc,
 
akl   User

2010-07-17, 12:02 h

[ - Direct link - ]
topic: Sch... PPC hat den Geist aufgegeben :-(
Board: Amiga, AmigaOS 4

@AmigaHarry:
Oder ganz im Gegenteil PowerUP.
 
akl   User

2010-07-16, 12:29 h

[ - Direct link - ]
topic: Sch... PPC hat den Geist aufgegeben :-(
Board: Amiga, AmigaOS 4

@AmigaHarry:
Ich weiss nicht, wie damals bei WarpUP intern das Cache-Handling gelöst wurde, aber bei PowerUP musste man es zu Fuß machen, um auf der sicheren Seite zu sein, was den Datenaustausch zwischen 68k- und PPC-Seite anging.

Wenn da also irgendetwas nicht sauber gelöst gewesen sein sollte, dann tritt es am ehesten auf, wenn die PPC-Seite plötzlich langsamer und die 68k-Seite (relativ) schneller wird - denn die PPC-Caches leeren sich ebenfalls langsamer und der 68k kommt schneller an falsche Daten. Vereinfacht.
 
akl   User

2010-07-15, 20:30 h

[ - Direct link - ]
topic: Sch... PPC hat den Geist aufgegeben :-(
Board: Amiga, AmigaOS 4

@AmigaHarry:

>Das habe ich auch nie behauptet.......

Warum ist dann das stufenweise Runterschrauben der Taktung eine Erklärung für das folgende?

>>Zuerst merkwürdige Abstürze und nun geht der PPC überhaupt nicht mehr !

Entweder wäre

- der PPC nur langsamer, aber ok; dann liegt das Problem in der Software, die sich auf das Nicht-Auftreten von irgendwelchen Race Conditions verlässt
- oder der PPC wäre gleich schnell, aber rechnet fehlerhaft
- oder der PPC wäre langsamer und rechnet fehlerhaft (hoffnungslos)

[ Dieser Beitrag wurde von akl am 15.07.2010 um 20:31 Uhr geändert. ]

[ Dieser Beitrag wurde von akl am 15.07.2010 um 20:33 Uhr geändert. ]
 
akl   User

2010-07-14, 19:49 h

[ - Direct link - ]
topic: Sch... PPC hat den Geist aufgegeben :-(
Board: Amiga, AmigaOS 4

@AmigaHarry:
(Fehlerfreie) Software stürzt nicht ab, nur weil eine CPU langsamer läuft. Also entweder/oder.
 
akl   User

2010-07-09, 19:23 h

[ - Direct link - ]
topic: S: EGS Treiber für Retina
Board: Amiga, AmigaOS 4

@rbn:
EGS war zu nichts kompatibel, schon gar nicht zu Intuition. Deshalb hat sich natürlich CyberGfx/Picasso96 durchgesetzt.
 
akl   User

2010-06-09, 13:26 h

[ - Direct link - ]
topic: Cast auf PLANEPTR funktioniert nicht
Board: Programmierung

@Reth:

>Das mit dem & vor lake_data lasse ich im Code nun auch mal weg. Hab >mich nur gewundert, wieso die Grafiken dennoch einwandfrei angezeigt >wurden!

Bei einem statischen Array der Art "char name[]" hast Du einfach Glück gehabt, weil alle drei Wege zum gleichen Ziel führen:

name
&name
&name[0]

Wäre es dagegen ein dynamisches Array vom Typ "char *name" gewesen, wärst Du mit &name so auf die Nase gefallen, wie es einer der Vorredner beschrieben hat. Ich würde mir Schreibweise Nummer 3 angewöhnen, weil sie einheitlich ist und Fehler besser auffallen.


[ Dieser Beitrag wurde von akl am 09.06.2010 um 13:28 Uhr geändert. ]
 
akl   User

2010-06-09, 12:54 h

[ - Direct link - ]
topic: Cast auf PLANEPTR funktioniert nicht
Board: Programmierung

@Reth:

>std::cout << "Lake_Data: " << ((PLANEPTR)(&lake_data)) << std::endl;

Was erwartest Du denn zu sehen?

Wie wäre es mit:

std::cout << "Pointer als Hexwert: " << std::hex << ((unsigned long) &lake_data[0]) << std::endl;

oder

std::cout << "Pointer als Dezimalwert: " << std::dec << ((unsigned long) &lake_data[0]) << std::endl;

Du kannst nicht voraussetzen, dass der C++ Compiler erahnt, wohin er den Pointer konvertieren soll. Wenn ich C-Compiler wäre, würde ich ihn nach (char *) konvertieren, womöglich(!) im ersten Byte ein NUL (0x00) finden und nichts ausgeben... ;-)

Das ist übrigens der Vorteil von printf(), dass man dahingehend diszipliniert sein und klare Angaben machen muss...

[ Dieser Beitrag wurde von akl am 09.06.2010 um 12:55 Uhr geändert. ]
 
akl   User

2010-06-07, 13:43 h

[ - Direct link - ]
topic: spezielle Stormwizard Fragen (unter AmiBlitz)
Board: Programmierung

@ZeroG:
...und ich dachte, Reactor wäre für Reaction (Ex-ClassAct...)

http://www.virtualdimension.de/amigafever/archiv/99-05/haage.html

[ Dieser Beitrag wurde von akl am 07.06.2010 um 13:43 Uhr geändert. ]
 
akl   User

2010-04-28, 16:40 h

[ - Direct link - ]
topic: C oder C++?
Board: Programmierung

@Holger:

>Die C-Funktionen sind grundsätzlich nicht für den Einsatz in einer
>Amiga-Bibliothek geeignet

Das hängt davon ab, welchen Compiler mit welcher C-Laufzeitumgebung man nutzt, welche Funktionen man davon nutzt und ob und wie man sicherstellt, dass der Code "threadsafe" bleibt.

So verallgemeinert ist die Aussage nicht richtig.
 
akl   User

2010-04-11, 23:04 h

[ - Direct link - ]
topic: Algo zum Kreiszeichnen
Board: Programmierung

@Ralf27:

WritePixel_ rp,x+xh,y+yh
WritePixel_ rp,x+yh,y+xh
WritePixel_ rp,x+yh,y-xh
WritePixel_ rp,x+xh,y-yh
WritePixel_ rp,x-xh,y-yh
WritePixel_ rp,x-yh,y-xh
WritePixel_ rp,x-yh,y+xh
WritePixel_ rp,x-xh,y+yh

^
Ich würde mal mit WriteLine() vergleichen, auch wenn die Linie nur einen (oder ggf. optimiert: wenige) Pixel lang ist...
 
akl   User

2010-03-10, 07:07 h

[ - Direct link - ]
topic: PC emulieren am Amiga ohne EMU-Hardware
Board: Amiga, AmigaOS 4

@Maja:
>Der Amiga "lebt" nun schon seit 12 Jahren auf PPC weiter.
Das tut er irgendwie und irgendwo, aber jedenfalls nicht "neben dem PC"...


Für die eigentliche Fragestellung würde ich VMware vorschlagen, und zwar ggf. jeweils ein eigenes, selbststartendes Image pro Spiel oder Anwendung...
 
akl   User

2010-02-23, 13:43 h

[ - Direct link - ]
topic: Euro Zeichen bei FinalWriter
Board: Amiga, AmigaOS 4

@ZeroG:
Geschichte: http://www.truetype-typography.com/articles/ttvst1.htm
 
akl   User

2010-01-29, 15:08 h

[ - Direct link - ]
topic: RastPort und Multithreading
Board: Programmierung

@whose:
Sicher ;-)
 
akl   User

2010-01-29, 14:35 h

[ - Direct link - ]
topic: RastPort und Multithreading
Board: Programmierung

@whose:
Ich weiss ja nicht, wer sich aktuell als wxWidget-Fan hervortut...

Vor einigen Jahren habe ich für diesen Ansatz mal plädiert, weil auf die Art neue Applikationen bzw. GUIs leicht von Anfang an hätten portabel programmiert werden können.

Davon bin ich inzwischen abgekommen, weil a) das niemanden wirklich interessiert (wer Amiga-Software schreibt, dem ist das heute wie gestern offensichtlich schnuppe, Ausnahmen wie Hollywood bestätigen die Regel) und b) wxWidgets teilweise echte Limitierungen hatte sowie c) unter Verwendung mittelmäßiger Shareware-CASE-Tools immer noch sehr viel Handarbeit zu leisten war was d) mich dazu bewogen hat, lieber gleich RAD via Visual Studio vorzuziehen und dabei e) Applikation und GUI sauber zu trennen, was f) wieder alles auf die Frage des Programmierstils reduziert und g) dann auch den Kreis zu a) gleich wieder schließt...

Oder kurz: wxWidgets ist für portable GUIs. Das eigentliche Ziel weitestgehender portabler Anwendungen kann man auch anders erreichen.

Unter dem Aspekt der Portierung bereits portabler Anwendungen kann man das anders sehen, aber wxWidgets spielt auch hier keine wirkliche Rolle...

Im Übrigen kann man soviele GUI-Toolkits bauen wie man will - wenn aber neue Entwickler keinen aktuellen Standard inkl. GUI-Builder (IDE mit RAD) und zugehörigen Styleguide vorfinden oder dem Anwender sich jedes Toolkit im Look & Feel anders präsentiert - dann hat die OS Plattform ein echtes Problem.

(Nein, Office 2007 ist eine andere Kategorie...)
 
akl   User

2010-01-27, 19:00 h

[ - Direct link - ]
topic: RastPort und Multithreading
Board: Programmierung

@Der_Wanderer:

Sorry, nochmal einen Schritt zurück: was ist eigentlich mit rp->RP_User? Habe gerade kein Autodoc zur Hand, aber... es sieht stark nach einem benutzerdefinierbaren Pointer aus.

Was den Aufrufer angeht, kann man daraus ggf. mit etwas Aufwand auch den Kontext ableiten, solange nicht derselbe Rastport nicht nur in mehreren Threads sondern auch in mehreren Engines verwendet wirds. Aber wie gesagt... hier eher nicht.

[ Dieser Beitrag wurde von akl am 27.01.2010 um 19:01 Uhr geändert. ]
 
akl   User

2010-01-27, 18:15 h

[ - Direct link - ]
topic: RastPort und Multithreading
Board: Programmierung

@Der_Wanderer:
Wenn's im Einzelfall eventuell nur darum geht, den Aufrufer zu identifizieren, wäre auch denkbar, jedem Task seine eigene Library-Base zu geben... hier aber eher nicht.
 
akl   User

2010-01-27, 18:10 h

[ - Direct link - ]
topic: RastPort und Multithreading
Board: Programmierung

@Der_Wanderer:
Das ist der Punkt. Du musst einen Kontext definieren und durch die API durchschleifen.
 
akl   User

2010-01-27, 16:20 h

[ - Direct link - ]
topic: RastPort und Multithreading
Board: Programmierung

@Der_Wanderer:

Was spricht gegen

- ObtainWindow(ntui_context, &window)
- ObtainRastPort(ntui_context, window, &rastport)
- werkel()
- 2x Release...

 
akl   User

2010-01-25, 21:50 h

[ - Direct link - ]
topic: Picture Manager und OS4??
Board: Amiga, AmigaOS 4

@tploetz:
Der Ort, wo VMEM: hinzeigt, sollte irgendwo liegen, wo genug Platz frei ist. Ansonsten kann es sein, dass PMPro auch noch ein eigenes Temp-Verzeichnis benötigt, erinnere mich nicht genau, wo das liegt.
 
 
1 -2- 3 4 5 6 7 Last Search results: 265 hits (30 per page)

Search terms
keywords      username
Search options
Only search these boards
   match whole words only
show only titles
show all results

.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.