Pienen huhkimisen ja hihkumisen jälkeen sai rauhoituttua ja katsottua, mikä laite noita lukuisia lcd-näyttöjä oikeastaan ohjaa. Ohjainkortiltahan löytyi 8085-prossu ja jotain muisteja. Näytölle pitäisi saada omaa tekstiä, ja se käy kahdella tavalla - otetaan selkoa, miten ohjainkortille pitää puhua sarjaportin yli, tai reversataan se, miten ohjainkortti juttelee itse näyttöpaneeleille.
Kortilta löytyy, ylhäältä alas ja vasemmalta oikealle:
- DM74LS290M, 4bit laskuri
- CD4020BCN, jälleen laskuri, "14-stage ripple carry binary counter"
- MM74HCT138N, 3-to-8 dekooderi
- (UP)D8251AFC, USART, 2 kpl (UP ei merkitty, mutta monet tämän sarjan NEC:n piirit googlautuvat µP-alkuisiksi)
- MC1489P, quad line receiver eli RS-232-tasomuunnin
- MC1488P, samaa kun edellinen
- DM74S288AN, 32B EEPROM (teipissä lukee 1166-01)
- DM74S472AN, 512B EEPROM (teipissä lukee 1166-02)
- NM27C256Q, 32KB EPROM, ikkuna ja metalliteippi sen päällä, teksti "27.10.94 hog"
- FCB61C65-70P, 8KB SRAM
- KM28C64-20, 8KB EEPROM
- (UP)D8155HC 256B SRAM I/O-porteilla höystettynä
- (UP)D8085AHC, 8-bittinen 8085-mikroprosessori
- (UP)D8255AC-2, jokin oheislaitepiiri eli kasa yleistä I/O:ta
- 74HCT373N, bufferi/latch
Nuo (E)EPROM-piirit ovat kiinnostavimpia, sillä niissä on dataa sisällä. EPROM on uv:lla tyhjennettävä muisti, ja EEPROMit tyhjentyvät ihan sähköisestikin. Ensin mainitussa lienee softat kun se on niin suurikin, ja muissa jotain dataa. Nyt on vieläpä käynyt niin onnellisesti, että nämä kaikki ovat piirikannoissa eikä kolvattu kiinni. Otetaanpa irti ja luetaan tieto pc:lle! Leipälevylle teensy, luettava piiri ja kasa hyppylankoja datalehden osoittamiin paikkoihin. Teensylle koodia rullaamaan osoitenastoihin kaikki osoitteet läpi ja lukemaan datanastoista sitten mitä tuli. Tämä sarjaportilla tietsikalle.
HAHAA VOITTO! EPROMilla on kuin onkin softaa, ja samaa tekstiä joka näkyy ruudulla bootissa:
... 000000e0 7f 05 7f 7f 17 5a 3a 20 20 41 3a 20 20 48 09 53 |.....Z: A: H.S| 000000f0 4b 41 4e 44 49 2e 46 4e 54 20 00 43 68 65 63 6b |KANDI.FNT .Check| 00000100 3a 20 49 6e 69 74 2e 20 4d 65 6d 6f 72 79 00 55 |: Init. Memory.U| 00000110 4c 41 4d 2d 48 30 47 09 56 3a 32 37 2e 31 30 2e |LAM-H0G.V:27.10.| 00000120 39 34 00 20 00 54 65 73 74 3a 09 53 50 41 20 20 |94. .Test:.SPA | 00000130 20 00 03 57 44 2d 54 65 73 74 3a 20 20 00 17 00 | ..WD-Test: ...| ... etc ...
Ja mites se kahdeksan kilon EEPROM?
00000000 84 30 30 34 11 c4 65 65 65 65 4d 48 45 4c 53 17 |.004..eeeeMHELS.| 00000010 02 31 42 30 31 20 20 20 20 52 75 6f 68 6f 6c 61 |.1B01 Ruohola| 00000020 68 74 65 65 6e 02 32 42 30 31 20 20 20 20 54 69 |hteen.2B01 Ti| 00000030 6c 6c 20 47 72 7b 73 76 69 6b 65 6e 02 31 42 30 |ll Gr{sviken.1B0| 00000040 33 20 45 69 20 6d 61 74 6b 75 73 74 61 6a 69 6c |3 Ei matkustajil| 00000050 6c 65 02 32 42 30 33 20 45 6a 20 66 7c 72 20 70 |le.2B03 Ej f|r p| 00000060 61 73 73 61 67 65 72 61 72 65 02 31 42 30 34 20 |assagerare.1B04 | ... etc ...
Tutulta näyttää! Pienemmissä piireissä ei ollut mitään näin selkeästi erottuvaa. Tuo softa alkoi kiinnostaa enemmän, ja hetken googlailun jälkeen löytyi ihan pätevän oloinen dasmx-niminen windows-komentoriviohjelma joka ajautuu winellä ihan hyvin. Disassembly ohjelmakoodista vaikuttaa ihan legitiltä näin pikaisesti katsottuna.
Seuraavaksi pitääkin sitten miettiä, jaksaako tuota kuuden tuhannen rivin assemblyä käydä läpi sen verran, että väyläprotokolla(t) selkiytyisivät. Helpompaa lienee nuuhkia lcd-paneeleille menevää parinkymmenen karvan väylää laitteen bootatessa ja kaapata signaalit siitä, jos nyt olisi laite jolla niin monta signaalia saisi kerralla kaapattua. Konekielikoodinkin lukeminen toki on aivan mainiota viikonloppupuuhaa. Tässä kyllä auttaisi jokin älykäs softa joka parsisi tuosta jotain graafia, mutta dasmx oli aika fiksu ja osasi erotella aliohjelmat erikseen yms.
En usko valmistajan pahastuvan vaikka näitä jakaisikin eteenpäin - vehje on 90-luvulta eikä siinä ole mitään teknisesti mullistavaa.
Binääridatat (kahdesta viimeisestä ei tiedä mitään ennen softan lukemista, niissä on aika monotonista sisältöä muutenkin):
- program.bin 32KB raakadataa EPROMilta
- textdata.bin 8KB EEPROMin tekstidata
- eeprom512.bin 512B EEPROMin tekstidata
- eeprom32.bin 32B EEPROMin tekstidata
Sekä dasmx:llä disasmattua koodia (wine DASMx.exe -c8085 -o0000 -e0000 -t program.bin): program.lst
Koodin lisäksi (kunhan käskykantaan tutustuisi ensin) olisi kiva toki myös mietiskellä, mitkä i/o:t prossusta ovat kiinni missäkin -- minkä lukeminen tarkoittaa ohjausväylän kuuntelua, ja mitkä nastat oikeastaan menevät lcd-väylälle?
4 kommenttia
- b00n 16.03.2013 11:01Eka!
- kepsu 16.03.2013 11:26Vähänkö siistiä!
- kumma 16.03.2013 12:57Hieno projekti!
- ilmz 26.03.2013 16:51Regee!
Oma kommenttisi
Mielipide tämän sivun asiasta? Kirjoita toki. Älä raapusta kuitenkaan ihan asiattomia juttuja.
Jos on yksityisempää asiaa, tarkkaa kysyttävää tai aihetta pidemmälle keskustelulle, käytä yhteydenottolomaketta kommentoinnin sijaan.
Hölmöt kommentit saatetaan moderoida pois jälkikäteen.