Apple DOS

**Apple DOS** oli ettevõtte Apple Computer Apple II mikroarvutite operatsioonisüsteem 1980. aastatel ja varem.

Et arvuti oleks kasulik, peab tal olema failide salvestamise ja lugemise võimalus ja see võimalus peab olema nii mugav kui ka taskukohane. Apple II arvutite alguses suutsid nad saavutada ainult selle, et see oli taskukohane. Arvutitele sisseehitatud kassetiport oli tol ajal tehnika viimane sõna (aastal 1977). Enne DOS 3.1 väljatulekut pidid Apple'i kasutajad failisalvestuseks kasutama helikassette (nagu Atari mängukonsoolidel), aga see viis oli väga aeglane, ebamugav ja mitte eriti usaldusväärne, kuigi mitte eriti kallis. Seetõttu oligi operatsioonisüsteeme esimestel Apple II arvutitel väga ebamugav kasutada. Apple DOS oli mõeldud Apple II seeria arvutitele, mida toodeti aastatel 1978–1983. Apple DOS-il on kolm põhilist väljalaset: DOS 3.1, DOS 3.2 ja DOS 3.3. Kõigile neile järgnes ka versioon, kus oli vigu parandatud. DOS 3.2 oli ainuke, mille väljalase sai oma versiooninumbri, milleks oli DOS 3.2.1. Kõige rohkem tuntud ja kõige laialdasemalt kasutatud oli DOS 3.3. Apple DOS-i kirjutasid põhiliselt Steve Wozniak, Randy Wigginton ja Paul Laughton. Ametlik dokumentatsioon Apple DOS kohta avaldati alles versioonile 3.2.

## Ajalugu
Otseselt ei olnud olemas sellist asja nagu Apple DOS 1 või 2. Need olid lihtsalt nummerdatud versioonid mis tehti arendamise käigus. Apple DOS 3.0, mis oli ümbernimetatud 2.8 jäi avaldamata, sest tal oli liiga palju vigu.

**Apple DOS 3.1** tuli välja 1978. aasta juunis. See oli esimene disketipõhine operatsioonisüsteem, mis oli Apple'i arvutile tehtud. Hiljem lisandusid sellele ka versioonid, kus oli vigu parandatud. Kui seda esimest korda tutvustati, oli tal kaasas väga vähe dokumentatsiooni. Kuna disketiseadmete nõudlus oli väga suur, tegid Apple'i insenerid palju tööd, et seda nõudlust rahuldada, ja neil polnud aega korralikku kasutusjuhendit teha ning seetõttu said nad palju kaebusi.

**Apple DOS 3.2** tuli välja 1979, et kajastada suuri muutusi arvuti käivitumismeetoditele, mis olid Apple II järglasele – Apple II Plusile sisseehitatud. Originaalse Integer BASICu asemel oli nüüd uuem Applesoft II. Uuel tarkvaral oli ka automaatkäivitus, mis otsis automaatselt disketi kontrolleri ja käivitas süsteemi, teenides endale sellega nime "Autostart ROM".

**Apple DOS 3.3** tuli välja 1980. See parandas mitmeid funktsioone, mis olid olemas versioonil 3.2, ning samuti kaasnesid sellega suured salvestusruumi tõusud. Originaalis olid disketid disainitud, nii et nad suudaksid lugeda ja kirjutada 35 rada 13 sektoril. Iga sektor oli 256 baiti ja disketi suurus oli 113,75 kB. Iga disketi kolmel esimesel rajal oli DOS ja kataloog võttis enda alla lisaks veel ühe raja, mis tähendas seda, et kasutajale jäi vabaks kõigest 100,75 kB salvestusruumi. Steve Wozniak aga leidis viisi, kuidas Apple'i diskettide mahtu suurendada. Ta muutis natuke kodeerimismeetodit, mida kasutati, ning selle tulemuseks oli 16 võimalikku sektorit disketi kohta. See tähendas, et diskettide suurus oli nüüd 140 kB (124 kB, kui 4 rada DOS-i ja kataloogi jaoks maha arvata). Märkimisväärne asi selle uuenduse juures oli, et disketiseadet ei pidanudki muutma, ainsad muudatused tehti ROM programmis Disk II kontrolleri kaardil. Versioon 3.3-ga oli kaasas ka kõvasti mahukam kasutusjuhend.

## Tehniline info
Apple DOS 3.1 disketid kasutasid infosalvestuseks 13 sektorit ja 35 rada. Iga sektor oli 256 baiti. 35 rada oli kasutusel disketi ühel poolel ja need said ligipääsu ainult ühele poolele. Disketti võis ka ümber keerata ja see tähendas, et ühe poole kohta oli 113,75 kB, millest tuli maha arvata umbes 10 kB DOS-i ja disketi kataloogi jaoks. See tähendas, et kasutaja programmide jaoks oli vaba umbes 100 kB. Hiljem suurendati sektorite arv disketi kohta 16-le. Diskettide suurus oli nüüd 140 kB, millest kasutajale oli vaba umbes 124 kB.

Kui võrrelda Apple DOS-i praeguste operatsioonisüsteemidega, siis oli ta suhteliselt algeline. Esimene operatsioonisüsteemi kiht kandis nime RWTS (*read/write track sector* 'kirjutamis/lugemisraja sektor'). See koosnes alamfunktsioonidest radade otsimiseks (liigutas disketi "kätt" vajalikule rajale), sektorite lugemiseks (laadis sektori disketilt mälusse) ja kirjutamiseks (salvestas sektori mälust disketile) ning disketi vormindamiseks (tühjendas disketi ja lõi tühja kataloogi raja). Selle peale ehitati failihaldur (*File Manager*), mis suutis rakendada järgmisi funktsioone: avamine, sulgemine, lugemine, kirjutamine, kustutamine, lukustamine (näiteks kirjutamise takistamine), avamine (näiteks kirjutamise võimaldamine), ümbernimetamine, failide terviklikkuse kontrollimine. Lisaks oli veel kataloogifunktsioon, mis loetles disketil olevad failid ja init-funktsioon, mis vormindas disketi, et seda kasutada DOS-iga ja pani kõrvale käivitamisel kasutatavad programmid.

Järgmine kiht, mis asetses failihalduri peal, hoidis endas põhilisi DOSi rutiine (*[[Main DOS Routines]]*). Need rutiinid olid ühendatud BASICuga ja vastutasid selle eest, et BASIC oleks disketiga liidestatud. See andis käske salvestamiseks (BSAVE), laadimiseks (BLOAD) ning binaarprogrammide laadimiseks ja käitamiseks (BRUN). SAVE, LOAD ja RUN olid mõeldud BASICu programmidele ja EXEC-käsk oli mõeldud tekstipõhiste failide, mis koosnesid BASICu ja DOSi käskudest, käitamiseks. Oli 4 tüüpi faile, mida sai tuvastada tähega kataloogis.

### Apple DOS-i failivormingud
***I –** Integer BASIC programmid (salvestatud kompaktses vormingus, ei olnud tavaline tekst)
***A –** Applesoft BASIC programmid (samuti salvestatud kompaktses vormingus)
***B –** binaarfailid (käivitatavad kas masinkeele programmid või andmefailid)
***T –** ASCII tekstifailid või tavalised tekstifailid

Lisaks oli veel nelja tüüpi faile: **R**, **S** ja veel lisanduvad **A** ja **B**, millest ükski polnud täielikult toetatud. DOS tundis neid ära ainult kataloogi loeteluna ja otsest viisi nende muutmiseks polnud. R-tüüp leidis natuke kasutust mõne liigutatava binaarfaili jaoks. Mõni programm toetas S-tüüpi andmefailina.

#### Liigutatav tarkvara
Erinevalt tänapäevastest arvutitest ei käitanud Apple II arvutid tavaliselt korraga rohkem kui üht programmi, mistõttu polnud 8-bitistel programmidel vaja muretseda masinkoodi liigutamise pärast. Programmid kirjutati üldiselt, nii et nad leiaksid oma masinkoodi alati samast kohast mälust. Täielikult liigutatav kood oli keerukam ning selle valmistamine raskem. 

Apple DOS pidi arvestama, et Apple II arvutitel võis olla mälu vahemikus 16–48 kB. See tähendas, et DOS laadis ennast kõige kõrgemas võimalikus punktis, mille eesmärgiks oli alumised mälukohad vabaks jätta BASICu programmidele ja graafikale. Arvutites, kus oli mälu rohkem kui 48 kB, võttis DOS enda alla ala $9600 kuni $BFFF (kolm failipuhvrit + 10 kB tarkvara), aga suutis samuti laadida madalamas mälualas, kui vähem mälu oli saadaval. 

Vahemik $03D0 kuni $03FF andis programmidele võimaluse leida DOSi, ükskõik millisesse mälu osasse ta laaditud oli. Näiteks kui DOSi haakuvus BASIC CLIsse lakkas töötamast, sai DOS ennast taaskäivitada, kutsudes välja asukoha $03D0. Sealt pärnieb ka traditsiooniline "3DOG" käsk, et pöörduda BASICust tagasi System Monitori.

#### Alglaadur
Apple DOSi laadimine kujutas endast väga väikeste programmide järjest käitamist, millest igaüks viis laadimisprotsessi natuke edasi.
* Algselt ei toetanud Apple II ROM disketilt laadimist. Kui arvuti käivitada, läks ta otse süsteemi jälgimise ekraanile. Kui oleks seal tahtnud disketilt laadida, siis oleks pidanud kasutaja kirjutama kohanumbrid ja vajutama CTRL-P ning siis Enterit, mis põhjustas laadimisrutiini käivituse, kui sisestada järgmine ühik või kui kirjutada Cn00G (n on kohanumber), et seda otse käivitada.
*Apple II-l oli võimalus uurida iga laienduskohta (alustas kohast 7 ja liikus alla 1 poole), et leida laienduskaardi ROM, millel on laadimiskood ja automaatselt see käivitada.
* Laienduskaardi ROM laadimiskood üritas käivituda kohast 1 kontrolleril liigutades oma lugemis/kirjutamis "käe" rajale 0 ja üritas lugeda 256 baiti tolle raja sektorilt 0. (Kui loetavat disketti pole saadaval, keerleb seade niikaua, kuni loetav diskett sisestati).
*Sektor 0 sisaldas väikest programmi, mis ütles arvutle, kuidas lugeda sektoreid 0–9 rajal 0 (lugedes uuesti ka sektori 0)
*Programm sektoritel 1–9 rajal 0 laadis rajad 1 ja 2, mis sisaldas DOS-i. "Süsteemiisanda" disketil on ka kood, mis pani DOS-i nii kõrgele mällu, kui võimalik.
*Kui DOS oli mällu laaditud, siis üritas ta laadida ja käivitada programmi, mis oli kirjas DOS-i koodis. See oli tavaliselt BASIC keeleprogramm "HELLO", aga DOS-i sai muuta, et ta käivitaks mõne muu programmi. Parempoole kandiline sulg (]) andis kasutajale teada, et Applesoft BASIC-u programm laadis ja suurem-kui sümbol (>) andis teada, et Integer BASIC-u programm laadis.
*Kui kõik eelnev oli tehtud, hakkas laadima esimene programm.

#### Integer BASIC ja Applesoft BASIC
Integer BASIC oli Apple I ja esimestel Apple II arvutitele mõeldud BASIC-u tõlkimiseks. Algselt oli see saadaval kassetil, hiljem oli Apple II arvutite ROM-i sees. See oli esimene BASIC-u versioon, mis tavakasutajatel oli. 

Steve Wozniak, kes töötas varem ATARI-ga "Breakouti" kallal, seadis endale eesmärgiks, et Apple II arvuti suudab selle mängu järgi teha kasutades ainult BASIC-ut. See tegi Apple II-st ühe esimesi arvuteid, mis kasutas värvigraafikat, kui nad said valmis programmi Little Brick Out. Peab veel märkima, et Wozniakil polnud tööriistu 6502 protsessori jaoks ja seepärast kirjutas ta koodi paberile ja hiljem sisestas selle käsitsi 4096 tükina arvutisse.

Enim välja toodud viga BASIC-u juures oli see, et tema muutujad oli 16-bitised täisarvud ja seega oli raske teha programme. 

Apple sai endale parema (kuid aeglasema) BASIC-u Microsofti käest natuke pärast seda, kui Apple II 1977. aastal välja tuli. Nad tegid mõned muudatused, panid sellele nimeks Applesoft BASIC ja lisasid selle Apple II Plusile, mis tuli välja 1979. Samuti oli Applesoft BASIC kaasas ka hilisemate mudelitega ja lõpuks tehti temaga palju rohkem programme kui Integer BASIC-uga. 

## DOS-i kadumine
Apple II ja DOS hakkasid ära vajuma pärast 1980. aastat, kui Apple keskendus Apple III arvutile ja SOS operatsioonisüsteemile. Kui Apple III hüljati firma poolt, tuli välja veel teine Apple DOS-i versioon, mis olid mõlemad numbriga 3.3, sest nad olid kõigest veaparandused.

Apple DOS suutis lugeda ainult 5,25-tolliseid diskette, mis olid Disk II seadmes, kuid ei suutnud lugeda muid asju nagu kõvakettad, virtuaalsed muutmälu seadmed ja 3,5-tollised disketid. DOS oli tehtud nii, et ühe seadme jaoks oli saadaval kõigest 400 kB ja see oli üks peamisi põhjuseid, miks Apple DOS-i hülgas 1983. aastal. Apple DOS-i asemele tuli nüüd ProDOS.

ProDOS suutis lugeda 5,25-tolliseid diskette, kuid lisandusid veel uued formaadid. ProDOS oli sobiv seadmetele, mis olid kuni 32 MB, see tähendas, et sellega sai kasutada 3,5-tolliseid diskette ja kõvakettaid. Kõik Apple II Plusist uuemad arvutid suudavad käitada nii DOS 3.3 kui ka ProDOS-i, kuigi Apple II Plus nõuab eraldi Language Cardi (eesti 'keelekaart') mälulaiendit, et ProDOS-i kasutada. ProDOS võimaldas ka kopeerida faile Apple DOS-i diskettidelt. 

Paljudel inimestel polnud siiski vaja uuendusi, mida ProDOS pakkus, ja Apple DOS või mõni tema kloon oli kasutusel veel pärast 1983. aastat. Apple keelas DOS 3.3 jagamise aastaid tagasi ära, kuid vaid firmal Syndicomm on olemas litsents, et DOS 3.3 müüa.

## Viited