Wer schreibt mir eine kurze Maschinenroutine?


Wer schreibt mir eine kurze Maschinenroutine?

von atarixle » Sa 6. Mär 2004, 14:03
Hallo, Freunde des gepflegten ATARI-Talks!

Kann mir jemand helfen? Ich brauche eine Routine, um Bildschirmausschnitte zu scrollen. Sie soll unter BASIC/Turbo-BASIC aufzurufen sein.

Ich möchte damit Fensterinhalte in Gr.8 oder Gr.0 scrollen, also nicht die komplette Zeile...

hier ein Beispiel:
A=USR(routine,screen,x,y_start,y_ziel,x_len,y_len)
dabei ist routtine die Start-Adresse der Routine (logisch, gell?)
screen ist nichts weiter als DPEEK(88), also die Startadresse des Bildschirmspeichers ... den Screenstart soll die Routine nicht automatisch ermitteln, falls ich mal im Hintergrund scrollen möchte (heute sagt man Framebuffer dazu)
x ist die X-Position des zu scrollenden Inhalts
y_start,y_ziel sind die Y-Position des Inhaltes (start und ziel)
x_len sagt an, wie viele Zeichen pro Zeile gescrollt werden solllen
y_len sagt, wie viele Zeilen gescrollt werden sollen

Der Bildschirm rund um den gescrollten Inhalt brauht (soll) nicht gelöscht werden, da er sowieso mit neuen Inhalten gefüllt wird (weiterer Fensterinhalt).

In Turbu-BASIC wäre das ungefähr so:
FOR P=0 TO y_len-1
MOVE screen+x+y_start*40,screen+x+y_ziel,x_len
NEXT P

Dabei sollte die Routine selbständlig zwischen korrektem Vorwärts- und Rückwärtsscrollen unterscheiden.

Danke im Voraus an alle ML-Freaks, die mir damit einen großen gefallen tun würden

Mirko Sobe

www.atarixle.de

Wer schreibt mir eine kurze Maschinenroutine?

von pps » Mo 22. Mär 2004, 19:31
Wie meinst Du das denn genau mit Scrolling? Wenn Du nur einen Bereich des Bildschirmes scrollen willst, wird man das wahrscheinlich nur per Grafikmodus und \"Blitting\" hinbekommen.

[Editiert am 22/3/2004 von pps]

Wer schreibt mir eine kurze Maschinenroutine?

von cas » Di 23. Mär 2004, 12:38
Hallo Mirko,

bist Du in Schreiersgrün am Wochenende? Können wir dann über die ML Routine reden.

Ciao

Carsten

Wer schreibt mir eine kurze Maschinenroutine?

von Schmutzpuppe » Di 23. Mär 2004, 13:43
Die Infos im Event-Kalender über Schreiersgrün sind ja recht dünn, gibt es nicht irgendwo einen Link?

Wer schreibt mir eine kurze Maschinenroutine?

von Bunsen » Di 23. Mär 2004, 22:08
Hallo Matthias!

Hier ein kurzer Bericht über Schreiersgrün 2003. Vielleicht kannst du dir damit ein besseres Bild machen?!

http://mitglied.lycos.de/gunnarbusse/ba ... r2003.html

Wer schreibt mir eine kurze Maschinenroutine?

von Schmutzpuppe » Di 23. Mär 2004, 23:06
Cool, danke.
Sieht nach Spaß aus, mal schauen ob ich meine Perle überreden kann :)
Ein Lageplan ist ja glücklicherweise im Abbuc Mag.
Btw. das Light Cycle das ihr da gespielt habt ist das so ein super kleines Programm mit simpler Grafik (aus der Happy Computer)?

Wer schreibt mir eine kurze Maschinenroutine?

von atarixle » Do 25. Mär 2004, 16:20
Ja, es soll eine Art \"Blitting\" sein. Der Grafikmodus sollte eigentlich keine Rolle spielen, da ich diese Routine nur in Modi anwenden will, die 40 Bytes pro Zeile haben (Gr.0, 7, 8, 9, 10, 11, 12, 13, 15).

Ich werde in Schreiersgrün sein (es sei denn, es kommt wirklich was dummes dazwischen, aber das glaube ich nicht).

Mirko


www.atarixle.de

Wer schreibt mir eine kurze Maschinenroutine?

von cmc » Do 25. Mär 2004, 21:10
HrHr....

wenn das aus der Happy Computer ist, so kenne ich den Autor.

Gruß an Matthias :)

cmc

Wer schreibt mir eine kurze Maschinenroutine?

von cas » Mo 5. Apr 2004, 19:04
Hallo Mirko,

im APG Wiki findest Du die erste Beta Version.

http://www.strotmann.de/twiki/bin/view/APG/PgmGraphics

Gib mir Rückmeldung ob das so OK ist, dann verfeiere ich das noch ein wenig...

Ciao

Carsten

[Editiert am 5/4/2004 von cas]

Wer schreibt mir eine kurze Maschinenroutine?

von pps » Mo 5. Apr 2004, 20:14
Wie so oft - der Carsten macht schnell und effektiv die passenden Sachen :D

Welche Sprache sprichst Du denn nicht?!? :o

Wer schreibt mir eine kurze Maschinenroutine?

von cas » Mi 7. Apr 2004, 11:41
vorredner hat geschrieben:Welche Sprache sprichst Du denn nicht?!? :o


Klingonisch, jedenfalls nicht fliessend ;)

Wer schreibt mir eine kurze Maschinenroutine?

von cas » Do 8. Apr 2004, 20:42
The Routine is now finished and available with source in the wiki.

Memory move from high to low can now be done. It\'s a simple routine, all memory calculations must be done with Basic or in the programmers brain ;)

See the Turbo-Basic Demo for examples. More effekts are possible (like different x offsets for source and destination).

Carsten

Wer schreibt mir eine kurze Maschinenroutine?

von atarixle » So 11. Apr 2004, 11:49
Vielen Dank!

Ich werde gleich mal nachsehen.

Habe übrigens schon einen Dateimanager für BOSS-X 10.4 in der Entwicklung, der lange Dateinamen unterstützt und BeWe-DOS so wie MyDOS kompatibel ist.

Die Anzeige langer Dateinamen ist natürlich noch ein Fake, da es noch kein DOS mit langen Dateinamen gibt, ich habe also meine eigene VFAT als Datei erstellt.

Bis dann!

Mirko


http://www.atarixle.de

Wer schreibt mir eine kurze Maschinenroutine?

von cas » So 11. Apr 2004, 15:04
vorredner hat geschrieben:Die Anzeige langer Dateinamen ist natürlich noch ein Fake, da es noch kein DOS mit langen Dateinamen gibt, ich habe also meine eigene VFAT als Datei erstellt.


There is a VFAT driver in 6502 Machine language in theC-One Bootcode.
It can be used to build a MS-DOS FAT Filesystemcompatible ATARI DOS.

http://c1boot.sourceforge.net/

Ciao

Carsten

[Editiert am 11/4/2004 von cas]

Wer schreibt mir eine kurze Maschinenroutine?

von atarixle » So 11. Apr 2004, 20:10
Und wer wird dieses DOS zusammenschustern?

Wäre dieses DOS dann auch in der Lage, auf 90, 130 und 180kB bzw. auf ATARI-8-Bit-Festplatten zu funktionieren? Denn das sollte ja das Ziel sein, die langen Dateinamen auf klassischen 8-Bit-Medien zu verwenden.

Mirko

Wer schreibt mir eine kurze Maschinenroutine?

von cas » So 11. Apr 2004, 23:17
vorredner hat geschrieben:Und wer wird dieses DOS zusammenschustern?


Mir fehlt in absehbarar Zeit die Zeit :(

vorredner hat geschrieben:Wäre dieses DOS dann auch in der Lage, auf 90, 130 und 180kB bzw. auf ATARI-8-Bit-Festplatten zu funktionieren? Denn das sollte ja das Ziel sein, die langen Dateinamen auf klassischen 8-Bit-Medien zu verwenden.


Klar warum denn nicht. MS-DOS funktioniert auch auf 90, 130 und 180kb Disketten (auch wenn man heute in PC\'s keine Laufwerke mehr findetm die diese Formate unterstützen).

Ciao

Carsten

Wer schreibt mir eine kurze Maschinenroutine?

von atarixle » Mi 14. Apr 2004, 01:29
Ich dachte nur, dass MS-DOS-kompatible Dateisysteme nicht mit nur 256 Byte pro Sector funktionieren.

btw. http://www.12move.de/home/atarixle/boss/bossx4.htm
hier gibt es die ersten Screenshots von BOSS-X.4, welches endlich BeWe-DOS-Kompatibel sein wird.

Mirko


http://www.atarixle.de

Wer schreibt mir eine kurze Maschinenroutine?

von cas » Di 27. Apr 2004, 22:24
Hi Mirko,

funktioniert die Routine? Hast Du Verbesserungswünsche?

Ciao

Carsten

Wer schreibt mir eine kurze Maschinenroutine?

von atarixle » Mi 28. Apr 2004, 00:49
Die Routine funktioniert bestens. Ein Verbesserungswunsch wäre da schon betreffend der Tatsache, dass, wenn man Rückwärts scrollen will, die End-Adresse des zu scrollenden Blocks angegeben werden muss. Entweder du änderst die Routine so ab, dass die Adressvergabe vorwärts wie Rückwärts die gleiche ist (ähnlich der Equivalens der Adressen von MOVE und -MOVE-Befehlen) oder du weist deutlich darauf in der README hin. Außerdem wären umgerechnete Werte für -32 und -48 so wie -20 und -10 noch interessant, bzw. du erklärst kurz, wie die negativen Werte entstehen (ich weiß zwar ungefähr, wie das funktioniert, ich glaube $FFFF-wert+1 oder -1), so dass man sich die selbst ausrechnen kann.
Da, wie gesagt, die Routine einwandfrei funktioniert, würde ich vorschlagen, nur die Dokumentation dazu um die genannten Punkte zu erweitern.

Und natürlich vielen Dank für die Routine! Eingebaut habe ich sie schon in mein Programm FILETYPE.BOS, in das Fenster aus dem man den zu bearbeitenen Dateitypen auswählt (noch nicht online).
Wie geplant habe ich in diesem Programm auch die von mir bisher verwendete Bildlöschroutine durch deine ersetzt, klappt auch wunderbar.
Als nächstes werde ich mein \"Copy Files\'n\'Folders\" (COPYFNF.TUR) damit aufpeppen um schneller durch die zwei Arbeitsfenster zu navigieren.

Mirko


http://www.atarixle.de