IDEDOS

IDEDOS
Utvecklare Josef Souček, Tomáš Přibyl, Jan Vorlíček, Jan Hlaváček, Kajtár Zsolt
Skrivet i 6502 / 65816 assemblerspråk
Initial release 1996 ; 27 år sedan ( 1996 )
Senaste släppningen 0,90
Senaste förhandsvisningen 0,91 beta
Tillgänglig i engelsk
Plattformar Commodore 64 , 128 och SuperCPU

Standardanvändargränssnitt _
Kommandoradsgränssnitt
Licens GPLv2
Officiell hemsida idedos .ide64 .org

IDEDOS är ett ROM -baserat diskoperativsystem skrivet i 6502/65816 assemblerspråk för Commodore 64 , 128 och SuperCPU . Dess huvudsakliga syfte är att kontrollera ATA(PI) -enheter anslutna till en IDE64- kassett och presentera dem som vanliga Commodore-enheter. Dessutom stöder den nätverksanslutna enheter (PCLink) och har en inbyggd maskinkodmonitor och filhanterare .

Arkitektur

C64 KERNAL använder en vektortabell på sidan 3 för att möjliggöra omdirigering av vanliga kärnfilhantering och grundläggande funktioner. Den här funktionen används av IDEDOS för att ansluta till C64-kärnan.

Själva operativsystemet är uppdelat i fyra sidor om 16 KiB som mappas in vid behov. Kartläggningen är tillfälligt avstängd medan avbrott körs för ökad kompatibilitet, men detta orsakar en ≈40 μs latens.

Ytterligare RAM-minne för buffertar och interna data mappas också in från antingen IDE64 -kassetten (28 KiB) eller SuperCPU:ns extra RAM-minne används. Standard-kärnminnesplatserna på sida noll och sida två hanteras på ett kärn-kompatibelt sätt; tillfälligt använt minne återställs efter att rutinerna är klara.

Utöver kärntabellen har IDEDOS två nya anrop för bulkdatahantering (läs/skriv) som tillåter mycket snabbare dataöverföringshastigheter än den teckenbaserade I/O.

Det ursprungliga filsystemet är icke-CBM-stil på låg nivå för att tillåta partitioner större än 16 MiB. Funktioner på hög nivå som filnamn eller filtyper med 16 tecken behålls. På grund av komplexitet och minneskrav är skapande av filsystem och konsistenskontroll inte en del av operativsystemet, till skillnad från CBM DOS eller CMD DOS.

Ytterligare filsystem som ISO 9660 eller FAT abstraheras internt och använder för det mesta samma rutiner för hantering, därigenom är liten skillnad märkbar för användarprogram, förutom om vissa funktioner inte är fullt implementerade.

Enhetshanteringen görs av ytterligare enhetsnummer som tilldelats de nya enheterna. Enhetsnumren för IDEDOS-enheter är konfigurerbara och ligger normalt inom intervallet 10–14. Under årens lopp har många program antagit att det bara finns enhet 8 och att det inte är tillåtet att välja något annat; Detta kan lösas genom att tillfälligt ändra det använda IDEDOS-enhetsnumret till 8.

För standardenheter används de ursprungliga kärnrutinerna, medan IDEDOS-enheter använder anpassade rutiner som nära imiterar resultatet och beteendet hos kärnanrop för diskettenheter. Kernala anrop som inte går igenom vektortabellen (främst IEC-bussspecifika anrop) uppvisar en inkompatibilitet med de program som använder dem.

Specialfunktioner (som CD-ROM-ljudhantering) implementeras av nya kanal 15-kommandon, medan funktioner som inte finns på diskettenheter följer CMD-kommandon för att tillåta program att enkelt stödja ett bredare utbud av enheter.

Till skillnad från intelligenta externa enheter som har en separat processor (som 1541 med CBMDOS), körs IDEDOS på värddatorn, därigenom blockeras alla diskrutiner tills de är klara. Detta utesluter användningen av "IRQ-lastare" som vanligtvis används för att påskynda driften av seriell buss kringutrustning.

Avbrott är i allmänhet tillåtna medan IDEDOS körs (de är inaktiverade vid sällsynta tidskritiska operationer), men systemet skrevs för att vara icke- återträdande , precis som den ursprungliga kärnan.

Kort historia

1996 föddes IDEDOS, eftersom det fanns ett behov av ett system för att köra IDE64 1.1-kortet. Den skapades av Josef Souček (huvudkod) och Tomáš Přibyl (Filhanterare, anpassning av slutlig patronmonitor). Ytterligare kod kom av Jan Vorlíček (BASIC-tillägg), Jan Hlaváček (Duart PCLink).

År 2000 lade Kajtár Zsolt till CDROM-stöd, ny installationskod och många korrigeringar. På grund av begränsningar i designen startades utvecklingen av en helt omskriven version (0.90) av Kajtár Zsolt, som inte var klar för allmän användning före 2005. Samtidigt nådde den gamla versionen 0.898b i juni 2004.

Under 2009 började gränsen på 64 KiB för systemet att bli snäv, och IDEDOS 0.91 beta startades för att omfaktorisera koden för att få mer utrymme och intern flexibilitet.

IDEDOS 0.898b

Detta var den sista versionen av den gamla IDEDOS-serien.

Enhetsstöd

  • 2 ATA(PI)-enheter: hårddisk, CompactFlash, CDROM, DVD
  • Duart RS-232-kort för PCLink
  • SuperCPU v1/v2

Filsystem

  • Anpassat filsystem kallat OFS 0.02
  • Upp till 8 GiB, endast CHS- adressering, täcker hela disken
  • 16 tecken filnamn.
  • Fixade filtyper av SEQ, PRG, USR.
  • Kataloger stöds.
  • Tidsstämpling stöds.
  • Filer upp till 4 GiB, endast sekventiell åtkomst
  • ISO 9660 filsystem

Snabbladdning

Inbyggda enheter som stöds av snabblastare :

Snabb belastning kan stängas av i installationen vid inkompatibilitet (ej 1541 som enhet 8). Minsta interleave är 7, snabbsparare stöds endast i manager, och använder en interleave på 8. PAL / NTSC -kompatibel timing.

PCLink

Anpassat protokoll, endast sekventiell åtkomst. Enheter som stöds:

  • PC64 parallellkabel
  • Duart RS-232

Inställningsskärm

Inkluderar klocka med kalender, möjlighet att ställa in enhetsnummer, skärmfärger, automatisk start, diskettsnabbladdare, grundläggande klocka (TI$), strömhantering, skrivförsök, läs framåt och skriv cache-enhetsinställningar, alternativ för CDROM-nedbrytning.

BASIC-tillägg

BASIC-tillägget inkluderar diskhanteringskommandon (begränsat till IDEDOS-enheter) och lägger till några nya felmeddelanden. Kommandon:

  • CD – ändra arbetskatalog
  • CDOPEN – öppna CDROM-facket
  • CDCLOSE – stäng CDROM-facket
  • ÄNDRA – ändra hårddiskens enhetsnummer
  • DATUM – skriv ut datum och tid
  • DIR – normal kataloglista
  • HDINIT – återupptäck IDE-enheter.
  • INIT – initiera minne
  • DÖDA – inaktivera kassetten
  • LL – lång kataloglista med tidsstämplar och filstorlek i byte.
  • MAN – starta filhanteraren
  • MKDIR – skapa katalog
  • RM – ta bort fil eller katalog

Filhanterare

Den kan användas för att navigera runt i kataloger, starta program, kopiera/byta namn på/ta bort filer, skapa kataloger och köra plugins för att arbeta med filer. Rekursiv filkopia lades bara till i 0.898b, och i sällsynta fall fungerar det inte.

Övervaka

Bildskärmen är nästan exakt den sista kassettmonitorn i IDEDOS 0.89. Endast standard 6502 opcodes är tillgängliga. Kommandona är:

  • A – Monteringsanvisningar
  • B – Bankväxel
  • C – Jämför minnesområden
  • D – Demontera från adress
  • EC – Redigera char
  • ES – Redigera sprite
  • F – Fyll minnesområdet
  • G – Starta utförande på adress
  • H – Sökmönster
  • I – PETSCII-visning från adress
  • L – Ladda minnesområde
  • M – Minneslista
  • O – Bankväxel
  • P – Skriv ut
  • R – Visa register
  • S – Spara minnesområde
  • T – Överför minnesområde
  • X – Avsluta monitorn
  • @ – Diskkommando
  • # – Konvertera till hexadecimal
  • $ – Konvertera till decimal
  • *r – Läs block från diskettenhet
  • *w – Skrivblock till diskettenhet

Diverse funktioner

  • Auto boot – kan ladda och starta en fil vid återställning eller ström på.
  • Anpassade skärmfärger – standardfärgerna för blå skärm kan ändras.
  • Ställ in variabeln TI$ BASIC till rätt tid vid återställning.
  • Visar start- och slutadressen för laddning.
  • Specialtillägg för bulkläsning och skrivning av fildata

IDEDOS 0,90

Detta är den nuvarande stabila versionen, den senaste versionen är 20100509 (patch 45). De mest anmärkningsvärda skillnaderna till 0,89 är:

  • CFS 0.11 filsystem tillåter sökbara och relativa filer, LBA-stöd och partitionering.
  • CMD-kompatibel syntax för väghantering och kanal 15-kommandon
  • Bättre PCLink-protokoll för att tillåta användning av ethernet och USB
  • Monitor som fungerar som en frys och är mycket snabbare
  • Kraftfullare filhanterare som stöder CMD-enheter
  • DOS wedge-kommandon
  • Programmerbara funktionstangenter
  • BASIC förlängningsstöd för icke-IDEDOS-enheter
  • Ytterligare enhetsstöd upp till 4 ATA(PI)-enheter, ZIP och LS-120-stöd
  • Stöd för V4.1-kassett, linjär läs/skrivöverföring för extra hastighet
  • Batteriet på IDE64-kassetten kan bytas ut mot en supercap nu.

Enhetsstöd

  • 4 ATA(PI)-enheter: hårddisk, CompactFlash, CDROM, DVD, LS-120, ZIP-enhet
  • Duart/SwiftLink/Turbo232/SilverSurfer RS-232, RR-Net/ETFE/ETH64 ethernet, FT245 USB-kort för PCLink
  • SuperCPU v2
  • Ytterligare stöd för JiffyDOS/DolphinDOS-enheter

Filsystem

  • Anpassat filsystem som heter CFS 0.11
  • Upp till 128 GiB, CHS/LBA-adressering, upp till 16 partitioner
  • 16 tecken filnamn.
  • Anpassningsbara filtyper med 3 tecken.
  • Kataloger och mjuka länkar stöds.
  • Relativa filer stöds.
  • Tidsstämpling stöds.
  • Filer upp till 4 GiB, sökbara
  • ISO 9660 filsystem, partiellt stöd för OFS 0.02
  • FAT12/16/32 långsamt skrivskyddat kort filnamnsstöd med partitionstabeller i DOS-stil

Snabbladdning

Enheter som stöds:

Enhetsstöd upptäcks automatiskt, men kan inaktiveras manuellt om det behövs. PAL/NTSC-kompatibel timing. Snabbsparare endast i filhanteraren.

PCLink

Anpassat protokoll, endast sekventiell åtkomst. Enheter som stöds:

  • IEC seriell buss
  • PC64 parallellkabel
  • Duart, SwiftLink, Turbo232 RS-232
  • RR-Net, ETFE, ETH64 ethernet
  • FT245 USB

Inställningsskärm

  • Klocka med kalender
  • Konfiguration och ommappning av enhetsnummer
  • Skärm, manager och monitor färger
  • Diverse inställningar (automatisk start, diskettsnabbladdare, grundläggande klocka (TI$))
  • ATA(PI)-enhetsinställningar (strömhantering, skrivförsök, läs- och skrivcache, maximal linjär läsning/skrivning)

DOS kil

Mestadels de välkända standard DOS wedge- kommandon.

  • @ – DOS-kommando
  • @$ – Katalog
  • @# - Välj enhet
  • / – Ladda BASIC-programmet
  • % – Ladda monteringsprogram
  • ' – Verifiera monteringsprogrammet
  • ↑ – Ladda BASIC-programmet och kör
  • ← – Spara BASIC-programmet
  • £ – Ladda och kör monteringsprogrammet
  • . – Byt katalog
  • # – Kör skal

BASIC-tillägg

BASIC -tillägget lägger till kommandon för diskhantering, som kan användas med vilken enhet som helst eftersom de använder CMD-kommandon.

  • CD – ändra arbetskatalog
  • CDOPEN – öppna CDROM-facket
  • CDCLOSE – stäng CDROM-facket
  • ÄNDRA – ändra enhetsnummer
  • DATUM – skriv ut datum och tid
  • DEF – omdefiniera funktionstangenter
  • DIR – normal kataloglista
  • HDINIT – återupptäck IDE-enheter.
  • INIT – initiera minne
  • KILL – inaktivera kassetten
  • KILLNEW – förnya
  • LL – lång kataloglista med tidsstämplar och filstorlek i byte.
  • MAN – starta filhanteraren
  • MKDIR – skapa katalog
  • RM – ta bort fil
  • RMDIR – ta bort katalog

Filhanterare

Inspirationen för filhanteraren kommer från 0,89, även om den har skrivits om från början. Målet var att ha en filhanterare som inte bara stöder IDEDOS-enheter, utan också fungerar bra med CMD och andra enheter.

Övervaka

Monitorn skrevs om från grunden, huvudinspirationen var CCS64-emulatorns monitor, men några kommandoidéer kom från FC3/AR7/Vice-monitorer. Målet var att ha fryserstil (alla register inklusive I/O-redigerbara) och snabb maskinkodsövervakning som stöder olagliga 6502- och SuperCPU-emuleringslägesopkoder.

Kommandon:

  • @ – Diskkommando, status och katalog
  • A – Montera
  • B – Minneskonfiguration, välj RAM/ROM
  • BT – Backtrace
  • C – Jämför minne
  • D – Demontera
  • , – Skriv hexadecimal data till minnet och plocka isär
  • EC – Redigera char (binär)
  • [ – Skriv binära data till minnet
  • ES – Redigera sprite (binär)
  • ] – Skriv binära spritedata till minnet
  • F – Fyll minnet med byte
  • G – Utför på adress
  • H – Sök hex/valfri/text
  • I – Dumpa minne i PETSCII
  • ' – Skriv PETSCII-data till minnet
  • IO – Dumpa I/O-register
  • - – Skriv hexadecimal data till I/O-minnet
  • IV – Återställ I/O-vektorer
  • J – Dumpa minne i skärmkod
  • . – Skriv skärmkoddata till minnet
  • K – Avfrysa minnet
  • L – Ladda program
  • LB – Ladda binär
  • M – Dumpa minne i hex och PETSCII
  • : – Skriv hex- eller PETSCII-data till minnet
  • N – Talomvandling och kalkylator
  • O – Välj arbetsenhet
  • R – Visa register
  • ; – Ändra register
  • S – Frys minne/spara program
  • SB – Spara binärt
  • T – Kopiera minne
  • V – Verifiera programmet
  • VB – Verifiera binär
  • X – Fortsätt programmet
  • Q – Avsluta till BASIC varmstart
  • ←/↑ – Tryck och pop adresser för att stapla.

Diverse funktioner

  • Auto boot - kan ladda och starta en fil vid återställning eller ström på.
  • Anpassade skärm-, bildskärms- och chefsfärger - standardfärgerna kan ändras.
  • Ställ in variabeln TI$ BASIC till rätt tid vid återställning.
  • Visar start- och slutadressen för ladda/spara.
  • Specialtillägg för bulkläsning och skrivning av fildata
  • C128-tangentbordsstöd i C64-läge
  • Specialkommandon för hantering av CDROM-enheter
  • Läs den rå katalogen
  • CMD-stil långa kataloglistor med tidsstämplar

IDEDOS 0.91 beta

Detta är fortfarande under utveckling. De mest anmärkningsvärda skillnaderna till 0,90 är:

  • OFS 0.02-stöd har tagits bort
  • Skyddade BASIC, seriella och PCLink-rutiner
  • F-nycklar fungerar med avbrott
  • Läs ($DEF4) fungerar under I/O
  • Autostartprogram fungerar nu från IEC-enheter
  • PCLink-belastning under I/O
  • SilverSurfer PCLink-stöd, PCLink tillval
  • FAT-filsystemet läser ($DEF4) och laddar
  • Kombinerade CFS- och FAT-partitioner, stöd för filsystem per partition
  • Partitionslista för FAT och ISO9660
  • Dynamisk enhetsuppräkning, PCLink-detektering
  • Läs ($DEF4) och skrivstöd ($DEF1) på modifierbara filer
  • Uppdatering av tidsstämpel endast om den ändras
  • Söker efter, modifierbara och bifogbara filer på PCLink
  • PCLink-protokoll ändras
  • PCLink aktivitet LED
  • Relativt filstöd har gått förlorat

externa länkar