Vielen Dank für das Video Ich glaube schon, dass Du in den nächsten paar Tagen den C64-Studio "lieb" haben wirst. Denn schon alleine die Tipparbeit, kopieren, einfügen usw. macht das Programmieren viel einfacher.
- Renumber kann bei doppelten Zeilennummern nicht funktionieren, wie sollen denn Sprungbefehle (also GOTO und GOSUB) verarbeitet werden? Es muss sich schon um vernünftigen Code handeln und dann funktioniert renumber auch. - Ich programmiere sonst mit Microsoft Visual Studio und deswegen komme ich auch mit dem Aufbau des C64 Studios (ist übrigens in C# programmiert, nicht in Visual Basic) gut zurecht. Gewöhn dir einfach an immer mit einer Solution zu starten, dann wird auch automatisch ein leeres Projekt gleichen Namens erzeugt und von dort aus kannst du weiter machen. Du hast jetzt mühsam eine Blocker2-Solution erzeugt, deren Projektdateien aber immer noch im Ordner Test2 liegen, von Ordnung keine Spur ;) - Der Label Explorer listet dir alle Vorkommen der Variablen auf, dazu muss du aber das Programm erst starten. - Der Debugger funktioniert nur in Assembler, nicht in Basic.
1:43:00 Ich denke, da es diese Art der Programmierung unter B2.0 noch nicht gab, dass das Basic erheblichen Ärger bekommt. Denn unter den erdachten, damaligen Umständen kommt es niemals vor, da man im Dirketmodus die Eingaben bestätigen muss, dass mehr als 80 Zeilen korrekt wären. Ich kann mir aber vorstellen, da die Basiczeilenpointer 16 Bit lang sind, dass man eine Zeile länger als 80 Zeichen lang machen kann, wenn man über Cross codet. Es kann aber auch sein, da eine Page eben nur 256 Zeichen aufnehmen kann, dass das doch Ärger geben könnte. Will sagen, dass wenn man unter Assembler einen Branchbefehl über eine Pagegrenze springen lässt, dass das ja auch unter CBM Prog Studio als "Fehler" angezeigt bekommt, da der Prozessor eben , ich glaube 2 Takte mehr verbraucht. Aber ich warte mal das Ende des Videos ab.
Cbm oder dieses hier... ansich ist es egal. Die beiden unterscheiden sich nur in manchen Syntax und / oder Bedienbarkeit. Ich persönlich wähle den CBM, muss allerdings sagen, dass ich Deines noch nie richtig ausprobiert habe. Ich kann aber jetzt schon sagen, dass ich die Labelfunktion NICHT bei CBM gefunden habe, sie aber dort auch nicht brauche. Denn wenn ich mal Basic code und "Platz" brauche, ich immer die Renumberfunktion wähle, dann habe aich auch Platz ohne Ende. Schönes Video, so ganz nach meinem Geschmack.
Ich könnte mir aber auch vorstellen, warum die 80 Zeichenbegrenzung bei der Direkteingabe vorhanden ist: Das BS MUSS ja so kurz wie möglich sein, so wenig wie möglich Prozessortakte verbrauchen, wird aber 50 mal /Sekunde aufgerufen und arbeitet ja den Basictext ab. In diesem BS sind bestimmt Branchbefehle(bcc. bvs....) , die eben nur 128 Register Vor und zurückspringen können. Es korreliert eben mit den 80 Zeichen, die ja gerade so in diesen Bereich passen. Zudem, wenn der Interpreter etwas blitzschnell und temporär ablegen will, benutzt er idR den PHA, dieser auch nur 8 Bit aufnehmen kann. Daher erscheint mir die logische Konsequence eben, dass die 2 Zeilenbegrenzung, so exakt gewählt wurde, weil es eben 2 GANZE Zeilen sind, denn die Dritte wäre wahrscheinlich zu viel, da zu Basictext ja noch die unsichtbaren Steuerelemente lagern. Aber das ist nur eine Vermutung von mir.
Ich weis es auch nicht, aber die 80 Zeichen, oder 2 Zeilen auf dem C64 sind vll. eine Pufferbegrenzung.?. 🤷♂️ Technisch sehe ich sonst keine Notwendigkeit, da sie Basic Programme ja immer auf den nächsten Zeilenanfang zeigen und der Basicpointer einfach "weitergeschoben" wird. Bei GOTO und GOSUB wird das Programm immer von vorne durchgesucht um die passende Zeile zu finden, auch da wäre keine Branch-Limitierung drin. Ich meine mich erinnern zu können, das ich mal getestet hatte, das die Zeilen 255 Bytes lang sein können, ehe der Interpreter aussteigt. Ich weis aber ehrlich gesagt nicht mehr in welchem Stream ich das gemacht habe... 😂
Die Länge der Eingabezeile wird einerseits dadurch definiert, dass maximal 2 Zeilen verknüpft werden können, das begrenzt die Länge auf 80 Zeichen und andererseits wird die Eingabezeile zur Verarbeitung im Basic-Eingabepuffer zwischengespeichert, der befindet sich in der erweiterten Zeropage (512-600), was max. 89 Zeichen entsprechen würde.
1:48:43. Ich denke, dass diese Funktionen (Charset usw.)genauso wie bei CBM ausschließlich zur Assprogrammierung sind, da man diese eben leicht erstellen kann, aber im Speicher exakt platzieren muss und das geht leider unter Basic nicht.
Vielen Dank für das Video
Ich glaube schon, dass Du in den nächsten paar Tagen den C64-Studio "lieb" haben wirst. Denn schon alleine die Tipparbeit, kopieren, einfügen usw. macht das Programmieren viel einfacher.
Einfacher ja, cooler ... eher nicht. 🤭
- Renumber kann bei doppelten Zeilennummern nicht funktionieren, wie sollen denn Sprungbefehle (also GOTO und GOSUB) verarbeitet werden? Es muss sich schon um vernünftigen Code handeln und dann funktioniert renumber auch.
- Ich programmiere sonst mit Microsoft Visual Studio und deswegen komme ich auch mit dem Aufbau des C64 Studios (ist übrigens in C# programmiert, nicht in Visual Basic) gut zurecht. Gewöhn dir einfach an immer mit einer Solution zu starten, dann wird auch automatisch ein leeres Projekt gleichen Namens erzeugt und von dort aus kannst du weiter machen. Du hast jetzt mühsam eine Blocker2-Solution erzeugt, deren Projektdateien aber immer noch im Ordner Test2 liegen, von Ordnung keine Spur ;)
- Der Label Explorer listet dir alle Vorkommen der Variablen auf, dazu muss du aber das Programm erst starten.
- Der Debugger funktioniert nur in Assembler, nicht in Basic.
Ja geil, danke für die Erläuterungen! Ich werde das mal ausprobieren... 🤓😁
1:43:00 Ich denke, da es diese Art der Programmierung unter B2.0 noch nicht gab, dass das Basic erheblichen Ärger bekommt. Denn unter den erdachten, damaligen Umständen kommt es niemals vor, da man im Dirketmodus die Eingaben bestätigen muss, dass mehr als 80 Zeilen korrekt wären. Ich kann mir aber vorstellen, da die Basiczeilenpointer 16 Bit lang sind, dass man eine Zeile länger als 80 Zeichen lang machen kann, wenn man über Cross codet. Es kann aber auch sein, da eine Page eben nur 256 Zeichen aufnehmen kann, dass das doch Ärger geben könnte. Will sagen, dass wenn man unter Assembler einen Branchbefehl über eine Pagegrenze springen lässt, dass das ja auch unter CBM Prog Studio als "Fehler" angezeigt bekommt, da der Prozessor eben , ich glaube 2 Takte mehr verbraucht. Aber ich warte mal das Ende des Videos ab.
Cbm oder dieses hier... ansich ist es egal. Die beiden unterscheiden sich nur in manchen Syntax und / oder Bedienbarkeit. Ich persönlich wähle den CBM, muss allerdings sagen, dass ich Deines noch nie richtig ausprobiert habe. Ich kann aber jetzt schon sagen, dass ich die Labelfunktion NICHT bei CBM gefunden habe, sie aber dort auch nicht brauche. Denn wenn ich mal Basic code und "Platz" brauche, ich immer die Renumberfunktion wähle, dann habe aich auch Platz ohne Ende.
Schönes Video, so ganz nach meinem Geschmack.
Ich könnte mir aber auch vorstellen, warum die 80 Zeichenbegrenzung bei der Direkteingabe vorhanden ist: Das BS MUSS ja so kurz wie möglich sein, so wenig wie möglich Prozessortakte verbrauchen, wird aber 50 mal /Sekunde aufgerufen und arbeitet ja den Basictext ab. In diesem BS sind bestimmt Branchbefehle(bcc. bvs....) , die eben nur 128 Register Vor und zurückspringen können. Es korreliert eben mit den 80 Zeichen, die ja gerade so in diesen Bereich passen. Zudem, wenn der Interpreter etwas blitzschnell und temporär ablegen will, benutzt er idR den PHA, dieser auch nur 8 Bit aufnehmen kann. Daher erscheint mir die logische Konsequence eben, dass die 2 Zeilenbegrenzung, so exakt gewählt wurde, weil es eben 2 GANZE Zeilen sind, denn die Dritte wäre wahrscheinlich zu viel, da zu Basictext ja noch die unsichtbaren Steuerelemente lagern. Aber das ist nur eine Vermutung von mir.
Ich weis es auch nicht, aber die 80 Zeichen, oder 2 Zeilen auf dem C64 sind vll. eine Pufferbegrenzung.?. 🤷♂️
Technisch sehe ich sonst keine Notwendigkeit, da sie Basic Programme ja immer auf den nächsten Zeilenanfang zeigen und der Basicpointer einfach "weitergeschoben" wird. Bei GOTO und GOSUB wird das Programm immer von vorne durchgesucht um die passende Zeile zu finden, auch da wäre keine Branch-Limitierung drin.
Ich meine mich erinnern zu können, das ich mal getestet hatte, das die Zeilen 255 Bytes lang sein können, ehe der Interpreter aussteigt. Ich weis aber ehrlich gesagt nicht mehr in welchem Stream ich das gemacht habe... 😂
Die Länge der Eingabezeile wird einerseits dadurch definiert, dass maximal 2 Zeilen verknüpft werden können, das begrenzt die Länge auf 80 Zeichen und andererseits wird die Eingabezeile zur Verarbeitung im Basic-Eingabepuffer zwischengespeichert, der befindet sich in der erweiterten Zeropage (512-600), was max. 89 Zeichen entsprechen würde.
Mach gerne auch noch ein Video zum CBM prg Studio. (Das ist allerdings kostenpflichtig.)
Meinst Du dieses hier: ua-cam.com/video/LBx350fEXAQ/v-deo.html 😉
1:48:43. Ich denke, dass diese Funktionen (Charset usw.)genauso wie bei CBM ausschließlich zur Assprogrammierung sind, da man diese eben leicht erstellen kann, aber im Speicher exakt platzieren muss und das geht leider unter Basic nicht.
Das ist möglich, mit der Assemblerprogrammierung im C64 Studio hab ich mich noch nicht auseinander gesetzt. 😅
Wenn Assambly programmieren einfacher wird als basic lol cooles video btw.
Ja, es war etwas Chaotisch, aber auch das erste Mal das ich mit dem C64 Studio etwas gemacht habe. Danach wurde es (etwas) besser. 🤭
@@C64 war keine kritik eher nen doofer joke. ich mag deine video!
Du musst unbedingt dein Mikro vom Schreibtisch entkoppeln. Das Gehämmere auf der Tastatur macht es echt anstrengend zuzuhören.
Das ist tatsächlich beabsichtigt. Also nicht das es Dich anstrengt, aber das man die Tastaturanschläge hört... 🙈
Schade das es das nicht für den Mac gibt.
Ich weis garnicht ob es eine alternative IDE auf dem Mac gibt... 🤔
@@C64 Ich kenne nur ausserhalb des C64 KickAssembler mit Visual Code oder einen anderen Editor. Das ist aber doch recht rudimentär Funktionsumfang.