64KBI - modul paměti 64 kB pro počítač SORD m5
         ----------------------------------------------
 Jak již z názvu vyplývá, jedná se o rozšíření technických mož-
ností počítače SORD m.5 pomocí paměťového modulu 64 kB, vestavě-
ného do "cartridge" od Basicu - I. První označení tohoto modulu
bylo EM-64, posléze, když se objevil modul 64kBF, začlo být
používáno označení 64KBI pro EM-64 s odpojitelným MONITORem ROM
Obvod ROM-Basic-I byl umístěn na základní desku počítače (není
však nutnou podmínkou).
 Dynamická paměť RAM 64 kB je doplněna dalšími obvody, které
umožňují realizovat řadu nových funkcí.
 1)Paměť lze pomocí přepínače nastavit do režimu 32 kB, nebo
   64 kB. Použití režimu 32 kB je funkčně shodné jako originální
   "cartridge" EM-32.
 2)Režim "Basic - I" - po zapnutí automaticky aktivuje Basic-I,
   pokud je zabudován uvnitř počítače nebo je praven pro provoz
   v rozdvojce.
 3)Režim autostartu - po zapnutí není připojen Basic-I. Pokud se
   v paměti nenachází na adrese &2000 nebo &4000 kód &FF,počítač
   "zbloudí", jinak se udělá "TAPE", se vším, co k němu patří.
 4)Režim blokování zápisu do dolní poloviny paměti. Tato funkce
   je výhodná při uložení systémových programu od adresy &2000
   do adresy &7000. Při blokovaném zápisu nemůže být tento
   program omylem přepsán.
 Při použití paměti v plné kapacitě je možné od adresy &2000
"natahovat" a spouštět libovolný originální program, např. Basic
- F, Basic - G, Falc, videohry "vytažené" z originálních
"cartridge" a nebo nově vytvořené systémové programy, které však
musí být koncepčne shodné s originálními programy. Zavedení
těchto programů je vsak nutné provádět buď:
 a)"napokováním" programu ve strojovém kódu, který zajistí odpo-
jení ROM BASIC-I a upravení RAM tak, aby se provedlo TAPE.
 b)pomocí nějakého BOOTovacího programu, nejlépe "BOOT.64;7.CM",
nebo není-li k dispozici tak pomocí programu "BOOT.BL", jehož
výpis je přiložen. Tento program netestuje RAM a neupravuje
MONITOR ROM tak, aby byl případně v RAM provozovatelný. Dále
také nestartuje programy tak, jak by měl - od startovací adresy.
Ale pro první pokusy s RAM 56 a 64 kB plně postačuje.
K bodu a):
FOR I=0 TO 13:READ A:POKE I+&8000,A:NEXT:DATA &F3,&3E,&01,&D3,
&6C,&3E,&FF,&32,&00,&40,&32,&00,&20,&C7
což je:
8000 DI             ;zákaz přerušení
     LD  A,01
     OUT (6Ch),A    ;odpoj ROM BASIC-I
     LD  A,0FFh     ;připrav RAM pro monitor
     LD  (4000h),A  ;ať si myslí, že je BUS
     LD  (2000h),A
     RST 0          ;a odstartuj MONITOR ROM
K bodu b):
+++ PROGRAM BOOT.BL +++
    DI
    LD   HL,0
    LD   DE,9000H
    LD   BC,4000H            ;přenes monitor + Basic-I
    LDIR                     ;do RAM od 9000H
    LD   A,1
    OUT  (6CH),A             ;odpoj ROM
    LD   HL,9000H
    LD   DE,0
    LD   BC,4000H
    LDIR                     ;přenes zpět do RAM
    LD   HL,80D0H            ;ukazatel RAM pro
    CALL 1598H               ;načti FILE ID
    JP   C,ERROR             ;vypiš chybové hlášení
    LD   HL,80D1H
    LD   B,9
    CALL MSG                 ;vypiš název FILE.ID
    XOR  A
    LD   HL,80D0H
    CALL 153BH               ;načti FILE.DATA
    JP   C,ERROR
    LD   SP,7300H
    LD   A,70H
    LD   I,A                 ;nastav I registr
    LD   HL,7094H
    LD   BC,1CEH
    CALL 860H                ;vynuluj RAM
    LD   HL,165H
    LD   DE,7000H
    LD   BC,5DH
    LDIR                     ;nastav paměť dle tabulky
    CALL 1C2H                ;inicializace CTC
    EI
    CALL 1811H               ;inicializace SOUND GENERATOR
    CALL 0E0BH               ;inicializace VDP
    DI
    LD   HL,7000H            ;nastavení systémových
    LD   (7010),HL           ;ukazatelů RAM
    LD   HL,0000
    LD   (7012),HL
    LD   (7016),HL
    LD   HL,7300H
    LD   (7014),HL
    EI
    CALL 00E4H               ;najdi ROM a spusť ( najde RAM
                             ;a případně spustí )
    JP   33H                 ;v případě chyby natahuj znovu
MSG:LD   A,(HL)              ;výpis hlavičky FILE.ID
    CP   00
    RET  Z
    CALL 1088H               ;tiskni znak
    INC  HL
    DJNZ MSG
    RET
ERROR:LD   HL,TPER           ;vypiš chybové hlášení a spusť
      CALL MSG               ;BASIC-I
      CALL MSG
      XOR  A
      OUT  (6CH),A           ;připoj zpět ROM
      LD   HL,(2001H)
      EI
      JP   (HL)              ;návrat do Basic-I
      TPER DEFB 0D
      DEFM "TAPE ERROR!
----------------------------------------------------------------
 Další možnosti počítače SORD m5
 -------------------------------
Vytvořením paměti EM-64 je možné orientovat počítač SORD M5 jako
malý vývojový systém, pro který již existuje editor a assembler.
Tento systém lze doplnit paralelním rozhraním PI-5.1, pro který
je již připravován plošný spoj. Interface PI-5.1 je prakticky
shodný s originální "cartridge" PI-5, která je určena pro připo-
jení diskové jednotky FD-5.
Drobnou úpravou modulu EM-64 a počítače SORD M5 lze rozšířit ka-
pacitu pameti na 80 kB a pamet EM-64 používat od adresy 0000 ja-
ko volně přístupnou. Takto upravená EM-64ka se označuje 64KBI.
Program "BOOT.BL" s tímto počítá a do dynamické paměti zavádí na
adresy &0000-&1FFF MONITOR ROM.
Potom je možno v originálním monitoru provádět úpravy podle pot-
řeby.
 Tím, že lze provozovat v počítači SORD M5 pamět RAM od adresy
0000,je položen základ operačnímu systému CP/M. Je již navržena
deska (vývojový vzorek) interface pro floppy disky 3 1/2", 5
1/4" a 8" s inteligentním řadičem fy Western Digital.
 Do budoucna je však otázkou, zda by nebylo výhodnější navrhnout
"cartridge" 256kB RAM disk a systém CP/M "natahovat" z kazetové-
ho magnetofonu. Zdá se, že paměti 41256 budou dostupnější než
floppy disky. V každém případě jsou však levnější. Použitím RAM
disku však bude omezen komfort operačního systému CP/M.
                                        sepsáno v létě '88
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~