Diskussion:Programm

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Tabelle[Quelltext bearbeiten]

Die Formatierungen passen mir noch nicht, daher erstmal hierhinein. Wen wer mag, kann er es natürlich verbessern.

Computer BASIC-Speicherbereich Größe (Bytes) Anmerkung
Dezimal Hexadezimal
C64 2048-40959 $0800-$9FFF 38911
C128 7169-129534 $1C01-$1F9FE 122365 BASIC-RAM (*Verschiebung bei Grafiknutzung!) aufgeteilt in 2 Bänke (zu je 64KByte) mit BASIC-Text- und BASIC-Variablen-RAM
*16385-129534 *$4001-$1F9FE
VC20 4096-07679 $1000-$1DFF 3583
VC20 mit 3KByte 1025-7680 $0401-$1E00 6655 bei Einsatz einer 3 KByte Speichererweiterung
VC20 ab 8KByte 4609-32768? $1201-$8000? 11775
19967
28159
je nach Größe der Speichererweiterung
C16/116 4096~6143# $1000~$3FFF# 12287 BASIC-RAM (#bei Grafiknutzung wird dieser Bereich vom Ende her verkleinert!)
Plus/4 4096-64768 $1000-$FD00 60672
*16385-64768 *$4001-$FD00 48383 *bei Grafiknutzung wird der BASIC-Anfang nach oben verschoben
CBM500/600/700 3-64091
2-65279
$0003-$FA5B
$0002-$FEFF
64089
65277
BASIC-Text (Bank 1) bei 128KByte-Modellen
BASIC-Variablen (Bank 2) bei 128KByte-Modellen
PET Urzustand 1024-8191 $0400-$1FFF 7167 Minimal; Grundkonfiguration
PET 1024-32767~ $0400-$7FFF~ 31743 Maximal; ~je nach Speicherausstattung kann er kleiner sein!

--Jodigi 03:36, 3. Feb. 2014 (CET)

Oh, jetzt erst gesehen. Kann die Tabelle so in den Artikel eingefügt werden? --Jodigi (Diskussion) 19:57, 25. Feb. 2019 (CET)


Betriebssystem?[Quelltext bearbeiten]

BASIC = Betriebssystem? Das halte ich für eine sehr gewagte Behauptung! --GoDot 19:15, 15. Jan 2007 (CET)

Aber was verstehst Du beim C64 als Betriebssystem, wenn nicht BASIC?? --Jodigi 22:35, 15. Jan 2007 (CET)
Würde Basic V2 auch als Betriebssystem des C64 sehen, zumindestens ist es das vorgesehende Benutzerinterface... ansonsten bin ich auf die Alternative gespannt für Load"$",8 und List... --FXXS 08:46, 16. Jan 2007 (CET)
Im Artikel BASIC#CBM-BASIC wird BASIC auch mit dem Betriebssystem gleichgesetzt. Im Wikipedia Artikel WikipediaDE:Betriebssystem heist es gleich am Anfang:
Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein- und Ausgabegeräte und steuert die Ausführung von Programmen.
Demzufolge würde ich zunächst den KERNAL als Kern des Betriebssystems (WikipediaDE:Betriebssystemkern) ansehen, und BASIC als die Kommandosprache des Betriebssystems. Wobei beim C64 (im Gegensatz zu DOS Systemen mit GW Basic) das BASIC besonders eng mit dem Betriebssystem verknüpft ist und von daher als Bestandteil des Betriebssystems angesehen werden darf. Aber nur das BASIC alleine ist es nicht!
Ich würde den Satz "Da das BASIC auf Commodore-Computern gleichzeitig als Betriebssystem genutzt wird ..." besser so formulieren: "Da das BASIC auf Commodore-Computern gleichzeitig als Kommandosprache des Betriebssystems genutzt wird ...". Allerdings ist das nicht der Grund dafür dass "... ist es hierbei nicht erforderlich, eine entsprechende Programmierumgebung (wie Quellcode-Editor mit Compiler und Linker) zu nutzen". Der Grund ist einfach, dass BASIC a) eingebaut und b) eine Interpretersprache ist. Der Quellcodeeditor startet ja automatisch mit dem Einschalten des C64. Müsste also in etwa heissen: "Das BASIC auf Commodore-Computern wird gleichzeitig als Kommandosprache des Betriebssystem genutzt und ist sofort nach dem Einschalten verfügbar. Deshalb ist es nicht erforderlich, eine entsprechende Programmierumgebung (wie Quellcode-Editor mit Compiler und Linker) zu nutzen." --Stefan67 12:17, 16. Jan 2007 (CET)
hmm, ok so ausformuliert ist es besser... ich ändert das mal --FXXS 12:37, 16. Jan 2007 (CET)
Wie oben von Stefan67 schon gesagt: Der KERNAL ist das Betriebssystem und BASIC ist beim C64 die Benutzerschnittstelle dafür. Ohne BASIC kannst du ja ebenfalls ganz bequem LOAD ($e168) und SAVE ($e156) usw. ausführen, du musst nur wissen, wie. smile --GoDot 21:48, 16. Jan 2007 (CET)

Dateiendung PRG?[Quelltext bearbeiten]

Das ist sicher anders gemeint, oder? Datei-Typ statt Datei-Endung? --GoDot (Diskussion) 11:55, 2. Jun. 2020 (CEST)

+1 für Typ statt Endung --BlackJack (Diskussion) 23:40, 6. Jun. 2020 (CEST)
Ich weise noch mal auf die PRG-Aussage hin. Sollte das so sein (oder soll das richtig gemacht werden)? --GoDot (Diskussion) 18:08, 9. Jun. 2020 (CEST)

"Erstes" BASIC-Programm[Quelltext bearbeiten]

Jodigi, ich fände es besser, ein reines BASIC-Programm als Beispiel zu nehmen, das ohne POKEs und sonstige Tricks auskommt. Ist doch blöd, jemanden gleich in die Chip-Register-Wüste zu schicken; funktioniert nicht auf dem VC20 oder C128, obwohl BASIC eigentlich halbwegs portabel ist; macht auch nicht gerade Werbung für die Sprache, denn es ist natürlich eine Schande für das BASIC V2, dass es keinen "richtigen" Befehl zum Verändern der Bildschirmrahmen und -hintergrundfarbe hat; und schließlich ist das Verändern der Textfarbe per POKE, so wie es jetzt gerade im Beispiel ist, definitiv nicht BASIC-typisch, weil man das per Steuerzeichen machen würde (was aber auch schon in einem ersten Programm unnötig ist). -- 1570 (Diskussion) 12:03, 22. Jan. 2022 (CET)

Ja, das mit den POKEs ist natürlich blöd, wenn man es auf andere BASIC-Dialekte anwenden möchte. Allerdings finde ich so etwas natürlich spannender und meiner Meinung macht dies etwas neugieriger für die BASIC-Programmierung als wenn nur irgendetwas gePRINTet wird...
Könnte man wenigstens die Zeichenfarbe mit PRINTCHR$(x) verändern und das ist etwa kompatibel zu VC-20, Plus/4 und C128? --Jodigi (Diskussion) 13:02, 22. Jan. 2022 (CET)
PRINT"CTRL+1 ... ist auf doch üblich, wenn's denn sein muss (dann gerne mit Link auf Steuerzeichen). -- 1570 (Diskussion) 13:08, 22. Jan. 2022 (CET)
Ich mag persönlich die Eingabe von Steuerzeichen bei didaktischen BASIC-Programmbeispiele nicht, da dies mit CHR$-Zeichen klarer zu formulieren ist. Der richtige Einsatz von Steuerzeichen benötigt wieder etwas Hintergrundwissen...
Der Hinweis auf Steuerzeichen ist aber eingefügt, sowie die wichtigsten Bildschirmfotos des Commodore-BASIC V2 bis 7. --Jodigi (Diskussion) 13:52, 22. Jan. 2022 (CET)
Nachtrag: Deine Anregungen sind natürlich gut...
Der Schwerpunkt liegt im C64-Wiki allerdings noch beim C64 (ansonsten, wenn plötzlich alle BASIC V2-Beispielprogramme für den C64 noch kompatible für PET/CBM, VC-20, etc. sein müssten, müssten diese Beispiel-Programme nun wieder komplett überarbeitet werden!) --Jodigi (Diskussion) 14:23, 22. Jan. 2022 (CET)
Nachtrag 2: Durch welche Situation oder durch welchen Umstand bist Du zur BASIC-Programmierung am C64 gekommen?
Ich persönlich (nach einiger Zeit des Computerspielespielens) durch PEEK und POKEs (die interessanten Tips & Tricks beim C64), sowie durch die Computerzeitschrift 64'er (inkl. Sonderhefte) und natürlich Data Becker-Bücher.
Am Anfang hatte ich nach leichten Erfolgen mit einigen einfachen BASIC-Beispiele, frustrierende Erlebnisse mit einigen der längeren Beispielprogramme das C64-Handbuchs - warum auch immer... so dass ich mit der BASIC-Programmierung erst ab etwa 1987/88 angefangen hatte. --Jodigi (Diskussion) 14:57, 22. Jan. 2022 (CET)
Ich fand diese Version eigentlich ganz gut. Jetzt ist das irgendwie ohne Fokus. Das hier ist der Artikel zu Programm und gleitet plötzlich in Exkurse über CHR$ und verschiedene Arten zur Darstellung von Steuerzeichen in BASIC V2 ab und wie die Bildschirme diverser Homecomputer-Systeme aussehen. Das gehört nicht hierher. Hatten wir nicht irgendwo einen BASIC-Kurs? Da würde das hinpassen. -- 1570 (Diskussion) 19:25, 24. Jan. 2022 (CET)
Dem würde ich mich anschliessen. Und auch die BASIC-Speicherbereiche gehören hier nicht hin. Welche Speicherbereiche allgemein als RAM für Programme zur Verfügung stehen ohne das man etwas an der Konfiguration ändert, wäre IMHO gerade noch okay.
Was auch nicht so glücklich ist, finde ich, ist der „Andere Programme“-Abschnitt, weil nicht alles was nicht BASIC oder Maschinensprache ist, dort in der Beschreibung erfasst wird. BASIC ist nicht die einzige interpretierte Sprache die keinen edit, compile, run/debug Zyklus hat, wie er dort beschrieben steht. Auf Forth und Comal beispielsweise trifft das dort geschriebene nicht wirklich zu. Es ist aber auch grundsätzlich ein bisschen schräg, dass der Artikel „Programm“ anscheinend insgesamt überwiegend ein Artikel über Programmiersprachen ist. Reicht es nicht zu schreiben, was ein Programm ist, wie man die auf dem C64 üblicherweise ausführt (LOAD + RUN — egal in welcher Programmiersprache das Programm geschrieben wurde), das BASIC sofort nach dem Einschalten geht, und Maschinensprache die wohl am meisten genutzte andere Variante ist und beispielhaft was es noch an Sprachen (auf/für den C64) gibt. Alles ohne Beispiele, mit verlinkten Worten auf die jeweiligen Artikel (BASIC, Maschinensprache, Comal, …) wo dann ja hoffentlich auch die Beispiele zu den jeweiligen Sprachen zu finden sind. --BlackJack (Diskussion) 01:01, 25. Jan. 2022 (CET)


Einen BASIC-Kurs haben wir leider bisher noch nicht...
Wie gesagt mit PRINT "HALLO WELT" lockt man aus meiner Sicht nichts hervor... Es muss beim C64 irgendetwas spannend, aber trotzdem einfaches sein, und das sind irgendwelche Farbwechsel in Kombination mit dem PRINT-Befehl.
Steuerzeichen sind schwierig für Laien direkt umzusetzen, daher dann eben den Ersatz mit dem CHR$-Befehl.
Ich habe bisher in kaum einen BASIC-Beispiel Steuerzeichen verwendet, außer im Artikel Steuerzeichen...
Die eingepflegten Screenshots sind nur die Antwort des BASIC-Programms, und das für die geforderten anderen Commodore-BASIC-Dialekte zu denen das Beispiel Kompatibel sein sollte.
Wenn man alles gerecht werden will, bläht sich eine BASIC-Programm-Beispielzeile schon mit Erklärungen auf...
In den Grundlagen-Artikeln zu den Programmiersprachen haben wir kaum Programm-Beispiele. Diese sind oft nur in den Artikeln zu einzelnen Programmiersprachen-Befehlen bzw. Schlüsselwörter zu finden. Die Grundlagen-Artikel der Programmiersprachen präsentieren eine kurze Info zu der Programmiersprache (Entstehung, Verwendung), sowie welche Programmiersprachen-Versionen erschienen sind und ggf. Hinweise zur entsprechenden Literatur.
Wohin sollten wir die BASIC-RAM-Speicherbereiche einbauen? Ggf. in einem eigenen Artikel?
Anbei die Nachfrage zu den fehlenden Programmiersprachen, wobei diese könnte dann ebenfalls in den Grundlagen-Artikel Programmiersprache als Beispiele aufgeführt werden.
Ich habe mal die beiden Abschnitte das BASIC-Beispielprogramm und BASIC-RAM-Speicherbereiche vorerst rausgenommen. --Jodigi (Diskussion) 02:55, 25. Jan. 2022 (CET)
Warum muss ein Programmbeispiel in BASIC in diesem Artikel etwas spannendes seinm, das irgendetwas hervorlockt. Was ist denn aus Deiner Sicht das Ziel dieses Artikels? Leute die wissen wollen was ein Programm ganz allgemein ist, sollen danach unbedingt begeistert in die BASIC-Programmierung einsteigen wollen?
Ich stelle dagegen noch mal in Frage ob hier *überhaupt* ein Quelltextbeispiel drin stehen sollte. Die sind IMHO bei den Artikeln zu den jeweiligen Programmiersprachen sinnvoller aufgehoben. Da stellt sich dann auch nicht so sehr die Frage nach den POKEs, Steuerzeichen in Zeichenkettenliteralen, oder CHR$, weil man dort dann IMHO auch alle drei Varianten zeigen kann, denn in einem BASIC-Artikel muss man sich ja nicht auf *ein* Beispiel beschränken, sondern kann auch mehrere Aspekte der Sprache allgemein und auf dem C64 im besonderen zeigen und gegenüberstellen.
BASIC-Kurs klingt auch gut. Wie wird so etwas denn hier gehandhabt was in das Wiki ”gehört” und was eher nicht? Denn ein Kurs ist ja nicht so richtig ein Enzyklopädie-Eintrag, aber das ist hier ja auch nicht Wikipedia. --BlackJack (Diskussion) 13:30, 25. Jan. 2022 (CET)
Wie gesagt ein BASIC-Kurs, den man ggf. für Einsteiger schreiben müsste, wäre eine gute Idee. Wir haben das noch nicht. Allerdings gibt es anzumerken, es gibt genügend Bücher, die das als Thema haben und auch einige BASIC-Lernkurse in Programmform...
Es gehört hier fast alles in C64-Wiki, was sich auf den C64, aber auch auf andere Commodore-Computersysteme bezieht, und im allgemeinen natürlich zum Bereich Computertechnik.
Wir sehen das aber nicht so streng wie die Wikipedia, das wir uns nur auf strenge nzyklopädie-Einträge beziehen.
Es gibt ja auch schon einen "Einsteigerkurs", der bezieht sich auf das Auspacken, Anschließen und das erste Einschalten eines C64, sowie das Laden von Programme von Diskette in einer Floppy.
PS: Erklärungen zum Thema "BASIC-Programm" oder "Maschinenspracheprogramm" gehören natürlich hierhinein, und da spricht eigentlich nichts dagegen ein kurzes Beispielprogramm einzufügen. Wenn diese Thematik an dieser Stelle wieder zu Umfangreich ist, auch die Erklärungen zu BASIC-Programm, so müsste man ggf. ein eigenen Artikel erstellen... --Jodigi (Diskussion) 14:13, 25. Jan. 2022 (CET)
Finde den Artikel jetzt gut so, danke, auch schön mit dem GOTO drin, dann wird auch klarer, dass ein Programm nicht eine simple Aufzeichnung von Befehlen ist. - "Kurse" gehen hier im Wiki voll! Das C64-Wiki ist nicht Wikipedia. Z.B. gibt's auch SD2IEC/NKC-SD2IEC_Erfahrungsbericht oder die Tatsache, dass man hier Spiele bewerten kann. -- 1570 (Diskussion) 00:07, 26. Jan. 2022 (CET)

BASIC-Programm-Beispiel

Erste Schritte ... ein einfache BASIC-Programm...

Ein einfaches BASIC-Programm für die Nutzung mit Commodore-BASIC auf den 8-Bit-Heimcomputersystemen von Commodore:
Der BASIC-Befehl PRINT gibt den Text MEIN ERSTES PROGRAMM" und nach 20 Leerzeichen den Text "VOM WWW.C64-WIKI.DE in gelber Schriftfarbe auf den Bildschirm aus (siehe Screenshots):

0 PRINTCHR$(158)"MEIN ERSTES PROGRAMM"SPC(20)"VOM WWW.C64-WIKI.DE"

Hinweise:

  • Die Textfarbe lässt sich hier über den BASIC-Befehl CHR$(x) (siehe PETSCII-Tabelle) einstellen.
  • Der Abstand bzw. die Anzahl der Leerzeichen lässt sich über den BASIC-Befehl SPC(x) (für x von 0 bis max. 255) einstellen.
  • Alternativ lassen sich die Textformatierungen, insbesondere die Zeichenfarbe, auch mit Steuerzeichen nachbilden.

Ähnliches Beispiel mit Steuerzeichen:

 0 PRINT"<CTRL>+<8>MEIN ERSTES PROGRAMM<CRSR rechts>VOM WWW.C64-WIKI.DE"

Wichtig: Die Zeichen: <CTRL>+<8> sind als Tastenkombination einzugeben und das Zeichen <CRSR rechts> ebenfalls durch Drücken der Taste "Cursor rechts"!


Steuerzeichenfreie Version als Kopiervorlage (copy & paste) für den Emulator, bspw. VICE:

0 printchr$(158)"mein erstes basic-programm"spc(20)"vom www.c64-wiki.de"