Home
Inizio
Prima Prec Contenuti Prossima Ultima
Prima - Prec - Contenuti - Prossima - Ultima
English Deutsch Español
English - Deutsch - Español

Appendice B: Lista di Comandi Floppy Disk

Qui è un breve sommario dei comandi. Nota che questo non è inteso essere una sezione didattica, ma solo un breve riferimento per rinfrescarsi.
Se stai cercando per un completo referimento con molti esempi, guarda al manuale originale C1541. E' disponibile come testo elettronico su: http://project64.c64.org.

Il Lettore Disco 1541 è un flessibile dispositivo in se stesso, contenente un CPU, RAM e ROM ed è un piccolo computer che può eseguire molti comandi.

Usa il seguente programma per mandare il comando al floppy.

10 OPEN 1, 8, 15                  ; Apri Canale Comando
20 PRINT#1, Command$              ; Manda Comando
30 CLOSE 1                        ; Chiudi Canale

Con il seguente programma puoi visualizzare il corrente stato floppy.

10 OPEN 1, 8, 15                  ; Apri Canale Errore
20 INPUT#1, EN$, ER$, TR$, SC$    ; Leggi Messaggio
30 CLOSE 1                        ; Chiudi Canale
40 PRINT "ErrNr: "; EN$           ; Visualizza Risultati
50 PRINT "Error: "; ER$
60 PRINT "Traccia: "; TR$
70 PRINT "Settore:"; SC$

Power64 emula i seguenti comandi per il lettore disco emulato Commodore 1541 :

NEW - Formatta un disco floppy
Abbreviazione: N
Sintassi: "NEW:<diskname>,<id>"
Dove <diskname> può stare su 16 caratteri <id> può essere sia omesso (solo la directory è cancellata su un disco pre-formattatto) o dev'essere esattamente di 2 caratteri.

COPY - Crea una copia di un file sullo stesso disco
Abbreviazione: C
Sintassi: "COPY:<destfile>=<sourcefile>" o
"COPY:<destfile>=<sourcefile1>, <sourcefile2>, ..."
Se parecchi files origine sono listati, il file di destinazione conterrà contenuti concatenati di tutti i files origine.

RENAME - Rinomina un file
Abbreviazione: R
Sintassi: "RENAME:<newname>=<oldname>"

SCRATCH - Cancella files
Abbreviazione: S
Sintassi: "SCRATCH:<file>"
Puoi usare i caratteri jolly '?' e '*' per cancellare parecchi files in una volta.

INITIALIZE - Ripristina la condizione per potenziare il C1541
Abbreviazione: I
Sintassi: "INITIALIZE"

VALIDATE - Controlla e Corregge la consistenza Disco
Abbreviazione: V
Sintassi: "VALIDATE"
Validate correggerà inconsistenze che possono esser causate da files aperti ma mai chiusi. Attenzione: Validate cancella anche tutti i files casuali!

POSITION - Cambia la posizione di Lettura/Scrittura in un File Relativo
Abbreviazione: P
Sintassi: "P"+CHR$(Canale)+CHR$(RecLow)+CHR$(RecHi)+CHR$(Pos)
Esempio:
OPEN 15, 8, 15            ; Apri Comando Canale
OPEN  5, 8, 5, "RelativeFile,L,";CHR$(40)
                          ; Crea Relativo File con Misura di Registrazione
                          ; 40 Byte
PRINT#15,"P"+CHR$(5)+CHR$(17)+CHR$(0)+CHR$(1)
                          ; Imposta Posizione File al 1° Byte
                          ; Registra 17 (Numerando per Registri e
                          ; BytePos parte con 1 (non 0))
PRINT#5,"Important Dati"  ; Scrivi Dati
PRINT#15,"P"+CHR$(5)+CHR$(9)+CHR$(0)+CHR$(4)
                          ; Imposta Posizione File al 4° Byte di
                          ; Registra 9 (Numerando per Registri e
                          ; BytePos parte con 1 (non 0))
INPUT#5,X$                ; Leggi Dati
CLOSE 5                   ; Chiudi Canale
CLOSE 15                  ; Chiudi Comando Canale
BLOCK-READ - Leggi un Blocco di Disco nel floppy interno RAM
Abbreviazione: B-R
Sintassi: "B-R:"+STR$(Canale)+STR$(Lettore)+STR$(Traccia)+STR$(Settore)
Esempio:
OPEN 15, 8, 15            ; Apri Comando Canale
OPEN  5, 8, 5, "#"        ; Apri Canale 5 al buffer RAM
PRINT#15,"B-R: 5 0 18 2"  ; Leggi Traccia 18 / Settore 2 nel buffer
                            per canale 5
PRINT#15,"B-P: 5 0"       ; Poni Puntatore a inizio blocco
FOR I = 0 TO 253          ; 1 Blocco è max. 254 Byte
GET#5, A$                 ; Ottieni altro Byte
IF (ST <> 0) THEN ...     ; Controlla per Fine di Blocco
   ...                    ; Processa Byte
NEXT I
CLOSE 5                   ; Chiudi Canale
CLOSE 15                  ; Chiudi Comando Canale
BLOCK-WRITE - Scrivi un Blocco Disco dal floppy RAM interno
Abbreviazione: B-W
Sintassi: "B-W:"+STR$(Canale)+STR$(Drive)+STR$(Traccia)+STR$(Settore)
Esempio:
OPEN 15, 8, 15            ; Apri Comando Canale
OPEN  5, 8, 5, "#"        ; Apri Canale 5 al buffer RAM
PRINT#5, X$               ; Scrivi Stringa
PRINT#5, Y$               ; Scrivi un'altra stringa
PRINT#5, Z$               ; Scrivi un'altra stringa ancora
                                        (totale: max. 254 Byte)
PRINT#15,"B-W: 5 0 18 2"  ; Scrivi Traccia 18 / Settore 2 dal
                                      buffer per canale 5
CLOSE 5                   ; Chiudi Canale
CLOSE 15                  ; Chiudi Comando Canale
BUFFER-POINTER - Imposta il puntatore per un blocco di memoria tampone
Abbreviazione: B-P
Sintassi: "B-P:"+STR$(Canale)+STR$(Pos)
Esempio: vedi BLOCK-READ

BLOCK-ALLOCATE - Segna un blocco disco come usato
Abbreviazione: B-A
Sintassi: "B-A:"+STR$(Lettore)+STR$(Traccia)+STR$(Settore)
Esempio:
OPEN 1, 8, 15                ; Apri Comando Canale
PRINT#1,"B-A: 0 12 7"        ; Alloca Blocco alla Traccia 12 Settore 7
INPUT#1, EN$, ER$, TR$, SC$  ; Ottieni settore che era allocato
CLOSE 1                      ; Chiudi Canale
PRINT "Traccia:;TR$;"Settore";SC$
BLOCK-FREE - Marca un blocco disco come inusato
Abbreviazione: B-F
Sintassi: "B-F:"+STR$(Canale)+STR$(Pos)
Esempio:
OPEN 1, 8, 15                ; Apri Comando Canale
PRINT#1,"B-F: 0 12 7"        ; Blocco Libero a Traccia 12 Settore 7
CLOSE 1                      ; Chiudi Canale
BLOCK-EXECUTE - Leggi un Blocco Disco nel floppy interno e eseguilo. Abbreviazione: B-E
Sintassi: "B-E:"+STR$(Canale)+STR$(Lettore)+STR$(Traccia)+STR$(Settore)
Nota: Block Execute ovviamente richiede la completa emulazione del MOS 6502 CPU nel 1541. Se desideri usare questo comando fa si che l'Emulazione Completa Floppy 1541 è abilitata. Altrimenti avrai un messaggio di errore ''Comando Non Emulato''.

USER1 - Leggi un Blocco Disco sul floppy RAM interno
Abbreviazione: U1
USER1 funziona come BLOCK-READ con eccezione che U1 considera il collegamento al prossimo blocco essere parte dei dati. Quindi un blocco letto con U1 sarà 256 (piuttosto di max. 254) bytes.

USER2 - Scrivi un Blocco Disco dal floppy RAM interno
Abbreviazione: U2
USER2 funziona come BLOCK-WRITE con eccezione che U2 considera il collegamento al prossimo blocco essere parte dei dati Quindi un blocco scritto con U2 avrà 256 (piuttosto di max. 254) bytes.

USER3..USER8 - Esegui un Programma Utente sul Floppy
Abbreviazione: U3..U8
Programma di esecuzione parte a $0500 + 3*(x-3) (i.e. $0500 per U3, $0503 per U4...)
Nota: Block Execute ovviamente richiede la completa emulazione del MOS 6502 CPU nel 1541. Se desideri usare questo comando fa si che l'Emulazione Completa Floppy 1541 è abilitata. Altrimenti avrai un messaggio di errore ''Comando Non Emulato''.

USERI - Modalità del C1541 tra C64 e VC20
Abbreviazione: SwitchUI
Sintassi: "UI+" o "UI-"
Questo è una funzione semplice in Power64. Causa una correzione di trasferimento velocità su un reale C1541

USERJ - Ripristina le condizioni di potenza del C1541
Abbreviazione: UJ
Sintassi: "UJ"
Sostituto di INITIALIZE

MEMORY-READ - Leggi Dati dal floppy RAM
Abbreviazione: M-R (Devi usare l'abbreviazione, la forma piena non è legale).
Sintassi: "M-R"+CHR$(LowAddress)+CHR$(HighAddress)+CHR$(Dimensione)
Esempio:
OPEN 1, 8, 15                      ; Apri Comando Canale
PRINT#1, "M-R"+CHR$(52)+CHR$(18)+CHR$(3) ; Specify 3 Bytes
                                   ; partendo at Addr. $1234
GET#1, A$, B$, C$                  ; Ottieni tutti il Valori in una volta!
CLOSE 1                            ; Chiudi Canale
MEMORY-WRITE - Scrivi Dati sul floppy RAM
Abbreviazione: M-W (Devi usare l'abbreviazione, la forma piena non è legale).
Sintassi: "M-W"+CHR$(LowAddress)+CHR$(HighAddress)+CHR$(Dimensione)
Esempio:
OPEN 1, 8, 15                 ; Apri Comando Canale
PRINT#1, "I"                  ; Inizializza prima il Floppy !
PRINT#1, "M-W"+CHR$(52)+CHR$(18)+CHR$(8)
                              ; Specify Addr. $1234 e 8 Byte
PRINT#1, "POWER64"            ; Scrivi 8 Byte (incl. CR)
CLOSE 1                       ; Chiudi Canale
MEMORY-EXECUTE - Esegui un Programma Utente sul Floppy
Abbreviazione: M-E (Devi usare l'abbreviazione, la forma piena non è legale).
Sintassi: "M-E"+CHR$(LowAddress)+CHR$(HighAddress)
Nota: Memory Execute ovviamente richiede la completa emulazione del MOS 6502 CPU nel 1541. Se desideri usare questo comando fa si che l'emulazione Completa Floppy 1541 è abilitato. Altrimenti avrai un messaggio di errore ''Comando Non Emulato''.

PARTITION - Crea o Seleziona una Partizione su un 1581 disco floppy
Questo comando funziona solo su dischi1581, ma non su dischi 1541 o 1571.
Abbreviazione: / (Devi usare l'abbreviazione, la forma piena non è legale).
Depende dai parametri dati al comando, ha un differente semantica.
Sintassi:
a) "/:<Partition>" - Seleziona una partizione data.
b) "/" - Ritorna alla directory principale del floppy. Andando su solo 1 livello non è possibile.
c) "/:<Partition>,"+CHR$(StartTrack)+CHR$(StartSector)+
CHR$(BlockCntLow)+CHR$(BlockCntHigh)+",C"
Crea una nuova partizione di blocchi BlockCnt partendo da StartTrack/StartSector. Questa partizione è originariamente solo una collezione di blocchi sottostrutturata. Per usare un partizione è necessario cambiare prima una partizione e formato.
Esempio:
OPEN 1, 8, 15             ; Apri Comando Canale
PRINT#1, "/:SubDir,"+CHR$(12)+CHR$(0)+CHR$(232)+CHR$(3)+",C"
      ; Crea un Partizione: 1000 Blocchi da Traccia 12, Settore 0
      ; 1000 = 3*256 + 232 = 25*40
PRINT#1, "/:SubDir"       ; Passa alla Nuova Partizione
PRINT#1, "N:POWER64,64"   ; Formatta Partizione
PRINT#1, "/"              ; Cambia alla vecchia Root Directory
CLOSE 1                   ; Chiudi Canale
Una partizione deve incontrare certi requisiti per essere idonea per un sottopercorso
.) Deve essere almeno 120 blocchi in dimensione
.) La sua dimensione deve essere un multiplo di 40 blocchi
.) Deve iniziare al settore 0 di un traccia

Home Prima Prec Contenuti Prossima Ultima Top of Page

Fonte: http://www.infinite-loop.at/Power64/Documentation/Power64-LeggiMi/AB-Comandi_Floppy.html
Power64 Homepage: http://www.infinite-loop.at e http://www.salto.at - EMail:
© Roland Lieger, Goethegasse 39, A-2340 Mödling, Austria - Europe
Ultimo Cambiamento: 29. Febbraio 2008
Valid HTML 4.01!