In questa sezione troverete alcuni add-on progettati e realizzati da me, alcune ricerche che ho effettuato per scoprire particolarità del computer, e altri progetti inerenti il computer.

Tutte le schede presentate in questa sezione sono state costruite e sono funzionanti.

 

Add-on realizzati:

 

 

Ricerche:

 

 

Altri progetti:

 

 

 

 

ESPANSIONE DI RAM STATICA DA 56 KBYTES

 

 

Espansione di RAM statica da 56 Kbytes

 

 

Questa scheda è un'espansione di memoria da 56 KBytes.

 

Ho scelto di realizzare una scheda da 56K anzichè da 64K in quanto gli indirizzi a partire da EC00h in poi sono occupati prima dalla memoria video della scheda LX.388, e poi dal firmware per l'interfaccia floppy-disk LX.390 (a partire da F000h).

La scheda è quindi mappata a partire da 0000h fino a DFFFh compreso. Per questo motivo non è possibile utilizzare la eprom del monitor esadecimale presente sulla scheda CPU LX.382 ed allocata da 8000h a 83FFh, nonchè le due ram 2114 presenti sempre sulla stessa scheda e mappate da 0000h a 03FFh, ed anche il firmware del programmatore di eprom LX.394-395 allocato da 8400h a 87FFh.

Per poter utilizzare tali firmware con questa scheda è necessario realizzare anche la scheda con la eprom multi-firmware presente in questa stessa sezione.

 

Per disabilitare la eprom del monitor esadecimale e le due ram 2114 presenti sulla scheda CPU LX.382 occorre operare come indicato nell'articolo COME ESPANDERE LA MEMORIA NEL COMPUTER pubblicato sulla rivista 77.

 

L'espansione è piuttosto semplice, in quanto utilizza un unico chip di memoria statica TC551001 da 128 KBytes prodotto dalla Toshiba, dal consumo di corrente molto ridotto, del quale vengono utilizzati solamente i primi 56 KBytes. Essendo un chip di memoria statica, non necessita del rinfresco per le memorie dinamiche come quello implementato dall'espansione di ram dinamica da 32K LX.392, rendendo lo schema molto più semplice.

 

La decodifica indirizzi è realizzata dall'integato U4, un 74LS85 utilizzato come comparatore binario il quale, insieme alla logica implementata da U7 e U8, rispettivamente un 74LS00 e un 74LS32, provvede ad abilitare la ram per tutti gli indirizzi compresi tra 0000h e DFFFh per le operazioni di memory read e write.

I buffer U1 e U2 si potrebbero anche omettere. Nel mio computer li ho inseriti per rendere i segnali un po' più stabili dato l'alto numero di schede presenti.

 

Attenzione: questa scheda può funzionare correttamente solo se è presente sul bus il segnale ENH. Poichè tale segnale viene generato dall'interfaccia floppy disk LX.390 oppure dalla scheda con la eprom multi-firmware, occorre che almeno una di queste due schede sia presente sul bus.

 

 

Schema elettrico dell'espansione di ram statica da 56 KBytes (423 KB)

 

Circuito stampato dell'espansione di ram statica da 56 KBytes (53 KB)

(contiene il file di progetto completo in formato EDWIN e le immagini del circuito stampato )

 

Paolo Pinto ha realizzato un nuovo circuito stampato in formato GERBER, molto professionale, partendo dallo schema elettrico.

E' disponibile nella sezione circuiti stampati.

 

 

Lista dei componenti:

 

U1 74LS244
U2 74LS244
U3 74LS244
U4 74LS85
U5 74LS245
U6 TC551001 ram da 128 KBytes
U7 74LS00
U8 74LS32
C1 - C8 100 nF poliestere
R1 - R2 10 Kohm 1/4 Watt

 

Nota: i condensatori sono tutti posizionati sulle alimentazioni degli integrati.

 


 

SCHEDA PER EPROM MULTI-FIRMWARE (Versione 1.8)

 

 

Scheda per eprom multi-firmware

 

 

Questa scheda permette di utilizzare un firmware personalizzato che rende disponibile il boot per tutti i sistemi operativi e per tutti i monitor esadecimali che sono stati realizzati per il computer, nonché il programma per la conversione dei datamark dei floppy disk e un programma per il test della ram.

Utilizzando tale firmware, all'accensione della macchina verrà presentato un menù tramite il quale è possibile lanciare i diversi monitor, boot e programmi disponibili.

Per utilizzare questa scheda è necessario disabilitare tutte le eprom presenti nel computer, sia quella sulla scheda CPU LX.382 che quella sull'interfaccia floppy LX.390, secondo quanto indicato in seguito.

 

La scheda può funzionare con una eprom di tipo 27C010 oppure 27C020, rispettivamente da 128 o 256 KBytes. In alternativa alle eprom è possibile utilizzare delle più moderne flash memory 29EE010 oppure 39SF010A, 39SF020A, 39SF040A (NOTA: per utilizzare la 39SF040A occorre disconnettere il pin 1, sollevando il pin o tagliando la pista del circuito stampato, in modo che NON arrivino i +5V sul pin 1 della flash memory).
Le eprom e le flash memory indicate sono intercambiabili a piacimento senza fare alcuna modifica alla scheda (con l'eccezione della flash memory 39SF040A).

 

La eprom viene gestita a banchi di memoria. In particolare c'è un banco sempre residente e non modificabile mappato da F800h a FFFFh. In questo banco è presente il firmware multi-boot.

E' poi presente un banco allocato da F000h a F7FFh che è switchabile inviando un byte sulla porta di I/O 5Fh, a cui risponde questa scheda.

Il valore inviato a questa porta di I/O seleziona uno dei possibili banchi da 1 KByte presenti nella eprom. Infatti, sebbene il banco switchabile sia mappato da F000h a F7FFh e sia quindi un banco di 2 KBytes, è possibile indirizzare la eprom a blocchi di 1 KByte (questo perchè la maggioranza dei firmware realizzati per il computer occupa solo 1 KByte).

 

Quindi, il valore inviato alla porta di I/O 5Fh indica il blocco da 1 Kbyte della eprom da mappare a partire da F000h, ma se il valore inviato è un numero pari è possibile accedere al successivo blocco da 1 KByte della eprom che verrà mappato da F400h a F7FFh.

Invece se il numero inviato è dispari ci si ritroverà due volte lo stesso blocco da 1 KByte mappato da F000h a F3FFh, e da F400h a F7FF.

 

In definitiva, per riepilogare, i banchi della eprom vengono mappati secondo il seguente schema:

 

Numero banco Indirizzo eprom Indirizzo mappato
0 0000h - 03FFh
0400h - 07FFh
F000h - F3FFh
F400h - F7FFh
1 0400h - 07FFh
0400h - 07FFh
F000h - F3FFh
F400h - F7FFh
2 0800h - 0BFFh
0C00h - 0FFFh
F000h - F3FFh
F400h - F7FFh
3 0C00h - 0FFFh
0C00h - 0FFFh
F000h - F3FFh
F400h - F7FFh
4 1000h - 13FFh
1400h - 17FFh
F000h - F3FFh
F400h - F7FFh
5 1400h - 17FFh
1400h - 17FFh
F000h - F3FFh
F400h - F7FFh
6 1800h - 1BFFh
1C00h - 1FFFh
F000h - F3FFh
F400h - F7FFh
7 1C00h - 1FFFh
1C00h - 1FFFh
F000h - F3FFh
F400h - F7FFh
ecc. ecc. ecc.

 

Va da sè che i firmware da 2 Kbytes dovranno essere posizionati all'interno della eprom con un indirizzo accessibile da un numero di banco pari, mentre i firmware da 1 KByte possono essere posizionati in qualunque banco.

 

Come detto precedentemente, sugli indirizzi mappati da F800h a FFFFh è sempre presente il contenuto della eprom all'indirizzo da 0800h a 0FFFh (relativo all'indirizzo 0000h della eprom), cioè il contenuto del banco 2 da 2 KBytes della eprom (se il banco 2 fosse selezionato, lo stesso banco 2 sarebbe presente sia da F000h a F7FFh che da F800h a FFFFh).

Infatti il banco 2 (composto dai banchi 2 e 3 per un totale di 2 Kbytes) della eprom contiene il firmware multi-boot che deve essere lanciato all'accensione della macchina e deve essere sempre disponibile a F800h, indipendentemente dal banco selezionato.

 

La scheda implementa anche un circuito di reset, realizzato dall'integrato U1, che all'accensione provvede ad abilitare sempre la eprom (e disabilitare contemporaneamente tutte le espansioni di ram tramite il segnale ENH del bus) per la durata della prima istruzione letta dalla CPU. Tale istruzione deve essere un JUMP ad una locazione presente all'interno del firmware multi-boot (nel range di indirizzi da F800h a FFFFh). In questo modo all'accensione, anche se la CPU mette sul bus l'indirizzo 0000h per leggere la corrispondente locazione, viene fornita l'istruzione presente a F800h (cioè all'interno della eprom) permettendo lo start-up della macchina.

 

Come detto in precedenza, per utilizzare questa scheda occorre disabilitare la eprom presente sull'interfaccia floppy LX.390.

Per disabilitare tale eprom occorre effettuare le seguenti modifiche sull'interfaccia floppy LX.390:

 

 

La tabella seguente contiene l'elenco di tutti i files che sono inclusi nella eprom multi-firmware, con il loro numero di banco:

 

Numero banco Indirizzo eprom File sorgente File binario da utilizzare Eprom originale identica Descrizione
0 0000h - 03FFh monitor2.asm monitor2.obj - eprom 1390 per il boot del NE-DOS 1.0 o 2.1
Ha una piccola modifica per evitare che parta il boot a causa di un tasto ancora premuto sulla tastiera
1 0400h - 07FFh monitor3.asm monitor3.obj ep2390.bin eprom 2390 per il boot del NE-DOS G.1.0
2-3 0800h - 0FFFh monitor0.asm monitor0.obj - monitor principale
4- 1000h - 13FFh monitor4.asm monitor4.obj - monitor esadecimale non rilocato con interrupt disabilitati
-5 1400h - 17FFh ep394.asm ep394.obj ep394.bin eprom 394 per programmatore di eprom non rilocata
6 1800h - 1BFFh monitor6.asm monitor6.obj - eprom 2390 modificata per fare il boot di qualunque NE-DOS
7 1C00h - 1FFFh monitor9.asm monitor9.obj - routines di stampa per monitor esadecimale
8-9 2000h - 27FFh - all_basic16k.bin 548-1.bin eprom 1 per basic in rom da rilocare in ram
A-B 2800h - 2FFFh - 548-2.bin eprom 2 per basic in rom da rilocare in ram
C-D 3000h - 3700h - 548-3.bin eprom 3 per basic in rom da rilocare in ram
E-F 3800h - 3FFFh - 548-4.bin eprom 4 per basic in rom da rilocare in ram
10-11 4000h - 47FFh - 548-5.bin eprom 5 per basic in rom da rilocare in ram
12-13 4800h - 4FFFh - 548-6.bin eprom 6 per basic in rom da rilocare in ram
14-15 5000h - 57FFh - 548-7.bin eprom 7 per basic in rom da rilocare in ram
16-17 5800h - 5FFFh - 548-8.bin eprom 8 per basic in rom da rilocare in ram
18 6000h - 63FFh monitor8.asm monitor8.obj - loader del basic da 5.5K su cassetta
19 6400h - 67FFh ep390.pdf ep390.obj ep390.bin eprom 390 per basic da 5.5K su floppy
1A-1B 6800h - 6FFF ep683.asm ep683.obj ep683.bin eprom 683 per SONE (NOTA: il listato assembler originale è disponibile nel file rom48.pdf)
1C- 7400h - 73FFh monitor7.asm monitor7.obj - monitor esadecimale rilocato a F000h con SP rilocato prima di EC00h per tutte le tastiere
-1D 7400h - 77FFh ep394ril.asm ep394ril.obj - eprom 394 per programmatore di eprom rilocata a F000h
1E- 7800h - 7BFFh monitorA.asm monitorA.obj - monitor esadecimale rilocato a F000h con SP rilocato prima di EC00h per la tastiera esadecimale
-1F 7C00h - 7FFFh ep394ril.asm ep394ril.obj - eprom 394 per programmatore di eprom rilocata a F000h
20- 8000h - 83FFh monitor5.asm monitor5.obj - monitor esadecimale non rilocato con SP rilocato prima di EC00h
-21 8400h - 87FFh ep394.asm ep394.obj ep394.bin eprom 394 per programmatore di eprom non rilocata
22-23 8800h - 8FFFh convflpm.asm convflpm.obj - programma per la conversione dei datamark dei floppy
24-25 9000h - 97FFh key.asm key.obj - programma per il test delle tastiere
26-27 9800h - 9FFFh testram4.asm testram4.obj - programma per il test della ram
28-29 A000h - A7FFh monitor1.asm monitor1.obj - tabelle e subroutines utilizzate da monitor0.asm
2A-2B A800h - AFFFh basic_ag4.asm basic_ag4.bin basic_ag4_ep1.bin eprom 1 per Microsoft basic AG4 (eprom da 4 KBytes)
2C-2D B000h - B7FFh
2E-2F B800h - BFFFh basic_ag4_ep2.bin eprom 2 per Microsoft basic AG4 (eprom da 4 Kbytes)
30-31 C000h - C7FFh
32-33 C800h - CFFFh disassembler_ag3.asm disassembler_ag3.bin - disassembler AG3
34-35 D000h - D7FFh

 

 

Il firmware presente nella eprom, all'accensione od al reset del computer presenta un menù con le opzioni seguenti:

 

Opzione Voce di menù Significato
1 BOOT BASIC 5.5K SU FLOPPY Lancia il firmware della eprom 390, per fare il boot del basic da 5.5K fornito su floppy
2 BOOT NE-DOS 1.5 Lancia il firmware della eprom 1390, per fare il boot del NE-DOS versione 1.0 o 1.5
3 BOOT NE-DOS GRAFIC 1.0 Lancia il firmware della eprom 2390, per fare il boot del NE-DOS versione Grafic 1.0
4 BOOT S.O.N.E. Lancia il firmware della eprom 683, per fare il boot del SONE
5 BASIC 16K IN RAM Lancia il basic da 16K su eprom dopo averlo copiato in ram a partire dall'indirizzo 0000h
6 MONITOR ORIGINALE NO INTERR. Lancia il firmware della eprom 382 contenente il monitor per la tastiera esadecimale, dopo averlo copiato in ram a partire dall'indirizzo 8000h. Questa versione di monitor è patchata per avere gli interrupt disabilitati.
Inoltre contiene anche il firmware per la gestione del programmatore di eprom (la eprom 394) copiato in ram dall'indirizzo 8400h.
7 MONITOR SP RILOC. NO INTERR. Lancia il firmware della eprom 382 contenente il monitor per la tastiera esadecimale, dopo averlo copiato in ram a partire dall'indirizzo 8000h. Questa versione di monitor è patchata per avere gli interrupt disabilitati e lo stack-pointer rilocato prima di EC00h perchè non ne venga visualizzato il contenuto sul video LX.388.
Inoltre contiene anche il firmware per la gestione del programmatore di eprom (la eprom 394) copiato in ram dall'indirizzo 8400h.
8 MONITOR A VIDEO (RILOCATO) Lancia il firmware della eprom 382 rilocato a F000h, che utilizza qualunque tastiera (alfanumerica o esadecimale) e qualunque scheda video (o display). Questa versione di monitor è patchata per avere gli interrupt disabilitati e lo stack-pointer rilocato prima di EC00h perchè non ne venga visualizzato il contenuto sul video LX.388.
Inoltre contiene anche il firmware per la gestione del programmatore di eprom (la eprom 394), rilocato a F400h.
NOTA: le funzioni del tasto CONTROL della tastiera esadecimale devono essere fatte con il tasto SHIFT della tastiera alfanumerica
9 MONITOR ORIGINALE (RILOCATO) Lancia il firmware della eprom 382 rilocato a F000h, e che utilizza la tastiera esadecimale. Questa versione di monitor è patchata per avere gli interrupt disabilitati e lo stack-pointer rilocato prima di EC00h perchè non ne venga visualizzato il contenuto sul video LX.388.
Inoltre contiene anche il firmware per la gestione del programmatore di eprom (la eprom 394), rilocato a F400h.
NOTA: le funzioni del tasto CONTROL della tastiera esadecimale devono essere fatte con il tasto SHIFT della tastiera alfanumerica
A BOOT IMMEDIATO NE-DOS Lancia la routine presente nella eprom 2390 per fare il boot immediato del NE-DOS, modificata in modo da accettare qualunque versione di NE-DOS
B LOADER BASIC 5.5K SU CASS. Lancia l'equivalente del file BASIC PARTE 1.ZIP scaricabile dalla sezione software, che effettua il caricamento del basic da 5.5K da cassetta
C PROVA TASTIERA Lancia un programma assembler che permette di testare il funzionamento delle tastiere alfanumeriche visualizzando i codici ascii e binari dei tasti premuti
D JUMP A INDIRIZZO Richiede il banco della eprom multi-firmware da selezionare e un indirizzo. Seleziona il banco ed effettua il jump all'indirizzo digitato dopo aver azzerato i video
E LOAD ROUTINES DI STAMPA A 0070H Carica le routines di stampa pubblicate nell'articolo INTERFACCIA PER STAMPANTE della rivista 73, allocate a 0070h e ripetute a 0170h.
La versione allocata a 0070h è adatta al monitor originale allocato a 8000h (opzione 6 o 7), mentre la versione allocata a 0170h è adatta al monitor rilocato a F000h (opzione 8)
F CONVERSIONE FLOPPY Lancia il programma per la conversione dei datamark dei floppy. Questo programma consente di prendere un floppy scritto a partire da un'immagine .IMD (presente su questo sito) e convertirlo in modo che possa essere letto dallo Z80NE. E' anche possibile l'operazione inversa.
Il programma è quasi identico al CONVFLP.IMD o al CONVFLPG.IMD, con la differenza che funziona con qualunque scheda video e tastiera alfanumerica, oppure con la tastiera esadecimale e i display
S1
(Shift+1)
TEST DELLA RAM Lancia un programma che consente di effettuare il test della ram.
Il programma ha due modalità: nella prima vengono semplicemente controllate le celle di ram comprese tra gli indirizzi in input, scrivendoci i valori 00h, FFh, 55h e AAh, e verificando che ogni valore scritto venga letto correttamente.
Nella seconda modalità, per ogni cella verificata viene anche controllato che tutte le altre celle di ram, comprese tra altri indirizzi in input (anche gli stessi di prima), non subiscano variazioni. Per fare questo si inizializza preventivamente tutta la ram con 00h, e si verifica che sia sempre presente 00h.
Il programma funziona con qualunque scheda video e tastiera alfanumerica, oppure con la tastiera esadecimale.
NOTA: prima di visualizzare input a video viene controllata che la ram in pagina 0 (cioè da 0000h a 00FFh) sia funzionante. In caso di errori viene visualizzato un messaggio sulla scheda video LX.388 e sulla scheda display LX.384, e viene attivato ripetutamente il cicalino LX.530 della scheda LX.529. In questo caso il programma non può proseguire
S2
(Shift+2)
BASIC AG4 (MICROSOFT) Lancia il Microsoft Basic AG4. Questo è il basic Microsoft contenuto nella eprom della scheda AG4
S3
(Shift+3)
DISASSEMBLER AG3 Lancia il disassembler contenuto nella eprom della scheda AG3

 

NOTA: accendendo il computer (o facendo il reset) mentre si tiene premuto il tasto ESC su una tastiera alfanumerica, oppure i tasti CTRL+F sulla tastiera esadecimale, viene lanciato il programma di test della ram. Per eseguire questa operazione non viene utilizzata la ram, ma solamente i registri interni dello Z80. Ciò è quindi utile per effettuare una diagnostica in caso di ram guasta.

 

 

Schema elettrico della scheda per eprom multi-firmware (486 KB)

 

Circuito stampato della scheda per eprom multi-firmware (1.10 MB)

(contiene il file di progetto completo in formato EDWIN e le immagini del circuito stampato )

 

Paolo Pinto ha realizzato un nuovo circuito stampato in formato GERBER, molto professionale, partendo dallo schema elettrico.

E' disponibile nella sezione circuiti stampati.

 

Immagine binaria completa della eprom multi-firmware (30 KB)

 

Sorgente assembler del firmware allocato da F800h a FFFFh (20 KB)

 

Output dell'assemblatore (cross reference) del firmware allocato da F800h a FFFFh (53 KB)

 

File "jump.inc", contenente la jump table del monitor multi-firmware. Da utilizzare come "include" in programmi esterni che richiedano la jump table (3 KB)

 

 

NOTA: per generare il file binario della eprom multi-firmware partendo dal sorgente, è necessario includere anche tutti i firmware necessari. Questi sono già compresi nell'immagine binaria della eprom scaricabile qui sopra.

 

 

Lista dei componenti:

 

U1 74LS109
U2 74LS14
U3 74LS13
U4 74LS32
U5 74LS244
U6 74LS27
U7 74LS30
U8 74LS14
U9 Eprom 27C010 o 27C020
oppure flash memory 29EE010, 39SF010A, 39SF020A, 39SF040A
U10 74LS244
U11 74LS257
U12 74LS257
U13 74LS373
U14 74LS00
C1 - C14 100 nF poliestere

 

Nota: i condensatori sono tutti posizionati sulle alimentazioni degli integrati.

 


 

HARD-DISK

 

Per un colpo di fortuna mi è capitato tra le mani un sistema Motorola MVME che, secondo la documentazione, monta un hard-disk BASF 6188: incredibilmente è anche presente un controller aggiuntivo. La documentazione è completissima, compreso gli schemi elettrici dettagliati, e tra gli schemi è presente un esempio per collegare il controller ad un sistema Z80. Ebbene, ho confrontato lo schema di esempio con l'interfaccia LX.683 e sono praticamente identici!!!!

 

Sono così venuto a scoprire che il controller è uno XEBEC S1410A, e che l'interfaccia è standard SASI (che è il predecessore dello SCSI).

Quindi, sebbene non possa essere sicuro al 100%, ci sono fortissime probabilità che il controller utilizzato fosse proprio quello, anche perchè le due foto del controller presenti sulla rivista coincidono al 100% con il controller XEBEC in mio possesso (anche il disegno delle piste sul circuito stampato è identico).

 

Ho quindi realizzato l'interfaccia LX.683 su una basetta sperimentale proto-board, ci ho collegato l'hard-disk e il computer, e incredibilmente sono riuscito a formattare l'hard-disk e ad installare il SONE al primo colpo.

 

A differenza di quanto indicato nella documentazione del sistema Motorola, l'hard-disk presente non è un Basf 6188 ma un Seagate ST-225. La geometria è comunque identica e l'ST-225 ha solamente il doppio delle tracce a disposizione: non dovrebbe quindi esserci alcun problema ad utilizzarlo al posto del Basf, anche se ovviamente viene utilizzato solamente per metà.

 

Infine ho realizzato il circuito stampato dell'interfaccia LX.683 partendo dai disegni originali, ho assemblato l'interfaccia e montato l'hard-disk ed il controller Xebec in un mobile standard SCSI-I.

 

Queste sono le connessioni del cavo SASI utilizzato:

 

 

Connettore 25 PIN (DB25) Segnale Connettore 50 PIN (a vaschetta)
1 /REQ 48
2 /MSG 42
3 I/O 50
4 /RST 40
5 /ACK 38
6 BSY 36
7 GND 11
8 DB0 2
9 GND 9
10 DB3 8
11 DB5 12
12 DB6 14
13 DB7 16
14 GND 41
15 C/D 46
16 GND 39
17 /ATN N.C.
18 GND 37
19 /SEL 44
20 PARITY N.C.
21 DB1 4
22 DB2 6
23 DB4 10
24 GND 1
25 TERMPWR N.C.

 

 

 

Ecco alcune foto:

 

   
Questo groviglio di fili è l'interfaccia LX.683 montata sulla basetta proto-board
   
L'hard-disk con il controller XEBEC S1410A

Il retro dell'hard-disk e del controller

L'hard-disk collegato all'interfaccia LX.683
   
Il controller XEBEC S1410A

Inizia la formattazione...

L'hard-disk viene formattato correttamente al primo colpo

Il boot del SONE da hard-disk

La directory dell'hard-disk dopo che è stato trasferito il sistema e copiato qualche file da floppy

Output del comando STAT che restituisce la dimensione del disco

Il file README presente nel sistema operativo SONE

L'interfaccia LX.386 rifatta da zero

L'hard-disk Seagate ST-225 montato dentro un case SCSI-I standard

Il controller SASI Xebec S-1410A montato sopra l'hard-disk Seagate

 


 

FORMATO DEI FLOPPY-DISK

 

I floppy disk utilizzati con la eprom 390 utilizzano il seguente formato:

 

 

 

 

I floppy disk del NE-DOS, utilizzati con la eprom 1390 o con la eprom 2390, utilizzano il seguente formato:

 

 

 

 

Invece, grazie alle ricerche effettuate sull'hard-disk, sono riuscito a decifrare il formato dei floppy utilizzati con la eprom 683 dal sistema operativo SONE.

 

Il SONE è un sistema compatibile CP/M 2.2 (praticamente è un clone del CP/M 2.2), ma il formato utilizzato dai dischi è differente da ogni floppy che conosco, ed è solo simile al formato utilizzato dal computer Osborne-1.

 

Il formato dei floppy è il seguente:

 

 

Questo formato consente di formattare i dischi con una capienza di 92 KBytes.

Il SONE supporta anche un altro formato (ma non è in grado di formattarlo) da 17 settori per traccia / 128 bytes per settore.

 

Sono poi riuscito a creare un formato per poter utilizzare il programma 22DISK della Sydex, che permette di leggere/scrivere singoli files sui floppy tramite un PC.

 

Il formato da aggiungere a quelli esistenti (modificando il file CPMDISKS.DEF come indicato nella documentazione di 22DISK) è il seguente:

BEGIN Z8NE Z80 Nuova Elettronica - SSSD 48 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
NOTE per drive da 360K o da 720K mettere CYLINDERS 40
SIDES 1
SECTORS 10,256
SIDE1 0 1,7,3,9,5,2,8,4,10,6
BSH 4 BLM 15 EXM 1 DSM 46 DRM 63 AL0 080H AL1 0 OFS 3
END

 


 

INTERFACCIA TASTIERA PS/2

 

L'amico Pino Giaquinto ha realizzato una piccola ma utilissima interfaccia che permette di collegare una normale tastiera PS/2 all'ingresso tastiera delle schede video LX.388 e LX.529.

L'interfaccia è in grado di gestire tastiere con layout Italiano e USA, e riproduce perfettamente tutti i tasti e le modalità operative della tastiera LX.387 (e LX.387-B) con il tastierino numerico LX.549.

 

La realizzazione è molto semplice. L'interfaccia sfrutta un micro-controller PIC 16F628A che deve essere opportunamente programmato utilizzando il file presente di seguito.

 

 

 

NEW: Qui è disponibile la nuova versione 3.3.1


 

PATCH EPROM SCHEDA VIDEO-GRAFICA

 

L'amico Pino Giaquinto ha patchato le eprom 529 e 530 della scheda video-grafica LX.529 per eliminare alcuni piccoli difetti.

 

In particolare la modifica è stata fatta principalmente per correggere il carattere "_" (underscore) che Nuova Elettronica rappresentava come una freccina a destra, oltretutto ridondante perchè presente anche come carattere E9h. Lo stesso vale per il carattere "^" che ugualmente era rappresentato come una freccia verso l'alto.
Quindi sono state spostate le frecce, modificata la pipe "|" per un aspetto più moderno, ed inserito l'apice inverso "`" che era completamente assente.

 

Qui potete scaricare le versioni patchate delle due eprom:

Eprom 529 versione 2

Eprom 530 versione 2

E questa è la mappa caratteri completa: Mappa caratteri versione 2

 

 

 

L'amico Piergiorgio Betti ne descrive così il funzionamento:

 

lo spazzolamento del video è generato per righe ed ogni riga è composta da una serie di punti. Questo spazzolamento è chiamato "raster scan" e l'integrato controller SY6545 consente di definire quanti punti, in altezza, compongono un carattere e quindi una riga di caratteri (vedi pagina 3-160 del datasheet del 6545 Synertek).

Nello Z80 di Nuova Elettronica questa altezza è definita in 16 punti e quindi abbiamo una matrice di carattere di 8x16 punti. Per definire un carattere occorrono quindi 16 bytes: ogni bit a "1" di questa matrice determina l'accensione del pixel sullo schermo.

 

Ogni carattere, cioè ogni blocco di 16, è programmato nelle due eprom 529 e 530 dell'interfaccia LX.529.
I caratteri sono inseriti nella eprom sequenzialmente partendo dal carattere 00h fino a 7Fh nella eprom 529, e da 80h fino a FFh nella eprom 530.
Il fatto che ogni carattere sia un blocco di 16 bytes rende l'indirizzamento al carattere assai semplice: ad esempio nella eprom 529 i caratteri da 00h a 7Fh avranno indirizzo 000h, 010h, .... 7F0h.

 

Per verificare il tutto basta aprire l'immagine del dump della eprom con un editor binario.

Cerchiamo la lettera "A" maiuscola che ha valore esadecimale 41h e che quindi si troverà nella eprom a partire dalla locazione 0410h:

 

 

 

 

I 16 bytes seguenti all'indirizzo 0000:0410 dovrebbero essere la lettera "A".

Così non si capisce molto, ma se visualizziamo un byte alla volta in binario riconosciamo chiaramente la lettera "A":

 

 

 

 

Ovviamente all'indirizzo 0420h si troverà la lettera "B" e così via.

 

 

Quindi con questa modifica la mappa dei caratteri è passata da così:

 

 

 

a così:

 

 


 

LISTATI S.O.N.E.

 

L'amico Pino Giaquinto mi ha inviato alcuni listati originali relativi al S.O.N.E. recuperati dalla documentazione di Constantinos Harikatis, sviluppatore di Nuova Elettronica.

Si tratta dei listati assembler della EPROM 683, dei programmi di formattazione per i floppy a singola e doppia densità (questi ultimi mai pubblicati da Nuova Elettronica), del Bios del S.O.N.E. a singola e doppia densità, e del programma PUTSYS che permette di generare il sistema operativo.

 

NOTA: il listato della eprom 683 corrisponde esattamente al contenuto della eprom. Gli altri listati invece non sono stati verificati: non ho idea se siano le versioni "ufficiali" oppure versioni di sviluppo.

 

I listati, in formato .PDF, sono scaricabili qui:

 

 

FILE DESCRIZIONE PROGRAMMATORI DATA SVILUPPO SIZE
ROM48.PDF Eprom 2716 siglata "683" per interfaccia floppy LX.390 e sistema operativo S.O.N.E. E' la versione ufficiale della eprom Martino Stefano
Gallerani Paolo
18/08/1984 5.13 MB
FFORMAT40.PDF Programma per la formattazione dei floppy disk a 10 settori / 256 bytes per settore, singola o doppia densità Martino Stefano
Gallerani Paolo
19/08/1984 2.18 MB
FORMAT422.PDF Programma per la formattazione dei floppy disk a 10 settori / 256 bytes per settore, singola o doppia densità Martino Stefano
Gallerani Paolo
15/08/1984 2.62 MB
FFORMAT30.PDF Programma per la formattazione dei floppy disk a 10 settori / 256 bytes per settore, singola o doppia densità Constantinos Haritakis 06/01/1986 2.16 MB
BIOS16.PDF BIOS versione 1.6 per CP/M 2.2 con Hard Disk Basf 6182. Supporta i seguenti drives: A/B - 5", 10 sec/trk, 256 byte/sec; C/D - 5", 10 sec/trk, 256 byte/sec; E/F - 17 sec/trk, 128 byte/sec (potrebbe essere la versione "ufficiale") Martino Stefano
Gallerani Paolo
15/08/1984 4.58 MB
BIOS30.PDF BIOS versione 3.0 per CP/M 2.2 con Hard Disk Basf 6182. Supporta i seguenti drives: A/B - 5", 10 sec/trk, 256 byte/sec (hard); C/D - 5", 10 sec/trk, 256 byte/sec (DS); E - 10 sec/trk, 256 byte/sec (SS) Constantinos Haritakis 05/01/1986 2.95 MB
PUTSYS161.PDF Programma per la generazione per CP/M su floppy a singola faccia o hard-disk Martino Stefano
Gallerani Paolo
15/08/1984 1.95 MB
DSPUTSYS161.PDF Programma per la generazione per CP/M su floppy a doppia faccia o hard-disk Martino Stefano
Gallerani Paolo
19/08/1984 1.84 MB

 

 


 

LISTATI EPROM MANOSCRITTI

 

Biagio Paribello mi ha inviato alcuni listati delle eprom da lui fatti a mano e commentati.

Si tratta dei listati assembler della EPROM 382, della EPROM 390 e della EPROM 394.

 

I listati, in formato .PDF, sono scaricabili qui:

 

 

NOTA: i listati di queste e anche delle altre eprom si trovano nella pagina software.

 

 


 

EPROM 382 MODIFICATA

 

Sergio Internicola è venuto in possesso di una eprom 382, modificata per funzionare con la scheda video LX.388 e la tastiera alfanumerica, anziché la tastiera esadecimale.
La eprom ha provenienza sconosciuta, è marcata "MONITOR TAST. ALF.", e sembra funzionare correttamente.
Implementa gli stessi comandi del monitor presente nella eprom 382 originale, richiamabili con i seguenti tasti:

M - visualizza/modifica la memoria
R - visualizza/modifica i registri della CPU
V - esegue il programma
P - esecuzione step-by-step
L - carica da cassetta
S - salva su cassetta
J - salta a 8400h (da utilizzare con il programmatore di eprom LX.394-395)

Il master-mind (l'easter egg richiamabile con CTRL+F nella eprom originale) sembra essere stato tolto.

 

Questa eprom può essere scaricata qui: ep382x.bin

 

 


 

MICROSOFT BASIC AG4

 

 

 

 

Salvatore Mangano ha messo a disposizione una scheda siglata MICROSOFT 8K AG4.

Andrea Barbadoro ha disegnato lo schema elettrico partendo dalle foto della scheda, e ha estratto il codice dalle Eprom (sono due eprom 2532).

 

Le eprom sono allocate all'indirizzo C000h, ma disassemblando il codice Andrea ha trovato due punti di accesso:

Punto di ingresso 1: DF40h --> Copia la Eprom in 2000h e lancia a 2000h. In questo modo il Basic funziona con la scheda LX.388
Punto di ingresso 2: DFC0h --> Copia la Eprom in 2000h, modifica LD (3E9Dh),00h, modifica LD (3E99h),40h, e lancia a 2000h. In questo modo la tastiera fa minuscolo e maiuscolo ma sulla scheda LX.388 escono bene solo le lettere maiuscole. Probabilmente questo punto di accesso viene usato quando è montata la modifica della scheda LX.388 siglata AG9 (vedi immagine seguente)

 

 

 

Per poter utilizzare correttamente il basic AG4 è necessario effettuare alcune operazioni prima di richiamare i punti di ingresso. In particolare occore:

 

Effettuate queste due operazioni preliminari si può fare un JUMP al punto di ingresso prescelto.

 

 

Qui è possibile scaricare:

 

Il basic AG4 è stato integrato nella eprom multi-firmware da dove può essere eseguito direttamente.

 

Di queste schede (AG3, AG4, AG9) non si sa praticamente nulla. Chiunque abbia notizie in merito è pregato di contattarmi all'indirizzo info@z80ne.com

 

 


 

MONITOR E DISASSEMBLER AG3

 

 

 

 

Salvatore Mangano ha messo a disposizione una scheda siglata MONITOR AG3.

Andrea Barbadoro ha disegnato lo schema elettrico partendo dalle foto della scheda, e ha estratto il codice dalla Eprom (è una eprom 2532).

 

La eprom è allocata all'indirizzo F000h.

La scheda sembra modificata per aumentare la capacità della eprom, inizialmente da 1 Kbyte e portata a 4 Kbytes, collegando i segnali A10 e A11.

Il circuito di boostrap per l'avvio automatico è stato eliminato, collegando a GND tutte e 4 le porte OR dell'integrato 74LS32. In questo modo il monitor non può partire al reset ma deve essere lanciato manualmente da F000h.

 

Paolo Carrer ha disassemblato il codice contenuto nella eprom, e ha scoperto che il primo Kbyte di memoria, da F000h a F3FFh, è identico alla eprom EP.390. Invece da F400h in poi è presente un programma disassembler che deve essere spostato in ram all'indirizzo 5000h per essere eseguito.

All'indirizzo FFF0h è presente una piccola routine che copia il disassembler in ram all'indirizzo 5000h e lo lancia.

 

 

Qui è possibile scaricare:

 

Il disassembler AG3 è stato integrato nella eprom multi-firmware da dove può essere eseguito direttamente (sono presenti delle leggere modifiche per adattarlo alla scheda multi-firmware).

 

Di queste schede (AG3, AG4, AG9) non si sa praticamente nulla. Chiunque abbia notizie in merito è pregato di contattarmi all'indirizzo info@z80ne.com