Moin zusammen,
hat vielleicht jemand das Source-Listing der MAT 85+ ?
Von der MAT 85 habe ich das Listing.
Gruss Olaf
Moin zusammen,
hat vielleicht jemand das Source-Listing der MAT 85+ ?
Von der MAT 85 habe ich das Listing.
Gruss Olaf
hat vielleicht jemand das Source-Listing der MAT 85+ ?
Hi Olaf,
da bin ich gerade dran, den ganzen Code zu Re-Assemblieren.
MAT85 ($0-$1FFF) und MAT85+ ($2000-$3FFF) sowie das MINI-DOS ($4000-$4FFF) bin ich zu einem großen Teil durch. Kämpfe gerade mit der SPS-Erweiterung (Kontaktplan), BFZ-Editor und der Integration des GAL-Programmierers in das MAT32k. Dauert aber vermutlich noch einige Zeit bis ich komplett fertig bin.
Moin Thilo,
ich habe ja schon vor 2 Jahren beim Mat 85 die Bildschirmausgabe und die Tastaturabfrage geändert,so dass er ohne SERIN und SEROUT läuft.
Ich habe stattdessen das Keyboard & Videointerface von Grant Searle angeschlossen.
Also zum besseren Verständnis:
Ich habe diese beiden Routinen geändert!
Läuft....
Aber der KMD+ Modus funktioniert nicht.
Es kommt zwar noch die Meldung KMD+ aber mehr nicht, kann aber noch in den normalen KMD zurückkehren.
Der funktioniert aber!
Deshalb wäre es schön, wenn Du mir das Listing dann mal zukommen lassen könntest.
Vielleicht hast Du ja auch eine Idee woran der fehler liegt.
Danke schonmal im Voraus.
Gruss Olaf
Hi Olaf,
ich werde mal versuchen das Phänomen nachzustellen. Bislang hatte ich ausschließlich über die serielle Schnittstelle der CPU (Videokarte 8.2) gearbeitet.
Im meiner "MFA-Jugend" hatte ich die beiden Seriell-In/Out-Vektoren $FC80/$FC83 auf eine angepasste serielle Kassetten-Schnittstellenkarte verbogen ($FC86/$FC89), um daran mein RS232-Terminalprogramm anzuschließen. Damals gab es aber noch kein MAT32k, somit war das für mich auch kein Problem und es funktionierte, vermeintlich alles (wie bei Dir aktuell auch, zumindestens wenn es MAT85 betrifft).
Aber eines habe ich mittlerweile immer wieder festgestellt: Die Routinen in MAT85+, SPS, Basic, Editor sind sehr eigenwillig programmiert, vor allem was den Umgang mit Systemroutinen angeht.
Ein kleines Beispiel wenn es z.B. um das Löschen des Bildschirminhalts geht (wird bei SPS und BASIC als erstes angesprungen):
;******************************************************************************
;* BCLEAR - Bildschirm loeschen
;*
;* Veraenderte Register
;* -
;******************************************************************************
BCLEAR:
L3FD6:
push psw ;L3fd6 f5
push d ;L3fd7 d5
push h ;L3fd8 e5
lhld M85RAM_FC84 ;L3fd9 2a 84 fc Vektor fuer SEROUT sichern
push h ;L3fdc e5
lxi h,SERO ;L3fdd 21 9f 08 kurzfristig den SEROUT-Vektor verbiegen
shld M85RAM_FC84 ;L3fe0 22 84 fc
call SERIT3b ;L3fe3 cd 90 08 Direkteinsprung in MAT85, Bildschirm loeschen
pop h ;L3fe6 e1
shld M85RAM_FC84 ;L3fe7 22 84 fc Vektor wiederherstellen
pop h ;L3fea e1
pop d ;L3feb d1
pop psw ;L3fec f1
ret ;L3fed c9
Display More
Auch viele andere Stellen habe ich bei meiner Arbeit gefunden, die "unschön" programmiert sind. Dies ist den offensichtlich verschiedenen Programmierern geschuldet, die die jeweiligen Teile des MAT85+-Systems erstellt und anschließend irgendwie zusammengefrickelt haben.
Im Code wurde dann auch gerne mal die serielle Schnittstelle (CAS-In/Out) mit $F0/$F1 und auch mal mit $FE/$FF angesprochen, um nur einen der vielen Fehler die ich gefunden habe, aufzuzählen.
Auch viele Direkteinsprünge in den MAT85-Code (keine Nutzung der Sprungtabelle des MAT85-Codes) können hier Dein geschildertes Problem verursachen. Denn dadurch werden vorher umgestellte In/Out-Vektoren umgangen bzw. nicht mehr berücksichtigt.
Ich werde die Tage mal Dein Problem nachstellen, eventuell finde ich ja den Fehler in den (verschiedensten) Routinen.
Wie hast Du denn eigentlich deine Ein-/Ausgabe geändert? Hast Du den In/Out-Vektor verbogen oder die Routinen an das Grant Searle -Modul angepasst?
Den Assembler-Code muss ich noch ein wenig aufräumen, denn hier sind noch viele Hilfs-Kommentare und Verweishinweise enthalten, die erst noch bereinigt werden müssen. Aber eines ist mit mittlerweile gelungen: Das MAT32k besteht nun aus MAT85, SP1, SPS, Kontaktplan, Basic, Editor incl. Hilfsmenu und dem GAL-Programmierer, sowie etlichen Anpassungen und Erweiterungen. Dadurch habe ich aber jetzt ein neues Problem bekommen. Freie Speicherplatz in dem 32k-Eprom: ein einziges Byte ...
Gruß
Thilo
Moin Thilo,
erstmal Danke für deine Nachricht.
Kennst du vielleicht den NKC von Rolf Dieter Kein?
Ich habe im Prinzip die CI-Routine und die CO-Routine von dessen Monitorprogramm angepasst.
Soll heißen, ich habe die seriellen Codes und RIM und SIM rausgeschmissen.
Freie Bytes hab ich mit NOP aufgefüllt, so dass die Länge von Serin und Serout gleich geblieben sind (Manchmal hat man auch Glück!).
Die geänderten Code´s kann ich Dir am Wochenende schicken.
Hier schon mal eine Rückansicht einer meiner Rechner mit LCD-Bildschirm.
Werde am Wochenende nochmal aktuelle Fotos machen.
Bis dahin
Viele Grüsse
Olaf
Moin Thilo,
hier sind mal die versprochenen Fotos u.a. mit dem geänderten Code!
Kann es sein, dass der KMD+ Modus nicht funktioniert weil ich erst ab 8000H RAM-Bereich habe?
Ich hatte noch gar nicht erwähnt, dass mein "MFA" auf dem Z80 läuft!
Gruss Olaf
Ich hatte noch gar nicht erwähnt, dass mein "MFA" auf dem Z80 läuft!
Dein MFA sieht auch nicht nach einem MFA aus, aber nicht weniger interessant.
Ist das selbst gemacht?
Und Original-MFA mit Z80 geht auch.
Ist das selbst gemacht?
er "schrob" doch, dass es eigentlich ein NKC ist
hier gibts Infos:
..und Platinen kriegt man von Creep ..sofern er noch welche hat
und Platinen kriegt man von Creep ..sofern er noch welche hat
Da ich seit 2017 (mit andern Mitstreitern) die Neuauflage des NKC gemacht hab, gab es bei mir die Platinen.
Inzwischen hab ich aber zum Glück den Großteil loswerden können und hab tatsächlich nicht mehr alle da. Bei Interesse unterstütze ich aber immer noch. Vor allem, wenn jemand selbst Platinen fertigen lassen will.
Gruß, Rene
Kann es sein, dass der KMD+ Modus nicht funktioniert weil ich erst ab 8000H RAM-Bereich habe?
Kann eigentlich nicht sein, denn erst das BASIC benötigt einen entsprechenden Speicherbereich.
Ich hatte noch gar nicht erwähnt, dass mein "MFA" auf dem Z80 läuft!
Eine nicht gerade unwichtige Information, denn das erklärt eventuell die mir aktuell nicht geläufigen Mnemonics aus Deinem Codefragment. Wäre es denkbar dass Du mal den Assembler-Code der beiden Routinen postest? Welche Hardware nutzt denn Deine Interfaceplatine, handelt es sich hier um die "Original NKC"-Interfacekarte mit dem 6551 UART-Chip?
Beim MFA genügt es, die IN/OUT-Vektoren auf die serielle Interfacekarte (8251-Chip) umzulegen und daran dann ein Terminal zu hängen (sofern man auf Load/Save verzichten kann).
Konkrete Änderungen dafür sind:
$015A: LXI H, $07EF ; Sprungvektor auf Routine CASI
$0160: LXI H, $0821 ; Sprungvektor auf Routine CASO
Natürlich müssen dann die CASINIT-Routinen weiterhin vorhanden sein (eventuell auf die Hardware angepasst).
Dadurch dass die SERI/SERO-Routinen im MFA-Code in Deinem Beispiel verändert wurden, passt vermutlich der Einsprung für das "zweckentfremdete" Bildschirmlöschen bei Adresse $0890 nicht mehr. Diese Routine wird leider aus einigen anderen Programmteilen auf dem SP1-Bereich angesprungen:
Dein Rechner sieht aber echt schick aus. Gibt es hier noch ein paar mehr Infos? Vor allem die Grafikkarte würde mich interessieren.
Moin Thilo,
das ist ja schon mal ne grosse Hilfe für mich.
Ich werde das Programm dahingehend nochmal ändern.
Danke für Deine Mühe!!!
Hier mal ein paar Erklärungen:
"Creep" habe ich 2019 bei einem NKC-Treffen kennengelernt und erfahren dass man günstig PCB's in der VR China fertigen lassen kann.
Ich habe dann mir ein eigenes Leiterplattenformat (100*75) festgelegt.
Warum ich das getan habe...????
Habe aber auch noch einen org. NKC-Nachbau mit LP's von "Creep"!
Von meinem Nachbau existieren Versionen mit Keyboard & CRT bzw. als Terminalvariante mit Sy 6551 und auch eine mit 16c550.
Eine Version hat noch eine Einzelschrittsteuerung erhalten und die letzte Projekt ist eine I2C-Schnittstelle mit PCF 8584.
Ein Vdip Modul mit USB-Stick zum Speichern und Laden ist auf 2 Rechnern drauf!
Es läuft auf alle Rechnern ein abgewandeltes und erweitertes NKC-Monitorprogramm!
Ausser auf dem einen wo ich mal dem MFA MAT85 testen wollte.
Die "Grafikkarte" ist von Grant Searle mit Atmega 328 nachgebaut.
Den Sourcecode der Routinen kann ich am Wochenende schicken.
Übrigens finde Ich das auch der NKC von Rolf Dieter Klein ein Microcomputer Für Ausbildung ist.
Muss ja nicht unbedingt ein 8085 sein.
Bis dahin.
Gruss Olaf
Hi Olaf,
das hört sich echt richtig interessant an, da wäre ich an weiteren Infos interessiert. Denn der NKC war damals auch einer meiner Favoriten.
Warum ich das getan habe...????
... die Frage stell ich mir auch ab und zu mal .. und die einzige Antwort die mir dann einfällt: weil's Spaß macht
LG
Thilo
Hallo Thilo,
schreib mir mal welche Infos du haben möchtest.
Kann ich Dir dann geben, so allgemein wüsste ich im Moment gar nicht wo ich anfangen sollte!
Wie kann ich denn meine Fotos hier im Museum veöffentlichen?
Wäre schonmal ein erster Schritt.
Gruss Olaf