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.

PORTA ESPANSIONE:

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.

INSTALLAZIONE:

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 ;-) )

SETUP:

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!

COMANDI BASIC AGGIUNTIVI PER IDE64:

HDINIT

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.

HDINIT1

Uguale a HDINIT, ma per due dispositivi.

Sintassi:

HDINIT1

Esempio:

HDINIT1

1 HDD, 1 CDROM DETECTED
READY.

CD

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.

LL

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.

DIR

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.

MKDIR

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.


RM

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.

CHANGE

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.

DATE

Visualizza su schermo l'ora e la data corrente.

Sintassi:

DATE

Esempio:

DATE
MON JUL 17 14:32:43 2000

READY.

MAN

Esegue il programma File Manager (presente nella ROM esterna).

Sintassi:

MAN


CDOPEN

Apre il cassetto del CD-ROM.

Sintassi:

CDOPEN <numero device>

Esempio:

CDOPEN 13

READY.

CDCLOSE

Chiude il cassetto del CD-ROM.

Sintassi:

CDCLOSE <numero device>

Esempio:

CDCLOSE 13

READY.

KILL

Disattiva la cartridge e spegne l'HDD se power management è abilitata; usa il pulsante "RESET" per riabilitarla.

Sintassi:

KILL

Esempio:

KILL

READY.

INIT

Cancella la memoria ed esegue un reset.

Sintassi:

INIT

Esempio:

    **** COMMODORE 64 BASIC V2 ****
    
 64K RAM SYSTEM  IDE-DOS VX.XX EXPANDED
 
READY.

LOAD

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.

SAVE

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

READ

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.

WRITE

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).


FILE MANAGER:

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

HARDDRIVE MONITOR:

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.


Monitor Codice Macchina:

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


APPENDICE A

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.


APPENDICE B

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.


Internet links

WWW:

http://sgi.felk.cvut.cz/~vorlicek/Ide/c64ide.html
http://come.to/ide64
http://c64.rulez.org/singular/ide64warez

E-mail:

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 .

cbmsx.gif (1543 byte)