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 710

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)

Přílohy:
XY4150-8255-20200615.ZIP [9.2 KiB]
73 krát

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...

Přílohy:
IMG_4885 (kopie).jpg
IMG_4885 (kopie).jpg [ 182.24 KiB | Zobrazeno 1311 krát ]

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 :D
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 :D
M1.


:thumbup:
Na autogram do menu 8-)

Stránka 710 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/