IDE HARD-DISK/CDROM CONTROLLER (IDE64)
per
Commodore 64/128
Attenzione: Nomi, tecnologie e standard usati in questo documento potrebbero essere protetti da copyright o diritti d'autore.
Contenuto:
Introduzione all'IDE CARTRIDGE ......
PORTA ESPANSIONE ......
INSTALLAZIONE ......
SETUP ......
COMANDI AGGIUNTIVI BASIC IDE64 ......
FILE MANAGER ......
HARD-DISK MONITOR ......
MONITOR CODICE MACCHINA......
APPENDICE A ......
APPENDICE B ......
INTERNET LINKS......
IDE CARTRIDGE:La cartridge IDE64 è un dispositivo per connettere hard-disk IDE e CDROM ATAPI al Commodore64. Va inserito nella porta Espansione e connesso ai dispositivi ATA(PI) tramite un cavetto a 40 poli (standard IDE). L'IDE64 cartridge contiene una PEROM da 64kB (flash EPROM, con IDE DOS, Monitor Codice Macchina, File Manager e Setup), una RAM da 28kB (usata come buffer interno), un chip per orologio in tempo reale (alimentato da una batteria tampone), due (o più ) LED (per indicare la presenza della cartrige, l'attività dell'hard-disk e la configurazione della memoria), uno slot di espansione, uno Short-BUS per periferiche future, e un chip ispLSI. |
Lo slot d'espansione, di fronte alla cartridge, è per l'uso da parte di altri
dispositivi - Unità di Espansione Ram, stereo SID chip, RS232 veloce (Swiftlink) ecc. Lo
slot di Espansione non può essere usato per dispositivi
che usano gli stessi indirizzi di memoria dell'IDE64 cartridge (FINAL CARTRIDGE, ACTION
REPLAY), dispositivi che riconfigurano i segnali /EXROM o /GAME, o che usano
gli indirizzi $DE20-$DE35 e $DE5F-$DEFF. Se non sei sicuro, contatta lo sviluppatore dell'hardware IDE64.
Se hai ricevuto la versione non assemblata, usa lo schema per costruire la scheda
IDE64; fai attenzione ai componenti CMOS. Se sei molto pratico, puoi anche adattarlo
all'interno del C64C sotto la tastiera, collegandolo via cavo alla porta espansione. Un
cavo IDE ha la stessa larghezza della porta del registratore, quindi potresti farlo uscire
da lì; fai attenzione a non danneggiare i cavi sulla mainboard e fai dei fori per i led e
il pulsante di reset nei posti che ritieni più opportuni. Anche lo Short bus ha la stessa
larghezza della porta del registratore, e se non pensi/vuoi usarlo con dispositivi
aggiuntivi, quello è il suo posto giusto, con un buon cavo lungo. (non è obbligatorio
realizzare lo short bus). Non saldare direttamente lo slot espansione e lo short bus alla
scheda cartridge board, se vuoi mettere il tutto sotto la tastiera! (lo slot di espansione
slot nella mainboard è libera, poichè i cavi flessibili sono stati saldati sotto ai
relativi pin della mainboard, e lo short bus è alla porta del registratore...) Visto che
non c'è spazio, la batteria potresti posizionarla da un'altra parte.
Se sei fortunato possessore di un hard-disk da 2.5" a basso consumo, puoi mettere
anch'esso sotto la tastiera e collegarlo direttamente alla scheda IDE, senza l'uso di
alimentazione aggiuntiva. (Next project is a laptop CDROM inside the case, if I can get my
hands on one) Per maggiori informazioni su come integrare l'IDE64 all'interno del C64,
scrivi a Soci/Singular.
Installazione per utenti inesperti:
Prima di inserire l'IDE cartridge nella porta espansione, segni il tuo C64. Collega i tuoi
dispositivi ATA(PI) (harddisk/cdrom) con la cartridge utilizzando un cavo IDE standard a
40 poli allineando il pin 1 della cartridge con il pin 1 dei dispositivi IDE (il pin 1
della cartridge è nel lato superiore a destra, vicino al pulsante di RESET. Il filo rosso
indica il pin 1 nel cavo, ed in molti dispositivi il pin1 è verso il connettore
dell'alimentazione oppure dove indicato). Assicurati che i dispositivi siano correttamente
configurati. Se usi un solo dispositivo, impostalo come single/master; se usi due
dispositivi, imposta il primo come master e il secondo come slave. Collega i
dispositivi all'alimentazione (fornita da un'alimentatore aggiuntivo, ad esempio
l'alimentatore di un PC) e poi accendi prima il C64 e poi i dispositivi. Attendi fino alla
comparsa del READY nello schermo. (potrebbe passare un po' di tempo se è collegato un
CDROM...) Prima di usare un hard disk per la prima volta, questo andrà formattato. Carica
il programma IDEformat e digita RUN. Segui le
istruzioni fornite dal programma; dopo la formattazione resetta il C64 e digita HDINIT
(un dispositivo) o HDINIT1 (due dispositivi). Il CDROM sarà pronto per l'uso se il
CD inserito è in formato ISO9660/Joliet (tutti i CD sono in questo formato ;-) )
L'utility di setup è contenuta nella ROM dell'IDE controller. PEr avviarla premere il tasto '<-' insieme al tasto RESTORE. Potrai cambiare il numero logico del dispositivo, i colori dello schermo, abilitare/disabilitare il powermanagement, floppyspeeder ed impostare l'orologio in tempo reale. Salva la configurazione premendo il tasto 'C=' .
L'opzione 'Boot file' permette di caricare e far partire un file contenuto nella directory radice (root) dell'hard-disk primario all'accensione o pressione del tasto reset. Se questa opzione è 'Always', il C64 caricherà sempre 'BOOT' (LOAD"/BOOT",12,1) all'avvio e lo eseguirà tramite RUN. Se questa opzione è 'Power up' questo file verrà caricato solamente all'accensione del C64, e non dopo un Reset. 'Disabled' disabilita questa funzione. Premendo 'C=' o 'RUN/STOP' durante l'accensione/reset, il file BOOT non verrà caricato, anche se la funzione è abilitata.
Se 'Power management' è abilitata, l'alimentazione dell'hard disk verrà spenta dopo un periodo di tempo prefissato (1 min - 2 ore), in caso di inattività; questa verrà automaticamente ripristinata al prossimo accesso al disco. Questa funzione è utile per non sentire il fastidioso rumore che fa l'hardisk in funzione (non tutti i drives supportano il power management!). Occorre digitare HDINIT(1) per via che queste impostazioni siano subito effettuate.
L'opzione 'Set basic clock' sincronizza le variabili basic TI$/TI all'accensione/reset con il realtime clock della cartridge, se abilitata.
Se l'orologio è fermo nel setup e mostra 2000.jan.01 00:00:80 dopo l'accensione, e
occorre impostarlo frequentemente, controllare che la batteria sotto la cartridge sia
carica!
Inizializza le variabili interne e il buffer dell'harddrive (viene eseguito
automaticamente, all'accensione del computer).
Se l'harddrive viene acceso dopo il computer, è necessario impartire
questo comando prima di usarlo!
Questo comando disabilita il dispositivo slave, anche se presente!
Sintassi:
HDINIT
Esempio:
HDINIT 1 HDD DETECTED READY.
Uguale a HDINIT, ma per due dispositivi.
Sintassi:
HDINIT1
Esempio:
HDINIT1 1 HDD, 1 CDROM DETECTED READY.
Cambia la directory (cartella) corrente.
Se il numero di device è omesso, verrà considerato quello corrente (Questa regola è
valida anche per altri comandi).
Sintassi:
CD "/"
o
CD "/BIN"
o
CD "/BIN/DATA",12
Esempio:
CD"A HD FOUND A READY.
Elenca il contenuto della directory corrente/indicata in formato UNIX .
Sintassi:
LL o
LL "/"
o
LL "/GAMES",12
Significato dell'output:
D = Directory - = file |
X = eXecuteable (eseguibile) U = User - = other (altro) |
T = proTected (protetto) - = normal (normale) * = splat |
Dimensione in bytes/Kbytes | Chiuso a | Filename |
Esempio:
LL"/ HD FOUND / DXT 0 JUL 13 19:39 . DX- 0 JUL 13 19:52 PLUGINS -X- 9941 DEC 3 1999 BOOT -X- 170K JUL 14 11:50 TEST.D64 READY.
Elenca il contenuto della directory corrente/indicata in formato C64.
Sintassi::
DIR
o
DIR "",12
Esempio:
DIR"/ HD FOUND / 0 ". " IDE64 0 "PLUGINS" DIR 39 "BOOT" PRG 684 "TEST.D64" PRG 723 BLOCKS FULL. READY.
Crea una nuova directory in quella corrente o indicata.
Sintassi:
MKDIR "DIRECTORY"
o
MKDIR "/BIN/UTIL/DIR1",12 - means create directory "DIR1" in
the existing "/BIN/UTIL" path.
Esempio:
MKDIR"A DIRECTORY CREATED READY.
Nota: il nome di file o directory non può contenere il carattere "/", poichè viene usato come separatore per il percorso.
Cancella (removes) file o directory vuote nel percorso corrente o indicato.
Sintassi:
RM "DIRECTORY"
o
RM "DIRECTORY/FILE",12
Esempio:
RM"A FILE/DIR DELETED READY.
Cambia il numero di device tra harddrive e floppy (HDD diventerà il numero 8, il
floppy drive sarà il 12).
Usa il comando HDINIT(1) o reset per tornare indietro.
Il comando CHANGE1 lavora nella stessa maniera per il secondo harddrive, se
presente. 13 <-> 8.
Sintassi:
CHANGE
o
CHANGE1
Esempio:
CHANGE READY.
Visualizza su schermo l'ora e la data corrente.
Sintassi:
DATE
Esempio:
DATE MON JUL 17 14:32:43 2000 READY.
Esegue il programma File Manager (presente nella ROM esterna).
Sintassi:
MAN
Apre il cassetto del CD-ROM.
Sintassi:
CDOPEN <numero device>
Esempio:
CDOPEN 13 READY.
Chiude il cassetto del CD-ROM.
Sintassi:
CDCLOSE <numero device>
Esempio:
CDCLOSE 13 READY.
Disattiva la cartridge e spegne l'HDD se power management è abilitata; usa il pulsante "RESET" per riabilitarla.
Sintassi:
KILL
Esempio:
KILL READY.
Cancella la memoria ed esegue un reset.
Sintassi:
INIT
Esempio:
**** COMMODORE 64 BASIC V2 **** 64K RAM SYSTEM IDE-DOS VX.XX EXPANDED READY.
Carica il programma START in memoria negli indirizzi originali, dal percorso /GAMES/ELVIRA. (LOAD può caricare programmi fino a $FFFF dall'HDD e FDD se floppy speeder è abilitata).
Sintassi:
LOAD "/GAMES/ELVIRA/START",12,1
Esempio:
LOAD"/UTILITIES/IDE TASM",12,1 HD FOUND / HD FOUND UTILITIES HD FOUND IDE TASM LOADING FROM $9000 - $CF00 READY.
Salva il file BASIC-PROGRAM nell'harddrive sul percorso corrente.
Sintassi:
SAVE "BASIC-PROGRAM",12
Esempio:
SAVE"/WORK/PART2",12 HD FOUND / HD FOUND WORK READY.
ESTENSIONI IDE KERNAL:
Il Kernel del C-64 è stato aggiornato con le seguenti chiamate veloci:
$DEF4 - READ (legge parte di un file e lo mette in memoria); preceduta da OPEN
e CHKIN
$DEF1 - WRITE (scrive parte della memoria nell'harddrive); preceduta da OPEN
e CHKOUT
Input: registro X,Y - LOW/HI massimo numero di bytes da leggere; registro A - puntatore (nella pagina zero) all'indirizzo di partenza del buffer.
Output: registro X,Y - LOW/HI numero di bytes da leggere in; $90 - stato.
Questa chiamata è più veloce del byte by byte (CHRIN/GETIN) in lettura quando più di 10 bytes devono essere letti. A $D000-$DFFF scrive nell'area I/O.
Input: registro X,Y - LOW/HI lunghezza dei dati da scrivere in bytes;
registro A - puntatore (nella pagina zero) all'indirizzo di partenza del buffer.
Esempio
Attenzione: Queste funzioni non possono accedere alla ram nell'area di memoria $D000-$DFFF, solamente l'area I/O ! Per l'accesso alla ram nelle zone $A000-$BFFF e $E000-$FFFF impostare correttamente la porta I/O del processore ($00/$01).
Il File Manager è un software per copiare, cancellare, rinominare, creare directories, ed eseguire programmi. Lavorare con questo programma è molto semplice. Per lanciarlo, dal Basic digitare il comando MAN.
Per spostarsi tra le finestre premere il tasto CTRL, Per selezionare un numero di device, premere C=.
F1/CRSR LEFT | - pagina sù |
F2/HOME | - home |
F7/CRSR RIGHT | - pagina giù |
F8/CLR | - fine |
CRSR UP/DOWN | - sposta il cursore |
+ | - seleziona tutto (solo files) |
- | - deseleziona tutto (solo files) |
INS/DEL | - seleziona dei files |
1 | - rilegge directory |
3 | - visualizza file usando "/VIEWER" |
5 | - copia (i singoli nomi dei files possono essere cambiati) |
6 | - rinomina file/directorys |
7 | - crea directory |
8 | - cancella (solo files o directory vuote) |
RETURN | - cambia directory o carica ed esegue un programma o visualizza un file via plugin |
SHIFT + RETURN | - cambia directory o carica un programma |
/ | - va alla directory radice (root) (veramente utile con un 1581 ;-) ) |
^ | - apre/chiude il cassetto del CDROM. (opera nel corrente drive) |
<- | - esce da manager |
File Manager può associare differenti applicazioni (manager 'plugins') a differenti
file name patterns. Ad esempio, questa caratteristica permette di vedere immagini Art
Studio o FLI pictures solamente premendo RETURN.
Non dimenticare che i patterns sono sensibili ai caratteri maiuscoli/minuscoli. Clicca qui
per scaricare i plugins di Manager.
Installa il file "CONFIG EXT" (contiene associazioni pattern predefinite) nella
directory 'root' dell'harddrive primario.
;Esempio di file CONFIG EXT ".shi:/Plugins/shi viewer" ; SuperHiresInterlace viewer "mpic:/Plugins/mpic viewer" ; Art Studio v1.2b viewer ".mpi:/Plugins/mpic viewer" ; Art Studio v1.2b viewer " pic:/Plugins/hpic viewer" ; Art Studio v1.1 viewer ".hpi:/Plugins/hpic viewer" ; Art Studio v1.2b viewer ".drl:/Plugins/drl viewer" ; Drazlace viewer ".drp:/Plugins/drp viewer" ; DrazPaint viewer ".fun:/Plugins/fun viewer" ; Funpaint II viewer ".ifl:/Plugins/ifl viewer" ; Gunpaint viewer ".afl:/Plugins/afl viewer" ; Afli-editor viewer ".fli:/Plugins/fli viewer" ; Flidesigner viewer ".sid:/Plugins/sid player" ; HVSID player ".d64:/Plugins/d64 writer" ; ID64 writer "flii:/Plugins/flii viewer" ; FLI interlace viewer
Un modo semplice per creare questo file:
10 OPEN 4,12,4,"/CONFIG EXT,P,W" 20 PRINT#4,CHR$(34)+".SID:/PLUGINS/SID PLAYER"+CHR$(34) .... 100 CLOSE 4
IDE harddrive monitor è un'utility per leggere/editare/scrivere i settori dell'HDD.
Può essere utilizzato semplicemente per riparare la struttura delle directory o files.
Comandi:
I - identifica drive
R - legge settore (cilindro, testina e numero settore)
W - scrive settore (cilindro, testina e numero settore)
N - segue il collegamento file e carica il prossimo settore
+ - carica il prossimo settore
- - carica il settore precedente
E - edita settore (premere RUN/STOP per tornare indietro)
C - cambia drive (primario o secondario, se presente)
F - formatta harddrive (modelli obsoleti) -usare invece IDEformat.
Programma per leggere ed editare memoria e registri, e per scrivere e correggere
semplici programmi in linguaggio macchina. Funziona con ROM esterne, la RAM del C64
viene utilizzata solo se necessario e molto prudentemente. Questo programma parte premendo
il tasto 'C=' e 'RESTORE' o con l'istruzione BRK.
Standard monitor header:
PC IRQ DR BK AC XR YR SP NV#BDIZC .;AAFA EA31 0D 07 7A 00 EB E8 ..**.*.*
C | - Carry flag |
Z | - Zero flag |
I | - Interrupt flag |
D | - Decimal flag |
B | - Break flag |
# | - non importa |
V | - oVerflow flag |
N | - Negative flag |
SP | - Stack Pointer |
YR | - Y Register |
XR | - X Register |
AC | - ACcumulator |
BK | - BanK switch - cambia banco |
DR | - DRive number - numero drive |
IRQ | - IRQ vector |
PC | - Program Counter |
xxxx | - significa indirizzo di partenza in esadecimale |
yyyy | - significa indirizzo finale in esadecimale |
zzzz | - significa nuovo indirizzo di partenza in esadecimale |
hh | - significa valore byte |
dn | - significa numero device in esadecimale |
"filename" | - significa nome file in testo |
"disccommand" | - significa stringa di comando disco |
() | - significa parametri opzionali |
A - Assemble
Descrizione: Assembla istruzione in memoria
Sintassi: A xxxx instruzione
C - Compara
Descrizione: Compara due aree di memoria e visualizza le differenze
Sintassi: C xxxx,yyyy,zzzz
M - Memory list
Descrizione: Visualizza il contenuto della memoria in esadecimale e in formato ascii
Sintassi: M xxxx(,yyyy)
D - Disassembla
Descrizione: Disassembla la memoria
Sintassi: D xxxx(,yyyy)
T - Trasferisce
Descrizione: Trasferisce un'area di memoria da un'altra parte
Sintassi: T xxxx,yyyy,zzzz
G - Go to
Descrizione: Esegue il programma all'indirizzo xxxx
Sintassi: G (xxxx)
Nota: Se non viene inserito l'indirizzo di partenza, verrà considerato quello presente nel PC.
I - Ascii
Descrizione: Visualizza la Memoria in formato ASCII.
Sintassi: I xxxx(,yyyy)
O, B - scambio memoria
Descrizione: Scambia la memoria in $01
Sintassi: O4 - solo RAM
OD - scambia con DD
L - LOAD
Descrizione: Carica file in RAM. Se non è presente un'indirizzo di partenza, verranno considerarti i primi due bytes del file.
Sintassi: L "filename",dn(,xxxx)
S - SAVE
Descrizione: Salva la memoria compresa tra $xxxx e $yyyy nel file "filename". I primi 2 bytes del file contengono l'indirizzo di partenza.
Sintassi: S "filename",dn,xxxx,yyyy
Esempio: S "DUMP",0C,1000,2000
Salva il file "DUMP" (da $1000 a $1FFF) nel device numero 12 (harddrive)
X - Exit
Descrizione: Esce dal monitor
Sintassi: X
H - Ricerca
Descrizione: Ricerca bytes in memoria
Sintassi: H xxxx,yyyy,hh(,hh(,hh)...)
R - Registers
Descrizione: Visualizza header
Sintassi: R
@ - comando disco
Descrizione: Invia un comando al device corrente
Sintassi: @ "command"
Nota: @ senza comando visualizza lo stato del drive
E - edit
Descrizione: Visualizza la memoria in un formato speciale
Sintassi: EC xxxx(,yyyy) - edit memoria in formato carattere (binario)
ES xxxx(,yyyy) - edit memoria in formato sprite
F - fill
Descrizione: Riempie la memoria con un carattere
Sintassi: F xxxx,yyyy,hh
P - print
Descrizione: Stampa lo schermo su stampante
Sintassi: PM xxxx,yyyy - stampa area di memoria da xxxx a yyyy in formato LM
PD xxxx,yyyy - stampa area di memoria da xxxx a yyyy in formato disassemblato
# - convert
Descrizione: Converte da decimale a esadecimale. Intervallo di conversione: un byte.
Sintassi: #[0-255]
$ - convert
Descrizione: Converte da esadecimale a decimale. Intervallo di conversione: un byte.
Sintassi: $[0000-ffff]
*r track sector memory - legge traccia dal floppy drive
*w track sector memory - scrive traccia nel floppy drive
Tasti funzione:
F1 - disk command
F3 - sposta sù
F5 - sposta giù
F7 - directory
Descrizione dei messaggi di errore Basic relativi agli harddrive.
?HD ERROR READY.
C'è un problema con l'harddrive IDE (problema hardware o di configurazione).
?DISK FULL ERROR READY.
Il filesystem dell'Harddisk drive è pieno.
?LAST DIR SECTOR ERROR READY.
Il controller ha rilevato un problema di settore.
?FILE IS NOT DIR ERROR READY.
Il nome di directory richiesto esiste nel drive come nome di file standard.
?CAN'T LOAD DIR ERROR READY.
Il nome di file richiesto esiste nel drive come nome di directory.
?WRITE PROTECT ERROR READY.
Questo messaggio viene generato quando il controller si appresta a cancellare un file protetto.
?FILE TYPE ERROR READY.
Simile a FILE TYPE MISMATCH
?BAM ERROR READY.
C'è un problema con la BAM (Block Availability Map); per correggerlo, inizializzare l'harddrive o usare l'utility IDE ScanDisk.
?DIR IS NOT EMPTY ERROR READY.
Il controller non può cancellare una directory se questa contiene qualcosa.
?FILE DIR EXIST ERROR READY.
Il nome di file o directory è già esistente del percorso corrente.
Significato dei messaggi d'errore dell'IDEDOS.
00, OK,00,00
Tutto sembra ok.
23, READ ERROR,00,00
Media error/device timeout. Comune in caso di lettura di CD "bucati".
26, WRITE PROTECT ON,00,00
File/device è protetto in scrittura.
29, DISK ID MISMATCH,00,00
E' stato cambiato il CD nel drive.
31, SYNTAX ERROR,00,00
Comando sconosciuto/non implementato.
62, FILE NOT FOUND,00,00
File non trovato.
63, FILE EXISTS,00,00
File/directory già esistente.
64, FILE TYPE MISMATCH,00,00
Nel file si è cercato di usare un filetypes/cambio di directory sconosciuto.
73, IDE DOS Vx.xx IDE64,00,00
Stringa di identificazione dell'harddrive.
73, IDE DOS Vx.xx CDROM,00,00
Stringa di identificazione del cdrom.
74, DRIVE NOT READY,00,00
Disco non presente nel cdrom.
80, HDD ERROR,00,00
Altri errori, ancora non numerati; ad esempio directory non vuota.
WWW:
http://sgi.felk.cvut.cz/~vorlicek/Ide/c64ide.html
josef.soucek@ct.cz (IDEDOS)
dundera@volny.cz (hardware)
soci@c64.rulez.org (software, cd, warez, ecc.)
Questo documento è soggetto a cambiamenti, cerca quindi di tenerti aggiornato per vedere le nuove caratteristiche che saranno disponibili.
Questo manuale è stato creato il 17 Agosto 2000, relativo all'IDEDOS v0.86 .