BOLLETTINO DEL CLUB UTENTI MICRO DESIGN
###
###
###
#####
*#######
#####
#####
#####
###
###
###
###
###
###
###
### ### ###
###
###
###
###
###
###
###
###
###
###
########
###
design
###
###
###
###
### *##
###
###
###
###
###
###
###
###
####
###
###
###
###
###
#####
###
####
#####
Via Rostan, 1 16155 - Genova. Tel. 010-687098, CBBS 010-688783
Conto corrente postale numero 12777165
SCONTI SPECIALI PERSONALIZZATI
EQUAZIONI PAL E LISTATI EPROM
IL PUNTO DELLA SITUAZIONE
IMPORTAZIONE DIRETTA ED ALTRE STORIE
FLOPPY DRIVE DA 3.5 POLLICI
USO DELLA CPU-001 COME MICROCONTROLLER
LISTINO COMPUTER COMPATIBILI IBM - CIRCUITI INTEGRATI - KIT
CVP-002 E TURBO PASCAL
SCHEDA PER PROTOTIPI XT E AT COMPATIBILE
*****
SCONTI SPECIALI FINO AL 30 APRILE PER I NOSTRI CLIENTI.
ABBIAMO PREPARATO DUE TABELLE PERSONALIZZATE DI SCONTI PER CHI CI
SEGUE DA MOLTO TEMPO, UNA RELATIVA AI PP3DOTTI IBM-COMPATIBILI E
UNA RELATIVA AI NOSTRI KIT. RICHIEDETECI GLI SCONTI A CUI AVETE
DIRITTO.
*
A PROPOSITO DI EQUAZIONI DELLE PAL E LISTATI DELLE EPROM
Molti soci ci hanno chiesto le equazioni delle PAL presenti nei
nostri progetti in modo da essere in grado di programmarle e di
comprendere meglio il funzionamento dei circuiti.
Abbiamo perciò' preparato un manualetto che comprende tutti i
file di definizione delle PAL presenti sulle nostre schede Z-80
completo di equazioni, mappa dei fusibili, listato del formato
esadecimale INTEL.
Tale manualetto può' essere richiesto al prezzo di lire 50.000.
* —
E' DISPONIBILE ANCHE IL LISTATO DELLA EPROM 5/1 AULIRE 100.000
E QUELLO DELLA EPROM 5.2 PRESENTE SU CFD 002 A LIRE 100.000
IL PUNTO DELLA SITUAZIONE
Nel corso dell'anno scorso sono successi tanti avvenimenti
importanti nel mondo dei microcalcolatori che riteniamo
necessario fare il punto della situazione.
L' IBM ha presentato la sua nuova serie di personal computer
PS/2 per cercare di controbattere 1* offensiva dei cosiddetti
compatibili. Infatti negli ultimi tempi una miriade di
costruttori, grandi e piccoli, offriva computer praticamente
identici (cloni) ai modelli IBM e spesso anche con prestazioni
migliori, a circa meta' prezzo.
Se questo fatto, da una parte, ha contribuito a consolidare
10 standard, dall' altra ha creato non pochi problemi di
mercato costringendo 1* IBM a progettare una linea completamente
nuova e meno soggetta a copiature grazie all' uso- di integrati
"custom" cioè' realizzati e brevettati dalla stessa IBM.
Oltre alla nuova linea e' stato annunciato un nuovo sistema
operativo, realizzato sempre in collaborazione con la Microsoft,
denominato OS/2.
Come al solito il software e' in netto ritardo rispetto all'
hardware e a tutt' oggi a quasi un anno dall' annuncio tale
sistema operativo non e' ancora realmente disponibile di modo che
tutte le nuove macchine stanno lavorando con 1' MS-DOS che non
consente di sfruttarne appieno le caratteristiche.
La domanda che viene spontanea e' quindi la seguente:
riuscirà' la nuova linea di calcolatori a soppiantare la vecchia
ed ad imporsi come standard degli anni 90?
anche i piu' autorevoli esperti hanno manifestato la loro
perplessità' per diversi motivi: 1' enorme diffusione del vecchio
standard, 1' annuncio, da parte della Microsoft, che il nuovo
sistema operativo verrà' fornito anche sulle macchine dotate di
microprocessori 80286 (ad esempio AT e compatibili) e il fatto
che sono già' arrivate sul mercato schede grafiche del nuovo
standard da inserire sui compatibili. Se a tutto ciò' si aggiunge
11 sempre enorme divario di prezzo diventa chiaro che non sara'
facile per 1' IBM imporre la sua nuova linea in tutto il mondo.
Come si deve quindi comportare 1' utente sia a livello
hobbistico che professionale messo di fronte all' evolversi
sempre piu' frenetico della tecnologia?
Per cercare di rispondere a questa domanda prendiamo 1'
esempio a noi molto familiare del micro Z-80 e del sistema
operativo CP/M. Nove anni fa, quando progettammo la prima scheda
del computer, lo Z 80 e il CP/M_ erano quanto di meglio fosse
possibile trovare sul mercato, col passare degli anni abbiamo
aggiornato il sistema presentando molte nuove schede fino a
renderlo un sistema completo sotto tutti gli aspetti. Forse non
immaginate che siamo stati in piu' di 10.000 a compiere i primi
passi nell' affascinante mondo dell' hardware e del software
grazie al micro Z-80. In tutto il mondo il CP/M era il sistema
operativo piu' usato e, ancora oggi il nostro sistema ha
mantenuto intatta la sua validità' didattica, infatti sono
moltissime le scuole, gli istituti tecnici, i responsabili di
corsi professionali che utilizzano le nostre schede per insegnare
tecniche harware e software agli studenti. Nonostante la grande
diffusione il CP/M aveva ed ha tuttora un punto debole: la
mancanza di uno standard grafico consolidato che'invogliasse le
grandi case produttrici di software a realizzare programmi ad
alto livello e basso costo. Infatti ogni costruttore realizzava
le proprie interfacce video incompatibili con quelle degli altri
tentando di imporre il proprio standard. I produttori di software
non investivano denaro nello sviluppo di routine grafiche che
avevano un mercato limitato. Pertanto la maggior parte dei
programmi che girano sotto CP/M utilizzano solo caratteri
alfanumerici. Quando 1' IBM ha presentato il suo primo personal
computer i produttori di software hanno intuito che il nome IBM
era una garanzia di successo a prescindere dalle caratteristiche
reali della macchina ed inoltre fissava uno standard per i
dischi, le unita 1 di I/O, la grafica. Intuendo che avrebbero
avuto a disposizione un mercato enorme si lanciarono a produrre
software per quel computer senza disperdere energie su
innumerevoli tipi. In questo modo la definizione di uno standard
e la disponibilità 1 di software innescarono un circolo chiuso per
cui piu 1 gli utenti acquistavano il computer piu 1 i produttori
erano-spronati a produrre nuovi package software, piu 1 programmi
erano disponibili e piu 1 utenti decidevano di acquistare il
computer... Pertanto l 1 IBM PC e 1 diventato il piu 1 diffuso
computer e molti produttori decisero di realizzare computer
compatibili, in grado cioè 1 di far girare i programmi scritti per
l 1 IBM PC. In questo "businness" si distinsero soprattutto i
cinesi di Taiwan in grado dapprima di copiare ed oggi di produrre
computer con caratteristiche superiori all 1 originale ad un
prezzo nettamente inferiore. Ma mano anche il tempo passava altri
costruttori si aggiungevano alla lista producendo computer con
caratteristiche diverse ma sempre con la denominazione
"compatibile IBM".
Da questa breve, e semplificata, storia possiamo trarre
alcune conclusioni:
Chi desidera approfondire, a Livello hardware, il mondo dei
microcomputer ha una interessante possibilità 1 : computer in kit
basati su Z 80, un microprocessore semplice, didatticamente molto
valido, ancora oggi il chip piu' venduto nel mondo. Inoltre con
questa configurazione si possono approfondire i piu' diffusi
linguaggi: TURBO PASCAL, BASIC, FORTRAN, ASSEMBLER disponibili
sotto sistema operativo CP/M.
Chi desidera esplorare 1' aspetto software, chi cioè' utilizza
programmi commerciali o li realizza in proprio per uso
hobbistico, può' acquistare un computer IBM compatibile tipo XT
(basato su microprocessore 8088) cori o senza disco fisso
Winchester. In tal caso non potrà' in futuro utilizzare i nuovi
sistemi operativi ma potrà' attingere sempre alla sterminata
bibblioteca di programmi MS-DOS. Questi compatibili sono talmente
diminuiti di prezzo che hanno preso il posto degli home computer
tipo COMMODORE, 8PECTRUM, etc.
Chi fa del computer un uso professionale o semiprofessionale si
deve invece orientare su un compatibile AT, basato su
microprocessore 80286, che garantisce un investimento a lungo
termine con possibilità' di utilizzo di MS-DOS, UNIX, OS/2,
mantenendo la struttura base del sistema.
La MICRO design e 1 in grado di soddisfare tutte queste
esigenze proponendo una linea completa di computer sia in kit che
montati di alta qualità 1 scelti tra i più 1 , seri produttori
intérnazionali. In questo stesso numero vi presentiamo i listini
aggiornati dei nostri prodotti.
IMPORTAZIONE DIRETTA E ALTRE STORIE
Ovvero come procurarsi computer a prezzo bassissimo e crearsi un
mucchio di problemi.
Desideriamo mettervi in guardia da chi offre computers a
prezzi incredibilmente bassi. Infatti sono moltissimi i
produttori di macchine compatibili e, ovviamente, e' diversa
anche la qualità' dei loro prodotti. Noi abbiamo fatto test
approfonditi su diverse decine di macchine e abbiamo scelto i
nostri fornitori in base all' affidabilita' del prodotto. Abbiamo
perciò' scartato chi ci offriva a prezzi bassissimi computer che
non valevano niente per la qualità' delle schede, degli integrati
e delle periferiche.
Ad esempio il computer portatile a cristalli liquidi che noi
commercializ iamo viene offerto in un annuncio ad un prezzo
inferiore del 3o% al nostro, incuriositi dal fatto che, dalle
fotografie£ sembrava assolutamente identico ne abbiamo ordinato
uno ed abbiamo verificato che il display e' di tipo superato del
tutto illeggibile, 1» unita' centrale ha un clock a 6 MHz
anziché' a 10 e i floppy sono di pessima qualità'.
Tutti i giorni arrivano sulla nostra scrivania offerte
pazzesche: la ditta tal dei tali ci offre computer XT compatibili
a 500.000 lire, un' altra computer AT compatibili a 1.500.000 e
cosi' via. A tutto c'e' una spiegazione e, dalla nostra personale
esperienza, abbiamo potuto verificare che, spesso, le ragioni di
tali prezzi sono ben diverse da quanto si possa immaginare. Ad
esempio un nostro conoscente ha importato direttamente 200
computer XT compatibili ad un prezzo di 450.000 lire cadauno per
una spesa totale di 90.000.000. Per far questo ha dovuto pagare
anticipatamente con lettera di credito irrevocabile e, dopo
alcuni mesi, ha ricevuto i computers. Ha pagato le normali spese
di importazione, trasporto, IVA etc. e ha iniziato la vendita.
Purtroppo ha incontrato subito delle difficolta', alcuni sistemi
avevano dei problemi tecnici, altri erano stati inviati in
configurazioni diverse da quelle richieste, altri ancora avevano
dei dischi che, durante lo spostamento della testina facevano un
rumore terribile tipo "macinino del caffè'". Il poverino ha
tentato di rimediare chiedendo lumi al produttore che si e'
dichiarato disposto a sostituire gratuitamente le macchine
difettose che gli fossero giunte, porto franco (cioè' senza spese
di trasporto), presso il suo laboratorio.
Peccato che il laboratorio si trova dall' altra parte del
mondo e i costi di trasporto, andata e ritorno superano il valore
della macchina e richiedono alcuni mesi. A questo punto il nostro
"importatore diretto" ci ha interpellati per vedere se potevamo
aiutarlo a venir fuori da questo pasticcio. Purtroppo le spese di
riparazione delle macchine, pur 'contenute da noi al massimo,
risultavano sempre incidere in maniera insostenibile sul prezzo.
Alla luce di quanto successo consigliamo i nostri lettori di
considerare bene 1' acquisto di un computer compatibile, i prezzi
troppo bassi vanno accuratamente valutati (ricordatevi che
nessuno fa regali), vanno verificate le condizioni di garanzia,
la ditta fornitrice deve essere presente da tempo sul mercato,
e, soprattutto deve essere od appoggiarsi ad un importatore con
un enorme giro di affari.
Quest' ultima raccomandazione e' la piu' importante' perche’ un
grosso importatore può' imporre ai produttori delle condizioni di
garanzia a vantaggio dell' utente finale, infatti se acquisto 3
miliardi di materiale al mese posso facilmente ottenere che il
produttore si impegni a pagare le spese relative alla
restituzione delle merci difettose (trasporto e riparazione),
posso avere dilazioni di pagamento in modo da controllare la
merce prima di pagarla, posso avere tutta 1' assistenza tecnica
che merita un cliente "importante". Ben diversamente capita se,
come il nostro eroe, effettuo una importazione del valore di 100
milioni, sonotratta infatti un cliente occasionale, piccolo,
senza possibilità' di far valere le mie ragioni. Acquistare in
queste condizioni e' molto rischioso, come dimostra il fallimento
subito seguito ad un tentativo di vendita sottocosto dei computer
difettosi.
LA MICRO- DESIGN NON IMPORTA DIRETTAMENTE, SI APPOGGIA AL PIU'
GROSSO IMPORTATORE ITALIANO CON SEDE A MILANO, TUTTI I PROBLEMI
CHE POSSONO NASCERE SUI COMPUTER 80N0 RISOLTI O DAI NOSTRI
INGEGNERI NEL NOSTRO LABORATORIO O MEDIANTE SOSTITUZIONE DELL'
APPARECCHIATURA. TALE SOSTITUZIONE AVVIENE NORMALMENTE IN TEMPI
BREVISSIMI DAL MAGAZZINO DI MILANO. I NOSTRI CLIENTI HANNO
PERCIÒ* UNA DOPPIA PROTEZIONE, DAPPRIMA INTERVENGONO I NOSTRI
TECNICI (LA CUI COMPETENZA E' FUORI DISCUSSIONE: SONO TUTTI
PROGETTISTI) E IN CASO DI PROBLEMI MECCANICI O PROBLEMI CHE
RICHIEDONO LA SOSTITUZIONE DELL' APPARECCHIATURA NON DOBBIAMO
RICHIEDERE IL PEZZO AGLI ANTIPODI MA A MILANO.
I prezzi delle nostre apparecchiature non sono perciò' i piu'
bassi in assoluto sul mercato ma sono sicuramente i piu'
convenienti per la qualità' e 1' assistenza che siamo in grado di
offrire.
- 2 , _
FLOPPY DA 3.5 POLLICI SU XT E AT COMPATIBILI
Siamo in grado di fornire floppy disk drive da 3.5 pollici
da installare internamente su compatitili XT o AT.
In questo modo sara' possibile scambiare file con tutti i nuovi
computer che utilizzano questo tipo di supporto. Su XT
compatibile il collegamento va effettuato tramite il connettore
posteriore (CANNON DB a 37 vie) della scheda controller floppy,
su AT invece possiamo collegare il drive direttamente sullo
stesso cavo su cui e' collegato il 5.25 pollici da 1.2 Mbyte.
L' alimentazione del drive da 3.5" e' del tutto compatibile con
quella richiesta dai drive a 5.25 pollici.
Vi ricordiamo che i drive da 3.5 pollici possono contenere ben
720 KByte e possono tranquillamente essere gestiti dal sistema
operativo MS-DOS della Microsoft versione 3.2 e successive
Il drive completo di istruzioni di montaggio e configurazione
può' essere richiesto al prezzo di 304.000 + iva.
Sono stati annunciati, anche se non li abbiamo ancora
disponibili, i nuovissimi drive da 3.5 pollici con capacita'
doppia: ben 1.44 MByte, appena li riceveremo lo comunicheremo
tempestivamente ai nostri soci.
Tali drives possono essere connessi anche al micro Z-80 tramite
tutti i tipi di controller, infatti le E PROM 5.1 e successive
riescono a determinare automaticamente il tipo di disco e la
capacita' (su Z-80 800 KByte e 1.2 MByte) senza bisogno di alcuna
configurazione.
LA CP1J-001 USATA COME MICROCONTROLLER.
Spesso capita di dover realizzare applicazioni di controllo
in cui e' necessario ridurre di molto i costi ma, al tempo
stesso, non e' possibile progettare schede apposite per il numero
ridotto di pezzi da realizzare. In questi casi esiste una
possibilità' molto economica e, al tempo stesso, molto versatile:
1' uso della CPU-001 in configurazione ridotta.
Cosa significa in configurazione ridotta? Significa
semplicemente che non si utilizzano tutte le potenzialità' della
scheda montando soltanto una parte dei componenti in modo da
realizzare un microcalcolatore autonomo, che non necessita cioè'
di scheda video, controller floppy, tastiera, bus, ma e' in grado
10 stesso di svolgere le sue funzioni di controllo.
Esempi tipici sono: il controllo di macchine utensili, la
gestione di antifurti, la gestione di sistemi di innaffiamento,
11 controllo di macchine sviluppatrici, fino a compiti molto piu'
complessi in cui il nostro micro si comporta egregiamente come il
controllo di veri e propri impianti industriali quali la
raffinazione dell' olio, il controllo di qualità' nella
produzione di pellicole fotografiche etc. Questi esempi non sono
stati presi a caso ma sono un elenco di sistemi da tempo in
funzione realizzati da professionisti che hanno trovato nei
nostri prodotti una soluzione affidabile, economica e soprattutto
perfettamente nota in tutte le sue caratteristiche di progetto.
Cosa e' necessario per realizzare un microcontroller con le
nostre schede? Anzitutto , come abbiamo detto, la CPU-001 in
configurazione ridotta, cioè' senza tutti gli integrati che
gestiscono la memoria, poi occorre una memoria eprom su cui
memorizzare il programma di controllo e una memoria ram statica
per contenere le variabili del processo. Si può' utilizzare a
questo scopo la memoria MRE-002 che offre il vantaggio di avere
ridotte dimensioni e di inserirsi direttamente sulla CPU-001
tramite gli appositi fori di fissaggio, occorre poi l'interfaccia
verso il processo, cioè' gli input/output digitali od analogici
richiesti dal processo da controllare. Per tale scopo si possono
usare le schede PAR-101 e ADC-101 che possono essere montate
anch' esse sulla CPU-001 sui connettori per espansione posti in
alto. A seconda delle esigenze si potranno montare le interfacce
che ci interessano, ad esempio una seriale per comunicare i dati
raccolti e pre-elaborati al computer centrale etc.
Un' applicazione che abbiamo recentemente realizzato
comprendeva proprio una CPU-001, una SER-101, una MRE-001 ed un
ADC-101. In questo caso si trattava di acquisire otto segnali
analogici, filtrarli, fare una media e passarla tramite linea
seriale al computer centrale per ulteriori elaborazioni.
La realizzazione di una scheda ad hoc avrebbe richiesto
molto tempo e una spesa non giustificata dall' esiguo numero di
esemplari richiesti (otto), d'altra parte 1' acquisto di un
sistema di controllo industriale e' stata valutata ben piu*
onerosa (circa 5 volte) rispetto all' uso delle nostre schede.
Chi ha esigenze di questo tipo può' richiedere il kit CPU-001/R
(lire 190.000) che comprende i componenti necessari per montare
la versione ridotta della CPU, compreso i connettori femmina da
25 che vanno montati al posto di quelli del bus per consentire il
montaggio diretto, senza bus, della MRE-002.
LISTINI
ORDINE MINIMO LIRE 50.000 - I PREZZI 80N0 VALIDI FINO AD
ESAURIMENTO DELLA MERCE. ALL' IMPORTO VA AGGIUNTO IL 18 % DI IVA.
PAGAMENTO CONTRASSEGNO POSTALE: SPESE SPEDIZIONE LIRE 12.000.
COMPUTER COMPATIBILI AT DESKTOP:
512 KBYTE - 1 FLOPPY 1.2 MBYTE - 1 HARD DISK 20 MBYTE -
CONTROLLER HARD/FLOPPY - SCHEDA VIDEO COLORE CGA 640 X 200 -
INTERFACCIA PARALLELA - ALIMENTATORE 200 W - CONTENITORE DA
TAVOLO - TASTIERA ESTESA - MONITOR MONOCROMATICO BIFREQUENZA -
CLOCK 8/10 MHZ - 0 WAIT -
LIRE 3.360.000
COMPUTER COMPATIBILI AT VERTICAL STAND:
512 KBYTE - 1 FLOPPY 1.2 MBYTE - 1 HARD DISK 20 MBYTE -
CONTROLLER HARD/FLOPPY - SCHEDA VIDEO COLORE CGA 640 X 200 -
INTERFACCIA PARALLELA - ALIMENTATORE 200 W - CONTENITORE
VERTICALE - TASTIERA ESTESA - MONITOR MONOCROMATICO BIFREQUENZA -
CLOCK 8/10 MHZ - 0 WAIT -
LIRB 3.660.000
COMPUTER COMPATIBILE XT:
256 KBYTE - 1 FLOPPY 360 KBYTE - CONTROLLER FLOPPY - SCHEDA VIDEO
COLORE CGA 640 X 200 - INTERFACCIA PARALLELA - ALIMENTATORE 150 W
- TASTIERA - MONITOR MONOCROMATICO BIFREQUENZA - CLOCK 4.77/10.0
MHZ -
LIRE 1.523.200
PORTATILE AT COMPATIBILE
DISPLAY LCD 640 X 200:
640 KBYTE -1 FLOPPY 1.2 MBYTE -
1 HARD DISK 20 MBYTE -
CONTROLLER HARD/FLOPPY - SCHEDA
LCD 640 X 200 CON PRESA MONITOR
- INTERFACCIA PARALLELA - DISLAY
LCD 640 X 200 - ALIMENTATORE -
CONTENITORE - TASTIERA - CLOCK
8/10 MHZ - 0 WAIT -
LIRE 3.715.200
PORTATILE XT COMPATIBILE
DISPLAY LCD 640 X 200:
640 KBYTE - 2 FLOPPY 360 KBYTE -
CONTROLLER FLOPPY - SCHEDA LCD
640 X 200 CON PRESA MONITOR -
INTERFACCIA PARALLELA - DISLAY
LCD 640 X 200 - ALIMENTATORE -
CONTENITORE - TASTIERA - CLOCK
4.77/8 MHZ
LIRE
ECCEZIONALE
SCHEDE COMPATIBILI IBM
MAINAT
MAINXT
MACH286
SIVIBM
NCL5427
NCL5125
CNTFDC
EGAS
EGAS
COLGRAPH
GRAPHCAR
PRINTCAR
COMCARDA
SERCARD
SERAT4
IOPAT
IOPLUS
RAM64K
RAM256K
FH120AT
FH360
FH3.5
ST225
ST251
ST4051
HARDCARD
ST4096
ARCH60
TATEST
TATESTK
SMART1200
SMART1200
SMART1224
PCPOWAT
PCPW
FOXIONET
FOXSOFT
ADMON
AMBER
M12HI
ADBF
MS1500
MOUSEPC
MOUSGEN
UPS300W
UPS500W
MAIN BOARD AT OK
MAIN BOARD XT
SCHEDA 80286 PER XT
SCHEDA SINTESI VOCALE CON 8/W
CONTROLLER XT HD
CONTROLLER AT FD/HD
CONTROLLER XT FD
928.000
288.000
624.000
350.000
123.200
252.800
72.000
SCHEDA EGA WIZARD 800X600
SCHEDA EGA SUPER 640X400
SCHEDA CGA 640X200 PRINTER
SCHEDA HERCULES 720X348 PRINTER
624.000
432.000
113.600
113.600
PARALLELO
SERIALE/PARALLELO AT
SERIALE DOPPIA
SERIALE QUADRUPLA - 2 OPTIONAL
»
64.000
113.600
120.000
192.000
SERIALE X 2/PARALLELO/GAME/2 MBYTE X AT 313.600
SERIALE X 2/PARALLELO/GAME/CLOCK X XT 116.800
9 X 4164 64KX1 120 NSEC
9 X 41256 256KX1 120NSEC
102.400
144.000
FLOPPY 5,25" 1.2 MBYTE
FLOPPY 5.25" 360 KBYTE
FLOPPY 3.5" 720 KBYTE
288.000
240.000
288.000
HARD DISK 20 MBYTE
HARD DISK 40 MBYTE 40 MSEC.
HARD DISK 40 MBYTE 28 MSEC.
SCHEDA CON HARD DISK 20 MBYTE
HARD DISK 80 MBYTE 28 MSEC.
CASSETTA STREAMER BACK UP 60 MB EST.
513.600
1.364.000
1.624.000
1.587.200
2.345.600
1.920.000
TASTIERA ESTESA
TASTIERA ESTESA KEYTRONICS
153.600
200.000
MODEM 300/1200 HAYES INTERNO
MODEM 300/1200 HAYES ESTERNO
MODEM 1200/2400
400.000
432.000
720.000
ALIMENTATORE 190 W
ALIMENTATORE 130 W
RETE FOX 10NET
SOFTWARE PER 10 NET
MONITOR EGA 14" COLORE
MONITOR 14"
MONITOR BIFREQUENZA 12"
MONITOR BIFREQUENZA 14"
MONITOR MULTISYNC COLORE
240.000
176.000
1.040.000
192.800
1.052.800
MONOCROMATICO 280.000
" 224.000
" 344.000
2.160.000
MOUSE OTTICCT
MOUSE MECCANICO
352.000
144.000
GRUPPO DI CONTINUITÀ' 300W
GRUPPO DI CONTINUITÀ' 500W
686.400
91-5.200
*
LISTINO PARTI DI RICAMBIO
74LSOO
350
1488
1200
QUARZO
-.072 MHZ
6000
74LS04
350
1489
1200
QUARZO 4.032 MHZ
6000
74LS10
350
.
QUARZO 8.000 MHZ
5000
74LS14
450
LM317
1200
QUARZO
12.00 MHZ
5000
74LS20
500
LM336
1500 2.5
QUARZO
16.00 MHZ
5000
74LS30
350
LM336
1500 5
QUARZO 3.590 MHZ
3000
74LS32
400
LM340
2000
QUARZO 38072 KHZ
4000
74LS37
1000
LM386
2000
74LS38
1600
LM393
550
CONNETTORI ALIMENTAZIONE FLOPPY FEMMINE 4 PIN 2000
74LS74
500
CONNETTORI ALIMENTAZIONE FLOPPY MASCHI 4 PIN 2000
74LS86
650
LF353
1000
CONNETTORI ALIMENTAZIONE FLOPPY MASCHI 3 PIN 2000
74LS109
850
74LS125
500
TI L117
1000
GUIDASCHEOE 1000
74LS133
500
74LS148
1400
NE555
700
MORSETTIERE 2 500
74LS151
600
MORSETTIERE 4 1000
74LS153
550
TBA820M
2500
MORSETTIERE 6 1500
74LS156
600
TLR362
3000
74LS157
600
FND500
3000
COMPENSATORI 10/60 PF 500
74 LSI58
1000
74LS161
1150
7805
1000
ZOCCOLI
ZIF 24 PIN
18000
74LS164
1100
7905
1000
76LS166
1400
7912
1200
ZOCCOLI
6 PIN
200
74LS175
1150
78HG
6000
ZOCCOLI
8 PIN
300
74LS193
1900
78H12
5000
ZOCCOLI
14 PIN
500
74LS240
1000
ZOCCOLI
16 PIN
600
74LS241
1050
GEMOV
3000
ZOCCOLI
18 PIN
700
74LS244
900
ZOCCOLI
20 PIN
800
74LS245
1000
280A
3000
ZOCCOLI
24 PIN
900
74LS259
1500
ADC0808
19000
ZOCCOLI
28 PIN 1000
74LS273
1000
SS1263
45000
ZOCCOLI
40 PIN 1500
74LS367
750
TC5517
4500
74LS373
900
6116
4500
CONNETTORE USER PORT
COWODORE 64 3500
74LS374
1000
L01771
15000
MASCHI 1
CANNELLO 2 X
25 PASSO 2.54 7000
74LS377
1500
WD2793
35000
74LS640
1400
NS8250B
16000
ALIMENTATORE M152 +5
12A,+12,+12, -12,-5,+24. 250000
27256
13000
ALIMENTATORE +5 7A
SUITCHING 55000
96LS02
3000
27128
10000
FLOPPY DISK 5.25" DS
DO 1000
2764
10000
FLOPPY DISK 5.25" DS
HO 2600
74HCU04
1000
3530
22500
FLOPPY DISK 3.5» DS
DD 4000
4164/15
3500
74HCT02
600
41256/15 8800
74HCT123
2500
NEC7220
25000
CIRCUITI STAMPATI
MANUALI SOFTWARE PER Z-80
74HCT138
1200
ADC101
5500
15.000 CAD.
74HCT240
2000
BSX29
700
ADC201
3000
CPM/UG
74HCT373
2000
2907
700
CFD012
6500
CALCSTAR
74HCT688 3000
BD242
1200
CFD014
8000
DB II ITALIANO
74HCT4538 2200
2N2222
500
CPU001
16000
FORTRAN 80
CVP001
19000
BASIC 80
7407
900
BARRE PIN DORATI 20
PIN
5000
CVP002
19000
MACROASSEMBLER Z-80
7438
900
IMU101
3000
MAC
DEVIATORI DA STAMPATO
2500
MOOIOI
6000
MAILMERGE
74F86
1500
DEVIATORE DOPPIO "
3500
OCS101
5500
MULISP
74F151
1500
DEVIATORE DA PANNELLO
2500
SIVIBM
14500
WORDSTAR
74F175
1900
SIV101
5500
ZIP
IMPEDENZE VK200
500
SMF001
25000
- BASIC 1.2
4053
1000
WIN 101
8000
. BASIC 3.0
4511
1000
LINEE RITARDO
20000
BUS 12
2000
/ '
r
FLOPPY 8" CON SOFTWARE Z80 CAD. L. 2000
LISTINO KIT (sconti speciali su quantitativi per i kit in grassetto)
BUS
Oli
KIT - Bus terminato a 5 posti scheda
L.
33.000
CPU
001
KIT - Cpu Z80A, completa di 64K di memoria, uscita per stampante connettori per due espansioni
L.
339.000
CPU
001 /R
KIT RIDOTTO - Come CPU 001 ma senza memoria per uso come microcontroller
L.
200.000
CPU
001 /M
MINIKIT - Circuito stampato, PAL programmate, linea di ritardo, quarzo
L.
149.000
CFD
002
KIT - Controller per floppy da 8", 5.25», 3.5" singola e doppia densità'
L.
253.000
CFD
002 /M
MINIKIT - Circuito stampato, WD 2793, PAL progranmate, EPROM
L.
160.000
CVP
002
KIT - Controller video grafico 640 x 350, 8 pagine video, interfaccia tastiera
L.
329.000
CVP
002 /M
MINIKIT - Circuito stanpato, PAL programmate, EPROM
L.
149.000
MRE
002
KIT - memoria RAM / EPROM, 4 zoccoli per chip 8K x 8 (senza memorie)
L.
130.000
MRE
002 / M
1 MINIKIT circuito stanpato, PAL programmata
L.
55.000
SMF
001
KIT - Scheda multifunzione con connettori per quattro espansioni
L.
110.000
SER
101
KIT - Interfaccia seriale RS-232C
L.
110.000
SER
101 /L
Componenti per loop di corrente
L.
15.000
ADC
101
KIT -Convertitore analogico digitale 8 canali 8 bit
L.
120.000
ADC
201
Stampato modulo di adattamento livello
L.
20.000
OCS
101
KIT - Orologio calendario con batteria
L.
120.000
SIV
101
KIT - Sintetizzatore vocale completo di editor fonetico, drivers e lettore
L.
150.000
PAR
101
KIT - Ingresso uscita parallelo a 24 bit
L.
50.000
WIN
101
SOTTOSISTEMA - Interfaccia SASI, Winchester da 10 MByte, controller, alimentatore, contenitore.
S/U L.
1.790.000
HOC
001
KIT - Modem bistandard Bell 103 - CCITT V. 21 300 baud
L.
152.000
MOO
001 /M
MINIKIT - Circuito stanpato. Pai, 3530 - tasformatore
L.
70.000
MOC
101
KIT - Chiamata e risposta automatica per MOD 001
L.
50.000
CSA
001
KIT - Consolle diagnostica per collaudi Z80
L.
349.000
CSA
001 /M
MINIKIT - Circuito stampato. Pai, contraves
L.
120.000
PAI
programmate per schede L. 15.000 Manuale con equazioni PAL per computer Z-80
L.
50.000
EPROM programmate per schede L. 30.000 Listato EPROM 5.1 o 5.2 per CFD-001 o CFD-002 L.
100.000
CON 001
Fenmina 25 contatti per bus
L.
3.000
CON
002
Maschio a 90 gradi 24 contatti per schede
L.
2.000
CON
005
Fenmina CARD EDGE 20 vie
L.
4.000
CON
007
Fenmina CARD EDGE 50 vie
L.
8.000
CON
008
Femmina da cavo piatto 34 vie
L.
5.000
CON 009
Fenmina da cavo piatto 50 vie
L.
6.000
CON
010
Maschio da cavo piatto 34 vie montaggio a pannello
L.
10.000
CON
Oli
Maschio da cavo piatto 50 vie montaggio a pannello
L.
15.000
CON
012
Maschio da cavo piatto 20 vie montaggio t pannello
L.
8.000
CON
OH
Femmina tipo "D" 25 vie per seriale montaggio volante o a pannello
L.
10.000
CON
015
Barre di 50 pin
L.
2.000
CON
016
Fenmina da cavo piatto 20 vie
L.
4.000
CON
017
Fenmina da cavo piatto 26 vie
L.
5.000
CON
018
Maschio tipo "D" 25 vie per seriale montaggio volante o a pannello
L.
10.000
GSC
001
Guidaschede per fissaggio su bus altezza cm.12
L.
1.000
FLP
015
Dischetti doppia faccia doppia densita'5.25" adatti per Z80 e IBM : 50 pezzi
L.
50.000
FLP
008
Dischetti doppia faccia doppia densità' 8" adatti per Z80, 10 pezzi
L.
20.000
CLP
405
Contenitore plastico per 40 floppy da 5.25" con serratura
L.
20.000
CLP
905
Contenitore plastico per 90 floppy da 5.25" con serratura
L.
30.000
CLP
908
Contenitore plastico per 90 floppy da 8" con serratura
L.
50.000
CAF
003
Per collegamento 2 floppy 8" al controller
L.
45.000
CAF
007
Per collegamento MOO 001 26 fenmina ♦ 26 fenmina L=80
L.
18.000
FIL
001
FILTRI RETE 250V 6.5 A
L.
12.000
STAMPANTI GRAFICHE COMPATIBILI IBM
DX
2100
FUJTSU 80 colonne 250 caratteri al secondo
L.
1.160.000
DX
2200
FUJTSU 136 colonne 250 caratteri al secondo "
L.
1.595.000
DX
/C
KIT colore trasforma le stampanti DX 2100/2200 in stampanti a colori
/ -
L.
291.000
COMPUTER Z-80 MONTATO 2 FLOPPY 5.25» CVP-001, CPU-001, CFD-002, SER-101, ALIMENTATORE, CONTENITORE L.
900.000
IL NODULO CVP-M2 E
IL TURBO-PASCAL
Il linguaggio PASCAL e' probabilmente quello che, piu' di
ogni altro, meglio si adatta alle applicazioni grafiche del
modulo CVP-BI2. La struttura modulare e le capacita' di trattare
un' infinita varietà' di "tipi" logici, rendono possibile la
stesura di programmi orientati al disegno, estremamente semplici
e razionali, con un' eleganza non eguagliabile da altri
linguaggi. Il TURBO-PASCAL, in particolare, riunisce a queste
doti intrinseche al PASCAL stesso, una notevole agilità' d'uso,
grazie soprattutto ad un profondo livello d'interazione col
programmatore, superiore persino a quello di linguaggi
interpretati come il BASIC.
Fra le varie possibilità' del TURBO-PASCAL vi e' quel 1 a di
"includere 1 (direttiva $1) nel file sorgente uno o piu' files
secondari sviluppati in precedenza, contenenti alcune delle
dichiarazioni di variabili e procedure, richiamate poi nel
programma principale. Questa funzione permette la creazione di
"librerie" contenenti le routines usate piu' spesso, che, in
questo modo, possono essere scritte e provate una sola volta, e
poi riutilizzate in tutti i programmi futuri. Conviene creare uno
di tali files di libreria per immagazzinare varie procedure
d'interfaccia al modulo CVP-B02: l'uso pratico delle funzioni
grafiche ne risulta enormemente semplificato, al prezzo di una
sola serata di lavoro.
Il listato al termine di questo articolo rappresenta,
appunto, il file di libreria "CVP.LIB" contenente alcune
procedure generiche, adatte ad applicazioni grafiche
bidimensionali: dopo essere stato ricopiato, il file potrà'
essere utilizzato in tutti i programmi TURBO-PASCAL, mediante la
direttiva ($1 CVP.LIB). Naturalmente si tratta soltanto di un
esempio che, con un po' di pratica, potrà' essere ampliato e
modificato per adattarlo ad esigenze piu' specialistiche.
La libreria CVP.LIB usa il video in modo parzialmente
grafico, come il programma BASIC descritto nel precedente numero
del bollettino: le due righe inferiori dello schermo, soltanto
alfanumeriche, possono essere utilizzate per ar comparire
scritte con le normali procedure urite e tiritelo. La parte
superiore, 64B X 276 pixel, e' grafica, interamente a
disposizione del programmatore per la creazione di qualsiasi
disegno. La caratteristica piu' utile della CVP.LIB e' la
possibilità' di trattare l'area grafica in coordinate X Y reali,
con dimensioni e origine definibili dall'utente. Il
programmatore, perciò', non deve piu' preoccuparsi della
struttura in pixel dello schermo, in quanto la conversione da
coordinate X Y a posizione sul video e' gestita in modo
totalmente trasparente.
Il file comincia con le dichiarazioni dei due tipi di
variabile Color e ColorHode. La prima permette di definire quale
"colore" deve essere utilizzato nelle diverse funzioni di
disegno, mentre la seconda si riferisce al modo in cui il colore
deve essere sovrapposto allo sfondo. Il significato esatto di
questi due tipi di variabili sara' chiarito piu' avanti, nella
descrizione delle procedure.
Seguono le definizioni degli indirizz; assoluti delle
variabili utilizzate dalle routines grafiche del monitor: il
programma CVP.LIB, in effetei, non utilizza tutte le variabili
dichiarate. Abbiamo, pero', preferito elencarle tutte in modo da
agevolare eventuali modifiche ed espansioni future.
Dopo le variabili assolute, troviamo alcune variabili e
costanti generiche definite ad uso interno della libreria: il
! programma applicativo, normalmente, non deve accedere
! direttamente a tali variabili in quanta la loro gestione e'
! totalmente a carico della CVP.LIB.
I Le dichiarazioni degli entry-point external assicurano il
! collegamento della CVP.LIB con il monitor H0N5.2 della scheda,
ì Anche in questo caso abbiamo elencato tutti gli entry-point
! possibili, pur utilizzandone solo una parte.
! Finalmente cominciano le procedure vere e proprie della
! libreria CVP.LIB. La prima, SetGraph, e' quella che attiva il
! modo di funzionamento grafico della scheda. Quando viene
! eseguita, provoca 1'immediata comparsa della pagina grafica sullo
! schermo, e inizializza tutte le variabili necessarie alle altre
! routines. Si noti che non cancella la memoria video, in quanto
! tale compito e' risevato ad una procedura successiva. La prima
! chiamata di Set6raph dopo l'accensione del computer, perciò',
! dovrebbe visualizzare il contenuto casuale della memoria, che, di
! solito, appare come un disegno a scacchi irregolari. ‘ La seconda
! procedura, SetAlpha, riporta lo schermo nel modo di funzionamento
! standard, e deve essere sempre eseguita prima della conclusione
! di qualsiasi programma grafico. Le due routines Set6raph e
! SetAlpha, perciò', appariranno, rispettivamente all'inizio e alla
! fine del programma applicativo, la cui struttura risulterà' come
! nel seguente esempio:
i program Esempio(input,output);
! <*I CVP.LIB)
: (• Dichiarazioni di type, var e const dell'utente *)
! (t Procedure dell'utente »)
ì begin
! SetGraph;
! (IHfHHHilHHIHHII)
! (* Corpo del programma *)
! SetAlpha;
I end.
! Naturalmente nessuno vieta di eseguire qualcosa prima di
! Set6raph e dopo SetAlpha, purché' non si tratti di altre funzioni
• grafiche.
! La terza procedura, ClearGraph, cancella l'intera area
! grafica dello schermo. E' richiesto un parametro di tipo Color,
! in modo da poter determinare il colore dello sfondo sul quale si
! vuol disegnare. Per esempio con le istruzioni:
! ClearGraph(Black); oppure Clear6raph(Nhite);
! si ottengono sfondi rispettivamente neri o bianchi. L'istruzione:
! ClearGraph(Pattern);
! crea uno sfondo a linee verticali bianche e nere talmente fitte
! da apparire come un grigio chiaro. Sconsigiamo di usare questo
! tipo di sfondo per disegni composti da linee singole, in quanto,
I in certe situazioni, potrebbero risultare del tutto invisibili.
I La procedura Pen permette di specificare il colore
! utilizzato per tutte le finzioni ,di disegno (eccettuata la
! ClearGraph) successive. Anche qui si richiede un parametro che
! può' valere "Black", "Nhite" o "Pattern" come nella ClearGraph.
Il significato delle istruzioni:
DefinePattern(addr(Losanghe),6,6,1);
Pen(Black); e Pen(Mhite);
e' abbastanza ovvio. Richiede, invece, qualche spiegazione il
costrutto:
Pen(Pattern);
che iipone l'uso del colore bianco o nero a seconda dei contenuti
di una variabile assunta cone prototipo di 'pattern".
Iniziai Mente CVP.LIB usa il byte "DotFornat" co*e pattern:
durante il disegno di una linea tale variabile viene scandita
ripetutanente, da sinistra a destra facendo corrispondere un
pixel bianco ad ogni bit di valore "1" e uno nero ai bit di
valore "0". DotFornat e' pari a 480 esadecinalfl, cioè' 10000000
in binario. Le linee risultatoti, perciò', sono conposte da un
pixel bianco, seguite da 7 pixel neri.
Il progrannatore dispone di due nodi per variare il fornato
del pattern. Il piu' senplice consiste nel canbiare il contenuto
di DotFornat. L'assegnazione:
DotFornat:=4F0)
per esenpio, provoca un tratteggio delle linee conposto da 4
pixel bianchi seguiti da altrettanti neri. DotFornat, pero', e'
soltanto un byte e, perciò', si utilizza bene soltanto per figure
lineari, cone rette e circonferenze. Per il disegno di aree,
invece, sarebbe neglio disporre di un pattern "bidinensionale",
cioè' una natrice di pixel bianchi e neri disposti secondo un
disegno ben deterninato. Questo e' quanto pernette di fai e la
procedura DefinePattern: un esenpio potrà' chiarirne neglio
1'inpiego. Supponiano che il progrannatore abbia l'esigenza di
utilizzare un pattern quadrato conposto da 6 I 6 pixel, disegnato
a losanghe oblique, cone nel seguente diagranna:
»-
- *-
-i -
-i
dove ogni pixel bianco e' rappresentato da un asterisco. Per
definire tale pattern e' necessario utilizzare un array da 4
byte, contenente una riga del pattern per ogni byte, cone nella
seguente tabellina:
byte 0 = 10000000 binario, 480 hex
byte 1 = 01000000 binario, 440 hex
byte 2 = 00100000 binario, 420 hex
byte 3 = 00010000 binario, 410 hex
byte 4 = 00001000 binario, 40B hex
byte 5 = 00000100 binario, 404 hex
L'array (chiamiamolo "Losanghe") può' essere dichiarato al
TURBO-PASCAL con l'istruzione:
const Losanghe: array[0..51 of byte=(4B0,440,420,410,48,44);
Durante l'esecuzione del progranna si può' assegnare a
Losanghe il ruolo di pattern con l'istruzione:
Il prino paranetro della DefinePattern corrisponde
all'indirizzo della variabile usata cone pattern. I due
successivi sono pari alle dinensioni rispettivanente orizzontali
e verticali del pattern, nentre il terzo paranetro e' il fattore
di "zoon". Se, per quest'ultino, si specificano valori superiori
a 1 si può' ottenere un ingrandinento della natrice disegnata.
Quando non si usa la DefinePattern e' cone se, a tutti gli
effetti, fosse attiva l'istruzione:
DefinePattern(addr(DotFornat),8,1,1))
La procedura PaintHode pernette di definire in che nodo il
colore del disegno deve essere sovrapposto allo sfondo. Sono
possibili 4 casi, a seconda del paranetro attribuito alla
procedura. L'istruzione:
PaintHode(Replace);
fa si che il colore dei successivi disegni (deterninato da Pen)
si sostituisca a quello dello sfondo (deterninato da Clearfiraph).
Le istruzioni:
PaintHode(BlackOnHhite); e PaintHode(MhiteOnBlack);
invece, deterninano la prevalenza rispettivanente del nero o del
bianco quando si traccia un disegno su uno sfondo di colore
opposto. L'ultino caso:
PaintHode(Conplenent);
provoca il seguente conportanento: un disegno tracciato con
Pen(Mhite) risulta di colore apposto a quello dello sfondo,
nentre uno tracciato con Pen(Black) non risulta visibile ir.
quanto assune lo stesso colore dello scherno.
La procedura DefineScreen pernette di fissare il sistena di
assi coordinati usati per le successive operazioni. Deve essere
richianata "prina" di tracciare qualsiasi disegno in nodo da
consentire alla CVP.LIB di calcolare le corrette posizioni dei
pixel e i fattori di scala opportuni usati nel seguito.
DefineScreen richiede due coppie di paranetri reali che
rappresentano le coordinate attribuite rispettivanente all'angolo
inferiore sinistro e a quello superiore destro dello scherno. Per
esenpio, l'istruzione:
J DefineScreen(-3,-1,2,4);
I
I
! attribuisce a tali angoli le coordinate (-3,-1) e (2,4); nei
! successivi disegni, perciò’, tutti i i punti con una X conpresa
! fra -3 e 2, e con una Y conpresa fra -1 e 4, cadranno all'interno
! dell'area grafica. La DefineScreen, inoltre, calcola le
! proporzioni da attribuire ai cerchi in nodo da rispettare il
! concetto natenatico di "circonferenza": Il dianetro nisurato in
! orizzontale deve essere uguale a quello nisurato in verticale. E'
! evidente che se l'utente attribuisce allo scherno delle
! dimensioni non proporzionali a quelle effettive del tubo a raggi
! catodici, otterrà' delle circonferenze dall'aspetto piuttosto
! ellittico: questo potrebbe non essere un inconveniente, na, se si
! desidera la perfezione, consigliano di rispettare il rapporto
! 69/100 fra la lunghezza dell'arte Y e quella dell'asse X.
La procedura Position consente di 'puntare* una particolare
posizione dello schermo relativamente alle coordinate definite in
DefineScreen. L'operazione non provoca alcun disegno, «a
influenza i traccianenti successivi, che partiranno dal punto
indicato. Position richiede una coppia di parametri reali
rappresentanti le coordinate del punto selezionato. Per esempio:
Position(-2.5,3.31 ;
sposta il puntatore nella posizione di coordinate X=-2.5 e Y=3.3.
Le procedure descritte fino ad ora servono case
"preparazione" al disegno vero e proprio, che può' essere
effettuato mediante l'esecuzione delle seguenti routines. La
pri«a, Plot, traccia un segmento dalla posizione attuale del
puntatore ad un altro punto qualsiasi dello scherno. Richiede,
cone parametri, le coordinate del punto di arrivo, come nel
seguènte esempio:
Plot(0.4,-2);
che traccia una retta dalla posizione precedente al punto di
coordinate (#.4,-2). Il punto di arrivo di una Plot diventa
quello di partenza per una Plot successiva, in modo da poter
costruire facilmente spezzate e poligoni. Il seguente esenpio
traccia un triangolo retto con i vertici nelle posizioni (-1,-2),
(3,-2) e (-1,2.5):
Position(-1,-2){
Plot(3,-2);
Plot(-l,2.5);
Plot(-1,-2);
Naturalnente non c'e' alcuna necessita' di utilizzare
parametri costanti, come nei precedenti esempi. La sequenza:
pi:=3.1415926;
Position(r,l);
for i:=l to 6 do 1
Plot(r*cos(i»2»pi/6), r»sin(i§2*pi/6>); ì
traccia un esagono regolare di centro (§,f). !
La procedura Cirde disegna un cerchio di raggio pari al !
parametro reale della procedura stessa e con il centro nella ì
posizione attuale del puntatore. Come già' detto in precedenza, !
l'aspetto piu' o meno "tondo" del cerchio dipende dalle !
proporzioni attribuite agli assi orizzontale e verticale con la !
DefineScreen. E' necessario fornire valori positivi per il i
raggia. L'esempio seguente: !
Position(X2,Y2); !
Circi e(sqrt(sqr(X2-X1)+sqr(Y2-Y1))); !
disegna un cerchio di centro (X2,Y2) e passante per il punto !
(XI,Yl). •
L'ultima procedura, Rectangle, riempie un' area rettangolare !
con il colore definito in Per;. 11 primo vertice del rettangolo e' !
nella posizione attuale del puntatore, mentre quello opposto e' !
nella posizione specificata con la coppia di parametri. Le 1
istruzioni:
Position(-1,3);
Rectangle(1,4);
disegnano un rettangolo pieno di vertici (-1,3), (1,3), (1,4) e
(-1,4). Rectangle risulta particolarmente utile quando e' usata
con un Pattern, come spiegato in precedenza per le procedure Pen
e DefinePattern. Per esempio la sequenza:
Pen(Pattern);
DefinePatterntaddr(Losanghe),6,6,1)}
Position(X,Y);
Rectangle(X+2,Y+5);
traccia un rettangolo riempito con il disegno a losanghe già'
descritto in un esempio precedente, con un vertice nella
posizione (X,Y) e con dimensioni 2 e 5. Un uso classico di questa
funzione e' nella rappresentazione di grafici a barre, dove
l'altezza di ogni rettangolo rappresenta il valore di una
grandezza in funzione di un' altra. Differenziando i pattern si
possono disegnare rettangoli diversi (per esenpio a losanghe,
scacchi e cuoricini) per evidenziare le variazioni di piu',
grandezze nello stesso grafico. Un altro uso di Rectangle col
colore Pattern e' nel disegno di caratteri alfanumerici
all'interno dell'area grafica: in questo caso il pattern contiene
la forma del carattere desiderato e Rectangle non fa altro che
trasferire l'informazione sul video. Tra l'altro, la possibilità'
di specificare un fattore di zoom nella definizione del pattern,
rende possibile tracciare caratteri di dimensione variabile pur
usando lo stesso array di definizione.
Prima di concludere la descrizione di CVP.LIB e' necessario
dire due parole ancora sulla parte alfanumerica dello schermo:
abbiamo già' detto che la Set6raph attiva il modo grafico del
modulo CVP-M2 lasciando, pero', due linee alfanumeriche nella
parte inferiore del video. Tali linee sono gestite come una
normale "Nindom" alfanumerica di 81 X 2 caratteri: vi si può'
accedere con tutte le procedure standard del TURBO-PASCAL e con
le sequenze di ESCAPE del monitor 4.4. Per esempio le istruzioni:
gotaXY(1,1);
dreol j
urite!'Diagramma vendite per T'anno ',anno,' terminato.');
mritet'Nuovo anno ? '); readln(anno);
cancellano la prima linea della parte alfanumerica, scrivono un
messaggio e attendono l'input di un nuvo valore della variabile
"anno*.
6RAFSTAR II
Questo programma, presentato sul numero 9-lf anno VI del
bollettino, permette di tracciare punti, linee, rettangoli,
cerchi, ellissi; di riempire aree, d inserire testi nel disegno
mediante comandi ad alto livello dati da tastiera, senza dover
scrivere complessi programmi. Tali grafici possono essere salvati
su disco e stampati mediante il programma Lll-PRINT su LINA 11
CQ. Inoltre il programma GRAFIJS consente il disegno di
istogrammi, di diagrammi a torta e interpolazione di punti.Tali
programmi sono stati realizzati da Claudio Cordeglio.
GRAF STAR li..'..L. 53.11*
GRAFICS.:..L. 42.MI
L11PRINT.'...L. 31.«fi
Tutti i programmi elencati richiedono la scheda CVP-II2.
Ricordino che il lignifico gioco CLASSE 6/d costi L. 57.///
L1STING DEL FILE CVP.LIB
Definizione dei tipi
*) (*
Procedure grafiche
*)
type Color = (Black, White, Pattern);
ColorMode = (Replace,BlackOnWhite,Whi.eOnBI
(*
Variabili del monitor -*)
var MODROT: byte absolute $OA50
MOODST: byte absolute $OA51
MOOSRC: byte absolute $OA52
PLANE: byte absolute $DA53;
PENO: byte absolute $OA54;
PENI: byte absolute JDA55;
FILLO: byte absolute $DA56;
ORIGIN: integer absolute $DA5A;
KA: integer absolute $DA75;
KB: integer absolute $DA77;
PPTR: record
PDOT: byte;
PADDR: integer;
PLDOT.PRDOT: byte;
PWIDTH.PLENGTH: integer;
PZOOMX,PZCNTX,PO IMX,PX: byte;
PZOOMY,PZCNTY,PDIMY,PY: byte;
end absolute $DA64;
BDPTR: record (puntatore per il riempimento)
pg: byte;
addr: integer;
end absolute $DA99;
( Attiva il modo grafico )
( Definisce l'origine )
( Def. la window alpha )
( Attiva la window )
( Cursor Home )
( Clear Window )
( Inizializza le variabili
(*
Variabili generiche
procedure SetGraph;
ack.Complement);(* Attiva il modo grafico e inizializza le variabili *)
begin
DISP(AlphaPage,$2000+T opAddress);
ORIGIN:=BottomAddress;
PAGE(AlphaPage,0) ;
write(#$1B,#$57,#32,#33,#32,ni1);
write(«1B,#$11);
write(#$1B,#$17);
MODROT:=0
MOODST:=0
MOOSRC:=1
PLANE:=1;
PEN0:=0;
PENI:=$FF;
DotFormat:=$80;
PPTR.PADDR:=Addr(Dot Format);
PPTR.PLDOT:=$80;
PPTR.PRDOT:=$01;
PPTR.PWIDTH:=1;
PPTR.PLENGTH:=1;
PPTR.PZOOMX:=1 ;
PPTR.PZCNTX:=0;
PPTR.PDIMX:=8;
PPTR.PZOOMY:=1;
PPTR.PZCNTY:=0;
PPTR.PDIMY:=1;
PPTR.PY:=0;
*) end;
var DotFormat: byte;
Xinteger.Yinteger: integer;
Xscale.Yscale: reai;
Xorigin.Yorigin: reai;
(formato di punteggiatura)
(coordinate attuali)
(fattori di scala)
(coord. angolo inf. sin.)
<*
Costanti di definizione dello schermo -- *)
const AlphaPage= 12; (pagina window alfanunerica)
TopAddress= $1800; (indirizzo angolo superiore)
BottomAddress= $1FB0; (indirizzo angolo inferiore)
Width = 80; (larghezza schermo in bytes)
Height = 276; (altezza schermo in linee)
(*
Routines del monitor
*)
r
procedure DISP(Pg, Addr: integer); external
procedure PAGE(Pg, Addr: integer); external
procedure DM0V(X, Y: integer); external
procedure SM0V(X, Y: integer); external
procedure DOT; external
procedure LINE(dX, dY: integer); external
procedure EARC(Xi, Yi, Xe, Ye: integer); external
procedure HRTN(dX, dY: integer); external
procedure VRTN(dX, dY: integer); external
procedure FILL(AX, AY: integer); .external
procedure COPY(AX, AY: integer); external
procedure L0AD(AX, AY, Addr: integer); external
procedure STORE(AX, AY, Addr: integer); external
$E04B
$E05A
$E05D
$E066
$E06F
$E078
$E081
SE 08 A
$E093
$E09C
$E0A5
SEOAE
$E0B7
procedure SetAlpha;
(* Ritorna nel modo alfanumerico standard *)
begin
DISP(15,0); { Attiva il modo alfanunerico )
PAGE(15,0); { Disattiva la window )
write(#$1B,#$40); { Default window )
write(#$1B,#$16,#0,#23);
end;
procedure ClearGrafch(col: Color);
(* Riempie la parte grafica con uno di tre colori *)
begin
case col of Black: FILL0:=$00;
White: FILL0:=$FF;
Pattern: FILL0:=$AA;
end;
BDPTR.pg:=$2c+((BottomAddress div 2048) and $03);
BDPTR.addr:=tE800r(BottomAddress and $7F F );
FILL(Width,Height); (Cancella la parte grafica)
PAGE(AlphaPage,0);
end;
procedure Pen(col: Color);
(* Seleziona il colore della penna di disegno *)
begin
case col of Black: MOOSRC:=0;
White: MOOSRC:=1;
Pattern: MOOSRC:=2;
end;
end;
procedure DefinePattern(Address,Xdim,Ydim,Zoom: integer);
(* Definisce il Pattern di scrittura *)
const mask: array[0..7] of byte=($80,$40,$20,S10,*8,$4,$2,S1);
begin
with PPTR do
begin
PDOT:=$80;
'PLDOT:=$80;
PRDOT:=mask[(Xdim-1 ) and $7] ;
PWIDTH:=Xdim div 8;
if (Xdim and *7)00 tfien PW1DTH:=PW1DTH+1;
PLENGTH:=Ydim*PWlDTH;
PADDR:=Address+PLENGTH-PWlDTH;
PZOOMX:=Zoan;
PZCNTX:=0;
POIMX:=Xdim;
PX:=0;
PZOOMY:=Zoom;
PZCNTY:=0;
PDIMY:=Ydim;
PY:=0;
end;
end;
procedure PaintHodefmode: ColorMode);
(* Seleziona il modo di sovrapposizione del colore *)
begin
case mode of Replace: MODDST:=0;
BlackOnWbite: M00DST:=1;
UhiteOnfllack: MCDDST:=2;
Complement: M00DST:=3;
end;
end;
procedure DefineScreen(Xmin,Ymin,Xmax,Ymax: reai);
(* Definisce le dimensioni dello schermo *)
begin
Xorigin:=Xmin;
Yorigin:=Ymin;
Xscale:=(Width*8-1)/(Xmax-Xmin);
Yscale:=(Height-1)/(Ymax-Ymin);
Xinteger:=0;
Yinteger:=0;
KA:=100;
KB:=round(100*Yscale*Yscale/(Xscale*Xscale));
DMOV(O.O);
PAGE(AlphaPage,0);
end:
procedure PositionCX, Y: reai);
(* Sposta la penna nella posizione indicata senza tracciare *)
begin
Xinteger:=roundf(X-Xorigin)*Xscale);
Yinteger:=round((Y-Yorigin)*Yscale);
DMOV(Xinteger,Yinteger);
PAGE(AlphaPage.O);
end;
procedure Plot(X, Y: reai);
(* Traccia una linea fino alla posizione indicata *)
var Xi.Yi: integer;
begin
Xi:=round((X-Xorigin)*Xscale);
Yi:=rotnd((Y-Yorigin)*Yscale);
LINE(Xi-Xinteger,Yi-Yinteger);
PAGE(AlphaPage,0) ;
Xinteger:=Xi;
Yinteger:=Yi;
end;
procedure CircleCR: reai);
(* Traccia un cerchio con il centro nella posizione attuale *)
var Ri,Xc,Yc: integer;
begin
Ri:=round(R*Xscale);
DMOV(Xinteger+Ri,Yinteger);
EARC(Ri,0,Ri,0);
DMOV(Xinteger,Yinteger);
PAGE(AlphaPage,0);
end;
procedure Rectangle(X, Y: reai);
(* Traccia un rettangolo pieno lungo la sua diagonale *)
var dX,dY,Xi,Yi: integer;
begin
Xi:=round((X-Xorigin)*Xscale);
Yi:=round((Y-Yorigin)*Yscale);
HRTN(Xi-Xinteger.Yi-Yinteger);
Xinteger:=Xi;
Yinteger:=Yi;
DMOV(Xi.Yi);
PAGE(AlphaPage,0);
end;
SCHEDA PROTOTIPI PER IBM COMPATIBILI PC XT AT
Per facilitare la realizzazione di prototipi su bus IBM abbiamo
realizzato una scheda di uso generico dotata già' di circuito di
decodifica che consente il montaggio di prototipi e si adatta
perfettamente al bus sia dei computer XT compatibili che a guello
degli AT compatibili. Potete osservare nella figura seguente la
presenza dei connettori per entrambi i tipi di bus, la
predisposizione a montare nel lato destro un connettore di tipo
DB - CANNON a vaschetta fino a 37 contatti e i circuiti di
decodifica di input output. La scheda viene fornita completamente
forata in realizzazione stagno-piombo senza componenti e senza
doratura dei connettori.
. 1 .
f* ***■•*•*••••••••••••••••••••••••••••••••••••••••••••••••••••••«••••••••••••»••••••••••». ■ i . •••«•■•••••••••• f
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••»»»»»»»♦ »lt » t> m »»'r V•••••••••••••••• *
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••»•••••»• er ^m r— x Wnr Hi •••••••••••••••• -
••••••••••••» aa «r aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa » •••«itpUJH t HakJH •••••••••••••••• V*4 *
\ » ••••••••••••••• # ’ì *
••• a « aaa «.r aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavaaaaaaaaaa ( I .y Ir \ k )•••••••«•••••••• * * _
••••r»r»r a r a r aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa »» a fl r'rUUr • r • »(1dr»s* »i. *i Z* à *
tEEM? wrnH jabcdifch
•••«••••••••••••••••••••••••••••••••••••■.•••••••••••••••••••■ aa *«» aa » aa »»»»»»»»»»»»»»» •« « « «•••••••••••••••• *■ *»
..... | li ■ | » y-y- »
aa «* aaa . aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaa . , ^»»-r'.r ri» f » « 4 • iff» | «fr » • J-4,
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••»»»»»»“ i ~ fWmHB «»■? •
aaaaaaa « a # aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavaaaaaaaaaaaacaaaavaaaaaaaa i • WBL!XJHRi * '4
aaaaaaaaaaaaaasaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa tk m » 4 *lt|* fi* ^ •(• * \ • • • « « • ■»***■-* —*
■*•*••••••*•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• V \ l -Ji i \ \ \ X
■■■■ li *1 ! [* \ \ \»\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaa r • 111 IP \\Nsl
• ••••••••••••« aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa m • | NM. Il 11 X_\ il ■
......| .. 1 irrJLLLi J.L j. .. _ . .rvi il .1
K.» aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa t. aaaaaaaaaaaaaaaaaaa Bi 1 J
;aa * aaaa . aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanaaaaaaaaassaaaaaaaa B| TTTTTtTTTTTTTTtt? ■ «’T T T T T T t
À ù a ;ù ì . . - .a ; ; • a; .. J u || 11111 \ 11|11111|||f [|||||||
PREZZO LIRE 48.000 + IVA
E' in corso di realizzazione, allo stesso prezzo, una scheda
identica alla precedente ma senza circuito di decodifica, con
tutta la superficie utile forata a passo standard 2.54.
MITTENTE
MICRO DESIGN
VIA ROSTAN 1
16155 GENOVA
*
STAMPE