C-Programmierung auf Atari 8-bit

Moderator: Rockford

Antworten
Benutzeravatar
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

Beitrag 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?
Mastodon: @mado@social.tchncs.de, Blog: https://datenbrei.de, wohne in Augsburg

Online
Benutzeravatar
Tron04
Beiträge: 119
Registriert: 17.08.2021 08:37
Has thanked: 51 times
Been thanked: 23 times
Kontaktdaten:

Re: C-Programmierung auf Atari 8-bit

Beitrag 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.)

Online
HiassofT
Beiträge: 134
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 11 times
Been thanked: 52 times
Kontaktdaten:

Re: C-Programmierung auf Atari 8-bit

Beitrag 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

Benutzeravatar
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

Beitrag 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!!!
Mastodon: @mado@social.tchncs.de, Blog: https://datenbrei.de, wohne in Augsburg

Online
Benutzeravatar
andymanone
Beiträge: 2498
Registriert: 17.08.2021 12:34
Wohnort: Berlin - Suburban
Has thanked: 492 times
Been thanked: 789 times
Kontaktdaten:

Re: C-Programmierung auf Atari 8-bit

Beitrag 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
Ressortleiter Hardware - Save the past and use the future!© andYManOne / Demozoo / Youtube

Benutzeravatar
cas
Beiträge: 813
Registriert: 18.06.2021 21:01
Wohnort: Solar System
Has thanked: 181 times
Been thanked: 362 times
Kontaktdaten:

Re: C-Programmierung auf Atari 8-bit

Beitrag 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.

Online
HiassofT
Beiträge: 134
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 11 times
Been thanked: 52 times
Kontaktdaten:

Re: C-Programmierung auf Atari 8-bit

Beitrag 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

Benutzeravatar
atarixle
Beiträge: 271
Registriert: 18.06.2021 21:19
Has thanked: 29 times
Been thanked: 51 times
Kontaktdaten:

Re: C-Programmierung auf Atari 8-bit

Beitrag 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.

Benutzeravatar
luckybuck
Beiträge: 110
Registriert: 18.06.2021 23:01
Has thanked: 55 times
Been thanked: 36 times
Kontaktdaten:

Re: C-Programmierung auf Atari 8-bit

Beitrag 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. :-)
Dateianhänge
Mathlib For Deep Blue C (1984)(Antic Software)(US)[disk].zip
(65.07 KiB) 18-mal heruntergeladen
Deep Blue Secrets (1984)(Antic Software)(US)[disk].zip
(47.26 KiB) 18-mal heruntergeladen
Deep Blue C Compiler v1.2 (1984)(Antic Software)(US)[disk].zip
(67.61 KiB) 18-mal heruntergeladen
Schöne Grüße,
Luckybuck
Atari WIKI, Atarimania & Archive.org

Antworten

Wer ist online?

Mitglieder in diesem Forum: 24sumo und 1 Gast