Saturday, April 13, 2013

XT Mánia 5. Real Time Clock

Počítače rady XT nemajú batériu, CMOS RAM a ani čip hodiniek a kalendára. To zase nie je až také zlé, pretože už som videl zopár zničených dosiek triedy 286/386 keď vytiekla kyselina z NiCd akumulátora. Letovať akumulátor na motherboard nebol dobrý nápad. Neskôr neviem od kedy, sa začali dávať batérie CR2032, ktoré už sú bezpečné. Takže som riešil problém ako dostať do mojeho XT hodinky a kalendár. Prišiel som na tri riešenia, ale určite ich je viacej. Jedno z riešení je dokonca použiteľné aj pre NCB85.

8-bitová ISA karta
Pôvodne som chcel kúpiť nejakú 8-bitovú ISA kartu s držiakom na CR2302 a CMOS kalendárovým čipom. Lenže na eBay som videl iba jednu a aj o tú sa strhla bitka a vyfúkli mi ju. Potom som sa popýtal na vintage-computer.com fórume a nikto žiadnu neponúkol.

dClock
Jeden člen z USA mi ponúkol nasledovnú vecičku. Volá sa to dClock a stálo to "len" 59.95 USD v roku 1985 ;-)

Mňa to vyšlo aj s poštovným na menej ako polovicu v dnešných USD. To sa dá. Jedná sa o takzvaný "no-slot clock chip". V tomto prípade je to v podstate ISA karta, ktorá ale nezaberá jeden slot. Namiesto toho je zapojená do socketu pre CPU. Tie čipy okolo sú v podstate ISA logika. Dostal som to originál zabalené a čo bolo dôležité, aj s návodom. Návod obsahuje printing dvoch programov v BASICu, ktoré treba ručne naťukať. Tu je pre ukážku jeden z nich.
10 FOR I%=1 TO 13
20 X=0
30 FOR K%=1 TO 10
40 READ J$
50 X=X+VAL("&H"+J$)
60 NEXT K%
70 PRINT X
80 NEXT I%
90 INPUT "IS DATA OK (Y/N)";ANS$
100 IF ANS$="Y" OR ANS$="Y" THEN RESTORE:GOTO 110
105 END
110 OPEN "READDCLK.COM" AS #1 LEN=1
120 FIELD #1,1 AS C$
130 FOR I%=1 TO 130
140 READ J$
150 LSET C$=CHR$(VAL("&H"+J$))
160 PUT #1, I%
170 NEXT I%
180 CLOSE #1
190 SYSTEM
200 DATA EB,02,90,0A,BC,F0,00,B7,0C,E8
210 DATA 3C,00,32,ED,80,F9,50,7D,03,80
220 DATA C1,64,81,C1,6C,07,51,E8,2A,00
230 DATA 51,E8,26,00,58,8A,D1,8A,F0,59
240 DATA B4,2B,CD,21,FE,CF,E8,17,00,80
250 DATA E9,50,8A,E9,E8,0F,00,51,E8,0B
260 DATA 00,8A,F1,32,D2,59,B4,2D,CD,21
270 DATA CD,20,B3,02,BA,C0,06,8A,E0,8A
280 DATA C7,0C,C0,EE,EB,01,90,24,4F,EE
290 DATA 90,B0,60,EE,32,C0,8A,C8,EC,24
300 DATA 0F,3A,C1,75,F7,FE,CF,FE,CB,75
310 DATA DB,32,C0,EE,8A,C4,32,E4,2E,F6
320 DATA 26,03,01,02,C8,C3,00,00,00,00
Tieto programy po spustení vyrobia na disku dva COM súbory. Jeden má dĺžku 120-bytes a druhý 130-bytes. Samozrejme v DATA sú strojové inštrukcie. Jeden program číta čas a dátum z čipu a zapíše ho do systémových premenných. Druhý program zapíše systémový čas a dátum do čipu.

DS1216E
Tretia možnosť je čip DS1216E. Jedná sa tiež o "no-slot clock chip" ale neosádza sa do socketu pre CPU. Osádza sa do 28-pinového socketu pre ROM. A to je to zaujímavé, pretože tým pádom by pasoval aj pre ROM socket na NCB85.

Ako vidno na obrázku, jedná sa o priechodzí inteligentný socket zálohovaný Lion batériou. Podľa ohlasov má táto batéria životnosť minimálne 10 rokov. Cena je na prvý pohľad šialená. Farnell zaň pýta 30 EUR. Na eBay sú aj lacnejšie, ale sú z číny a pravdepodobne sa bude jednať o 10 a viac rokov staré čipy s batériou na konci životnosti. Ktovie, možno by sa dali tie sockety ešte zachrániť, niečo na spôsob záchrany clock čipov DS12887.

http://www.mcamafia.de/mcapage0/dsrework.htm

http://www.oocities.org/markuskauer/rtc.html

V každom prípade, DS1216E sa stále vyrába a nie je End of Life. A ako to funguje ? V normálnom režime je inteligentný socket pasívny. Všetky signály sú priechodzie a ROM je k dispozícii systému. Pritom ale socket stále dáva pozor čo sa deje na adresovej zbernici. Ak detektne určitú sekvenicu adries, vie že komunikujeme s ním. Vtedy odpojí zasunutú ROM a začne zapisovať alebo čítať z/do kalendároveho čipu. Že sa jedná o ROM socket a nemáme k dispozícii WRITE signál? To nevadí, tento socket interpretuje dianie na adresovej zbernici ako príkazy! Šanca na náhodnú aktiváciu inteligentného socketu je zanedbateľná. Konkrétne je to 1:2^64. Inicializačná sekvencia má dĺžku 64 adries.

Tuesday, April 2, 2013

NCB85 6. CP/M 64k V2.2

Dnes ráno mi prišla doštička interface k NCB85 a PMD32SD od Martina. Kábel som už mal pripravený tak som rýchlo osadil súčiastky, naprogramoval EPROM a zapol hyperterminál. Po zapnutí som videl toto:



Keby to vždy išlo takto hladko :-) Odteraz sa budem snažiť testovať a ladiť na NCB85. ZetaSBC ale ostáva na stole, budem sa snažiť overovať programy na obidvoch CP/M strojoch.