[zxspectrum] R: ZX Ear-Mic to RS232

  • From: "Simone Voltolini" <simone.voltolini@xxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 8 Mar 2015 17:40:23 +0100

Fantastico!

-----Messaggio originale-----
Da: zxspectrum-bounce@xxxxxxxxxxxxx [mailto:zxspectrum-bounce@xxxxxxxxxxxxx] 
Per conto di Luca Alimandi
Inviato: domenica 8 marzo 2015 12:54
A: zxspectrum@xxxxxxxxxxxxx
Oggetto: [zxspectrum] ZX Ear-Mic to RS232

Ieri, dopo l'ennesaima incursione in cantina, frugando nella sezione 
"scartoffie", ho ritrovato il listato completo del programma "Italian!", un 
add-on per il DTP pack che realizzai negli anni '80 come semplice sintesi 
vocale per leggere a voce i testi prodotti con il pacchetto.
Ho pensato che potrei rimetterci mano e farlo diventare un programma 
stand-alone per leggere qualunque file di testo... E già che ci sono vorrei 
provare a migliorarlo un po' (oggi con gli strumenti che abbiamo si possono 
produrre campioni molto migliori e magari potrei raffinare un po' gli 
algoritmi...)

Ma la cosa più interessante è che dal reparto "cavi e cavetti" è saltato fuori 
un cavetto che non ricordavo di aver costruito anni fa; apparentemente sembrava 
un semplice spezzone di cavo collegato ad uno spinotto DB9, di quelli usati per 
collegarsi alla RS232... Però l'ho voluto aprire perchè non ricordavo come 
erano fatti i collegamenti, e con mia grande sorpresa dentro ci ho trovato un 
intero circuito, con tanto di intergato MAX232, regolatore di tensione 7805, 5 
condensatori e
2 diodi!!!
Incuriosito ho cercato di scoprire cos'era quella "cosa", e così ne ho 
ridisegnato lo schema.
Tra l'altro in uno spazio così piccolo la realizzazione era stata fatta in modo 
"bestiale", saldature improbabili, fili contorti, i pin dell'integrato 
maciullati per far entrare tutto nei pochi millimetri a disposizione!!!
In pratica mi sono ricordato che era un'interfaccia che avevo costruito per 
collegare una vecchissima agenda elettronica (parlo dei primi anni '90, quindi 
non ridete, per favore!) al PC per salvare i dati (numeri telefonici, 
appuntamenti, ecc.) ed eventualmente ripristinarli.
Ecco l'"obbrobrio", per chi proprio insiste nel voler assistere allo
scempio!:
https://drive.google.com/file/d/0B2gTtPKDTuD_akNuOE9NZFJQclU/view?usp=sharing
https://drive.google.com/file/d/0B2gTtPKDTuD_elhnN3NpX2NhU28/view?usp=sharing
https://drive.google.com/file/d/0B2gTtPKDTuD_bmdlbUliY3pkV2M/view?usp=sharing

Così mi è venuta in mente un'idea, che tra l'altro mi frullava da un po' 
nella testa. Forse è un po' pazza ma ve la dico ugualmente :-)

L'idea consiste nell'usare questa interfaccia collegandola alle prese EAR e MIC 
dello ZX Spectrum.
In questo modo si potrebbe ottenere un'interfaccia RS232 per il collegamento 
con il PC e usarla con i programmi di Enrico (progetto HD).

Ci ho pensato un po' e credo che la cosa potrebbe funzionare.
Ho riadattato un po' lo schema e questo è il risultato:
https://drive.google.com/file/d/0B2gTtPKDTuD_Wm9ybG5IR0VkOGM/view?usp=sharing

L'alimentazione viene ottenuta prelevando tramite un diodo il segnale DSR, che 
durante la comunicazione viene posto a +12V dal software di Enrico (puoi 
confermare?), e poi abbassando la tensione a 5V tramite il regolatore 7805.
L'integrato "tuttofare" MAX 232 si occupa, tra l'altro, di generare le due 
tensioni +10V e -10V necessarie al funzionamento del tutto.
Quindi, sempre lui, converte i segnali TTL in RS232 e viceversa.

In particolare il segnale prelevato dalla presa EAR viene convertito in
RS232 e inviato  alla presa RXD, mentre il segnale TXD viene convertito in TTL 
e inviato alla presa MIC.
Ho aggiunto anche i ponticelli per assicurare l'handsahke (Enrico, mi confermi 
che così vanno bene?...)

Ora il problema è capire se il software riuscirà a pilotare il tutto.
Infatti sullo Spectrum i segnali EAR e MIC in realtà condividono lo stesso pin 
della ULA, che effettua sia l'IN che l'OUT sul pin 28. Poi la circuiteria 
esterna (restistenze, diodi e condensatori) disaccoppiano in qualche modo i due 
segnali.

Non ho ancora appurato se in questo modo l'interfaccia che ho pensato potrebbe 
funzionare, ma credo che qualche possibilità ci sia.
Allo scopo di effettuare dei test vorrei chiedere cortesemente ad Enrico di 
apportare l'ennesima (!) modifica ai suoi programmi perchè, lato Spectrum, 
utilizzino la porta (254) e il bit (6) usati dallo Spectrum per leggere e 
scrivere i dati sulle cassette.

Tu, Enrico, doversti sapere meglio di me come fare, ma ti ricordo che 
probabilmente prima di leggere il bit in entrata occorre settarlo in qualche 
modo; dovrai forse ripassare le routine della ROM per rivedere il meccanismo...
Forse può essere utile anche dare un'occhiata qui: 
http://piters.tripod.com/cassport.htm; qui, tra l'altro, viene spiegato che può 
esserci un limite alla velocità di cambiamento di stato dovuto alla presenza 
dei condensatori, il che potrebbe impedire di arrivare alla velocità di 57000 
bps, ma ne parliamo più avanti... Inoltre si parla anche di differenze tra 
Issue 2 e 3, e di altri bit che possono influenzare il comportamento.

Allora, te la senti di fare le modifiche? Altrimenti in pvt mandami il listato 
delle routine di lettura e scrittura che provo ad effettuare io le modifiche. 
Grazie!

Se la cosa funzionasse sarebbe interessante, perchè, con un costo molto 
ridotto, sarebbe possibile collegare lo Spectrum al PC senza neanche aprirlo o 
dover costruire e connettere un'interfaccia all'edge connector, che è sempre 
un'operazione delicata.
L'unico problema sarebbe il fatto che dal beeper uscirebbe il suono dei segnali 
in transito, un po' come avveniva con i modem telefonici; ma al limite potrebbe 
essere visto come un modo per avere un monitoraggio delle attività; tutto 
sommato è quello che avviene con le cassette!

Anche se ci sono molti dubbi sulla riuscita dell'esperimento, vorrei provarci 
ugalmente... non si sa mai! E poi avendo già l'interfaccia costruita è solo 
questione di qualche modifica al software...

-- 

|_ /-\



Other related posts: