ANNO III
NUMERO 11 '8 3
******
******
******
**********
****************
**********
**********
**********
******
******
******
******
******
******
******
****** ****** ******
******
******
******
******
******
******
******
******
******
******
****************
******
design
*****
******
******
******
****** ******
******
******
******
******
******
******
******
******
********
******
******
******
******
******
**********
******
********
**********
BOLLETTINO DEL CLUB UTENTI MICRO DESIGN
NOVEMBRE 1983
COME UTILIZZARE TUTTI GLI OTTO BIT PER IL PILOTAGGO DELLA
STAMPANTE, USANDO L'INTERFACCIA PARALLELO LX 389
Con questa reaiiszasione facciamo seguito alle richieste
pervenuteci da molti soci che, dotati di stampante in grado di
gestire i caratteri grafici o semi grafici, non potevano
utilizzarli. Questo perche' 1'interface i a per stampante ne pilota
solamente 7, fissando ad 1 l'ottavo bit (o a 0 per chi avesse
eseguito il ponticello da noi illustrato nelle prime serie di
bollettini) .
L'utilizzo di tutti gli otto bit comporta la necessita' di
eseguire alcune facili modifiche hardware sulla scheda e di
modificare anche le routine del CP/M.
Le modifiche hardware consistono nel taglio di una pista e
nell'esecuzione di due filature, come indicato nello schema
elettrico che segue.
USCITA 1-
-ENTRATA 1-
acj £•e seR c
i «
1 1 M i« •' ■»
IU
■e
II
/ i
* IVI» H <1
BH.
p
p
-■ ENTRATA2-
MicroDesign Nov. 1983 n. 11
1
V. Risoldi
In pratica sara' necessario:
1) interrompere la pista che parte dal piedino 8 del
connettore della stampante
2) collegare il piedino 8 in questione al piedino 9 del
connettore 2
3) collegare il piedino 17 del connettore della stampante al
piedino 9 del connettore 1 <chi avesse eseguito il
ponticello fra il piedino 17 del connettore della stampante
e massa lo dovrà' rimuovere).
Le modifiche software consistono nel:
1) battere il programma che segue, tramite un qualsiasi
programma di EDITING (ED .COM, US.COM, ecc.)
2) farlo assemblare mediante il programma ASM.COM
3) farlo trasformare in .COM tramite il programma LOAD.COM
4) lanciare il programma cosi generato
Il programma provvedera' ad eseguire le modifiche alle
routines di uscita sulla stampante del CP/M, dopo di che'
rilancera' il CP/M. Le routines modificate resteranno disponibili
in memoria fino a che non sara' dato un reset, od il sistema
sara' spento. Tutti i programmi che faranno uso delle routines di
uscita sulla stampante utilizzeranno le nuove routines e quindi
potranno fare uso di tutti gli otto bit.
Ecco di seguito la lista del programma:
PROGRAMMA DI INIZIALIZZAZIONE DELLA PORTA PARALLELO
COME STAMPANTE UTILIZZANTE TUTTI GLI 8 BIT
DATAPORT
EtìU
3H
LISTI
PUSH
PSW
r
IN
DATAPORT
LUNGBIOS
EGU
440H
ANI
IH
JUMPLST1
EGU
2AAH
DB
20H,0FAH
"
MOV
A, C
ORG
10QH
OUT
DATAPORT
r
MVI
A,7FH
MVI
A,OFFH
OUT
DATAPORT—1
OUT
DATAP0RT-1
MVI
A,OFFH
7
OUT
DATAP0RT-1
LHLD
1
POP
PSW
LXI
D.OFFFDH
RET
DAD
D
5
SHLD
BASEBI0S
FINE
END
LXI
D,LUNGBIOS
DAD
D
SHLD
BASEROUTINES
LHLD
BASEBI0S
XCHG
LXI
H,JUMPLST1+1
DAD
D
SHLD
LSTADX
f
LHLD
BASEROUTINES
XCHG
LHLD
LSTADX
MOV
M,E
INX 1
H
MOV
M,D
LHLD
BASEROUTINES
XCHG
LXI
H,LISTI
LXI
B,FINE-LIST1
DB
0EDH.0B0H
MVI
A„0CQH
STA
3H
JMP
0
BASEBI0S
DS
2
BASEROUTINES
DS
2
LSTADX
•
r
DS
2
MicroDesign Nov. 1983
n. 11
2
V. Risoldi
OROLOGIO DI SISTEMA/CALENDARIO
In questo numero del bollettino vi presentiamo un circuito
che permette di dotare il nticro di un orologio calendario, adatto
per le applicazioni in tempo reale, per la gestione della
contabilita' e per qualsiasi altro uso in cui sia necessario
sapere l'ora, o la data, o misurare intervalli di tempo.
Alcuni dei mi ero reperibili in commercio sono dotati di
circuiti, detti di "reai t i me clock", che generano al nticro
interrupt ripetitivi utilizzando oscillatori di frequenza piu' o
meno precisa, a seconda del tipo di oscillatore utilizzato. In
questi nticro la funzione di conteggio viene realizzata mediante
1 ' i ncrentento, ad ogni interrupt ricevuto, di un contatore
realizzato a software.
La gestione degli oscillatori di "reai tinte clock" e' pero'
piuttosto complessa, talvolta interferisce con i programmi
dell'utente del nticro e, se non e' realizzata con cura, rischia
di contare male il trascorrere del tempo, talvolta con errori del
100 %.
Il circuito che vi presentiamo si basa su un principio del
tutto diverso, infatti e' costituito da un vero e proprio
orologio con datario, che invece di mostrare l'ora su un
quadrante, la indica mediante il contenuto di alcuni registri
leggibili da programma. Esso utilizza un oscillatore di
precisione che funziona con un quarzo ad alta stabilita', dello
stesso tipo di quelli utilizzati dagli orologi da polso
elet t ronici.
L'orologio aggiorna automaticamente millesimi, centesimi e
decimi di secondo, secondi, minuti, ore, giorni della settimana
(indicati naturalmente con un numero! 1 = LUNEDI', 2 = MARTEDÌ'
ecc.), giorni del mese, mesi . Il datario tiene automaticamente
conto del numero di giorni proprio di ogni mese<28 per FEBBAIO,
30 per NOVEMBRE, ecc.>.
Il circuito da noi progettato mantiene naturalmente anche le
caratteristiche dei circuiti di "reai time clock" menzionati in
precedenza, ed e' quindi in grado di generare, su comando
software, interrupt al microprocessore ad intervalli
predeterminati. Invece di avere una frequenza fissata a priori
esso pero' consente di scegliere da programma la cadenza degli
interrupts ( ogni decimo di secondo, ogni secondo, ogni minuto,
ogni ora, ogni giorno, od infine ogni mese).
Oltre a quanto sopra il circuito dell'orologio e' dotato di
"sveglia", o meglio di un circuito di comparazione che consente
di poter generare interrupt al micro ad un'ora, ed eventualmente
ad una data, programmata dall'utente.
La sveglia e' organizzata in modo tale che la comparazione
col contenuto dei contatori dell'ora e della data avviene
separatamente per ogni unita' di conteggio (frazioni di secondo,
secondi, minuti, ore, ecc.) . Se una certa unita' non deve essere
utilizzata può' essere definita non significativa. Tutto questo
consente di soddisfare tutte le esigenze: si potrà' ad esempio
avere un interrupt alle 15.25 di tutti i giorni, oppure solo del
martedì', oppure del giorno 15 di ogni mese oppure del 18 di
Febbraio e cosi' via.
Tale sveglia e' anche utilizzabile, per mezzo del circuito
che vi presenteremo nel seguito, per accendere il micro ad una
data ed un'ora prefissata, anche a mesi di distanza, cosa che
può' consentire realizzazioni davvero interessanti, ad esempio
nell'utilizzazione del micro come antifurto.
L'orologio e' dotato deila possibilità' di caricare l'ora e
la data di partenza e dispone di un comando separato di "VIA" per
sincronizzare il conteggio.
MicroDesign Nov. 1983 n. 11
3
V. Risoldi
Oltre a questo esso consente l'azzeramento di qualsiasi
unita' di conteggio ( millesimi, centesimi, decimi di secondo,
secondi, minuti, ecc.) in modo da permettere la
risincronizzazione, ad esempio sul segnale orario RAI.
Una delle prestazioni piu' significative di cui abbiamo
voluto dotare questo circuito e' l'alimentazione con batteria in
tampone. Infatti approfittando del fatto che il componente
utilizzato e' realizzato in tecnologia CMOS a bassa tensione,
abbiamo inserito nel circuito una batteria ricaricabile al nichel
cadmio che alimenta l'orologio quando il micro e' spento e
consente alla funzione di conteggio dell'ora e della data di
proseguire indisturbate. Pertanto l'ora e la data dovranno essere
caricate solo la prima volta o dopo che il micro sara' rimasto
spento per lunghissimo tempo. Naturalmente la batteria e'
automaticamente ricaricata quando il micro e' acceso.
Visto il suo assorbimento estremamente ridotto, l'orologio
può' funzionare senza alimentazione principale, partendo da
batteria completamente carica, per piu' di 4000 ore (cioè' piu'
di 5 mesi). D'altra parte sono sufficienti 30 ore (cioè' 15
giorni, tenendo il micro acceso 2 ore al giorno) per ricaricare
completamente la batteria.
L'orologio e' stato dotato di un circuito di precisione,
st t*b i 1 i zzat o in temperatura, che inibisce automaticamente ogni
accesso ai suoi registri quando la tensione di alimentazione
principale si trova al di sotto di 4,5 V. Questo evita che
durante l'accensione e lo spegnimento del micro si possano
generare delle operazioni spur’ie che vadano ad alterare il
contenuto dell'orologio.
Una foto della scheda dell'orologio/calendario e' riportata
qui di seguito.
MicroDesign Nov. 1983 n. 11
4
V. Risoldi
L'orologio e' stato progettato per essere collegato alla
scheda Mult i funz i one MICRO design SMF 001 ed utilizza il segnale
di WAIT per sincronizzare la velocita' del mi ero, durante gli
accessi, a quella leggermente minore del circuito CMOS che
contiene le unita' di conteggio. In tale modo la velocita' del
circuito risulta del tutto indipendente da quella del micro, per
cui sara' possibile montare tranquillamente l'orologio anche su
sistemi con unita' centrale funzionante a 4 MHz, senza alcuna
modifica, ne' hardware ne' software
L'orologio di sistema/calendario e' stato denominato OSC 101
ed e' ordinabile, in Kit, presso la MICRO design, al prezzo
indicato nel listino.
IL SOFTWARE DEI GESTIONE DELL'OROLOGIO/CALENDARIO
Data la organizzazione estremamente semplice,
1'orologio/calendario MICRO design OSC 101, può' essere gestito
facilmente da software, sia in linguaggio ASSEMBLER, che in
linguaggio BASIC, che in qualsiasi linguaggio ad alto livello.
La struttura dell'orologio infatti consiste in un registro
di puntamento alla funzione desiderata (ad esempio contatore dei
secondi) ed una porta su cui si effettua l'operazione (lettura o
scrittura). Anche nel caso degli interrupts la gestione risulta
molto semplificata, infatti l'orologio e' dotato di un registro
di abilitazione del 1' interrupt e di un registro di lettura della
sorgente di interrupt e reset di quest'ultima.
Per facilitare ulteriormente le cose il manuale tecnico del
Kit MICRO design OSC 101 e' fornito completo delle liste dei
programmi di:
-Messa a punto dell'ora
-Abilitazione degli interrupts periodici
-Messa a punto della sveglia ed abilitazione del 1'interrupt
relativo (o del circuito di riaccensione del micro)
-Esempi delle subroutines da utilizzarsi nel corso di un
programma per effettuare la lettura dell'ora e della data
Tutti questi esempi sono scritti sia in ASSEMBLER che in
BASIC3 e faciliteranno molto la vita a coloro che vorranno
scrivere programmi utilizzanti le funzioni dell'orologio.
In aggiunta a quanto sopra il Kit MICRO design OSC 101 e'
anche dotato della lista in ASSEMBLER (ASM.COM) di un programma
funzionante ad interrupt che mostra la data e l'ora, con
aggiornamento automatico, sull'angolo in alto a destra dello
schermo. Funzionando ad interrupt tale programma e' in grado di
girare contemporaneamente al CP/M ed ai programmi che girano
sotto CP/M, senza disturbo reciproco.
Per coloro che volessero evitarsi la noia e gli errori della
battitura, le liste di tutti i programmi indicati sopra e i
programmi già' pronti in linguaggio macchina (questi ultimi
naturalmente solo per quanto scritto in ASSEMBLER) sono
disponibili come :
Bliblioteca MDUG - Volume 8
al prezzo indicato nel listino.
MicroDesign Nov. 1983 n. 11
5
V. Risoldi
ACCENSIONE E SPEGNIMENTO AUTOMATICO DEL MICRO
Qui di seguito vi presentiamo il circuito che, collegato
all'orologio di sistema/calendario MICRO design OSC 101, vi
consentirà' di accendere o spegnere, a scelta, il vostro micro ad
un'ora ed una data prefissate da software.
Il circuito sfrutta l'uscita della "sveglia" dell'orologio
per pilotare un rele' che dia alimentazione a tutto il micro. Il
rele' e' del tipo dotato di contatto di autoritenuta, in modo
tale che una volta acceso sia in grado di automantenersi nella
stessa condizione, anche se il segnale di pilotaggio viene a
mancare. ■ -•
Il comando manuale di accensione e' ottenuto mediante la
pressione del pulsante PI, mentre lo spegnimento manuale si
ottiene mediante l'azionamento del pulsante P2.
Il deviatore SI permette di scegliere l'azione eseguita
dalla "sveglia". In posizione A--B il micro verrà' acceso al
momento prefissato, in posizione A-C il micro verrà' invece
spento.
Tutto il circuito e' alimentato tramite un trasformatore per
mantenere l'isolamento fra l'elettronica del micro e la rete.
Il circuito di autoaccensione rimane naturalmente alimentato
anche quando il micro e' spento, ma il suo assorbimento e'
limitato ed il consumo del circuito e' veramente ridicolo.
Lo schema del circuito di autoaccensione/spegnimento e'
riportato nel seguito.
UN COMPILATORE MUSICALE PER FAR SUONARE IL MICROCALCOLATORE
Siamo sicuri che il programma che vi presentiamo risponderà'
ai desideri di molti soci, che ci avevano piu' volte richiesto di
poter far suonare il micro, per divertire gli amici ed i
familiari e per ottenere effetti speciali.
Il principio su cui si basa la generazione delle frequenze,
in molti programmi, e' relativamente semplice, infatti si tratta
solamente di generare dei loop di ritardo di durata pari al
semiperiodo della frequenza da Sintetizzare e di andare quindi a
scrivere uno zero od un uno su una porta di uscita del tipo
regist ro.
MicroDesign Nov. 1983 n. 11
6
V. Risoldi
La musica cosi' generata e' pero' monocordo e piatta,
infatti di tutte le componenti della musica (ampiezza, timbro,
note ecc.) e' possibile variare solo le frequenze e quindi le
note, senza alcuna possibilità' di controllo sulle altre
componenti
nettamente migliori possono essere ottenuti
interfacce di uscita molto piu' complesse,
insieme di convertitori DIGITALI/ANALOGOCI e di
questo ultimo caso i risultati ottenuti sono
tutto paragonabili a quelli di un organo, ma
Risult at i
usufruendo di
costit uit e da un
miscelatori. In
not evoli, del
programma
risult a
l'interfaccia e' molto costosa ed il
estremamente complesso.
Il programma MUSIC che vi presentiamo consente di ottenere
un compromesso fra i due,tipi,di prestazioni illustrate in
precedenza.
Esso infatti genera musica variando non solo le note, ma
anche l'ampiezza del suono generato; inoltre consente di suonare
a "tre voci", cioè' simulando la presenza di tre strumenti che
suonino contemporaneamente. Tutte queste caratteristiche
contribuicono ad ottenere una musica piuttosto piacevole, anche
se un po' metallica, caratteristica quest'ultima tipica della
musica generata "digitalmente".
Il programma, che utilizza una interfaccia estremamente
sempice e che verrà' illustrata nel seguito, permette di generare
un massimo di 32 note per battuta ed ha l'estensione di 4 ottave
in frequenza.
La caratteristica di gran lunga piu' rilevante del programma
che vi presentiamo e' pero' che esso e' un "COMPILATORE
MUSICALE". Questo significa che non si limita a suonare una
musichetta, sempre uguale e che alla lunga può' annoiare, bensì'
e' un programma che permette di compilare un qualsiasi spartito e
di sintetizzare la musica relativa.
Il programma e' dotato di gestione dei dischi, di EDITOR e
di DEBUGGER. Questo significa che l'operatore può' generare lo
spartito mediante il programma di editor, può' provare a farlo
suonare per intero, o per pezzetti separati, tramite il debugger.
può ;
effettuare le correzioni
ancora mediante 1'editor.
ed
infine, quando sia contento del risultato, può' memorizzare il
programma su disco, in modo da poterlo suonare successi variente.
Il dischetto del compilatore musicale comprende, oltre al
programma di base, anche un certo numero di spartiti già'
memorizzati, relativi a pezzi molto noti come "Guerre stellari",
"Lawrence d'arabi a", "Moon ri ver" ecc.
Come abbiamo detto l'interfaccia elettrica necessaria per la
sintesi della musica e' estremamente semplice, infatti può'
essere utilizzata la scheda di interfaccia parallelo attualmente
usata per la stampante, sfruttando la parte non utilizzata da
quest'ultima.
Per smorzare la metallicita' del suono e generare l'effetto
musicale necessario, sara' sufficiente prelevare il segnale da un
bit della porta in questione, filtrarlo tramite un filtro passa
basso e connetterlo all'ingresso di un amplificatore. Lo schema
relativo e' riportato in figura.
'lOK -ìok
uscita 0 Il »-IZZ1- j CHI ♦-O-* AMPu fica roftp
digitale 0.^4, ± f)A 1
Ho K
0 .‘i
T /* F
MicroDesign Nov. 1983 n. 11
V. Risoldi
Per coloro che volessero realizzare una unita' autonoma,
completa di ampiificatore, abbiamo realizzato una interfaccia, da
montarsi sulla scheda multifunzione MICRO design SMF 001.
Tale interfaccia e' dotata di una porta di uscita ad un solo
bit, del filtro relativo e di un amplificatore di bassa frequenza
completo. Sulla schedina e' montata una morsettiera a cui potrà'
essere collegato un altoparlante da 8 ohm, oppure, in presa
diretta dopo il filtro, un amplificatore esterno.
La scheda di interfaccia musicale si chiama IMU 101 ed e'
acquistabile in Kit al prezzo indicato nel listino.
Il programma del compilatore musicale (MUSIC), completo del
file di documentazione che riporta le istruzioni per l'uso e la
spiegazione dei ■ comandi, con piu' di 20 pezzi musicali già'
memorizzati (nel caso di discb da 5 pollici il numero di pezzi
musicali e' leggermente inferiore per questioni di capacita' del
dischetto) costituisce il:
Volume 9 - della Biblioteca MDU6
e potrà' essere acquistato al prezzo indicato nel listino.
IL COMPILATORE MUSICALE NECESSITA DEL SISTEMA OPERATIVO CP/M
PER POTER FUNZIONARE.
/////////////
/ / / MITTENTE / / / / /
/////////////
/ / MICRO design / / / /
/ / Via Rostan 1 / / / /
/ / 16155 Genova / / / /
/ / TEL. (010) 687098 /
/////////////
STAMPE
*****************************************************************
* Tagliando di iscrizione al club utenti *
* *
* Cognome...... .Nome. .... *
* *
* Via. *
* *
# C.A.P...Citta'... *
* *
* Provincia... Telefono./.. *
* Configurazione micro
*
a#####*################**####*#######*****##****#**##**#**#*#**#*
MicroDesign Nov. 1983 n. 11
8
V. Risoldi