Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » XMODEM PIO am Z1013 » Themenansicht

Autor Thread - Seiten: -1-
000
29.09.2023, 21:44 Uhr
Hobi



Ich hatte hin und wieder überlegt, wie man das Laden und Speichern beschleunigen kann. Im Endeffekt sind dann jedesmal eine Art Turbo Lader herausgekommen, die an den jeweiligen Rechner angepasst werden mussten. Letztendlich habe ich es aufgegeben eine generische Lösung über das Audio-Kabel zu bauen. Insbesondere, da beim KC85/4 die maximale Frequenz am Audio-Eingang stark begrenzt ist.

Die nächst beste Idee war ein USB zu TTL-UART Kabel zu verwenden und das UART Protokoll über die Z80-PIO zu implementieren.


Als Beispiel habe ich die freie PIO vom VDIP-Interface genommen. Letztendlich kann man es genauso über den User-Port oder die Load/Save Pins laufen lassen.

Nachdem das Senden und Empfangen geklappt hat, hatte ich dann noch das XMODEM-Protokoll dazugepackt und schon funktioniert der Dateiaustausch über ein Terminal-Programm vom PC.

Warum das? Ich brauche eine einigermassen schnelle Testumgebung, um Programme auf der Zielhardware zu testen. Schneller geht es mit einer EPROM-Emulation. Das 3-Draht Interface ist die einfachste Lösung.

Das beim Z1013-Monitor 2.02 noch 2KB ROM frei sind, hatte ich die Routinen in den Monitor mit integriert mit einen kleinen Gimmick. Beim Starten wird die Tastatur abgefragt. Wenn eine Taste gedrückt wurde, wird automatisch der Ladevorgang gestartet.

Die Programmentwicklung erledige ich mit dem SDCC und erzeuge eine .Z80 Datei. Diese kann man jetzt mit dem XMODEM Protokoll einfach rüberschieben.

Ursprünglich hatte ich noch ein Z80 nach Z1013-WAV implementiert, der aus dem Binärfile eine WAV Datei erstellt, die man mittels "play program.wav" einfach über das Audio Interface einladen konnte. Bei großen Programmen dauert das schon ein Weile.

Die Übertragungsrate ist 9600 Baud. Es ginge zwar auch schneller, aber damit hat man bei 2 MHz noch Puffer für eventuelle Interrupts. Bei 2 MHz hat man reichliche 208 Taktzyklen Zeit ein Bit zu lesen und bei 4 MHz bekommt man automatisch 19200 Baud, was auch schon recht schnell ist.

Jetzt wo es beim Z1013 funktioniert, könnte man das Laden auch beim KC87 implementieren oder das mit der SIO vom Druckermodul probieren und so noch schneller die Daten übertragen.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 29.09.2023 um 22:09 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
30.09.2023, 02:25 Uhr
ralle



Beim KC87 ist der BASIC-ROM abschaltbar. Damit stehen dir 8Kb ab C000h zur Verfügung.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
30.09.2023, 10:17 Uhr
Hobi



Falls jemand den Monitor 2.02 mit XMODEM ausprobieren will, sind hier die Einstellungen für die PIO.


RB2.02+XMODEM

Z1013_USB_DATA_A = 0x40
Z1013_USB_CTRL_A = 0x42

V24_RX = PA0
V24_TX = PA1

BAUDRATE = 9600

Beim Z1013-2020 gibt es noch ein kleines Problem mit dem RESET. Das Reset-Signal PIO bleibt etwa 250 ms bestehen, während die CPU aber schon aus dem Reset heraus ist und schon mal mit dem Monitorprogramm anfängt. Das hat zur Folge, dass die PIO nicht immer korrekt initialisiert wird. Als Workaround habe ich eine Warteroutine von 250 ms in den 2.02 Monitor eingebaut. Das merkt man beim Starten kaum.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 30.09.2023 um 10:19 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
30.09.2023, 10:25 Uhr
Hobi



Patch: F054 ED 5E 18 07 -> C3 00 F8 FF

Integration XMODEM in den Z1013 Monitor: Test ob Taste 'H' gedrückt ist. Falls ja, lade die Z80 Datei.


Quellcode:

PRST7           = 0x02
INKEY           = 0x04

SPAL0           = 0x00

IO_KBD          = 0x02
IO_SPAL         = 0x08

USRSK           = 0x0090 ; user stack top
SYSSK           = 0x00B0 ; system stack top
BWS             = 0xEC00
KD01            = 0xF058 ; command line prompt ? #
KD02            = 0xF05F ; command line prompt #
init            = 0xF800

init:
        im      2
        ld      hl,#BWS
        ld      (hl),#'H'
        ld      a,#SPAL0
        out     (IO_SPAL),a
        in      a,(IO_KBD)
        and     a,#0x0f
        cp      a,#0x0f
        jr      nz,key_pressed
        jp      KD02
key_pressed:
        ld      sp,#USRSK
        rst     0x20
        .db     PRST7
        .ascis  'xmodem-1k...\r'
        ; delay for Z1013-2020 ->250ms from here
        ; wait until reset signal at PIO goes H
        ld      bc,#0x0040
loop:   nop
        djnz    loop
        dec     c
        jr      nz,loop
        jp      z1013_xmodem
        ; no return rst38


--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 30.09.2023 um 10:44 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
30.09.2023, 13:00 Uhr
ralle



Vergiss nicht, das mitunter ein 4kb großer Brosig-Monitor mit verschiedenen Tastaturanpassungen werkelt. Der Moner SU kann auch in den ROM-Bereich hinter dem Monitor sein. Zudem kann auch bei originalen Monitor-ROM dieser der Tastatur wegen auf die 2. Hälfte umgeschaltet sein.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
30.09.2023, 13:09 Uhr
Bert



Cool!
So eine Funktion sollten alle Entwicklungssysteme haben.

Beim Mühlhausen KC ab CAOS 4.2 ist was Ähnliches eingebaut. Mit einem V.24-Modul kann man (z.B. von einem PC) mit ESC+'T' in den Speicher schreiben und mit 'ESC'+'U' das Programm ausführen.

Näheres ist im Handbuch unter dem Stichpunkt 'Duplexroutine' zu finden.


Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
30.09.2023, 13:24 Uhr
Hobi




Zitat:
So eine Funktion sollten alle Entwicklungssysteme haben.


...und mit RESET angestossen. Man könnte statt der Tastatur auch die CTS/RTS Pins nehmen und so erkennen ob ein Transfer anliegt.

Beim Z1013 RB-Monitor bin ich mir noch nicht ganz so sicher, wie ich es unterbringe. Eventuell werfe ich das HEADERSAVE raus.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 30.09.2023 um 13:25 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
30.09.2023, 16:31 Uhr
ralle



Es gibt noch etwa 12Kb ab C000h bis BWS, welche bei der 64kb-Version abgeschalten werden kann. Nutze ich beim BASIC-MODUL nach der Funkamateur. Der Nutzbare 1kb-Bereich des letzten EPROM ist nicht komplett beschrieben. Aber macht schon Spass, J C000h nach Starten des Z1013 einzugeben.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
09.10.2023, 20:06 Uhr
Hobi



Um es etwas zu unterstreichen, neben dem XMODEM Protokoll, habe ich ebenfalls eine V24 Sende- und Empfangsfunktion, möglichst portabel, geschrieben. Diese kann unabhängig von Datentransfer verwendet werden.

Die Takte sind genau ausgezählt, genau 208 Takte bei 2 MHz pro Bit. Egal welcher Pfad beim Senden oder Empfangen genommen wird, es wird immer nach genau 208 Takten das nächste Bit verarbeitet.

Falls jemand Interesse am source code oder als Z80-library hat, kann ich ihn per Email oder ggf später irgendwo öffentlich abspeichern.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 09.10.2023 um 20:08 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek