gpospi, danke Dir.
Das hinein-POKEn dürfte schon klappen, nur nützt das nicht viel. Ich möchte GEN80 und den PMON im 80-Zeichen-Modus betreiben, PMON unterstützt nur diesen.
Ich habe NYYRIKKI angeschrieben, mal sehen...
Nochmals Danke
Tony
gpospi, danke Dir.
Das hinein-POKEn dürfte schon klappen, nur nützt das nicht viel. Ich möchte GEN80 und den PMON im 80-Zeichen-Modus betreiben, PMON unterstützt nur diesen.
Ich habe NYYRIKKI angeschrieben, mal sehen...
Nochmals Danke
Tony
Hallo MarkL
Danke für den Tip, das Produkt kenne ich (bisher) nicht. Werde mal bei Mouser suchen.
lg
Tony
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?
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
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
Ist ja super, vielen Dank!
Werde nun versuchen, den Unterschied herauszufinden...
Liebe 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:
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!
Ist doch trotzdem schade. Hast Du das Signal am Ausgang der Treiber mal angeschaut? Hier müsste das Oszillatorsignal anliegen. Welche Spannung misst Du an VLD?
Lg Tony
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.
Hallo Jan
Der Apple2-IO-RPI würde mich interessieren, Ich nehme an, er funktioniert auch auf dem Apple ][+.
Kannst Du mich zur Käuferliste hinzufügen?
Vielen Dank und bis bald
Tony
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
Hallo Diddl
Danke für den Tip mit dem RAM. Ich werde ein Assembler-Programm basteln, mit dem ich auch normalerweise von Basic belegte Seicherbereiche testen kann. Viellecht gibt das neue Erkenntnisse.
Liebe Grüsse
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