| OldComp.cz https://oldcomp.cz/ |
|
| XY4150 a připojení k ZX přes 8255 včetně softwaru https://oldcomp.cz/viewtopic.php?f=144&t=8549 |
Stránka 3 z 10 |
| Autor: | MTs [ 04.06.2020, 19:43 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Pavel.Krivanek píše: Ta čísla portů sama o sobě kódují výstupní akci pro ten initerface, není to "jeden drát = jedna funkce", viz https://github.com/berk76/plottercontroller/wiki. Tipoval bych, že port 253 bude pro pero. Ve zdrojáku Superplottu se také často volá. Jeden drát = dvě možné akce (buď logická 0 nebo 1). Více z principu není možné. Jen samozřejmě mám 256 možných hodnot pro odeslání na jeden samostatný port (instrukce OUT) takže je otázka jestli i toho je nějak využito anebo se mastí pořád stejná hodnota... Nejjednodušší cesta je vzít pc emulator a odkrokovat celou utilitu během tisku. Tím se přesně zjistí jak to funguje a bude se to dát přepsat. Ale význam portů a možnosti hodnot na nich odesílaných by to samozřemě příjemně usnadnil. |
|
| Autor: | Pavel.Krivanek [ 04.06.2020, 20:15 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Citace: Jeden drát = dvě možné akce (buď logická 0 nebo 1). Více z principu není možné. Jen samozřejmě mám 256 možných hodnot pro odeslání na jeden samostatný port (instrukce OUT) takže je otázka jestli i toho je nějak využito anebo se mastí pořád stejná hodnota... Hodně je poznat z toho schématu od rombora. Akce pro plotter se posílají pomocí adresových vodičů a z datových má význam jen D7. |
|
| Autor: | Martin1 [ 05.06.2020, 09:56 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Pavel.Krivanek píše: Hodně je poznat z toho schématu od rombora. Akce pro plotter se posílají pomocí adresových vodičů a z datových má význam jen D7. Zaujimavý interfejs, obsadzuje skoro celý adresný priestor A1, A2, A3, A4, A5, A6, to pobeží len na gumákovi bez akejkoľvek ďalšej periférie. M1 |
|
| Autor: | MTs [ 05.06.2020, 18:06 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Tak jsem tu utilitku desktopu prokrokoval debuggerem (Win Spectaculator). Jako zarážky stačí dát adresy 47066, 47848, 47886, 47897, 47923 s tím, že před vlastním krokováním je dobré ještě upravit na nulu (NOP) hodnotu adres 47070 a 47071 kde je test ready plotru. Těmi dvěmi NOPy zajistíme, že plotter bude vždy ready a tisk "nasucho" vždy proběhne. Bylo to zajímavé sledovat. Ačkoliv už zhruba chápu jak to funguje (tedy s porty 199 x+, 207 x-, 215 y+, 223 y-), tak pořád mi unikají 251, 253 a 63. Tam vždy byla při tisku outována hodnota nula. Já čekal spíše nenulovou anebo stejný princip jako u 199,207,215,223 kde byla vždy 1x nenulová hodnota a pak dvakrát nulová, tj. pochopil jsem z toho, že pro jeden posun po X nebo Y se musí outnout 3x (1x s nenulovu hodnotou a pak 2x s nulovou) a ještě je mezi nimi pauza, která je nastavitelná v menu utility pod klávesou 3 (speed). Můj závěr je takový, že aby to fungovalo s 8255, bude se to muset celé přepsat, protože jednak princip outování u 8255 bude jiný a pak tu je ještě ten samopřepisující se kód za běhu programu. Jednodušší je to opravdu asi napsat znovu. Dám si to na TODO list a možná se k tomu někdy v budoucnu vrátím. Nyní ale toto pole opustím, protože času není mnoho a já bych si chtěl "pohrát" spíše s ESXDOsem MDOSem3, MDOSem 2.1 a MFC.
|
|
| Autor: | ub880d [ 05.06.2020, 18:29 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
MTs píše: Bylo to zajímavé sledovat. Ačkoliv už zhruba chápu jak to funguje (tedy s porty 199 x+, 207 x-, 215 y+, 223 y-), tak pořád mi unikají 251, 253 a 63. Tam vždy byla při tisku outována hodnota nula. Já čekal spíše nenulovou anebo stejný princip jako u 199,207,215,223 kde byla vždy 1x nenulová hodnota a pak dvakrát nulová, tj. pochopil jsem z toho, že pro jeden posun po X nebo Y se musí outnout 3x (1x s nenulovu hodnotou a pak 2x s nulovou) a ještě je mezi nimi pauza, která je nastavitelná v menu utility pod klávesou 3 (speed). nuz, ak pises o drivri, ktory pouziva originalny interface, tak zo schemy interface vyplyva ze je jedno ake hodnoty sa outuju, zalezi na adrese, nie na hodnote. predpokladam ze tie hodnoty co si tam videl boli len proste nahodne hodnoty registrov v okamihu outu. jedine, kde interface prichadza do kontaktu s datovou zbernicou je ked pocitac cita signal ready, ktory vycita na D7. A tiez, nerozumiem tej pauze, nema to nahodou krokove motorceky? ked je tam nastavovanie osi x/y a hodnoty +1/-1 a signal na prevedenie kroku, tak by som cakal, ze na tom kroku treba pulzovat, aby sa to stale hybalo, ze inak sa to pohne len o jeden krok a bude cakat na dalsi pulz na signali krok...
|
|
| Autor: | MTs [ 05.06.2020, 19:00 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Ano, to by mohlo být, to dává pak smysl. 251 je "port led reset " což bude víceméně nějaký zbytečný out, který na 8255 stejně neumíme ovlivnit (dle schématu zapojení tam u plotru takovýto pin není). Zbývá 63 a 253. To by tím pádem mohlo být pero. Jeden bude pero přitlač = piš, druhý pero odeber = nepiš. (???) Tím pádem by stačilo pouze číslo portu předělat na správný zápis na 8255 hodnotu což si myslím jsem schopen tady už načrtnout... Ještě mě zarazilo, že ready test se provádí jen po vložení papíru (po volbě nový papír v menu). Při tisku se již netestuje. To je nějaké divné ne? |
|
| Autor: | RaceSoft [ 05.06.2020, 22:46 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Nevím, jestli jsem to vydedukoval správně, ale vyšlo mi následující: OUT na 251 (FBh)- PEN DOWN, OUT na 253 (FDh) - PEN UP, a OUT/IN na 63 (3Fh) nastavení/test signálu /RDY - jediné místo, kde se pracuje s datovou sběrnicí, konkrétně s bitem D7. Na jiných portech na vyslaných datech nezáleží - viz zapojení rozhraní MS-SP. Plotry XY41xx (mimo XY4160) mají signál /RDY, který signalizuje připravenost plotru k práci. Signál je neaktivní (hodnota H) po zapnutí plotru, po založení papíru (mikrospínač napojený na páčku zvedající přítlačnou kladku papíru) nebo při naražení vozíku pera na koncové spínače na obou stranách vozíku pera. Pokud není stisknutý žádný spínač (kladka papíru nebo dorazy vozíku), shozením do hodnoty L (bit D7 na OUTu) ze strany počítače, se přepne také do stavu L - připraven (viz manuál k XY41xx). Podle zapojení MP-SP je obsazení adresových vodičů následující: A0 - nepoužito A1 - sklápění pera A2 - zvedání pera A3 - +/- A4 - X/Y A5 - STEP A6 - čtení/nastavení /RDY A7 - nepoužito Datový byte je použité pouze při čtení/zápisu hodnoty pro signál /RDY a to konkrétně do bitu D7 Snad je alespoň něco z toho pravda... Petr |
|
| Autor: | MTs [ 06.06.2020, 10:17 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Podle mě (dle prokrokování v debuggeru): 191 ready 199 x+ 207 x- 215 y+ 223 y- 251 nejsem si jistý, ale jde o nějaký typ resetu, který zřejmě dá pero pryč 253 pero pryč 63 pero piš Nejjednodušší bude si to ověřit z Basicu. Pan Ladislav by mohl s originálním interface outnout jedenkrát OUT 63,0 a pak několikrát (10x) nějakým xy outem (např. 207,0). Pak jednou OUT 253,0 a zase několikrát OUT 207,0. Následně celý test zopakovat, ale místo 253,0 použít 251,0. Tím zjistíme co je pero piš a co pero nepiš. U 8255ky se toto outování musí překonvertovat na patřičný set/res na příslušném bitu brány B dle schématu. To je celé. Jen do toho ovladače to bez celkového přepsání jednoduše nePATCHneme. |
|
| Autor: | EC1045.01 [ 06.06.2020, 11:10 ] | ||
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru | ||
Mám tu dva ovladače ze SAPI-1 ZPS-2 kdy jeden je pro MINIGRAF a druhý pro XY41xx. Rozdíl je jen v tom jak se výsledně poskládají data, co se pošlou na port (pokut budu brat v potaz jen vlastní kreslící část). Aneb se liší jen dva podprogramy jinak výkonová část je stejná. S trochou práce jde ten ovladač udělat obojetný. Takže pokut výkonné jádro bude stejné (zatím jsem ani na jiné nenarazil) tak by neměl bít problém použít modul z ovladače ze SAPI-1 pokut bude výkonné jádro jiné tak to může posloužit jako inspirace. S GitHub nebo jak se to jmenuje, nejsem moc kamarád tak jsem do zdrojáku nedíval, ale zajímalo by mě který ichtil vyplácal všechny volné adresy portů, aby mohl ovládat jedeno zařízení … jediné co mně napadá je, že šetřili místem nebo programátor byl levej jak turecká šavle. Je pravda, že poskládat data na port pro XY41xx je o dost složitější a tím pádem i delší kód ale zas tak katastrofální to není. No než jsem pochopil jak je to udělané tak to byla docela fuška … aneb jsem potřeboval zjistit jak tu příšeru typu XY41xx připojit … osobně dávám přednost MINIGRAFu.
|
|||
| Autor: | MTs [ 06.06.2020, 19:25 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Ok. ok. Dík za info. Pořád ale nechápu proč ovladač zapisuje na ten ready port (63)? Co to má za význam? |
|
| Autor: | RaceSoft [ 06.06.2020, 20:19 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Protože signál /RDY musí být programem/počítačem překlopen do /RDY=0, což jednak signalizuje připravenost k tisku a druhak to povolí signálem PEN sklopit pisátko a do třetice počítač pak ví, kde je vozík s perem - viz dále. Plotr má po zapnutí signál ve stavu /RDY=1 (stejně tak i po výměně papíru - spínač na kladce přítlaku papíru nebo po naražení vozíku do minimálně pravého dorazu vozíku pera) a proto je nutné ho překlopit do stavu /RDY=0. Proto se čte byte z portu (63 nebo 03Fh nebo 0BFh), kde se pak programově zjišťuje stav signálu /RDY na bitu D7 a bitem D7 na té samé adrese se v plotru překlápí klopný obvod. Posloupnost příkazů je asi takováto: Kód: čti byte z portu (63) je bit D7=0? pokud ano, konec inicializace TEST: pokud ne zapiš na port (63) byte s nastaveným D7=1 chvilku počkej zapiš na port (63) byte s vynulovaným D7=0 - sestupná hrana překlápí /RDY uvnitř plotru čti byte z portu (63) je bit D7=0? pokud ano, konec inicializace - vozík narazil do levého dorazu vozíku pokud ne, posuň vozík pera vlevo (např. o 10 kroků motoru) pokračuj na TEST - zde je vhodné testovat počet průchodů, aby nedošlo k zamrznutí programu v případě poruchy/nepřipojení plotru Alespoň já to takhle mám ve svém programu udělané. Jinak během tisku by se měl signál /RDY taky testovat, protože pokud vozík narazí do spínače na pravé (a asi i na levé) straně plotru, /RDY se překlopí nahoru do 1 a tím zablokuje spouštění pera. Snad je to alespoň trochu srozumitelné. Princip překlápění signálu /RDY je také popsán v příručce k plotru XY41xx Petr |
|
| Autor: | MTs [ 07.06.2020, 10:47 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Ano takhle nějak to tam program i má. Ale při samotném tisku se už ready port nečte, ale jen tam program zapisuje. Proč? |
|
| Autor: | RaceSoft [ 07.06.2020, 14:33 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
MTs píše: Ano takhle nějak to tam program i má. Ale při samotném tisku se už ready port nečte, ale jen tam program zapisuje. Proč? Třeba program netestje stav /RDY, ale rovnou se ho snaží překlopit do stavu 0. Petr |
|
| Autor: | MTs [ 08.06.2020, 13:30 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Přikládám ZIPko se soubory: Příloha: DESKTOP-X4150(2).SNA - snap Desktopu z utilitou xy4150(2). Pro trasování v PC emulátorech/debuggerech xy4150-2.bin - binárka utility xy4150(2) pro desktop xy4150(2).asm - surový kód ze zpětného překladu (ten už jsem tady dával...) xy4150(2)+.xls - Excel, pracovní dokument o třech listech: 1. xy4150(2).asm 2. xy4150(2) plnohodnotný zdrojový kód, ve kterém už se neodkazujeme na fyzické adresy, ale na pojmenované návěští, je importovatelný (po malých reformátovacích úpravách) do Promethea (GENS příkaz) nebo AS a následně s tím už můžeme normálně pracovat 3. Různé info (Obrázky zapojení) Nyní se tedy musí testnout, jestli zdroják z druhého listu po zkompilování dá přesně stejnou binárku jako je xy4150-2.bin. Pokud nedá, mám ve zdrojáku chybu, která se musí najít a opravit. Jakmile bude výsledek 1:1 s originálem, můžeme se v tom začít hrabat. Musím říct, že kód je napsaný dost profesionálně. Jsou tam použity všelijaké "hrátky", které zajistí úsporu kódu (samozřejmě na úkor jeho čitelnosti Kdo by se chtěl naučit assembleru, tak toto je jedinečný výukový materiál !!
|
|
| Stránka 3 z 10 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|