Beiträge von t.schlumpf

    Ich habe kürzlich meinen Sony HitBit HB-75B MSX aus dem jahrelangen Tiefschlaf geweckt. Erstaunlicherweise funktionierte alles, bis auf 3 Tasten der Tastatur. Diese reagierten überhaupt nicht mehr. Ja, woher kriege ich denn solche Schalter...


    Es kann ja nicht schaden, mal einen davon auszulöten, obwohl die Hoffnung auf eine Reparatur gering ist,



    Aber siehe da, der Schalter lässt sich leicht öffnen.



    Nach dem Reinigen der Kontakte und um 90° versetztem Einsetzen des Kontaktgummis war der Kontaktwiderstand wieder bei 300 bis 50 Ohm, je nach Stärke des Tastendrucks. Zuvor lag er bei etwa 3k Ohm, was zur Erkennung viel zu hoch ist.


    Jetzt kann ich die 1, ESC und TAB wieder benutzen...

    Besten Dank für Eure Anworten


    daybyter: Das habe ich auch gefunden, es initialisiert aber nur den Videochip, es erscheint ein blinkender Cursor. Die Textausgabe erfolgt aber weiterhin über den 40-Zeichen Ausgang. Da müssten noch einige Vektoren umgebogen werden und das BIOS muss darüber informiert werden, wo das VRAM liegt und dass jetzt 80 Zeichen verfügbar sind...


    gpospi: Ich würde nur MSX-DOS und CP/M brauchen, mit Basic mach ich eh nichts. So wie ich aber irgendwo gelesen habe, soll MODE80.COM unter MSX-DOS laufen.


    Grüsse aus der Schweiz

    Tony

    Hallo Leute


    Ich suche für den Sony HB-75P MSX-1 Computer und die SVI-727 80-Zeichen-Cartridge das Treiberprogramm MODE80.COM. Gemäss verschiedenen Hinweisen aus dem Net müsste diese Cartridge nach Ausführen von MODE80 funktionieren, nur habe ich das Programm nirgends gefunden.


    Hat jemand dieses Programm für diese Cartridge oder gibt´s eine andere Möglichkeit, das Ding zum Laufen zu bringen?


    pasted-from-clipboard.jpg


    Schon mal besten Dank!

    Tony

    Schon wieder Z80-Assembler...


    Der MZ-80K von Sharp hat keine UART eingebaut, trotzdem wäre es schön, Daten und Programme auf einen anderen Rechner zu übertragen, für den Fall, dass Kassette oder der Recorder mal aussteigen sollten. Zudem eine interessante Herausforderung...


    Vor vielen Jahren habe ich eine I/O Erweiterung für den MZ-80K gebastelt (Schema im Anhang), leider auch ohne UART und ohne Interrupt-Möglichkeit. Nun habe ich versucht, diese UART im Polling per Software nachzubilden, was auch erfolgreich war. Diese Soft-Uart läuft mit 2400 bps sehr zuverlässig.


    Die Software habe ich mit dem ZEN Assembler auf dem Sharp erstellt (ich weiss, wäre auf dem PC mit Cross-Assembler wesentlich komfortabler). Als Gegenüber zum Sharp habe ich auf dem Kaypro II eine Software erstellt, die sowohl RAW Daten als auch Programmdateien senden und empfangen kann. Die Programmdateien sind im MZF Format, kompatibel zum MZf-Studio von Ulrich Keller (https://www.nachthacker.de/DownloadBereich.html) .


    Die Sourcen für Sharp und Kaypro sind im Anhang.



    Das Programm 'SERIAL' auf dem Sharp



    Und das Gegenüber auf dem Kaypro



    Der erforderliche Hardware-Zusatz



    Viel Spass!

    Tony

    Hallo Z80-Freaks


    Da ich den Z80 gerne in Assembler programmiere, habe ich ein EPROM für den PX-8 zu diesem Zweck erstellt.

    Enthalten sind folgende Programme:


    ZSM.COM - Ein Z80-Assembler, generiert Intel-HEX

    LOAD.COM - Generierung von ausführbaren Programmen aus HEX Dateien

    UNLOAD.COM - Das Umgekehrte von LOAD.COM

    VDE.COM - Ein recht komfortabler Editor, Wordstar-kompatibel

    - für mehr ist kein Platz im EPROM -


    Das EPROM-Image sowie die ZSM Doku sind im Anhang.


    Viel Spass!

    Tony


    PxAsm.zip

    Zsm.zip

    Auch (schon wieder) guten Morgen


    Es waren beide Batterien leer, der PX startete im Init-Modus.

    Der zweite meiner PX-8 startete nach zwei Monaten im Schrank normal auf, Konfiguration noch ok, einzig die RAMdisk war korrupt und musste neu formatiert werden (die Batterie in der RAMdisk ist allerdings ausgeschaltet weil defekt).

    Ich habe allerdings neue Akkus mit höherer Kapazität eingebaut.


    Tony

    Besten Dank für Eure Antworten, ihr habt Euch ja kräftig ins Zeug gelegt...

    Ich hab mir die Datenblätter auch zu Gemüte geführt. So wie ich das beurteilen kann, ist der Unterschied in der Select-Logik der Grund für das eingenartige Verhalten des PX8. Um dies eindeuting nachzuvollziehen, müsste man allerdings die Firmware des Slave-Prozessors 6303 kennen.

    Zudem hat der 6116 hat gegenüber dem 6117 einen wesentlich höheren Standby-Strom, was auch erklärt, warum die Batterie des PX-8 nach zwei Monaten leer war.


    Beste Grüsse

    Tony

    Ops, so ganz funktioniert hat´s nicht...


    Ein Warmstart war nicht mehr möglich, Das System-Menu funktionierte nur noch einmal nach einem Reset, die Kassette war nach einem Aus-Ein nicht mehr gemountet.

    Da muss also doch ein Unterschied zwischen 6116 und 6117 sein.


    Nach langem Suchen habe ich einen eBay-Lieferanten in den USA gefunden, der dieses RAM anbietet, nicht gerade günstig (25 US$), aber das ist mir der PX-8 wert.


    Mit diesem RAM funktioniert nun alles wie gewünscht.

    RoSchmi, danke für die Links, sieht interessant aus! Ich habe allerdings nur den EMUF ohne S, keine UART...

    Ich werde jedoch versuchen, die serielle Kommunikation zu Fuss zu basteln, für das Speichern auf Kassette hat´s ja auch funktioniert, die Vorgehensweise dürfte ziemlich gleich sein, Startbit, Datenbits, Stopbit... Die Bitrate wird nicht gerade üppig sein, aber für maximal 2k wird´s reichen.

    Hallo ihr Freaks


    Seit vielen Jahren liegt ein unbenutzter Z80-EMUF im Keller, gleich neben dem Christiani Mikroprozessor-Labor (das für meine Computer-Leidenschaft verantwortlich ist). Was haben die beiden gemeinsam? Den 31-poligen Stecker! Der EMUF hat ja weder Tastatur noch Anzeige, der SCMP aber schon. Wäre doch schön, wenn man diese auch für den EMUF brauchen könnte...


    Die Idee liess mich nicht mehr los, so enstand als erstes ein Adapter, der den EMUF mit dem Christiani verbindet, ohne irgendwelche Rauchzeichen zu geben.


             


    Soweit, sogut. Aber da funktioniert natülich noch nichts. Also muss noch die Software dazu her. Wiedermal so richtig Z80 Assembler programmieren, ein richtiges Vegnügen! Das Resultat ist angehängt, inklusive einer kurzen Beschreibung der Funktion des so entstandenen Monitors, der im Wesentlichen diese Funktionen bietet:

    • Speicheranzeige vor- und rückwärts
    • Address- und Dateneingabe
    • Speicherblock mit Konstante füllen
    • Speicherblock verschieben
    • Ein Breakpoint gleichzeitig
    • Anzeigen/Aendern aller Register nach Breakpoint
    • Anwenderprogramm starten / weiterfahren (nach Breakpoint)
    • Registerausdruck auf Christiani-Drucker
    • Ausdruck HEX Dump
    • Ausdruck von Text
    • Speichern auf Kassette (Interface-Karte von Christiani muss eingebaut sein)
    • Laden von Kassette an gespeicherte oder eingegebene Adresse
    • Recorder-Start/Stop via Relais auf der LED/Relais Karte von Christiani
    • Alle RST- und der NMI-Vektor laufen übers RAM, vom Anwenderprogramm änderbar.

    Der Drucker verwendet den SENSE-A-Eingang für den Handshake, somit ist SENSE-A bei angeschlossenem Drucker nicht mehr verfügbar. Deshalb habe ich einen Schalter in den Drucker eingebaut, der SENSE-A und DB7 unterbricht. So muss der Drucker nicht jedesmal abgestöpselt werden, wenn SENSE-A verwendet werden soll, zudem lässt er sich anhalten, falls er mal unkontrolliert loslaufen sollte.


            


    Und so sieht´s dann komplett aus



    Happy Hacking!

    Tony

    Wie sieht denn das aus?



    Dies sollte ein Listing im DDTZ sein, schwer lesbar. Bei genauerem Hingucken sieht man, dass die Leerzeichen (0x20) zum Teil als ´!´ (0x21) dargestellt werden. Unterschied? Bit0. Der Verdacht auf ein fehlerhaftes VRAM bestätigte sich durch Abkühlen mit Kältespray, danach funktionierte es wieder normal für einige Sekunden. Die Analyse des Memory-Map im Technical Manual des PX8 führte zum gleichen Ergebnis:



    Das RAM in der Mitte muss defekt sein. Ich habe dann versucht, mit einem 10k Widerstand die D0 Leitung einmal nach VCC, dann nach GND zu ziehen. Im ersten Fall nur noch '!', im zweiten nur Leerzeichen. Das RAM ist definitiv defekt. Nur, woher kriege ich ein 6117? Nirgends ein Datenblatt zu finden. Könnte ein 6116 auch gehen? Gemäss Schema ist das Pinout identisch.

    Bei Mouser ein 6116 bestellt und eingelötet...



    Gefällt schon besser, wieder ein Schätzchen, das funktioniert!

    Das Display des PX-8 war nur noch schwer lesbar, auch auf Maximalstellung des Kontrastreglers. Das LCD benötigt ca -20V Treiberspannung. Der Verdacht auf eine zu tiefe Spannung lag nahe. Und wirklich, da waren nur -10V vorhanden. Also, Schema konsultieren (das gab´s damals noch...)



    Der Kondensator 33u 25V im DC-DC Konverter (ohne RefDes im Schema) hatte grade mal noch 1.5n Kapazität. Nach Wechseln des Bösewichts stimmt die Spannung und das Display funktioniert wieder wie neu.

    Hallo Dieter


    Ich hab´s beim meinem ZX-80 so gelöst, dass ich das BAS-Signal vom Eingang des Modulators direkt auf den RF-Augang gelegt habe. Die RF Ankoppung (im Bild der stehende Widerstand) muss natürlich aufgetrennt werden. So steht am RF Ausgang BAS anstelle RF. Je nach Modulator und Eingansspannung braucht´s vielleicht noch einen Spannungsteiler.



    Die Bildqualität ist zudem viel besser als mit RF.

    Der ZX80 zeigt ja ein ziemlich unleserliches Bild, zudem sind TVs mit HF Eingang inzwischen rar geworden.

    Hier schaffen die folgenden Patches Abhilfe:


    1. Das Videosignal invertieren, weisse Schrift auf schwarzem Hintergrund. Dies ist auf der Print-Unterseite bereits vorgesehen.




    - Die Leiterbahn A -> C unterbrechen

    - A und B mit Brücke verbinden


    Noch (wesentlich) besser wird das Bild, wenn anstelle des HF Signals das BAS Signal verwendet wird. Auch hier ein sehr einfacher Patch im HF Modulator:



    - Den Widerstand an der Ausgangsbuchse abklemmen.

    - Das BAS-Signal direkt auf die Ausgangsbuchse führen. Eine Pegelanpassung ist nicht notwendig (kann aber je nach Monitor erfoderlich sein).



    Ist doch besser, nicht?


    Tony

    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

    Das Problem ist nun definitiv gelöst.

    Bei einem "speziellen" RAM defekt, der nur HIMEM betrifft, würde man auch dieselben Symptome sehen.

    Diddl, Du liegst richtig. In einem RAM-Sockel (an oberster Adresse, hier legt das Basic seine Strings ab) war eine Kontaktfeder so verbogen, dass er mit dem IC-Bein keinen Kontakt mehr hatte. Die IC-Beine etwas zusammengedrückt, alles läuft wie es sollte.


    Tony

    Das OSI Superboard II Model 600 liefert am Video-Ausgang ein NTSC 60Hz Signal. Damit können nicht alle Monitore umgehen:



    Die erste Zeile ist nur teilweise sichtbar und am linken Rand fehlen zwei Pixel. Der Monitor (ein FairTec) hat keine Einstellmöglichkeiten für Horizontal- oder Vertikal-Positionierung. Ich habe den Sourcecode des CegmonC1 so angepasst, dass er mit ACME assemblierbar ist und dass es etwas besser aussieht. Allerdings sind pro Zeile nur noch 23 anstelle von 24 Zeichen darstellbar. Aber damit lässt sich leben...



    Im Anhang ist der (teilweise) dokumentierte Sourcecode. Vielleicht hift dies jemandem mit dem gleichen Problem...

    Uebrigens, das OSI.COM, das im Source erwähnt ist, ist ein Turbo-Pascal Programm für den Kaypro II, mit dem ich Up- und Downloads von Hex (CP/M Xasm65), LOD und Basic Files durchführe. Bei Interesse einfach melden.


    Liebe Grüsse aus der Schweiz

    Tony

    Ich habe eine Lösung gefunden, obwohl das eigentliche Problem immer noch vorhanden ist:


    Bei der Abfrage der Memory-Size beim Basic-Kaltstart einen Wert ein wenig unterbalb des Maximums eingeben, dann läufts wie geschmiert.


    Bei 8k RAM (8192 Bytes) läufts bis 8179 (ergibt 7410 freie Bytes), bei 8180 nicht mehr. Am RAM kanns nicht liegen, der Test läuft erfolgreich. Es sieht doch eher nach einem Problem mit der Garbage-Collection aus. Nach längerer Laufzeit eines Programms mit viel Stringmanipulationen tritt der Fehler mit dieser Einstellung wieder auf.

    Mit 8100 habe ich den Fehler auch nach Stunden Laufzeit nicht mehr gesehen.


    Tony

    Liebe Tüftler und Bastler


    Ich habe da ein etwas seltsames Problem mit meinem OSI Superboard II, Modell 600. Nach einem Kaltstart, CLEAR oder RUN verhalten sich sämtliche Stringfunktionen eigenartig.

    Eine Stringzuweisung z.B. A$="OSI" wird mit OK quittiert, ein anschliessendes PRINT A$ liefert nur wirre Zeichen. Auch alle Funktionen wie LEFT$(), MID$(), CHR$() usw ergeben ausnahmslos ungültige Resultate.

    Erstaunlich ist, dass nach einer Stringzuweisung vom mehr als 10 Zeichen (A$="0123456789") plötzlich alles normal funktioniert, allerdings nur bis zum nächsten CLEAR oder RUN. Diese Zuweisung ist jedoch innerhalb eines Programms nicht wirksam. Um ein Programm mit besagten Funktionen laufen zu lassen, muss die 10-Zeichen-Zuweisung im Direktmodus erfolgen, gefolgt von einem GOTO <Programm-Start-Zeile>.


    Ich habe auch gelesen (https://www.osiweb.org/software.html#BASIC_ROMS) dass ein Bug in den ROMs vorhanden ist, der aber nur die Garbage Collection betrifft, dürfte für genanntes Problem nicht relevant sein (oder doch?).


    Ich habe alle BASIC ROMs ausgelesen und mit Images aus dem Netz verglichen, ohne Fehler. Ebenso war der RAM-Test (8k) erfolgreich.

    Ich verwende den CEGMON Monitor.


    Hat jemand eine Idee, woran dies liegen könnte?


    Schon mal vielen Dank

    Tony

    Kürzlich habe ich den Textas Instruments TM990/198 Einplatinenrechner auf dem Dachboden ausgegraben. Wie könnte es anders sein, nach 20 Jahren unbeachtet sein ging gar nichts mehr...

    Der Fehler war schnell gefunden, zwei der vier RAMS und dummerweise die an den unteren Adressen wurden erschreckend heiss. Ebay hilft weiter, die TMS4045 waren innert Wochenfrist da. Und siehe da, CPU ready !


    Standardmässig ist der Rechner mit dem Unibug Monitor bestückt, der zur Programmierung in TI9900 Assembler einlädt. Da mir diese Sprache nicht vertraut ist und gemäss Handbuch auch ein Basic verfügbar ist, habe ich die Images der ROMS U33 und U32 (angehängt) im Internet gefunden. Also nix wie los, ein 2532 und ein 2716 programmieren, und schon geht ... gar nichts..., ausser dass das 2716 sehr ins Schwitzen kommt.

    Intelligenterweise habe ich Handbuch und Schema erst jetzt genauer angeschaut und festgestellt, dass das 2716 kein 2716, sondern ein TMS2716 sein muss, ein Dreispannungstyp mit +5, -5 und +12V. Nur, wie programmiere ich die, ohne entsprechnenden Programmer?


    Ein Adapter ist die Lösung, wie hier gezeichnet:


    Nach ein wenig Kleinarbeit mit Lötkolben und Wickeldraht hat's dann so ausgesehen...



    ... und hat obendrein noch funktioniert.


    Da ich aber alles so original wie möglich möchte, meine Frage: Hat jemand von Euch die Möglichkeit, das TMS2716 zu programmieren? Wenn ja, würde ich gern eine Brieftaube mit einem solchen Baustein im Gepäck auf die Reise schicken...


    Schon mal besten Dank!

    Tony