OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 14:54

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 47 ]  Přejít na stránku 1, 2, 3, 4  Další
Autor Zpráva
PříspěvekNapsal: 28.11.2020, 10:36 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
PMD-85 od verze 2 má v MONITORu na adrese 816Eh integrován mód terminál. V editačním režimu se spouští stiskem kláves Shift + CD. V tomto režimu je zajímavé to, že mimo běžného příjmu a vysílání zobrazitelných ASCII znaků lze prostřednictvím přijatých znaků vykonávat určité funkce.

mimo jiné:

řídicí kód 04h = načtení 128 následujících binárních bajtů ze sériové linky a uložení do RAM v PMD-85
řídicí kód 05h = skok na dodanou adresu v paměti PMD-85

Moje představa je taková, že na PMD-85 aktivuji mód terminál a na PC spustím program, který například intelhex nebo binární soubor pošle po částech do PMD-85 pomocí sériové linky. Může zaslat nejprve tisknutelné znaky, čímž se na obrazovce PMD-85 objeví jméno programu a jeho data, pak proběhne přenos vlastních dat a automatické spuštění programu. Při 57600 76800Bd by probíhal přenos dat rychlostí něco málo pod 5 6,5kB/sec. Obvod 8251 jede v režimu převzorkování x16 někde do 300kHz, takže ten by to měl zvládnout.

Hardware kabelu by neměl být problém. Už jsem kdysi zkoušel výstupním budičem sériového portu budit přímo optočlen v PMD-85 bez jakéhokoliv dalšího napájení nebo pomocných obvodů. Jen jsem tehdy jel na 19200Bd.

Ale teď na straně PC: Jednak je třeba mít na PC fyzický UART nebo USB náhražku, jednak je třeba napsat program pro Win7/10, který kulturně obslouží ten UART na úrovni dostupných služeb z API. Nehlásí se někdo?


Naposledy upravil Libor L.A. dne 28.11.2020, 13:21, celkově upraveno 1

Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 12:21 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Jo PMD85-2 a a dále se plánovalo i jako inteligentní terminál pokut se nepletu a pro tam jsou ty funkce. Blbé na tom je to, že musí být podpora na protistraně.

Pokut vezmu jak je to na SAPI-1 tak u ZPS-2 jde po pár úkonech nahrát/uložit přímo INTELHEX po RS232C (obsluha je stejná jak s kazetou aneb došlo jen k přesměrování). Pokut jde o CP/M na SAPI-1 tak Jirka Bíba napsal dva programy DOPC a DOCPM které přenášejí data pomoci protokolu XMODEM. První verzi měl pro DSM-1/2 ale udělal i jiné modifikace které chodí i na DSP-1 tj. 8251A to „A“ je nutné aneb se používají i řídící signály. Cele toto řešení má výhodu v tom že na protistraně stačí terminálový program.

Pokut chceš přenášet data s násobkem hodin x1 tak to nepojede spolehlivě aneb ty hodiny x16 nebo x64 jsou proto, aby se synchronizovalo vzorkování dat na cca prostředek přenášených bytů. Aneb po příchodu START bitu se odpočítá polovina pulzu hodin čímž se vzorkovaná dat za synchronizují s přesností 1/16 nebo 1/64. Je to proto, že přijímací a vysílací hodiny jedou asynchronně. Bavím se o asynchronním přenosu tj. UART.

V synchronním režimu se používají hodiny x1 a 8251 by měla umět něco jako BI-SINC jenže kde chceš sehnat protistranu, co bude umět synchronní přenos, když máš problém s USB převodníky aby uměli pořádně RS232C.

Ano na C2717 „Zbrojováček“ se v síti používá asynchronní přenos s hodinami x1 jenže ten kdo vysílá tak vysílá i hodiny takže všechny přijímače mají synchronní hodiny.

MHB1012 má oficiálně hodiny max. 300KHz ale jdou vybrat kusy, co snesou i cca 600KHz takže se dá spolehlivé přenášet data při 38400 BAUD. Ale i těch 19200 BAUD je hezké aneb kolik dat se bude přenášet aneb necelé 2KB za sekundu je docela slušné.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 12:54 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Ale ano, já počítám s asynchronním režimem se vzorkováním x16. PMD-85 po startu terminálu nastaví parametry: asynchronní režim, START+8DATA+2STOP, bez parity, vzorkování x16, 75852Bd (1,5% odchylka od 76800Bd), bez handshake. A čeká na příjem dat sériovým kanálem.

Na straně PMD-85 je vše připraveno. Softwarově i hardwarově. Stačí jen dodat sériová data ve správném formátu. A na to je zapotřebí napsat "terminál" pro Win7/10. To je ten problém.

Mohl bych napsat nějaký konvertor, který BIN soubor pro PMD-85 proloží řídicími kódy a výsledný soubor pošlu z PC do PMD-85 nějakým standardním terminálem. Některé terminály mi však na PC nejedou, neumí 76800Bd, nebo tam je jiný problém. A volat API pod Win7/10 prozatím neumím, či spíše jsem to ještě nikdy nedělal. Takže se budu muset naučit a napsat jednoduchý konzolový program, který BIN data z kompilace pro PMD-85 pošle na sériový port ve vhodném datovém formátu.


DOPLNĚNO: Nojo, hrome, 75852Bdx16 = moc. Čtyřikrát více než těch 300kHz garantovaných obvodem 8251. No nevadí, snížíme rychlost na 19200. To jsem v minulosti provozoval, to jede. I tak je to mnohem více, než těch 1200Bd u MGF kazety. Ostatně u těch 76kBd jsem měl stejně obavy, zda budiče v COM portu PC budou natolik silné, aby budily přímo optočlen.


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 13:40 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Tak to jsem špatně pochopil, aneb jaksi si tam protiřečíš, tj. pokut MHB8251 snese hodiny pro přenos max. 300KHz a vzorkovat se bude x16 tak je to max. 19200 BAUD. Pro 76800 BAUD by při vzorkování x16 museli být ty hodiny 1.2288MHz což je 4x víc než 300KHz. Podle katalogu pro MHB8251A jsou max. hodiny pro x1 64KHz, x16 310KHz a pro x64 615KHz. Pokut máš ověřeno že MHB8251 snese bez problému hodiny až 1,3MHz pri x16 tak proč ne, aneb jsem reagoval na větu.

Libor L.A. píše:
Obvod 8251 jede v režimu převzorkování x16 někde do 300kHz, takže ten by to měl zvládnout.


To že půjdou některé MHB8251 honit na dvojnásobku než co je v katalogu bych věřil, ale čtyř násobek se mi moc nezdá.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 13:55 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Jasně, už jsem na to taky přišel, že to pojede max. do 19200Bd.

Teď jsem pochopil, že autor MONITORu nastavil ve skutečnosti přenosovou rychlost 4800Bd při vzorkování x16. No nevadí, to je dílčí problém, navíc snadno řešitelný a vlastně již vyřešený. Před spuštěním terminálu na PMD-85 je nutno zadat SUB C07C 07 00. Hodiny by se měly nastavit na 16x19200Hz, přesně to bude 19504Bd. Odchylka od 19200Bd činí 1,6%, což by mělo být pro sériový přenos ještě stravitelné.


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 14:19 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Tak mě napadlo, že by bylo dobré vyhrabat ten cca 20 let starý program pro download dat z PC do PMD-85. Viz příloha. To jsem nevěděl o funkcích terminálu, takže to bylo řešeno tak jak bylo. No, ostuda, ale jelo to... A jelo to jednoduchým kabelem (jeden pár) přímo z budiče RS232/TxD na optočlen v PMD-85.


Přílohy:
DownloadPMD85.jpg
DownloadPMD85.jpg [ 184.53 KiB | Zobrazeno 13003 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 14:40 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Libor L.A. píše:
Teď jsem pochopil, že autor MONITORu nastavil ve skutečnosti přenosovou rychlost 4800Bd při vzorkování x16. No nevadí, to je dílčí problém, navíc snadno řešitelný a vlastně již vyřešený. Před spuštěním terminálu na PMD-85 je nutno zadat SUB C07C 07 00.
Nebolo by jednoduchsie najprv poslat prvych 128 bajtov defaultnou rychlostou 4800 Bd a spustit ich ? Tento 128 bajtovy program na PMD85 ponastavuje vsetko co treba (kludne aj 115200 Bd ak je to mozne) a cely nasledny prenos uz nebude zavisly na terminali ale bude uplne v rezii programov na PMD a PC. Uzivatel si nemusi pametat ziadne prikazy, nemusi nic nastavovat, iba PMD a PC prepoji kablom, na PMD spusti terminal klavesami Shift + CD, na PC spusti program na poslanie dat a vsetko ostatne sa urobi automaticky.


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 14:49 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Busy píše:
Nebolo by jednoduchsie najprv poslat prvych 128 bajtov defaultnou rychlostou 4800 Bd a spustit ich ? Tento 128 bajtovy program na PMD85 ponastavuje vsetko co treba (kludne aj 115200 Bd ak je to mozne) a cely nasledny prenos uz nebude zavisly na terminali ale bude uplne v rezii programov na PMD a PC. Uzivatel si nemusi pametat ziadne prikazy, nemusi nic nastavovat, iba PMD a PC prepoji kablom, na PMD spusti terminal klavesami Shift + CD, na PC spusti program na poslanie dat a vsetko ostatne sa urobi automaticky.


Nojo, ale kdo přepne vysílací rychlost na straně PC po natažení zavaděče z 4800 na 19200Bd? A natahovat celý soubor rychlostí 4800Bd už zase není taková výhra. Já bych si stejně při vypalování nového 8kB BIOSu pro PMD-85 nastavil default 19200Bd. Ale je pravda, že jsem taky uvažoval o 128B dlouhém zavaděči, který by v PMD-85 začínal na adrese FFF0h a který by řešil nějaké ty datové záplaty.


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 15:11 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Libor L.A. píše:
Busy píše:
Nebolo by jednoduchsie najprv poslat prvych 128 bajtov defaultnou rychlostou 4800 Bd a spustit ich ? Tento 128 bajtovy program na PMD85 ponastavuje vsetko co treba (kludne aj 115200 Bd ak je to mozne) a cely nasledny prenos uz nebude zavisly na terminali ale bude uplne v rezii programov na PMD a PC. Uzivatel si nemusi pametat ziadne prikazy, nemusi nic nastavovat, iba PMD a PC prepoji kablom, na PMD spusti terminal klavesami Shift + CD, na PC spusti program na poslanie dat a vsetko ostatne sa urobi automaticky.
Nojo, ale kdo přepne vysílací rychlost na straně PC po natažení zavaděče z 4800 na 19200Bd?
No ved ta aplikacia beziaca na PC. Posle 128 bajtov a spusti ich pri rychlosti 4800, prepne na vyssiu rychlost, pocka na nejaky ACK z PMD85 a potom vsetko odvysiela touto vyssou rychlostou.

PMD85 nevie nastavit 8251 na 115200 Bd ?


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 15:15 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Aha, ty už počítáš s tím, že ta aplikace pro PC bude napsána. Já zatím počítám s tím co mám, tj. standardním terminálem, který umí poslat soubor. Pak tedy ano, máš pravdu, to by šlo. Jinak 8251 umí podle katalogu maximálně 300kHz na hodinovém vstupu, což dělá 19200Bd při vzorkování 16x. Ona umí i víc, ale v režimu vzorkování 64x. Bohužel to nevede ke zvýšení přenosové rychlosti. Spíše naopak.


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 16:03 
Offline
Kecka

Registrován: 08.06.2016, 18:25
Příspěvky: 48
Has thanked: 5 times
Been thanked: 21 times
Pokud ještě nemáš nikoho na tu aplikaci pro Win, tak bych se do toho pustil...

_________________
http://maximalne.8u.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 17:40 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Tak to by bylo super. Nejen že bych to nemusel vyvíjet od úplné nuly, ještě jsi ze všech nejblíž. Tudíž vzájemná komunikace a ladění tím bude operativnější.

Využil bych Busyho nápad s tím zavaděčem nahraným standardní rychlostí 4800Bd. Tím by vše v PMD-85 mohlo zůstat standardní. Zavaděč by obsahoval mmj. i textový stream, který by se vypsal na obrazovku jakožto název programu. Za tím zavaděčem bych přepnul na 19200Bd a vyslal 16x kód FFh pro synchronizaci UARTu v PMD-85. Pak by následovaly binární bloky dat, vždy TAG s kódem 04h, následovaný adresou bloku a 128 datovými bajty bloku samotného, dokud nebudou přenesena všechna data. Tolik zjednodušený principiální popis, skutečný datový protokol asi bude muset být robustnější a propracovanější.

Moje představa je, že by se jednalo o konzolovou aplikaci, stejně bych ji většinou volal například z PSPadu nebo jiného editoru s parametrem binárního souboru. Pokud by se jako další řádkový parametr uvedl textový string, byl by interpretován jako jméno programu, které se vypíše během natahování zavaděče do PMD-85. Pokud by se ti chtělo udělat k tomu i nějaké GUI aby se daly pod Win vybírat soubory a fungovalo to jako vzdálený disk pro koncového uživatele PMD-85, tak to už bych nechal na Tvém rozhodnutí. Ale to je o level výše. Tolik výchozí hromada myšlenek, stejně se to bude postupně ladit, měnit a hledat kompromisy.


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 18:07 
Offline
Kecka

Registrován: 08.06.2016, 18:25
Příspěvky: 48
Has thanked: 5 times
Been thanked: 21 times
Ok, takže program pro konzoli, ujasněme si ty parametry, např.:

send2pmd COMx [-t "jméno"] [-d 0000] [-j 0000] soubor.bin

COMx asi povinný argument, dělat autodetekci by bylo zbytečně náročné.
-t title - titulek, když nebude uveden, použije se název souboru
-d cílová adresa, kam se má soubor nahrát, když nebude uveden, nahraje se od adresy 0000
-j kam se má skočit po načtení programu, když nebude uveden, skočí se do monitoru

soubor.bin - jakýkoliv soubor. Do budoucna: když bude mít koncovku pmd, spustí se simulace načítání z pásky.

Je to dost univerzální?
Kam nahrát ten loader? třeba od adresy 7800h, aby to bylo dost na konci paměti? Nebo počítat jen s 64kB modely a nahrát jej někam od B000?

Jdu vyhrabat převodník na ten sériový port, už jsem s tím kdysi dělal... Bude to pro mě takové malé osvěžení, celé měsíce programuju jen ARM STM32 a už mi z toho hrabe...

_________________
http://maximalne.8u.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 18:40 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Teď se nabízí otázka, zda nespustit jen ten 128B dlouhý zavaděč, který nastaví max. rychlost UARTu a rovnou bude následně načítaná data podvrhovat jako bajty z MGF. Nemusel by se definovat žádný nový protokol a řada programů by měla jít jednoduše exportovat ze souborů emulátoru MGF pásky např. od RM-Teamu nebo prostě z původního surového bajtového streamu magnetofonové nahrávky.

Sice se to začíná odklánět od původní jednoduché představy, ale co vy ostatní na to?


Nahoru
 Profil  
 
PříspěvekNapsal: 28.11.2020, 20:13 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Virtuální čistě digitální kazeťák je celkem šikovný nápad ale zase tomu to všechno děsně trvá :-). Raději přidejte právě na rychlosti (a spolehlivosti) přenosu dat než vymýšlet kolo znovu - audiovstup ze zvukovky už PMD má :-). Za stejně tak důležité bych považoval i export dat z PMD, protože dostat i něco z PMD, to je aktuálně oser. Pak by se s ním dalo i pracovat jako se skutečným chytrým terminálem a posílat výsledná data i do PC :-). Ideálně aby se to dalo poslat i přes Basic, to pak něco naprogramuje i analfabet mého typu (že by PMD nebylo nutně v režimu terminál vysílat data do PC kde si je program přebere).


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 47 ]  Přejít na stránku 1, 2, 3, 4  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz