N3rdroom
N3rdroom
  • Видео 496
  • Просмотров 834 083
Gegenstände kombinieren im C64 Text-Adventure - C64 Studio
Im Kurs Adventure Programmierung für Anfänger (ruclips.net/video/qekTRQe_av0/видео.html) habe ich ein kleines Textadventure für den C64 geschrieben. In dieser Coding-Session baue ich einen „Benutze“ Befehl ein. Diesen werde ich benötigen um weitere Rätsel in das Spiel zu bauen.
viel Spaß!
===== Supporte mich und meinen Kanal!
Kanalmitgliedschaft: ruclips.net/channel/UC0EgRTcry6u6OxDQslUyxYwjoin
Meine Kaffeekasse: streamelements.com/n3rdroom/tip
Der N3rdroom Shop: shop.n3rdroom.de
===== Inhalt dieses Videos
0:00:00 Der aktuelle Stand
0:06:51 Der Benutze Befehl
0:33:30 Gegenstände Kombinieren
viel Spaß!
===== Links zu weiteren Inhalten
Web: www.n3rdroom.de
Discord: discord.com/invite/4g74TJV
Twitch: twi...
Просмотров: 612

Видео

Projektstand 8bit-Labyrinth auf dem C64 - neue Assemblerroutine
Просмотров 86621 день назад
Ich habe mein 8Bit-Labyrinth erweitert und die Ausleuchtungsroutine in Assembler nochmal neu geschrieben. Sie kann nun die Gänge ausleuchten und eine Sichtweite darstellen. Außerdem beschleunigt die Nutzung der im C64 ROM vorhandenen RAM-Copy Routine das kopieren des Zeichensatzes. Beide Routinen, sowie den Stand des Projektes zeige ich in diesem Video. Viel Spaß! Supporte mich und meinen Kanal...
Welche Zeichenpositionierung ist die schnellste auf dem C64
Просмотров 87221 день назад
Es steht ein neuer Benchmark an und zwar teste ich in diesem Video, welche der drei folgenden Möglichkeiten der Positionierung von Zeichen auf dem C64 Bildschirm am schnellsten sind: - Direktes POKE in den Bildschirmspeicher - Cursorpositionierung mittels POKE und Systemroutine - PRINT mit Steuerzeichen Dem ganzen liegt ein X/Y Koordinatensystem zu Grunde, ich werden im Laufe des Videos aber au...
Etwas Assembler für das BASIC Labyrinth - auf dem C64
Просмотров 1,7 тыс.Месяц назад
Im letzten Livestream habe ich mein 8Bit-Labyrinth Projekt zum C64 Studio portiert und in BASIC eine "Fackel-Ausleuchtung" eingebaut. Diese läuft aber recht langsam, weswegen ich ein kleines Assemblerprogramm geschrieben habe, die zukünftig den Job der BASIC Routine übernehmen soll. In diesem Video zeige ich wie das Programm aufgebaut ist. Viel Spaß! Supporte mich und meinen Kanal! Kanalmitglie...
Das kleine BASIC Labyrinth - auf dem C64
Просмотров 982Месяц назад
Auf einem Retrotreffen habe ich ein kleines Projekt angegangen. Mein Zufallslabyrinth Algorithmus konnte bisher nur Blockweise die Wände darstellen. Dies habe ich geändert, so das je nach Aufbau des Labyrinths verschiedene Wandtypen angezeigt werden und so ein Irrgarten aus dünnen Wänden entsteht. Außerdem habe ich ein kleines Pixelmännchen gebaut und allein durch die Gänge laufen lassen. In di...
Die N3rdnight in Bingen am Rhein - Retrospaß mit Retrohardware
Просмотров 5322 месяца назад
Am 10.05. war in Bingen am Rhein ein Retrotreffen. Es wurde von Miagi aus der Community organisiert und "N3rdnight" genannt. In diesem Video bekommt ihr einen Bericht was dort so los war. 😁🤓 Supporte mich und meinen Kanal! Kanalmitgliedschaft: ruclips.net/channel/UC0EgRTcry6u6OxDQslUyxYwjoin Meine Kaffeekasse: streamelements.com/n3rdroom/tip Der N3rdroom Shop: shop.n3rdroom.de Inhalt dieses Vid...
Mehr Script-Funktionalität für das C64 Text-Adventure - im C64 Studio
Просмотров 8082 месяца назад
Im Kurs Adventure Programmierung für Anfänger (ruclips.net/video/qekTRQe_av0/видео.html) habe ich ein kleines Textadventure für den C64 geschrieben. In dieser Streamaufzeichnung habe ich die "Script-Engine" noch erweitert und mehr Funktionalität hinzu gefügt. Unter anderem können Spielobjekttexte ausgetauscht, Objekte umpositioniert und Scripts beim gehen in bestimmte Richtungen ausgeführt werd...
Entwicklung einer Text-Adventure Script-Engine für den C64 - im C64 Studio
Просмотров 1,4 тыс.3 месяца назад
Im Kurs Adventure Programmierung für Anfänger (ruclips.net/video/qekTRQe_av0/видео.html) habe ich ein kleines Textadventure für den C64 geschrieben. In dieser Streamaufzeichnung habe ich die bis dato "hart gecodete" Spiellogik in die Spieldaten ausgelagert. Es beginnt mit dem Öffnen einer Tür im Spiel. Um die Tür zu öffnen benötigt der Spieler einen Schlüssel, außerdem muss nach dem Öffnen eine...
Programmieren im C64 Studio: etwas buggy, aber spaßig!
Просмотров 2,6 тыс.3 месяца назад
Programmieren im C64 Studio: etwas buggy, aber spaßig!
Last not Least - Abschließende Texte der INPUT64 4/85
Просмотров 4284 месяца назад
Last not Least - Abschließende Texte der INPUT64 4/85
Supertape-V II auf dem C64 - INPUT64 4/85
Просмотров 5944 месяца назад
Supertape-V II auf dem C64 - INPUT64 4/85
Dein nächstes Partyspiel auf dem C64: Artemis - INPUT64 4/85
Просмотров 7074 месяца назад
Dein nächstes Partyspiel auf dem C64: Artemis - INPUT64 4/85
Fanpost: Ein Überraschungspaket mit Retrospielen!
Просмотров 4694 месяца назад
Fanpost: Ein Überraschungspaket mit Retrospielen!
String-Funktionen auf dem C64 - INPUT64 4/85
Просмотров 6435 месяцев назад
String-Funktionen auf dem C64 - INPUT64 4/85
"Terminal 64" Software und das Buch "Die Hacker" - INPUT64 4/85
Просмотров 8685 месяцев назад
"Terminal 64" Software und das Buch "Die Hacker" - INPUT64 4/85
Kassettendirectory auf dem c64 erstellen - INPUT64 4/85
Просмотров 6105 месяцев назад
Kassettendirectory auf dem c64 erstellen - INPUT64 4/85
C64 Musik - The Great Giana Sisters Intro (SID 6581)
Просмотров 6515 месяцев назад
C64 Musik - The Great Giana Sisters Intro (SID 6581)
C64 Musik - Paperboy Ingame (SID 6581)
Просмотров 4176 месяцев назад
C64 Musik - Paperboy Ingame (SID 6581)
Einkommenssteuertabelle auf dem c64 - INPUT64 4/85
Просмотров 6786 месяцев назад
Einkommenssteuertabelle auf dem c64 - INPUT64 4/85
Bits and Bytes im Videochip auf dem c64 - INPUT64 4/85
Просмотров 1,2 тыс.6 месяцев назад
Bits and Bytes im Videochip auf dem c64 - INPUT64 4/85
Adventsprojekt 2023 auf dem C64: Erstellung eines animierten Weihnachtsmann-Sprites
Просмотров 8167 месяцев назад
Adventsprojekt 2023 auf dem C64: Erstellung eines animierten Weihnachtsmann-Sprites
Ein Fenster zur Schneelandschaft: Ein winterliches C64-Programmierprojekt
Просмотров 6677 месяцев назад
Ein Fenster zur Schneelandschaft: Ein winterliches C64-Programmierprojekt
Schneegestöber in PETSCII: Ein winterliches C64-Programmierprojekt
Просмотров 8087 месяцев назад
Schneegestöber in PETSCII: Ein winterliches C64-Programmierprojekt
Farbige Kerzen, variable Kerzenlänge - Ein 8Bit Adventskranz entsteht in C64 BASIC
Просмотров 8487 месяцев назад
Farbige Kerzen, variable Kerzenlänge - Ein 8Bit Adventskranz entsteht in C64 BASIC
Ein 8Bit Adventskranz entsteht in C64 BASIC - Vom groben Entwurf zum Kerzenschein
Просмотров 1,8 тыс.8 месяцев назад
Ein 8Bit Adventskranz entsteht in C64 BASIC - Vom groben Entwurf zum Kerzenschein
Fahrtests und Elemente auf dem C64 - Disketten Dienstag - 38
Просмотров 1,1 тыс.8 месяцев назад
Fahrtests und Elemente auf dem C64 - Disketten Dienstag - 38
Wie D64 Diskettenimages im c64Studio verwendet werden können!
Просмотров 1,3 тыс.9 месяцев назад
Wie D64 Diskettenimages im c64Studio verwendet werden können!
Mathematik, Labyrinthe und Reaktionstests auf dem C64 - Disketten Dienstag - 37
Просмотров 1,4 тыс.9 месяцев назад
Mathematik, Labyrinthe und Reaktionstests auf dem C64 - Disketten Dienstag - 37
Programmierspielereien und Spiele auf dem C64 - Disketten Dienstag - 36
Просмотров 2 тыс.9 месяцев назад
Programmierspielereien und Spiele auf dem C64 - Disketten Dienstag - 36
C64 Musik - Oil Imperium (SID 6581)
Просмотров 71610 месяцев назад
C64 Musik - Oil Imperium (SID 6581)

Комментарии

  • @HLubenow
    @HLubenow 3 дня назад

    06:30: Ich hab's bei mir mal in BASIC durchlaufen lassen. Hat bei mir 7 Minuten 41 Sekunden gebraucht.

    • @C64
      @C64 2 дня назад

      Ah, danke für den Test! Es ist ja dann nur geringfügig langsamer. 🤭😉

  • @oliverwalter2961
    @oliverwalter2961 3 дня назад

    Sieht ganz gut aus und erinnert mich an die Grafik von Ultima IV und DDD.

    • @C64
      @C64 3 дня назад

      Ja, die Art der Icons ist auch daran angelehnt. DDD war damals mein absolutes Lieblingsspiel! 🥰

    • @oliverwalter2961
      @oliverwalter2961 3 дня назад

      @@C64 Ich bin gespannt, wie es weitergeht. 👍

  • @carstuskaktus7638
    @carstuskaktus7638 5 дней назад

    Bevor ich es mir anschaue, einen Kritikpunkt. Der Ton ist übel, wenn bestimmte Töne kommen. Es knackt und knistert ... Nimmst du auf Schallplatte auf?

    • @C64
      @C64 5 дней назад

      Also soooo schlimm ist es nun auch nicht, aber ja. Der Ton knackst ab und zu. Da scheint damals bei der Aufnahme etwas schief gelaufen zu sein… 😕

    • @xennial7408
      @xennial7408 3 дня назад

      Heyhey, mit dem Philips-Mikrofon an der Mono-Klinke gibt es halt Kabelbrüche, die aber mit Ducktape wieder repariert werden können. Dann an den tragbaren Recorder anschließen und am besten mit der BASF Chrome Maxima aufnehmen. Fast so gut wie auf einer CD, sagt die Werbung!

  • @erikbartmann
    @erikbartmann 14 дней назад

    Klasse Video! Ist es mit TASM auch möglich, den eigegebenen Code disassemblieren zu lassen? Das ist wohl kurz über die Ausgabe Pfeil nach links + 4 und dann über den Stern in der Anzeige sichtbar. Das läuft aber alles durch und lässt sich wohl nicht stoppen.

    • @C64
      @C64 11 дней назад

      Das kann ich Dir garnicht beantworten. So tiefgehend habe ich mich mit dem TASM auch nicht beschäftigt. Mittlerweile bin ich zum C64 Studio auf dem PC gewechselt. Das kann man sich beim Programmieren nicht abschießen. 🤭😅

  • @ralfjung4156
    @ralfjung4156 20 дней назад

    Hab mir ne komplette C64 Anlage aufgebaut, jetzt fehlt mir noch der Drucker. Ich bin ein Kind der 70'er Jahre, und bin damit aufgewachsen. Habe früher den Präsident 6313 gehabt, eigentlich hieß er Robotron, der in der ehemaligen DDR gefertigt wurde. Oh mein Gott, was dieser Drucker an Schalter hatte, und was man da alles einstellen konnte, der Wahnsinn. Jetzt überlege ich mir den 801 zu holen. Ich hoffe ich bekomme irgendwo einen vernünftiges und gut aussehendes Modell. Denn Optik ist mir wichtig, meine Geräte haben nicht die kleinste Macke. Viele Grüße Ralf

  • @purebasictogo
    @purebasictogo 20 дней назад

    echt Nostalgisch. Vor 30 Jahren etwa mit dem ZX 80 angefangen. Ich finde es cool, sowas wider mal zu sehen.

    • @C64
      @C64 20 дней назад

      Schön das es Dir gefallen hat, Hattest Du nach dem ZX80 denn auch einen C64? 🙂

    • @purebasictogo
      @purebasictogo 19 дней назад

      @@C64 C16/c64 die Erweiterung auf 128. Dann den Amiga Brotkasten. Die Version 500 mit multi Betriebssystem etc. Da werden Erinnerungen wach.

    • @C64
      @C64 19 дней назад

      @@purebasictogo Ich hab mit dem C64 gestartet und bin dann über den AMIGA 500 zum PC. 😅

  • @frankb763
    @frankb763 20 дней назад

    Tolles Video. Ganz nach meinem Stil

  • @andreas_71
    @andreas_71 20 дней назад

    Noch ein Tipp, wenn du am Ende einer Routine mittels "jsr" noch in eine Subroutine springst und danach gleich mit "rts" zurück springst, kannst du die Subroutine auch mit "jmp" anspringen. Das "rts" der Subroutine übernimmt dann den Rücksprung. Aber übersichtlicher ist es mit jsr/rts ... ... jsr Subroutine rts wir zu ... ... jmp Subroutine

    • @C64
      @C64 20 дней назад

      Guter Tip! Ich versuche dran zu denken. Ist ja auch logisch. 😅

  • @quellbrunnlowe7163
    @quellbrunnlowe7163 20 дней назад

    Danke für das Video. Leider ist ein großer Spaß mit dem automatisch erzeugten Untertitel verschwunden. Hat RUclips das selbst raus genommen?

    • @C64
      @C64 20 дней назад

      Hmm, es scheint so… wie schade. 🤭

  • @sara-d
    @sara-d 21 день назад

    Bitte nichts aufblitzen lassen! Das stört extrem und kann bei manchen einen Anfall auslösen. Wenn du das im fertigen Spiel haben willst, dann mache es ausschaltbar. Liebe Grüße.

    • @C64
      @C64 20 дней назад

      Hallo Sara, das Aufblitzen ist erstmal ein Provisorium um den angriff des Monsters zu visualisieren. Das wird noch gegen einen Sound ersetzt. 🙂

    • @AncapDude
      @AncapDude 19 дней назад

      Als ich hätte gerne die Blitzversion und würde sie dann auch als Epilepimaze verkaufen.

  • @Wumpsi
    @Wumpsi 21 день назад

    Interessante Lösung. Das einzige was mir auffällt: Du beschreibst am Anfang deine Variablen, nutzt sie aber im Code direkt. Normalerweise definiert man alle verwendeten Variablen als Konstanten am Anfang und lagert die sogar bei größeren Projekten in eine eigene Datei aus. Das erhöht die Lesbarkeit des Codes enorm und verhindert Fehler. In einem Jahr, oder wenn es mal 50+ Konstanten werden, weist du die Nummern nicht mehr auswendig. z.B. PLAYER_LO = 251 PLAYER_HI = 252 PLAYER_SICHT = 828 usw. Auf eine Schreibweise einigt man sich vorher. Aber früher hat man Konstanten groß geschrieben.

    • @C64
      @C64 21 день назад

      Stimmt, danke für den Hinweis. 🙂 So wird es deutlich besser lesbar.

  • @captainoffuture4488
    @captainoffuture4488 21 день назад

    Nice. Das Spiel nimmt langsam Gestalt an. So eine Kopierroutine kannst du dir aber auch selber schreiben. Das ist kürzer als die Parameter in die richtige Form für die Systemroutine zu bringen.

  • @knofi7052
    @knofi7052 22 дня назад

    ...man sagt dazu auch, es sind die verschiedenen Adressierungsarten eines Befehls.

  • @SunSailor
    @SunSailor 23 дня назад

    Als Spieleentwickler weiß man ja aus leidvoller Erfahrung, dass die Frage "Was habe ich mir denn dabei gedacht?" nicht selten eher optimistischer Natur ist... Leider ist Basic die maximalst undankbarste Sprache, um so ein Textadventure zu bauen. Hast du mal darüber nachgedacht, das ganze einfach mit dem CC65 zu machen? Da geht das Inline-Assembling auch deutlich einfacher. Ich nutze den inzwischen für die Entwicklung für den Commander X16 und wenn man eh cross-entwickelt, eigentlich der angenehmbere und flexiblere Workflow. Tools und Workflows implementiere ich dabei in der Regel in Python, da kann man dann mittels PyGame auch schnell kleine visuelle Tools bauen. Edit: Ok, um 1:42 war das dann sogar Thema. Ja, CC65 ist ein recht ordentlicher C-Compiler für alle 8 Bitter. Sehr einfach in der Anwendung und man ist einfach so viel schneller am Ziel. Und in Assembler optimieren kann man per Inline dann ja auch jederzeit, aber strukturelles geht halt viel leichter von der Hand.

  • @wizball6502
    @wizball6502 23 дня назад

    Ein klein wenig schneller kriegt man es so hin (man spart damit den Overhead des SYS Befehls): POKECY,Y:PRINT:POKECX,X:PRINT"A"; Ich war aber noch erstaunt, wie langsam die TAB() Funktion ist. Der zusätzliche Poke ist schneller als ein PRINTTAB(X)"A";

  • @captainoffuture4488
    @captainoffuture4488 25 дней назад

    Mutmaßlich noch schneller geht es, wenn man die Bildschirmadresse gleich in Assembler ausrechnet. Ich hab das mal in SMON gemacht. Die Syntax lautet: SYS 49152, X, Y, CODE Da man im Assembler nicht direkt die Y-Koordinate mit 40 multiplizieren kann rechne ich stattdessen die Bildschirmposition so aus: P = 32*Y + 8*Y + X + 1024 Quellcode: jsr aefd ; Komma einlesen jsr b79e ; Bytewert einlesen (steht im X-Register) stx fb ; X-Koordinate zwischenspeichern ; Bildschirmposition berechnen jsr aefd jsr b79e ; Y-Koordinate einlesen lda #00 sta fd txa asl asl asl tay ; Y-Koordinate * 2 * 2 * 2 im Y-Register sichern asl rol fd ; etwaigen Übertrag im High-Byte sichern asl rol fd sta fc ; FC/FD hat nun das Ergebnis aus Y-Koordinate * 32 tya ; Vorherige Sicherung zurückholen ... clc adc fc ; ... und aufaddieren sta fc lda fd adc #04 ; 1024 aufaddieren sta fd jsr aefd jsr b79e ; Bildschirmcode einlesen txa ldy fb ; X-Koordinate wieder auslesen sta (fc),y ; Code in den Bildschirm schreiben rts

  • @aries_code9615
    @aries_code9615 25 дней назад

    integer variablen verwenden, also cx%, cy% und cp%, usw, dann fällt die fließkomma wandlung zur laufzeit weg

    • @C64
      @C64 25 дней назад

      Aber nur wenn man sie als Feldvariable nutzt. Ob das dann aber unbedingt noch schneller wäre müsste man mal testen. Ich hab mal in einer Schleife Integer Variablen getestet. Das lief sogar unterm Strich langsamer, da das % Zeichen mit interpretiert werden musste. 🤔

    • @aries_code9615
      @aries_code9615 24 дня назад

      @@C64 next try: anfangsvektor der feldvariablen auf 1024 setzen und das indexing für dich arbeiten lassen

  • @lararaulf9968
    @lararaulf9968 26 дней назад

    Wenn du hinter den Printbefehl in Zeile 320 und Zeile 420 ein ";" packst, so müsste dies schneller gehen, weil der Basic-Interpreter dann kein "Enter" auführen muss.

    • @C64
      @C64 26 дней назад

      Wirklich schneller scheint es so nicht zu laufen, ich nehme an, weil der Interpreter dann das ; als zusätzliches Zeichen interpretieren muss. 🤔 ruclips.net/user/shortshU2L07fcgUw

  • @arminschnee865
    @arminschnee865 26 дней назад

    So ein kleines Kindheitstrauma von mir: mich würde interessieren, wie man das richtige Timing für left/right borderless hinbekommt. Oben/Unten ist durch den vertical blanking IRQ ja recht simpel gewesen, aber ich habe mich damals sehr schwer getan, den Rand links und rechts zu entfernen. Klar - habe ich heute den Assembler Code nicht mehr zur Hand, kann mich aber gut erinnern wie ich versucht habe, das Timing mit einer Anzahl NOP's zu treffen. Das funktionierte in meinem Fall leider nur teilweise und fransig. Stellenweise war der Rand weg, stellenweise nicht. Vielleicht hat hier jemand einen Source oder einen kleinen Technik-Guide wie der Trick funktioniert - damit ich heute mit dem Thema abschließen kann xD ;)

    • @C64
      @C64 26 дней назад

      Da kann ich Dir leider nicht weiterhelfen, bin was solche Techniken angeht ein totaler Anfänger. 😅

  • @astraton2001
    @astraton2001 26 дней назад

    Basic auf dem C64. hab ich ja schon ewig nicht mehr gesehen. Und jetzt das ganze mal in Assembler.

  • @sengir3937
    @sengir3937 26 дней назад

    Die PRINT-Version kannst du effizienter gestalten: 1. Das Home-Zeichen muss natürlich das erste Zeichen der PX$-Zeichenkette sein, heißt natürlich auch, dass die erste Spalte dann 1 ist. 2. Mehrere Ausgaben in einer einzelnen PRINT-Anweisungen sollten nicht durch unnötige Zeichen wie + oder ; verlangsamt werden, direkt hintereinander schreiben. 3. Das letzte Zeichen einer PRINT-Anweisung sollte ein ; sein, sonst wird noch eine Zeilenumbruch ausgeführt, was Zeit benötigt. 4. Spar dir PX$ sondern nutze TAB(X) zur direkten Positionierung Resultat: 49 Jiffys bei 60 Durchgängen und x=15, y=6 statt deinen 70. PRINTLEFT$(PY$,Y)TAB(X)"B"; und PY$="{home}.." Beim Poken in den Bildschirmspeicher musst du natürlich noch berücksichtigen, dass du die Zeit verdoppelst, wenn du auch die Farbe setzen musst, außerdem bist du auf ein einzelnes Zeichen beschränkt. Du kannst kein Zeichen an die letzte Bildschirmposition printen, da dann ein automastischer Zeilenvorschub stattfindet.

    • @C64
      @C64 26 дней назад

      PRINT Ausgabe in C64 BASIC optimieren #c64 #retro #programmieren

  • @C64
    @C64 28 дней назад

    6:40 Ich habe hier einen Fehler gemacht und ein Steuerzeichen für die X-Positionierung zu wenig in den String gepackt. Das führt später zu dem Ausgabefehler... 😅🙈

  • @beonura5094
    @beonura5094 28 дней назад

    Bin ich blöd weil ich Assembler immer noch nicht verstehe? Irgendjemand hat sogar mal behauptet das man Assembler in einer Stunde lernen kann, da glaube ich aber nicht!

    • @C64
      @C64 28 дней назад

      Nein, bist Du sicher nicht. Im Prinzip musst Du nur lernen, wie der Prozessor funktioniert mit seinem Akkumulator und X- bzw. Y- Register. Außerdem was die verschiedenen Speicherstellen im C64 machen. (Beispielsweise ändert die Adresse 53280 die Hintergrundfarbe des Bildschirms) Dann sind es nur eine "´Hand voll" Befehle, die Werte erzeugen, berechnen und im Speicher hin und her schieben... Falls Du es noch nicht gesehen hast hier mein Einstieg in Assembler: ruclips.net/video/NKOucB0o4YQ/видео.html Vielleicht hilft es Dir beim Verständnis. 🙂

  • @jkeelsnc
    @jkeelsnc Месяц назад

    What impresses me about this printer is the simplicity and robustness of the mechanism. There is very little to go wrong with it. Quite a clever design.

    • @C64
      @C64 Месяц назад

      Yes, it was a simple technique, but it worked and is still a lot of fun to play with today. 🤗😉

    • @jkeelsnc
      @jkeelsnc Месяц назад

      @@C64 yes.

  • @janhammer5931
    @janhammer5931 Месяц назад

    Ich bin Baujahr 67 und habe den C64 live erlebt. Mit ihm zu arbeiten und zu spielen war einfach unglaublich. Fliegende Buchstaben mit Musik war schon was ganz besonderes und gefühlt war es damals wahnsinnig schnell.

  • @captainoffuture4488
    @captainoffuture4488 Месяц назад

    Clevere Idee, das mit der Hintergrundfarbe zu lösen. Die fehlende Initialisierung des Y-Registers wurde bereits erwähnt. Aber bei 6:20 hast du auch noch einen kleinen Fehler in deiner Erklärung: Zuerst wird per SEC ("Set Carry-Bit") das Carry-Bit gesetzt. Wenn du nach der Subtraktion des Low-Bytes (251) unter 0 kommst, wird das Carry-Bit gelöscht und das *gelöschte* Carry-Bit wird bei der zweiten Subtraktion vom High-Byte (252) abgezogen.

    • @C64
      @C64 Месяц назад

      Ah, danke für die Erklärung. Da schwamm ich auch ein bisschen, weil ich das mit der Subtraktion und dem Carry-Bit nicht geblickt hab. Es wird also abgezogen, wenn es auf 0 steht? 🤔🙂

    • @captainoffuture4488
      @captainoffuture4488 Месяц назад

      @@C64 Exakt. Ich glaube das alles kommt daher, weil der 6502/6510 Prozessor intern garkeine Subtraktion kennt sondern einfach das Komplement der abzuziehenden Zahl aufaddiert.

  • @testales
    @testales Месяц назад

    Nach gut 30 Jahren kann ich mich tatsächlich immer noch an die grundlegenden Assemblerbefehle erinnern. :-) Ich hatte damals ein Buch mit einem kompletten, kommentierten ROM-Listing, das hatte ich quasi unter dem Kopfkissen. Nun dann: SYS 64738 ;-)

  • @frankb763
    @frankb763 Месяц назад

    2:22 Das ist wirklich egal. Ich habe zB. für $ffd2 eben Print als Label genommen. Schön wieder was in Ass zu lesen 🙂

    • @C64
      @C64 Месяц назад

      Auf Twitch habe ich heute gestreamt und das eingebaut. Das Video ist noch ne Weile online. 😉

    • @C64
      @C64 Месяц назад

      Auf Twitch habe ich heute gestreamt und das eingebaut. Das Video ist noch ne Weile online. 😉

  • @Drachen257
    @Drachen257 Месяц назад

    Aber Andreas im C64 Studio gibt es doch dafür einen Umrechner den Calculator. Zu finden im Rider Windows. Dort braucht du dann nur die Dezimal eingeben und er spuckt dir den Hex-Zahl auf. Ansonsten ein schöne Routine.

    • @C64
      @C64 Месяц назад

      Oder man schreibt‘s direkt dezimal hin… 🤭 Aber danke für den Tip. Hab mir die Tools noch garnicht angesehen. 😅

    • @Lofote
      @Lofote Месяц назад

      Aber auch da feagt man sich: warum :-D

  • @Lofote
    @Lofote Месяц назад

    Es triggerte schon wirklich leute, wenn du assembler dezimal eingibst? 😅

    • @C64
      @C64 Месяц назад

      Es gibt ja immer so einen harten Kern. 🤭

    • @Lofote
      @Lofote Месяц назад

      @@C64 krass :-D selbst der c128 MONITOR hat dezimale zahlen bei der eingabe verstanden und dann halt umgewandelt. Man muss sich die welt ja nicht unnötig kompliziert machen ;) aber ja, gibt immer extreme leute :-D gibt ja auch leute, die die opcodes und alles im hexeditor lieber eingeben :-D

    • @kackfass8893
      @kackfass8893 Месяц назад

      ​@@Lofotedie Frage ist doch eher ob du primär mit Basic oder Assembler arbeitest. Wenn Basic benutzt man im Editor dezimal und kennt die Adressen. Hat man Assembler programmiert dan hex, war bei mir so.

    • @Lofote
      @Lofote Месяц назад

      @@kackfass8893 Mmh, die Adressen hab ich meist in Hex eingegeben, also z.B. $D020 für die Rahmenfarbe. Aber wenn es dann um Werte ging, die ich z.B. per LDA in das X-Register gefüllt habe, und ich z.B. von 40 runterzählen wollte, ... warum sollte ich da erst nach Hex konvertieren müssen? :)... Das hab ich den Computer schon selbst machen lassen, wofür ist er da :-D und wie gesagt, selbst der doch recht beschränkte C128 MONITOR konnte das problemlos.

  • @carstuskaktus7638
    @carstuskaktus7638 Месяц назад

    WAS? Keine Hex-Zahlen? SOFORT DEABONIERT!!1!11!!1!!!1!11!!

    • @C64
      @C64 Месяц назад

      Naaaaaaiiiiiiiiiiin! 😭

  • @Sensibelchen
    @Sensibelchen Месяц назад

    Tja, bis die ganzen Bits so übertragen sind, das dauert halt.

  • @ShadowD71
    @ShadowD71 Месяц назад

    Hallo, könntest Du die Stellenwertvariable SW nicht weglassen und stattdessen in Zeile 1050 schreiben: tw$=0:if (bw and 2^i) > 0 then tw$="1" ?

    • @C64
      @C64 Месяц назад

      Ja, das wäre auch möglich. Ist dann Speichersparender, aber langsamer. 😉

  • @birko7171
    @birko7171 Месяц назад

    Coole kleine Routine! Ich mag das sehr, das Basic mit kleinen Routinen zu pimpen :). Eine Anmerkung: ich bin mir nicht sicher, aber kann es sein, dass du das Y Register nicht initial einmal (wenigstens) auf 0 setzt? Du nutzt es bei der Ausgabe. Es könnte allerdings sein, dass, ohne Initialisierung, das Register noch andere Werte als 0 enthält. Aber vielleicht habe ich dein Listing auch nicht ganz sehen können.

    • @C64
      @C64 Месяц назад

      Danke für den Hinweis, das werde ich noch einbauen. 🙂

    • @kackfass8893
      @kackfass8893 Месяц назад

      Falls das nicht gemacht wurde, muss er y mit 0 initialisieren. Ist ja y indiziert. Desweiteren wäre eine Überlegung, die Werte aus der Zeropage weiter zu benutzen und nicht in 251 usw zu speichern.

  • @knofi7052
    @knofi7052 Месяц назад

    Ach, was waren das noch für tolle Zeiten! Da waren noch die CPU's und deren Assembler so leicht verständlich, dass man einfache Programme tatsächlich nur in Zahlen eingeben konnte. Mit dem Amiga und dem MC68000 hatte die Assembler-Freude ihren Höhepunkt.😊

    • @C64
      @C64 Месяц назад

      Mit der AMIGA Assembler Programmierung habe ich mich nie auseinandergesetzt. 🙈

  • @pedder55655
    @pedder55655 Месяц назад

    Der C64 war augenfreundlicher ;)

    • @C64
      @C64 Месяц назад

      Das schon, auch Basic programmiere ich wegen dem „Kinderzimmergefühl“ lieber auf dem C64. Aber ich musste jetzt feststellen, Assembler macht deutlich mehr Spaß, wenn man das auf dem PC entwickelt. 😅

  • @TTOTheTrueOne
    @TTOTheTrueOne Месяц назад

    Ich glaube, ich schulde JSON eine Entschuldigung 🤪

    • @C64
      @C64 Месяц назад

      😂

  • @captainraver
    @captainraver Месяц назад

    Ich finds spannend wie Du das machst. Für mein Textadventure (Kellerabend - The Game) hab ich z.B. das mit dem Objekt wenn es schon mal betrachtet wurde gelöst indem ich beim Objekt eine "untersucht" Variable habe (also wenn untersucht setzt er die auf 1, beim nächsten mal schreibt er einen Default Text (das hast Du schon untersucht...) . Aber auch andere Variablen, also man eine Flasche z.B. auch "trinken" kann.

    • @C64
      @C64 Месяц назад

      Auch ein guter weg das zu lösen. 🤔🙂

  • @sharkyocean4649
    @sharkyocean4649 Месяц назад

    Jau, Games aus der Zeitung abtippern: langwierig, fehlerbehaftet aber günstiger als fertige Games kaufen - von denen es ja zu Beginn auch noch nicht so viele gab… 😂

  • @GudeDoc
    @GudeDoc Месяц назад

    Super Video. Damals ohne Internet und genug Taschengeld für bezahlbaren Input (Zeitschriften / Bücher) war das totales Herrschaftswissen und ich ärger mich ja das ich mir das früher verwehrt geblieben ist - gab halt keinen der einem da Helfen konnte ;-). Aber das denke ich mir auch manchmal wenn ich aktuelle Nachhilfevideos in Mathe sehe.

    • @C64
      @C64 Месяц назад

      So ähnlich ging es mir auch. Als Kind bekam man nur "C64 für Einsteiger"-Bücher geschenkt... 😉🙈

  • @frankb763
    @frankb763 Месяц назад

    Ab 6:48. Sorry, es ist doch möglich, auf ein bestimmtes Datalelement nach einem Restore zuzugreifen. Ich hoffe, mein kleines Basicprogramm kann es dir verdeutlichen: __________________________________________________________________________ 10 l=8 20 printchr$(147);"register , data" 30 print"--------------------------" 40 fori=1to10: 50 ifi=lthen b1=peek(65):b2=peek(66) 60 y=peek(66)*256+peek(65) 70 print i;y;" , ";:read a$:print a$:nexti 80 print"--------------------------" 90 restore:rem setzt datalelement nach Basicstart 100 print"nach restorebefehl:";peek(66)*256+peek(65) 110 print"--------------------------" 120 print "poke 65,"b1":poke 66,"b2;" = {reverse on}";b2*256+b1;"{reverse off}" 130 poke65,b1:poke66,b2 140 read a$ 150 print "erster read nach restore: {reverse on}";a$;"{reverse off}" 160 input"welchen eintrag nun";l 170 if l >10 or l <1then160 180 restore:goto20 190 data "tuppes ", "alfons " , "heidi " , "petra " , "schnucki" 200 data "felix ", "saeuft " , "und ist" , "hacke " , "dicht " 210 rem ende des listing

  • @jaikee9477
    @jaikee9477 Месяц назад

    Ich habe damals nichts von all dem gemacht und stattdessen mit dem Joystick in der Hand 10 Minuten gebannt auf den Bildschirm gestarrt! Und dann: Scheiße! Joystick am falschen Port! 😂

    • @C64
      @C64 Месяц назад

      Das berüchtigte Port-Problem. 😂

  • @SystemYTP
    @SystemYTP Месяц назад

    Interessant, danke! Wie kommt es eigentlich, dass der Computer (nach einem erfolgreichen LOAD) das Laufwerk anscheinend eigenhändig anhalten kann, zum Lesen aber das PLAY des Nutzers braucht?

    • @C64
      @C64 Месяц назад

      Gute Frage. 🤔 Ich nehme an, das ist vom Audiokassettenrecorder so übernommen worden. Und so hat man auch die Möglichkeit nach de LOAD noch das Band zurecht zu spulen. Vielleicht hat man sich auch gedacht, das man so eher die Kontrolle behält. 🤷‍♀️🙂

  • @xennial7408
    @xennial7408 Месяц назад

    Das Schöne an den alten Heimcomputern war, dass man das Ding noch komplett verstehen konnte. Grafikchipsatz, Soundchipsatz, Ports, Speicherverwaltung... oft sehr tricky und viele Kniffe, um mit den wenigen Ressourcen auszukommen, aber dafür überschaubar. Heute sind Programmierer immer spezialisierter und leider oft nicht so tief drin wie es für ein effizientes Programm sinnvoll wäre. 🙂

    • @C64
      @C64 Месяц назад

      Das stimmt, es macht echt Spaß sich mit dem C64 zu beschäftigen. 😅

    • @captainoffuture4488
      @captainoffuture4488 Месяц назад

      Ein großes Projekt kann ein einzelner Programmierer auch garnicht mehr komplett überblicken. Hinzu kommen z. B. fremde Treiber, die sich mit jedem Update ständig ändern. Damals war man halt noch Solist, heute ist alles Teamwork.

  • @captainoffuture4488
    @captainoffuture4488 Месяц назад

    Sehr schönes kleines Spiel. Aber es fehlt noch ein Ziel wie z. B. eine Schatztruhe, die man durchs Labyrinth erreichen muß. Der Vorteil von Sprites wäre außerdem, daß sich bis zu 8 Ebenen/Sprites übereinander legen ließen. Das wäre dann sehr farbenfroh.

    • @C64
      @C64 Месяц назад

      Das schreit ja förmlich nach einer Livecodingsession... 🤔😉