Basic Data in C

Gast #6163623
Lesenswert?

Ich hätte da mal eine dumme Frage, wie würde man die Basic Befehle Read 
und Data in C schreiben? Ich hatte am Wochenende ein Gespräch über alte 
Homecomputer und Basic, und da bin ich darüber gestolpert. Da gab es 
doch auch so einen Restore Befehl? Leider habe ich auf meinem Computer 
kein Basic 4.5 sonst würde ich da die Hilfe Funktion bemühen..

Äh Zusatzfrage: Wie könnte ich das damals von mir sehr geschätzte und 
geliebte Qbasic 4.5 auf einem Linux Mint Laptop zum laufen bekommen?
Angehängte Dateien:
#6163687
Lesenswert?

Chris schrieb:
> #define DATA char datas[]=

würde ich bei Bytes nicht machen, char ist zu oft signed und endet bei 
127, wählt man unsigned char stolpern mache Compiler oder Routinen.
Ein Byte ist nun mal kein char sondern ein uint8_t im Wertebreich von 
0-255.

Will man wirklich nur Bytes in ein Array lesen sollte man sie auch so 
behandeln und nicht als Char. Manche C-Compiler kennen sogar Byte.
#6163689
Lesenswert?

Sprudelstrudel schrieb:
> Leider habe ich auf meinem Computer
> kein Basic 4.5 sonst würde ich da die Hilfe Funktion bemühen..

Das moderne Equivalent ist die google Suche...

Passende Suchbegriffe finden read und data für den C64. Scheit alles 
speizfisch für C64 Basic zu sein.

Übrigen sollte sich auch in Linux Mint ein C64 Emulator installieren 
lassen. Dann muss man allerdings auch noch die passende Software der 
Brotkiste beschaffen.
Gast #6163978
Lesenswert?

Joachim B. schrieb:
> Chris schrieb:
>> #define DATA char datas[]=
>
> würde ich bei Bytes nicht machen, char ist zu oft signed und endet bei
> 127, wählt man unsigned char stolpern mache Compiler oder Routinen.
> Ein Byte ist nun mal kein char sondern ein uint8_t im Wertebreich von
> 0-255.
>
> Will man wirklich nur Bytes in ein Array lesen sollte man sie auch so
> behandeln und nicht als Char. Manche C-Compiler kennen sogar Byte.

Ich würde int machen, eventuall sogar als long long, da aber vorher 
schon char empfohlen wurde, habe ich es als char reingeschrieben.
#6164036
Lesenswert?

Joachim B. schrieb:
> Michael Gugelhupf schrieb:
>> Signed 16-Bit int kommt dem historischen Vorbild wahrscheinlich am
>> nächsten.
>
> für einen: "Der Motorola 6809 ist ein 8-Bit-Mikroprozessor"?

Ja und? Dürfen da denn keine (BASIC-)Int stehen?

Hab gerade mal in einem uralten C64-Basic Programm nachgeschaut. Die 
Werte waren größer als 127 und auch kleiner als -127.
Gast #6164127
Lesenswert?

Joachim B. schrieb:
> Dirk B. schrieb:
>> Ja und? Dürfen da denn keine (BASIC-)Int stehen?
>
> dürfen schon, müssen?
>
> Data Zeilen unter Basic sah ich nur welche die mit Poke geschrieben
> wurden und waren immer im Wertebreich 0-255 für Maschinenteile.
> Sonst sah man Data selten, ich jedenfalls nie auf dem CBM, apple2+,
> PC1500.

Ich verrate dir mal was. Bei anständigen BASIC-Interpretern durfte da 
gemischt jeder fundamentale Datentyp stehen den der Interpreter kannte, 
sogar Strings und Floats. Kannst du in C mit einer Union hindengeln. 
Viel Spaß.

Jetzt rate mal, was der fundamentale Integer-Datentyp auf 8-Bit 
BASIC-Computern normalerweise war? Rischtischhhhh, signed 16-Bit int.
#6164141
Lesenswert?

Michael Gugelhupf schrieb:
> Jetzt rate mal, was der fundamentale Integer-Datentyp auf 8-Bit
> BASIC-Computern normalerweise war? Rischtischhhhh, signed 16-Bit int.

das mag ja alles sein, trotzdem ist mir bei den genannten Compis nie ein 
Data Wert über 255 begegnet oder gar -127.

Halten wir fest du hast Recht weil du es brauchst.

zum Topic
Sprudelstrudel schrieb:
> Äh Zusatzfrage: Wie könnte ich das damals von mir sehr geschätzte und
> geliebte Qbasic 4.5 auf einem Linux Mint Laptop zum laufen bekommen?

https://forums.linuxmint.com/viewtopic.php?t=300602

e.i., einfach installieren :)

ich warte auf die nächste Salamischeibe, vielleicht für ARM statt x86?
Gast #6164154
Lesenswert?

Der C64 hat das ohnehin einfach als Text abgelegt.

10 READ A,B,C
20 PRINT A,B,C
30 DATA 1,2,3

wird zu:

C:0800  00 0d 08 0a  00 87 20 41   ...... A
C:0808  2c 42 2c 43  00 19 08 14   ,B,C....
C:0810  00 99 20 41  2c 42 2c 43   .. A,B,C
C:0818  00 25 08 1e  00 83 20 31   .%.... 1
C:0820  2c 32 2c 33  00 00 00 41   ,2,3...A
C:0828  00 81 00 00  00 00 42 00   ......B.
C:0830  82 00 00 00  00 43 00 82   .....C..
C:0838  40 00 00 00  00 00 00 00   @.......
#6164197
Lesenswert?

Joachim B. schrieb:
> für einen: "Der Motorola 6809 ist ein 8-Bit-Mikroprozessor"?

Der allerdings intern mit 16 bit rechnen konnte.

Joachim B. schrieb:
> das mag ja alles sein, trotzdem ist mir bei den genannten Compis nie ein
> Data Wert über 255 begegnet oder gar -127.

Was daran lag, das peek und poke Bytes gelesen bzw. geschrieben haben, 
und ein Byte war auch damals schon 8 Bit.

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren