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

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

Erste 2 3 4 5 6 -7- 8 9 10 11 12 >> Letzte Ergebnisse der Suche: 1662 Treffer (30 pro Seite)
AGSzabo   Nutzer

05.01.2012, 13:17 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

> Das wusstest Du aber nicht. Trotzdem hast Du angenommen, dass es schneller wäre.

Ich hatte angenommen, dass der vorhandene Code schneller ist, weil er mit einem Test weniger aus kommt. Warum genau das so ist hat sich er erst dann geklärt.

> Andererseits frag ich mich immer noch, wo da die Zeit verbraten werden soll, bei 2000 Einträgen und dem gezeigten Assembler-Code.

Inzwischen arbeite ich mit einem Test von 8860 Einträgen. Auf 2000 springt der Zähler so schnell, dass es gleich am Anfang da zu sein scheint. Allerdings nur auf meiner Turbo-Maschine mit 2x 2700 Mhz.

Übrigens ist mir der Einfrier-Hänger jetzt auch beim ASL Requester und beim "list" in der Shell aufgefallen. Könnte ein Problem des UAE sein.

Den Suchalgo hab ich noch nicht ganz verstanden. Im Moment habe ich durchaus sehr viele ähnliche Strings, weil ich einfach den Directory-Inhalt 8x geklont habe um so viele Dateien zu erhalten. ;)
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 21:39 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Welches ist das relative Objekt? Die Listview benutzt den Offset der Row. Die Row ist der Vorgänger, weil die Liste drauf auf baut? In meinem Fall kann man sich auch in diesem Fall nicht auf die Offsets verlassen. Daher werden sie geholt.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 21:32 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Wow! Ich habe es nochmal enorm beschleunigen können:

- die Listview ist ein Objekt, welches das Listrow Objekt in der Vielzahl benutzt.

- beim sortierten Adden hat die Listview bisher immer den Text und die Priorität der Zeilen per GetAttr() aus den Listrow Objekt gelesen. Das bedeutet, es geht bei jeder schon vorhandenen Zeile immer durch ihren Dispatcher!

- jetzt habe ich der Listrow zwei weitere Attribute hinzugefügt, die man mit GetAttr() auslesen kann: den Offset zum Textzeiger im Objekt und den Offset zum Prioritätswert.

- die Listview holt sich jetzt beim Adden der neuen Zeile von dieser mal eben diese beiden Offsets, und liest dann mit deren Hilfe den Text und die Priorität der schon vorhandenen Zeilen aus!
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 20:44 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

> Warum sollte es schneller sein, Speicherbereiche, die gar nicht mehr zum String gehören, zu vergleichen?

Tut ja keiner, oder?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 20:40 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

> http://de.wikipedia.org/wiki/Interpolationssuche

Aha. Also für den Wahlfreien Zugriff fehlt mir der Index. Ich habe eine verkettet Liste. Wäre es möglich, einen Index zu horten? IMO würde das Updaten von diesem eher noch viel mehr Zeit benötigen.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 20:33 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

"berauschend schnell" war der erste eindruck. inzwischen ist es mir nimmer schnell genug.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 20:26 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

Das Einfügen ist der Flaschenhals. Ganz eindeutig und geprüft. Wie macht man eine Interpolationssuche?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 18:44 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

ich hab diese Routine von jemand aus dem Forum hier. Es war ein ganzer bubblesort Algo. Der fehlende Check ist mir auch schon aufgefallen, ich dachte aber, das macht nichts, ist evtl auch schneller so.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 17:59 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Wenn ein Buchstabe nicht gleich ist, wird gleich abgebrochen:

code:
.strcmp		; a0 string1, a1, string2

		moveq  #0,d0
		moveq  #0,d1
.loop1		move.b  (a1)+,d1
		bclr	#5,d1	; case independent
		move.b  (a0)+,d0
		beq.s  .exit1
		bclr	#5,d0
		cmp.b  d0,d1
		beq.s  .loop1
.exit1		sub.l  d1,d0
		rts


Der Refresh ist es nicht, ich habe ihn eben mal ausgeschaltet und die Sekunden gezählt, es macht keinen Unterschied.

Ich weiss nicht, wie man eine Interpolationssuche macht.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 17:41 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Die Suchroutine braucht immer länger je mehr Einträge vorhanden sind.

Außerdem grast der Refresh und Re-Layout immer alle vorhandenen Objekte ab, ob eines geupdated werden will, ja und zwar rekursiv für Kinder und Kindeskinder usw. Gezeichnet wird aber nur, was auch sichtbar ist.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

04.01.2012, 16:24 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Der UAE greift auf meine linuxseitig native Platte zu. buffergröße war zum testen so das genau 1 eintrag mit voller datei- und kommentarlänge rein passt. wenn ich mehr nehme, würde ich mein ganzes schönes Refresh auf ticks basis sabotieren? eine schleife hab ich trotzdem gemacht, da bei kurzem dateinamen auch zwei oder mehr files in meinen buffer passen. vielleicht sollte ich einen größeren buffer wählen, aber hey, das stört mich garnicht so. vielmehr nur dieses vorrübergehende einfrieren.

ps: Der Flaschenhals ist definitiv das Einfügen der richtigen Position, nicht das einlesen von disk. Im ersten Moment sind gleich 1000 files gelesen, dann wird es immer langsamer. Mit ExAll() und einem größeren Buffer ließe sich das IMO auch nicht weiter beschleunigen.

--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 04.01.2012 um 16:26 Uhr geändert. ]
 
AGSzabo   Nutzer

04.01.2012, 11:23 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Ich habe gerade ExAll() ausprobiert, aber egal ob ich ExAll() oder ExNext() verwende, das UAE System friert bei großen Directorys, so ab ca 1000 einträge beim ERSTEN Aufruf der Funktion deutlich sicht- und spürbar ein. Also bei mir hier. Beim ASL Requester passiert das aber nicht. ?

ps: und Examine() / ExNext() scheint schneller zu sein.

--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 04.01.2012 um 12:03 Uhr geändert. ]
 
AGSzabo   Nutzer

03.01.2012, 12:37 Uhr

[ - Direktlink - ]
Thema: filerequester task
Brett: Programmierung

@Holger:

Zwei Zeilen geändert und schwupp erledigt der gui task das layout selber. Hat sich aber nix geändert. Liegt vielleicht daran, dass es der uae ist? Übrigens geht mein Einlesen im Emulator sehr viel viel schneller als das selbe directory direkt unter linux.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

03.01.2012, 12:30 Uhr

[ - Direktlink - ]
Thema: add Node to List sorted Algorithmus
Brett: Programmierung

@Holger:

Es war mir nicht gleich ganz klar. Ich hatte darüber schon nachgedacht.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

03.01.2012, 12:16 Uhr

[ - Direktlink - ]
Thema: filerequester task
Brett: Programmierung

@Holger:

> Jedenfalls ist Dein Task mit Layoutberechnung beschäftigt, wenn eigentlich schon neune Daten gelesen werden könnten.

Ist es denn von Bedeutung welcher Task das Layout macht? Ich meine, wenn es der main task machen würde, könnte wäherenddessen der read task auch nicht weiter einlesen?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

03.01.2012, 12:07 Uhr

[ - Direktlink - ]
Thema: add Node to List sorted Algorithmus
Brett: Programmierung

@Holger:

> Ist das wirklich ein Problem für Dich?

das hab ich schon längst gelöst.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

03.01.2012, 12:00 Uhr

[ - Direktlink - ]
Thema: filerequester task
Brett: Programmierung

@Holger:

> und dann wunderst Du Dich, dass es langsam ist?

ist es nimmer. der flaschenhals war das sortieren, das jetzt durch alfabetisches adden ersetzt wurde.

> Das sollte Dir übrigens bekannt vorkommen. Genau so teilt die Workbench jedem Programm mit, welche Icons beim Start geöffnet waren.

Ja, daran habe ich auch oft gedacht. Naja, jetzt funktioniert es anscheinend mit SIGF_BREAK_CTRL_F oder so, wie im Beispielsource.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

01.01.2012, 18:10 Uhr

[ - Direktlink - ]
Thema: filerequester task
Brett: Programmierung

Hier mal so zwischendurch der Stand der Dinge in Sachen Filerequester:

Bild: http://images.quicktunnels.net/oxfilereq.png
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

01.01.2012, 04:30 Uhr

[ - Direktlink - ]
Thema: Guten Rutsch
Brett: Get a Life

Alles gute und ein frohes neues Jahr auch von mir! ^_^

und ps: möge die Macht auch dieses Jahr mit euch sein! :D

[ Dieser Beitrag wurde von AGSzabo am 01.01.2012 um 04:37 Uhr geändert. ]
 
AGSzabo   Nutzer

31.12.2011, 11:58 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Das Dumme ist nur, ich habe es ausprobiert, dass das Durchgehen mit ExNext() fast genauso lange dauert, wie dann das Einlesen der Liste selber. Ich bezweifele dass es mit ExAll schneller geht. Ich möchte doch einen Progressbar machen.

Sogar das Hostsystem Ubuntu Linux braucht seine Zeit, bis es das Testdir mit ca 2000 Dateien eingelesen hat.

ps: was ist, wenn der buffer nicht für alles filenamen aus reicht? ich habe in den docs gelesen dass mindestens der dateiname ...

... und dass man, wenn more gesetzt ist, das ganze nochmal und nochmal aufrufen müsste ...



[ Dieser Beitrag wurde von AGSzabo am 31.12.2011 um 12:07 Uhr geändert. ]
 
AGSzabo   Nutzer

30.12.2011, 22:03 Uhr

[ - Direktlink - ]
Thema: add Node to List sorted Algorithmus
Brett: Programmierung

Ich war auf Bubblesort. Das war in jedem Fall zu langsam. :)

Das Adden an der richtigen Position ist mir schnell genug, bzw quicksort oder gar binärsort versteh ich vorne und hinten nicht. Interessant wäre evtl noch diese Interpolationssuche...

ps: ich möchte jetzt noch mit rein nehmen, dass zusätzlich zum Alfabet als Kriterium eine Node Priorität verwendet wird. Damit kann man dann Verzeichnisse an den Anfang stellen. Wie berücksichtigt man das im Algo?

[ Dieser Beitrag wurde von AGSzabo am 30.12.2011 um 22:22 Uhr geändert. ]
 
AGSzabo   Nutzer

30.12.2011, 20:20 Uhr

[ - Direktlink - ]
Thema: filerequester task
Brett: Programmierung

@thomas:

Ich weiß jetzt nicht worauf du dich da bei mir beziehst. Mit dem SIGBREAKF_CTRL_F funktioniert es ja auch ohne Forbid. Es friert blos auch ohne das forbid ein. Meinst du es würde nimmer einfrieren wenn ich Ports und Messages verwende? Ist das für diesen einen Pointer nicht zu viel des Guten?

ps: neuere Studien ergeben, dass das Einfrieren garnicht bei CreateNewPRoc(), sondern in Examine() passiert sein könnte. Muss ich meinem Prozess für CreateNewProc() noch etwas mitgeben, das ich verpasst habe?

code:
.proctags	dc.l	NP_Entry,scandir_process
		dc.l	NP_Name,.procname
		dc.l	NP_StackSize,8000
		dc.l	NP_ExitCode,.process_exit
		dc.l	TAG_END


--
Author of Open eXternal User Interfaces - Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 30.12.2011 um 20:34 Uhr geändert. ]
 
AGSzabo   Nutzer

30.12.2011, 19:27 Uhr

[ - Direktlink - ]
Thema: add Node to List sorted Algorithmus
Brett: Programmierung

@Thore:

Das verstehe ich noch nicht. Wie hilft mit die Anzahl der Nodes beim Finden der Mitte?
--
Author of Open eXternal User Interfaces - Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux
 
AGSzabo   Nutzer

30.12.2011, 17:39 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Hallo,

gibt es einen schnellen Weg, heraus zu finden, wie viele Dateien in einem Verzeichnis sind? ExNext() loop wäre zu aufwendig, glaube ich.
--
Author of Open eXternal User Interfaces - Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux
 
AGSzabo   Nutzer

30.12.2011, 16:01 Uhr

[ - Direktlink - ]
Thema: filerequester task
Brett: Programmierung

Noch ein kleines Problem.

Der Parent-Process muss nach TC_Userdata des Child Prozesses einen Zeiger auf meine Globalen schreiben. Dazu macht der Parent Prozess im Moment vor CreateNewProc() ein Forbid() und dann nach dem Schreiben des Zeigers ein Permit(). In der Theorie ist das gut, in der Praxis ergeben sich manchmal sichtbare Einfrierzeiten, bis der neue Prozess gestartet ist.

Dem will ich wie folgt abhelfen: der Child Prozess wartet auf SIGF_SINGLE, welches vom Parent Prozess nach dem Schreiben des Zeigers ausgelöst wird. Das Problem: der Parent Prozess setzt das Signal noch bevor der Child-Prozess dieses löscht, um darauf zu warten. Somit bleibt der Child-Task in der Schwebe...

ps: ich habe das SIGF_SINGLE durch SIGBREAKF_CTRL_F ersetzt, das braucht nicht erst gelöscht zu werden. Das Forbid habe ich raus genommen, aber zefix, das System friert beim Start des Child Prozesses immernoch beim ersten mal ausführen des Programms einige Sekunden ein!

--
Author of Open eXternal User Interfaces - Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 30.12.2011 um 16:15 Uhr geändert. ]
 
AGSzabo   Nutzer

30.12.2011, 14:36 Uhr

[ - Direktlink - ]
Thema: filerequester task
Brett: Programmierung

Nur mal so zum Verständnis: ein Sprung zu Wait() hebt doch ein vorangegangenes Forbid() auf, oder?
--
Author of Open eXternal User Interfaces - Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux
 
AGSzabo   Nutzer

30.12.2011, 14:10 Uhr

[ - Direktlink - ]
Thema: add Node to List sorted Algorithmus
Brett: Programmierung

Das Directory hat 2000 Files und es geht jetzt mit der sequentiellen Suche berauschend schnell. Auch das Refreshen passiert jetzt im Intuiticks-Takt. Der Flaschenhals war tatsächlich die Bubble-Sortierung nach jedem neuen Eintrag. Außerdem speichere ich die Nodes nimmer zwischen, sondern hänge sie nach dem Einlesen des Dateieintrages direkt gleich in die Liste. Refresht wird aber nur wenn ein Tick kommt und auch nur dann wenn nicht gerade schon refresht wird.

Hier zum Überblick mein AddSorted code:

code:
LV_addsorted	bsr	new_row

		push	d0
		beq	.pop

		move.l	d0,a1

		move.l	oxLV_contentgroup(a3),a0

		pushm	a0/a1

		sub.l	a2,a2

		; get new node texts, add at head if none

		move.l	a1,a0
		move.w	#oxLRA_texts,d0
		jsr	_LVOoxGetAttr(a6)
		tst.l	d0
		beq	.add

		; get first column text of new node, add head if none

		move.l	d0,a4
		move.l	(a4),d0
		beq	.add
		move.l	d0,a4

		; get first (and next) node, add at head if none

		move.l	(a7),a0

		lea	oxO_list(a0),a3
.loop		move.l	(a3),a3
		tst.l	(a3)
		beq	.add

		; get that node texts, skip if none

		move.l	a3,a0
		move.w	#oxLRA_texts,d0
		jsr	_LVOoxGetAttr(a6)
		tst.l	d0
		beq	.loop

		; get first column text of that node, skip if none

		move.l	d0,a0
		move.l	(a0),d0
		beq	.loop
		move.l	d0,a0

		move.l	a4,a1
		bsr	.strcmp
		bgt	.add

		move.l	a3,a2
		bra	.loop

.add		popm	a0/a1
		jsr	_LVOoxAddMemberAfter(a6)

		tst.l	d0
		beq	.dispose

.pop		pop	d0
		rts

.dispose	pop	a0
		jsr	_LVOoxDispose(a6)
		moveq	#0,d0
		rts

.strcmp		; a0 string1, a1, string2

		moveq  #0,d0
		moveq  #0,d1
.loop1		move.b  (a1)+,d1
		bclr	#5,d1	; case independent
		move.b  (a0)+,d0
		beq.s  .exit1
		bclr	#5,d0
		cmp.b  d0,d1
		beq.s  .loop1
.exit1		sub.l  d1,d0
		rts


Da es so schnell genug geht und Directorys selten mehrere Tausend Einträge haben (?), verzichte ich auf die Interpolationssuche oder ähnliches. Ich weiß auch momentan garnicht, wie ich da schneller als jetzt schon ist immer die Mitten finden kann.

Meine Methode wirkt ein bischen aufgeblasen, das rührt daher, dass man a) in einer späteren Version auch nach anderen Spalten soriteren können muss und b) dass die Listview die für das Adden zuständig ist, den Offset für den Zeiger auf das Spaltentexte-Zeiger Array im Listenzeilen-Objekt nicht kennt.

danke
--
Author of Open eXternal User Interfaces - Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 30.12.2011 um 14:13 Uhr geändert. ]
 
AGSzabo   Nutzer

30.12.2011, 13:07 Uhr

[ - Direktlink - ]
Thema: add Node to List sorted Algorithmus
Brett: Programmierung

Hallo,

hat zufällig jemand einen Algo im Kopf, mit dem ich eine Node in eine Exec-Liste an der alphabetisch richtigen Position einfügen kann? Pseudocode reicht.

ags
--
Author of Open eXternal User Interfaces - Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux
 
AGSzabo   Nutzer

29.12.2011, 11:40 Uhr

[ - Direktlink - ]
Thema: clip 32 bit coordinates to 16 bit
Brett: Programmierung

Hellau,

die Aufgabe ließt sich einfach: meine zu zeichnenden Objekte haben ihre left top width and height in 32 bit, die graphics.library kann aber bei ihren Zeichenfunktionen nur mit 16 bit arbeiten. Es muss eine Konvertierung her. Für left, bzw top funktioniert dieser code (left in d0):


code:
.clip		cmp.l	#$7fff,d0
		blt	.low
		move.w	#$7fff,d0
		bra	.ok
.low		cmp.l	#$ffff8000,d0
		bge	.ok
		move.w	#$8000,d0
.ok


Aber für width und height muss es imo anders laute, denn die müssen am Rand beschnitten werden. Mein erster Ansatz ist so (left in d0, width in d2):

code:
.width		add.l	d0,d2
		subq.l	#1,d2

		cmp.l	#$7fff,d2
		blt	.low
		move.w	#$7fff,d2
		bra	.ok
.low		cmp.l	#$ffff8000,d2
		bge	.ok
		move.w	#$8000,d2
.ok
		sub.w	d0,d2
		addq.w	#1,d2


Funktioniert das in jedem Fall? Oder muss ich, wenn d2 (width) zum schluss negativ ist, es auf $7fff setzen? Oder wenn es zum schluss $8000 ist, wieder eins abziehen? Oder ganz was anderes?

danke

[ Dieser Beitrag wurde von AGSzabo am 29.12.2011 um 11:50 Uhr geändert. ]
 
AGSzabo   Nutzer

28.12.2011, 19:34 Uhr

[ - Direktlink - ]
Thema: protection bits
Brett: Amiga, AmigaOS 4

@thomas:

Wer weiß, ich habs ja nicht umgestellt und vorher ging es. erst seit dem Zurückkopieren werden Dateien erzeugt die kein e bit haben.
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux
 
 
Erste 2 3 4 5 6 -7- 8 9 10 11 12 >> Letzte Ergebnisse der Suche: 1662 Treffer (30 pro Seite)

Suchbegriffe
Schlüsselwörter      Benutzername
Suchoptionen
Nur in diesen Foren suchen
   nur ganze Wörter
Nur Titel anzeigen
alle Treffer anzeigen

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