
           Komunikan protokol disketovej jednotky PMD 32 (PMD 32-SD)
-------------------------------------------------------------------------------

    Disketov jednotka PMD 32 posiela na zbernicu opakovane prezentan byte
0AAh, km neobdr od nadradenho systmu (napr. PMD 85-3) ako odpove op
prezentan byte 0AAh. Po vmene prezentanch bytov PMD 32 oakva povely
nadradenho systmu. Ak nadraden systm nepole al povel do pribline 25 ms,
PMD 32 zane op s odosielanm prezentanho bytu. Preto mus nadraden
systm pred odoslanm povelu testova, i sa na zbernici nhodou nenachdza
prezentan byte od PMD 32.

Kad povel, ktor nadraden systm do PMD 32 posiela, je reprezentovan jednm
znakom, ktor me by nasledovan parametrami a je ukonen CRC. CRC je XOR
vetkch bytov povelu.
Odpove od PMD 32 zana ACK alebo NAK.
V prpade NAK u PMD 32 neposiela alie dta a oakva al povel.
V prpade ACK me nasledova odpove (dta, ERR, CRC), ktor zvis
od konkrtneho povelu.
Po prijat platnho povelu (znmy povel, sprvne CRC), PMD 32 okamite odosiela
ACK a prejde do vkonnej fzy, ktor me trva rzne dlho, v zvislosti od
povelu. Preto mus nadraden systm pri akan na odpove zvoli zodpovedajcu
dku timeoutu. U povelov, ktorch vkonn fza trv dlhie, je minimlna doba
timeoutu uveden.
ERR je kd chyby, CRC je XOR vetkch bytov odpovede mimo ACK, NAK a ERR.

  ACK = 33h
  NAK = 99h
  ERR = 00h - OK
        01h - Write protect
        02h - Format error
        03h - Read/Verify error (chyba pri sptnom tan)
        04h - Write error
        05h - Bad drive number
        06h - File/Dir not found
        07h - File/Dir name too long
        08h - Create image error
        09h - Config file missing
        0Ah - Config file read error
        0Bh - Config file corrupted
        0Ch - Unknown image type
        99h - in chyba (FDC, PIO, ...)
  ak je ERR <> 00h, prpadn dta a ani CRC sa u neposielaj
  Chyby 05h a 0Ch s iba v implementcii PMD 32-SD

PMD 32 poskytuje tieto povely: U, C, J, *, @, B, Q, R, S, T, W, I, F

PMD 32-SD nevykonva alebo ignoruje povely U, C, J, *, @
          a poskytuje naviac tieto povely: G, H, K, L, M, N, P

Vyznam parametrov:

"disk + slo sektora":
 7 6 5 4 3 2 1 0
-----------------
 d 0 s s s s s s   PMD 32
 D D S S S S S S   PMD 32-SD

PMD 32
 d - disk - 0 = A:, 1 = B:
 s - slo logickho sektora 0 a 35

PMD 32-SD
DD - disk - 00 = A:, 10 = B:, 01 = C:, 11 = D:
 S - slo logickho sektora 0 a 63

"slo stopy" je v intervale 0 a 79     PMD 32
                             0 a 255    PMD 32-SD

"slo mechaniky" - 0 = A:, 1 = B:                      PMD 32
                  - 0 = A:, 1 = B:, 2 = C:, 3 = D:      PMD 32-SD


-------------------------------------------------------------------------------
- povel U - zapis do pamti PMD 32
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "U"                     | ---> |                         |
  | vyi byte adresy       | ---> |                         |
  | ni byte adresy       | ---> |                         |
  | vy byte potu        | ---> |                         |
  | nizsi byte potu        | ---> |                         |
  | 'poet' bytov dt       | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | 00h                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel C - tanie z pamti PMD 32
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "C"                     | ---> |                         |
  | vy byte adresy       | ---> |                         |
  | ni byte adresy       | ---> |                         |
  | vy byte potu        | ---> |                         |
  | ni byte potu        | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | 'poet' bytov dt       |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel J - vykonanie podprogramu v pamati PMD 32
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "J"                     | ---> |                         |
  | vy byte adresy       | ---> |                         |
  | ni byte adresy       | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | 00h                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel * - prepnutie PMD 32 do FAST reimu
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "*"                     | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | 00h                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel @ - prepnutie PMD 32 do SLOW reimu
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "@"                     | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | 00h                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel B - vyiadanie BOOT sektora
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "B"                     | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |                         | <--- | 128 bytov dt           |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel Q - pretanie logickho sektora z disku
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "Q"                     | ---> |                         |
  | disk + slo sektora    | ---> |                         |
  | slo stopy             | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |                         | <--- | 128 bytov dt           |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel R - pretanie logickho sektora z disku
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "R"                     | ---> |                         |
  | disk + slo sektora    | ---> |                         |
  | slo stopy             | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |                         | <--- | 128 bytov dt           |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel S - zpis fyzickho sektora na disk
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "S"                     | ---> |                         |
  | disk + slo sektora    | ---> |                         |
  | slo stopy             | ---> |                         |
  | 513 bytov dt           | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel T - zpis logickho sektora na disk
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "T"                     | ---> |                         |
  | disk + slo sektora    | ---> |                         |
  | slo stopy             | ---> |                         |
  | 128 bytov dt           | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel W - zpis logickho sektora na disk
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "W"                     | ---> |                         |
  | disk + slo sektora    | ---> |                         |
  | slo stopy             | ---> |                         |
  | 128 bytov dt           | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel I - vber mechaniky a presun hlavy na stopu 0
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "I"                     | ---> |                         |
  | slo mechaniky         | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|


-------------------------------------------------------------------------------
- povel F - format stopy
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |        PMD 32           |
  |-------------------------|------|-------------------------|
  | "F"                     | ---> |                         |
  | disk + slo sektora    | ---> |                         |
  | slo stopy             | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|
  Vkonn fza me trva okolo 500 ms.



-------------------------------------------------------------------------------
* Popis alch povelov PMD 32-SD *
-------------------------------------------------------------------------------
Nasledujce povely umouj v prpade PMD 32-SD vkladanie zvolench Image do
jednotlivch mechank, vobu a prezeranie adresrov na SD karte a vytvorenie
novhyo Image.

Povely G, H, K, L, M a N s dostupn od verzie firmvru 1.3.
Od verzie firmvru 2.0 vyaduj povely H a N zadvanie mena sboru aj s prponou.
Povel P je dostupn od verzie firmvru 3.2.

- Od verzie firmvru 2.0 -
V koreovom adresri SD karty mus by konfiguran sbor s menom "images.cfg",
ktor obsahuje defincie znmych, teda akceptovanch typov Image, prpadne aj
meno predvolenho Image sboru, ktor sa vlo do mechaniky A:, ak je pri
zapnut mechanika A: przdna. Typ Image sa rozliuje poda prpony sboru Image.

Formt konfiguranho sboru je nasledujci:

Na kadom riadku jedna defincia v tvare:

EXT TRACKS SECTORS_PER_TRACK [PHYSICAL_SECTOR_SIZE]

kde EXT je prpona sboru Image bez bodky
    TRACKS je celkov poet stp na disku (na oboch stranch dohromady)
		       me by v rozsahu 1 a 256
    SECTORS_PER_TRACK je poet 128 bytovch sektorov na stopu
		       me by v rozsahu 1 a 64
    PHYSICAL_SECTOR_SIZE je vekos fyzickho sektora
		       0=128 Bytov, 1=256 Bytov, 2=512 Bytov, 3=1024 Bytov
		       4=2048 Bytov, 5=4096 Bytov, 6=8192 Bytov, 7=16384 Bytov

Parameter PHYSICAL_SECTOR_SIZE je zaveden od verzie firmvru 3.2.

Na jednom riadku me by uveden meno predvolenho Image sboru. Pre odlenie
od defincie mus riadok zana hviezdikou.

Prklad: 

* system.p32
P32 80 36 2
DCZ 80 36 2
DZ8 80 36 0
XYZ 256 64 2


-------------------------------------------------------------------------------
- povel G - zskanie mena vloenho image disku
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |       PMD 32-SD         |
  |-------------------------|------|-------------------------|
  | "G"                     | ---> |                         |
  | slo mechaniky         | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |                         | <--- | WP                      |
  |                         | <--- | LEN                     |
  |                         | <--- | 'LEN' znakov mena image |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|
  Meno image je vrtane celej cesty a prpony a me ma maximlne 63 znakov.
  WP = 01h - disk chrnen proti zpisu, 00h - povolen zpis
  LEN = 00h - v mechanike nie je vloen image


-------------------------------------------------------------------------------
- povel H - vloenie image disku
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |       PMD 32-SD         |
  |-------------------------|------|-------------------------|
  | "H"                     | ---> |                         |
  | slo mechaniky         | ---> |                         |
  | WP                      | ---> |                         |
  | LEN                     | ---> |                         |
  | 'LEN' znakov mena image | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|
  Meno image mus by vrtane prpony, ktor je zadefinovan v konfiguranom
	sbore!
  WP = 01h - disk chrnen proti zpisu, 00h - povolen zpis
  LEN = 00h - vybratie image z mechaniky (meno image nenasleduje, iba CRC!)
  LEN = FFh - iba nastavenie WP (meno image nenasleduje, iba CRC!)
  Vkonn fza me trva okolo 1s.


-------------------------------------------------------------------------------
- povel K - zskanie aktulnej cesty na SD karte
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |       PMD 32-SD         |
  |-------------------------|------|-------------------------|
  | "K"                     | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | LEN                     |
  |                         | <--- | 'LEN' znakov cesty      |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|
  Dka aktulnej cesty na SD karte me ma maximlne 63 znakov.


-------------------------------------------------------------------------------
- povel L - zskanie poloky aktulneho adresra na SD karte (katalg)
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |       PMD 32-SD         |
  |-------------------------|------|-------------------------|
  | "L"                     | ---> |                         |
  | prv/alia             | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | LEN                     |
  |                         | <--- | 'LEN' zn. mena poloky  |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|
  Parameter "prv/alia": 00h - vrti prv poloku adresra
                           <>00h - vrti aliu poloku adresra
  Ak sa nenjde iadna/alia poloka, LEN = 00h
  Dka poloky (mena sboru/adresra) je maximlne 33 znakov. Men adresrov
  s kvli odleniu od sborov uzavret v hranatch ztvorkch.


-------------------------------------------------------------------------------
- povel M - zmena aktulneho adresra na SD karte
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |       PMD 32-SD         |
  |-------------------------|------|-------------------------|
  | "M"                     | ---> |                         |
  | LEN                     | ---> |                         |
  | 'LEN' znakov mena adres.| ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|
  Maximlna dka mena adresra je 31 znakov.

-------------------------------------------------------------------------------
- povel N - vytvorenie novho image v aktulnom adresri na SD karte
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |       PMD 32-SD         |
  |-------------------------|------|-------------------------|
  | "N"                     | ---> |                         |
  | LEN                     | ---> |                         |
  | 'LEN' znakov mena image | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |-------------------------|------|-------------------------|
  Meno image mus by vrtane prpony, ktor je zadefinovan v konfiguranom
	sbore!
  Vkonn fza me trva poda vekosti Image a 2 minty (360 kB Image okolo
	20s).

-------------------------------------------------------------------------------
- povel P - zskanie parametrov disku
  |-------------------------|------|-------------------------|
  |         PMD 85          | smer |       PMD 32-SD         |
  |-------------------------|------|-------------------------|
  | "P"                     | ---> |                         |
  | slo mechaniky         | ---> |                         |
  | CRC                     | ---> |                         |
  |                         | <--- | ACK/NAK                 |
  |                         | <--- | ERR                     |
  |                         | <--- | poet stp na disku     |
  |                         | <--- | po. log. sekt. na stp. |
  |                         | <--- | vekos fyzickho sekt. |
  |                         | <--- | CRC                     |
  |-------------------------|------|-------------------------|
	Ak je poet log. sektorov na stopu nulov, v mechanike nie je disk.
	Ak je poet stp nulov, znamen to 256 stp.

-------------------------------------------------------------------------------
