Blog:Nový firmvér pre PMD 32-SD

Z PMD 85 Infoserver


Obsah

Nový firmvér pre PMD 32-SD

Po kozultácii s Dexom som upravil firmvér pre PMD 32-SD tak, aby bolo možné používať obrazy diskiet rôznych veľkostí. To by mohlo sprístupniť toto zariadenie aj pre iné počítače ako PMD 85-3.

Na obrazy diskiet sa kladú tieto požiadavky:

  • stále sa musí jednať o čisté obrazy diskiet, takže systém musí vedieť s akým formátom disku pracuje
  • veľkosť (logického) sektora je stále 128 bytov - pokiaľ je veľkosť pôvodného fyzického sektora väčší, systém musí robiť príslušný prepočet
  • formát disku - 1 až 256 stôp, 1 až 64 (logických) sektorov na stopu
  • veľkosť obrazu diskety teda môže byť až 2MB
  • prípona súboru s obsahom obrazu disku môže byť ľubovoľná

To, aké typy obrazov diskiet bude PMD 32-SD akceptovať, je potrebné nastaviť prostredníctvom konfiguračného súboru. Je to textový súbor s menom images.cfg a musí byť umiestnený v koreňovom adresári SD karty. Každý riadok súboru obsahuje jednu definíciu obrazu disku s týmto formátom:

EXT TRACKS SECTORS_PER_TRACK , kde

  • EXT je prípona súboru bez bodky
  • TRACKS je celkový počet stôp na disku (obe strany dohromady) - 1 až 256
  • SECTORS_PER_TRACK je počet (logických) sektorov na stopu - 1 až 64

Súbor môže naviac voliteľne obsahovať jeden riadok, ktorý obsahuje predvolené meno obrazu diskety (súboru), ktorý sa vloží do mechaniky A:, ak sa pri zapnutí zistí, že je mechanika A: prázdna. Tento riadok musí začínať hviezdičkou.

Príklad obsahu konfiguračného súboru (predvolený obrazu disku, v nasledujúcom príklade system.p32, musí byť v koreňovom adresári SD karty):

*system.p32
P32 80 36
DCZ 80 36
DZ8 154 26
XYZ 256 64

Popis ovládania

Dôsledkom prevedených zmien síce nie je veľký rozdiel v ovládaní, ale uvediem tu znovu celý popis.

Po zapnutí PMD 32-SD sa (ak je to navolené) zapne podsvietenie displeja a v prvom riadku displeja sa na 3 sekundy zobrazí verzia - PMD 32-SD v2.0 - 10 Oct 2009. Následne sa prevedie pokus inicializovať vloženú SD kartu. Ak sa to podarí, zistí sa, či vložená SD karta je tá, ktorá bola vložená naposledy (sériové číslo karty sa odpamätáva v EEPROM mikroprocesora). Ak sa jedná o tú istú kartu, prečítajú sa z EEPROM mikroprocesora naposledy vložené diskety a "vložia sa" do príslušných diskových jednotiek. Pokiaľ sa zistí, že v jednotke A: nie je vložená disketa a v konfiguračnom súbore je uvedené predvolené meno obrazu disku, PMD 32-SD sa pokúsi nájsť daný súbor v koreňovom adresári. Ak sa nájde, vloží sa do jednotky A:. Po tejto inicializácii sa na displeji zobrazí PMD 32-SD Ready a zariadenie je pripravené v "pracovnom režime".

V prvom rade zariadenie opakovane posiela na zbernicu (paralelný kanál) prezentačný byte a očakáva povel od nadradeného systému. Prijaté povely sa spracovávajú bez nejakého reportu na displeji. A to ani v prípade nejakej chyby pri vykonávaní povelu. Je na nadradenom systéme, aby na príslušné chyby reagoval.

Zároveň sú testované tlačidlá Cancel a Enter. Po stlačení tlačidla Cancel sa "preruší spojenie" s SD kartou a na displeji sa zobrazí SD Card can be safely removed. Ak sa teraz stlačí tlačidlo Enter, opäť sa prevedie inicializácia SD karty a zariadenie sa vráti do pracovného režimu. Ak sa karta vytiahne, na displeji sa zobrazí Insert SD Card - Press any button a čaká sa na vloženie karty a stlačenie nejakého tlačidla. Doporučujem pred vytiahnutím karty použiť tento spôsob, pretože v tomto prípade sa uvoľňujú alokované buffre, korektne sa uzatvárajú všetky otvorené súbory (obrazy diskiet), adresáre a partícia atď. a tým sa predíde prípadnému poškodeniu súborov na karte.

Po stlačení tlačidla Enter v pracovnom režime sa preruší komunikácia s nadradeným systémom a na displeji sa zobrazí jednoduché menu. V prvom riadku displeja sa zobrazí PMD 32-SD Menu a v druhom riadku sa zobrazujú jednotlivé položky menu Drive A:, Drive B:, Drive C:, Drive D:, Create new image a Backlight set-up. Výber položky menu sa robí tlačidlami << a >>. Tlačidlom Cancel sa vyskočí z menu naspäť do pracovného režimu. Tlačidlom Enter sa vyberá zvolená položka menu.

Zvolením niektorej diskovej jednotky sa prejde do nastavení tejto jednotky. Na prvom riadku displeja sa zobrazí meno práve vloženého obrazu diskety (bez cesty) a úplne vpravo príznak povolenia/zakázania zápisu na disketu. RW, ak je povolený zápis na disk, RO, ak je na disk zápis zakázaný (napr. A:system.p32 RW). Ak v danej jednotke nie je disk vložený, je namiesto mena zobrazený text <empty>. Na druhom riadku displeja sa zobrazí <=Rem >=Ins E=WP, čo skrátene znamená, že: stlačením tlačidla << sa vyberie disketa z danej jednotky a stlačením tlačidla >> sa vchádza do režimu výberu obrazu diskety, ktorý sa vloží do danej jednotky. Stlačením tlačidla Enter sa mení stav príznaku povolenia/zakázania zápisu na disketu. Tlačidlo Cancel spôsobí návrat do menu.

Pri výbere obrazu diskety, ktorý sa má vložiť do jednotky, sa na prvom riadku zobrazí Select image a v druhom riadku sa zobrazujú jednotlivé položky adresára na SD karte. Zobrazujú sa iba mená adresárov a súbory, ktoré nemajú nastavený atribút HIDDEN. Mená adresárov sú pre odlíšenie zobrazené v hranatých zátvorkách. Tlačidlom >> sa prechádza na ďalšiu položku v adresári (nie je možné prechádzať položkami v opačnom poradí). Ak je práve zobrazené meno súboru, tlačidlo Enter prevedie výber tohto súboru. Ak je práve zobrazené meno adresára, tlačidlo Enter spôsobí vnorenie do tohto adresára. Ak je menom adresára "..", tlačidlom << sa prejde do nadradeného adresára (pri prechode do nadradeného adresára sa znovu prechádza od prvej položky). Tlačidlo Cancel spôsobí návrat do nastavení zvolenej jednotky.

Pri výbere súboru (potenciálneho obrazu disku), ktorý sa má vložiť do danej mechaniky sa najpr preveruje, či je prípona tohto súboru zadefinovaná v konfiguračnom súbore. Ak áno, súbor je vložený do danej mechaniky. Ak nie, zobrazí sa hlásenie Unknown img type.

Po voľbe na vytvorenie nového obrazu disku sa prejde do režimu voľby adresára, v ktorom sa súbor vytvorí. Na displeji sa zobrazí Select directory a tlačidlom >> je možné prejsť na ďalšiu položku v adresári. V tomto prípade sa zobrazujú iba mená adresárov a ako prvá položka je <root>, čo umožňuje vytvorenie obrazu disku aj v koreňovom adresári. Tlačidlo Enter prevedie výber adresára. Tlačidlom << sa prejde do podadresára alebo nadradeného adresára a tlačidlo Cancel spôsobí návrat do nastavení zvolenej jednotky. Po voľbe adresára je potrebné zadať meno súboru aj s príponou, ktorá musí byť zadefinovaná v konfiguračnom súbore. Na prvom riadku displeja sa zobrazí Enter image name a do druhého riadku sa zobrazí kurzor. Tlačidlom << sa mení znak na pozícii kurzora v poradí: bodka, pomlčka, "podtržítko", malé písmená, veľké písmená a čísla. Tlačidlom >> sa mení pozícia kurzora na riadku. Tlačidlo Enter potvrdzuje zadané meno a tlačidlo Cancel spôsobí návrat do menu. Po potvrdení mena súboru sa preverí, či je prípona súboru zadefinovaná v konfiguračnom súbore a ak áno, na displeji sa zobrazí Wait please! a do zvoleného adresára sa vytvorí obraz diskety so zvoleným menom a príponou. Vytvorenie súboru môže pri najväčšom type obrazu disku trvať takmer 2 minúty. 360kB obraz disku sa vytvorí asi za 20 sekúnd. Celý súbor je vyplnený hodnotou 0xE5.

Podsvietenie displeja sa môže vypínať automaticky po zvolenej dobe od posledného stlačenia nejakého tlačidla. Ak je tento režim zvolený a podsvietenie je vypnuté, stlačenie tlačidla zapne podsvietenie, ale tlačidlo nie je akceptované a teda nevykoná žiadnu inú operáciu. Nastavenie podsvietenia displeja bolo doplnené kvôli tomu, že pri použití displeja, ktorý podsvietenie nepoužíva, by pôsobilo mätúco, keby stlačenie tlačidla neurobilo nič kvôli tomu, že je displej zhasnutý.

Menu pre nastavenie podsvietenia displeja obsahuje tieto položky: Always off, Always on, Auto-off 5 s, Auto-off 10 s, Auto-off 20 s, Auto-off 40 s a Auto-off 60 s. Myslím, že k jednotlivým položkám nie je potrebný žiaden komentár.


Informačné a chybové hlásenia

  • PMD 32-SD Ready - zariadenie je pripravené a očakáva povely od nadradeného systému
  • SD Card can be safely removed - kartu možno bezpečne vytiahnuť
  • Press any button - očakáva sa stlačenie tlačidla
  • Wait please! - prevádza sa dlho trvajúca operácia (napr. vytváranie obrazu diskety)
  • Select directory - očakáva sa voľba adresára
  • Select image - očakáva sa voľba obrazu disku (súboru)
  • Enter image name - očakáva sa zadanie mena obrazu disku (súboru)
  • Insert SD Card - nie je vložená karta
  • Card init error! - kartu sa nepodarilo inicializovať
  • Partition error! - pri inicializácii sa na nultej pozícii nenašla platná FAT16 partícia
  • FAT error! - nepodarilo sa prečítať FAT
  • SD Card Locked! - na kartu je blokovaný zápis - s kartou sa dá pracovať, ale nebude možný zápis
  • Create file err! - došlo ku chybe pri vytváraní súboru (obrazu disku)
  • No files/folders - na karte nie sú žiadne súbory a adresáre
  • Path too long! - pri výbere obrazu diskety nesmie cesta vrátane mena súboru s príponou presiahnúť 63 znakov
  • Config missing! - nenašiel sa konfiguračný súbor
  • Config read err! - došlo ku chybe pri čítaní z konfiguračného súboru
  • Config corrupted - konfiguračný súbor je poškodený
  • Unknown img type - zvolený súbor má príponu, ktorá nie je zadefinovaná v konfiguračnom súbore


Komunikačný protokol

Napriek zmene firmvéru sa komunikačný protokol vlastne ani nezmenil. Drobné rozdiely oproti predošlej verzii sú tieto:

  • v poveloch H a N musí byť meno súboru aj s príponou, ktorá je zadefinovaná v konfiguračnom súbore
  • pribudli ďalšie chybové kódy, oznamujúce chyby konfiguračného súboru
  • v samotnom dokumente boli ku niektorým povelom doplnené, či poopravené upresňujúce informácie


Utilita CD.COM

Utilita CD.COM bola upravená hlavne kvôli nutnosti odosielať v poveloch H a N pri vkladaní a vytváraní obrazu disku meno súboru aj s príponou. Utilita teda automaticky pridá k menu zadaného obrazu príponu P32, ak nebola zadaná.

Druhou dôležitou vecou je to, že utilita testuje, či bola spustená na PMD 85-3 alebo na Zbrojováčku a podľa toho volá príslušné rutiny v ROM. Podporu PMD 32 pre Zbrojováčka pripravuje Dex, takže utilita bude hneď použiteľná.

Treťou novinkou je zobrazenie malého "helpu", ak sa utilita spustí bez parametrov.

Na stiahnutie

  • zdrojové súbory firmvéru PMD 32-SD verzia 2.0 (obsahuje aj hotový BIN a HEX)
  • popis komunikačného protokolu PMD 32 a PMD 32-SD, komentovaný výpis (disassembling EPROM) ovládacieho programu disketovej jednotky PMD 32 a časti rozšírenia monitora PMD 85-3 pre spoluprácu s PMD 32
  • CD.COM - obraz disku s programom a zdrojákom

Keďže som našiel drobnú chybku v mnou upravovanom BIOSe pre 4 mechaniky, sú tu opäť linky na stiahnutie obrazy diskov s nanovo pregenerovaným systémom a aj zdrojáky BIOSu.

  • obrazy diskov so starým systémom pre dve mechaniky a s novým systémom pre 4 mechaniky - prvý disk neobsahuje žiadne súbory, druhý obsahuje iba CD.COM
  • zdrojáky originálneho aj upraveného BIOSu Mikrosu aj DOSu PMD-32 (pre zaujímavosť)