MFA 2K Monitor

  • Ich habe das mal abgespalten, weil es sonst das CP/M Thema ggf. durcheinander bringt.


    Hier: bei den Downloads: http://deramp.com/downloads/mfa_computer/

    ist der 2K Prom Monitor.


    Da werden 2 serielle Schnittstellen angesprochen:


    Warum?? Eine sollte doch reichen - oder übersehe ich da etwas?


    Ausgegeben wird aber nur an 1:



    BTW: Das PRN File stimmt irgendwie so nicht mit dem ASM überein - das fehlen obige Defines SIO* ?


    Bin da noch ganz am Anfang und Laie! Evtl. möchte ich mit dem 2K Monitor und einer seriellen Schnittstelle dann etwas rumspielen ;)

    TinyBasic sollte dann evtl. auch damit gehen (in den 2K Moni integrieren). (Dann wohl eher 4k-Moni ;) ).


    Ich nutze übrigens sehr gerne den Arnold Assembler - kennt viele CPU's und läuft unter Linux/Mac OSX/Win$


    Peter

    github.com/petersieg

  • Hallo Peter,

    warte mal heute noch ab, Mike wird im Laufe des Tages die aktuelle Version einstellen, die das Logo integriert hat. Ich denke, dass dann alle Dateiversionen auch synchron sind.

    Ansonsten lässt sich das .ASM-File ohne Probleme mit dem ASM oder LASM-Assembler übersetzen.


    Die zweite serielle Schnittstelle ermöglicht es, die Konsole auf der 1. zu haben und und über die 2. z.B. mit dem LOADHEX-Befehl Dateien einzulesen.


    Gruß

    Robert


    P.S. Ich habe auch schon dran gedacht, das Tiny-Basic zu integrieren, oder lieber noch ein etwas komfortableres. Da würde ich dann gerne einen Befehl "GOCPM" a la C128 integrieren :)

    NCR DMV/Olivetti M20/ITT 3030/DEC Rainbow 100/Siemens PC-D/OlyPeople/MFA 8085/TA Alphatronic

  • Joh. Mangels passender HW sind das vorerst nur Trockenübungen. Loadhex sollte besser keine 2te Schnittstelle benötigen. Das müsste eigentlich auch über die Konsole gehen.


    Ja. Das ist der Link zum AS - Arnold Assembler.


    Peter

    github.com/petersieg

  • Habe mal die aktuelle Version gezogen und mal mit AS versucht - ;)

    Springkonstanten müssen bei AS in "" sein und nicht ' '.

    Bis auf 2 Fehler bin ich durch. Fehler:


    Code
    > > > mfamon.asm(266):7: Fehler: Klammerfehler
    266/    FA49 :                     	cpi	(BASEADR shr 8) and 0F8h

    --

    Welchen Assembler hat er verwendet?

    --

    Fragen:

    Im Source steht, soll an Adresse 0 beginnen und sich dann nach F800h kopieren.

    Beginnt aber nicht bei 0, sondern bei F7EH?


    Peter

    github.com/petersieg

  • Hallo Peter,

    sowohl ASM als auch der LASM aus der Kermit-Distribution funktionieren.


    Bei der Adresse ... meinst Du F7EAH (bei Dir fehlt das A)?


    Das ist die Basisadresse des Monitors F800 abzüglich der 22 Bytes Kopierroutine.


    Von dort aus wird der reine Monitorcode dann ab F800 abgelegt und das ROM abgeschaltet (ausgeblendet zugunsten RAM).


    Gruß

    Robert

    NCR DMV/Olivetti M20/ITT 3030/DEC Rainbow 100/Siemens PC-D/OlyPeople/MFA 8085/TA Alphatronic

  • Ja. Aber nach Reset etc. Beginnt der 8085 ab 0. Das verstehe ich nicht. Die Routine müsste doch ab 0 starten..?


    Hast du mal einen Link zum Kernit Assembler?


    Wobei sich diese beiden ‚Fehler‘ sicher auch noch lösen lassen werden.


    Peter

    github.com/petersieg

  • Wenn da keine Sprünge auf absolute Adressen F7EA... drin sind, kann das klappen - sollte man aber so nicht tun.

    Wenn etwas ab 0 losgehen soll, sollte es im Code eben auch da losgehen..


    Arbeitet ihr unter CP/M mit dem Assembler..?


    Na ja.. hier kann ich sowieso dann erst mit serieller Schnittstelle weiter machen :)


    Peter

    github.com/petersieg

  • Eventuell tut der Assembler das was Du willst


    http://john.ccac.rwth-aachen.de:8000/as/download.html

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • uih... mein Fehler, sorry... hab ich irgendwie überlesen.

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • Inzwischen läuft der asm ohne Fehler nach Pass 2 durch.

    IN,OUT,RET,JMP Symbole sind nicht definiert (=Opcodes) -> durch _IN,_OUT,_RET,_JMP mit den equ <opcodes> ersetzt.

    ABER: Da gibts noch mehr Dinge, die der Kermit asm wohl selbst sonst definiert?:







    ENDADDR und STACK sind nirgendwo definiert? (Oder ich bin heute zu Müde ;)


    Daher weichen die BIN Dateien voneinander ab. So wird das nichts..


    Außerdem wäre eine Lizenzangabe nach wie vor sinnvoll.


    Peter

    github.com/petersieg

  • Hallo Peter, ENDADDR und STACK sind am Ende der Monitor-Source definiert. Wie das mit "equ $" im 8080-Assembler funktioniert, kann ich Dir leider nicht sagen.


    Der ursprüngliche Assembler ist ASM, wie er bei CP/M regulär dabei ist. LASM ist beim Kermit-Dateiübertragungsprogramm dabei. Ich konnte bislang keinen Unterschied bei der Kompatibilität feststellen, der Vorteil ist, dass er bessere Statusmeldungen als ASM hat.


    Wenn ich mich recht entsinne, hat das mit Kermit verteilte MLOAD gegenüber dem Standard-Programm LOAD den Vorteil, dass es mit anderen Ladeadressen als 0x100 besser umgehen kann.


    Zur Lizenz kann ich auch nichts sagen.


    Gruß

    Robert

    NCR DMV/Olivetti M20/ITT 3030/DEC Rainbow 100/Siemens PC-D/OlyPeople/MFA 8085/TA Alphatronic

    • Offizieller Beitrag

    Wie das mit "equ $" im 8080-Assembler funktioniert

    Das $ entspricht nur dem aktuellen ProgramCounter.

    Mit

    bla equ $

    weisst du dem Label bla den aktuellen PC zu.

    Sehr gern angewnadt wie bei ENDADDR und STACK um nicht selber rechnen zu muessen. Das ist bei Programm Aenderungen sehr nervig und fehleranfaellig.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Ja. Jaa..

    Das ist mal wieder ein eindeutiger Fall von Problem sitzt vor dem Computer :( ENDADDR+STACK hatte er ja auch nicht angemeckert - nur andere Adressen genommen.

    Ich hatte ein BIN File identisch zum original erwartet - wäre auch ok - wenn, ja wenn ich nicht vorher die Meldungen verändert gehabt hätte und da die Klammern rausgenommen hätte.. :(

    (Da sonst Klammerfehler kam) - Das mit dem Klammerfehler(n) muss ich auch noch klären/bereinigen mind. an den beiden oben genannten Stellen.

    (Da ist temp. ein db xx,xx Ersatz drin)


    Also hier ein ZIP, für wen es interessiert, mit AS asm Source, Listig und BIN - völlig ungetestet! (Da noch keine Serielle-IF vorhanden).


    Ist für mich sowieso eher Zeitvertreib aktuell und mal sehen ob das klappt..


    Peter