PENTAGON 512kB interface
(for ZX Spectrum 128+2 - issue 3 only)

Pentagon interface je interní rozšíření paměti ZX Spectra 128+2 na 512kB podle vzoru Pentagon 512.

Nejprve si ujasníme, co je to Pentagon a jak se liší od ZX128

Pentagon je ruský klon ZX Spectra 128. Existuje ale i v jiných variantách, např. 48kB, 128kB, 256kB, 512kB a 1MB.

Pentagon 48 - kompatibilní se ZX 48 , nepoužívá rozšířenou paměť

Pentagon 128 - kompatibilní se ZX 128, stránkuje na portu 7FFD(32765) pomocí bitů D0-D2

Pentagon 256 - tato verze se běžně nepoužívá, je to mutant mezi 128 a 512kB. Paměť nad 128kB stránkuje nastavením bitu D6 portu 7FFD. D6 společně s D0-D2 tvoří čtyřbitové číslo 16kB stránky (tedy 0-15). Zrcadlení stránek 2 a 5 je stejné jako u ZX128, str.č.8-15 se nikam nezrcadlí.

Pentagon 512 - tato verze je spolu s verzí 128kB nejrozšířenější. Paměť nad 128kB stránkuje nastavením bitu D6 a D7 portu 7FFD. D6 a D7 společně s D0-D2 tvoří pětibitové číslo 16kB stránky (tedy 0-31). Zrcadlení stránek 2 a 5 je stejné jako u ZX128, str.č.8-31 se nikam nezrcadlí.

Pentagon 1024 - Paměť nad 128kB stránkuje nastavením bitu D5,D6 a D7 portu 7FFD. D5,D6 a D7 společně s D0-D2 tvoří šestibitové číslo 16kB stránky (tedy 0-63). Zrcadlení stránek 2 a 5 je stejné jako u ZX128, str.č.8-63 se nikam nezrcadlí. Na portu 7FFD jsou u ZX128 nevyužité jen dva horní bity(D6 a D7). V kombinaci s D0-D2 lze nastránkovat maximálně 512kB. Pentagonisti ale použili bit D5 portu 7FFD jako stránkovací bit pro dalších 512kB. D5 normálně u ZX128 a jiných kompatibilních strojů v log.1 zablokuje stránkování portu. U Pentagonu 1024 byla tato funkce odstraněna a tak se bit uvolnil pro takto rozšířenou paměť. Pentagon 128-1024 má stejně neúplnou adresaci stránkovacího portu, jako ZX128+/+2.

http://f6.bloguje.cz/830383-pentagon-512kb-interface-pro-zx-spectrum-2.php

 

Odlišnosti od ZX128 (nekompatibilita)

Všechny verze Pentagonu mají jiné časování než ZX Spectrum. Mikrořádek trvá 224 taktů stejně jako u ZX48, ale za přerušení se stíhá 320 řádek, což dělá 320x224=71680 Taktů. Běžné ZX128 má na mikrořádek 228 taktů, ale jen 311 mikrořádek, což je celkem 311x228=70908 Taktů. Dema pro Pentagon na ZX128 neběhají většinou právě kvůli tomuto časování. Navíc Pentagon nezpomaluje pamět a porty jako u ZX128, kde máme pomalou polovinu paměti(64kB). Díky využití bitů D6/D7 portu 7FFD musí rusové u Pentagonů s rozšířenou pamětí stránkovat korektně přes registr BC ( OUT (C),x ). To nám na ZX128 nevadí, dokud se nepoužije rozšířená paměť. Naopak Pentagonisti mají se softwarem pro ZX128 problém. Program používající stránkování přes BC jim na rozšířených typech Pentagonu běhá, protože zde bývá prakticky vždy D6 i D7 v log.0. Většina programů ale stránkuje klasicky pomocí:
LD A,stránka -
stránka kterou nastavujeme
OR 64 -
registr A tvoří i horní část(A8-A15) adresy portu. U ZX128+2A/+3 musí být A14=1, proto nastavujeme D6 na 1
OUT (253),A -
stránkujeme
A právě toto nastavování D6 na log.1 u Pentagonů stránkuje rozšířenou paměť nad 128kB, proto jim nic nefunguje.

 

Popis funkce Pentagon512kB interface, aneb jak to vlastně funguje

Pentagon512kB interface je interní interface určený pro ZX128+2 (issue 3). Interface obsahuje paměť SRAM 512kB, která pracuje pro zápis i čtení paralelně s pamětí ZX Spectra. Jedná se o samostatný modul, který se zasune do patice místo původní paměti ROM a obvodu HAL10H8(PAL10H8). Do modulu se musí ještě přivést signál RESET a REFRESH z procesoru. Modul dále obsahuje FLASH EPROM 128-512kB, 2x GAL20V8, 1x GAL16V8 a 1x 74LS273. Na kraji modulu je pinová lišta, kde se pomocí switchů nastavuje režim práce a další vymoženosti. Následuje kompletní výpis všech funkcí interface:

(většina funkcí jsou volitelná - vypínatelná)
1) Integrovaná úprava pro spolupráci ZX128 s D40/D80. Zúplní adresaci portu 7FFD + obou portů AY o A5=1
   (vnucení 48ROM je samostatné switchem)
2) Rozšíření paměti na 512kB. Povolí funkci bitů D6 a D7 portu 7FFD pro stránkování až 512kB ram
   (rozšířená paměť nad 128kB se nezrcadlí)
3) Integrovaný deprchátor - odstraní efekt pršení ve videoram
4) Při čtení z portu 7FFD se nezapisuje na stránkovací port, ZX se nehroutí.(Rusové čtením portu 7FFD zapínají turbo 7MHz)
5) FASTIO - zrychlení zpomalených portů (výrazné zrychlení např. při načítání sektorů z IDE portů)
6) Nahradí funkčně původní obvod HAL10H8(PAL10H8)
7) FAST režim - pamět ZX Spectra je zpomalována ulou pouze při zápisu/čtení v oblasti první nebo druhé videoram, a to navíc jen v prvních 8kB. Pro porovnání je v následující tabulce znázorněna pomalá a rychlá pamět.

FAST MEMORY

SLOW MEMORY

 

0-16384

16384-32767

32768-49151

49152-65535

ROM

RAM 5

RAM 2

RAM 0

FAST režim vypnutý (ZX originál)

liché stránky 1,3,5,7 jsou pomalé
sudé stránky 0,2,4,6 jsou rychlé

RAM 1

RAM 2
RAM 3
RAM 4
RAM 5
RAM 6
RAM 7

RAM 8-31 (512kB)

 

0-16384

16384-24575

24576-32767

32768-49151

49152-57343

57344-65535

ROM

RAM 5

RAM 5

RAM 2

RAM 0

 

FAST režim zapnutý (ZX fast)

v rychlém režimu většinou běhají i časově náročnější
dema pro Pentagon, nebo pro ZX128+2A / +3

 

RAM 1

RAM 2
RAM 3
RAM 4
RAM 5 RAM 5
RAM 6
RAM 7 RAM 7

RAM 8-31 (512kB)

Režim fast omezí zpomalování ram na minimum. Některý software psaný na ZX+2A běhá na ZX128+/+2 pomalu díky jinému rozložení pomalých a rychlých stránek. To samé může platit i obráceně, tedy že software ze ZX128+/+2 bude na +2A/+3 pomalejší. Fast režim tyto rozdíly odstraní a na vaší ZX128+2 s Pentagon modulem bude běhat drtivá většina softwaru bez zpomalování.

Význam bitů na stránkovacím portu 7FFD:

512kB OFF

PORT 7FFD

D0 BANK 0
D1 BANK 1
D2 BANK 2
D3 VRAM
D7 ROM
D5 DIS128
D6 unused
D7 unused

 

512kB ON

PORT 7FFD

D0 BANK 0
D1 BANK 1
D2 BANK 2
D3 VRAM
D7 ROM
D5 DIS128
D6 BANK 3
D7 BANK 4

 

PENTAGON INTERFACE - BOARD

PENTAGON INTERFACE - SCHEMATIC

 

DOWNLOAD

SCH and BRD files for Eagle

GAL equations, chip pinout (new corrected and bug-fixed version - 9.12.2008)

 

SOFTWARE FOR D40/D80/MDOS 3(Divide)

Veškerý software využívající rozšířenou paměť nad 128kB pochází z Ruska a většinou je určen jen pro BETA DISK. Rozšířenou pamět využívají především nejrůznější commandery, kopíráky, assemblery a občas i nějaké hry. Pro náš diskový systém D80/D40/MDOS3 byl upraven pro práci s rozšířenou pamětí např. MDOS FILE COMMANDER(MFC) nebo TOOLS 128. Oba programy po spuštění umožnují nastavit manuálně velikost paměti (až do 1MB ram). Při kopírování disket s jednou mechanikou si ulevíte od neustálé výměny zdrojové a cílové diskety. Commander si kopírované soubory uloží do rozšířené paměti a ve většině případů si vystačíte s jedinou výměnou disket.

MFC - http://home.tiscali.cz/mts.zxs/programs/mfc/mfc135.zip ( http://home.tiscali.cz/mts.zxs/ )

TOOLS 128 - http://ci5.speccy.cz/files/tools128.d80.zip ( http://ci5.speccy.cz/progs/tools-128.php )