PSN
Z PMD 85 Infoserver
(begin work) |
(Doplnená verzia emulátora a odkazy na periférie) |
||
| 4 medziľahlé revízie nie sú zobrazené. | |||
| Riadok 3: | Riadok 3: | ||
== PSN - formát snapshot súboru PMD 85 Emulátora == | == PSN - formát snapshot súboru PMD 85 Emulátora == | ||
| - | PSN súbor reprezentuje "snímku" ''(z angl. snapshot)'' obsahu a stavu počítača [[PMD 85]] v danom momente, kedy bol snapshot vytvorený. Tento typ súboru vznikol pre [[Emulátor|PMD 85 | + | PSN súbor reprezentuje "snímku" ''(z angl. snapshot)'' obsahu a stavu počítača [[PMD 85]] a [[Kompatibilné s PMD 85|kompatibilných]] v danom momente, kedy bol snapshot vytvorený. Tento typ súboru vznikol pre [[Emulátor|PMD 85 Emulátor]] preto, aby sa do súboru mohli odpamätávať aj stavy všetkých základých periférií. |
| - | Štruktúra súboru je binárna a úvodná hlavička | + | Štruktúra súboru je binárna a úvodná hlavička obsahuje všetky informácie o momentálnom type a stave počítača tak, ako to popisujú nasledujúce tabuľky. V súčasnosti existujú 2 verzie Snapshotu. 2. verzia Snapshotu je zavedená od [[Emulátor/Changelog#v2.2.8.301|Emulátora v2.2.8.301]]. Táto verzia Emulátora ukladá Snapshot vo verzii 2 iba v prípade, že sú v Emulátore zvolené také súčasti, ktoré je možné zaznamenať iba do novej verzie Snapshotu. Inak sa použije 1. verzia Snapshotu. |
| + | |||
| + | === verzia 1 === | ||
{| width="100%" class="wikitable" | {| width="100%" class="wikitable" | ||
| Riadok 28: | Riadok 30: | ||
| valign="top" | 1 | | valign="top" | 1 | ||
| model počítača: | | model počítača: | ||
| - | * 0 = PMD 85-1 | + | * 0 = [[PMD 85#PMD 85-1|PMD 85-1]] |
| - | * 1 = PMD 85-2 | + | * 1 = [[PMD 85#PMD 85-2|PMD 85-2]] |
| - | * 2 = PMD 85-2A | + | * 2 = [[PMD 85#PMD 85-2A|PMD 85-2A]] |
| - | * 3 = PMD 85-3 | + | * 3 = [[PMD 85#PMD 85-3|PMD 85-3]] |
| - | * 4 = Maťo | + | * 4 = [[Maťo]] |
| - | * 5 = Consul C2717 | + | * 5 = [[Didaktik Alfa]] |
| + | * 6 = [[Didaktik Alfa#Didaktik Alfa 2|Didaktik Alfa 2]] | ||
| + | * 7 = [[Consul 2717]] ''(v starších verziách emulátora mal C2717 číslo 5)'' | ||
| + | |- | ||
| + | | valign="top" | 7 | ||
| + | | valign="top" | 1 | ||
| + | | príznaky prerušenia: | ||
| + | * 0. bit : {{Kbd|iff}} - log.1 = povolené prerušenie | ||
| + | * 1. bit : {{Kbd|ei1}} - log.1 = bola vykonaná inštr. EI | ||
| + | * 2. bit : {{Kbd|ei2}} - log.1 = po nasled. inštrukcii povol prerušenie | ||
| + | * 3. bit : {{Kbd|halt}} - log.1 = procesor je v stave HALT | ||
| + | * 4. bit : {{Kbd|inta}} - log.1 = bolo akceptované prerušenie | ||
| + | * bity 5-7 sú nastavené na log.0 a vyhradené pre budúce využitie | ||
| + | |- | ||
| + | | 8 | ||
| + | | 2 | ||
| + | | AF | ||
| + | |- | ||
| + | | 10 | ||
| + | | 2 | ||
| + | | BC | ||
| + | |- | ||
| + | | 12 | ||
| + | | 2 | ||
| + | | DE | ||
| + | |- | ||
| + | | 14 | ||
| + | | 2 | ||
| + | | HL | ||
| + | |- | ||
| + | | 16 | ||
| + | | 2 | ||
| + | | PC | ||
| + | |- | ||
| + | | 18 | ||
| + | | 2 | ||
| + | | SP | ||
| + | |- | ||
| + | | 20 | ||
| + | | 2 | ||
| + | | dĺžka ROM monitora<ref name="rom">{{Sekcia|dĺžka ROM Monitora}} | ||
| + | Keďže dĺžka ROM monitora nemusí byť pre niektoré modely konštantná, a pri rozpakovaní je potrebné poznať cieľovú dĺžku, 15.bit hodnoty označuje, či je blok pakovaný: | ||
| + | * 15.bit = log.0 - ROM Monitor je uložený v komprimovanej forme | ||
| + | * 15.bit = log.1 - ROM Monitor je uložený v čistej forme | ||
| + | Teda nech {{Kbd|val}} = {{Kbd|[20]}}, potom: | ||
| + | * ak {{Kbd|(val & 0x7FFF) > 16384}} - nedovolené hodnoty | ||
| + | * ak {{Kbd|val}} = {{Kbd|0}} - ROM Monitor nie je v snapshote prítomný | ||
| + | * ak {{Kbd|val < 16384}} - pakovaný ROM Monitor | ||
| + | * ak {{Kbd|val > 32768}} - ROM Monitor v čistej forme | ||
| + | <br />Umiestnenie ROM Monitora je dané modelom počítača. Ak ROM Monitor nie je v snapshote prítomný, použije sa aktuálne zvolená ROM pre daný model počítača. | ||
| + | <br /></ref> | ||
| + | |- | ||
| + | | 22 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku v priestore 0000h až 3FFFh<ref name="ram">{{Sekcia|dĺžka RAM bloku}} | ||
| + | * {{Kbd|0}} - blok nie je v snapshote prítomný | ||
| + | * {{Kbd|1}} - celý blok je vyplnený daným bytom | ||
| + | * {{Kbd|< 16384}} - pakovaný blok | ||
| + | * {{Kbd|16384}} - nepakovaný blok "v čistom tvare" | ||
| + | * {{Kbd|> 16384}} - nedovolené hodnoty | ||
| + | <br /></ref> | ||
| + | |- | ||
| + | | 24 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku v priestore 4000h až 7FFFh<ref name="ram"/> | ||
| + | |- | ||
| + | | 26 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku v priestore 8000h až BFFFh<ref name="ram"/> | ||
| + | |- | ||
| + | | 28 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku v priestore C000h až FFFFh<ref name="ram"/> | ||
| + | |- | ||
| + | | 30 | ||
| + | | 1 | ||
| + | | system PIO - CWR (0F7h) | ||
| + | |- | ||
| + | | 31 | ||
| + | | 1 | ||
| + | | system PIO - zvuk, LED, stránkovanie (0F6h) | ||
| + | |- | ||
| + | | 32 | ||
| + | | 1 | ||
| + | | system PIO - klávesnica (0F4h) | ||
| + | |- | ||
| + | | 33 | ||
| + | | 1 | ||
| + | | GPIO - CWR (4Fh) | ||
| + | |- | ||
| + | | 34 | ||
| + | | 1 | ||
| + | | GPIO - port C (4Eh) | ||
| + | |- | ||
| + | | 35 | ||
| + | | 1 | ||
| + | | GPIO - port B (4Dh) | ||
| + | |- | ||
| + | | 36 | ||
| + | | 1 | ||
| + | | GPIO - port A (4Ch) | ||
| + | |- | ||
| + | | 37 | ||
| + | | 1 | ||
| + | | GPIO - povolenie prerušení | ||
| + | * 0.bit : port A na vstup | ||
| + | * 1.bit : port A na výstup | ||
| + | * 2.bit : port B | ||
| + | * bity 3-7 : nastavené na log.0 a vyhradené pre budúce využitie | ||
| + | |- | ||
| + | | 38 | ||
| + | | 1 | ||
| + | | IMS-2 - CWR (7Fh) | ||
| + | |- | ||
| + | | 39 | ||
| + | | 1 | ||
| + | | IMS-2 - port C (7Eh) | ||
| + | |- | ||
| + | | 40 | ||
| + | | 1 | ||
| + | | IMS-2 - port B (7Dh) | ||
| + | |- | ||
| + | | 41 | ||
| + | | 1 | ||
| + | | IMS-2 - port A (7Ch) | ||
| + | |- | ||
| + | | 42 | ||
| + | | 1 | ||
| + | | IMS-2 - povolenie prerušení | ||
| + | * 0.bit : port A na vstup | ||
| + | * 1.bit : port A na výstup | ||
| + | * 2.bit : port B | ||
| + | * bity 3-7 : nastavené na log.0 a vyhradené pre budúce využitie | ||
| + | |- | ||
| + | | 43 | ||
| + | | 1 | ||
| + | | čítač 0 - CWR (5Fh) | ||
| + | |- | ||
| + | | 44 | ||
| + | | 1 | ||
| + | | čítač 0 - init hodnota L (5Ch) - ak (CWR & 16) != 0 | ||
| + | |- | ||
| + | | 45 | ||
| + | | 1 | ||
| + | | čítač 0 - init hodnota H (5Ch) - ak (CWR & 32) != 0 | ||
| + | |- | ||
| + | | 46 | ||
| + | | 1 | ||
| + | | čítač 1 - CWR (5Fh) | ||
| + | |- | ||
| + | | 47 | ||
| + | | 1 | ||
| + | | čítač 1 - init hodnota L (5Dh) - ak (CWR & 16) != 0 | ||
| + | |- | ||
| + | | 48 | ||
| + | | 1 | ||
| + | | čítač 1 - init hodnota H (5Dh) - ak (CWR & 32) != 0 | ||
| + | |- | ||
| + | | 49 | ||
| + | | 1 | ||
| + | | čítač 2 - CWR (5Fh) | ||
| + | |- | ||
| + | | 50 | ||
| + | | 1 | ||
| + | | čítač 2 - init hodnota L (5Eh) - ak (CWR & 16) != 0 | ||
| + | |- | ||
| + | | 51 | ||
| + | | 1 | ||
| + | | čítač 2 - init hodnota H (5Eh) - ak (CWR & 32) != 0 | ||
| + | |- | ||
| + | | 52 | ||
| + | | 1 | ||
| + | | USART - CWR (1Fh) | ||
| + | |- | ||
| + | | 53 | ||
| + | | 1 | ||
| + | | USART - Sync1 (1Fh) - ak (CWR & 3) == 0 | ||
| + | |- | ||
| + | | 54 | ||
| + | | 1 | ||
| + | | USART - Sync2 (1Fh) - ak (CWR & 131) == 0 | ||
| + | |- | ||
| + | | 55 | ||
| + | | 1 | ||
| + | | USART - Command (1Fh) | ||
| + | |- | ||
| + | | 56 ... | ||
| + | | ... | ||
| + | | jednotlivé bloky v takom poradí a forme, ako to je nastavené bytami [20] až [29] hlavičky. | ||
|} | |} | ||
| + | |||
| + | === verzia 2 === | ||
| + | |||
| + | {| width="100%" class="wikitable" | ||
| + | |- | ||
| + | ! offset | ||
| + | ! dĺžka | ||
| + | ! význam | ||
| + | |- | ||
| + | | 0 | ||
| + | | 3 | ||
| + | | text "PSN" - '''P'''MD 85 '''SN'''apshot | ||
| + | |- | ||
| + | | 3 | ||
| + | | 1 | ||
| + | | verzia Snapshotu - teraz 2 | ||
| + | |- | ||
| + | | 4 | ||
| + | | 2 | ||
| + | | offset, kde začínajú bloky pamäti - teraz 124 | ||
| + | |- | ||
| + | | 6 až 55 | ||
| + | | ... | ||
| + | | zhodné s verziou 1<br>4 RAM bloky z verzie 1 predstavujú banky 0 až 3 rozšírenej pamäti 256kB | ||
| + | |- | ||
| + | | 56 | ||
| + | | 1 | ||
| + | | [[VideoCPU INT|prerušenie od VideoCPU]] a [[VGA Konvertor]] (6Ch) ; 0FFh = prerušenie od VideoCPU nie je zapnute | ||
| + | |- | ||
| + | | 57 | ||
| + | | 1 | ||
| + | | [[256kB RAM|mapovanie rozšírenej pamäti 256kB]] (6Dh) ; 0FFh = bez rozšírenia pamäte 256kB | ||
| + | |- | ||
| + | | 58 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 4<ref name="ram"/> | ||
| + | |- | ||
| + | | 60 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 5<ref name="ram"/> | ||
| + | |- | ||
| + | | 62 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 6<ref name="ram"/> | ||
| + | |- | ||
| + | | 64 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 7<ref name="ram"/> | ||
| + | |- | ||
| + | | 66 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 8<ref name="ram"/> | ||
| + | |- | ||
| + | | 68 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 9<ref name="ram"/> | ||
| + | |- | ||
| + | | 70 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 10<ref name="ram"/> | ||
| + | |- | ||
| + | | 72 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 11<ref name="ram"/> | ||
| + | |- | ||
| + | | 74 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 12<ref name="ram"/> | ||
| + | |- | ||
| + | | 76 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 13<ref name="ram"/> | ||
| + | |- | ||
| + | | 78 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 14<ref name="ram"/> | ||
| + | |- | ||
| + | | 80 | ||
| + | | 2 | ||
| + | | dĺžka 16kB RAM bloku - banka 15<ref name="ram"/> | ||
| + | |- | ||
| + | | 82 | ||
| + | | 1 | ||
| + | | prerušenie od časovača 0 v MIF 85 (0ECh) ; 0FFh = MIF 85 nie je pripojený | ||
| + | |- | ||
| + | | 83 | ||
| + | | 32 | ||
| + | | registre SAA1099P v [[MIF 85]] | ||
| + | |- | ||
| + | | 115 | ||
| + | | 1 | ||
| + | | [[Musica|IF Musica]] - čítač 0 - CWR (0FFh) ; 0FFh = IF Musica nie je pripojený | ||
| + | |- | ||
| + | | 116 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 0 - init hodnota L (0FCh) - ak (CWR & 16) != 0 | ||
| + | |- | ||
| + | | 117 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 0 - init hodnota H (0FCh) - ak (CWR & 32) != 0 | ||
| + | |- | ||
| + | | 118 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 1 - CWR (0FFh) | ||
| + | |- | ||
| + | | 119 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 1 - init hodnota L (0FDh) - ak (CWR & 16) != 0 | ||
| + | |- | ||
| + | | 120 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 1 - init hodnota H (0FDh) - ak (CWR & 32) != 0 | ||
| + | |- | ||
| + | | 121 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 2 - CWR (0FFh) | ||
| + | |- | ||
| + | | 122 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 2 - init hodnota L (5Eh) - ak (CWR & 16) != 0 | ||
| + | |- | ||
| + | | 123 | ||
| + | | 1 | ||
| + | | IF Musica - čítač 2 - init hodnota H (5Eh) - ak (CWR & 32) != 0 | ||
| + | |- | ||
| + | | 124 ... | ||
| + | | ... | ||
| + | | jednotlivé bloky v takom poradí a forme, ako to je nastavené bytami [20] až [29] a [58] až [81] hlavičky. | ||
| + | |} | ||
| + | |||
| + | === poznámky: === | ||
| + | <references/> | ||
| + | |||
| + | === kompresia === | ||
| + | Bloky sú pakované jednoduchou '''RLE kompresiou'''. Formát kompresovaných dát je nasledovný: | ||
| + | Flag | Data | Flag | Data | Flag | Data | ... | ||
| + | |||
| + | Pričom: | ||
| + | * Flag = 0x00 až 0x7F => 1 byte ako Data pre 3 až 130 rovnakých bytov | ||
| + | * Flag = 0x80 až 0xFF => blok 1 až 128 nepakovateľných bytov ako Data | ||
| + | |||
| + | [[Kategória:Detaily o PMD 85 a kompatibilných]] | ||
Aktuálna verzia
PSN - formát snapshot súboru PMD 85 Emulátora
PSN súbor reprezentuje "snímku" (z angl. snapshot) obsahu a stavu počítača PMD 85 a kompatibilných v danom momente, kedy bol snapshot vytvorený. Tento typ súboru vznikol pre PMD 85 Emulátor preto, aby sa do súboru mohli odpamätávať aj stavy všetkých základých periférií.
Štruktúra súboru je binárna a úvodná hlavička obsahuje všetky informácie o momentálnom type a stave počítača tak, ako to popisujú nasledujúce tabuľky. V súčasnosti existujú 2 verzie Snapshotu. 2. verzia Snapshotu je zavedená od Emulátora v2.2.8.301. Táto verzia Emulátora ukladá Snapshot vo verzii 2 iba v prípade, že sú v Emulátore zvolené také súčasti, ktoré je možné zaznamenať iba do novej verzie Snapshotu. Inak sa použije 1. verzia Snapshotu.
verzia 1
| offset | dĺžka | význam |
|---|---|---|
| 0 | 3 | text "PSN" - PMD 85 SNapshot |
| 3 | 1 | verzia Snapshotu - teraz 1 |
| 4 | 2 | offset, kde začínajú bloky pamäti - teraz 56 |
| 6 | 1 | model počítača:
|
| 7 | 1 | príznaky prerušenia:
|
| 8 | 2 | AF |
| 10 | 2 | BC |
| 12 | 2 | DE |
| 14 | 2 | HL |
| 16 | 2 | PC |
| 18 | 2 | SP |
| 20 | 2 | dĺžka ROM monitora[1] |
| 22 | 2 | dĺžka 16kB RAM bloku v priestore 0000h až 3FFFh[2] |
| 24 | 2 | dĺžka 16kB RAM bloku v priestore 4000h až 7FFFh[2] |
| 26 | 2 | dĺžka 16kB RAM bloku v priestore 8000h až BFFFh[2] |
| 28 | 2 | dĺžka 16kB RAM bloku v priestore C000h až FFFFh[2] |
| 30 | 1 | system PIO - CWR (0F7h) |
| 31 | 1 | system PIO - zvuk, LED, stránkovanie (0F6h) |
| 32 | 1 | system PIO - klávesnica (0F4h) |
| 33 | 1 | GPIO - CWR (4Fh) |
| 34 | 1 | GPIO - port C (4Eh) |
| 35 | 1 | GPIO - port B (4Dh) |
| 36 | 1 | GPIO - port A (4Ch) |
| 37 | 1 | GPIO - povolenie prerušení
|
| 38 | 1 | IMS-2 - CWR (7Fh) |
| 39 | 1 | IMS-2 - port C (7Eh) |
| 40 | 1 | IMS-2 - port B (7Dh) |
| 41 | 1 | IMS-2 - port A (7Ch) |
| 42 | 1 | IMS-2 - povolenie prerušení
|
| 43 | 1 | čítač 0 - CWR (5Fh) |
| 44 | 1 | čítač 0 - init hodnota L (5Ch) - ak (CWR & 16) != 0 |
| 45 | 1 | čítač 0 - init hodnota H (5Ch) - ak (CWR & 32) != 0 |
| 46 | 1 | čítač 1 - CWR (5Fh) |
| 47 | 1 | čítač 1 - init hodnota L (5Dh) - ak (CWR & 16) != 0 |
| 48 | 1 | čítač 1 - init hodnota H (5Dh) - ak (CWR & 32) != 0 |
| 49 | 1 | čítač 2 - CWR (5Fh) |
| 50 | 1 | čítač 2 - init hodnota L (5Eh) - ak (CWR & 16) != 0 |
| 51 | 1 | čítač 2 - init hodnota H (5Eh) - ak (CWR & 32) != 0 |
| 52 | 1 | USART - CWR (1Fh) |
| 53 | 1 | USART - Sync1 (1Fh) - ak (CWR & 3) == 0 |
| 54 | 1 | USART - Sync2 (1Fh) - ak (CWR & 131) == 0 |
| 55 | 1 | USART - Command (1Fh) |
| 56 ... | ... | jednotlivé bloky v takom poradí a forme, ako to je nastavené bytami [20] až [29] hlavičky. |
verzia 2
| offset | dĺžka | význam |
|---|---|---|
| 0 | 3 | text "PSN" - PMD 85 SNapshot |
| 3 | 1 | verzia Snapshotu - teraz 2 |
| 4 | 2 | offset, kde začínajú bloky pamäti - teraz 124 |
| 6 až 55 | ... | zhodné s verziou 1 4 RAM bloky z verzie 1 predstavujú banky 0 až 3 rozšírenej pamäti 256kB |
| 56 | 1 | prerušenie od VideoCPU a VGA Konvertor (6Ch) ; 0FFh = prerušenie od VideoCPU nie je zapnute |
| 57 | 1 | mapovanie rozšírenej pamäti 256kB (6Dh) ; 0FFh = bez rozšírenia pamäte 256kB |
| 58 | 2 | dĺžka 16kB RAM bloku - banka 4[2] |
| 60 | 2 | dĺžka 16kB RAM bloku - banka 5[2] |
| 62 | 2 | dĺžka 16kB RAM bloku - banka 6[2] |
| 64 | 2 | dĺžka 16kB RAM bloku - banka 7[2] |
| 66 | 2 | dĺžka 16kB RAM bloku - banka 8[2] |
| 68 | 2 | dĺžka 16kB RAM bloku - banka 9[2] |
| 70 | 2 | dĺžka 16kB RAM bloku - banka 10[2] |
| 72 | 2 | dĺžka 16kB RAM bloku - banka 11[2] |
| 74 | 2 | dĺžka 16kB RAM bloku - banka 12[2] |
| 76 | 2 | dĺžka 16kB RAM bloku - banka 13[2] |
| 78 | 2 | dĺžka 16kB RAM bloku - banka 14[2] |
| 80 | 2 | dĺžka 16kB RAM bloku - banka 15[2] |
| 82 | 1 | prerušenie od časovača 0 v MIF 85 (0ECh) ; 0FFh = MIF 85 nie je pripojený |
| 83 | 32 | registre SAA1099P v MIF 85 |
| 115 | 1 | IF Musica - čítač 0 - CWR (0FFh) ; 0FFh = IF Musica nie je pripojený |
| 116 | 1 | IF Musica - čítač 0 - init hodnota L (0FCh) - ak (CWR & 16) != 0 |
| 117 | 1 | IF Musica - čítač 0 - init hodnota H (0FCh) - ak (CWR & 32) != 0 |
| 118 | 1 | IF Musica - čítač 1 - CWR (0FFh) |
| 119 | 1 | IF Musica - čítač 1 - init hodnota L (0FDh) - ak (CWR & 16) != 0 |
| 120 | 1 | IF Musica - čítač 1 - init hodnota H (0FDh) - ak (CWR & 32) != 0 |
| 121 | 1 | IF Musica - čítač 2 - CWR (0FFh) |
| 122 | 1 | IF Musica - čítač 2 - init hodnota L (5Eh) - ak (CWR & 16) != 0 |
| 123 | 1 | IF Musica - čítač 2 - init hodnota H (5Eh) - ak (CWR & 32) != 0 |
| 124 ... | ... | jednotlivé bloky v takom poradí a forme, ako to je nastavené bytami [20] až [29] a [58] až [81] hlavičky. |
poznámky:
- ↑ dĺžka ROM Monitora
Keďže dĺžka ROM monitora nemusí byť pre niektoré modely konštantná, a pri rozpakovaní je potrebné poznať cieľovú dĺžku, 15.bit hodnoty označuje, či je blok pakovaný:
- 15.bit = log.0 - ROM Monitor je uložený v komprimovanej forme
- 15.bit = log.1 - ROM Monitor je uložený v čistej forme
Teda nech val = [20], potom:
- ak (val & 0x7FFF) > 16384 - nedovolené hodnoty
- ak val = 0 - ROM Monitor nie je v snapshote prítomný
- ak val < 16384 - pakovaný ROM Monitor
- ak val > 32768 - ROM Monitor v čistej forme
Umiestnenie ROM Monitora je dané modelom počítača. Ak ROM Monitor nie je v snapshote prítomný, použije sa aktuálne zvolená ROM pre daný model počítača. - ↑ 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 2,12 2,13 2,14 2,15 dĺžka RAM bloku
- 0 - blok nie je v snapshote prítomný
- 1 - celý blok je vyplnený daným bytom
- < 16384 - pakovaný blok
- 16384 - nepakovaný blok "v čistom tvare"
- > 16384 - nedovolené hodnoty
kompresia
Bloky sú pakované jednoduchou RLE kompresiou. Formát kompresovaných dát je nasledovný:
Flag | Data | Flag | Data | Flag | Data | ...
Pričom:
- Flag = 0x00 až 0x7F => 1 byte ako Data pre 3 až 130 rovnakých bytov
- Flag = 0x80 až 0xFF => blok 1 až 128 nepakovateľných bytov ako Data