Startseite
Amiforce 2.1     Amiforce-News Amiforce-News Amiforce-Forum Amiforce-Forum Amiforce-Chat/IRC-Chat Amiforce-Chat/IRC-Chat Gästebuch Gästebuch Kontakt mit dem Webmaster aufnehmen Kontakt mit dem Webmaster aufnehmen

Amiblitz3
Amiblitz2(alt)
Storm Wizard
Abakus-Design
Helpguide
Toolsguide
Tipps&Tricks
Gamesfun
Links
Download
Musik

Bugfixes am Forum
Subdomains aktiviert
Counterscript entfernt
  Navigation:   Index / 
Amiforce Forum - AmiBlitz4, A/A++ oder Amiga Thunder
Registrierung Häufig gestellte Fragen Suche Mitgliederliste Moderatoren und Administratoren Startseite Bugtracker Chat Irc
Amiforce Forum » AmiBlitz2/3 (Archiv) » AmiBlitz4, A/A++ oder Amiga Thunder » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema | Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag [  «    1  2  3  4  5    »  ]
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

das kommt raus.

a = (a*2 + b) *3

MOVE.L -$7FFC(A5),D0
LSL.L #1,D0
MOVE.L -$7FF8(A5),D1
ADD.L D1,D0
MULS.L #3,D0
MOVE.L D0,-$7FFC(A5)

Wenn du deinen Code optimierst musst du aber auch genau sagen, wie du das machst.das was du vorher getippt hast, braucht schonmal doppelt so lange.

im übrigen sind solche Theorie dinge eh sinnlos, wenn du meinst du kannst das, dann mach es, dann kompilieren wir perfekt paint oder sampler und barswrapper amiblitz und ped.denkst du das geht alles wenn du 10 Std codest ?

dann wirst du schon sehen, dass dein simpler monkey script algo auch seine Probleme hat.

amiblitz ist ja nun 7 Jahre alt, im 7 Jahr hast du den Bug von | gefunden aber die ganzen letzten 2 Jahre bis vor 3 Tagen, hatte keiner nen Compiler Bug in Amiblitz reportet.

würd mich mal interesieren, wieviele Bugs Sven blackbird in Deinen includes oder Programmem reportet haben, in der letzten Zeit ?

das addappicon ist ne func der workbenchlib.In register A4 soll ne taglist übergeben werden.

In Blitzbasic hat man wohl nicht beachtet, dass man bei OS Calls die a4 oder a5 benutzen für Parameter, die Register sichert.

ok kann vorkommen, wer keine Fehler macht, darf gerne nen neuen Compiler schreiben.Ich habe auch nicht gewusst, dass es OS Funktionen gibt, die das Register A4 als Parameter benutzen.hätte bei neuem Compiler schreiben denselben Fehler gemacht.

Aber deswegen gleich nen neuen Compiler schreiben ist wohl unnötig, jetzt weis man es, dann baut man es eben rein.Sven will ja das aktuelle releasen, alle fehler fixen kosten mich schon so 10 Std, auch weil ich schon lange nix mehr an amiblitz gemacht habe und ich so ziemlich alles vergessen habe.

Aber auch wenn ich den source komplett neu geschrieben habe, ginge das auch nicht schneller zu fixen, weil ich das genauso im debugger im einzelschritt ablaufen lassen muss um wieder zu sehen wie alles funktioniert.Da es aber in asm ist, muss ich weniger steps machen.

vielleicht bist du wirklich der supercoder, der mit einem Blick und ohne debugger sieht wo der Fehler ist, da mag es vielleicht sinnvoll sein, neu zu machen.

soll ich das mal bleiben lassen mit den AB3 bugfixes und du machst den Compiler dann neu ?

ich sehe bei deinen includes auch nicht beim draufgucken so schnell wie sie funktionieren, ich sehe wenn ich sie einzelschritt im Debugger abarbeite schneller wie sie funktionieren, vorallen da du das ganze in viele Funktionen gliederst, macros verwendest, geht es da auch am schnellsten um rauszufinden wie es geht.

>es ist einfach schwehr durchzublicken mit den vielen >nativen befehlen und den includes (und beim meistens >felendem doku) was zu was gehört und wie es genau >angewendet werden muss

stimmt das könnte man verbessern, aber wenn Thilo statt docu machen oder includes den Compiler neu macht, ändert sich daran ja auch nix.

Dieser Beitrag wurde von bernd_ am 29.01.2009, 15:46 Uhr editiert.

29.01.2009, 15:38 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>dabei könnte amiblitz "die" noob-sprache für amiga >sein wozu doch basic eigentlich überhaupt immer >gedacht war (jetzt ohne es runter machen zu wollen).

Die Hoffnung, dass mit ner besseren Doku oder native mehr amiblitz Programme schreiben habe ich allerdings auch nicht.

Es gibt da auch Hollywood, das hat bestimmt ne bessre doku, ist sogar native, aber welches Programm ist denn in Hollywood in dem letzten Jahr geschrieben worden ?

Ist halt so, die meisten programmierer sind schon lange weg.

Dieser Beitrag wurde von bernd_ am 29.01.2009, 15:55 Uhr editiert.

29.01.2009, 15:54 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
wawa
Tripel-As



Dabei seit: März 2008
Herkunft:
Beiträge: 153
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von wawa suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

an bernd: ich glaube da ist um einiges grossere interesse an hollywood und auch einiges wurde mit geschrieben, was vielleicht immer wieder nicht erwähnt wird.
ich erinnere mich grad an ein bericht neuerdings dass es für ein infochannel für zahnarzt praxen in schweden oder sowas verwendet wird. lächerlich wie es ist sich an sowas aufzugeilen, immerhin findet es eine anwendung auch wenn executables hinterher nicht auf amigas laufen. übrigens es ist ein kommerzielles produkt und wird wohl von einer einzelnen person gemacht und vertrieben, was natürlich den programierer einerseits mehr motiviert, anderseits hat er auch mehr arbeit damit. ihr seid hier zumindest ne kleine klicke.

und übrigens: ich für mein teil habe mein kleines projekt das ich vor paar monaten schnell auf die beine stellen musste und eigentlich in amiblitz schreiben wollte schlussendlich in hollywood hingekriegt. das ist wohl auch ein argument, oder?

Dieser Beitrag wurde von wawa am 29.01.2009, 16:42 Uhr editiert.

29.01.2009, 16:42 wawa ist offline   Profil von wawa Füge wawa deiner Freunde-Liste hinzu
wawa
Tripel-As



Dabei seit: März 2008
Herkunft:
Beiträge: 153
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von wawa suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

und wenn man das argument gelten lässt "die programmierer sind eh weg" dann kann man gleich alles lassen. das ist auf dem amiga eh schon so. kannst auch deine sdl portiereungs-versuche, nicht zu sprechen von dem vorhaben "owb für 68k" gleich mit vergessen.

29.01.2009, 16:47 wawa ist offline   Profil von wawa Füge wawa deiner Freunde-Liste hinzu
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Ja, Bernd ist da immer etwas pessimistisch. Tatsache ist, dass in letzer Zeit mehr Leute Interesse an AB3 gezeigt haben wie schon lange nicht mehr, nur weil BruZard das PanzerZ macht. Das bekommt mehr Aufmerksamkeit als all SDL Ports in den letzen Monaten zusammen. Warum? Weil es eine echte Amiga Entwicklung ist.

Mir persönlich gehts darum, einen Kompiler zu haben mit dem ich auch z.B. auf AROS gehen kann oder auf X, wenn ich das für notwendig halte. Das aktuelle AROS deo is cool. Bernd will in die Richtung nix machen, also muss ich es wohl anpacken.

Der AB3 Code ist optimal, das ist tuff, aber du hast das a.l und b.l nicht. Die Varialben sollen danach auch weiterverwendet werden können.

Wenn ich mein Beispiel optimiere, dann kommentiere ich das auch, habe ich ja geschrieben, dass ich es vorrechne.

@Bernd kannst du also nichmal das a.l=3 und b.l=7 mit reinmachen? Oder sollen wir uns rein auf die Formel konzentrieren?


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 29.01.2009, 17:54 Uhr editiert.

29.01.2009, 17:52 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>ich erinnere mich grad an ein bericht neuerdings dass >es für ein infochannel für zahnarzt praxen in schweden >oder sowas verwendet wird.

ja das ist aber auch nicht auf amiga gecodet.
Habe ja geschrieben, wenn man AB für windows portiert oder evtl für JAVA .net, dann bekäme man mehr User.

aber ist auch nen Haufen arbeit, man muss das fenstermanagement

>@Bernd kannst du also nichmal das a.l=3 und b.l=7 mit >reinmachen? Oder sollen wir uns rein auf die Formel >konzentrieren?

das sieht so aus

a=3
MOVE.L #3,-$7FFC(A5)
b=2
MOVE.L #2,-$7FF8(A5)


#TUIF_BOLD = 8
#TUIF_CENTER = 16
#TUIF_MIDDLE = 32
flags.l = #TUIF_BOLD|#TUIF_CENTER|#TUIF_MIDDLE

sieht so aus

MOVE.L #$38,D0
MOVE.L D0,-$7FFC(A5)

erkennt der optimizer nicht und merged es zusammen.

aber kannst ja mal deine compilercode für obige Zeile Posten

>kannst auch deine sdl portiereungs-versuche, nicht zu >sprechen von dem vorhaben "owb für 68k" gleich mit >vergessen.

Ich programmiere ja nicht für andere, ich programmiere weil ich es haben will.an den sdl und ixemul haben eigentlich mehr Interesse als an amiblitz würd ich mal sagen, schau auch mal was ab Okt so an Ports neu gab.

eigentlich wollte ich nur OWB machen, aber da eben an dem SDL und ixemul welche interesse haben und mir sourcen mailten die nicht gingen, habe ich das eben erweitert.und nebenbei so ein spielchen macht auch Spass.habe bei sdl jump schon floor 30 geschafft.

portieren ist halt auch nicht so langwierig und kompliziert als ein Programm, als eines zu schreiben.

da hatte ich gedacht, in 20 Std wäre alles erledigt, aber ne, ich denke nicht, wenn ich sdl und ixemul neu gecodete hätte, dass es schneller gegangen wäre.

hätte an ixemul und sdl allerdings schon hingeschmissen, bei den Bugs die ich reportet bekam, wenn ich nicht denken würde, ich bin kurz vorm Ziel, dass das ganze fertig wird.und ausserdem mache ich dann auch zur Entspannung als ein spielchen.....

Ich habe keine Lust windows zu coden.aber leider gibts halt wenige, die das auch so sehen, man hat auch je älter man wird immer weniger Lust viel Zeit reinzustecken, findet andre hobbies etc.

kannst auch mal hier schauen, da habe ich die Geschichte des Atari geschrieben, obwohl es da wesentlich weniger User gab, haben das das letzte Jahr das AFROS bald 3000 User runtergeladen und alle sind mit 68k zufrieden.

nur beim amiga da will die eine Handvoll PPC native Programme für MOS, der andre für OS4, der nächste für X86 und dann soll man auch noch eingeredet bekommen, wenn es das gibt, dann schreiben mehr Programme für amiblitz.

http://www.amiga-news.de/de/news/comment...1-00088-DE.html

find ich beachtlich, der Atari war dem amiga schon immer unterlegen, schon zu Fred Fishs Zeiten, konnte der Atari nicht mithalten und das Atari OS naja

Dieser Beitrag wurde von bernd_ am 29.01.2009, 18:26 Uhr editiert.

29.01.2009, 18:24 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

ach ja und wenn es bei amiblitz etwa 20 bug reports im Jahr gegeben hätte, dann hätte ich den Optimizer feiner aufheschlüsselt, aber so die 3 Bugs in 2 Jahren, da kann man echt nicht von einem schlechten Compiler reden , den man unbedingt erneuern muss oder ?

mir wäre es auch lieber wenn Sven oder Thilo programme schreiben, anstatt aus amiblitz um weitere welten komfortableres develop tool zu machen.

aber naja so kommt wohl an amiblitz soft in Zukunft kaum noch was, blackbird fängt ein neues Malprogramm an.......

Dieser Beitrag wurde von bernd_ am 29.01.2009, 18:38 Uhr editiert.

29.01.2009, 18:28 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Here we go:

Generic: (30 Instructions)

code:

Move.l #7,-(A7)         ; 7       **** b.l = 7

Move.l ##var_b,-(A7)    ; &b.l

Move.l (A7)+,D0         ; =  
Move.l (A7)+,D1  
Move.l D1,D0(A5)

Move.l #3,-(A7)         ; 3       **** a.l = 3

Move.l ##var_a,-(A7)    ; &a.l

Move.l (A7)+,D0         ; =  
Move.l (A7)+,D1
Move.l D1,D0(A5)


Move.l #var_a(A5),-(A7) ; a.l     **** a = (a*2 + b) *3

Move.l #2,-(A7)         ; 2

Move.l (A7)+,D0         ; *  
Move.l (A7)+,D1
Muls.l D0,D1
Move.l D1,-(A7)

Move.l #var_b(A5),-(A7) ; b.l

Move.l (A7)+,D0         ; +  
Move.l (A7)+,D1
Add.l D0,D1
Move.l D1,-(A7)

Move.l #3,-(A7)         ; 3

Move.l (A7)+,D0         ; *  
Move.l (A7)+,D1
Muls.l D0,D1
Move.l D1,-(A7)

Move.l ##var_a,-(A7)    ; &a.l

Move.l (A7)+,D0         ; =  
Move.l (A7)+,D1
Move.l D1,D0(A5)





Iteration#1: (24 Instructions)

Regel: Ersetze alle aufeinanderfolgenden -(A7) (A7)+ mit jeweils dem Ziel von (A7)+, sofern das Ziel nicht dazwischen verwendet wird.

code:

Move.l #7,-(A7)      ; 7       **** b.l = 7

Move.l ##var_b,DO    ; &b.l

*        ; =  
Move.l (A7)+,D1  
Move.l D1,D0(A5)

Move.l #3,-(A7)      ; 3       **** a.l = 3

Move.l ##var_a,D0    ; &a.l

*                    ; =  
Move.l (A7)+,D1
Move.l D1,D0(A5)


Move.l #var_a(A5),-(A7) ; a.l     **** a = (a*2 + b) *3

Move.l #2,D0         ; 2

*                    ; *  
Move.l (A7)+,D1
Muls.l D0,D1
Move.l D1,-(A7)

Move.l #var_b(A5),D0 ; b.l

*                    ; +  
Move.l (A7)+,D1
Add.l D0,D1
Move.l D1,-(A7)

Move.l #3,D0         ; 3

*                    ; *  
Move.l (A7)+,D1
Muls.l D0,D1
Move.l D1,-(A7)

Move.l ##var_a,D0    ; &a.l

*                    ; =  
Move.l (A7)+,D1
Move.l D1,D0(A5)





Iteration#2: (19)
Regel: Wie #1.

code:


Move.l #7,D1         ; 7       **** b.l = 7

Move.l ##var_b,DO    ; &b.l

*                    ; =  
*
Move.l D1,D0(A5)

Move.l #3,D1         ; 3       **** a.l = 3

Move.l ##var_a,D0    ; &a.l

*                    ; =  
*
Move.l D1,D0(A5)


Move.l #var_a(A5),D1 ; a.l     **** a = (a*2 + b) *3

Move.l #2,D0         ; 2

*                    ; *  
*
Muls.l D0,D1
Move.l D1,D1

Move.l #var_b(A5),D0 ; b.l

*                    ; +  
*
Add.l D0,D1
Move.l D1,D1

Move.l #3,D0         ; 3

*                    ; *  
*
Muls.l D0,D1
Move.l D1,D1

Move.l ##var_a,D0    ; &a.l

*                    ; =  
Move.l D1,D1
Move.l D1,D0(A5)



Iteration#3: (15)
Regel: entferne alle unsinnigen Befehle wie Move.l D1,D1
code:

Move.l #7,D1         ; 7       **** b.l = 7

Move.l ##var_b,DO    ; &b.l

*                    ; =  
*
Move.l D1,D0(A5)

Move.l #3,D1         ; 3       **** a.l = 3

Move.l ##var_a,D0    ; &a.l

*                    ; =  
*
Move.l D1,D0(A5)


Move.l #var_a(A5),D1 ; a.l     **** a = (a*2 + b) *3

Move.l #2,D0         ; 2

*                    ; *  
*
Muls.l D0,D1
*

Move.l #var_b(A5),D0 ; b.l

*                    ; +  
*
Add.l D0,D1
*

Move.l #3,D0         ; 3

*                    ; *  
*
Muls.l D0,D1
*

Move.l ##var_a,D0    ; &a.l

*                    ; =  
*
Move.l D1,D0(A5)


__________________
Check out http://www.hd-rec.de !

29.01.2009, 18:35 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Kondensiert haben wir dann:

MonkeyScript (15):
Move.l #7,D1 ; 7 **** b.l = 7
Move.l ##var_b,DO ; &b.l
Move.l D1,D0(A5)
Move.l #3,D1 ; 3 **** a.l = 3
Move.l ##var_a,D0 ; &a.l
Move.l D1,D0(A5)
Move.l #var_a(A5),D1 ; a.l **** a = (a*2 + b) *3
Move.l #2,D0 ; 2
Muls.l D0,D1
Move.l #var_b(A5),D0 ; b.l
Add.l D0,D1
Move.l #3,D0 ; 3
Muls.l D0,D1
Move.l ##var_a,D0 ; &a.l
Move.l D1,D0(A5)

Amiblitz3 (:
MOVE.L #3,-$7FFC(A5) ; b=2
MOVE.L #2,-$7FF8(A5) ;
MOVE.L -$7FFC(A5),D0
LSL.L #1,D0
MOVE.L -$7FF8(A5),D1
ADD.L D1,D0
MULS.L #3,D0
MOVE.L D0,-$7FFC(A5)


Amiblitz3 ist dann also nicht mal mehr als doppelt so schnell in diesem Beispiel. Das liegt hauptsächlich daran, wie auf die Variablen zugegriffen wird. Das würde ein Peephole optimizer mit wenigen Regel aber noch richten. Dann wären wie in etwa gleich auf.

Ich gebe aber zu, dass Amibltiz sehr effizienten code erzeugt. Aber ich denke so auf 150% der Speed kommt man ohne wirklich grossen Aufwand.


__________________
Check out http://www.hd-rec.de !

29.01.2009, 18:41 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

na dann mal los.dein code sieht schonmal 2*langsamer aus, das holst du durch native nicht rein.dein Ursprung sah anders aus.

kannst du mal nen Benchmark für monkey script schreiben, dann können wir ja sehen ob es auch in der Praxis so ist

Ich weis nicht, warum du immer - a7 + a7 machst, irgendwie muss dein Programm doch auch mit Variablen arbeiten, die irgendwo im Speicher liegen lokal oder gloabl sind, arrays strukturen etc.

aber du machst das schon, morgen abend gucke ich mal vorbei, dann sind 12 stunden um und teste mal ob ich damit meine software kompilieren kann und sie einwandfrei läuft.

Dieser Beitrag wurde von bernd_ am 29.01.2009, 18:48 Uhr editiert.

29.01.2009, 18:44 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Der Vorteil von dem MonkeyScript erzeugten Code ist aber eben, dass er absolut generisch erzeugt wurde, also ohne für irgendeine Funktion eine Extrawurst zu braten, nicht mal für das Zuweisen von Werten. Dadruch ist sichergestellt, dass es auch bei beliebigen Ausdrücken keine Fehler machen kann, wenn es im simplen Fall funktioniert.

Wenn wir für die Zuweisung von Varialben eine Ausnahme machen, und statt

Move.l #7,D1 ; 7 **** b.l = 7
Move.l ##var_b,DO ; &b.l
Move.l D1,D0(A5)

das hier wie AB3 machen:

Move.l #7,##var_b(A5) ; **** b.l = 7

Dann wären es schon statt 15 nur noch 10 Befehle (MS) vs. 8 Befehle (AB3).


__________________
Check out http://www.hd-rec.de !

29.01.2009, 18:47 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

> Ich weis zwar nicht, warum du immer - a7 + a7 machst,
Das ist eben der Unterschied zwischen uns beiden.

Das ist die Art, wie ich die einzlenen Funktionen miteinander verknüpfe und so garantieren kann, dass nix schief geht, egal wie komplex der Ausdruck ist. Alles wird auf zwei Regeln gemapped:

Ausdruck = Konstante
Ausdruck = Function(Ausdruck)

Sobald das geht, geht auch jeder beleibige Ausdruck. Ist klar, dass das nicht auf anhieb optimalen Code erzeugt, aber 100% korrekten. Dann geht man eben nochmal drüber und entfernt die Dinge, wo man sich sicher sein kann dass nix kaputt geht.


__________________
Check out http://www.hd-rec.de !

29.01.2009, 18:52 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Bernd
Werde nicht polemisch.

1. habe ich die nächsten 12 Stunden keine Zeit.
2. habe ich gesagt, ein Codegenerator dauert 10h, um den code zu erzeugen wie am Anfang. nochmal 20h um dann auf den optimierten Code zu kommen.

Ich korrigere das mal auf 15h/15h.

3. Fehlt dann noch der Compiler...und der dauert um einiges länger. Und er wird nicht 100% Amiblitz3 kompatibel sein.


__________________
Check out http://www.hd-rec.de !

Dieser Beitrag wurde von Der_Wanderer am 29.01.2009, 18:57 Uhr editiert.

29.01.2009, 18:54 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
wawa
Tripel-As



Dabei seit: März 2008
Herkunft:
Beiträge: 153
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von wawa suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

an bernd:

>>ich erinnere mich grad an ein bericht neuerdings dass >>es für ein infochannel für zahnarzt praxen in >>schweden >oder sowas verwendet wird.

>ja das ist aber auch nicht auf amiga gecodet.

und worauf? meines wissens läuft hollywood nur auf amiga (und derivaten). das executable kannst du für mehrere systeme kompilierern, aber das ist andere sache.

>Ich programmiere ja nicht für andere, ich >programmiere weil ich es haben will.

>eigentlich wollte ich nur OWB machen,
ist ja klar. niemand kann dich zu etwas zwingen. ich antworte nur auf deine argumente.

29.01.2009, 19:48 wawa ist offline   Profil von wawa Füge wawa deiner Freunde-Liste hinzu
Honitos
König




Dabei seit: Mai 2002
Herkunft: Hambühren/Niedersachsen
Beiträge: 968
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Honitos suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von bernd_
mir wäre es auch lieber wenn Sven oder Thilo programme schreiben, anstatt aus amiblitz um weitere welten komfortableres develop tool zu machen.



Ich würde ja mein Onlinebankingprogramm a la StarMoney fertigmachen, wenn ich die SSL-Verschlüsselung hinkriegen oder den Bug in meiner RSA-Implementierung finden würde...


__________________
On the web at http://www.programmed-excellence.de

29.01.2009, 20:20 Honitos ist offline   Profil von Honitos Füge Honitos deiner Freunde-Liste hinzu Email an Honitos senden
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>3. Fehlt dann noch der Compiler...und der dauert um >einiges länger. Und er wird nicht 100% Amiblitz3 >kompatibel sein.

Da fehlt noch einiges, die syntax checks, sinnvolle error messages codegenrierung lib auf rufe

Das dacht ich mir, dass du das nicht kompatibel machen willst, mir haben auch schon die dauernden syntax Änderungen an deinen Includes die Lust genommen.

ist wohl so, jeder der was neu macht, pfuscht und lässt features weg, weil er das nicht braucht, oder er minimalist ist.Wenn ich was neucode, dann will ich auch dieselben Features haben und keine Spar Version.deshalb mag ich auch kein AROS MOS oder OS4, weil da schlicht dinge fehlen die ich unter 68k hab

naja bin mal gespannt ob Sven wenn er den Tuited als Editor nimmt den clickjump die ganzen browse Funktionen in den Tuited reinbaut, oder ob amiblitz dann nen einfachen Editor wie tuited behält

>und worauf? meines wissens läuft hollywood nur auf >amiga (und derivaten). das executable kannst du für >mehrere systeme kompilierern,

er lässt es auf windows systemen laufen.ghet hollywood nicht unter windows und er muss es im Amiga coden ?

Dieser Beitrag wurde von bernd_ am 29.01.2009, 20:26 Uhr editiert.

29.01.2009, 20:20 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Andi
Routinier



Dabei seit: Dezember 2007
Herkunft: Dresden/Sachsen
Beiträge: 255
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Andi suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@Honitos
Schau mal im AROS-Archiv bzw. frage Bernd, ob er Dir die aktuellste OpenSSL-Lib Version 0.9.8j (von letzter Woche, denke ich) für 68k kompiliert und damit für Dich nutzbar macht. Es gab mit der alten Version von OpenSSL auch auf AROS Probleme, die jetzt behoben sein sollen. Ich hoffe, dass Dir das auch weiterhelfen kann.

29.01.2009, 23:54 Andi ist offline   Profil von Andi Füge Andi deiner Freunde-Liste hinzu Email an Andi senden
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

ach ja und was auch noch zu machen wäre, nen (68k) assembler.hat zumindest jede ernstzunhemnede Programmiersprache

was ich vergessen habe zu erwähnen, man kann natürlich auch nen Preprocessor vor den alten Code hängen, und Thilo könnte dann ne saubere Schnittstelle definieren und man kann den Preprocessor in ein eigenes file auch ohne asm von Thilos vorgangen sauber machen.

dazu wäre ich schon bereit, den Compiler so zu ändern, dass er die Daten die Thilo benötigt zur Verfügung stellt.Das ist nicht viel arbeit

das erste was der preprocessor tun könnte, wäre die .ab2 files mit schnellem Code tokenisieren, damit man die files im Klartext sehen kann.Ich habe auch ne einfache Idee wie man den cacheclear wegbekommt wenn cachecleare unter winuae auch bremst, damit würde dann amiblitz nochmal 70% schneller.

da die constanten Optimier Programme max 70bytes gross sind, würde ich nen Buffer machen und die adresse an der der Code gewschrieben wird, erst wieder rücksetzen, wenn der Buffer von 20 kb den ich dann wähle, ca mit 18 kb code gefüllt ist.dann muss ich nur den cacheclear machen, wenn man den Buffer auf die Startadresse rücksetzt.

der Code flags = #constant1 | #constant2

z.b erzeugt so ein kleines Programm, der compiler fügt dann das ergebins ein und muss nicht jedesmal | berechnen


das testfile mit 66000 Zeilen compilierte auf winuae dann in 1,8 sec statt in 3 sec.

wäre auch mal gut, in den compiler ne statistik reinzubauen, wieviele Zeilen kompiliert wurden und wielange das dauert und dann ein file in der ramdisk ausgibt

somit kann man dann auch wieder Zeit im precrocessor verbraten, ohne dass es unzumutbar lange dauert, Thilo könnte dann nach und nach OO features reinbauen, amiblitz bleibt lauffähig und kompatibel wer Lust hat schreibt seinen Code mit den Features, wer nicht lässt es eben.

und wenn Thilo das auf andre CPU anpassen will, kann er auch ne Schnittstelle definieren und ich baue dann den code ein, damit er frei und ohne asm nen code procesor bauen kann.

ansonsten hat es wawa eigentlich schon auf den Punkt gebracht, indem er schrieb er hat es dann mit Hollywood gemacht.

Hollywood ist wesentlich langsamer als amiblitz, aber es hat eben nen GUI Edtitor, und ne bessre doku

Und das ist eben was man als Neueinsteiger braucht und nicht dass amiblitz ein paar % schneller kompiliert durch native Code.

ach ja falls Jens mitliest, was ist denn das grösste Blitzpc programm dass es gibt ?

Das würde ich gerne mal mit dem neuesten Blitz PC Demo kompilieren und schauen wie lange es dauert zu kompilieren und hochrechnen, auf 100000 COde zeilen

Dieser Beitrag wurde von bernd_ am 30.01.2009, 10:59 Uhr editiert.

30.01.2009, 10:55 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
bruZard
König



Dabei seit: August 2005
Herkunft:
Beiträge: 830
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bruZard suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von bernd_ ach ja falls Jens mitliest, was ist denn das grösste Blitzpc programm dass es gibt ?

Das würde ich gerne mal mit dem neuesten Blitz PC Demo kompilieren und schauen wie lange es dauert zu kompilieren und hochrechnen, auf 100000 COde zeilen


Das größte?!? Keine Ahnung, nicht jedes große Projekt gibt den Quelltext gleich mit. Die größten Sachen sind Module, z.B.: http://code.google.com/p/wxmax/
Allerdings lassen die sich nicht mit einer blanken Installation kompilieren, da benötigt man zusätzlich noch MinGW.


__________________
PanzerZ | jBB / HTML5 Canvas Framework

30.01.2009, 11:00 bruZard ist offline   Profil von bruZard Füge bruZard deiner Freunde-Liste hinzu Homepage von bruZard
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Das ist ja nur ein GUI wrapper, und dann ist das auch noch so wie bei C in lauter kleine files aufgeteilt und so wie ich sehe, hat da so ein file 40% declarationscode und macht kaum was.Das wird dann natürlich langsamer, alles zu kompilieren, weil dauernd includes und deklarationen compiliert werden müssen.

ich meinte Programme wie Malprogram etc grössere spiele z.b strategie in nem file.

Aber wenn du das wx mal kompilieren kannst und sagen wie lange ein Komplett build braucht wäre auch was.

Ich kann mich noch erinnern, hatte mal ein GUI source für blitzpc (das alte) gefunden.das GUI konnte kaum was.

war in einem stück und 6700 Zeilen lang.evtl weist du wie das heist und ob es das evtl in grösserer Form noch gibt.

Damals hatte ich allerdings noch nen P3 1 GHZ.

Die 6700 Zeilen kompilierten in 8 sec.mein AMD64 3000+ dürfte doppelt so schnell sein, aber blitz pc hatte ja noch keinen GCC.

Mich würde mal ein prog an einem stück in blitz pc mit gcc von 10000 Zeilen interesieren.

gibts sowas ?

man kann ja in 10 oder 20 Jahren dann auf gcc als compiler umsteigen, wenn die Rechner schnell genug sind.

aber ne Programmiersprache die wie C das starke aufteilen von files und damit verbunden extra headerfiles erstellen und extern deklarationen einbauen muss, braucht man nicht, da kann man auch gleich C nehmen.

>Schau mal im AROS-Archiv bzw. frage Bernd, ob er Dir >die aktuellste OpenSSL-Lib Version 0.9.8j (von letzter >Woche, denke ich) für 68k kompiliert

Ein C skelett für eine shared library habe ich von SDL, damit kann man libs bneutzen als amiga shared libs, oder den source der alten amissl lib

openssl von AROS war schon sehr alt.aber für 68k ist die letzte von 16.8.2007 0.9.7

http://aminet.net/package/dev/gg/openssl-bin

Dieser Beitrag wurde von bernd_ am 30.01.2009, 13:00 Uhr editiert.

30.01.2009, 12:48 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Bernd, kannst du deine Idee nochmal näher ausführen?
Ich habe das nicht richtig verstanden.

Ich verfolge eigentlich zwei Zeile:

1. AB3 aufzupeppen damit man solche Dinge wie images und sounds noch besser Kapseln kann.
Dazu bräuchte man Function Pointer und public/private Felder in Newtypes.

Dann würde

image_GetWidth{*myImage} => *myImage\width

image_Resize{*myImage,320,200} => *myImage\Resize{320,200}

Was mir syntaktisch schon besser gefallen würde.
Aber auch Typensicherheit bei Pointer wäre wichtig, auch vermisse ich des öferen Unsigned Variablen, gerade bei Grafikmanipulation, weil Pixel unsigned Bytes sind.
2. Als Zielplattform hätte ich mindestens gerne AROS. PPC ist mir nicht so wichtig, da würde sich aber evtl. jemand finden der das macht, wenn es einen einfachen Weg gibt einen Codegenerator zu integieren.

Im Moment befürchte ich, dass bei AB3 Compiler auch gleichzeitig der Codegenerator ist, sodass man da nicht so einfach was ändern kann.


Für mich wäre der Weg eben einen neuen Compiler mit Virtual Binary als Zwischenstufe die Lösung. Aber ich bin kein Sturkopf und lasse mich gerne belehren und respektiere auch deine Meinung, Amiblitz3 zu erweitern.


__________________
Check out http://www.hd-rec.de !

30.01.2009, 14:06 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Im Moment befürchte ich, dass bei AB3 Compiler auch >gleichzeitig der Codegenerator ist, sodass man da >nicht so einfach was ändern kann.

Jedes Programm lässt sich ändern und erweitern also auch amiblitz.

lies mal hier was Gunther der die amiga C compiler gemacht hat schreibt zu codeänderungen, vielleicht glaubst du mir dann ja eher.

http://www.amiga-news.de/de/news/comment...1-00083-DE.html

"""
Neue Fähigkeiten bedeuten zwangsweise auch Fehler, vor allem dann wenn alter Code durch neuen ersetzt wird.
"""

in AB3 ist dass die stelle in der dann der Preprocessor und Backend reinkäme.

hier ist sogar ein compile zeilenzähler drin
....
JL_0_4136: ADDQ.l #1,linenum
MOVE.l destpointer,destpointer2
MOVE.l a5,sourceline2
BSR.w compilepass ;compile pass

AJL_0_413A: BSR.w nextline
BNE.w JL_0_4136
....
sehe grad das label BSR.w compilepass ist falsch.müsste eigentlich compile_line sein.

compileloop führt immer genau ein Statement aus.
(entweder bis Zeilenende, oder bis zum nächsten Doppelpunkt.)

der compile pass macht dann alle statements einer Zeile

.compilepass:
MOVE.l a7,stackaddr
BSR.w compileloop
BSR.w JL_0_7C3A
BNE.w JL_0_8292
TST.w dontwrite
BNE 'l1
TST.l stacktrack
BNE errorstack
'l1 CMP.w #-$7FDE,D0
BNE.w JL_0_43CA
JSR AJL_0_C438
BRA.w compilepass

Da kannste dir aussuchen wo du den aufruf für den Preprocessor oder das backend reinsetzen willst.jedes statement, jrede zeile oder vor/nach dem ganzen source

es gibt dann 2 adressen, die 1 adresse enthält die link list für den sourcecode.

die 2. adresse ist ein Speicherbereich in dem der 68k code steht.

reloziert, also die korrekten sprungaddressen reingesetzt, amiga OS hunks erzeugt wird in der func savefile

da kann ich dann auch einen sprung machen in ne Basicroutine, die man anspringen muss, wenn man als AROS exe etc speichern will

>aber auch Typensicherheit bei Pointer wäre wichtig, >auch vermisse ich des öferen Unsigned Variablen, >gerade bei Grafikmanipulation, weil Pixel unsigned >Bytes sind.

da müsste man komplett neue residents machen.auserdem sind byte variablen langsam auf risc CPU mit JIT und man kann nicht gross rechnen damit, weil es schnell übrläufe gibt.man sollte immer long nehmen.

weil RISC kein merging kennen

z.b

wenn im Register d0 $12345678 steht, kann ein PPC garnicht in einem befehl und X86 sehr langsam das korrekt machen.

so dass dann die byte var $ff ins Register so kommt wie es die 68k Syntax sagt

$123456ff


Bei PPC gibts z.b nur den Befehl lb oder lbz.da steht dann im register

$000000ff

also das was du mit long vars auch hast.

also mit a.l = peek.b oder ein macro oder einen Befehl schreiben dafür ist besser und ersetzt das byte unsigned komplett

eigentlich braucht man kein unsigned, unsigned macht nur Probleme wenn man vergleichsoperationen benutzt.

man hat halt das 2 gigabyte Limit, aber das reicht auch.

will man mehr, nimmt man eben 64 bit Befehle.

Dieser Beitrag wurde von bernd_ am 30.01.2009, 18:27 Uhr editiert.

30.01.2009, 18:01 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Ich mache immer

A.l = peek.b(...) & $FF

Sonst bekommst man negative Werte in A.
Es gibt auch die Funktion PeekUB. Ist die genauso schnell wie peek.b ?


__________________
Check out http://www.hd-rec.de !

30.01.2009, 18:43 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bruZard
König



Dabei seit: August 2005
Herkunft:
Beiträge: 830
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bruZard suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von bernd_
Das ist ja nur ein GUI wrapper, und dann ist das auch noch so wie bei C in lauter kleine files aufgeteilt und so wie ich sehe, hat da so ein file 40% declarationscode und macht kaum was.Das wird dann natürlich langsamer, alles zu kompilieren, weil dauernd includes und deklarationen compiliert werden müssen.

ich meinte Programme wie Malprogram etc grössere spiele z.b strategie in nem file[...]


Es ist vollkommen Banane ob Du das Modul oder ein anderes großes BMax Projekt als Beispiel nimmst. Beides ist gleich in der Art der Verwaltung, nur das ein Modul halt einen speziellen Namespace hat.


__________________
PanzerZ | jBB / HTML5 Canvas Framework

30.01.2009, 19:52 bruZard ist offline   Profil von bruZard Füge bruZard deiner Freunde-Liste hinzu Homepage von bruZard
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Es gibt auch die Funktion PeekUB. Ist die genauso >schnell wie peek.b ?

ne, aber ich kann den Befehl peekub auch in den Optimizer reinnehmen wie peek, der das macht.in asm kann ich dann inline

moveq #0,d0
move.b xxx,d0

machen.

damit man nicht immer peek oder poke schreiben musst kann man auch mal ein offizielles macro einführen wie z.b bei C

!G !P

für get und put, oder nen andren uppercase Namen

Dieser Beitrag wurde von bernd_ am 30.01.2009, 20:41 Uhr editiert.

30.01.2009, 20:41 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Gast
unregistrierter Benutzer



Dabei seit:
Herkunft:
Beiträge:
  Antwort mit Zitat Beitrag editieren/löschen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

@bernd

Zitat:

!G !P

für get und put, oder nen andren uppercase Namen



solange ihr auch dokumentiert was ihr ändert/einbaut als wenn eine Horde Bananen hinter euch her wäre ist mir alles Recht

30.01.2009, 20:45  
Der_Wanderer
Foren Gott




Dabei seit: März 2006
Herkunft: Karlsruhe, Baden-Württemberg
Beiträge: 3564
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Der_Wanderer suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Nein, das muss ein Token sein. !G und !P wäre hochgradig unsauber, auch vielfachen Gründen.

In A++ wäre das Peek.ub ().
(wenn es überhaupt Peek geben sollte, das ist fraglich)

In C würde man einen Pointer drauflegen, so:

struct ARGB {
unsigned byte A;
unsigned byte R;
unsigned byte G;
unsigned byte B;
}

und dann

*pixel.ARGB = Addresse der Zeile
For (x=0; x pixel[x].A = ...
}


Wie wäre sowas denn am Performatesten in Amiblitz3?
Meine derzeitigen Methoden sind recht lahm.

Ich mache das so

pixel.l = Addresse der Zeile
For x=0 to width-1
A.l = Peek.b(pixel) & $FF
...
pixel + 4
Next


__________________
Check out http://www.hd-rec.de !

30.01.2009, 21:24 Der_Wanderer ist offline   Profil von Der_Wanderer Füge Der_Wanderer deiner Freunde-Liste hinzu Email an Der_Wanderer senden Homepage von Der_Wanderer
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Beides ist gleich in der Art der Verwaltung, nur das ein >Modul halt einen speziellen Namespace hat.

Ne Thilo meint ja wenn man in C alles in ein einziges file tut wird es schneller als wenn man alles wie bei C üblich in kleine Fetzelchen zerhackt.

>*pixel.ARGB = Addresse der Zeile
>For (x=0; x pixel[x].A = ...

Wenn du sowas codest, dann wäre dein compiler code aber total langsam.

mach mal so nen code und stell den Optimizer in C ab.
der optimizer bringt da locker 3-4 fache speed, weil der Compiler das intern in zeiger umrechnet und den type Zeiger nicht dauernd lädt.

aber wäre schon besser nen peekub zu haben.mit nem asm Befehl oder macros ginge es aber auch


derzeit kommt das raus.


118D0310): MOVE.B (D1.L),D0
118D0314): EXT D0
118D0316): EXT.L D0
118D031: MOVE.L #$FF,D1
118D031E): AND.L D1,D0
118D0320): MOVE.L D0,-$7FF0(A5)

wert.l = 20

in asm

moveq.l #0,d0
move.b addr@(a5),d0
move.l d0,wert@(a5)

>Nein, das muss ein Token sein. !G und !P wäre >
>hochgradig unsauber, auch vielfachen Gründen.

Dazu das Rechenzeichen * zu benutzen, ist auch nicht gerade sauber.oder gibts ne logische Erklärung warum das Multiplikationszeichen *auch als address lade zeichen deklariert wird ?

Aber wenn dir !G und !P nicht gefällt wie wäre es damit

!< für poke

!> für peek

logische Erkärug, das ! steht für die Speicherzelle

!> symboliesiert, dass ein Wert aus einer Speicherzelle raus kommt.

!< reinkommt.

wer das löst hat 100 Punkte

wenn man
!>bu
macht na was macht das dann ?

peek.b kann man natürlich weiter verwenden

und bei dem > macro gibts ne online quickHilfe wie bei allen macros
Wenn man auf das Macro geht und sich wundert was soll denn das, help drücken reicht.

Dieser Beitrag wurde von bernd_ am 31.01.2009, 13:31 Uhr editiert.

31.01.2009, 13:30 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
bernd_
Haudegen



Dabei seit: Oktober 2008
Herkunft:
Beiträge: 561
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von bernd_ suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

>Dazu bräuchte man Function Pointer und public/private >Felder in Newtypes.

kannst du alles machen in deinem preprocessor.Wird bei C++ genauso gemacht.

Ich halte aber von privaten variablen nix in newtypes.
Warum muss eine Programmiersprache den Programmeierer zumn deppen erklären, indem sie den Zugriff auf etwas verweigert und nur privates erlaubt ?

woher soll der programmierer wissen, was jemand der ein neues Programm schreibt braucht

Du kanst ja privates mit p_ im Namen kennzeichnen, da weis dann der Programmierer, die Funktion ist nicht vorgesehen und kann sich ändern, benutzungf auf eigene Gefahr

Und wenn du schon meinst dein code wäre so sauber

31.01.2009, 14:18 bernd_ ist offline   Profil von bernd_ Füge bernd_ deiner Freunde-Liste hinzu Email an bernd_ senden
Honitos
König




Dabei seit: Mai 2002
Herkunft: Hambühren/Niedersachsen
Beiträge: 968
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträgen von Honitos suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von bernd_
hier ist sogar ein compile zeilenzähler drin
....
JL_0_4136: ADDQ.l #1,linenum
MOVE.l destpointer,destpointer2
MOVE.l a5,sourceline2
BSR.w compilepass ;compile pass

AJL_0_413A: BSR.w nextline
BNE.w JL_0_4136
....
sehe grad das label BSR.w compilepass ist falsch.müsste eigentlich compile_line sein.

compileloop führt immer genau ein Statement aus.
(entweder bis Zeilenende, oder bis zum nächsten Doppelpunkt.)

der compile pass macht dann alle statements einer Zeile




Danke für die Infos. Das ist mir sehr wichtig.
Das mit den Labels kann vorkommen, schließlich muß ich die Funktion jedes Codeblocks anhand des ASM-Codes erraten - genau wie Du das nach dem Disassemlieren mal angefangen hattest. Da sind bestimmt noch mehr Bezeichnungsfehler drin. Vielleicht kannst du mir das ein oder andere Mal noch helfen, wenn ich Probleme habe, ein Codefragement zu verstehen...


__________________
On the web at http://www.programmed-excellence.de

31.01.2009, 16:58 Honitos ist offline   Profil von Honitos Füge Honitos deiner Freunde-Liste hinzu Email an Honitos senden
[  «    1  2  3  4  5    »  ]   « Vorheriges Thema | Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu: