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?
C-Programmierung auf Atari 8-bit
Moderator: Rockford
- mado
- Beiträge: 40
- Registriert: 29.12.2022 10:17
- Has thanked: 14 times
- Been thanked: 1 time
- Kontaktdaten:
C-Programmierung auf Atari 8-bit
Mastodon: @mado@social.tchncs.de, Blog: https://datenbrei.de, wohne in Augsburg
- Tron04
- Beiträge: 122
- Registriert: 17.08.2021 08:37
- Has thanked: 57 times
- Been thanked: 23 times
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
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.)
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.)
-
- Beiträge: 149
- Registriert: 17.08.2021 11:03
- Wohnort: Salzburg, Austria
- Has thanked: 12 times
- Been thanked: 64 times
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
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
so long,
Hias
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
Hias
- mado
- Beiträge: 40
- Registriert: 29.12.2022 10:17
- Has thanked: 14 times
- Been thanked: 1 time
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
Hi, as!
Danke für die vielen Infos. das mit dem Emulator direkt aufrufen klingt gut.
Danke für die vielen Infos. das mit dem Emulator direkt aufrufen klingt gut.
Warum braucht man ein DOS in einem ATR? Ich dachte, das ATR wird durch ein DOS geladen, also umgekehrt? !!! Newbie-Alarm!!!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.
Mastodon: @mado@social.tchncs.de, Blog: https://datenbrei.de, wohne in Augsburg
Online
Gtx.,
andY
- andymanone
- Beiträge: 2799
- Registriert: 17.08.2021 12:34
- Wohnort: Berlin - Suburban
- Has thanked: 573 times
- Been thanked: 965 times
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
Ein ATR ist lediglich ein "virtuelles Disk-Image", das kann auch leer sein, das hat mit DOS nix zu tun
Gtx.,
andY
Ressortleiter Hardware - Save the past and use the future!© andYManOne / Demozoo / My brandnew, experimental Album "Apocalyptic Symphony" / Zur Zeit keine POKEY´s ab Lager - Warteliste
- cas
- Beiträge: 892
- Registriert: 18.06.2021 21:01
- Wohnort: Solar System
- Has thanked: 203 times
- Been thanked: 429 times
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
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.mado hat geschrieben: ↑30.12.2022 20:17Hi, as!
Danke für die vielen Infos. das mit dem Emulator direkt aufrufen klingt gut.
Warum braucht man ein DOS in einem ATR? Ich dachte, das ATR wird durch ein DOS geladen, also umgekehrt? !!! Newbie-Alarm!!!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.
-
- Beiträge: 149
- Registriert: 17.08.2021 11:03
- Wohnort: Salzburg, Austria
- Has thanked: 12 times
- Been thanked: 64 times
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
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
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
- atarixle
- Beiträge: 286
- Registriert: 18.06.2021 21:19
- Has thanked: 32 times
- Been thanked: 52 times
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
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.
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.
- luckybuck
- Beiträge: 113
- Registriert: 18.06.2021 23:01
- Has thanked: 57 times
- Been thanked: 36 times
- Kontaktdaten:
Re: C-Programmierung auf Atari 8-bit
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.
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.
- Dateianhänge
-
- Mathlib For Deep Blue C (1984)(Antic Software)(US)[disk].zip
- (65.07 KiB) 24-mal heruntergeladen
-
- Deep Blue Secrets (1984)(Antic Software)(US)[disk].zip
- (47.26 KiB) 24-mal heruntergeladen
-
- Deep Blue C Compiler v1.2 (1984)(Antic Software)(US)[disk].zip
- (67.61 KiB) 31-mal heruntergeladen
Schöne Grüße,
Luckybuck
Atari WIKI, Atarimania & Archive.org
Luckybuck
Atari WIKI, Atarimania & Archive.org
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast