IDEDOS - IDEDOS

IDEDOS
Sviluppatore Josef Souček, Tomáš Přibyl, Jan Vorlíček, Jan Hlaváček, Kajtár Zsolt
Scritto in 6502 / 65816 linguaggio assembly
Versione iniziale 1996 ; 25 anni fa  ( 1996 )
Ultima uscita 0.90
Ultima anteprima 0.91 beta
Disponibile in inglese
Piattaforme Commodore 64 , 128 e SuperCPU
Interfaccia utente predefinita Interfaccia della riga di comando
Licenza GPLv2
Sito ufficiale idedos .ide64 .org

IDEDOS è una ROM basata su sistema operativo disco scritto in 6502 / 65816 linguaggio assembly per il Commodore 64 , 128 e SuperCPU . Il suo scopo principale è controllare i dispositivi ATA (PI) collegati a una cartuccia IDE64 e presentarli come normali unità Commodore. Inoltre supporta unità in rete (PCLink) e dispone di un monitor del codice macchina e di un file manager integrati .

Architettura

Il C64 KERNAL utilizza una tabella vettoriale a pagina 3 per consentire il reindirizzamento della gestione dei file kernel comuni e delle funzioni di base. Questa caratteristica è usata da IDEDOS per agganciarsi al kernel C64.

Il sistema operativo stesso è diviso in quattro pagine da 16 KiB che vengono mappate quando richiesto. La mappatura viene temporaneamente disattivata durante l'esecuzione degli interrupt per una maggiore compatibilità, tuttavia ciò causa una latenza di ≈40 μs.

La RAM aggiuntiva per buffer e dati interni viene mappata anche dalla cartuccia IDE64 (28 KiB) oppure viene utilizzata la RAM aggiuntiva della SuperCPU. Le locazioni di memoria standard del kernel a pagina zero e pagina due sono gestite in modo compatibile con kernal; la memoria utilizzata temporaneamente viene ripristinata al termine delle routine.

Oltre alla tabella kernal, IDEDOS ha due nuove chiamate per la gestione dei dati di massa (lettura / scrittura) che consente velocità di trasferimento dati molto più veloci rispetto all'I / O basato sui caratteri.

Il file system nativo è in stile non CBM a basso livello per consentire partizioni maggiori di 16 MiB. Le funzionalità di alto livello come i nomi di file o i tipi di file a 16 caratteri vengono mantenute. A causa della complessità e dei requisiti di memoria, la creazione del file system e il controllo della coerenza non fanno parte del sistema operativo, a differenza di CBM DOS o CMD DOS.

File system aggiuntivi come ISO 9660 o FAT sono astratti internamente e per la maggior parte utilizzano le stesse routine per la gestione, quindi si notano poche differenze ai programmi utente, tranne se alcune funzionalità non sono completamente implementate.

La gestione del dispositivo viene eseguita da numeri di dispositivo aggiuntivi assegnati ai nuovi dispositivi. I numeri dei dispositivi per i dispositivi IDEDOS sono configurabili e normalmente sono compresi tra 10 e 14. Nel corso degli anni molti programmi hanno ipotizzato che ci sia solo il dispositivo 8 e non consentono di selezionare nient'altro; questo può essere aggirato cambiando temporaneamente il numero di dispositivo IDEDOS utilizzato in 8.

Per i dispositivi standard, vengono utilizzate le routine kernal originali, mentre i dispositivi IDEDOS utilizzano routine personalizzate che imitano da vicino i risultati e il comportamento delle chiamate kernal per i dispositivi floppy. Le chiamate Kernal che non passano attraverso la tabella vettoriale (in particolare le chiamate specifiche del bus IEC) presentano un'incompatibilità con quei programmi che le utilizzano.

Funzionalità speciali (come la gestione dell'audio del CD-ROM) sono implementate dai nuovi comandi del canale 15, mentre le funzionalità non presenti sulle unità floppy seguono i comandi in stile CMD per consentire ai programmi di supportare facilmente una gamma più ampia di dispositivi.

A differenza dei dispositivi esterni intelligenti che hanno un processore separato (come 1541 con CBMDOS), IDEDOS viene eseguito sul computer host, quindi tutte le routine del disco si bloccano fino al termine. Questo esclude l'uso di "caricatori IRQ" che sono comunemente usati per accelerare il funzionamento delle periferiche del bus seriale.

Gli interrupt sono generalmente consentiti mentre IDEDOS è in esecuzione (sono disabilitati in rare operazioni critiche in termini di tempo), tuttavia il sistema è stato scritto per essere non rientrante , proprio come il kernel originale.

Breve storia

Nel 1996 è nato IDEDOS, poiché c'era bisogno di un sistema per eseguire la scheda IDE64 1.1. È stato creato da Josef Souček (codice principale) e Tomáš Přibyl (File manager, adattamento monitor cartuccia finale). Il codice aggiuntivo è stato fornito da Jan Vorlíček (estensione BASIC), Jan Hlaváček (Duart PCLink).

Nel 2000 Kajtár Zsolt ha aggiunto il supporto CDROM, un nuovo codice di installazione e molte correzioni. A causa delle limitazioni del design, Kajtár Zsolt ha avviato lo sviluppo di una versione completamente riscritta (0.90), che non era pronta per l'uso generale prima del 2005. Nel frattempo, la vecchia versione ha raggiunto 0.898b nel giugno 2004.

Nel 2009 il limite di 64 KiB per il sistema ha iniziato a diventare stretto e la versione beta di IDEDOS 0.91 è stata avviata per effettuare il refactoring del codice per ottenere più spazio e flessibilità interna.

IDEDOS 0.898b

Questa era l'ultima versione della vecchia serie IDEDOS.

Supporto del dispositivo

  • 2 dispositivi ATA (PI): hard disk, CompactFlash, CDROM, DVD
  • Scheda Duart RS-232 per PCLink
  • SuperCPU v1 / v2

Filesystem

  • File system personalizzato chiamato OFS 0.02
  • Fino a 8 GiB, solo indirizzamento CHS , copre l'intero disco
  • 16 nomi di file di caratteri.
  • Tipi di file fissi di SEQ, PRG, USR.
  • Le directory sono supportate.
  • Timestamp supportato.
  • File fino a 4 GiB, solo accesso sequenziale
  • Supporto del file system ISO 9660

Fastload

Dispositivi supportati dal caricatore veloce integrato :

Il caricamento rapido può essere disattivato in configurazione in caso di incompatibilità (non 1541 come dispositivo 8). L'interleave minimo è 7, il risparmio veloce è supportato solo in manager e utilizza un interleave di 8. Timing compatibile PAL / NTSC .

PCLink

Protocollo personalizzato, solo accesso sequenziale. Dispositivi supportati:

  • Cavo parallelo PC64
  • Duart RS-232

Schermata di configurazione

Include orologio con calendario, possibilità di impostare i numeri delle unità, i colori dello schermo, l'avvio automatico, il caricatore veloce del floppy, l'orologio di base (TI $), la gestione dell'alimentazione, i tentativi di scrittura, le impostazioni dell'unità cache di lettura e scrittura, opzione di rallentamento del CDROM.

Estensioni BASIC

L'estensione BASIC include comandi per la gestione del disco (limitati ai dispositivi IDEDOS) e aggiunge alcuni nuovi messaggi di errore. Comandi:

  • CD - cambia la directory di lavoro
  • CDOPEN: apre il vassoio del CDROM
  • CDCLOSE: chiude il vassoio del CDROM
  • CAMBIA - cambia il numero del dispositivo HDD
  • DATA - stampa la data e l'ora
  • DIR - normale elenco di directory
  • HDINIT - rileva nuovamente i dispositivi IDE.
  • INIT - inizializza la memoria
  • KILL - disabilita la cartuccia
  • LL: elenco di directory lungo con timestamp e dimensione del file in byte.
  • MAN - avvia il file manager
  • MKDIR - crea directory
  • RM : rimuove file o directory

File manager

Può essere utilizzato per navigare in directory, avviare programmi, copiare / rinominare / eliminare file, creare directory ed eseguire plugin per operare sui file. La copia di file ricorsiva è stata aggiunta solo in 0.898b e in rari casi non funziona.

Tenere sotto controllo

Il monitor è quasi esattamente il monitor della cartuccia finale in IDEDOS 0.89. Sono disponibili solo i codici operativi 6502 standard. I comandi sono:

  • A - Istruzioni di montaggio
  • B - Bank switch
  • C - Confronta le aree di memoria
  • D - Smontare dall'indirizzo
  • EC - Modifica carattere
  • ES - Modifica sprite
  • F - Riempi l'area di memoria
  • G - Inizia l'esecuzione all'indirizzo
  • H - Pattern di ricerca
  • I - Visualizzazione PETSCII dall'indirizzo
  • L - Carica area di memoria
  • M - Elenco dei ricordi
  • O - Interruttore banco
  • P - Stampa
  • R - Mostra registri
  • S - Salva area di memoria
  • T - Trasferimento area di memoria
  • X - Esci dal monitor
  • @ - Comando disco
  • # - Converti in esadecimale
  • $ - Converti in decimale
  • * r - Legge il blocco dall'unità floppy
  • * w - Scrive il blocco sull'unità floppy

Caratteristiche varie

  • Avvio automatico: può caricare e avviare un file al ripristino o all'accensione.
  • Colori dello schermo personalizzati: è possibile modificare i colori dello schermo blu predefiniti.
  • Impostare la variabile TI $ BASIC sull'ora corretta al ripristino.
  • Visualizza l'indirizzo iniziale e finale per il caricamento.
  • Estensione speciale per la lettura e la scrittura di massa dei dati dei file

IDEDOS 0.90

Questa è l'attuale stabile, l'ultima versione è 20100509 (patch 45). Le differenze più notevoli rispetto a 0,89 sono:

  • Il filesystem CFS 0.11 consente file ricercabili e relativi, supporto LBA e partizionamento.
  • Sintassi compatibile CMD per la gestione del percorso e i comandi del canale 15
  • Migliore protocollo PCLink per consentire l'uso di Ethernet e USB
  • Monitor che funziona come un congelatore ed è molto più veloce
  • File manager più potente che supporta i dispositivi CMD
  • Comandi DOS wedge
  • Tasti funzione programmabili
  • Supporto dell'estensione BASIC per dispositivi non IDEDOS
  • Supporta dispositivi aggiuntivi fino a 4 unità ATA (PI), ZIP e LS-120
  • Supporto della cartuccia V4.1, trasferimenti di lettura / scrittura lineari per una maggiore velocità
  • La batteria della cartuccia IDE64 può essere sostituita con un supercap ora.

Supporto del dispositivo

  • 4 dispositivi ATA (PI): hard disk, CompactFlash, CDROM, DVD, LS-120, ZIP-drive
  • Duart / SwiftLink / Turbo232 / SilverSurfer RS-232, RR-Net / ETFE / ETH64 ethernet, schede USB FT245 per PCLink
  • SuperCPU v2
  • Supporto aggiuntivo per unità JiffyDOS / DolphinDOS

Filesystem

  • File system personalizzato chiamato CFS 0.11
  • Fino a 128 GiB, indirizzamento CHS / LBA, fino a 16 partizioni
  • 16 nomi di file di caratteri.
  • 3 tipi di file di caratteri personalizzabili.
  • Le directory e i collegamenti software sono supportati.
  • File relativi supportati.
  • Timestamp supportato.
  • File fino a 4 GiB, ricercabili
  • File system ISO 9660 , supporto parziale OFS 0.02
  • FAT12 / 16/32 lento supporto di nomi di file brevi di sola lettura con tabelle delle partizioni in stile DOS

Fastload

Dispositivi supportati:

Il supporto del dispositivo viene rilevato automaticamente, ma può essere disabilitato manualmente se necessario. Temporizzazione compatibile PAL / NTSC. Risparmio veloce solo nel file manager.

PCLink

Protocollo personalizzato, solo accesso sequenziale. Dispositivi supportati:

  • Bus seriale IEC
  • Cavo parallelo PC64
  • Duart, SwiftLink, Turbo232 RS-232
  • Ethernet RR-Net, ETFE, ETH64
  • FT245 USB

Schermata di configurazione

  • Orologio con calendario
  • Configurazione e rimappatura del numero di dispositivo
  • Colori dello schermo, del gestore e del monitor
  • Impostazioni varie (avvio automatico, caricamento veloce del floppy, clock di base (TI $))
  • Impostazioni del dispositivo ATA (PI) (risparmio energetico, nuovo tentativo di scrittura, lettura anticipata e cache di scrittura, lettura / scrittura lineare massima)

Cuneo DOS

Per lo più i ben noti comandi standard DOS wedge .

  • @ - Comando DOS
  • @ $ - Directory
  • @# - Seleziona dispositivo
  • / - Carica il programma BASIC
  • % - Carica il programma di assemblaggio
  • '- Verifica il programma di assemblaggio
  • ↑ - Carica il programma BASIC ed esegui
  • ← - Salva il programma BASIC
  • £ - Carica ed esegue il programma assembly
  • . - Cambia directory
  • # - Esegue la shell

Estensioni BASIC

L' estensione BASIC aggiunge comandi per la gestione del disco, che possono essere utilizzati con qualsiasi dispositivo perché utilizzano comandi in stile CMD.

  • CD - cambia la directory di lavoro
  • CDOPEN: apre il vassoio del CDROM
  • CDCLOSE: chiude il vassoio del CDROM
  • CAMBIA - cambia il numero del dispositivo
  • DATA - stampa la data e l'ora
  • DEF - ridefinisce i tasti funzione
  • DIR - normale elenco di directory
  • HDINIT - rileva nuovamente i dispositivi IDE.
  • INIT - inizializza la memoria
  • KILL - disabilita la cartuccia
  • KILLNEW - nuovo
  • LL: elenco di directory lungo con timestamp e dimensione del file in byte.
  • MAN - avvia il file manager
  • MKDIR - crea directory
  • RM : rimuovi file
  • RMDIR - rimuove la directory

File manager

L'ispirazione per i file manager proviene da 0.89, sebbene sia stata riscritta da zero. L'obiettivo era quello di avere un file manager che non solo supportasse i dispositivi IDEDOS, ma funzionasse bene anche con CMD e altre unità.

Tenere sotto controllo

Il monitor è stato riscritto da zero, l'ispirazione principale è stato il monitor dell'emulatore CCS64, ma alcune idee di comando sono arrivate dai monitor FC3 / AR7 / Vice. L'obiettivo era quello di avere lo stile freezer (tutti i registri inclusi I / O modificabili) e un veloce monitor del codice macchina che supportasse i codici operativi illegali 6502 e la modalità di emulazione SuperCPU.

Comandi:

  • @ - Comando, stato e directory del disco
  • A - Assemblare
  • B - Configurazione della memoria, selezionare RAM / ROM
  • BT - Backtrace
  • C - Confronta la memoria
  • D - Smontare
  • , - Scrive dati esadecimali in memoria e disassembla
  • EC - Modifica carattere (binario)
  • [- Scrive dati binari in memoria
  • ES - Modifica sprite (binario)
  • ] - Scrive dati binari di sprite in memoria
  • F - Riempi la memoria con byte
  • G - Esegui all'indirizzo
  • H - Cerca hex / any / text
  • I - Scarica la memoria in PETSCII
  • '- Scrive i dati PETSCII in memoria
  • IO - Esegue il dump dei registri I / O
  • - - Scrive dati esadecimali nella memoria I / O
  • IV - Ripristina i vettori I / O
  • J - Scarica la memoria nel codice dello schermo
  • . - Scrive i dati del codice dello schermo in memoria
  • K - Scongela la memoria
  • L - Carica programma
  • LB - Carica binario
  • M - Scarica la memoria in esadecimale e PETSCII
  • : - Scrive dati esadecimali o PETSCII in memoria
  • N - Conversione di numeri e calcolatrice
  • O - Seleziona unità di lavoro
  • R - Mostra registri
  • ; - Cambia registri
  • S - Blocca la memoria / salva il programma
  • SB - Salva binario
  • T - Copia memoria
  • V - Verifica programma
  • VB - Verifica binario
  • X - Continua il programma
  • Q - Uscita per avvio a caldo BASIC
  • ← / ↑ - Spingi e fai apparire gli indirizzi da impilare.

Caratteristiche varie

  • Avvio automatico: può caricare e avviare un file al ripristino o all'accensione.
  • Colori dello schermo, del monitor e del gestore personalizzati: i colori predefiniti possono essere modificati.
  • Impostare la variabile TI $ BASIC sull'ora corretta al ripristino.
  • Visualizza l'indirizzo iniziale e finale per il caricamento / salvataggio.
  • Estensione speciale per la lettura e la scrittura di massa dei dati dei file
  • Supporto per tastiera C128 in modalità C64
  • Comandi speciali per la gestione delle unità CDROM
  • Lettura directory grezza
  • Elenchi di directory lunghi in stile CMD con timestamp

IDEDOS 0.91 beta

Questo è ancora in fase di sviluppo. Le differenze più notevoli con 0,90 sono:

  • Supporto OFS 0.02 rimosso
  • Routine BASIC, seriali e PCLink protette
  • I tasti F funzionano con gli interrupt
  • Read ($ DEF4) funziona sotto I / O
  • I programmi di avvio automatico ora funzionano da dispositivi IEC
  • Caricamento PCLink sotto I / O
  • Supporto SilverSurfer PCLink, PCLink opzionale
  • Lettura del file system FAT ($ DEF4) e caricamento
  • Partizioni CFS e FAT combinate, per supporto del filesystem della partizione
  • Elenco delle partizioni per FAT e ISO9660
  • Enumerazione dinamica delle unità, rilevamento PCLink
  • Supporto di lettura ($ DEF4) e scrittura ($ DEF1) su file modificabili
  • Aggiornamento timestamp solo se modificato
  • Ricerca di file modificabili e aggiungibili su PCLink
  • Modifiche al protocollo PCLink
  • LED di attività PCLink
  • Il supporto relativo ai file è stato perso

Riferimenti

link esterno