ZCPR auf Kaypro II

  • Hallo wiedermal...


    Mein Lieblings-Baby, der Kaypro II, verfügt neu über eine gelungenen Ersatz des ConsoleCommandProcessors (CCP), genannt ZCPR, zu finden z.B. bei https://github.com/wwarthen/Ro…lob/master/Source/ZCPR-DJ.


    ZCPR hat interessante Befehlserweiterungen gegenüber dem Standard-CCP (Auszug aus dem DocFile):


    DIR - directory command enhanced to list optionally all user areas

    REN - standard rename command

    USER- move to new user number area on same drive

    SAVE- save specified number of TPA pages or records in a file

    TYPE- display a file on the console with optional page break pauses

    LIST- print command plus optional form feed insertion

    PAGE- send form feed to list device

    ERA - standard file erase command

    ERAQ- file erase with confirmation query at each file

    DFU - set default user number for .com search path

    BELL- send a bell character to the console

    SAK - pause until a key is struck on the console (Strike Any Key)

    SCL - toggle multiple commands per line (Single Command on a Line)

    GET - load a file into the TPA at any specified location

    JUMP- process command tail and execute program at specified address

    GO - process command tail and execute program loaded at 100H

    PEEK- display hexadecimal byte string starting with specified address

    POKE- load hexadecimal byte string starting with specified address

    BOOT- execute BIOS cold boot routine


    Und das ganze passt noch in 2kB! Es sind noch drei Bytes frei für Erweiterungen...


    Der LIST Befehl funktionierte nicht auf Anhieb. Anstelle des Textes kam für jedes Zeichen ein 0xC2 (gesehen auf einem Epson FX-80 im HEXdump Modus). Nach einigem Suchen war klar, warum:

    ZCPR sichert die Register vor dem BDOS Aufruf zur Zeichenausgabe mit EXX. Das BDOS selbst benutzt jedoch diesen Befehl auch, das gibt Müll...

    Abhilfe schaffte das Verwenden von PUSH/POP HL, DE, BC anstelle von EXX.


    Ich habe noch eine kleine Erweiterung eingebaut, CLS zum Löschen des Bildschirms.


    Die angehängte Datei lässt sich mit M80/L80 assemblieren/linken. Die Anleitung zum Erstellen von Boot-Diketten mit ZCPR ist im TXT File beschrieben.


    Viel Spass!

    Tony