Seite 1 von 1
C-Programmierung auf Atari 8-bit
Verfasst: 30.12.2022 12:48
von mado
Hi. Ich würde gerne mal versuchen, ein kleines C-Programm für den Atari auf Linux zu crosscompilieren. Ich weiß, dass es da den cc65 gibt.
Habt Ihr vielleicht ein paar Einsteigerlinks für mich? Ein 8-Bit-Atari ist ja nicht POSIX. Und es bedarf wohl auch noch einiger Tools, um das compilierte Programm dann in ein ATR-Disk-Image zu bekommen, ich habe das z.B. Franny gefunden. Und der cc65 kann wohl auch noch verschiedene Speicherkonfigurationen bekommen.
Und es würde mich interessieren, wer hier noch mit C programmiert. Bisher konnte ich tschak909 finden, im Beitrag über
C-Bindung für Diamond GOS
PS: Kann man hier Benutzer referenzieren, so dass hier z.B. tschak909 sieht, dass ich ihn erwähnt habe?
Re: C-Programmierung auf Atari 8-bit
Verfasst: 30.12.2022 13:35
von Tron04
Hi mado,
hast Du mal hier geschaut?
https://atariwiki.org/wiki/Wiki.jsp?page=C
(Nicht verwirren lassen. Das SSL Zertifikat ist momentan abgelaufen, deshalb die Warnung. Habe Carsten informiert.)
Re: C-Programmierung auf Atari 8-bit
Verfasst: 30.12.2022 17:55
von HiassofT
Zum cc65 kann ich nicht viel sagen, ist wohl ca 15 Jahre her seit ich ihn zuletzt verwendet hatte, aber er hat sehr problemlos funktioniert und das getan was er sollte :-)
Um die C-Compiler am Atari (Lightspeed C etc) würde ich einen grossen Bogen machen, die sind zwar aus historischer Sicht interessant, aber wirklich verwenden will man die nicht - das fängt schon damit an, dass der Atari keine geschwungenen Klammern kennt und die Compiler oft eine sehr krude K&R C Version implementieren (bei der dann auch noch viele Features fehlen).
Zum Testen kannst Du die COM/EXE/XEX Datei die cc65 ausspuckt einfach mit dem Atari800 Emulator starten ("atari800 myprogram.com").
Wenn Du sie (ggf mit einem DOS) in ein ATR packen willst dann nimm mein "dir2atr" - zu finden auf meiner Homepage
https://www.horus.com/~hias/atari/#atarisio und auf github
https://github.com/HiassofT/AtariSIO
Das lässt sich einfach in ein Makefile integrieren und Du kannst entweder MyPicoDos (im Prinzip ein Auswahl-Menü mit Binärloader) oder ein "richtiges" DOS wie zB MyDOS mit ins ATR packen - im letzteren Fall musst Du die DOS Dateien selbst zur Verfügung stellen und dir2atr dann mit der entsprechenden -b Option aufrufen.
Die MyDOS Files kannst Du Dir zB einfach von meinem MyPicoDos Projekt klauen
https://github.com/HiassofT/MyPicoDOS und im Makefile abschauen wie Du damit ein ATR erstellen kannst (ignorier das "BFE" und "autoexec.bat" Zeugs, das ist ein Batch-Prozessor den ich für ein einfaches Auswahlmenü verwende)
https://github.com/HiassofT/MyPicoDOS/b ... #L308-L315
Code: Alles auswählen
myinit.atr: $(MYINIT_COMS)
mkdir -p initdisk
tr '\012' '\233' < autoexec.bat > initdisk/AUTOEXEC.BAT
cp -f mydos-dos.sys initdisk/DOS.SYS
cp -f mydos-dup.sys initdisk/DUP.SYS
cp -f mydos-bfe.ar0 initdisk/BFE.AR0
cp -f $(MYINIT_COMS) initdisk
dir2atr -b MyDos4534 1040 myinit.atr initdisk
so long,
Hias
Re: C-Programmierung auf Atari 8-bit
Verfasst: 30.12.2022 20:17
von mado
Hi, as!
Danke für die vielen Infos. das mit dem Emulator direkt aufrufen klingt gut.
Das lässt sich einfach in ein Makefile integrieren und Du kannst entweder MyPicoDos (im Prinzip ein Auswahl-Menü mit Binärloader) oder ein "richtiges" DOS wie zB MyDOS mit ins ATR packen - im letzteren Fall musst Du die DOS Dateien selbst zur Verfügung stellen und dir2atr dann mit der entsprechenden -b Option aufrufen.
Warum braucht man ein DOS in einem ATR? Ich dachte, das ATR wird durch ein DOS geladen, also umgekehrt? !!! Newbie-Alarm!!!
Re: C-Programmierung auf Atari 8-bit
Verfasst: 30.12.2022 20:54
von andymanone
mado hat geschrieben: ↑30.12.2022 20:17
Warum braucht man ein DOS in einem ATR? Ich dachte, das ATR wird durch ein DOS geladen, also umgekehrt? !!! Newbie-Alarm!!!
Ein ATR ist lediglich ein "virtuelles Disk-Image", das kann auch leer sein, das hat mit DOS nix zu tun
Gtx.,
andY
Re: C-Programmierung auf Atari 8-bit
Verfasst: 30.12.2022 22:13
von cas
mado hat geschrieben: ↑30.12.2022 20:17
Hi, as!
Danke für die vielen Infos. das mit dem Emulator direkt aufrufen klingt gut.
Das lässt sich einfach in ein Makefile integrieren und Du kannst entweder MyPicoDos (im Prinzip ein Auswahl-Menü mit Binärloader) oder ein "richtiges" DOS wie zB MyDOS mit ins ATR packen - im letzteren Fall musst Du die DOS Dateien selbst zur Verfügung stellen und dir2atr dann mit der entsprechenden -b Option aufrufen.
Warum braucht man ein DOS in einem ATR? Ich dachte, das ATR wird durch ein DOS geladen, also umgekehrt? !!! Newbie-Alarm!!!
Ein DOS im ATR braucht man, wenn das Programm selbst Disk-IO machen möchte (z.B. Level-Daten aus Dateien nachladen oder High-Score abspeichern). Ohne ein DOS im ATR kann das Programm nur Sektoren lesen und schreiben (was einige Programme auch machen). Da kommt es auf das Programm an.
Re: C-Programmierung auf Atari 8-bit
Verfasst: 31.12.2022 02:42
von HiassofT
Das OS im Atari funktioniert ziemlich genau so wie das BIOS in (älteren) PCs - es lädt einfach den ersten Sektor des ersten Diskettenlaufwerks (bzw ggf mehrere, üblicherweise die ersten 3, die Anzahl ist im ersten Sektor vermerkt) und führt dann den Code darin aus - so wie der PC bei MBR boot.
Der Code lädt dann das DOS von weiteren Sektoren von der Disk und startet es (so wie MSDOS etc am PC).
Du kannst natürlich auch eine Disk (bzw ein Image) komplett ohne DOS erstellen, aber das kannst Du dann nicht direkt booten (wieder ähnlich wie am PC) - Du musst dann vorher ein DOS von der ersten Disk booten und kannst danach die Disk auswechseln und mit dem DOS im RAM auf die Dateien zugreifen - oder die Disk als 2. Laufwerk (D2:) verwenden.
so long,
Hias
Re: C-Programmierung auf Atari 8-bit
Verfasst: 31.12.2022 11:50
von atarixle
DOS = Disk Operation System ... ohne DOS kein Diskzugriff.
Um den Thread nicht unnötig zu entführen und einmal mehr Grundsatzfragen rund um ATRs, DOS und Linux-Entwicklerwerkzeuge zu diskutieren, würde ich für den Anfang vorschlagen, es für das Thema cc65 und cross-compiling dabei zu belassen, eine erstellte XEX direkt mit Atari800 starten zu lassen.
Viel brennender sollte die Frage nach dem korrekten Einstieg in den cc65 sein, den auch ich nicht ohne die Hilfe von Christian "irgendwer" Krüger geschafft hätte. Mein erstes wirklich lauffähiges C-Programm auf dem Atari war ne ziemliche Mühe und ganz verstanden hab ich die ganze Atari-spezifische Konfiguration des cc65 immernoch nicht.
Re: C-Programmierung auf Atari 8-bit
Verfasst: 29.01.2023 20:41
von luckybuck
Dank des Preservation-Projekts:
Deep Blue C-Compiler-AP114-A
Deep Blue C-Compiler-AP114-B-Documentation
Deep Blue C-Secrets-APO115-A
Deep Blue C-Secrets-APO115-B-Documentation
Mathlib for C-AP0132-A
Mathlib for C-AP0132-B-Documentation
Habt Spass.
