| 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 7 z 10 |
| Autor: | Panda38 [ 15.06.2020, 10:33 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Neznaleckým pohledem - není to spíš hardwarem než softwarem, že pero se potřebuje "rozjet" aby kreslilo a tak počáteční bod není někdy vidět? Jestli by to bylo kuličkové pero, tak to z principu nemůže kreslit tečky. A obzvláště diagonály písmen se budou skládat z teček, diagonální linku to nejspíš nerozpozná. |
|
| Autor: | Ladislav [ 15.06.2020, 11:07 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Panda38 píše: Neznaleckým pohledem - není to spíš hardwarem než softwarem, že pero se potřebuje "rozjet" aby kreslilo a tak počáteční bod není někdy vidět? Jestli by to bylo kuličkové pero, tak to z principu nemůže kreslit tečky. A obzvláště diagonály písmen se budou skládat z teček, diagonální linku to nejspíš nerozpozná. pokusy se domnívám, že je ta mezera mnohem větší, než rozjezdová tečka kuličkového pera. Používám keramické pero, kde mám vysledováno, že dokáže i nejjemnější ťuknutí vytisknout na papír. Vnímám to tedy jako nedostatek té utility i z pohledu toho, že písmeno zbytečně začíná vykreslovat z jiného místa, než od počátku písmenka, ale někde odprostředka. |
|
| Autor: | dex [ 15.06.2020, 11:07 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Citace: A obzvláště diagonály písmen se budou skládat z teček, diagonální linku to nejspíš nerozpozná. Pokud je pravda, že to hledá další bod v OSMI směrech, ne jen čtyřech, pak by diagonály najít měl. |
|
| Autor: | MTs [ 15.06.2020, 11:26 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
DESKTOP tiskne postupně vždy po 12ti mikrořádcích. Mi to přijde jako by za každým cyklem byl mikrořádek navíc. Pokud to tak je, měla by to být jednoduchá oprava. |
|
| Autor: | MTs [ 15.06.2020, 11:40 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Ladislav píše: tady posílám odkaz na video, jak se po zmáčknutí 8-new paper tiskárna inicializuje. U jiných programů je to plynulé, za stálého svitu LED READY, tady to je trhané (má to tak být?), ale tiskárna se v levém dorazu nakonec inicializuje. Trhané by to být nemělo. Možná bude třeba upravit časování (přeci jen kód se změnil) anebo je bota ve vkládání hodnot na 8255. Přikládám pár svých poznámek z analýzy superplot: Kód: 60900 ld a,136
60902 out (127),a 60904 ld b,0 60906 ld a,b 60907 or 36 60909 ld a,c 60910 out (63),a 60912 in a,(63) 60914 cp c 60915 jr z,60929 60917 ld a,32 odblokování portu u D40/80 60919 out (147),a podle mě lépe neoutovat a nechat odblokování na uživateli v basicu (či RUNu) 60921 ld a,16 60923 out (153),a 60925 ld a,136 60927 out (127),a 60929 djnz 60906 60931 ld hl,61035 60934 ld de,23582 60937 ld bc,6 60940 ldir 60942 ld a,251 251 11111011 ready 1 pero nahoru(0) 60944 out (63),a 60946 ld a,187 187 10111011 ready 0 pero nahoru(0) 60948 out (63),a 60950 ld (64546),a 60953 call 61008 60956 ret c carry by mělo značit že plotter je ready 60957 ld hl,2000 pokud ready není, dělá se 60960 ld a,223 223 11011111 ready 0 X+ 60962 call 60734 60965 ld b,2 60967 djnz 60967 60969 call 61008 60972 jr c,60980 je ready 60974 dec hl 60975 ld a,h 60976 or l 60977 jr nz,60960 60979 ret 60734 and 248 248 11111000 60736 ld h,a 60737 ld a,(64546) 60740 and 4 4 00000100 pouze zachovat pero nahoru/dolu 60742 or h v H je x+ při inicializaci 60743 ld (64546),a 60746 xor 24 24 00011000 xy+- 60748 out (63),a 60750 xor 32 32 00100000 move 60752 out (63),a 60754 ret 61008 ld bc,40960 61011 in a,(95) 61013 or c 61014 ld c,a 61015 ld a,(64546) 61018 res 6,a 61020 out (63),a 61022 set 6,a 61024 out (63),a 61026 djnz 61011 61028 ld a,c 61029 xor 32 61031 rlca 61032 rlca 61033 rlca 61034 ret vrací carry je-li plotter ready |
|
| Autor: | dex [ 15.06.2020, 12:09 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Ha, už vím! Je to softwarem a není to chyba, ale vlastnost, když má bod víc než jednoho souseda. Začne na nějakém bodu v písmenu, jede po čáře nějakým směrem. Pokud její počáteční bod není koncový, ale má i dalšího soudeda a čára má pokračovat i na druhou stranu, najde si pak sice časem jeho souseda (buď jako koncový, nebo jako průběžný), ale ne už spojnici s dříve nakresleným a z bufferu už vymazaným bodem. A na diagonálách je to prostě nejpravděpodobnější a nejvíc vidět. Pokud má kreslit písmena bez přerušení, musel by si nechávat body na zásobníku či frontě a pak hledat, zda mají víc než jednoho souseda. Proto nejsou ani propojené body z různých řádek (dvanáctibodových) a jeví se pak, že mezi řádky dělá mezeru. |
|
| Autor: | Martin1 [ 15.06.2020, 13:05 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Ladislav píše: ...a ještě dodatek, který vím, že bude asi mimo mísu, neboť utilita je již někým takto napsaná a jakákoliv vnitřní úprava by asi byla náročná, ale nedá mi to se nezeptat: Pochopil jsem z celé diskuze, jak pero vykresluje písmena - že hledá okolo sebe navazující body a ty pak spojí a zároveň počátek, kam pero položil "umazává"? Logika je jednoduchá. Ak je bod sám, ploter len spustí a zdvihne pero. Ak sa nájde sused (v poradí pozri dole, hore, vpravo, vlavo, vpravo dole, vlavo dole, vpravo hore, vlavo hore), tak daným smerom sa posunie pero o jeden krok. Potom sa opäť testuje sused už z nového umiestnenia pera. Ak už sused nie je, vracia sa na pôvodný mikroriadok a pôvodný bod (+ jeden vpravo/vlavo). Čiže prvý bod je len bod a nikdy sa už k nemu nevráti. Čiže napr. jednoduché "A" nenakreslí na jeden raz ale na tri razy. |
|
| Autor: | Martin1 [ 15.06.2020, 13:11 ] | ||
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru | ||
Ladislav píše: 8-new paper tiskárna inicializuje. U jiných programů je to plynulé, za stálého svitu LED READY, tady to je trhané (má to tak být?), ale tiskárna se v levém dorazu nakonec inicializuje. Opravené, už by to malo ísť plynule. Do kódu som už zahrnul aj inicializáciu. (out 127,152) Zvyšok kódu úplne zodpovedá pôvodnému (až na riadenie portov), takže akékoľvek správanie musí byť zhodné s pôvodným ovládačom. M1 P.S. Ako si do programu Desktop dohrám tento vlastný ovládač? V návode som to nenašiel. (Zatiaľ testujem v emulátore)
|
|||
| Autor: | dex [ 15.06.2020, 13:18 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Citace: a pôvodný bod (+ jeden vpravo/vlavo). To je to, že nejde úplně na ten původní, ale až na toho jeho souseda, kterého najde (ten původní je už v bufferu smazaný, jakože už byl nakreslen), takže spojnice mezi těmi dvěma body chybí (stejně jako chybí spojnice mezi jednoltivými řádky a je to vidět na strukturách, které velikost jednoho řádku překračují). Citace: Ako si do programu Desktop dohrám tento vlastný ovládač? V návode som to nenašiel. Skok do Basicu (EXT SS+K), v něm je volba pro přihrání utility (a i kdyby nebyla, tak přihrát CODE a spustit Desktop teplým startem). Manuál na internetu je od nejstarší verze, která nejspíš do Basicu neskákala, chybí v něm tedy jak skok do Basicu, tak i připojení tiskáren. |
|
| Autor: | dex [ 15.06.2020, 19:01 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Napadla mne "léčba" (neřeší to ale propojení bodů ležících v různých řádcích), ale zda je vůbec ještě volné místo? Před smazáním vykreslovaného bodu z řádkové předlohy by se při nalezení souseda dootestoval počet všech jeho sousedů a pokud by měl víc než toho jednoho, tak by se bod sice smazal, ale po vykreslení a otestování souseda a nalezení zas jeho souseda opět vrátil zpět - byl by potřeba buffer na "minulý bod", t.j. kde ležel a zda ho vrátit nebo nechat smazaný - a do bufferu by se uložil zas ten soused. Na místa, která ještě mají souseda k vykreslení, by se tak pero časem ještě vrátilo. |
|
| Autor: | Martin1 [ 15.06.2020, 19:42 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
dex píše: ale zda je vůbec ještě volné místo? 36 bajtov Autor použil všetok um, aby logiku dokázal napchať do 840 bajtov kódu, aj preto sú niektoré konštrukcie dosť krkolomné a za normálnych okolností by sa k nim programátor bez dobrého matroša neuchýlil. dex píše: Před smazáním vykreslovaného bodu z řádkové předlohy by se při nalezení souseda dootestoval počet všech jeho sousedů a pokud by měl víc než toho jednoho, tak by se bod sice smazal, ale po vykreslení a otestování souseda a nalezení zas jeho souseda opět vrátil zpět - byl by potřeba buffer na "minulý bod", t.j. kde ležel a zda ho vrátit nebo nechat smazaný - a do bufferu by se uložil zas ten soused. Na místa, která ještě mají souseda k vykreslení, by se tak pero časem ještě vrátilo. To znie komplikovane. Mne napadlo takéto riešenie: Prehľadať všetkých susedov a začať z bodu, ktorý má len jediného suseda. Pri vyhľadávaní susedných bodov ako prvý bod hľadať v smere, v ktorom už začal ťah perom, t.j. zbytočne nemeniť smer. Ak má daný bod viac ako jedného suseda, bod neodmazávať. Napr. pri "A" síce ako prvý zistí bod v hornej špičke, ale najbližší bod, ktorý má len jedného suseda je ľavá alebo pravá noha. Odtiaľ potiahne čiaru hore, kde narazí na vodorovnú spojovnicu, ten bod neodmaže, ale pokračuje hore, rsp. šikmo hore, potom šikmo dole a opať je pri spojovacej čiare, kde ponechá bod. Dokončí zvislú čiaru k druhej nohe. Zostáva mu dokresliť spojovaciu čiaru, tá je však už teraz celá. Základ logiky je nezačať prvým bodom, na ktorý narazí, ale prvý, ktorý má iba jedného suseda. A hlavne nepotrebuješ žiadny zásobník bodov. Problém sú uzavreté písmená ako O, Q, kde taký bod nenájdeš a musíš si nejaký zvoliť (napr. pri pehľadávaní budeš kontrolovať, či si sa nevrátil do východzieho bodu). |
|
| Autor: | Ladislav [ 15.06.2020, 21:04 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Martin1 píše: Opravené, už by to malo ísť plynule. Do kódu som už zahrnul aj inicializáciu. (out 127,152) Zvyšok kódu úplne zodpovedá pôvodnému (až na riadenie portov), takže akékoľvek správanie musí byť zhodné s pôvodným ovládačom. M1 Díííky moc, funguje ta oprava jen na půl. přikládám video s celým postupem: http://www.uschovna.cz/zasilka/ZIR6FJNSK3GP7C3J-3ZN - OUT 127,152 automaticky neproběhne, musel jsem jej znovu zadat separátně přes návrat do Basicu. - inicializace už proběhne plynule ke kraji tiskárny a rozsvítí se READY - stále zlobí ten divný artefakt při tisku první řádky, kdy se pero spustí, papír se povysune o několik řádků a pak plynule naváže na tisk první řádky. Což není dobré, u verze pro MS-SP se tak neděje. Zkoušel jsem i přesměrování 8255 z d40 na UR-4 (OUT153,00), abych vyloučil závadu v kabelu od d40, ale i přes UR-4 se stejným úvodním artefaktem. Vím, že mě možná ukamenujete, ale skutečně neprudím, jen se snažím vychytat chyby. Ale pokud Vás podle videa napadne, co dělám špatně, dejte vědět, může být chyba na mé straně. Díky |
|
| Autor: | Ladislav [ 15.06.2020, 21:34 ] | ||
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru | ||
A ještě k tomu MS-SP přikládám video, že u MS-SP je to vše v pořádku: http://www.uschovna.cz/zasilka/ZI46KNE7RFT42W5G-5UJ A zároveň přikládám fotku tisku 2 stejných textů - jednou přes MS-SP a podruhé přes 8522, kde je vidět nejen ten artefakt při tisku první řádky, ale dále, že přes 8255 NERESPEKTUJE LEVÝ OKRAJ 75bodů (nastavený u obou tisků stejně) a tiskne hned od kraje...
|
|||
| Autor: | Martin1 [ 15.06.2020, 21:47 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Ladislav píše: pře 8255 NERESPEKTUJE LEVÝ OKRAJ 75bodů (nastavený u obou tisků stejně) a tiskne hned od kraje... Pozriem na to zajtra. Už mám takmer hotové aj 0507, len musím dorobiť "ručné" nastavenie okraja, keďže tlačiareň nemá snímače. Ešte mi zostalo 33 bajtov voľných M1. |
|
| Autor: | MTs [ 16.06.2020, 06:50 ] |
| Předmět příspěvku: | Re: XY4150 a připojení k ZX přes 8255 včetně softwaru |
Martin1 píše: Ešte mi zostalo 33 bajtov voľných M1. Na autogram do menu |
|
| Stránka 7 z 10 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|