Analisi.Studio,Emulatore

Home Indietro Su Avanti

Questa pagina descrive in modo più preciso possibile il lavoro e le “scoperte” effettuate per procedere al ripristino di alcune macchine. Esso è suddiviso nelle seguenti sezioni:

1 Raccolta, identificazione e studio materiale

  • Lettura Eprom :
  • Schede Sync e Mem :
  • Floppy Disk :
  • HARD Disk :
  • Sistema Operativo
  • Organizzazione della memoria, delle porte di I/O e delle variabili di servizio :
  • Schemi elettrici :

2 Analisi Interfaccia Cassette, recupero MBASIC, e creazione dischi Boot DOS T/08

  • Emulazione lettura cassetta magnetica
  • Lettura da cassetta magnetica:
  • Boot DOS da dischi 8” virtuali:
  • Costruzione su emulatore di supporti 5,25” con DOS
  • Caricamento Dos su supporti da 5,25”

3 Lettura RAW Hard Disk T/20 e analisi Scheda Interfaccia SASI

  • Lettura RAW Hard Disk T/20  
  • Caricamento fisico del DOS con floppy disk drive da 8”(FDC)
  • Caricamento fisico del DOS da Hard Disk SA1004 (SASI))
  • Caricamento fisico del DOS da floppy disk drive da 8”(SASI)

4 Lettura RAW Hard Disk TSTAR

5 Costruzione Emulazione sistema T/20 e boot da Unità FD Box FD+HD

  • Costruzione e caricamento DOS su Emulatore T/20
  • Resoconto completo su Emulatore T/20  di Antonino Porcino
  • Ho aggiornato disponibilità emulatore,
  • Estrarre e salvare sul proprio PC le immagini INVERTITE dei dischi
  • Ulteriore Aggiornamento su BACKNEW e INSTALL

 

1 Raccolta, identificazione e studio materiale

A metà settembre 2020 mi accordo con l’amico appassionato Piero Andreini di Sarteano per andare a trovalo il successivo 28 settembre 2020 e portargli un po’ di mio materiale del GP mod T fiducioso nelle sue grandiose capacità tecniche. Io mi sarei quindi impegnato a supporto per ricerche incrociate e, in  meno di 1 mese di collaborazione  sono stati raggiunti incredibili ed insperati risultati.

Piero Andreini aveva già abbondantemente restaurato una macchina GP mod T equipaggiata con una coppia di drive da 5,25” di cui non disponeva del sistema operativo DOS e contemporaneamente era alla ricerca di una scheda ACI per poter acquisire da cassetta audio il programma MBASIC in suo possesso di cui aveva scoperto essere autore proprio Gianni Becattini

Sono state effettuate le seguenti molteplici operazioni:

  • Lettura Eprom : La lettura delle eprom fatte anche in precedenza e adesso incrociate con quelle di Piero Andreini ha consentito di individuare meglio quante erano, in quale macchine ed in che posizione sulle schede venivano installate e perché, la costituzione logica di ciascuna macchina e mediante paziente e successivo disassembly da parte di Antonino Porcino comprendere i loro entry point e la loro logica;
  • Schede Sync e Mem : Queste schede costituivano la parte centrale di ogni macchina. La scheda Sync genera ogni sincronismo per il processore, per il sistema, per la scheda video MEM ed i segnali di sincronismo per tutti i display monitor sia che disponessero di ingresso composito (scheda MEM con 4×2114 con schermo di 16 righe di 64 caratteri) che disponessero di ingresso video e sincronismi separati (scheda MEM con 6×2114 con schermo di 24 righe di 80 caratteri). Esse pertanto lavoravano sempre in abbinamento.
  • Floppy Disk : Si è approfondito il contenuto delle immagini dei dischi a suo tempo da me letti in immagini disco doppia faccia (mediante il software IMD di Dave Dunfield) ed estratti i loro file. Si è quindi individuato per ciascun disco la presenza o meno nelle sue prime tracce del sistema operativo DOS, la sua versione ed il contenuto dei file presenti individuandone lunghezze e pertanto identificando le loro successive versioni.
  • HARD Disk : Le immense capacità tecniche ed intuitive di Piero Andreini hanno consentito, mediante una semplice ma preziosissima scheda “MFM Hard Disk Reader/Emulator” creata dal mitico David Gesswein [djg@pdp8online.com] e illustrata qui: http://www.pdp8online.com/mfm/ , di estrarre in modalità RAW tutto i contenuto dell’hard disk da 10MB del Radioamatore Pier Luigi Bartolini e successivamente grazie al lavoro di Antonino Porcino estrarre il contenuto in chiaro;
  • Sistema Operativo : Il sistema Operativo della General Processor chiamato DOS si è rilevato essere il CP/M. Esso non è immediatamente “visibile”nelle tracce di sistema dei dischi perché incredibilmente ciascun bit del suo codice risulta registrato “complementato”. Inizialmente questo ci ha fatto impazzire ma Antonino Porcino che stava lavorando alla implementazione di un emulatore GP ha saputo superare rapidamente  il problema riuscendo ad estrarlo. Successivamente è stato possibile analizzare sia il CBIOS (il BIOS Customizzato) che il blocco CCP+BDOS del CP/M per capire come veniva utilizzato per interagire con il firmware presente in EPROM;
  • Organizzazione della memoria, delle porte di I/O e delle variabili di servizio : sono state individuate mediante il disassembly del firmware, le informazioni presenti nei pochi manuali disponibili, e attraverso le chiamate effettuare dal firmware evidenziate nell’emulatore;
  • Schemi elettrici : Si è potuto in alcuni casi ricostruire con il reverse engineering da parte di Piero Andreini lo schema elettrico di parti di alcune schede del GP mod T. Il materiale documentale sparso fornito dal Prof. Pirri si fermava purtroppo alla prima versione delle macchine con risoluzione 16 righe di 64 caratteri. Sicuramente molte informazioni ci hanno consentito di documentare buona parte della macchina tenuto conto che schede presentano innumerevoli tracce tagliate e abbondanti cablaggi filari che rendevano impossibile comprendere il loro funzionamento reale;

 

2 Analisi Interfaccia Cassette, recupero MBASIC, e creazione dischi Boot DOS T/08

Il reverse enginering del formidabile Andreini insieme ai dati da me rilevati dai manuali e in costante continua collaborazione  ha portato a conoscere molto approfonditamente le schede e le macchine GP mod T, ma tutto sarebbe stato incomprensibile e irraggiungibile senza la collaborazione de mitico Antonino Porcino di Reggio Calabria.

Emulazione lettura cassetta magnetica : Antonino Porcino è un analista programmatore in grado di creare mediante programmazione in linguaggio Javascript sistemi emulati via software. Egli, partendo dalla emulazione della CPU Z80, ha aggiunto un KIT delle eprom del firmware  di un sistema GP mod T, riuscendo in pochissimo tempo lo scorso 13 Ottobre 2020 a conseguire il primo prompt virtuale:

Successivamente lo scorso 14 Ottobre 2020 ha creato una opportuna stringa di caratteri di test  simulando la sua acquisizione dalla porta dell’interfaccia registratore per poterla presentare a video:

Lettura da cassetta magnetica: Verificato il funzionamento di emulazione di una lettura da cassetta magnetica, il 19 Ottobre 2020 Piero Andreini utilizzando l’unica interfaccia ACI disponibile (che Lazzerini aveva ricevuto dal Radiomatore) dopo accurata revisione e verifica tecnica di taratura è riuscito dimostrando una infinita pazienza ad acquisire fisicamente il programma MBASIC dal nastro originale di Gianni Becattini recuperandolo  definitivamente nella storia. Al seguente indirizzo (http://www.k100.biz/z.Computer/index.htm?fbclid=IwAR25hIMqN3hcJ5EJAsp41VXVjwhTfj2fWDavXtp27O9YatYecTnuRitRrbI) sono presenti i sorgenti ed il manuale del programma MBASIC dal Becattini creato per Child Z ma che successivamente aveva adeguato al GP mod T (trascorrendo intere nottate a trascodificare il suo linguaggio assembly da istruzioni 8080 a istruzioni Z80 e modificato la porta di I/O della tastiera da 3DH a FFH).

Boot DOS da dischi 8” virtuali: Il 21 Ottobre 2020, Antonino Porcino utilizzando un kit di eprom adeguato a gestire due unità floppy disk drive da 8” nel formato 128x26x77x1 ha implementato gli script per la emulazione del controller WD1791. Successivamente ha analizzato e individuato ciascuna delle chiamate dalla CPU al WD1791 e, inserendo una immagine disco di cui si era accertato la presenza del DOS, è riuscito a caricare il sistema operativo DOS dal lato A del primo floppy disk drive virtuale. Infatti i dischetti erano  selezionabili come 4 unità logiche A, B, C e D cioè una lettera per ogni faccia di ciascun supporto floppy.

Ecco come appariva la videata comprensiva del debug offerto dall’emulatore.

L’emulatore è disponibile a questo link: https://nippur72.github.io/gpmodelt-emu/

Costruzione su emulatore di supporti 5,25” con DOS : Al 22 Ottobre 2020, ancora non avevamo informazioni circa la geometria dei supporti floppy disk da 5,25”.   Mediante incrocio delle informazioni disponibili dai pochi manuali, ma soprattutto in base alle conoscenze acquisite si è potuto individuare la possibile geometria dei floppy disk da 5,25” (virtuali) e, una volta creata la loro formattazione, ricopiato il sistema operativo DOS con un opportuno modificato loader per leggere correttamente i settori nelle tracce di sistema, si è potuto finalmente  caricare virtualmente il sistema operativo DOS sul sistema emulato utilizzando il kit firmware presente nel GP mod T  di Piero Andreini. Ecco come si presentava la videata del caricamento DOS sull’emulatore di Antonino Porcino

Caricamento Dos su supporti da 5,25” : Alcuni giorni dopo Piero Andreini ha, dapprima inserito in una chiavetta USB l’immagine del disco di boot del DOS generato e funzionate sull’emulatore di Antonino Porcino verificandone il corretto caricamento su drive Gotek e, successivamente, lo ha generato con Imagedisk in un supporto disco fisico da 5,25” anche in questo caso il caricamento del sistema operativo DOS.

Di seguito anche un video del caricamento del sistema operativo DOS su una macchina fisica GP T/08 con i dischi virtuali creati da Antonino Porcino e quindi realizzati da Piero Andreini:

Successivamente nel febbraio 2021 a seguito mie ricerche incrociate in rete Internet, individuo la medesima ed introvabile geometria dei dischetti DOS del GP mod T a pagina 2 del Bollettino MicroDesign 1982-09 sul Micro Z80 Nuova Elettronica a questo indirizzo: https://archive.org/details/bollettino_computer_Z80/1982-09 .
Abbiamo quindi avuto modo di confrontare quanto scoperto e testato sull’emulatore e verificato i parametri del disco da 5.25″ con il comando STAT dopo il caricamento del DOS 2.2 che risultano:

 

3 Lettura RAW Hard Disk T/20 e analisi Scheda Interfaccia SASI

Lettura RAW Hard Disk T/20  : In precedenza il 16 Ottobre 2020 Piero Andreini era stato in grado di leggere e creare una immagine RAW dell’Hard Disk di un sistema T20 utilizzando una apposita interfaccia “ MFM Hard Disk Reader/Emulator” creata dal mitico David Gesswein [djg@pdp8online.com] e illustrata qui: http://www.pdp8online.com/mfm/ .
La figura seguente illustra l’allestimento per la lettura della immagine RAW da un  Hard Disk Winchester Shugart SA-1004 da 10MB proveniente da una macchina T/20:

Caricamento fisico del DOS con floppy disk drive da 8”(FDC) : Successivamente avevo inviato a Piero Andreini un kit composto dall’insieme di una scheda SYNC con quarzo da 20MHz ed una scheda MEM equipaggiata con n° 6 RAM 2114 per testare il funzionamento di DOS per 24 righe di 80 caratteri ed una eprom 2532 proveniente da una macchina GP mod T/20. La eprom 2532 risultava di difficile lettura non tanto per problemi di differente collocazione dei propri pin rispetto ad una comune eprom 2732, ma per qualche falso contatto dei suoi pin dovuto al tempo.
Piero Andreini ha provveduto ad approntare quindi su un banco di prova, utilizzando tutto il materiale “sparso” che gli avevo reso disponibile insieme al materiale ricevuto, una apposita macchina equipaggiandola anche di una scheda interfaccia controller SASI in modo da verificarne il funzionamento.
Dopo aver opportunamente scaldato con un phon i pin della eprom 2532 (GPmod T/20) in modo da forzare la dilatazione del metallo dei pin all’interno dalla eprom, mentre contemporaneamente stava effettuando successivi tentativi di lettura, Piero Andreini è riuscito ad ottenere piu letture successive identiche. Il contenuto di questa eprom si è poi dimostrato fondamentale non solo perché in grado di gestire sia la scheda FDC che la scheda SASI, ma soprattutto perché il contenuto pareva riscritto più recentemente dalla General Processor risultando piu efficiente e pulito, e  tale da consentire un migliore disassemblaggio del codice esadecimale.
La connessione tra la scheda FDC mediante un 34 pin flat cable verso un adattatore 34pin/50pin ed un ulteriore flat cable a 50 pin su una unità floppy disk drive 8” Basf 6104 h consentito di effettuare il caricamento del sistema operativo DOS:

 

Caricamento fisico del DOS da Hard Disk SA1004 (SASI)): Piero Andreini utilizzando il restante materiale proveniente dal box drivers di un T/20 di cui aveva provveduto ad estrarre l’immagine dell’Hard Disk Winchester, ha realizzato i collegamenti di figura seguente tra la scheda SASI ed il SASI Shugart SA1403 Controller e tra questo e le unità Hard Disk e Floppy drivers :

Fu necessario studiare ed individuare la corretta configurazione dei dip switch relativa alla LUN cui andava ricollegato l’Hard Disk Winchester.
Dopo alcuni tentativi il 14 gennaio 2021 è stato possibile effettuare il caricamento del DOS dall’Hard Disk mediante il comando B+invio:

Questo è il video che illustra l’insieme di tutti i componenti operativi sul banco di Piero Andreini con la esecuzione del caricamento del sistema CP/M da Hard Disk:

Si puo’ verificare come il sistema identifichi nella unità A la prima metà dell’Hard Disk drive, quindi l’unità B è il floppy Disk Drive da 8” Basf 6104 e con l’unità C la seconda parte dell’Hard Disk drive.

E leggerne la sua directory:

Per qualche motivo la seconda parte dell’Hard Disk identificata come unità C non era accessibile. Antonino Porcino ha successivamente scoperto, che all’interno del firmware ad ogni tentativo di accesso all’unità logica C rispondeva un “return” da parte del firmware stesso e che la dimensione della unità A corrispondeva alla capacità massima di 8MB del disco medesimo.

Caricamento fisico del DOS da floppy disk drive da 8”(SASI) : Nonostante il corretto caricamento del DOS dall’Hard Disk, ogni tentativo di accesso all’unità floppy disk drive forniva errore di BAD sector:

Imputavamo il problema alla mancanza di informazioni oltre a non avere il manuale del floppy disk drive 8” BAFS 6104 ASSY 61118 per poter capire la sua corretta configurazione. Cio’ ha comportato la necessità di approfondire in dettaglio la configurazione delle LUN sul controller SASI. Si è compreso come in base ai dip switch presenti sul controller, si ptevano “assegnare” i devices alle 4 LUN J2, J3, J4 e J5. In effetti il SASI Shugart Disk controller gestisce allo stesso modo le unità drives come volumi fissi e/o rimovibili in base alla configurazione degli switch.
Compresa la logica del funzionamento del SASI Shugart SA1403 Controller ed inserito un supporto floppy disk DSDD nel floppy disk drive si è utilizzata la utility BACKNEW.COM presente dell’Hard Disk Drive. Essa ha importanza fondamentale in quanto consente di formattare un supporto floppy disk 8” nel drive B, copiarci il sistema operativo,e verificare il supporto floppy disk come rilevasi dal suo menù:

Una volta completata la formattazione di un supporto 8”, è stato selezionato l’opzione D) “Installazione del DOS nel Floppy” cui è seguita la richiesta della corretta scelta per configurazione del video 16×64 o 24×80 e quindi è stato trasferito il sistema operativo CP/M dall’Hard Disk A: al Floppy Disk Drive B:.

Infine è stato effettuato il caricamento del DOS dal dischetto 8” collegato alla catena circuitale SASI mediante il comando da tastiera C+invio:

 

4 Lettura RAW Hard Disk TSTAR

Il 26 Gennaio 2021 ho inviato a Piero Andreini l’Hard Disk proveniente da un GP TSTAR. Le sue condizioni erano pessime in quanto aveva subito senz’altro una forte esposizione alle intemperie, ma forte del corretto funzionamento del precedente identico Hard Disk proveniente da un GP mod. T20, il 28 Gennaio 2021 Piero Andreini ha intrapreso il tentativo di utilizzare il solo chassis del disco TSTAR equipaggiandolo con il seguente materiale sicuramente funzionante ed in ottimo statoproveniente dall’Hard Disk T20 :

  • motore di rotazione del drive,
  • le pulegge,
  • la relativa cinghia,
  • schede elettroniche

per poter effettuare la lettura dei dati con la medesima interfaccia in suo possesso con cui aveva letto con successo il contenuto dell’Hard Disk della macchina T/20.Queste sono le immagini della prima acquisizione del contenuto:

Si individua la presenza di 32 settori ed un interleave 3 con la seguente sequenza :

0  3 6  9 12 15 18 21 24 27 30
1 4 7 10 13 16 19 22 25 28 31
2 5 8 11 14 17 20 23 26 29 32

Dal contenuto acquisito, si rileva come non sia possibile ricavare informazioni corrette dall’Hard Disk né per quanto riguarda le tracce contenenti il Sistema Operativo DOS specifico del Tstar né della directory dell’Hard Disk stesso.

Ecco che si è reso indispensabile da parte di Antonino Porcino al 4 Febbraio 2021, come sarà ben descritto nel paragrafo successivo, scrivere il codice per emulare il controller SASI Shugart SA-1403 in modo da poter verificare nell’emulatore il corretto caricamento del DOS della immagine del Hard Disk Winchester dal GP modello T20 e successivamente riuscire a capire se sia possibile tentare il recupero di almeno i file principali contenuti nel Hard Disk Winchester del GP TSTAR.

Antonino Porcino ha effettuato il reverse engineering della Disk Parameter Table del CBIOS della macchina T/20, che ha evidenziato la presenza di ben 5 unità A,B,C,D,E. Però :

  • A: sembra essere l’hard disk da 8MBytes

Parametri di A:
512 settori per traccia
blocchi da 2048 bytes,
4063 blocchi => 8.321.024 bytes per i files CP/M
directory tiene 575 files
1 traccia riservata per il sistema
non prevede il cambio del supporto (disco fisso)
non utilizza la skew table (no soft interleave)

da qui si vede che è corretta l’immagine corrente che ha solo i primi 8 mega bytes

  • B: un floppy “strano”

Parametri di B: floppy “strano”
512 settori per traccia
blocchi da 16384 bytes
71 blocchi => 1.163.264 bytes per i files CP/M
directory tiene 63 files1 traccia riservata per il sistema
prevede il cambio del supporto (disco floppy?)
non utilizza la skew table (no soft interleave)

sembrerebbe essere un floppy da 1.2Mb, gestito però malissimo con pochissimi blocchi da 16K con grande spreco. Il che spiegherebbe anche la non compatibilità con gli altri floppy

  • l’unità C ha tutti i parametri a zero, quindi risulta NON utilizzata.

  • le unità D: e E: risultano essere delle unità floppy drive configurati da 8″ con i parametri identici al T/08 (Standard IBM).

Se ne deduce che:

  • il floppy è gestito come un HDD, quindi assolutamente non ottimizzato

  • L’unità logica C è evidentemente predisposta per montare una seconda unità hdd all’interno del box (al posto del floppy perché non c’è spazio, o in previsione di usare unità piu nuove e quindi meno ingombranti

  • nel firwmare ogni volta tratta “C” come un caso particolare, del tipo IF drive = C then return C non fa mai nulla, anzi non so come faccia a non impallarsi intendo quando fai C: riguardo alle partizioni, sembra quindi che non ce ne fossero, suppongo quindi che nella nostra immagine la parte finale del disco semplicemente non sia mai stata toccata l’ultimo file é a circa 2.3 megabyte, il resto è tutto vuoto La routine di lettura di un settore è lunga due pagine di assembly 😫

Con riferimento al reverse engineering della DPT del CBIOS mi ricordavo che le unità erano gestite dal SASI Shugart SA1403 Controller come segue:

Nel caso del disco fisso, fisicamente il disco dovrebbe avere la capacità di:
32 sect/trk x 256 byte/sect x 256 cyls x 4 heads = 8.388.607 bytes
Ed ogni cilindro invece deve avere la capacità di:
32 sect/trk x 256 byte/sect x 4 heads = 32768 bytes
Se ci sono 512 settori /traccia allora ogni settore avrebbe la capacità di 32768 : 512 = 64bytes
E il GP leggerebbe 32 settori per ogni blocco da 2048 bytes cioè 32768 bytes

Nel caso di FDD, fisicamente il supporto ha la capacità di:
32 sect/trk x 256 byte/sect x 77 cyls x 2 heads = 1.261.568 bytes
Ed ogni cilindro invece deve avere la capacità di:
32 sect/trk x 256 byte/sect x 2 heads = 16384 bytes
Se ci sono 512 settori /traccia allora ogni settore avrebbe la capacità di 16384 : 512 = 32bytes
E il GP leggerebbe 512 settori per ogni blocco da 32 bytes cioè 16384 bytes

Il che sembra molto diverso da come il CP/M “vede” le unità dischi.

Successivamente un alimentatore del box drive del T/20 si è guastato e una resistenza di potenza ha iniziato a fumare. Una volta ripristinata da Piero però non si è piu riusciti né a leggere e né scrivere dapprima su una unità drive floppy disk BASF 6104 e successivamente neanche l’hard disk.
Si sta pensando ad un problema inerente il SASI Shugart SA1403 controller perché mentre sul lato con la scheda SASI del GP l’interfaccia “corre” su un unico cavo a 50 pin, sul lato drives una parte dei segnali shugart in comune “corre” ancora su un flat cable a 50 pin, ma i segnali “read” e “write” passano da e verso l’hard disk attraverso un flat cable a 20 pin attestato sulla LUN 1.

 

5 Costruzione Emulazione sistema T/20 e boot su emulatore da Unità FD Box FD+HD

Costruzione e caricamento DOS su Emulatore T/20 : Dal momento che non ci fu piu’ modo di poter effettuare il caricamento del DOS dal floppy disk drive B del T/20 per salvarne una sua immagine con software Imagedisk e che non si poteva continuare test funzionali sull’hardware a causa di eventuale problema inerente il SASI Shugart SA1403 controller si rese indispensabile comprendere meglio il funzionamento del sistema con interfaccia SASI.

In data 7/2/2021 Piero Andreini aveva ricostruito lo schema elettrico mediante reverse engineering della Scheda GP SASI. Questo aveva consentito di comprendere come il segnale ACK indispensabile nel colloquio con il SASI Shugart SA1403 Controller fosse generato direttamente dalla scheda SASI mediante combinazione logica dei segnali di selezione scheda e di accesso in lettura/scrittura sulle porte di I/O del controller Shugart.

Si è poi scoperto che la porta dati è la $6C mentre la porta di controllo è la $6D e seguono una logica negata contrariamente a quanto riportato dal manuale di sistema:

Questo consentiva a Antonino Porcino di comprendere e verificare correttamente l’handshaking della catena tra il processore Z80 attraverso la Scheda SASI con lo Shugart SASI Controller SA-1403.

L’obiettivo era quello di implementare la emulazione totale del sistema T/20 completo di Hard Disk Winchester la cui immagine era stata precedentemente acquisita da Piero Andreini. Questo obiettivo fu raggiunto in data 8/2/2021 con la lettura ed il corretto caricamento del DOS sull’emulatore :

Dopo questo step Antonino Porcino il 9 Febbraio 2021 ha implementato nell’emulatore del T/20 le ulteriori operazioni di scrittura e formattazione per consentire di poter formattare e copiare il DOS anche sulla immagine di un supporto floppy disk mediante il comando esterno del DOS: BACKNEW.COM.

Resoconto completo su Emulatore T/20 di Antonino Porcino
Di seguito la sua email:

Buongiorno,
ho aggiunto il comando WRITE SECTOR, adesso oltre a leggere si può anche scrivere sull’hard disk mappato sulla LUN=1 come unità logica A:. Inoltre adesso gestisco anche un floppy disk da 1.2 mega sulla LUN=0 che viene vista come unità logica B:. Creo quindi il comando FORMAT.COM e qualche altra cosa avanzata.
Sto scoprendo un po’ di cose, non so se riesco a ricordarle tutte. Ad esempio, quando scrive sul disco, ci deve essere un bug nel firmware perché tenta di scrivere sulla ROM (all’indirizzo F800H)… probabilmente non se ne sono mai accorti!!! Inoltre i dischi D: e E: non sembrano essere da 5.25” perché durante la formattazione il programma procede oltre il 18esimo settore, pertanto secondo me i dischi D: e E: sono da 26 settori come gli 8″ (Standard IBM).
Sembrava che la numerazione di conteggio dei settori partisse da 0 ma mi ha tratto in inganno un bug nel firmware, infatti alla prima lettura dal floppy disk viene richiesto un READ ADDRESS del settore 1 … ma evidentemente non era un errore bloccante perché il programma prosegue e non se ne sono mai accorti.
Nella immagine acquisita dell’hard disk ci sono dei blocchi errati nell’area della directory dell’hard disk e la loro presenza da problemi quando si lancia il comando ERA.COM generando un errore bloccante. Lanciando ERA *.* si riceve un BDOS error; se invece si lancia ERA file per file funziona sempre. Si potrebbe comunque riempire quei blocchi errati con E5 e poi magari si crea un programma che riempie il contenuto dell’hard disk con un file tutto pieno di “FF” in modo da vedere cosa è usato e cosa no.Dal momento che ogni copia del DOS è rigidamente creata in funzione della risoluzione video, sto sistemando la emulazione della scheda video in modo che sia possibile passare facilmente da 16×64 a 24×80.
Al tempo esistevano per praticità 4 diverse configurazioni “predefinite”:

GP/TERMINAL 2.200.000+IVA
– T/05 con registratore a cassette audio (2.212.000+IVA)
– T/08 con “mini dischi flessibili” da 5,25″ (a partire da 3.289.000+IVA) 5.100.000+IVA
Mod T/08 48K RAM. 2 floppy 5′ interfaccia bitampante 
– T/10 con floppy “standard” da 8″ (a partire da 4.572.000+IVA) 8.150.000+IVA
Mod T/10 48K RAM. Interf. bistampante 2 floppy 8” (tot 1MB)
– T/20 con hard disk (a partire da 8.722.000+IVA) 14.875.000+IVA
T/20 48K RAM. Interf. bistampante hard disk 10 MB +1 floppy
Mod T/78 48K RAM. elaboratore per controllo rete T-STAR 3.000.000+IVA
Mod T/85 48K RAM. Elaboratore per rete T-STAR 2.750.000+IVA
(tutti i prezzi si riferiscono al listino Ottobre 1979)  

Pensavo di indicare con :

– T08 la macchina di Piero Andreini (di cui fu creato da zero il disco di boot del DOS) con la configurazione Video 16×64+2xFDC5.25″ che include anche la scheda ACI. La macchina base (sprovvista di floppy) poteva essere utilizzata in BASIC, caricabile da cassetta. Insieme all’interfaccia per i registratori erano fornite 2 cassette: mini-Basic ed Extended Basic.

– T20 quella con Video 24×80+SASI(HD+FD)+FDC(2×8”) dal momento che all’epoca erano chiamate nel modo seguente:

Riassumendo per la macchina T/20: adesso l’emulazione funziona con tutte le unità con caricamento DOS da Hard Disk (digitando “B” + invio) abbiamo::

– Unità logica A su SASI: 1 HDD 10MB,
– Unità logica B su SASI: 1 Floppy Disk Drive 8” da 1.2MB
– Unità logiche D:, E: su FDC: 2 Floppy Disk Drive 8″ accessibili solo lato A 26x128x77= 250MB

Su tutte le unità il CP/M 2.2 consente di accedere alle User da 0 a 15 come fossero cartelle.

Ecco come appaiono le caratteristiche delle unità sull’emulatore della macchina T/20 :

con il comando STAT.COM i valori in HEX delle geometrie a partire da ind. BAD5H nel CBIOS
     
     
HARD DISK ; disk parameter block for unit A:
A: Drive Characteristics  DW $0200 ;NSECTORS – SECTORS PER TRACK
65024: 128 Byte Record Capacity  DB $04 ;BSH – BLOCK SHIFT FACTOR (2048 bytes)
8128: Kilobyte Drive Capacity DB $0F ;BLM – BLOCK MASK
576: 32 Byte Directory Entries DB $00 ;EXM – EXTENT MASK
0: Checked Directory Entries  DW $0FDF ;NBLOCKS – NUMBER OF BLOCKS
128: Records/ Extent  DW $023F ;DIRENTRY SIZE
16: Records/ Block  DB $FF,$80 ;AL0, ALI
512: Sectors/ Track  DW $0000 ;CHECKSUM AREA SIZE IN BYTES
1: Reserved Tracks DW $0001 ;RESERVED_TRACKS – NUMBER OF RESERVED TRACKS AT THE START OF THE DISK
     
FLOPPY DISK 8” NON STANDARD ; disk parameter block for unit B:
B: Drive Characteristics  DW $0200 ;NSECTORS – SECTORS PER TRACK
9216: 128 Byte Record Capacity  DB $07 ;BSH – BLOCK SHIFT FACTOR (16384 bytes)
1152: Kilobyte Drive Capacity  DB $7F ;BLM – BLOCK MASK
64: 32 Byte Directory Entries  DB $0F ;EXM – EXTENT MASK
64: Checked Directory Entries  DW $0047 ;NBLOCKS – NUMBER OF BLOCKS
2048: Records/ Extent  DW $003F ;DIRENTRY SIZE
128: Records/ Block  DB $80,$00 ;AL0, ALI
512: Sectors/ Track  DW $0010 ;CHECKSUM AREA SIZE IN BYTES
1: Reserved Tracks DW $0001 ;RESERVED_TRACKS – NUMBER OF RESERVED TRACKS AT THE START OF THE DISK
     
FLOPPY DISK 8″ STANDARD IBM ; disk parameter block for unit D: E:
D: Drive Characteristics  DW $001A ;NSECTORS – SECTORS PER TRACK
1944: 128 Byte Record Capacity  DB $03 ;BSH – BLOCK SHIFT FACTOR (1024 bytes)
243: Kilobyte Drive Capacity  DB $07 ;BLM – BLOCK MASK
64: 32 Byte Directory Entries  DB $00 ;EXM – EXTENT MASK
64: Checked Directory Entries  DW $00F2 ;NBLOCKS – NUMBER OF BLOCKS
128: Records/ Extent  DB $3F,$00 ;DIRENTRY SIZE
8: Records/ Block  DB $C0,$00 ;AL0, ALI
26: Sectors/ Track  DW $0010 ;CHECKSUM AREA SIZE IN BYTES
2: Reserved Tracks DW $0002 ;RESERVED_TRACKS – NUMBER OF RESERVED TRACKS AT THE START OF THE DISK

PS: un tizio del CP/M mi ha chiesto di mettere l’immagine dell’hard disk e dei floppy nel database “humungous” che raccoglie tutti i programmi per CP/M. se siete d’accordo si può mettere tutto sul sito dell’emulatore su Github che secondo me è l’ideale anche in termini di visibilità.

Ho implementato il comando FORMAT sull’emulatore SASI. Adesso riesco a formattare il floppy attraverso il SASI Controller e a trasferire il sistema.  Al lancio del programma di formattazione viene richiesto di indicare l’interleave mediante una lettera da A a P per indicarlo: A=1, B=2, C=3, D=4, E=5, F=6, G=7, H=8, I=9, J=10, K=11, L=12, M=13, N=14, O=15, P=16. Inoltre, parla di interfaccia “revisione B” e di una EPROM SYS2K482 che fortunatamente abbiamo ….

Successivamente al reset digitando “C”+invio viene caricato il DOS dal FDD (non Standard) via SASI:

Mostra un prompt DOS 2.03AUS come anche nella macchina reale. (chissà che vuol dire AUS?)

Effettuando il caricamento dal Floppy Disk Drive la configurazione diviene:

– Unità logica A su SASI: 1 Floppy Disk Drive 8” da 1.2MB
– Unità logica B su SASI: 1 HDD 10MB,
– Unità logiche D:, E: su FDC: 2 Floppy Disk Drive 8″ accessibili solo lato A 26x128x77= 250MB

Tentando di copiare o salvare qualcosa sul supporto immagine del FDD accade però una cosa strana si impalla. Anche con PIP.COM la CPU si blocca e va proprio in HALT.

Invece il comando BACKNEW.COM fa una cosa figa: effettua la copia tra le unità SASI direttamente tramite il SASI controller, senza passare dalla CPU. Effettua un comando “COPY BLOCKS” che vado adesso ad implementare nell’emulatore in modo da simulare esattamente la esecuzione reale seguente:

Fatta la implementazione, lanciando BACKNEW.COM con l’opzione A copia di backup da Hard Disk su dischetti funziona volendo salvare il contenuto dell’HD sui dischetti

Formattando un supporto floppy disk e configurandolo con un DOS per un video 16×64 questo non carica il sistema operativo nella macchina configurata con scheda MEM 24×80 anche se pare che ci trasferisca qualcosa. Si spiega perchè il disco DOS che viene creato con l’opzione video 16×64 contiene una sezione CCP/BDOS/BIOS troncata ai primi 8K bytes, poi tutto il resto è FFh.

Incredibile che sull’hard disk sia presente un comando “ERASEA-V.com” che una volta lanciato cancella tutto il contenuto dell’hard disk senza neanche chiedere conferma…. pazzesco

RIEPILOGANDO: sull’emulatore ho eseguito con esito POSITIVO in sequenza queste operazioni:

  • Dopo il reset della macchina, ho caricato il DOS dall’Hard Disk digitando B+invio;
  • con il comando BACKNEW.COM ho formattato disco B: e trasferitoci il sistema DOS;
  • ho copiato il programma INSTALL.COM nel disco B:;
  • Resettato di nuovo la macchina ed effettuato il caricamento del DOS dal disco B: digitando C+invio;
  • Lanciato INSTALL.COM per formattare e installare il DOS nell’hard disk A:
  • Effettuato il caricamento del DOS dall’Hard Disk e mi sono ritrovato un HD formattato vuoto.

Si potrebbe caricare delle immagini di floppy disk 8”come unità logiche D: ed E: e se ne potrebbe accedere solo alla loro prima faccia.

Ho aggiornato disponibilità emulatore,

– versione T20 24×80 con HDD+FDD qui: https://nippur72.github.io/gpmodelt-emu  Digitare B e invio
versione T08 16×64 con 2xFDD 8” qui: https://nippur72.github.io/gpmodelt-emu/?config=t08  Digitare invio poi BD e invio

I comandi disponibili sull’emulatore sono F5=reset GP e F12 = accedere a console comando emulatore.

Estrarre e salvare sul proprio PC le immagini INVERTITE dei dischi : E’ possibile con il comando JavaScript:

  • dsave(“nome.hd”,0) // per hard disk A:
  • dsave(“nome.hd”,1) // per floppy B:
  • dsave(“nome.img”,0) // per i floppy 1791

Sull’hard disk comunque mancano un programmi base… forse quei blocchi directory mancanti 🙁e non c’è manco il basic per dire. Dovremo adesso identificare i file per eventualmente aggiungere quelli originali del CP/M in modo da creare un sistema CP/M piu completo possibile.

Altra chicca in basic

 

Ulteriore Aggiornamento su BACKNEW e INSTALL del 13/2/2021 da parte di Antonino Porcino
Sto confrontando le immagini dei dischi prodotte con i comandi BACKNEW e INSTALL. Il DOS T20 presente nell’immagine dell’HD è identico a quello prodotto dal comando INSTALL. Mentre il comando BACKNEW produce un disco floppy 24×80 con boot loader e cp/m diversi da quelli presenti sull’hard disk. Anche rispetto ad un disco con DOS 16×64 è diverso… la confusione aumenta.

ma backnew non ha comando anche per formattare pure l’hard disk?

no per quello si deve usare INSTALL che formatta e mette DOS. probabilmente il comando BACKNEW è rimasto indietro, il che potrebbe tornare utile per ricostruire una versione intermedia dei sistemi

ad esempio ci manca un 16×64 con hard disk sasi

Il Controller Shugart SA-1403 nei campi della formattazione scrive il pattern $6C e non E5.

Translate »