OldComp.cz

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


Právě je 25.04.2024, 18:43

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 148 ]  Přejít na stránku Předchozí  1 ... 4, 5, 6, 7, 8, 9, 10  Další
Autor Zpráva
PříspěvekNapsal: 15.06.2020, 10:33 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1976
Bydliště: Most, Praha
Has thanked: 873 times
Been thanked: 699 times
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á.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 11:07 
Offline
Radil

Registrován: 31.01.2018, 01:33
Příspěvky: 483
Bydliště: Praha
Has thanked: 179 times
Been thanked: 497 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 11:07 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1524
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 386 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 11:26 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 11:40 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
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           



Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 12:09 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1524
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 386 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 13:05 
Offline
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 903
Has thanked: 51 times
Been thanked: 230 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 13:11 
Offline
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 903
Has thanked: 51 times
Been thanked: 230 times
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]
334 krát
Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 13:18 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1524
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 386 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 19:01 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1524
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 386 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 19:42 
Offline
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 903
Has thanked: 51 times
Been thanked: 230 times
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).


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 21:04 
Offline
Radil

Registrován: 31.01.2018, 01:33
Příspěvky: 483
Bydliště: Praha
Has thanked: 179 times
Been thanked: 497 times
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


Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 21:34 
Offline
Radil

Registrován: 31.01.2018, 01:33
Příspěvky: 483
Bydliště: Praha
Has thanked: 179 times
Been thanked: 497 times
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 6249 krát ]


Naposledy upravil Ladislav dne 15.06.2020, 22:04, celkově upraveno 1
Nahoru
 Profil  
 
PříspěvekNapsal: 15.06.2020, 21:47 
Offline
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 903
Has thanked: 51 times
Been thanked: 230 times
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.


Nahoru
 Profil  
 
PříspěvekNapsal: 16.06.2020, 06:50 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
Martin1 píše:
Ešte mi zostalo 33 bajtov voľných :D
M1.


:thumbup:
Na autogram do menu 8-)


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ů: 148 ]  Přejít na stránku Předchozí  1 ... 4, 5, 6, 7, 8, 9, 10  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 6 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