Commodore C64 chiama IBM - Con quale software

Commodore C64 chiama IBM – Con quale software
Introduzione 

 

Come sempre, lavorando su di un computer, dopo la realizzazione pratica di un circuito di espansione si deve passare ai programmi necessari a gestire l’interfaccia stessa. Ecco come procedere. 

Le istruzioni Basic per la porta seriale

Le istruzioni che dovremo utilizzare per un’ interfaccia seriale sono le seguenti:

Open Close Cmd Get Print

Separatamente, analizzeremo ora il significato e la sintassi di scrittura di ciascuna istruzione.

Open

Questa prima istruzione serve per aprire un canale di comunicazione ed è sempre la prima da scrivere ogni volta che si vuole utilizzare l’interfaccia seriale. Attraverso questa istruzione, infatti, il computer riserva uno spazio all’interno della memoria che verrà utilizzato in seguito per immagazzinare i dati ricevuti o trasmessi attraverso l’interfaccia seriale. Quando il computer incontra un’ istruzione Open vengono automaticamente cancellate tutte le assegnazioni di variabili date in precedenza, cioè vengono annullate tutte le istruzioni DIM, cancellate tutte le matrici precedentemente costruite, ed azzerate tutte le variabili presenti nel programma prima dell’istruzione Open.

L’ istruzione open è così composta:

Open A,B,C,CHR$(n l ,n2,n3 )+

+CHR$(n4+n5+n6)

A – può assumere i valori da O a 255 e serve per identificare il file logico da aprire

B – serve ad abilitare il porto di I/O (Input/ Output, cioè Ingresso/Uscita) relativo ai vari chip programmabili. Nel nostro caso sarà uguale a 2.

C – indica il tipo di comunicazione seriale da effettuare

  • Vengono utilizzati i seguenti segnali di controllo: RTR e DTR
  • Vengono utilizzati i seguenti segnali di controllo. RTS, DTR, DCD, CTS, DSR
  • In questo caso la trasmissione avviene senza segnali di controllo

n1 – specifica la velocità di trasmissione

  1. 50 Baud (Bit per )
  2. 75 Baud
  3. 110 Baud
  4. 134,5 Baud
  5. 150 Baud
  6. 300 Baud
  7. 600 Baud
  8. 1200 Baud
  9. 1800 Baud
  10. 2400 Baud

n2 – specifica la lunghezza

– 8 Bit

32 7 Bit

64 6 Bit

96 5 Bit

n3 – specifica il numero di bit di stop

– un bit di stop

128 due bit di stop

n4 – indica se i segnali di controllo sono usati

 – senza controllo

1 con controllo

n5 – indica il tipo di comunicazione

– full duplex

16 half duplex

n6 – indica il tipo di parità

– senza parità

32 parità dispari

96 parità pari

Close n

Questa istruzione serve per chiudere il file logico aperto con l’istruzione open. la lettera n identifica il nome del file logico da chiudere.

CMD n

Questa istruzione serve per inviare tutti i dati destinati al video, al dispositivo selezionato dall’istruzione open, quindi, far seguire a questa istruzione il nome del file logico su cui indirizzare i dati.

Print n

Questa istruzione permette di inviare una stringa o il contenuto di una variabile sul periferico selezionato dall’istruzione Open. Usare n per selezionare il dispositivo periferico.

Get# n,var

Questa istruzione permette di prelevare il dato da una periferica e di metterlo in una variabile. Usare n per indicare il periferico e var per la variabile.

Programma esempio per verificare il funzionamento della scheda

Non utilizzando i segnali di controllo i soli terminali che utilizzeremo sul connettore B saranno i seguenti:

TX: Trasmissione – Terminale 2

RX: Ricezione – Terminale 3

GND: Massa – Terminali l e 7

Per collaudare la scheda senza collegarla ad alcuna periferica esterna dobbiamo cortocircuitare il terminale RX (vedi terminale 3 del connettore B) con il terminale TX (vedi terminale 2 connettore B) in modo che il computer riceva sull’ingresso gli stessi dati che sta trasmettendo: così facendo, risulterà indispensabile, per il funzionamento del circuito, che il computer sia predi sposto in Full -Duplex. Infatti, come già sappiamo, solo in questo modo è possibile trasmettere e ricevere contemporaneamente dei dati. Eseguito tale collegamento potremo trascrivere il seguente semplice programma.

1O OPEN 5,2,3 CHR$(7)

20 GET #5,Q$

30 DIM B$(200)

40 D$=””

50 FORA= I TOTO 20 : B$(A)=STR$(A)

60 PRINT #5,B$(A)

70 GET #5,R$: IF R$=CHR$ (13) GOTO LOO

80 D$=D$+R$

90 GOTO 70

100 PRINT D$: D$=” “: NEXT A

120 END

E quindi, dopo aver controllato di non aver commesso errori di copiatura, digitare RUN e RETURN. Così facendo sul video appariranno in sequenza i numeri da 1 a 20. Se controllate l’istruzione Open alla linea 1O del programma si noterà che il terzo numero dopo tale istruzione, che serve a specificare il tipo di comunicazione da effettuare, è uguale a 3: la comunicazione viene quindi eseguita senza segnali di controllo ed inoltre, come si verifica facilmente riguardando gli schemi precedentemente esposti, la velocità di trasmissione risulta di 600 Baud e, essendo presenti altri comandi, i dati risulteranno di 8 Bit: ci sarà un solo Bit di parità.

Trasmissione seriale listati tra C64 e PC IBM

Lo scopo di tutta questa discussione era quello di preparare le basi per poter affrontare il trasferimento dei listati basic C64 al PC IBM o IBM compatibile. Per questo tipo di collegamento adopereremo un cavo a tra poli (RX,GND,TX) e un tipo di collegamento Half+ Duplex dal C64 (Master) al PC IBM (Slave). I connettori posti alle estremità di questo conduttore devono essere collegati come riportato in Fig. 1.

Prima di trasferire i dati dobbiamo “settare” la porta seriale del PC IBM in modo che venga usata la Com l a 600 Baud, senza parità ad 8 bit e con un bit di stop tramite il comando Dos MODE. Quindi preparare il C64 allo stesso tipo di trasmissione con l’istruzione Open e CMD: Le due istruzioni sono:

PC IBM -> Mode Coml :600,N,8, l

C64-> Open 5,2,3,CH$(7)

Cmd 5

Collegata la scheda di interfaccia alle due unità, predisporre il PC IBM per l’ acquisizione dei dati con l’ istruzione “Type” e predisporre il C64 alla trasmissione con il comando LIST.

Le istruzioni complete sono le seguenti:

PC IBM -> Type Com I >C: Prova.Txt

C64 -> List

Attendere quindi che la trasmissione finisca e verificare che i dati siano stati correttamente trasmessi. Si noti che possono essere usate di verse velocità di cui la 600 Baud è la più veloce per evitare errori di trasmissione. In questo modo avremo ottenuto il li stato del programma C64 nel file Prova.txt nel drive C. Nel basic C64 sono presenti alcuni caratteri che non figurano nel basic 18- M: sostituirli con le apposite istruzioni (es. il Cls del basic IBM corrisponde al PRINT “quoricino inverso” del basic C64). Il file Prova.txt non può essere mani polato da editor perché viene rappresentato senza i caratteri di ritorno carrello Per ottenere ciò bisogna adoperare il seguente programma di conversione scritto in Pascal:

Program Converti;

Uses Crt;

Var TestoA,TestoB:Text;

Riga: String;

Begin

Assign (TestoA, ‘C:Prova.Txt’);

Reset (TestoA);

Assign (TestoB,’ C:ProvaC.Txt’ );

Rewrite (TestoB);

While Not (EOF (TestoA) Do

Begin

Readln (TestoA,Riga);

Writeln (TestoB,Riga);

End;

Close (TestoA);

Close (TestoB);

End.

Il file ora può essere facilmente modificabile con qualunque programma editor (programma di testi).

A cura di Cristian Randieri

Display N. 16 – Gennaio 1992 – Anno 3, pp. 40 – 41.

Sfoglia il book della pubblicazione

DisplayDisplay è una rivista mensile (11 numeri l’anno) dedicata a tutte le materie della pratica elettronica come ad esempio: service radio-video-TV – antennistica terrestre e satellitare – domotica – fotovoltaico e energie alternative – illuminotecnica – sicurezza. Offre molti articoli e interventi dedicati ai Tv a schermo piatto LCD-TFT e PLASMA, alla multimedialità, alla telefonia, all’hardware dei computer, a Internet. Ricca di soluzioni pratiche e di notizie utili, si configura come uno strumento di conoscenza e di informazione per tutti coloro che si dedicano per passione o per lavoro all’elettronica applicata. Nata nel 1990, è arrivata felicemente al 277° numero (XXIV° anno di pubblicazioni).

You must belogged in to post a comment.

Intellisystem Technologies