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?
Hallo, die 80er haben angerufen, und wollen ihr Basic inkl. ausgestorbener Hardware zurück ;-)
Sprudelstrudel schrieb: > Ich hätte da mal eine dumme Frage stimmt, zumal kaum einer weiss wie READ & DATA auf deinem Dragon umgesetzt ist. In C wäre DATA nur ein uint8_t array_name_nach_wunsch[] = { 1,2,3,...}; supertape für dragon32 könnte was sein, habe ich aber nicht gefunden. https://en.wikipedia.org/wiki/Dragon_32/64
#define DATA char datas[]= char *data=datas; #define read() *data++ #define reset() data=datas Ansonsten https://www.qb64.org/portal/
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.
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.
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.
chris schrieb: > Ich würde int machen, eventuall sogar als long long, da aber vorher > schon char empfohlen wurde, habe ich es als char reingeschrieben. Signed 16-Bit int kommt dem historischen Vorbild wahrscheinlich am nächsten.
:
Wiederhergestellt durch Moderator
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"? https://de.wikipedia.org/wiki/Dragon_32,_Dragon_64 https://de.wikipedia.org/wiki/Motorola_6809
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.
:
Bearbeitet durch User
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.
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.
:
Wiederhergestellt durch Moderator
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?
:
Bearbeitet durch User
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. Ja, weil da halt dann Maschinencode definiert wurde.
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 @.......
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.