Commodore 1541

Commodore 1541 (eli CBM 1541, alkuperäiseltä nimeltään VIC-1541) on Commodoren valmistama 5¼" levykkeitä käyttänyt levykeasema, joka tuli myyntiin vuonna 1983. Se käyttää Commodoren omaa sarjakaapeliliitäntää ja on yhteensopiva Commodoren 8-bittisten kotitietokoneiden kanssa ja oli muun muassa Commodore 64:n käyttäjien keskuudessa suosittu levyasema.
1541 käyttää kaksinkertaisen tiheyden (Double Density) levykkeitä yksipuolisena. Yhdelle levypuolelle voidaan tallentaa 170 kilotavua tietoa. Kapasiteetti johtuu siitä, että levyn koodaustapana on Group Code Recording (GCR). Myös yhdelle uralle mahtuvien sektorien määrä vaihtelee 17–21 sen mukaan, miten kaukana ura on levyn keskustasta. Monesti kaksipuolisista levyistä kuitenkin käytännössä käytettiin molemmat puolet, koska levy toimi myös ympäri käännettynä.
Asema ei voi lukea CP/M:n MFM-koodausta käyttäviä levykkeitä, mikä oli ongelma esimerkiksi Commodore 128:n kanssa, joka pystyy ajamaan CP/M-ohjelmia.
Commodorella on myös MFM-koodausta tukeva levykeasema Commodore 1571 joka on myös yhteensopiva 1541:n kanssa.
1541:ssä on oma MOS 6502 -mikroprosessori ja kaksi kilotavua RAM-muistia. Suoritin toimii sekä levykontrollerina että levyaseman käyttöjärjestelmän hoitajana: tämän ansiosta tietokonetta itseään ei tarvittu kaikkien levytoimenpiteiden tekemiseen, tietokonetta pystyi käyttämään pitkien levyoperaatioiden aikana (esimerkiksi levykkeiden alustus kesti pitkään), eikä tietokoneeseen itseensä tarvinnut asentaa ylimääräisiä laitteita eikä muistiin ladata erillisiä apuohjelmia. Levykeaseman käyttöjärjestelmä on nimeltään CBM DOS 2.6.
Liitäntä on Commodoren oma sarjaliitäntä CBM-488. Tämä väylä otettiin käyttöön VIC-20:ssa korvaamaan Commodore PET -koneissa käytetty liian kallis IEEE-448-rinnakkaisliitäntä. Liittimenä on DIN-6. Commodoren dokumentit listaavat tiedonsiirron nopeudeksi 300 tavua sekunnissa. Sarjaliitännän erittäin hidas nopeus johtuu VIC-20-koneen aiemman Commodore 1540 -levyaseman 6522 VIA -UART-piirin bugista. Viallisen komponentin vuoksi asema joutui käyttämään ohjelmallista tiedonsiirtoa ja purkamaan tavut biteiksi ja siirtämään ne yksi kerrallaan. Ominaisuus säilytettiin 1541:ssa yhteensopivuuden vuoksi.
Käyttö.
Commodore 64:ssa levykkeen hakemiston tarkastelu tapahtuu komennolla codice_1. Tämä lataa hakemiston BASIC-ohjelmien muistiavaruuteen (ja tuhoaa olemassa olevan ohjelman). Tämän jälkeen hakemiston voi listata komennolla codice_2. Commodore BASIC 3.5:ssa ja uudemmissa on myös komento codice_3.
Tiedoston tallentaminen tapahtuu BASIC:istä avaamalla tiedosto ja kirjoittamalle sinne.
Esimerkkikoodi:
codice_4 avaa ja luo levykkeelle TIEDOSTO-nimisen SEQ-tyyppisen tiedoston.
OPEN-komennon parametrit ovat:
Tiedostoon voi kirjoittaa käskyllä:
codice_5
Tiedosto on suljettava käskyllä:
codice_6.
Tämän jälkeen ohjelma:
Lukee tiedostosta yhden rivin ja tulostaa sen.
Levykeaseman käyttöjärjestelmälle pääsee antamaan komentoja käyttämällä komentokanavaa, joka on kommunikaatiokanava 15. Tämän avulla suoritetaan erilaisia toimintoja, kuten levykkeen alustaminen, tiedostojen poisto ja uudelleennimeäminen, kopiointi, aseman resetointi ja tiedostojärjestelmän tarkistus (vastaa CHKDSK/fsck-toimintoja muissa käyttöjärjestelmissä). Tiedoston poisto levykkeeltä tapahtuisi komennolla: codice_7.
DOS ja tiedostojärjestelmä.
1541 ja sen levykäyttöjärjestelmä voi tallentaa levylle 144 tiedostoa. Järjestelmä ei tue alihakemistoja. Päähakemisto on tallennettu varatulle uralle 18, joka on noin levyn puolivälissä. Tiedoston nimi voi olla 16 tavua pitkä ja päättyy nollamerkkiin.
Tiedostoja on eri tyyppisiä:
Jos hakemistolistauksessa tiedoston tyypin edessä on *-merkki, se merkitsee, että tiedostoa ei suljettu oikein tallentamisen yhteydessä ja se voi olla vioittunut. Jos tiedosto poistetaan, se merkitään codice_13-tyyppiseksi ja sen tilan voi myöhemmin käyttää uusien tiedostojen tallentamiseen.
codice_14-merkki merkitsee, että tiedosto on kirjoitussuojattu. Tällaista tiedostoa ei voi poistaa ilman kolmannen osapuolen ohjelmaa.
Tilanvaraus tapahtuu BAM (Block Availability Map) -tietorakenteella. 1541 varaa yhden tavun tallentamaan kunkin uran sektorien määrän ja kolme tavua, jotka sisältävät bittikartan uran varatuista sektoreista. Jokaisesta tiedostolle varatusta 256 tavun sektorista varataan kaksi tavua osoittamaan seuraavaa tiedostolle varattua uraa ja sektoria.
Ongelmat.
1541:ssä oli myös ongelmia. Levyn lukupäiden kohdistus meni suhteellisen helposti pois paikoiltaan, ja korjaaminen vaati huoltoa. Alkuperäisessä mallissa aseman tunnusnumeron muuttaminen oli suhteellisen vaikeaa. Toimenpide oli kuitenkin tarpeellinen, jos käytössä oli useita asemia. Asemassa on sisäinen virtalähde, mikä tuottaa runsaasti lämpöä (käyttäjien keskuudessa asemaa kutsuttiinkin usein leivänpaahtimeksi), ja se hankaloitti aseman sijoittelua.
Levyasemasta tehtiin paranneltuja malleja: 1541C (1986) oli vaaleanvärinen malli, joka sopi paremmin Commodore 64C:n ja Commodore 128:n väreihin. 1541-II (1988) oli pieni malli, jossa oli tehty useita teknisiä uudistuksia, ja virtalähde oli ulkoinen.