Popis


SPECCOM

Program SPECCOM byl navržen jako komunikační prostředek určený pro přenos dat a další služby mezi platformou PC a Sinclair ZX Spectrum. Při dodržení několika podmínek by neměl být ale problém jej portovat na jiné osmibitové (i vícebitové) počítače.

Požadavky:

Hardware:

PC:

Speccom byl vyvýjen na sestavě s procesorem Pentium 75Mhz (přetaktováno na 120Mhz), 16 Mb RAM, PCI 1Mb SVGA kartou. Z hlediska funkčnosti je nejdůležitějším prvkem obousměrný paralelní port. Myslím, že se mi nepodařilo použít jiné, než 8086kové instrukce.

ZX Spectrum:

K provozu bohatě postačuje sestava s 48Kb RAM a paralelní interface obsahující obvod 8255 (např. MB-02, UR4, D40/80,...). Teoreticky je možné použít jakýkoli jiný paralelní obvod s požadovaným počtem vsupně výstupních linek.

Kabel:

Je možné buď si postavit svůj vlastní speciální kabel, nebo použít nějaký standartní a na straně ZX Spectra vyrobit přípravek, který příslušné linky předrátuje na správné porty 8255ky. Osobně jsem použil (prý) standartní ECP kabel a přepojku.

Speciální kabel:

   PC:              Port 8255:   Signál:
    1 -------------------- C6      Busy 
   10 -------------------- C1      Int 
    2 -------------------- B0      Data 
    3 -------------------- B1      Data 
    4 -------------------- B2      Data 
    5 -------------------- B3      Data 
    6 -------------------- B4      Data 
    7 -------------------- B5      Data 
    8 -------------------- B6      Data 
    9 -------------------- B7      Data 
   11 -------------------- C2      Směr 
   12 -------------------- C3      Hlavička 
18-25 -------------------- Gnd     Gnd

 

ECP kabel a přepojka:

 PC1: PC2: PC2: Port: Signál:
    1 -------------------- 10       10 ----------- C6  Busy 
   10 --------------------  1        1 ----------- C1  Int 
    2 --------------------  2        2 ----------- B0  Data 
    3 --------------------  3        3 ----------- B1  Data 
    4 --------------------  4        4 ----------- B2  Data 
    5 --------------------  5        5 ----------- B3  Data 
    6 --------------------  6        6 ----------- B4  Data 
    7 --------------------  7        7 ----------- B5  Data 
    8 --------------------  8        8 ----------- B6  Data 
    9 --------------------  9        9 ----------- B7  Data 
   11 -------------------- 14       14 ----------- C2  Směr 
   14 -------------------- 11
   12 -------------------- 16       16 ----------- C3  Hlavička 
   16 -------------------- 12 
   13 -------------------- 13 
   15 -------------------- 17 
   17 -------------------- 15 
18-25 -------------------- 18-25 18-25 ----------- Gnd Gnd

 

Software:

PC:

Program Speccom.com. Tento prográmek je rezidentní a připojuje se na přerušení od paralelního portu - IRQ 7. Po přijetí přerušení vykoná příslušnou akci (řídí se podle definovaných příkazů) a přijme, nebo vyšle bajt. Komunikace je tedy vždy řízena ze strany ZX Spectra (druhého počítače). Popisu služeb se budu věnovat dále.

ZX Spectrum:

Program Speccom, nebo libovolný vlastní. Program musí umět předávat PeCi příkazy a nějak reagovat na přijímaná data. Viz. dále.

Protokol:

Nahlédněte do zdrojáku, zatím jsem to nesepsal :-(

 

Služby programu Speccom.com

Na začátku komunikace musí Spectrum definovat svůj požadavek. To udělá pomocí 3 bajtové hlavičky. Při vysílání 1. bajtu hlavičky musí být kromě správně nastavené sběrnice také nastaven signál HLAVICKA.

Formát hlavičky je tento:

1. bajt 2. bajt 3. bajt
kód služby délka LOW délka HIGH

Kódy služeb pro čtení jsou číslovány od 129, pro zápis od 1.

Služby pro čtení: (nastaven 7. bit -> cislo sluzby + 128)

1 Read Info Přečte 5 bajtů informace
1. bajt = grafický mód
2,3. bajt = souřadnice x,y kurzoru
4,5. bajt = výška kurzoru
2 Read Txt Screen Přečte obsah výřezu textové obrazovky
3 Read Txt Attrs Přečte obsah výřezu - jen atributy a provede jejich konverzi do ZX normy
4 přečti obsah výřezu a pošli atributy bez konverze
5 přečti poslední chybu
6 hledej první (přečti info o souboru)
7 hledej další (přečti info o souboru)
8 otevři soubor (přečti handler)
9 čti soubor

Služby pro zápis:

1 Write SetUp Zapíše nastavení
1,2. bajt = x,y souřadnice začátku okna
2,3. bajt = x,y souřadnice konce okna
2 Write Key
zapiš cestu
zavři soubor (zapiš handler)