OldComp.cz

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

Zptky do minulosti!

Právě je 22.04.2021, 18:10

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 251 ]  Přejít na stránku Předchozí  1 ... 11, 12, 13, 14, 15, 16, 17  Další
Autor Zpráva
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 05.04.2021, 14:45 
Offline
Kecálek

Registrován: 16.11.2013, 20:07
Příspěvky: 190
Has thanked: 0 time
Been thanked: 77 times
Tím se potvrzuje moje doměnka, že ten článek v tom amáru byl publikován jen kvůli zaplácnutí místa a vyplacení honoráře. Je to nedodělek a bude potřeba ten FW prostě přepsat. Signál BUSY je důležitý. Naopak signál /ACK možná není potřeba vůbec.

Ve výše zmíněné ročence AR ME 90 mě v článku o interfejsu Atari - Centronics tiskárna (tedy v podstatě "opačný" interfejs) zaujala pasáž na straně 54 o tom, že signály BUSY a /STB tvoří spolu s daty ZÁKLADNÍ a POSTAČUJÍCÍ signály rozhraní Centronics. ACK tam vůbec není. To je zajímavé. Možná bude stačit přeprogramovat signál /ACK, aby se choval jako BUSY.

Taky jsem se mrknul na zdroják svého pokusování, kdy jsem k jednočipu 51 připojil standardní Centronisc tiskárnu (Epson) a tisknul data přijatá z PC sériákem jednočipu. Mám tam poznámku, že tiskárna signalizuje jak BUSY, tak /ACK. BUSY začíná ještě během trvání /STB a končí během /ACK. BUSY se tedy na začátku překrývá s /STB a na konci s /ACK, což jsem experimentálně ověřil a fungovalo to parádně. Jednoduše jsem vystavil data, vygeneroval /STB a následně čekal až budou BUSY v L a /ACK v H. Pak jsem posílal další data.

Pro ověření by možná stačilo vzít i to Arduino a simulovat jím tiskárnu (generovat BUSY a ACK). Ukládat data do RAM a po stisku nějakého tlačítka je vypsat sériákem na PC, jestli jsou kompletní. V mém případě by to ale vyžadovalo 2 PC. Jedno starší s LPT a druhé novější s USB a Arduino IDE.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 05.04.2021, 15:49 
Offline
Pan Štábní

Registrován: 07.05.2014, 01:21
Příspěvky: 1872
Bydliště: Praha
Has thanked: 293 times
Been thanked: 402 times
U toho článku v amáru firmware vůbec není a jestli byl hotový a jak ho autor distribuoval se už asi nedovíme.
Verzi kterou máme vyhrabal pro microzone skoro dvacet let po vydání původního článku. Možná by bylo zajímavé, až skončí covidblbnutí, autora kontaktovat. Adresa se dá najít...

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 05.04.2021, 15:55 
Offline
Kecálek

Registrován: 26.11.2018, 16:59
Příspěvky: 179
Bydliště: Holešov
Has thanked: 5 times
Been thanked: 34 times
já bych tak kritický nebyl, že je to nedodělek na zaplácnutí místa, pouze prostě nemáme k dispozici poslední obsah fw toho jednočipu

pokud to vyšlo v roce 1991, tak si myslím, že se většina lidí v té době s PC/AT nebo PC/XT ještě nesetkala a ten kdo se s nima setkal tak měl určitě pořádnou jehličkovou tiskárnu a tohle nepotřeboval

pro komunikaci s 8-bity to muselo bohatě stačit a i ty signály STB + ACK jsou dostačující, pro komunikaci s PC je ale BUSY potřeba, takže zde by sme si měli pomoci klopným obvodem a těmito 2 signály (STB ho nahodí a ACK shodí)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 05.04.2021, 16:50 
Offline
Radil

Registrován: 06.03.2018, 16:00
Příspěvky: 481
Bydliště: Valtínov, Kunžak
Has thanked: 4 times
Been thanked: 162 times
Otázkou ale zůstává, kdo a jak často bude na BT100 tisknout z PC - je to docela dost masochizmus. Ke oldcompům je to zcela v pořádku, dobově to odpovídá, al z PC? No, nevím. Ačkoliv jako HW/SW cvičení je to dobré.

Petr.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 06.04.2021, 23:46 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2229
Has thanked: 106 times
Been thanked: 278 times
RaceSoft píše:
Pokud by někdo odladil/vyzkoušel tu přidanou 7474-ku, bylo by to super!

Tlačítka by mohla být přímo na DPS a LEDky (přidal jsem zelenou LED aby bylo vidět, že je to zapnuté) taky. Případně přidat ještě tlačítko RESET pro procesor - jak funguje STOP jsem nezkoušel.

V podstatě by se dal stabilizátor 7805 nahradit něčím modernějším. Neměřil jsem, jaký to má odběr, ale třeba by pro něj stačilo pouzdro TO220 s chladičem.

Petr


Na desku asi dam:

https://www.gme.cz/tlacitkovy-spinac-p-dt6ge zluty - start
https://www.gme.cz/tlacitkovy-spinac-p-dt6rt cerveny - stop
https://www.gme.cz/tlacitkovy-spinac-p-dt6bl modry - reset
https://www.gme.cz/tlacitkovy-spinac-p-dt6sw cerny - paper out - abych mohl simulovat pripadne ze neni papir - ale to by asi nikdo dalsi nevyuzil. Pozor tlacitko nema aretaci.
-zelene tlacitko nemaji skladem ale existuje.

Mate nekdo lepsi napad?


Jinak ten 7805 jsem upravil aby nehazel DRC chyby. Otazka je zda pujdeme cestou 7474 nebo 74123?

Kdyz by 8035 generoval inteligentne /ACK tak by bylo asi lepsi 7474, protoze by to mohlo tisknout maximalni rychlosti :-) a nemuzelo by se to nastavovat na nejpomalejsi reakci procesoru.

Zatim jsem desku moc neupravoval. Jen jsem vpravo dal konektor pro pripojeni tiskarny z PC a ze Sharpa. Take tam dam 7486
aby se mohla udelat inverze signalu. Ovladat se to bude pres 4x DIP prepinace.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 10:36 
Offline
Radil

Registrován: 06.03.2018, 16:00
Příspěvky: 481
Bydliště: Valtínov, Kunžak
Has thanked: 4 times
Been thanked: 162 times
Protože interfejs negeneruje signál /ACK po přijetí každého znaku (jak zjistil Jirka), provedl jsem drobnou úpravu v kódu tak, aby se /ACK generovalo správně po přijetí každého znaku. Přidal jsem 3 další instrukce a musím to vyzkoušet na reálném HW. Pokud se to podaří (jako že doufám, že ano), otevírá se tím možnost přidání 7474-ky pro správné generování signálu BUSY, což chci následně vyzkoušet.

Včera jsem taky zkoušel grafický tisk, který je ve FW nějak integrovaný, ale je na 2 věci. Vysláním kódu 18h se zapne příjem grafických dat - znaky s hodnotou menší než 20h se normálně přijímají a ukládají do bufferu, nekontroluje se už nic a grafický režim se ukončí buď resetem nebo vytisknutím přijatých dat. Z každého byte se použije pouze 6 LSB bitů (logicky by měly být uloženy xx012345 jako v PMD85?). Protože se ale tisknuté bity vysouvají přes CY směrem doprava, je vždy těchto 6 bitů vytisknuto "pozpátku", zrcadlově. V programu je sice část kódu, která toto pořadí mění a vytváří pro tisk byte se správnou posloupností bitů xx543210, ale je vázána na stisknutí a držení tlačítka STOP (které, jen tak mimochodem) není nikde jinde v programu použité. Délka řádku grafických dat je vždy 40 byte (nastaveno natvrdo), z čehož vyplývá, že se tiskne 240 bodů (40 byte * 6 bitů). Program přijatá data kouskuje po 40 bytech a tiskne, dokud není buffer prázdný. Poslední řádek nemusí mít 40 byte, vytiskne se to, co v něm je. Hlavním problémem je ale to, že se každý 40-ti bytový (240-ti bitový/pixelový) řádek tiskne na 12 po sobě jdoucích mikrořádků stejně, jako by se tiskl ASCII znak. Zkusím se zamyslet nad tím, aby se po každém vytisknutém mikrořádku posunul ukazatel v bufferu s daty právě o 40 již vytisknutých byte. Ale to je hóóódně daleko, to musí uzrát.

Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 10:49 
Online
Pan Štábní
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 1911
Has thanked: 102 times
Been thanked: 176 times
Koukám že po změně zapojení desky, signálů a přepsání FW z toho bude prima funkční tiskárna...konečně :mrgreen:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 10:55 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2229
Has thanked: 106 times
Been thanked: 278 times
Nemam to dokoncene ale jako prvni nastrel to muze byt zajimave.


Přílohy:
prvni_nastrel.png
prvni_nastrel.png [ 549.59 KiB | Zobrazeno 263 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 19:39 
Offline
Radil

Registrován: 06.03.2018, 16:00
Příspěvky: 481
Bydliště: Valtínov, Kunžak
Has thanked: 4 times
Been thanked: 162 times
Původně provedená změna v programu byla nedostačující, protože shozením /ACK ať změnou E8h na F8h na adrese 4Ch (jak navrhoval look) nebo přidáním několika instrukcí zůstalo /ACK v 0, protože jeho nahození zpět do log. 1 je prováděno až při vyhodnocení znaku konce stránky. Musel jsem ještě tedy přidat instrukce zajišťující zvednutí signálu do neaktivního stavu. Tak instrukce nakonec bylo 5 :D . Ale výsledkem je, že /ACK "cvičí" tak, jak se očekává.

Zkoušel jsem lookem navrženou úpravu E8h na F9h, kdy sestupné hrany /STB a /ACK od sebe byly cca 28us (/ACK se shodí ještě před vlastním převzetím znaku z MH3212), tak i úpravu s vloženými instrukcemi (/ACK se shodí až v okamžiku, kdy je přijatý znak "bezpečně" uložen v R1), kde vzdálenost hran činila cca 38us. Vše měřeno s krystalem 6MHz. Jaká varianta je vhodnější, nedokáži posoudit.

Vlastní zpracování /STB s /ACK je pak ošetřeno takto:
Kód:
; Zpracovani aktivniho /STB z MH3212
L0049:   jf0   L0060      ; je-li FLAG0=1, skoc
   mov   a,#$E8      ; cteni dat z MH3212 - zde mozno shodit i /ACK
   outl   p2,a      ; nastav na portu
   movx   a,@r0      ; precti byte z MH3212
   mov   r1,a      ; dej precteny byte do R1
   mov   a,#$F0      ; odpojeni MH3212, shozeni /ACK
   outl   p2,a      ; nastav na P2
   mov   a,r1      ; obnov precteny znak
   add   a,#$E0      ; je znak mensi nez ' '?
   jnc   L0067      ; je mensi, skoc
   anl   a,#$7F      ; vyznamnych jen 7 bitu
   add   a,#$20      ; vrat zpatky ASCII hodnotu znaku
   mov   r1,a      ; dej do R1
L0059:   mov   a,r1      ; precteny znak do Acc
   call   L0081      ; vloz znak do bufferu (RAM)
L005C:   jf0   L0060      ; je-li FLAG0=1, skoc - byl konec stranky, cekej na START
   mov   A,#$E0      ; nastav /ACK
   outl   p2,a      ; nastav na P2
   jnt0   L0049      ; je-li TEST0=0, opakuj cteni
L0060:   in   a,p2      ; cti P2
   anl   a,#$80      ; test tlacitka START
   jz   L005C      ; nestisknuto, cti pripadne dalsi znak
   jmp   L0024      ; zahaj tisk dat z bufferu

V příloze je soubor v BINÁRNÍ podobě, není to ZIP!!! Stačí vzít tak, jak je a vypálit.

Petr


Přílohy:
Poznámka: SOUBOR JE BINÁRNÍ, PŘIPRAVENÝ K VYPÁLENÍ DO EPROM
BT100.zip [2 KiB]
5 krát
BT100_bez_ACK.png
BT100_bez_ACK.png [ 44.47 KiB | Zobrazeno 218 krát ]
BT100_s_ACK.png
BT100_s_ACK.png [ 51.31 KiB | Zobrazeno 218 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 19:41 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2229
Has thanked: 106 times
Been thanked: 278 times
Tak takto jsem zatim upravil schema.


Přílohy:
druhy_nastrel.png
druhy_nastrel.png [ 646.88 KiB | Zobrazeno 216 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 21:02 
Offline
Kecálek

Registrován: 26.11.2018, 16:59
Příspěvky: 179
Bydliště: Holešov
Has thanked: 5 times
Been thanked: 34 times
zvláštní, protože pokud se znak ukládá do bufferu (L0081) měl se ack nahodit zpět tam (teda vynulovat před invertorem ...je tam ORL a,#0E0h) čímž se to mělo shodit protože adresa jsou jen dolní bity r7...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 21:12 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 31.05.2017, 11:58
Příspěvky: 1009
Bydliště: Ostravsko
Has thanked: 128 times
Been thanked: 156 times
Jen vypíchnu ty dobré rady, které už padly:
Nostalcomp píše:
.................
Signál BUSY je důležitý. Naopak signál /ACK možná není potřeba vůbec.
.......
Ve výše zmíněné ročence AR ME 90 mě .......... zaujala pasáž ........... že signály BUSY a /STB tvoří spolu s daty ZÁKLADNÍ a POSTAČUJÍCÍ signály rozhraní Centronics. ACK tam vůbec není. To je zajímavé. .................


suksoft píše:
.........udelat impuls Busy ze signalu STB. Kdyz by prisel STB tak by na 500us dal Busy do log1 a tim znemoznil PC poslat dalsi znak.



Minule jsem teda ověřil, že to opravdu funguje jen s tím /STB a BUSY :like: .
Mě osobně to stačí a od dalších pokusů teď upouštím (jelikož nemám dovednosti :scratched: měnit ten soft.), jdu pilovat krabičku a kapotovat.

Ale bedlivě snahy o ACK (díky za komentovaný kód ) na fóru dál sleduji ;) a držím palce :clap:

_________________
....


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 22:51 
Offline
Radil

Registrován: 06.03.2018, 16:00
Příspěvky: 481
Bydliště: Valtínov, Kunžak
Has thanked: 4 times
Been thanked: 162 times
Teď jsem vyzkoušel tisk s upraveným FW interfejsu na PMD85. Interfejs jsem připojil na K3 GPIO0 - data jsou na portu PA, /STB je na PC7 a /ACK na PC6. V PMD jsem pak zadal CONTROL 4,3;160,13 a následující příkaz OUTPUT403;"Zkusebni text" odešle všechna data do interfejsu, který je po stisku tlačítka START vytiskne. PMD nečeká na vlastní tisk a okamžitě se vrací blikající kurzor. Tím pádem by teď interfejs měl fungovat na jakémkoliv počítači, který v v sobě má 8255-ku nastavenou do MODE1.

Pokud pro spolupráci s PC je důležité BUSY, šlo by FW upravit tak, aby jej generoval sám - v podstatě jen inverze /ACK.

2look: s tím shazováním /ACK při ukládání do bufferu máš pravdu, ale nechodilo mi to. Po prvním znaku mi to zůstalo viset v 0. Ale mohlo to být způsobeno nedokonalostí testovacího programu v nadřazeném počítači (Stone64, CP/M, zkompilovaný program v Turbo Pascalu, příkaz InLine). Popravdě jsem rutinu ukládání do bufferu nezkoumal, koukal jsem jen na vlastní přijmutí znaku. Z toho vyplynulo stávající řešení.

Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 23:10 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2229
Has thanked: 106 times
Been thanked: 278 times
Kluci rychle jsem naroutoval desky podle schematu co jsem odpoledne zverejnil. Takto to ted vypada. Klicove signaly se daji invertovat. Take je tam 7474 aby se dal udelat specialni busy signal. Jeste na tom budu pracovat.

Jinak to co se v clanku oznacuje ACK je vlastne Busy.


Přílohy:
deska1.png
deska1.png [ 200.33 KiB | Zobrazeno 173 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: BT-100 jako ASCII tiskárna
PříspěvekNapsal: 07.04.2021, 23:24 
Offline
Radil

Registrován: 06.03.2018, 16:00
Příspěvky: 481
Bydliště: Valtínov, Kunžak
Has thanked: 4 times
Been thanked: 162 times
Pěkné. Ještě bych tam na napájení dal barel 5.5/2.1 mm přímo na desku (mám ho na kabelech a je to vopruz) a ty 2 odpory (R1 a R2) by šly vyměnit za nějaký normální rozměr - 7.5 nebo 10mm. Potřebná napětí jsou blízko jejich druhých vývodů. Případně bych zvážil výměnu 7805 v TO3 za něco "normálnějšího". Mám na ní chladič podle amára a ten je vlažný. Pokud by se použily LS obvody a EEPROM 28C64, třeba by stačila v TO220.

Petr


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ů: 251 ]  Přejít na stránku Předchozí  1 ... 11, 12, 13, 14, 15, 16, 17  Další

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


Kdo je online

Uživatelé procházející toto fórum: Czech Human a 1 návštěvní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