Etwas Assembler für das BASIC Labyrinth - auf dem C64

  Рет қаралды 1,438

N3rdroom

N3rdroom

Күн бұрын

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!
Kanalmitgliedschaft: / @c64
Meine Kaffeekasse: streamelements.com/n3rdroom/tip
Der N3rdroom Shop: shop.n3rdroom.de
===== Inhalt dieses Videos
0:00 Das Labyrinth Projekt
0:20 Der Programmaufruf
1:58 Die genutzten Systemroutinen
3:30 Der Programmablauf
9:37 Der Test auf dem C64
viel Spaß!
===== Links zu weiteren Inhalten
Web: www.n3rdroom.de
Discord: / discord
Twitch: twitch.n3rdroom.de
Instagram: / n3rdroom
TikTok: / n3rdroom
Facebook: / n3rdroom
#C64 #Commodore #C64Studio #Commodore64 #programmieren

Пікірлер: 20
@testales
@testales 5 күн бұрын
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 ;-)
@captainoffuture4488
@captainoffuture4488 3 күн бұрын
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 3 күн бұрын
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 3 күн бұрын
@@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.
@birko7171
@birko7171 8 күн бұрын
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 7 күн бұрын
Danke für den Hinweis, das werde ich noch einbauen. 🙂
@kackfass8893
@kackfass8893 5 күн бұрын
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.
@Drachen257
@Drachen257 5 күн бұрын
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 5 күн бұрын
Oder man schreibt‘s direkt dezimal hin… 🤭 Aber danke für den Tip. Hab mir die Tools noch garnicht angesehen. 😅
@Lofote
@Lofote 5 күн бұрын
Aber auch da feagt man sich: warum :-D
@frankb763
@frankb763 5 күн бұрын
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 5 күн бұрын
Auf Twitch habe ich heute gestreamt und das eingebaut. Das Video ist noch ne Weile online. 😉
@C64
@C64 5 күн бұрын
Auf Twitch habe ich heute gestreamt und das eingebaut. Das Video ist noch ne Weile online. 😉
@Lofote
@Lofote 5 күн бұрын
Es triggerte schon wirklich leute, wenn du assembler dezimal eingibst? 😅
@C64
@C64 5 күн бұрын
Es gibt ja immer so einen harten Kern. 🤭
@Lofote
@Lofote 5 күн бұрын
@@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 5 күн бұрын
​@@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 4 күн бұрын
@@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.
Das kleine BASIC Labyrinth - auf dem C64
17:28
N3rdroom
Рет қаралды 910
Die Wahrheit über VPNs
15:33
c't 3003
Рет қаралды 171 М.
Khó thế mà cũng làm được || How did the police do that? #shorts
01:00
C64 - Hiding machine language in a REM statement
10:07
Retro Old Guy
Рет қаралды 6 М.
Commodore 64 Geräte und Modelle
6:58
Computer:Club2
Рет қаралды 44 М.
PETSCII Wizard of Wor für den C64 (2024) 🕹️👹
6:47
BiT #05: C64 - Wir laden von Kassette
11:07
〈VD〉 Virtual Dimension
Рет қаралды 115 М.
Was, wenn der GOLFSTROM stoppt? | #124. Energie und Klima
43:44
Grenzen des Wissens
Рет қаралды 66 М.
Wie weit sollte BÜROKRATIE gehen?
18:07
Nordwolle
Рет қаралды 369 М.
GamePad İle Bisiklet Yönetmek #shorts
0:26
Osman Kabadayı
Рет қаралды 348 М.
ИГРОВОВЫЙ НОУТ ASUS ЗА 57 тысяч
25:33
Ремонтяш
Рет қаралды 320 М.