Posts by MaV

    Hm, da hat's schon in den 80ern Programme gegeben, die diesen BASIC-Schutz (wenn mit Save "",p gespeichert wurde) ausgehebelt haben.


    Im CPC International war mit Sicherheit eins, nur habe ich keine Ahnung mehr, welche Ausgabe das Listing enthielt. Evtl. hilft dir ein Emulator weiter (JavaCPC?).


    MaV

    Workaholic hat mir die Antwort schon abgenommen. :)


    Wahrscheinlich steht die Info sogar irgendwo im Handbuch, aber halt nicht dort, wo man sie zunächst sucht.


    Ich kann das nicht prüfen, weil ich kein 6128-Handbuch habe, auch kein Floppy-Handbuch für die DDI, wo ich die Information vermute.

    Hi!


    Also die sind nicht wirklich versteckt, sondern unter einem anderen User abgespeichert. In diesem Fall ist es User 9.


    Mit |user,9 kannst du im AMSDOS umschalten und dir die Dateien anschauen, dann mit |user,0 wieder zurück zum "root".


    Die Idee entstammt CP/M, dort fehlen Verzeichnisse und User ist ein Hilfsmittel, um das doch noch zu ermöglichen, allerdings nur für 0 bis 15, wenn ich mich nicht irre.


    MaV

    wenn die Version dokumentiert ist, dann würde das gehen. Der Flashchip ist identisch, allerdings gibt es einige Änderungen in seinem Layout. Ich müsste das mal genau sehen, dann könnte ich Brueggi fragen ob er es anpasst. Soweit ich weiss, fehlt bei seiner Version der Schreibschalter. Aber ich hab keine Karte von ihm und auch keine Doku darüber.

    Prima. Ich sehe Pulkomandy persönlich erst Mitte März, aber frage schon mal jetzt bei ihm an, falls er euch helfen kann.


    Nebst Bryces besitze ich auch eins von Pulko. Ihr könnt es zum Testen verwenden.

    Genial!


    Gibt es eigentlich auch die Möglichkeit, den Nachbau von Pulkomandy auch zu unterstützen? Er hat, soviel ich weiß, ja nur eine kleine Routine geschrieben, und will das Programmieren den anderen überlassen.

    Quote

    Mein CTM spricht übrigens Wienerisch.

    Und meiner lernt's gerade. ;) Das ist derselbe, den sloopie verkauft hat.



    Grundsätzlich schaut es in Ebay Österreich aber eher mau aus. Gelegentlich kommt etwas, das stimmt schon. Aber da wird man auf Ebay.de schneller fündig. Nicht unerwähnt sollte bleiben, dass das Porto natürlich vergleichsweise recht hoch sein wird.

    Hi!


    Also die Game City ist schon ganz ok, aber nur deswegen zu kommen ist wohl übertrieben, da gibt's in DE größere Messen. ;) Und wie dort werden vor allem die neuesten Spiele und Konsolen präsentiert (Wii U, Halo 4, NfS: Most Wanted). Andererseits ist der Eintritt frei, also kann's nicht schaden mal kurz vorbei zu schauen.


    Das Retro-Eck hatte hauptsächlich Konsolen und einen C64. Mit dabei war auch eine japanische Konsole, die meiner Meinung nach die gleiche war, die Tolkin auf die XZentriX mitgenommen hatte. Auf einem großen, aufgestellten Sony Trinitron sah das richtig geil aus!


    Nik war dort, ich hab ihn auch von dir grüßen lassen. Wie zu erwarten kennt er sich verdammt gut mit Konsolen und Retro-Spielen aus. Unsere Unterhaltung drehte sich hauptsächlich um die beste Bildschirmqualität, die bei alten Konsolen erreichbar ist. Natürlich geht das letztlich nur mit CRT (Fernseher oder Monitor), allerdings riet er auch entschieden von 100Hz-Fernsehern ab. Die Technik ist von herkömmlichen TVs verschieden und liefert ein schlechteres Bild.


    Ich muss ihn bald mal in seinem Laden besuchen.


    MaV

    Und was ist mit den Block-Operationen, die sich (implizit!) immer auf das HL- und DE-Register beziehen?


    Die hab ich erwähnt:

    Quote

    Des Weiteren kannst du noch diese komplexen Befehle dazurechnen:


    DJNZ, sämtliche Block-Befehle

    Wenn du die Gesamtheit der möglichen Befehle hernimmst, ist das eine sehr geringe Zahl, und verglichen mit dem 8080er sehr transparent.



    MaV

    Sogar ein Interview mit mir :D Ich bin beschämt und entzückt zugleich :D
    und ganz ungeschnitten (grumpfl)
    http://www.bildschirmspruenge.net/bssp-19-5/

    Jep, der war lustig, speziell weil eben nichts geschnitten wurde. ;)


    Außerdem waren da vorher noch:
    http://www.bildschirmspruenge.net/bssp-19-4/
    Radio PARALAX


    http://www.bildschirmspruenge.net/bssp-19-3/
    Sound of games, Project Giana, Enno Coners


    (Und bevor das jetzt als Werbung verstanden wird, ich hab mit den Betreibern der Seite bis jetzt keinen Kontakt gehabt. Aber das wird sich wohl noch ändern.)


    MaV

    Hallo!

    Quote

    Super Sache MAV, das ist ja fast schon Lichtgeschwindigkeit.

    Danke schön! :)


    Na ja, ein wenig Luft nach oben ist schon noch da. z.B. werden die Interrupts nicht abgeschaltet, und ich benutze den zweiten Registersatz nicht. Letzteres ist aber auch nur bedingt einsetzbar, da die Iteration wie der Name sagt iterativ abläuft, d.h. ich kann schlecht Werte parallel halten, sondern benötige auf die meisten ständigen Zugriff. Der Zugriff von einem Registersatz in den nächsten funktioniert nicht schnell genug für diese Zwecke. Der Einsatz würde aber Sinn machen, um die Variablen für die Plotroutine schneller bei der Hand zu haben. Das bringt jetzt allerdings auch nicht so viel.


    Es soll auch nicht unerwähnt bleiben, dass Prodatron mir zwei kleine Tricks gezeigt hat. Dafür vielen Dank, Prodi! :)


    MaV

    Nicht notwendig, ich antworte auch hier. :)


    Prodatron: Danke schön fürs Lob! :)


    Microprofessor: Die Sourcen werde ich auch noch veröffentlichen. Ich muss allerdings nochmals drübergehen, um die Kommentare richtigzustellen. Es sollte eigentlich der Code für den normalen Bildschirm reichen, denn der Code für den Overscan-Modus unterscheidet sich davon kaum. Ich nehme allerdings die Rohfassung her, denn der Introtext und dgl, wird für eine Analyse nicht notwendig sein, schätze ich.

    Und ... als Fan eingetragen. #26, glaube ich.


    Das mit dem Computerspiel höre ich schon von einer anderen Seite. Mit der Idee einer Multiplayer-Erweiterung, so dass 5 spielen können (1 Peckmensch + 4 Bösewichte). Dazu müssten aber andere Regeln gelten, denn die aktuellen sind dafür nicht ausgelegt, dass jeder einen einzelnen Geist spielen kann.
    Und ja, gewürfelt müsste auch im Computerspiel werden.

    Oh, jetzt kann ich zwischen +3, +2, +2A und + wählen. Irgendwelche guten Ratschläge?


    Also, was ich bisher so zu dem Thema gelesen habe:


    1) Der +3 kann 3"-Disketten verwenden, oder alternativ lässt sich gleich eine HxC einbauen. Das ist auch das letzte Modell vom Spectrum (von Clones mal abgesehen). Es gibt aber Inkompatibilitäten mit den ursprünglichen Spectrum-Modellen (ich glaube vor allem wegen der ROMs und dem Bank-Switching). Das Modell hat 128k und den AY-Soundchip.


    2) Der +2 (grau) ist der beste was eingebautes Kassettenlaufwerk und Stabilität betrifft (hat auch schon ein paar Kompatibilitätsprobleme mit den alten Modellen). Das Modell hat 128k und den AY-Soundchip.


    3) Der Spectrum+ ist ein normaler Spectrum 48k mit verbesserter Tastatur. D.h. Peripherie wirst du zusätzlich benötigen, wenn du Programme speichern und laden willst. Allerdings kann man das ja heutzutage auch mit dem PC und WAV bzw. MP3s machen. Kein Soundchip (also nur Beeper) und keine 128k.


    Also kurzerhand: Wenn ich das Geld hätte und noch keinen Spectrum, dann 1) und 3) oder 2) und 3) - das deckt so ziemlich alles ab. Der +2A ist nur optional, weil er im wesentlichen ein +3 ohne Floppy-Hardware aber mit Kassettenlaufwerk ist.


    Ich habe einen +2A und bekomme in kürze einen +3 und einen 48k. Damit bin ich persönlich komplett.


    PS: Die Netzteile haben unterschiedliche Anschlüsse zwischen den Modellen. Falls keins dabei ist, aufpassen und informieren, was wie angeschlossen wird!

    Hallo!


    Da ist mir doch heute beim Hören der Gamescom-Episode des Bildschirmsprünge-Podcasts einiges bekannt vorgekommen:
    http://www.bildschirmspruenge.net/bssp-19-1/


    Also, wenn ich mich nicht irre, lobt der eine über alle Maßen den KITT und das Pacman-Brettspiel. :) Er hat keine Namen genannt, aber es können wohl nur Kanga und Prodatron gemeint worden sein.


    Außerdem gibt es ein Interview mit Chris Hülsbeck
    http://www.bildschirmspruenge.net/bssp-19-2/


    Und weitere Interviews sollen folgen, darunter eines mit Prodatron, wenn ich das richtig verstanden habe.


    MaV


    Edit hexagon: Nach "Interessantes und Links" verschoben und Link korrigiert.

    Quote

    Das ist richtig, aber irgendwie sieht das unten wie eine Art Rom aus, oder was soll das sein?

    Das ist die Decoder-Einheit des 6502. Dort sind die Befehle hartverdrahtet. Was natürlich heißt, dass es wirklich ein ROM ist.


    Reverse Engineering the MOS 6502 CPU


    Michael Steil hat auf der 27c3 einen Vortrag über den 6502 gehalten. Unbedingt mal ansehen! Es gibt dort zu den hier erwähnten auch ein vereinfachtes Diagramm des 6502 zu sehen, der dem bekannten des Z80 entspricht. Bei beiden ist klar, dass es sich um Vereinfachungen des tatsächlichen Aufbaus handelt. Der für euer Thema interessante Teil beginnt bei 20m30sec, aber es lohnt sich, das ganze zu sehen.


    MaV


    PS: Vom selben Michael Steil gab es auf der 25c3 den Ultimativen Commodore 64 Talk. Auch sehr empfehlenswert.


    The Ultimate Commodore 64 Talk

    Quote

    Also jetzt erinnere ich mich aber, dass es doch eine ganze Anzahl impliziter Adressierungen in Mnemonics beim Z80 gibt.

    Nein, genau das ist nicht der Fall. Die Mnemonics des Z80 haben (fast) keine impliziten Angaben. Es wird lediglich der Akkumulator als Parameter nicht angegeben, weil er für fast alle 8-bit Operationen als ersten Parameter implizit angenommen wird.


    ADD ist immer eine Addition, ADC immer eine Addition inkl. Carry-Bit, etc.


    EDIT:
    Die Befehle, die implizit das A-Register enthalten sind:


    DAA, RLA, RRA, RLCA, RRCA, RLD, RRD, NEG (davon sind RLA und RRA die schnelleren Varianten zu RL A und RR A)


    Des Weiteren kannst du noch diese komplexen Befehle dazurechnen:
    DJNZ, sämtliche Block-Befehle

    Da hat jeder natürlich gute Einwände und vermittelt seine Sichtweise. Nur:


    Jemand hat für den Z80 die Mnemonic LD ersonnen, und aus dem Bestand der Möglichkeiten LD zu nutzen, lässt sich eines herauslesen: Geladen wird immer in das Register/die Speicherstelle, der/die als erster Parameter angegeben wird. Das kann eine Stelle im Speicher oder ein Register des Z80 sein. Wobei ein Register auch nichts anderes als eine spezielle Speicherstelle im Prozessor ist.
    Somit ist klar, dass der LD-Befehl - so wie er für den Z80 genutzt wird - nicht aus der Sicht des Prozessors lädt und entlädt, sondern die Auswirkung des LD-Befehls aus der Sicht dieser Speicherstelle/des Registers verstanden werden muss. Oder anders formuliert: So wird der Vorgang im Prozessor mittels der LD-Mnemonic des Z80 abstrahiert.


    Ob jetzt MOVE, LOAD oder STORE besser wären, ist dann den Vorlieben der Diskutanten überlassen. Jeder einzelner Begriff davon hat ja wohl mit dem, was sich tatsächlich im Prozessor abspielt, eh nichts zu tun. Und die Wahl von LD kann man auch nicht mehr anfechten, ohne die komplette Historie des Z80 umschreiben zu müssen.
    Wir Menschen tun uns halt leichter, nicht ein völlig abstraktes Symbol dafür zu verwenden, sondern einen Begriff, der uns von irgendwoher vertraut ist. Dann "Beladen" oder "Entladen" oder "Kopieren" wir halt mal gerne. Das Prinzip ist das gleiche, wie damals als uns die Bücher, Lehrer und sonstige den Speicher als Reihen und Reihen von Kästen mit Schubladen zu erklären versuchten.

    Alphabet? Naja, sieht so aus... aber im Ernst: BC ist die Abkürzung für Byte-Counter (siehe LDDR, LDIR, CPDR, INIR etc. Befehle). IX steht z.B. für IndeX Register.

    Sorry, da war ich unklar. Die Benennung der Register von A-H + L stammt ja noch aus 8080-Zeiten, und da haben z.B. DE und BC keine solche Funktionen, wie sie sie im Z80 haben (zumindest sehe ich dort keine Block-Kopier-, Block-Such- und Block-IO-Befehle; djnz fehlt da ebenfalls). Also liegt für mich die Vermutung nahe, dass sie ganz zu Beginn einfach durchs Alphabet gegangen sind, und bestimmte Buchstaben ausgelassen haben. I und J sind halt leicht einer mit dem anderen und beide mit 1 verwechselbar, speziell bei schlechten Ausdrucken; nur bei G fällt mir kein Grund ein.


    Natürlich gefällt mir Byte-Counter, Destination und Index gut, weil das ihre Funktion trefflich beschreibt. :) Ein Punkt mehr für die Truppe um Faggin, die die 8080-Mnemonics beim Z80 weg vom akademischen hin zum praktischen Einsatz geführt haben.


    MaV


    PS: Es scheint für mich ein Kniefall vor dem Z80-Team gewesen zu sein, als Intel dann dem 8086 auch Register gegeben hat, deren Bezeichnungen sich aus dem ersten Buchstaben erschließen lassen (AX - Akkumulator, BX - Basis-Register, CX - Count-Register, DX - Daten-Register).

    Gerne!


    Ich glaube, dass die Art von Menschen, die Prozessoren entwickeln, nicht so viel Wert auf gezielte Nomenklatur legen.
    A für Akkumulator ist naheliegend, bei HL hatten sie vielleicht auch noch and High/Low gedacht, SP für Stack Pointer und PC für Program Counter sind naheliegend.


    Darüberhinaus werden sie wohl eher in Reihenfolge des Alphabets gegangen sein, bzw. Lücken soweit möglich aufgefüllt haben.


    Also:
    A, B, C, D, E, F für Flag, G ausgelassen, H, L. Dann IX für IndeX und IY - also I plus den nächsten Buchstaben nach X im Alphabet - für das zweite Index-Register.


    Für W und Z würde ich annehmen, dass sie die letzten Buchstaben des Alphabets ins Auge gefasst haben. X und Y ist durch Verwechslung mit IX und IY ausgefallen, also blieben Z als letzten Buchstaben und W als nächstbesten davor übrig.


    MaV

    Quote

    Lassen sich diese Register mit Opcodes auslesen/beschreiben?


    Was heißt da oben im Text "forgotten"? Wer hat die vergessen?


    Nein, die lassen sich nicht auslesen, beschrieben werden sie indirekt, wenn du bestimmte Befehle ausführst.


    So etwa bei LD A,(adresse). Nach dem der Z80 den Opcode gelesen hat, "weiß" er, dass er eine Speicherstelle auslesen und den Inhalt in A ablegen soll. Die nächsten zwei Bytes des Befehls bilden diese Adresse.
    Der Z80 kann nun aber den Speicher nur byteweise lesen und benötigt zur Bildung dieser 16-Bit-Speicheradresse daher ein Register(-paar), wo diese Werte abgelegt werden können, bevor beide 8-Bit-Werte die Adresse bilden können, aus welcher der Wert für das A-Register gelesen werden soll.
    Dafür kommt kein vorhandenes Register in Frage, und der PC darf in dieser Zeit auch nicht geändert werden, sonst verändert er sich, bevor er das zweite Adressbyte lesen kann.


    Wo werden W und Z verwendet? Überall dort, wo eine Adresse gebildet werden muss, aber kein herkömmliches Registerpaar die Adresse bildet - wie etwa bei ld (hl), a. Wenn ich über die Befehlsliste drüberfliege, sehe ich da auf die Schnelle:


    ld (NN),dd
    ld dd,(NN)
    ld (NN),a
    ld a,(NN)
    out (N),a
    in a,(N)


    NN = 16-Bit-Adresse
    dd = HL, DE, BC, SP


    Zudem gehören dazu noch alle ret-Befehle (ret, ret c, reti, retn), alle call-Befehle, alle jp-Befehle außer wahrscheinlich jp (hl), vermutlich alle jr-Befehle und rst-Befehle sowie djnz.


    Wahrscheinlich habe den einen oder anderen Befehl übersehen.


    Im übrigen steht das in etwas ausführlicher Form in der "Programmierung des Z80" von Rodney Zaks. Der legt seinen Beispielen allerdings den 8080 zugrunde, was als Vorgänger zum Z80 zwar passt. Leider gibt es keine genaue vollständige interne Darstellung des Z80. Deswegen hoffe ich auf das Visual6502-Projekt, das ja auch den Z80 mal komplett entschlüsseln wird.


    "forgotten" steht hier nur dafür, dass diese Register für die Z80-Programmierung keine Rolle spielen und daher schnell vergessen wird, sie zu erwähnen.


    MaV

    Stimmt, die Gehäuse lösen sich auch mal auf. Das habe ich noch gar nicht bedacht, weil's für mich erstmal zeitlich weit entfernt liegt.


    Wenn man's genau nimmt, ist allerdings schon bald einiges verloren. Zu den Magnetbänder werden sich in bälde auch Disketten dazugesellen. Produziert werden manche Format schon längere Zeit nicht mehr.


    Und für die Chips sind Projekte wie http://visual6502.org/ unerlässlich.