Enterprise Forever

:HUN => Hardver => Topic started by: Povi on 2014.April.23. 07:43:14

Title: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 07:43:14
Ha a Printer protra küldök egy byte-ot, akkor az meddig marad ott? A következő bájt küldéséig? Csak a D0-D7-et használnám, a többi kontroll csatlakozót nem.
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 08:33:05
jobb kérdésem van: hogyan lehet a printer portra a PRINTER: eszköz megkerülésével adatot írni (D0-D7)? illetve hogyan lehet írni még a STROBE bitre, és olvasni a BUSY bitet?
gondolom sima OUT és IN utasítással, de melyik portra?
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 08:43:53
Quote from: Povi
jobb kérdésem van: hogyan lehet a printer portra a PRINTER: eszköz megkerülésével adatot írni (D0-D7)? illetve hogyan lehet írni még a STROBE bitre, és olvasni a BUSY bitet?
gondolom sima OUT és IN utasítással, de melyik portra?
ööö... lehet, hogy meg is találtam itt? :-)
http://enterprise.iko.hu/technical/ET16-2_EXOS_20_Printer_Driver_Specificaton.pdf

adat = 0b6h port
strobe = 0b5h port 4. bitje
ready (busy) = 0b6h port 3. bitje

ugye?
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 08:52:37
Gépi kódú programozás 166. oldalán kezdve (http://enterprise.iko.hu/books/GepiKoduProgramozasEnterprise128.pdf) van példa nyomtatásra. (HTML-be még mindig nem rakta ki ezt a részt Lacika :evil: )
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 08:54:31
Quote from: Povi
Ha a Printer protra küldök egy byte-ot, akkor az meddig marad ott? A következő bájt küldéséig? Csak a D0-D7-et használnám, a többi kontroll csatlakozót nem.
Igen, beíródik az U24-es IC-be, és amíg felül nem írod ott marad.
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 09:08:25
Quote from: Zozosoft
Gépi kódú programozás 166. oldalán kezdve (http://enterprise.iko.hu/books/GepiKoduProgramozasEnterprise128.pdf) van példa nyomtatásra. (HTML-be még mindig nem rakta ki ezt a részt Lacika :evil: )
ez tetszik...

viszont a STROBE bit írását nem egészen értem
mi van a BFF3H címen, miért olvassa azt az A-ba? ott van elmentve b5h port értéke?
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 09:52:00
Quote from: Povi
mi van a BFF3H címen, miért olvassa azt az A-ba? ott van elmentve b5h port értéke?
Igen, mivel azon a porton mást is piszkálhatsz :-) mondjuk saját gépi kódú programban, ami nem az EXOS-al működik együtt, nem kell foglalkozni vele.
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 11:20:49
na, még egy kérdés (közben rájöttem, nekem nem is kell a STROBE)

van egy eszközöm, amit a printer portra kötnék, viszont azon kétirányú a dataport. Erre küldöm az adatot(D0-D7), de erről olvasnám is (D7), hogy foglalt-e az eszköz.
Az addig világos, hogy az EP D7-je megy az eszköz D7-re.
Az eszköz D7-je pedig rá lenne kötve az EP READY-re.
Ez így jó? Vagy az egyik buffer felesleges? (az READY bufferje az inverterrel)
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 11:45:28
Az szerintem is felesleges, viszont honnan fogod tudni mikor érvényes a Ready? Ill. honnan jön az R/W jel?
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 12:50:12
4 bites protokollt használok (d4-d7), így az r/w jel lehet az EP d0-d3-jén bármi.
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 12:54:38
Quote from: Povi
4 bites protokollt használok (d4-d7), így az r/w jel lehet az EP d0-d3-jén bármi.
Így akkor ok, tudhatod, mikor lehet Readyt olvasni :-)
Title: Re: LCD kijelző a printer porton
Post by: Lacika on 2014.April.23. 19:49:13
Quote from: Zozosoft
(HTML-be még mindig nem rakta ki ezt a részt Lacika :evil: )
Úgy tűnik, ezek a példaprogramok csak német gépen működnek. Így is van értelme ezeket berakni? Megnéznéd esetleg, az ASM-ban hol van hiba? (Elég rosszul olvasható a könyv.)
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 21:03:03
Quote from: Lacika
Úgy tűnik, ezek a példaprogramok csak német gépen működnek.
Nem véletlen, legalább vagy 10 helyen leírják, hogy a német gép címkiosztását használják :oops:
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 22:23:18
készítettem egy printer-port vezérelt 7szegmenses órát (most a video kedvéért úgy volt beprogramozva, hogy "mm:ss" -et mutasson), 1Hz-es megszakításban fut
https://www.youtube.com/watch?v=Z1BVLEb8Jm0&feature=youtu.be
7 biten kapja BCD-ben az adatot, ami négy darab BCD dekóderre van kötve:
d0-d3 -> egyesek
d4-d6 -> tízesek (itt nincs szükség a d7-re, mert a tízes helyi értéken nem lehet nagyobb 8-nál a szám)

d7 -> vezérli az perceket (latch)
strobe -> vezérli a másodperceket

egy probléma van csak, amit nem értek, hogy a strobe által vezérelt számjegyek csak akkor frissülnek, ha a strobe vezetéket a kezemben fogom (leföldelem? magamra) - ez vajon miért lehet?

a progi:
Code: [Select]
    org 1000h
    bit 3,d         ;1 Hz-es megszakitas?
    ret z
    ld  a,(0bf74h)  ; A = ora
    set 7,a         ; latch enable
    out (0b6h),a
    ld  a,(0bf73h)  ; A = perc
    out (0b6h),a
    ld  a,(0bff3h)
    or  010h
    out (0b5h),a    ;strobe = 1 (latch enable)
    and 0efh
    out (0b5h),a    ;strobe = 0
    ret
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 22:30:43
:smt038

A két rendszer GND-je össze van kötve?
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 22:32:21
elvileg igen...
de ha nincs, akkor hogy-hogy működik?
ha meg nincs, akkor ez okozhatja ezt a gondot?
elég rejtélyes nekem ez az elektronika (néhol)
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 22:34:44
Ha nincs, az okozhat zavart.
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.23. 22:47:37
megnéztem, tuti van test (ráadásul közös tápról megy a floppymeghajtóval, szóval ott is kéne közösködni az EP-vel)

kipróbáltam elemes meghajtással is, de akkor is ugyanezt csinálja...

az, hogy árnyékolt a kábel az EP és a kütyü között, számít-e valamit?
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.23. 22:51:29
Quote from: Povi
az, hogy árnyékolt a kábel az EP és a kütyü között, számít-e valamit?
Ha nem is árnyékolt, de a printer port GND-jét is érdemes lenne összekötni vele.
Ha megnézed az EP alaplapját, ott is van egy több plusz GND drót felrakva, hogy a különböző GND pontok biztosan egy potenciálon legyenek.
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.24. 08:33:18
ami érdekes, hogy 1mp difi van a két (a ZozoTools féle és a 7szegmenses) idő között
ez miért van?
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.25. 09:24:05
a következő áldozat, amit printer portra fogok kötni, egy karakteres LCD kijelző lesz... :-)

már csak azon gondolkodok, mi az az információ, ami jó lenne, ha folyamatosan megjelenne rajta? (időn kívül, így felszabadulna a ZT féle status sor fölötti sor) :-)

szabad szegmensek száma? egyéb ötlet? PC-ről jött az ötlet, ott házba szokták beépíteni ezeket a kijelzőket, és pl. procihőmérsékletet, ventillátor fordulatszámot stb. jeleznek ki rajta.
Title: Re: LCD kijelző a printer porton
Post by: Zozosoft on 2014.April.25. 10:54:51
Program tesztelésnél lehetne debug infókat kiküldeni rá. Én anno igaz printerre küldtem ki register értékeket.
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.25. 18:42:52
na, egy 0.1-es verzió:

1Hz-es megszakításból megy az idő kijelzése

végül nem kötöttem be azt, amivel ellenőrizni lehet, hogy foglalt-e az LCD (épp dolgozik, vagy tud-e már újabb parancsot / adatot fogadni), két okból is:
1., egyszerűbb volt így bekötni, és megspóroltam egy chip-et.
2., annyira nem lassú az LCD az EP-hez képest:
sima karakterírás az adatlap szerint 40us alatt fut le.

Csináltam próbaképpen egy üres "busy_check" nevű rutint. Erre ugrana rá írás előtt, ha be lenne kötve a LCD-->EP128 irányú kommunikáció is.
Ekkor még hülyeségeket csinált, de kipróbáltam, 3 NOP már elég a rutinban, hogy megfelelő időköz legyen két írás végrehajtása között.

A rendes "busy" bit vizsgálata sokkal több idő lenne, mint amíg lefut 3 db NOP, szóval nem is érné meg megírni.

Az egyetlen hosszú idejű utasítás a képernyőtörlés és a cursor home, ezek akár 1,64 ms is lehetnek. Az összes többi parancs lefut 40us alatt.

A következő lépés, hogy egy EXOS eszközt csinálni az LCD-nek, ami értelmezné a VIDEO: eszköznél már megszokott escape szekvenciákat is :-)

A harmadik lépés pedig, hogy az LCD, mint EXOS-periféria, megszakítást is igényelne magának, és egy rendszerváltozóban lehetne állítani, hogy legyen-e, vagy ne.

EXOS-perifériát még nem csináltam, majd ha elakadok, számítok a segítségetekre, persze majd egy másik topikban :-)
Title: Re: LCD kijelző a printer porton
Post by: Povi on 2014.April.25. 22:52:10
Zozo, azon gondolkodtam, hogy lehet, hogy az EP-ben van a kontakthiba, hogy a Strobe-ot "földelni" kellett, hogy működjön a 7 szegmenses kijelzőm normálisan, és lehet, hogy akkor ezért nem ment tavalyelőtt a C64 lemezmeghajtó a Speccialista találkozón...