Robotrontechnik-Forum

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

Robotrontechnik-Forum » Flohmarkt » Z80 SIO V24 Schnittstellen Testroutinen » Themenansicht

Autor Thread - Seiten: -1-
000
15.01.2023, 20:26 Uhr
wpwsaw
Default Group and Edit


Hallo,

ich mache mal ein neues Thema auf.

Im Zusammenhang mit meinem MPC4 habe ich immer noch keine brauchbare Möglichkeit die Schnittstellen zu testen zu denen ich bis her keine Anwendungen gefunden habe. X4.1 und X5.2 sind für Drucker und dafür existieren entsprechende Programme.

Für die X5.1 und X4.2 habe ich kleine Programmchen angefangen. Da die X5.1 nur mit dem XON/OFF Protokoll arbeitet habe ein paar Probleme damit wie es am besten wäre.

hat jemand Quelltexte für die Initialisierung der SIO, die Nutzung eines FIFO und für die I/O Routinen ?


Bei anderen Rechnern habe ich TLC genutzt. Leider klappt immer das noch nicht mit der Einstellung der Übertragungsraten für den MPC4. Kai hat schon sehr viel Arbeit und Zeit daran gesetzt um TLC für den MPC durch patchen erst einmal Läufähig zu bekommen.

Hat vielleicht jemand den Quelltext von der TLC-8-bit Version?

Ein funktionierendes Terminalprogramm wäre natürlich auch eine alternative zu richtigen Prüf und Testprogrammen

vielleicht geistert ja irgendwo etwas herum das man anpassen kann.

gruß
wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP

Dieser Beitrag wurde am 15.01.2023 um 20:27 Uhr von wpwsaw editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
18.01.2023, 10:31 Uhr
wpwsaw
Default Group and Edit


Moin,

ich suche immer noch etwas Unterstützung für die Initialisierung und den Handlungsablauf einer Z80 SIO für den XON/OFF Betrieb mit FIFO unter CP/M


Hat niemand Quelltexte für so einen Fall liegen?

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
18.01.2023, 19:36 Uhr
Bert



Da die Datenflusssteuerung rein in Software gemacht wird, ändert sich m.E. nichts an der Initialisierung der SIO.

Solange Du nicht über die CP/M-BIOS-Funktionen LIST/PUNCH/READER gehen willst, oder CP/M anderweitig auf die SIO zugreift, brauchst Du auch auf CP/M keine Rücksicht zu nehmen.

Wenn ich mir das hier so anschaue:
https://de.wikipedia.org/wiki/Datenflusssteuerung#Software-Flusssteuerung,_Software-Handshake,_Software-Protokoll_oder_X-ON/X-OFF
muß ungefähr Folgendes passieren:

Initalisierung:
- SIO initialisieren
- Empfangspuffer löschen (E-Puffer)
- Sendepuffer löschen (S-Puffer)
- Senden freigeben
- ggf. der Gegenstelle schon mal ein XON schicken


Transferroutine:
- prüfen, ob ein Zeichen gekommen ist
- wenn das Zeichen XON oder XOFF ist --> Sendefreigabe anpassen
- sonst schauen, ob im E-Puffer Platz ist
- wenn ja, Zeichen eintragen und prüfen, ob der Füllstand jetzt über 80% liegt, ggf. vorne in S-Puffer XOFF einfügen
- wenn nein, ist Empfangspuffer voll --> Datenverlust
- dann prüfen ob im S-Puffer was drin ist und gesendet werden kann (SIO frei, Sendefreigabe erteilt)
- ein XOFF darf auch ohne Sendefreigabe rausgeschickt werden

Dein eigentliches Programm greift nur über die Lese- bzw. Schreibroutinen auf die Puffer zu:

Leseroutine:
- ggf. Zeichen aus E-Puffer auslesen
- wenn Füllstand unter 20% fällt, dann im S-Puffer XON einfügen

Schreibroutine:
- wenn Platz im S-Puffer ist, Zeichen eintragen


Wenn beim Senden nix verloren gehen soll, muß das Programm ggf. warten, bis wieder Platz im S-Puffer ist. Wenn mehr ausgegeben (oder empfangen) werden soll, als die Transferrate und die Verarbeitungszeit zuläßt, kommt es irgendwann zu Datenverlust. Ein Puffer kann nur die 'Spitzen' abfangen.
Die Transferroutine sollte man nicht häufiger auzurufen, als der Transfer für ein Byte dauert. Bei 9600 bps reicht ein Aufruf pro Millisekunde. Bei 2400 bps kann man die Routine alle 4 ms aufrufen.
Die Steuerzeichen für XON/XOFF stehen bei Softwarehandshake natürlich nicht mehr für die Datenübertragung zur Verfügung.

Grüße,
Bert

P.S.: Hier hat jemand einen Vorschlag in C vorgestellt:
https://www.mikrocontroller.net/topic/67549
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
18.01.2023, 21:12 Uhr
wpwsaw
Default Group and Edit


Danke für die Beschreibung. Werde ich morgen mal versuchen ob ich das hin bekomme. Angefangen habe ich ja schon, aber ohne FIFO

Danke Bert

Gruß
wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
18.01.2023, 21:38 Uhr
susowa




Quellcode:

GTCTC:  DB    47H,6
GTSIO:  DB    4,4DH    ;*16/2STP/PAR u
        DB    3,41H    ;REC.on/7 BIT
        DB    5,2AH    ;TRA.on/7 BIT
        DB    11H,18H  ;IM3
        DB    0        ;POINTER 0




Das sind die Initialisierungstabellen (ohne INT-Vektoren) für das K6405 in UNIPIC. Da wird das M003 mit DC1/DC3-Handshake benutzt.
Die Initialisierung findet man im MAIMEN Modul und die INT-Routinen im MAIN Teil. Ist aber nicht wie üblich zu lesen, da 2 M003 verwendet werden können und die Module offline verwendet werden.

MfG susowa

Dieser Beitrag wurde am 18.01.2023 um 21:42 Uhr von susowa editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Flohmarkt ]  



Robotrontechnik-Forum

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