RAM von $C000 bis $FFFF nutzen


RAM von $C000 bis $FFFF nutzen

von Ingo70 » Di 9. Apr 2019, 09:43
Hallo,

ich bin gerade an meinem ersten Projekt:
http://www.abbuc.de/community/forum/viewtopic.php?f=10&t=9911

Da ich aber gern am Atari coden möchte und hierfür ATMAS II nutzen will, ist der Platz
für Sourcecode und Objectcode sehr begrenzt. Jetzt frage ich mich, ist es möglich, den
RAM-Bereich von $C000 bis $FFFF irgendwie zu nutzen? Z.B. dass man da die Display List hinlegt oder sowas?

Gruß
Ingo

Re: RAM von $C000 bis $FFFF nutzen

von tfhh » Do 11. Apr 2019, 13:32
Moin,

Ingo70 hat geschrieben:Jetzt frage ich mich, ist es möglich, den
RAM-Bereich von $C000 bis $FFFF irgendwie zu nutzen? Z.B. dass man da die Display List hinlegt oder sowas?

Im normalen Betrieb eher nicht. Denn in diesem Speicherbereich liegt auch das Betriebssystem, in dem sich wiederum jede Menge Routinen für Interrupts & Co. befinden. Du kannst hier nur gefahrlos auf RAM (via Portbit 0 vom Port B der PIA) umschalten, in dem Du zuvor alle Interrupts sperrst und, damit es nicht häßlich flackert, den Zeichensatz vorher ins normale RAM kopierst und den Zeiger (CHBASE) entsprechend änderst.

Kurzum: Für 100% Maschinensprache-Spiele, die nicht nachladen etc., kann man das machen, aber wenn Du in Basic, Turbo-Basic etc. arbeitest und/oder Teile des OS, eines DOS etc. brauchst, dann laß´ die Finger davon. Gibt nur Probleme.

Gruß, Jürgen

Re: RAM von $C000 bis $FFFF nutzen

von Ingo70 » Fr 12. Apr 2019, 09:29
Hm - ein größeres Projekt mit ATMAS ist ja dann gar nicht möglich.
Bleibt wirklich nur der Crossassembler...

Re: RAM von $C000 bis $FFFF nutzen

von tfhh » Fr 12. Apr 2019, 12:39
Moin,

Ingo70 hat geschrieben:Hm - ein größeres Projekt mit ATMAS ist ja dann gar nicht möglich.
Bleibt wirklich nur der Crossassembler...

Ist auch sinnvoller - und gar nicht mal "nicht A" ("A" = Authentisch), wie man denken mag. Denn alle großen Entwicklungen an Spielen oder Anwendungsprogrammen "damals" wurden nicht auf einem A8 direkt gemacht, sondern auf Cross-Assemblern auf anderen Kisten.

Schau Dir mal WUDSN an. Damit macht das Entwickeln einfach Spaß, weil man auf Knopfdruck den Emulator starten, den eigenen Code testen und wieder zurück kann - in zehntel Sekunden. Wenn man glaubt, fertig zu sein, fängt man an, auf echter Hardware zu testen...

Grüße, Jürgen

Re: RAM von $C000 bis $FFFF nutzen

von atarixle » Sa 13. Apr 2019, 09:24
"The Brundles", so sagte Kemal damals am Telefon, wurden auf einem 130XE entwickelt, um für volle 64kB assembliert werden zu können. Da muss es also auch was für große Projekte geben.

Turbo-BASIC bietet von sich aus schon RAM unter dem ROM an bzw. liegt selber drunter, dennoch funktionieren die OS-Routinen. Lt. Happy Computer schaltet TB kurz vor dem Interupt auf den ROM um und kurz danach wieder auf den RAM ... den genauen Wortlaut des entsprechenden Artikels such ich mal bei Gelegenheit raus.

Re: RAM von $C000 bis $FFFF nutzen

von slx » Mo 13. Mai 2019, 13:59
Evt. wäre es eine Möglichkeit, nicht in den Speicher, sondern auf Floppy bzw. RAMDISK zu assemblieren (oder überhaupt "disc-to-disc", um nicht durch den Speicher limitiert zu sein.

Ich weiß allerdings nicht, ob ATMAS das kann (MAC/65 kann's z.B.)

Mit modernen Speicherlösungen ist das Laden ja kein großer Faktor mehr, mit RAMDISK geht's noch schneller.

Re: RAM von $C000 bis $FFFF nutzen

von Jac » Di 14. Mai 2019, 00:15
Passend zu letzte Post, hier ein Treiber der das RAM unter dem OS als RAMDISK bereitstellt.
Übersteht auch einen Kaltstart.

https://github.com/HolgerJanz/RAMD14K

Re: RAM von $C000 bis $FFFF nutzen

von Tekromant » Di 14. Mai 2019, 09:47
Hm - ein größeres Projekt mit ATMAS ist ja dann gar nicht möglich.
Bleibt wirklich nur der Crossassembler...


Wobei die Aufgabenstellung "Verbrauchserfassung für Gas, Wasser und Strom" wahrscheinlich auch eine ideale Sache für Turbo Basic wäre - wenn es jetzt nicht explizit darum geht, sich in Assemblerprogrammierung einzuarbeiten. :wink:

Re: RAM von $C000 bis $FFFF nutzen

von CharlieChaplin » Mi 15. Mai 2019, 21:36
atarixle hat geschrieben:"The Brundles", so sagte Kemal damals am Telefon, wurden auf einem 130XE entwickelt, um für volle 64kB assembliert werden zu können. Da muss es also auch was für große Projekte geben.


Vielleicht ja der 130XE+ Macro-Assembler V2.2 von Thorsten Karwoth ? Dieser unterstützt MyDOS und benötigt minimum 128k RAM. Erhältlich u.a. in der Abbuc PD-Bibliothek, PD Nr. 368. Auszug aus der Beschreibung: "Sehr schneller 2-Pass-Assembler. Bis zu 96KB Quelltext im Speicher. Mehr als 32KB frei für Objektcode und Daten. Monitor (Shell) zum Austesten der Programme. Anleitung in Form von Dokumentfiles."

Re: RAM von $C000 bis $FFFF nutzen

von 1NG » So 1. Sep 2019, 22:14
Der Kurs für WUDSN/Mads/Altirra zur Crossplattformentwicklung auf der Fuji grade enthält ein einfaches "Game Gerüst", welchens das Ram unter dem Rom freimacht. Der Preis der einfachen Lösung ist aber, dass das Betriebssystem nicht mehr vorhanden ist. Folglich ist laden und speichern nur noch mit Bibliotheken wie xbios möglich.
- Eine Lösung in Turbo Basic ist bei Platzmangel leider sehr schwierig, weil Turbo Basic wie andere Basic keine gute Speicheraufteilung unterstützt. Das Ram unter dem Rom ist übrigends schon verwendet worden.
- Mad Pascal ist vielleicht eine gute Wahl. das ist recht neu und erzeugt sehr schnellen und effizienten Code bei ordentlichen Hochspracheneigenschaften.
- Die Source zum 6 Tage Fuji-Kurs sim im Thread zur Fuji als dowload enthalten. Ohne den Kurs besucht zu haben ist das sicher schwieriger zu verstehen, aber vielleicht hilft ja trotzdem mal ein Blick. Der Anspruch war aber eher ein Gerüst für ein Spiel oder eine Demo und nicht so sehr für eine Anwendung.

Viel Erfolg! :goteam:

Re: RAM von $C000 bis $FFFF nutzen

von Apostrophe » Di 26. Nov 2019, 14:43
Zum Speicherbereich ab $C000 habe ich leider auch so meine Erfahrungen gemacht.
Für meinen Atari 400 habe ich damals (1985) eine Speichererweiterung auf 64KByte nachgebaut. Ich glaube die Zeitschrift wo das veröffendlicht wurde hieß ComputerPraxis. Diese Erweiterung blendete einen 4KByte RAM Block ab der Adresse $C000 ein, indem ich häufig Daten, oder Assemblerroutinen abgelegt habe.

Nun habe ich mir vor ein paar Wochen einen Atari 800XL ersteigert und musste leider feststellen, das bei diesem der Speicher ab $C000 nicht nutzbar ist. Die Programme brechen mit einer Fehlermeldung ab, sobald versucht wird dort etwas zu speichern.

Kann man beim Atari 800XL den irgendwie aktivieren?

Gruß

Martin

Re: RAM von $C000 bis $FFFF nutzen

von andymanone » Di 26. Nov 2019, 15:41
Apostrophe hat geschrieben:Nun habe ich mir vor ein paar Wochen einen Atari 800XL ersteigert und musste leider feststellen, das bei diesem der Speicher ab $C000 nicht nutzbar ist. Die Programme brechen mit einer Fehlermeldung ab, sobald versucht wird dort etwas zu speichern.

Kann man beim Atari 800XL den irgendwie aktivieren?

Gruß

Martin


Hallo Martin,
bei der XL/XE-Reihe beginnt dort das ROM, kann man über den B-Port der PIA (PB0) abschalten,
(siehe auch Jürgens Post, etwas weiter oben...) :smile:.

Gtx.,
andY

Re: RAM von $C000 bis $FFFF nutzen

von Apostrophe » Di 26. Nov 2019, 23:32
bei der XL/XE-Reihe beginnt dort das ROM, kann man über den B-Port der PIA (PB0) abschalten,
(siehe auch Jürgens Post, etwas weiter oben...) .


Das hatte ich überlesen. Dann wird's etwas schwieriger.