Skip to main content

Full text of "Bollettino del club utenti computer Z80"

See other formats


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