LOADSAVE The loading and saving project ======================================= Copyright 1999/2002 Bodo Wenzel Email: bodowenzel@web.de Benutzung auf eigene Gefahr, viel Spass! Use at your own risc, have fun! (English text see below) ZX8*SAVE / ZX8*LOAD =================== Und nochmal Programme zur Verbindung von ZX80/ZX81 und PCs (bisher Intel-Kompatible unter Microsoft oder Linux und Atari STs). Es besitzt folgende Merkmale, die es von anderen abhebt: - reine Steuerung ueber Kommandozeilen, kein Aufblaehen durch Benutzeroberflaechen - als PC-Schnittstelle wird eine RS232 benutzt, daher keine Probleme mit verschiedenen Rechnertakten - auch .O und .P-Dateien, die zu gross sind, werden akzeptiert (und stillschweigend gekuerzt) - Fortschrittsindikator aehnlich wie bei Packern Benutzung ZX80LOAD / ZX81LOAD ("PROGRAM.P" sei die Datei) 1. LOAD "" am ZX starten 2. ZX81LOAD PROGRAMM.P am PC starten 3. warten, bis fertig Benutzung ZX80SAVE / ZX81SAVE ("PROGRAM.P" sei die Datei) 1. ZX81SAVE PROGRAMM.P am PC eintippen, aber nicht starten 2. SAVE "P" am ZX starten (Name ist egal) 3. PC starten 4. warten, bis fertig Kleiner Tip: bei aelteren DOS-PCs ist ein Software-FIFO wie z. B. BNU fuer ZX8*SAVE Pflicht! Es ist ein TSR-Programm (terminate and stay resident) und wird nur einmal vor allen Speicherungen aufgerufen. Natuerlich muessen die Pegel aneinander angepasst werden. Bei mir mit einem Selbstbau-FPGA-Zx reichte es, zum einen vom PC aus den TXD-Pegel durch einen Vorwiderstand und eine Zenerdiode begrenzt auf EAR zu fuehren und zum anderen den TV/TAPE-Pin ueber einen Schutzwiderstand auf RXD am PC zu setzen. Probleme treten hoechstens bei letzterem auf, dann lohnt sich ein Operationsverstaerker, der durch DTR und TXD seine positive und negative Betriebsspannung erhaelt. So kommen wir zum Schaltungsvorschlag am Textende. Fuer "normale" Zeddies habe ich eine Schaltung einwickelt, die in der beiliegenden GIF-Datei abgebildet ist. Sie funktioniert aber nur gut bei relativ stoerungsfreien Geraeten, ansonsten muss mit anderen Verstaerkern experimentiert werden. Kleine Tips zu BNU: =================== Dies ist eigentlich ein sogenannter FOSSIL-Treiber, der in der DOS-Welt bei der Datenfernuebertragung eingesetzt wird. Aber auch bei sonstigen seriellen Problemen kann er benutzt werden. Nach dem Start ohne alle Parameter ist der Treiber zwar geladen, aber noch nicht aktiv. Dazu wird das Programm nochmal aufgerufen, diesmal mit einem Parameter zum Einschalten der gewuenschten Schnittstelle. Dabei ist die anzugebende Nummer um 1 kleiner als die Schnittstellennummer (Rechner zaehlen nun mal ab 0 ;-) Also zum Laden: "BNU" Und zum Aktivieren, hier COM1: "BNU /I=0+" -------------------------------------------------------------- ZX8*SAVE / ZX8*LOAD =================== Another set of programs to connect ZX80/ZX81 and PCs (until now Intel compatibles running Microsoft or Linux and Atari STs). It has following features which make it different: - pure control per command line, no blow up because of user interfaces - the serial RS232 interface is used, therefore no problems caused by different PC clocks - .O and .P-files which are too big are accepted (and become silently shortened) - advance indicator similar to archivers Usage ZX80LOAD / ZX81LOAD ("PROGRAM.P" should be the file) 1. start LOAD "" at ZX 2. start ZX81LOAD PROGRAMM.P at PC 3. wait until ready Usage ZX80SAVE / ZX81SAVE ("PROGRAM.P" should be the file) 1. type ZX81SAVE PROGRAMM.P at PC, but don't start 2. start SAVE "P" at ZX (name doesn't matter) 3. start PC 4. wait until ready Hint: with elder DOS PCs a software FIFO like BNU is obligatory for ZX8*SAVE! It is a TSR (terminate and stay resident) program and started once before all saving. Of course the levels had to be adapted. With my system (a selfmade FPGA ZX) it was sufficient first to limit the TXD level out of the PC by a series resistor and a zener diode connecting EAR and second to lead the TV/TAPE pin by a protective resistor to RXD at the PC. Problem appear rarely at the latter; then a operational amplifier is useful which is fed by DTR and TXD for positive and negative supply. So we get the drawing suggestion at the end of this text. For "normal" Zeddies I have developed a circuitry which is shown in the attached GIF file. It works well with noiseless machines, otherwise some experiments with other amplifiers are necessary. Hints for BNU: ============== This is actually a so-called FOSSIL driver which is used for mailboxing etc. But it can be used to solve other problems with the serial interfaces. After starting without any parameters the driver is loaded but not activated. To do so the program is started again, this time with a parameter to activate the communication channel. The number to type is 1 less than the number of the COM port (PCs count starting at 0 ;-) To load the driver: "BNU" And to activate COM1 for example: "BNU /I=0+" -------------------------------------------------------------- Primitive: TV/TAPE O-----[10K]-----O RXD = 2(DB9) / 3(DB25) EAR O---*--[33K]----O TXD = 3(DB9) / 2(DB25) | +-Z<|-+ 4V7 | GND O---------*-----O GND = 5(DB9) / 7(DB25) Simple: +---[100K]--*-----O DTR = 4(DB9) / 20(DB25) | | | |\| 741 TV/TAPE O-----|--[10K]--|+\ (MIC) | | >----O RXD = 2(DB9) / 3(DB25) *---------|-/ | DIODE |/| +--|>|--+ | | | EAR O---*--[33K]--|---*-----O TXD = 3(DB9) / 2(DB25) | | +-Z<|-+ | 4V7 | | GND O---------*---*---------O GND = 5(DB9) / 7(DB25) Good: (loadsave.gif) --------------------------------------------------------------