﻿# Původ vestavěných obrazů a testovacích dat

Tento soubor eviduje původ binárních obrazů dodávaných přímo ve Webulátoru. Cílem je, aby bylo možné každý obraz znovu sestavit, porovnat s veřejným podkladem a ověřit kontrolním součtem.

## MicroBASIC 2.4 · standardní verze REM-1/2K

| Položka | Hodnota |
|---|---|
| Účel | Výchozí MicroBASIC dokumentační sestavy ZPS-1 |
| Cílová konfigurace | JPR-1, AND-1, REM-1 s min. 2 kB RAM, DSM-1, ANK-1 |
| ROM | 4 × MHB 2708 na REM-1, `0000–0FFFh` |
| Pracovní RAM | od `4000h` |
| Intel HEX | <https://www.sapi.cz/sapi/data/mb_24_hex.php> |
| Assembler | <https://www.sapi.cz/sapi/data/mb_24_asm.php> |
| Souhrnná dokumentace | <https://www.sapi.cz/sapi/doku2/mikrobasic.php> |
| Výsledná délka | 4096 B |
| SHA-256 binárního obrazu | `5b8e99a9e1f54e2543672716fbca44002c3afd2205fc92a0503418714ddeef6f` |
| Umístění v projektu | `MIKROBASIC24_REM_2K_BASE64` v `src/rom.js` |

## MicroBASIC 2.4 · minimalistická verze JPR-1/1K

| Položka | Hodnota |
|---|---|
| Účel | Volitelná minimalistická konfigurace s pamětí přímo na JPR-1 |
| Cílová konfigurace | JPR-1 s EPROM a 1 kB RAM, AND-1, DSM-1, ANK-1 |
| ROM | na JPR-1, `0000–0FFFh` |
| Pracovní RAM | `2000–23FFh` |
| Intel HEX | <https://www.sapi.cz/sapi/data/mb_24_1k_hex.php> |
| Assembler | <https://www.sapi.cz/sapi/data/mb_24_1k_asm.php> |
| Listing | <https://www.sapi.cz/sapi/data/mb_24_1k_lst.php> |
| Výsledná délka | 4096 B |
| SHA-256 binárního obrazu | `21f5164fa60963b60c082be8beb7b6e98fc0a41906de341ee4c5d6186beba3d5` |
| Umístění v projektu | `MIKROBASIC24_JPR_1K_BASE64` v `src/rom.js` |

## Rozdíl obou obrazů

Oba obrazy mají délku 4096 B. Při přímém porovnání se liší na 158 pozicích:

- na 152 pozicích se mění vysoký bajt adresy z `40h` na `20h`;
- na 6 pozicích se mění vysoký bajt adresy z `47h` na `23h`.

To odpovídá přeadresování pracovního prostoru ze standardní RAM na REM-1 (`4000–47FFh`) do 1 kB RAM na JPR-1 (`2000–23FFh`). Kazetové záznamy obou variant nejsou vzájemně kompatibilní. SAVE zapíše za jméno dvoubajtovou absolutní hodnotu `TXTUNF`; LOAD pak ukládá data od pevně zakódované `TXTBGN` (`40EFh` ve standardní 2kB variantě a `20EFh` v 1kB variantě) až do této adresy.

## Metoda převodu Intel HEX → vestavěný obraz

- parser ověří syntaxi, počet bajtů a kontrolní součet každého řádku;
- záznamy typu `00` zapíše na deklarované adresy;
- záznam typu `01` ukončí načítání;
- výsledný rozsah `0000–0FFFh` se uloží jako 4096bajtový binární obraz;
- Base64 v `src/rom.js` je pouze transportní reprezentace stejných bajtů;
- test `tests/zps1-default.test.mjs` hlídá SHA-256 standardního obrazu.

## Poznámka k původu

Web SAPI.cz publikuje Intel HEX, assemblerové výpisy a listingy jako přepis historických podkladů. Projekt z těchto veřejných dat rekonstruuje binární obsah potřebný k emulaci. U dalšího zveřejňovaného programového vybavení je nutné obdobně evidovat zdroj, variantu, cílovou konfiguraci, velikost a kontrolní součet.
