Na FreeHostingu Endora běžà desÃtky tisÃc webů. PÅ™idejte se jeÅ¡tÄ› dnes!
VytvoÅ™it web zdarmaNa FreeHostingu Endora běžà desÃtky tisÃc webů. PÅ™idejte se jeÅ¡tÄ› dnes!
VytvoÅ™it web zdarma3.3.2023 Od Dušana jsem dostal z likvidace nìjaké staré teslácké karty a papírovou dokumentaci pocházející z historického mikropoèítaèového systému CHP 3000 (produkt bývalého Chemoprojektu), který byl odrùdou SAPI-1 (Systém Automatického Poøizování Informací) postaveného na 8-bitovém CPU MHB8080A. Vìtší èást karet a dílù jsem podaroval a povymìòoval, èást jsem si ale nechal, co kdyby nìkdy náhodou. Pøecejen jsou støedem mého zájmu spíše PCèka, na kterých jsem vyrùstal. Ani nemám žádný backplane/sbìrnici, do které bych karty nastrkal a mohl je aspoò vyzkoušet...
26.10.2024 Na Bytefestu 2024 jsem se potkal s èeskýma SAPIstama Petrem, Liborem a Martinem a zjistil, že kolem SAPI žije docela aktivní komunita, která shromažïuje dokumentaci, vyrábí repliky a dokonce vyvíjí øadu nových karet a periferií usnadòujících použití a konektivitu s moderním svìtem. Nìkteré se snaží striktnì o historický look s kompletnì THT souèástkami, jiné jsou nové koncepce s nejrùznìjšími MCU èi CPLD v SMT. Od Libora jsem dostal plošòáky na moderní verzi sbìrnice ARB-1 ImBus9 rev. 1.1 napájenou z ATX PC zdroje a textmode grafickou kartu (64 x 20 znakù) s analogovým RGB VGA výstupem AND-1V rev. 2.3 (vlákno o jejím vzniku je zde), což mì namotivovalo zkusit si rozjet svoje SAPÍèko. Dobré ètení na úvod je Martinùv seriál Postavte si poèítaè SAPI-1. Záhy jsem narazil na problém s FRB konektory, které jsou u tìhle karet všudypøítomné (zejména 2-øadé, 62-pinové). Kdysi mi toho prošlo rukama spousta, ale nevím, kam jsem je zašantroèil. Možná jsem vìtšinu vyhodil èi rozdal. Našel jsem zatím jen 1 samici pøímou a 1 samce úhlového do PCB. Na sbìrnici ARB-1 je celkem 9 samic, ale staèily by pro zaèátek osadit aspoò 3 pro základní karty systému.
16.11.2024 Na radioburze ve Strašnicích jsem od RaC Vonka, který tam pravidelnì jezdí, sehnal do grafiky AND-1V chybìjící rychlé TTL obvody 74ALSxxx kromì posuvného registru 74ALS166. Ten lze experimentálnì nahradit SN74LS166AN od TI napø. z Mouseru, což bylo nìkolika uživateli ovìøeno. Já jsem koupil od Vonky na pokus 74LS166 nìjakého neznámého výrobce, tak uvidíme. Jinak je striktnì doporuèeno na vyznaèených místech použít rychlé obvody ALS kvùli tìsnému èasování. FRB konektory, ani žádnou desku s nima jsem tam bohužel neobjevil. Asi už vìtšina skonèila ve šrotu na zlato a za nesmysle na aukru je kupovat nebudu. Následnì mi kolega z práce daroval pár modrých FRB, pøevážnì úhlových samcù, ale našla se tam i 1 úhlová samice, kterou jsem zapájel na krajní pozici K9. To se hodí pøi ladìní na stole, kdy lze zkoumanou kartu zastrèit do krajní pozice vodorovnì. Bud shánìt dál.
20.11.2024 V nedìli jsem zapájel vìtšinu souèástek na grafiku AND-1V a dneska jsem dojel do GM pro chybìjící odpory 430 Ω. Naprogramoval jsem image fontu do pamìti EPROM D27C256-20 (generátor znakù) a zkusil zapnout samotnou kartu ve sbìrnici. Na monitoru se zobrazily znaky dle náhodného obsahu VRAM, tudíž alespoò autonomní generátorová èást obvodù bìží a použitý 74LS166 to zdá se stíhá.
sbìrnice ARB-1 ImBUS9 osazená AND-1V osazená AND-1V VRAM po zapnutí
21.11.2024 Dnes jsem s Jardou smìnil pøebytek FRB samcù a získal 7 zelených pøímých samic, takže jsem mohl kompletnì doosadit sbìrnici ARB-1 ImBus9 a mùžu ji naládovat kartama a zkusit nìco rozsvítit na obrazovce. Avšak záhy jsem zjistil, že to nebude tak jednoduché, protože systém SAPI zahrnoval nìkolik ucelených sestav (ZPS - Základní Poèítaèová Sestava), jejichž nìkteré díly (desky) nešlo libovolnì vzájemnì seskupovat, by� jsou všechny kompatabilní z pohledu sbìrnice. Také programové vybavení existovalo ve více verzích, které nejsou vzájemnì kompatabilní a vyžadují specifické kombinace a verze karet. Pro nováèka je to kapánek nepøehledný guláš, v kterém se teprve rozkoukávám a naèítám informace. Pro ostatní nezasvìcené to zkusím trochu zjednodušenì pøiblížit ze svého pohledu.
Základem SAPI je procesorová karta JPR-1x (Jednotka Programového Øízení). Jak jsem zjistil, existovala pùvodnì ve 3 verzích, které se podstatnì lišily: JPR-1 s CPU 8080, JPR-1A s CPU 8080 a JPR-1Z s CPU Z80 (resp. DeDeRónským U880). Takt CPU je 2 MHz. Procesor Z80 vychází z 8080, pøidává nové instrukce a je s ním zpìtnì kompatabilní. Ještì existuje 8085, který také pøidává zas pár jiných instrukcí a je taky zpìtnì kompatabilní s 8080, ale není kompatabilní se Z80. Rozdíly mezi 8080 a Z80 jsou popsány napø. zde. K tomu ještì pøibylo nìkolik nových procesorových karet, které vytvoøili naši SAPIsti, viz pøehled v tabulce níže.
Já mám pouze 1 desku JPR-1. Ta je koncipovaná jako samostatnì funkèní jednodeskový mikropoèítaè, tzn. obsahuje CPU, oscilátor a nutné podpùrné obvody, pamì� programu (4 patice pro EPROMky 2708 / 2716 - až 8 kB), pamì� SRAM (2 x MHB2114 - 1 kB), dekodér adres a tøi vstupní a 3 výstupní 8-bitové pamì�ovì mapované I/O porty (MH3212) vyvedené na externí FRB konektory X2, X3. U pamìtí 2708 a 2716 je tøeba dát pozor na rozdílné napájení a nastavit správnì propojky JP2 a JP3 na desce. 2708 (1 kB) používá stejnì jako CPU 3 napì�ové úrovnì +5 V, -5 V a +12 V, zatím co novìjší 2716 (2 kB) už jen +5 V. Lze také osadit EPROM 2732 (4 kB), z které se využije horní polovina adresního prostoru (pin A11 je pøipojen na +5 V) nebo EEPROM 28C16 (2 kB), která se hodí pro rychlejší pøepis FW bez nutnosti zdlouhavého mazání UV svìtlem. Pamìt lze dále rozšíøit pomocí karet REM-1 (až 16 kB EPROM, až 8 kB SRAM), RAM-1 (16 / 32 / 48 kB DRAM) a RMD-1(Z) (stránkovaný RAM-disk 256 kB / 1 MB).
Firmware mohl být napsaný bez OS pøímo pro konkrétní aplikaci (bare metal) nebo se používal standardní MONITOR, který se vešel do 2 kB spolu s MIKOSem (MIkro Kazetový Operaèní Systém, další 2 kB) èi Mikro BASICem. Tyto SW spolupracují pouze se starší textmode grafickou kartou AND-1 (40 x 24 znakù s kompozitním video výstupem), kterou sice mám taky, ale preferuju zobrazování na VGA monitoru. Také se liší podpora 2 typù klávesnic: MONITOR 4.0 podporuje pouze jednoduchou maticovou membránovou klávesnici ANK-1, zatím co MONITOR 4.1 a 5.0 podporuje velké klávesnice s paralelním výstupem Consul C259.11 / C262.3. Ty lze snadno nahradit bìžnou PC klávesnicí s PS/2 konektorem pomocí adaptéru EKL-1, kterou si také stavím. Zde je popsaná mapa pamìti JPR-1.
Na deskách se bìžnì dìlaly HW úpravy popsané v odkazu výše hned pod mapou pamìti. Na mé desce JPR-1 byla provedena nìjaká nestandardní úprava, která se toèí kolem obvodu MH8224 (hodinový obvod pro CPU): pin 6 (Φ2 TTL - výstup hodin CPU) je vyveden na pin 11 vnìjšího FRB konektoru X3 (jeho pùvodní cestièka je pøeškrábnutá) a pin 12 (OSC - výstup oscilátoru) je vyveden na pin 22 sbìrnicového FRB konektoru X1 (bìžnì na kartì i na sbìrnici nezapojený), takže to by nemìlo mít na nic vliv. Pokud máte pouze samotnou kartu JPR-1 a nechce se vám k ní stavìt sbìrnici a další karty, našel jsem jeden minimalistický projekt JPR-PMI, který z ní udìlá jednoduchý školní poèítaè PMI-80 s numerickým LED displejem a klávesnièkou.
JPR-1 top JPR-1 bottom
Naproti tomu procesorové karty JPR-1A a JPR-1Z nemají vlastní pamì� RAM a tudíž vyžadují do sestavy další pamì�ovou kartu, napø. RAM-1A, která se od RAM-1 liší pouze obsahem pamìti PROM MH74S287 adresového dekodéru. Na procesorové kartì je akorát 2/4kB bootROM (na JPR-1A jsou 2 patice pro 2708 / 2716, na JPR-1Z je 1 patice pro 2716), která má jinak øešený adresový dekodér, jenž umožòuje zápisem do I/O portu tuto pamì� po použití vypnout a uvolnit tak celý adresní prostor pro RAM. Také se zmìnilo ovládání 8-bitových I/O portù, které už nejsou pøístupné jako MMIO (CPU signály MR#/MW#), ale pøesunuly se do I/O prostoru (00 - 03, CPU signály IOR#/IOW#) a tudíž se s nimi pracuje pomocí instrukcí IN/OUT. Dále byla tato sestava bìžnì doplnìna øadièem disket RPD-1, z nichž se bootoval dospìlý OS CP/M 2.2. Ten vyžadoval novìjší textmode grafickou kartu AND-1A (40 x 20/24 znakù) / AND-1Z (64 x 20 znakù) nebo novou AND-1V a klávesnici Consul. S jistým úsilím lze prý pøedìlat JPR-1 na JPR-1A, ale je otázka, jestli se spíš nevyplatí si postavit nìkterou z moderních verzí procesorových karet. Zde je pøehled, co je k dispozici a co by mìlo spolu chodit.
CPU karta CPU ROM RAM VGA FW/OS klávesnice JPR-1 MHB8080A 0 - 8 kB 0 - 1 kB AND-1 / AND-1B** MONITOR+/MIKOS-1 ANK-1/Consul JPR-1S* MHB8080A 0 - 8 kB 0 - 48 kB AND-1x / DGD-1V** / BGP-1S** MikroBIOS ANK-1 JPR-1A MHB8080A 0 - 4 kB - / RAM-1A AND-1A / AND-1Z / AND-1V** CP/M Consul JPR-1Z Z80 0 - 2 kB - / RAM-1A AND-1A / AND-1Z / AND-1V** CP/M Consul JPR-1ZI* Z80 0 - 2 kB - / RAM-1A AND-1A / AND-1Z / AND-1V** CP/M Consul JPR-1V* Z80 @4MHz 0 - 2+2 kB - / RAM-1A AND-1V**, DGD-1V** CP/M Consul * procesorové karty nové konstrukce
** grafické karty nové konstrukce s výstupem na VGA monitor
29.11.2024 Jelikož mám nestandardní kombinaci procesorové karty a grafiky, nemùžu jednoduše použít pùvodní SW. Zkusil jsem schválnì do EPROMky napálit starý MONITOR 4.0, ale nic jsem nevidìl. Abych mohl novou grafiku otestovat, zkusil jsem si napsat vlastní prográmek. Pro 8080 se dá psát jak v assembleru, napø. TASM (Telemark Assembler) 3.2, tak v C - našel jsem pomìrnì živý projekt Z88DK, který vychází z SDCC. Souèástí balíku jsou i konfigurace a start-up soubory pro rùzné historické poèítaèe (i z ÈSSR a SSSR), ale pro SAPI zatím chybí. Zkusil jsem svùj testovací prográmek (jen kopíruje text a zapisuje do VRAM grafické karty na adrese F800h) naslepo zkompilovat s profilem pro ruský Mikro80 a náhodou to bìželo :).
Od Libora jsem se pak dozvìdìl, že pro svou novou desku JPR-1S (kompatabilní s JPR-1) má napsaný testovací MikroBIOS, který vychází z kódu Atari Falcon Monitoru 6.1. Je napsaný v TASM a vejde se do 8 kB ROM. Zdroják jsem bez problémù pøeložil a napálil do 4 EPROMek D2732A-2, ale nebìžel, i když jsem mìl správnì pøenastavenou adresu VRAM na 3800h a jumperem vypnutý signál MAP1. Systém však vykazoval ponìkud náhodné chování po zapnutí èi resetu, obèas se totiž stalo, že se na obrazovce náhodnì mìnily nìjaké znaky a jindy se jen staticky zobrazoval náhodný obsah VRAM. Jak jsem tak do desky rùznì dloubal, zatlaèoval EPROMky do patic a pod., tak to vykazovalo jistou citlivost zejména u èipù SRAM MHB2114. Dokonce i MikroBIOS jednou nabìhnul. Zjistil jsem, že problém byl v zoxidovaných vývodech SRAMek, které byly podivnì zašedlé. Tak jsem je oèistil a ejhle, MikroBIOS už startuje po každém zapnutí. Jediný problém je, že má obsluhu klávesnice pro ANK-1 a nikoliv Consul, to si budu muset pøepsat sám (kbd_driver.asm). Zajímavé, že mùj testovací prográmek v C bìžel v pohodì. On totiž bìží i s vydloubnutýma SRAMkama, zøejmì to kompilátor zoptimalizoval tak, že RAM není vùbec tøeba...
sbìrnice ARB-1 ImBUS9 výpis na obrazovku SAPI MikroBIOS 2.1
4.12.2024 Další možností by bylo upravit zdroják pùvodního MONITORu, aby spolupracoval s grafikou AND-1V. Pøeložit ho byl ale kapánek oøíšek. Je totiž napsaný pro prehistorický Micro$oft MACRO-80 Assembler (M80), který bìží pod CP/M a jehož syntaxi novìjší assemblery na PC nedávají. Takže napøed jsem potøeboval vyøešit, jak spustit pod DOSem èi Windows programy pro CP/M. To lze provést snadno pomocí NTVCM (DOS/Win32/Linux) nebo CP/M Playeru (Win32), kde se jako parametr uvede jméno CP/M programu a jeho parametry. Na dotaz linkeru je tøeba ruènì odpovìdìt "N" - nic nepøesouvat. Výsledný soubor (COM i HEX) je vìtší, než by odpovídalo velikosti kódu, je do nìj zahrnutá nìjaká alokovaná pamì� na konci, obvykle vyplnìná 0. Takže výsledný soubor je ještì tøeba oøíznout na velikost odpovídající kapacitì EPROM. Zde je ukázka úspìšného pøekladu pùvodního zdrojáku MONITOR V4.0F:
C:\CPMTOOLS> NTVCM.EXE M80 =MON40F.MAC/N No Fatal error(s) C:\CPMTOOLS> NTVCM.EXE L80 MON40F/P:0,MON40F/N/X/Y/E Link-80 3.44 09-Dec-81 Copyright (c) 1981 Microsoft Data 4000 4000 < 0> Program 0000 4400 <17408> 36656 Bytes Free [0000 4000 67] Origin below loader memory, move anyway(Y or N)?n C:\CPMTOOLS> dir MON4* 04.12.2024 22:47 41 984 MON40F.HEX 04.12.2024 20:58 38 021 MON40F.MAC 04.12.2024 22:47 2 560 MON40F.REL 04.12.2024 22:47 128 MON40F.SYM 4 File(s) 82 693 bytes
8.12.2024 Nakonec jsem pøece jen našel nativní assembler umožòující pøeklad MONITORu bez obezlièek VM. Je to ZMAC - Z-80 Macro Cross Assembler a LD80 linker, ale ten není pro tento pøípad tøeba, ZMAC umí generovat celou øadu výstupních formátù vèetnì BIN, HEX, dokonce i WAV soubor pro nìjakou páskovou mechaniku. ZMAC bìží na Win32 a protože je OpenSource, zkompiloval jsem si i verzi pro DOS. Pro pøeklad 8080 kódu je tøeba použít parametr "-8". Pøi pøekladu MONITORu jsem narazil na 2 podivné chyby, kdy se pøekladaèi nìjak nepozdávaly labely. Nevím pøesnì proè, ale když jsem ve zdrojáku nahradil label "PO" za "POUT", tak obì chyby zmizely a kód se správnì pøeložil. Výslednou binárku jsem porovnal s výstupem M80 a jsou stejné. Zde je podrobnìjší a struèný tabulkový pøehled instrukcí CPU 8080 a pøímé srovnání s instrukcemi Z80.
ZMAC.EXE -8 MON40F.MAC MON40F.MAC(223) : Syntax error JMP PO ; PUNCH OUTPUTMON40F.MAC(96) : Phase error - $0002 changed from $00 to $04 JMP COLD ; COLD START
9.12.2024 Od Jardy jsem dostal 30-pinovou úhlovou FRB samièku a mohl tak doosadit adaptér pro PS/2 klávesnici EKL-1. MCU AT89C2051 už mám naprogramovaný. Zbývají mi ještì 3 nevyužité PCB, když mùžu poslat. Zatím jsem jen otestoval základní funkci pøipojením 5V napájení a PS/2 klávesnice a sledováním signálu STROBE#, kde chodí pøi trvalém stisku klávesy krátké pulsy s frekvencí 15 Hz (autorepeat).
10.12.2024 Když jsem nasadil hotovou redukci EKL-1 na konektor X2 své procesorové karty JPR-1, nastalo ponìkud rozèarování, protože klávesnice nijak nereagovala. Mìøením jsem zjistil, že redukce nedostává správné napájecí napìtí 5 V, ale pouze asi 1,8 V. Zaèal jsem tedy pátrat ve schématu JPR-1 a zjistil, že na konektoru X2 nikde 5 V není a pin 22, který EKL-1 používá jako napájecí, tak vede nìkam na vstup STROBE (pin 11) obvodu portu E17 MH3212 a dále pøes pull-up odpor 4,7 kΩ. Z toho se nemùže MCU natož klávesnice uživit. Jak jsem zjistil, tak na dobových JPR-1x se bìžnì dìlala úprava, že se tento pull-up odpor pøemostil a tak se vyvedlo ven 5V napájení. Já jsem si na svou JPR-1 dopájel jumper ze strany spojù. Po této úpravì klávesnice ožila.
Dále jsem potøeboval nìjak upravit Liborùv MikroBIOS, protože ten zas poèítá pouze s maticovou klávesnicí ANK-1. Abych mohl kód snáze ladit, potøeboval jsem nejprve MikroBIOS zmenšit, abych se vešel do 1 èi 2 EEPROM 28C16 (2 / 4 kB) a nemusel zdlouhavì mazat EPROMky. Pomocí IFDEFù jsem ve zdrojácích vyøadil ménì dùležité moduly a rutiny, èímž se mi podaøilo velikost zmenšit na 2437 B, pod 2 kB se už ale jednoduše dostat nejde. Driver klávesnice kbd_driver.asm jsem kompletnì nahradil rutinou pro ètení kódu z klávesnice Consul ze zdrojáku MONITORu 5.0 (viz label CI@@). Ta by mìla podle tabulky kódù posílat standardní 7-bitové ASCII znaky. Zatím jsem moc nezkoumal, jak to funguje, jen jsem to zkompiloval, nahrál do 2 EEPROMek a kupodivu to i nìjak chodí. Akorát nefunguje psaní malých písmen (musím psát se SHIFTem nebo CapsLockem.
13.12.2024 Dokonèil jsem úpravy zdrojákù Liborova MikroBIOSu, kde jsem na zaèátek souboru definice.asm pøidal volby podmínìného pøekladu jednotlivých modulù a volbu ovladaèe klávesnice (staèí daný øádek zakomentovat støedníkem). Do obsluhy klávesnice Consul v souboru kbd_consul.asm jsem pøidal pøevod malých písmen na velká.
#define KBD_CONSUL ; zkompiluj s driverem klávesnice Consul místo ANK-1 #define USE_HELP ; zkompiluj s nápovìdou k pøíkazùm ~683B #define USE_ASM ; zkompiluj s podporou assembly/disassembly ~1046B #define USE_HEX_BOOT ; zkompiluj se serial HEX bootloaderem ~751B #define USE_TEST_RAM ; zkompiluj s testem RAM ~257B #define USE_TEST_BGP ; zkompiluj s testem grafické karty BGP ~1074B #define USE_TEST_DGD ; zkompiluj s testem grafické karty DGD ~762B #define USE_TEST_AND1 ; zkompiluj s testem textmode grafických karet AND-1x ~824B ; vypnutím všech testù, bootloaderu, asm a helpu lze snížit velikost kódu na ~2,2kB
Zkompiloval jsem si plnou verzi se všemi moduly do 4 EPROMek D2732A-2 (využito 7334 B) a hraju si s tím. Do sbìrnice jsem zkusil píchnout další kartu: Z-130 - zálohovaná SRAM 4 kB. Pùvodní shnilé NiCd akumulátory jsem odpájel a vyhodil. MikroBIOS pamì� našel a zobrazil v pamì�ové mapì. Pustil jsem na nìj pøíkaz "TEST RAM D000 DFFF" a zatím bìží bez chyby.
adaptér EKL-1 CHP Z130 top CHP Z130 bot. RAM1 top RAM1 bottom
Postupnì jsem vyzkoušel další pamì�ové karty: druhou Z-130, která byla nastavená na adresy C000 - CFFFh a dvì karty RAM-1. Jedna s 8 kB DRAM byla nastavená na adresy C000 - DFFFh a druhá s 32 kB DRAM byla nastavená na adresy 8000 - FFFFh. S pomocí MikroBIOSu lze psát pøímo do pamìti jednoduché programy v assembleru pøíkazem ". adresa instrukce" a spouštìt je pøíkazem "JUMP adresa". Po návratu z programu se zobrazí stav všech registrù. Zkusil jsem si tak napsat primitivní prográmek na zápis písmenka 'A' do pravého horního rohu obrazovky. Až rozbìhnu desku DSM-1 a vyrobím propojovací kabel na sériový port, tak budu moci nahrávat do pamìti programy zkompilované v PC.
SAPI MikroBIOS 2.1 výpis programu spuštìní programu
Zvuková karta Melodik pro SAPI s AY-3-8912
25.10.2025 Letos v létì na blešáku v Holicích se mi podaøilo sehnat nìjakou starou rackovou kartu Melodik pro ZX Spectrum s FRB konektorem a známým FM-synth zvukovým èipem Microchip AY-3-8912. Na spodní stranì karty je oznaèení "ZX Spectrum melodik AY-3-8912" a "MAZUCH è. 009 ZXmelod", ale nepodaøilo se mi o ní zjistit více informací ani na OldCompu. Pøipadá mi to jako nìjaká konstrukce, které kdysi vycházely v modrém Amatérském Rádiu. Zapojení èipu se zdá býti stejné jako na Cygnusovì stránce...
ZX Spectrum melodik-top ZX Spectrum melodik-bot
Hned mì napadlo, že bych mohl zkusit Melodik pøipojit ke svému SAPI a vyloudit nìjaké zvuky, ale záhy se ukázalo, že zapojení FRB konektoru je úplnì jiné než sbìrnice SAPI, což se dalo oèekávat. Jedna možnost by byla zbastlit nìjakou pøechodku s FRB konektory, ale toto øešení jsem nakonec zavrhl (musela by se navíc øešit nekompatabilita øídicích signálù dalšími obvody). Pustil jsem se tedy do vlastního návrhu desky Melodiku pro SAPI. Vycházel jsem pøitom z pùvodního zapojení pro ZX Spectrum, které jsem doplnil o èásteènì konfigurovatelný dekodér I/O adres a adaptoval ho na øídicí signály IOR#/IOW#. CPU 8080A používá 8-bitovou I/O adresu, kterou zrcadlí na A8 - A16, zatím co CPU Z80 umí pracovat i s 16-bitovou I/O adresou (LSB jde z registru A a MSB registru C).
Napøed jsem uvažoval o jednoduchém adresním dekodéru s jedním demultiplexerem 74138, kterému bych zapojil A7 na G1, A6 na G2A#, A5 na G2B# a A0 na - A. Ten by dekódoval pouze fixní rozsah adres 100xxxxxb tedy 80 - 9Fh a A0 by øídila výbìr indexového nebo datového registru. Teoreticky by se dal ještì využít vstup A8 na AY-3-8912 a pøipojit ho na A4 sbìrnice, který by se mìl snad chovat jako chipselect aktivní v log. 1, ale v datasheetu není úplnì jasnì popsané, jestli v log. 0 deaktivuje pouze výstupní buffer nebo kompletnì deaktivuje èip, tak aby ani nelatchoval adresu registru.
Jelikož se 8/4-bitové komparátory 74688 a 7485 blbì shání a mé zásoby jimi zrovna neoplývají, rozhodl jsem se zapojit do kaskády další demultiplexer 74138, který dekóduje 3 nastavitelné adresní bity a 2 fixní adresní bity. A7 jsem se rozhodl dekódovat natvrdo pouze v log. 1, takže bázová adresa bude vždy od 80h výše. A4, A5, A6 jsou zapojeny do prvního demuxu U6 na vstupy A, B, C a jumperem J8 se vybere jeden z výstupù Y0# - Y7#, který aktivuje úrovní log. 0 hradlovací vstup G2A# druhého demuxu U3. Tím je umožnìno nastavit bázovou adresu po násobcích 16 (80h, 90h, A0h...). Dále jsem zapojil A3 pøes jumper J9 volitelnì na hradlovací vstup G1 (aktivní v log. 1) nebo G2B# (aktivní v log. 0) na U3, èímž se krok bázové adresy zjemní na násobky 8 (80h, 88h, 90h, 98h...). Zbylé adresní bity A2 a A1 se natvrdo dekódují v log. 0 pomocí hradlovacích vstupù G2A# na U6, G2B# na U3 a A0 na vstupu A na U3 vybírá index/data. Demux U3 také dekóduje øídicí signály IOR# a IOW# na vstupech B a C. Ještì jsem mírnì upravil zapojení výstupù demuxu U3, kde jem použil Y2# místo Y3# pro vstup NAND hradla U2C, takže zápis indexu registru se nyní provádí na adresu s A0=1 a èetní/zápis dat z/do registru se provádí na adresu s A0=0, což mi pøijde o nìco logiètìjší, než data èíst/zapisovat z/na jinou adresu. Pro srandu králíkùm jsem navíc pøidal 4 LEDky na GPIO zvukového èipu (IOA0 - IOA3) a 2 LEDky pro ladìní na øídicí signály BC1 a BDIR. Zvukový výstup jde buï pøímo na stereofonní jack zásuvku nebo pøes zesilovaè LM386 na repráèek. Zde je èásteèná pravdivostní tabulka pro demux U3:
IOR# IOW# A0 Y0# Y1# Y2# Y3# Y4# Y5# Y6# Y7# BC1 BDIR function 0 0 0 0 1 1 1 1 1 1 1 0 0 inactive 0 0 1 1 0 1 1 1 1 1 1 0 0 inactive 0 1 0 1 1 0 1 1 1 1 1 1 0 data read 0 1 1 1 1 1 0 1 1 1 1 0 0 inactive 1 0 0 1 1 1 1 0 1 1 1 0 1 data write 1 0 1 1 1 1 1 1 0 1 1 1 1 index write 1 1 0 1 1 1 1 1 1 0 1 0 0 inactive 1 1 1 1 1 1 1 1 1 1 0 0 0 inactive tabulka platí jen pokud A7=1 a A654SEL=0 a A1=0, jinak jsou vždy BC1=0, BDIR=0
S využitím SMD souèástek se mi to podaøilo splácat do low-cost rozmìru desky 98 x 49 mm. Souèástky jsou pouze na horní stranì a na dolní stranì je rozlitá prakticky celistvá plocha zemì. Trochu jsem tápal ohlednì mechanické specifikace FRB konektoru, nìjaké omalovánky k tomu lze najít v katalogu Tesla 3. díl zde [335 MB] na str. 621. Trochu mì pøekvapilo, že rozteè pinù a øad je 2,50 mm resp. 5,00 mm, což si zøejmì neuvìdomil autor pùvodního Melodiku, kde mìl footprint evidentnì s palcovými rozteèemi 2,54 mm, takže se mu krajní piny konektoru rozlézaly trochu do stran. Naštìstí u úhlového konektoru jsou piny docela flexibilní. Tak snad jsem tam neudìlal nìjakou botu, PCB design jsem akorát odeslal spolu s dalšíma deskama do JLCPCB...
schéma PCB layout 3D model PCB
11.11.2025 Dnes mi dorazila várka plošòákù z JLCPCB a tak jsem se hned pustil do osazování. Vìtšinu souèástek jsem našel doma v šuplíku, akorát FRB konektor jsem si musel vypájet z pùvodní desky pro ZX Spectrum a pøeházet na nìm piny. Na uvolnìní pinù z plastového tìla existuje speciální nástroj, ale ten nemám. S urèitou mírou násilí se dají vytahat kleštièkama, což ale nedìlá úplnì dobøe vnitøním stìnám otvorù v plastu. Následnì jsem dostal radu, že lze k vyndávání použít jednoduše ocelovou trubièku sundanou z jiného (už vyndaného) pinu, která se na pin v plastu zepøedu nastrèí, tím se zamáèknou 2 pružná køidélka trubièky uvnitø fungující jako zpìtné háèky a pak se dá pin snáze zezadu vytáhnout. Ještì jsem musel dokoupit 3,5mm jack zásuvku K3612D z GME, neb mi na ten footprint žádná z domácích zásob nepasovala.
FRB konektory plošòáky z JLCPCB osazený Melodik
15.11.2025 Na radioburze ve Strašnicích se mi poštìstilo koupit 5 FRB konektorù (2 úhlové samce, 1 pøímého samce a 2 pøímé samice) za rozumnou cenu, tak budu mít nìco do zásoby na konstrukce dalších karet.
2.1.2026 Vyzkoušel jsem alespoò základní funkcionalitu Melodiku ve své sestavì s JPR-1 pomocí pøíkazù in a out MikroBIOSu. Destièku jsem si najumperoval tak, že zápis do indexového registru se provádí na I/O adrese A1h a zápis/ètení dat na I/O adrese A0h. Nejprve jsem zkusil rozsvítit LEDky na 8-bitovém I/O portu A èipu AY-3-8912 (dolní 4 bity). K tomu je potøeba napøed pøekonfigurovat I/O A port do režimu výstupu nastavením bitu 6 v registru R7 a pak zapsat data do R14 (LEDky svítí pøi log. 0). Ledky se rozsvítily, takže dekodér adres a generování øídicích signálù BC1 a BDIR funguje.
Dále jsem zkusil vygenerovat nìjaké bzuèení pomocí 3 tónových generátorù. Do páru registrù R0, R1 se zapisuje hodnota 12-bitové dìlièky (L, H) pro kanál A, analogicky R2, R3 pro kanál B a R4, R5 pro kanál C. Aby bylo nìco slyšet, je potøeba nastavit 4-bitovou hodnotu hlasitosti (R8 - kanál A, R9 - kanál B, R10 - kanál C) - dolní 4 bity a zapnout tóny do kanálù v registru mixéru R7 (bit 0 - kanál A, bit 1 - kanál B, bit 2 - kanál C) hodnotou 0 pøíslušného bitu (1 je vypnuto). Taktéž je možno pøimixovat i šum, který má nastavitelnou "frekvenci". Nìjaké tóny jsem vyloudil, s nastavením obálky jsem si zatím nehrál. Podrobnìjší popis registrù je zde. Dalším cílem bude napsat jednoduchý pøehrávaè AY hudebních souborù, který bych uploadnul do RAMky pøes UART. Nìjaké kódy a utility jsou ke stažení zde a velká sbírka AY souborù zde.
Procesorová karta JPR-1V a IDE-1 øadiè pro SAPI
22.12.2025 Abych mohl na SAPI spustit univerzálnìjší OS CP/M, rozhodl jsem se postavit si moderní verzi procesorové karty JPR-1V s CPU Zilog Z80 @2/4 MHz od Libora. Tato karta umožòuje stejnì jako pùvodní karta JPR-1A odpojit boot ROM z adresního prostoru a využívat jej celý pro RAM. Zde je použita 8kB paralelní EEPROM typu 28C64, ze které se ale využívá pouze 4 kB a to ve dvou 2kB bankách (lze pøepínat jumperem BIOS).
K tomu jsem mìl už z loòska vyrobený plošòák na kartu øadièe IDE-1 rev. 2.1 založený na obvodu 8255. K øadièi lze též pøipojit emulátor disketové jednotky PMD 32-SD, který umožòuje mít na 1 SD kartì s FAT16 FS uloženo nìkolik image disket (až 4 pøipojené souèasnì). Bohužel jak jsem zjistil, tak nikdo nenapsal boot ROM/BIOS, který by umìl natáhnout CP/M z pøipojeného IDE disku, ale je možné bootovat pouze z image na PMD 32-SD, karty zálohovaného RAMdisku ZRD-1V èi ZRMD-1 nebo floppy øadièe a nic z toho zatím nemám, takže to bude ještì trnitá cesta...
osazování JPR-1V JPR-1V top JPR-1V top IDE-1 top
3.1.2026 Pro vyzkoušení základní funkce JPR-1V jsem nahrál do EEPROM Liborùv MikroMon 2k. Pokud je zasunutý jumper "BIOS", spouští se z EEPROM kód z adresy 0 a pokud je vytažený, tak z 800h. Také je potøeba mít zasunutou nìjakou RAM kartu, protože se MikroMon kopíruje na adresu F000h a odtud teprve bìží. Použil jsem 32kB kartu RAM-1. Na grafické kartì AND-1V je tøeba nastavit pamì�ovou adresu F800h. Do konektoru X2 jsem zapojil adaptér EKL-1 s PS/2 klávesnicí a MikroMon nabìhl na první dobrou.