MIST how-to: Amiga con Kickstart 1.3 e supporto Hard Disk IDE

Prima di passare definitivamente al mondo PC il computer che ho maggiormente utilizzato e sfruttato fino in fondo è stato un modesto Amiga 500 (Kickstart 1.3) con 1MB di RAM e con il solo floppy drive interno. Ci facevo di tutto ma in maniera dannatamente scomoda dato il continuo disk switching, che l’abitudine mi faceva apparire come normale. Desideravo tanto un hard disk ma non l’avevo: l’A590 era una sorta di sogno proibito: perché non replicare oggi, attraverso il MIST, un Amiga con Kickstart 1.3 e supporto per gli hard disk?
Ecco quindi un breve tutorial su come realizzarlo.
Versioni Kickstart e supporto IDE
Il core minimig del MIST prevede l’uso degli hard disk sotto forma di file immagine HDF o come partizione della scheda SD. Il controller implementato è però di tipo IDE come quello di un A600, mentre le release del Kickstart inferiori alla 2.05 (e quindi la 1.3 ma anche la 2.04 di A500+) non lo prevedono.
Immaginate il boot di un Amiga 600/1200 con un hard disk IDE, dopo un SoftKick, con il Kickstart 1.3: apparirà la classica “manona” in attesa di un floppy. L’hard disk non verrà rilevato dal sistema.
Patch Kickstart 1.3 per supporto IDE
Occorre quindi comportarsi come se avessimo un Amiga 600 con un hard disk interno ma con Kickstart 1.3: bisogna in qualche modo “patchare” il Kickstart 1.3 aggiungendogli la “parte mancante” (il supporto IDE) prelevandola da un Kickstart più recente (per esempio la release 3.1).
Su Aminet è presente una procedura che ha proprio questo scopo, Kickstart 1.3 SCSI patch: http://aminet.net/package/util/boot/kick13scsipatch
Stiamo parlando sempre di interfaccia IDE, ma il nome della patch è SCSI patch perché il device driver presente nei Kickstart con supporto IDE si chiama comunque scsi.device, per retrocompatibilità con i controller SCSI commercializzati e utilizzati sui modelli 500/2000/3000 (lo stesso A590 è un controller SCSI che include una ROM contenente un driver chiamato scsi.device, ed è grazie a questa ROM che l’Amiga 500 riesce a “vedere” il controller).
Dopo aver scaricato la patch linkata sopra, bisogna scaricare il tool GPatch, sempre da Aminet: http://aminet.net/package/util/misc/gpatch
Altro “ingrediente” da scaricare è GetSCSI11 (http://aminet.net/package/util/boot/GetSCSI11), da lanciare su un Amiga (reale o emulato) con Kickstart 3.1 (v40.068) per estrarne lo scsi.device da linkare al Kickstart 1.3
Ecco un riepilogo di quanto serve:
- Una copia del Kickstart 1.3 su file (v.34.005). Per verificare che tale copia sia patchabile controllarne l’MD5: dovrà essere pari a 82a21c1890cae844b3df741f2762d48d.
- Un Amiga 68020+, reale o emulato, con Kickstart 3.1 (v.40.068) da cui estrarre lo scsi.device versione 40.12 (verificarlo tramite Shell con il comando version scsi.device)
- Kickstart 1.3 SCSI patch: http://aminet.net/package/util/boot/kick13scsipatch
- GPatch: http://aminet.net/package/util/misc/gpatch
- GetSCSI11: http://aminet.net/package/util/boot/GetSCSI11
- Disco di setup dell’unità A590 (facilmente reperibile in Rete), vedremo dopo perché serve.
Una volta scaricati tutti gli “ingredienti”, avviamo l’Amiga (emulato tramite UAE, viene più semplice) con kickstart 3.1 e mettiamo assieme nella stessa cartella (accessibile a tale Amiga) i seguenti file presi dagli stessi:
- kick34005.A500 (il dump del kickstart 1.3, il file può avere un nome qualunque)
- kick34005.A500.gpatch (dal pacchetto kick13scsipatch)
- scsi.device_40.12(A1200)_rom.gpatch (dal pacchetto kick13scsipatch)
- gpatch (dal pacchetto GPatch)
- GetSCSI (dal pacchetto GetSCSI11)
Quindi, apriamo la Shell/CLI in tale cartella e usiamo i seguenti comandi:
1> getscsi 1> gpatch kick34005.A500 kick34005.A500.gpatch kick34005.A500_patched 1> gpatch scsi.device scsi.device_40.12(A1200)_rom.gpatch scsi_patched.rom 1> join scsi_patched.rom kick34005.A500_patched TO kick13ide.rom
Eccoli descritti uno alla volta:
1> getscsi
Questo produrrà la generazione del file scsi.device, prelevato direttamente dalla ROM del Kickstart 3.1 (ricordiamo di usare la release 40.068)
1> gpatch kick34005.A500 kick34005.A500.gpatch kick34005.A500_patched
Questo produrrà una versione con patch del kickstart 1.3, che verrà scritta nel file kick34005.A500_patched
1> gpatch scsi.device scsi.device_40.12(A1200)_rom.gpatch scsi_patched.rom
Questo produrrà una versione con patch dello scsi.device, che verrà scritta nel file scsi_patched.rom
1> join scsi_patched.rom kick34005.A500_patched TO kick13ide.rom
Questo produrrà infine il file kick13ide.rom, risultato finale del processo e che usato come kickstart di default del MIST farà in modo da rendere visibile l’hard disk da questo emulato.
Partizioni dell’HDF e Fast File System handler (FFS)
Il kickstart 1.3 è in grado di effettuare il boot da hard disk ma non contiene il supporto per il Fast File System (FFS, cioè il file system, o meglio la famiglia di file system utilizzati inizialmente da Amiga per gli hard disk). Per tale motivo è necessario scrivere il codice di tale handler in un determinato blocco dell’hard disk, chiamato RDB (Rigid Disk Block). Al momento del boot, Amiga andrà a cercare lì il codice per la gestione del file system del disco. Diversamente, il disco risulterà illeggibile.
Creazione di un file HDF multi-partizione con FS-UAE
Anche se desideriamo creare un file immagine HDF con un’unica partizione, per poter disporre dell’RDB (e quindi scriverci dentro) server creare un file HDF multi-partizione. Possiamo farlo facilmente attraverso FS-UAE, attraverso il tool HDF Creator, come in figura:
In particolare, consigliamo di creare un file HDF delle dimensioni di non più di 1 GB (il File System Handler del kickstart 1.3 consuma più risorse all’aumentare della dimensione del disco). In particolare, bisogna selezionare l’opzione per la creazione di un disco partizionabile, come in figura:
Scrittura (PrepHD) del Fast File System handler
A questo punto possiamo utilizzare il nostro MIST per terminare l’operazione di messa a punto di questo file HDF. Configuriamo il core Minimig del MIST con il kickstart appena prodotto (che abbiamo chiamato kick13ide.rom), come hard disk impostiamo il file HDF appena prodotto e inseriamo nel floppy drive virtuale il disco di setup di A590, apriamone la shell e lanciamo il comando:
1> execute PrepHD drive 0
Rispondiamo con y (yes), e alla fine della procedura verrà richiesto di effettuare il reboot del sistema, e in seguito formattare il disco. Dopo il reboot apriamo quindi di nuovo la shell e procediamo alla formattazione quick (veloce):
1> FORMAT DRIVE DH0: NAME SystemDisk FFS QUICK
A questo punto il nostro disco è pronto. Il disco di setup di A590 contiene l’utilty InstallHD che provvede a copiare in modo opportuno tutti i file dei dischi Workbench ed Extras 1.3 sull’hard disk appena formattato: in questo modo avrete a disposizione un disco formattato e con installato tutte le componenti del sistema operativo, e sarete pronti per utilizzarlo. Buon divertimento con il MIST/Minimig 1.3 con hard disk!