(click for English)
hawk.ro / stories / HC-91, interfata 1 si CP/M-ul

HC-91, interfata 1 si CP/M-ul

Din ciclul mai intai bagam in priza si apoi vedem de unde iese fum, aventuri cu HC-91 si sursa inclusa in unitatea floppy. Din lene, si probabil o inclinatie spre a trai periculos, am bagat unitatea floppy de la HC-91 in priza, am masurat (doar cu voltmetrul) ca produce 5v pentru calculator si am conectat si calculatorul. Dupa o scurta cautare cu osciloscopul am descoperit pe unde iese semnalul video-complex din HC-91 (conector DB-9, pinul 7), am produs la repezeala un cablu pe care l-am bagat in monitor si "Engage".

Toate bune si frumoase, m-am distrat putin admirand culorile (cu tot cu bright 1) si apoi am vrut sa testez unitatea floppy. O scurta cautare in manualul pus la dispozitie de dl. George Chirtoaca (multumiri) mi-a aratat cum ar trebui sa arate comenzile BASIC pentru formatarea disketei si alte asemenea operatiuni. Zis si facut, hai sa incercam. FORMAT si prima surpriza: motorul unitatii floppy se invartea haotic (turatie neregulata) si imaginea de pe monitor prezenta niste dungi bizare si oarecum mai intunecate, ca si vagi desincronizari orizontale (linia dintre border si paper nu mai era dreapta ci usor curbata). Asta m-a dus cu gandul la oarece probleme cu filtrarea tensiunii de alimentare. Ei, e momentul sa punem mana pe surubelnita si sa vedem ce e in cutia aceea mare si neagra (unitate floppy+sursa).

Surprinzator de putin! Unitatea floppy e din aceea care nu are nevoie decat de 5v, deci aceasta e singura tensiune stabilizata cu un (presupun) 7805 in capsula TO-3 (nu se mai vede ce e scris pe el). E, daca tot avem osciloscopul la indemana hai sa vedem cum se prezinta situatia. Atarn o sonda (x10) de terminalul de iesire al 7805-ului si dau comanda FORMAT. Rezultatul este oarecum incredibil (cel putin eu nu am mai vazut asa ceva pana acum - ce-i drept nici nu am foarte multa experienta in domeniu).

Riplu (mai pot sa-i spun asa?) mergand de la 3 pana la aproape 7 volti. (Sonda este pe x10, cuplata in CC, gradatia de la marginea inferioara corespunde unei tensiuni de -1v). Atunci cand tensiunea este stabila este putin peste 5v, dar la fiecare rotatie a motorului de floppy apare acest zgomot incredibil. Am oprit sursa am scos placa cu cablajul sa ma uit si eu putin lung la dansa. Prima constatatare a fost ca puntea frigea de nu puteam tine mana pe ea. A doua constatare (surpriza!) a fost ca ambii condensatori electrolitici filtreaza tensiunea de dupa punte (inainte de stabilizator, adica). Singurul filtraj de pe iesirea stabilizatorului e un condensator ceramic mic-mic lipit pe terminalele acestuia. Nu am tras de el sa-i vad valoarea, dar nu cred ca are prea mare relevanta.

Presupun ca este o unitate manufacturata (mai mult sau mai putin) din piese "facute rost". Cablajul arata ca si cum ar fi fost destinat unui montaj mai complex deci imi imaginez ca cineva a incercat sa construiasca o varianta de cost minim. Totusi puntea mi se pare mica pentru aceasta aplicatie iar lipsa unui filtraj "serios" dupa stabilizator este cel putin bizara. Probabil ca la inceput (cand toti condensatorii de filtraj din unitatea floppy si HC erau noi) combinatia o fi functionat in ciuda acestor lipsuri dar eu unul nu ma gandeam sa vad vreodata un asemenea montaj.

NB: Am incercat sa folosesc unitatea si cu o sursa bine stabilizata dar din pacate nu functioneaza. Folosind o alta unitate de 1.44 (nu am alta de 720k) nu am produs rezultate mai bune. Aparent selectia unitatii se face corect (o aud facand seek de la o pista la alta la FORMAT dar dupa formatare CAT 1 sau SAVE rezulta in mesaj de eroare "disk error".

Update 18-OCT-2012

Dupa sfatul lui gadjomisu am acoperit orificiul pentru detectie DD/HD al disketei si a functionat. Eu am crezut -in mod gresit- ca detectia DD/HD influenteaza doar controllerele, nu si unitatea floppy. Apoi o noua serie de problemute cu transferul imaginilor pe diskete. Evident ca pe calculatoarele "contemporane" pe care lucrez acum nu mai am nici macar controller de floppy. De asemenea in prima faza ma asteptam sa fie ceva banal (dd if=nume.dsk of=/dev/fd0 sau rawrite) dar dimensiunea fisierelor .dsk sugereaza ca s-ar putea sa nu fie atat de simplu. Multumiri lui George Chirtoaca pentru soft, manuale si informatii - utilitarele scrise de dansul scutesc o gramada de batai de cap. Dar si dupa ce am gasit o masina pentru transfer (un laptop cu floppy) tot am avut probleme - se pare ca acel laptop nu agreaza disketele de 720. Unitatea floppy are senzor pentru DD/HD dar ceva se intampla caci nu functioneaza (erori citire/scriere).
Urmatorul candidat (P/75, desktop) pare sa aiba ceva probleme cu unitatea floppy, adica nu functioneaza nici 1.44.

Am rascolit (uite d-aia e bine sa stranga omul!) si am scos de sub o stiva de cutii un PC "normal" (AT; a mai trebuit sa caut si adaptor pentru mufa de tastatura) la care functiona si unitatea floppy. Dar evident asta nu a facut decat sa mute putin problema. Acest calculator nu avea reteaua configurata si nici mouse serial pentru el nu era la indemana. N-are nimic, avem Norton Commander cu care poti lega doua computere prin cablu serial. Mai putin cand nu functioneaza (si zau ca nu am inteles de ce*; term95 a mers). Pana la urma transferul a fost facut (sa nu muriti de ras) cu term95 si zmodem. Niciodata nu am vazut rata de transfer asa mare (~10KBytes/s) pe zmodem. Normal, il foloseam pe vremea cand ma conectam prin MODEM la BBS-uri :P

Bun, dupa ce in sfarsit au ajuns cu bine fisierele pe acest calculator am reusit sa fac o imagine a disketei HC Demo. Demo care insa nu a functionat (nu imi dau seama de ce; mesajul de eroare era NONSENSE IN BASIC dupa incarcare si ceva se intampla ca disparea si programul cu pricina; am incercat sa incarc cu MERGE si intr-adevar pe linia 9100 (cea cu eroarea) era ceva de genul:

LOAD *"d";1;"ceva" CODE LOAD *"d";1;"altceva"
adica problema este lipsa caracterului (tokenului, mai corect spus) ":" intre 2 comenzi alaturate. Nu stiu cum/de ce a aparut problema; aparent si celelalte programe de pe acea disketa aveau suferinte similare. Am uitat sa fac poze cu partea asta.

Ok, lasam BASIC-ul in pace, hai sa vedem daca merge CP/M. Se pare ca format-ul de disketa e diferit de la BASIC la CP/M dar scrierea cu formatare (folosind CPMIMG, tot de la George) a functionat.
VICTORIE! Avem CP/M functional:


Update 2015
*Si din ciclul "am fost un idiot" - nu functiona cablul serial in NC pentru ca uitasem sa fac strapurile RTS-CTS si DTR-CD-DSR, am realizat in 2015 cand l-am folosit pentru altceva.

Update 2020
Mai multe aventuri: Snoopy, HC-91 & Robotron

Nota, lansare CP/M: PRINT USR 14446


Publicat in 2013 de Mihai Gaitos - contacthawk.ro