1. Klávesnice

-------------

 Řídící klávesy

   ┌───┐  ┌───┐ Přeřazovač. Po dobu stisku platí další význam klá-

   │SHF│  │CNT│ kláves. SHiFt zpřístupňuje horní význam klávesy,

   └───┘  └───┘ CoNTrol dolní, stisk obou nemá význam.

 

          ┌───┐ ReSeT systému. Uplatní se pouze při současném

          │RST│ stisku klávesy CNT.

          └───┘

 

         ┌────┐ Uživatelská klávesa, přerušuje vykonávání povelů

         │STOP│ např. DUMP, MGLD, uplatní se zj. v uživatelských

         └────┘ programech.

 

          ┌───┐ Potvrzení příkazu, tj. odeslání příkazového řádku

          │EOL│ ke zpracování.

          └───┘

 

 Znakové klávesy

   ┌───┐  ┌───┐ generují ASCII kód příslušného znaku. Pro horní

   │ A │  │ Z │ význam nutno stisknout SHF, pro dolní CNT.

   └───┘  └───┘

 

 Editační klávesy

   ┌───┐  ┌───┐

   │<--│  │-->│ posuv kurzoru vlevo či vpravo o jeden znak

   └───┘  └───┘

   ┌───┐  ┌───┐

   │BGNL  │ENDL posuv kurzoru na začátek / konec řádku

   └───┘  └───┘

   ┌───┐  ┌───┐

   │<--│  │-->│ se SHiFtem posouvá obsah řádku vůči kurzoru

   └───┘  └───┘

   ┌───┐  ┌───┐

   │DELT  │INST zrušení / vložení znaku na pozici kurzoru

   └───┘  └───┘

   ┌───┐

   │CLL│ výmaz celého řádku

   └───┘

   ┌───┐

   │DELL výmaz řádku od kurzoru do konce

   └───┘

   ┌───┐

   │RCL│ opětné vyvolání naposled odeslaného řádku

   └───┘

   ┌───┐

   │C-D│ opětné vyvolání posledního chybového hlášení

   └───┘

   ┌───┐

   │WRK│ klávesa pro zápis do klíčů K0-K11

   └───┘

   ┌───┐ tzv. softwarové klíče /K0-K11/, pro každou klávesu lze

   │K10│ stiskem klávesy WRK nadefinovat text max. 80 znaků,

   └───┘ stiskem klíče se obsah vypíše do editačního řádku

   ┌───┐

   │PTL│ vypíná / zapíná opis odeslaného řádku do obrazovky

   └───┘

 

   ┌───┐

   │BEEP vypíná / zapíná akust. signalizaci stisku klávesy

   └───┘

   ┌───┐

   │CLS│ smaže obrazovku

   └───┘

   ┌───┐

   │INVR vypíná / zapíná inverzní zobrazování

   └───┘

   ┌───┐

   │MON│ předá řízení operačnímu systému, používá se pro výstup

   └───┘ z uživatelského programu - BASIC apod.

 

2. Obrazovka

------------

 Obrazovku tvoří část paměti označená jako VIDEORAM - ta je

 stále zobrazována na připojeném monitoru. Z byte paměti jsou

 viditelné pouze bity 0-5, bit videoram v log.1 bude na obra-

 zovce zobrazen jako svítící bod. Z jednotlivých bodů je takto

 složen celý obraz. /viz. Paměť počítače/

 Dialogový řádek

 Slouží pro zápis a editaci příkazů, u obou formátů zobrazení

 je umístěn na dolním okraji obrazu pod pracovní částí.

 Alfanumerický formát

 Zobrazuje 25 řádků po 48 znacích. Jsou-li řádky delší,

 systém automaticky přejde na další řádek, případně odroluje

 obrazovku o řádek vzhůru.

 Grafický formát

 Zobrazuje 256 řádků po 288 bodech. Pro zrychlení grafických

 operací si systém zúží obrazovku jen na 256 bodů, při používání

 služeb systému lze tedy přímo ovládat jen 256 bodů v řádku a

 243 řádků - systém ignoruje dialogový řádek. /INPOL, POINT/

   ┌─────────────────────────────────────────┬──────┬────┬──────┐

   │ F F   0. řádek alfanum. formát 48x25    │      │    │   F  │

   │ F  │  1. řádek                          │      │    │      │

   │    │                                    │      │    │      │

   │0.zn alfanum. formátu                    │      │      47.zn│

   │    │                                    │      │    │      │

   │    │                                    │      │    │      │

   │                                         │      │           │

   │    │                                    │      │    │      │

   │    │<───────────────────────────────────┼──────┼───>│      │

   │    │                                    │      │    │      │

   │      grafický formát                    │      │           │

   │    │        48x6=288 x 256   /255x243/  │      │    │      │

   │<───┼────────────────────────────────────┼──────┼────┼─────>│

   │    │                                    │      │    │      │

   │                                         │      │           │

   │    │  24. řádek                         v      │    │      │

   │    │  oddělovač alf. form. - 19 ř. TV rozkladu │    │      │

   ├────────────────────────────────────────────────┼───────────┤

   │      dialogový /editační/ řádek                v           │

   └────────────────────────────────────────────────────────────┘

 

 

3. Paměť počítače

-----------------

 Paměť slouží k uchování údajů nutných pro probíhající úlohu.

 V počítači MAŤO je osazeno celkem 64 kB paměti, z toho 32 kB od

 adresy 0000 až po 7FFF je RWM - obsah lze programově měnit, od

 adr. 8000 až BFFF je 16 kB EPROM - obsah lze změnit jen pomocí

 speciálního přípravku, zbytek C000-FFFF je opět RWM, část je

 použita pro zápisník sytému /systémové proměnné/ a zbytek

 obsluhuje vidoeprocesor jako VIDEORAM.

   0000H ┌──────────────────────────────────────────────┐

         │ zde pracuje interpret BASIC-G, pokud ho nech-│

         │ ceme využívat, lze i zde psát program        │

         ├──────────────────────────────────────────────┤ 23FFH

   2400H │                                              │

         │                                              │

         │ zde je nejvhodnější místo pro psaní programu │

         │                                              │

         │                                              │

         │                                              │ 7EFFH

   7F00H ├──────────────────────────────────────────────┤

         │ zásobník, buffer dial. ř., prog. klíče       │ 7FFFH

   8000H ├──────────────────────────────────────────────┤

         │ služby Monitoru, tab. tvarů znaků, tab. pří- │

         │ kazů, tab. obslužných kláves atd.            │ 8FFFH

   9000H ├──────────────────────────────────────────────┤

         │ oblast v EPROM pro doprogramování uživatelem │ 97FFH

   9800H ├──────────────────────────────────────────────┤

         │ interpreter jazyka BASIC-G, demonstrační     │

         │ program                                      │ BFFFH

   C000H ├──────────────────────────────────────┬───────┤

         │ VIDEORAM - toto je viditelná část    │systém.│

         │ paměti, pomocí níž Monitor zobrazuje │prom.  │ C1FFH

   C200H │      formát videoúdaje               ├───────┤

         │┌───┬───┬───┬───┬───┬───┬───┬───┐     │toto je│

         ││ D7│ D6│ D5│ D4│ D3│ D2│ D1│ D0│     │3kB úze│

         │└───┴───┴───┴───┴───┴───┴───┴───┘     │mí niko│

         │  │   │ │ │   │   │   │   │   │ │     │ho, pro│

         │  │   │ └ viditelné bity        ┘     │tože je│

         │  │   └── atribut polojasu            │nespoji│

         │  └────── atribut blikání             │té     │

   FFBFH └──────────────────────────────────────┴───────┘ FFFFH

 

4. Operační systém MONITOR

--------------------------

 je základní program trvale umístěný v pevné paměti /EPROM/

 počítače. Obsluhuje klávesnici, obrazovou paměť videoram,

 magnetofon, zajišťuje editaci dialogového řádku a provádění

 základních příkazů uživatele, o jejich průběhu podává uživateli

 hlášení v dialogovém řádku.

 Příkazy MONITORu

  SUB aaaa data - změna obsahu paměti, po odeslání platných dat

 se zobrazí přík. SUB s následující adresou,

 ukončuje se klávesou CLL

 MEM aaaa - zobrazení 16B paměti k editaci,příkaz samočinně

 přechází v příkaz SUB

 DUMP aaaa - výpis obsahu paměti hexadecimálně a ASCII,

 ukončí se klávesou STOP, pozastavit lze kl. SHF

 

 JUMP aaaa - start programu od zadané adresy, řízení plně

 přebírá spuštěný program, Monitor dále nezodpovídá

 za průběh činnosti !!!

 MGSV nn;aaaa-kkkk;jméno - zápis paměti do souboru na magnetofon

 MGLD nn - načtení souboru z magnetofonu do paměti, lze pře-

 rušit STOP, neshoduje-li se nn, čeká na další hlavičku

 MGEND nn - kontrola správnosti záznamu souboru na magnetofonu

 pracuje jako MGLD, ale soubor neuloží do paměti

 BASIC - spuštění vestavěného interpreteru jazyka BASIC-G

 JOB rrrrllllaaaa - přenos souboru z ROM-modulu připojeného na

 konektor K2 a spuštění daného souboru

 COPY - provede skok do neosazené části EPROM, pravděpodobně

 má sloužit pro uživatelem doprogramovanou rutinu

 GO - provede skok na začátek právě nahraného souboru,

 pracuje správně jen pro právě nahraný program !!!

 DEMO - načte do operační paměti Basic s demonstračním

 programem, lze jej spustit povelem Basicu RUN

 aaaa - počáteční /startovací/ adresa, čtyřmístná hexadecimální

 kkkk - koncová /poslední/ adresa

 llll - délka souboru zvýšená o 0100H

 nn - číslo souboru dvoumístné decimální 00-63, je-li nn=00,

 systém nn nebude rozlišovat

 jméno - text max. 8 znaků, je-li prvním znakem *, soubor se po

 načtení z magnetofonu spustí od adresy aaaa

 data - dvouciferná hexadecimální čísla, jednotlivá data lze

 oddělovat mezerami, případně lze zadávat celé řetězce

 ASCII uzavřené v apostrofech.

 Příklady

 SUB 61F0 3E41CD0085 C3 40 8C 'MATO'

 MGSV 07;0000-5FFF;*GAME

 Hlášení operačního systému a jejich adresy v paměti

 ++ NO COMMAND ++ 8392 - nejedná se o příkaz Monitoru

 ++ ERROR IN ADDRES ++ 8346 - chybná adresa aaaa

 ++ ERROR IN DATA ++ 8291 - chybně zadaná data

 ++ EXECUTIVE ++ 827D - systém plně předal řízení programu

 ++ MG STOP! ++ 8DB4 - soubor uložen, vypněte magnetofon

 ++ FILE ERROR ++ 835C - čtený soubor je chybný

 ++ READING OK ++ 8F93 - soubor byl vpořádku načten

 ++ MEMORY OVERFLOW ++ 837C - pro další klíč nestačí paměť

 ** OS READY ** 836D - Monitor potvrdil připravenost

 nn/? jméno C1B2 - načtena hlavička souboru, znak za lomítkem

 udává typ souboru /? monitor,> basic,K karel/

 Mimo standardní příkazy můžeme využívat řadu služeb operační-

 ho systému, které jsou dále popsány. V popisu je vždy pomocné

 návěští, volací adresa a stručný popis funkce služby systému.

 U nich jsou popsány potřebné vstupní údaje a výstupní údaje.

 Řada služeb po provedení akce zničí obsahy registrů. Registry,

 které se zničí, jsou uvedeny. Pokud uvedeny nejsou, ruší se

 všechny mimo SP,PC /tzn. BC,DE,HL,PSW/. Hexadecimální číslo je

 označeno jako HEX. Pro systémové proměnné, které monitor

 používá, jsou také zavedena návěští, a tyto jsou dále také

 popsány. Nákres rozdělení paměti Vám usnadní vytvořit si

 představu, kde se nachází videoram, kde je monitor a kde má

 proměnné a kam můžete psát svůj program.

 Systémové proměnné

 BUF C030 začátek bufferu dialogového řádku

 DIAL C032 začátek výpisu dial. řádku na obrazovce

 DLZRAD C034 konec bufferu dial. řádku

 DCUR C036 pozice kurzoru v bufferu

 RPOS C038 první vypisovaný znak z bufferu na obrazovku

 COLOR C03A atribut zobrazení

 BEEPPOS C03B pozice v bufferu pro pípnutí před koncem řádku

 CURSOR C03E adresa kurzoru na obrazovce

 SPVAL C070 adresa vrcholu zásobníku

 CURCH C072 nastavení při analýze bufferu

 MESS C074 začátek textu hlášení

 RETCLL C076 návratová adresa pro ENTER

 ODLOZ C078 adr. uložení textu po EOL v ENTER

 RETSP C07A adr. zásobníku pro návrat z ENTER

 SPEED C07C konstanta rychlosti čtení z magnetofonu

 ITABDIR C07E začátel tabulky příkazů monitoru

 TSRTAB C0B0 tabulka vektorů instalovaných ovladačů /driverů/

 SBEEP C0BF příznak pípnutí při stisku klávesy

 RAM C0F0 vektor modifikace MGLD, MGSV, MGEND

 IIROLL C0F4 počet posouvaných linek displeje

 RSIRRAD C0F5 počet mazaných linek

 POROLL C0F6 poslední řádek

 CURROLL C0F8 adresa psaní další řádky

 VYSKA C0FA

 ENLNW C0FB

 RADSIR C0FC rozteč řádků

 DLZR C0FE počet znaků pro výpis edit bufferu

 DLZP C0FF

 BEEDT C130 adr. tabulky standardního pípnutí pro BEEP

 KDIR C132 adr. tabulky adres podprogramů řídících kláves

 ASCII C134 znak načtený z klávesnice z INKLAV

 SWRK C135 příznak WRK

 MGCHAR C136 typ souboru pro MGSV, MGLD, MGEND

 SPTL C137 příznak PTL

 MONX C138 návratová adresa pro JUMP

 CDBUF C13A adr. C-D bufferu

 LSTR C13C

 STACK C13E místo pro odkládání ukazatele zásobníku

 X1 C170 souřadnice X počátečního bodu

 Y1 C172 Y poč. bodu

 X2 C173 X konc. bodu

 Y2 C174 Y konc. bodu

 DCUROLD C175

 DELKA C177

 OLDKEY C178 pomocná proměnná pro autorepeat klávesnice

 BCUR C17A ukazatel na testovaný byte videoram

 KEYEND C17C adresa klíčů

 KEYTOP C17E rádoby hranice paměti pro klíče

 FINDNR C1B0 požadované číslo souboru

 FINDTP C1B1 požadovaný typ souboru

 HEAD C1B2 tabulka hlavičky souboru

 NUMFIL C1B2 číslo souboru

 TYPFIL C1B3 typ souboru

 ADRFIL C1B4 adresa začátku dat souboru

 LENFIL C1B6 délka souboru - 1

 NAMFIL C1B8 8 znaků názvu souboru

 OCHR C1F1 pokus o ochranu souborů, * => chráněno

 POC C1F2

 VYSTUP C1F4

 MODIFY C1FA mód grafiky /nastavení, negace, mazání/

 OUTPOINTC1FE adresa pro styk s uživatelským programem

 

 Popis služeb operačního systému

 START 8000 vstupní bod po RESETu, studený start

 MON 803B vstup do MONITORu z uživatelského programu

 výst.: vstoupí do Monitoru a podá zprávu ** OS READY **

 MAIN 8054 vstup do hlavní smyčky MONITORu

 ROLL 8088 posun obrazu směrem vzhůru o 1 řádek

 vstup: IIROLL C0F4

 nelze použít s povoleným přerušením !!!

 HEX 80E0 vstupní hex konverze 4 bity

 vstup: A=ASCII převáděného znaku

 výst.: převede ASCII do hex

 CY= není to hex číslice /chyba/

 NC= je to hex číslice, A= 0..15

 PAIRIN 80F7 vstupní hex konverze 8 bitů

 vstup: HL= adr. textu - dvě hex číslice

 výst.: CY= chyba

 NC= správně převedeno, A=0..255

 zničí: HL, B, PSW

 ADRIN 8109 vstupní hex konverze 16 bitů

 vstup: HL= adr. textu - 4 hex číslice

 výst.: CY= chyba

 NC= správně, DE= 0..65535

 zničí: HL, DE, B, PSW

 PREVOD1 8125 výstupní hex konverze 8 bitů s výpisem

 vstup: A= 0..255

 výst.: volá PRTOUT 8500 - výsledek vypisuje na obrazovku

 zničí: B, PSW

 PREVOD2 813B výstupní hex konverze 8 bitů

 vstup: A= 0..255

 HL= adresa bufferu pro výstup - 2 znaky

 výst.: konverze A na adrese HL

 zničí: HL, B, PSW

 RADR 814B vstupní hex konverze 16 bitů s výpisem chyby

 vstup: CURCH C072= adresa textu

 výst.: NC= správně, DE= 0..65535

 CY= vypíše ++ ERROR IN ADDRES ++, skočí do MAIN

 CURPOS 815E výpočet adresy aktuálního znaku v edit. bufferu

 výst.: HL= adresa akt. znaku

 TEXTSP 81C5 přenos textu s doplněním mezer do počtu

 vstup: HL= text končící CR

 DE= buffer pro cílový text

 B = max. počet znaků

 výst.: přenese text, na konec doplní mezery

 pozn.: k přenosu hlavičky HEAD se použije TEXTHEAD 81C0

 INKLAV 84A1 načtení znaku z klávesnice s čekáním na stisk

 vstup: SBEEP C0BF = má / nemá při stisku klávesy puknout

 výst.: A= ASCII kód klávesy, volá SCAN 8C03

 zničí: PSW

 

 PRTOUT 8500 výpis znaku do obrazovky

 vstup: CURSOR C03E= pozice kurzoru, A= znak: 1C= cls,

 0D= nový řádek, 0A= ignorovat, 08= kurz. o pozici zpět,

 COLOR C03A= atribut výpisu znaku - polojas, blikání

 výst.: volá WRCHAR 854A

 zničí: PSW

 WRCHAR 854A rozkreslení znaku do displeje

 vstup: HL= adresa kurzoru 2 linky pod znakem

 A= kód znaku: netištitelný znak= vypíše šachovnici 95

 COLOR C03A= atribut výpisu znaku - polojas, blikání

 výst.: rozkreslí znak, nelze použít s povoleným přerušením !

 SYST1 8579 provedení příkazu Monitoru

 MODNEG 859F zapnutí/vypnutí inverzního tisku + výmaz obrazovky

 výst.: COLOR C03A, volá ERASE 85A7

 ERASE 8597 smazání obrazovky

 vstup: COLOR C03A= čím mazat

 výst.: volá SWIND 85B3

 SWIND 85B3 vymazání části obrazovky - okno

 vstup: HL= adr. kurzoru

 DE= konec nejvyšší mazané linky+1

 B= počet mazaných linek

 COLOR C03A= čím mazat, nelze použít s přerušením !!!

 RPOINT 85E6 test rozsvícení bodu obrazovky

 vstup: X1 C170, Y1 C172 = souřadnice bodu ve videoram

 výst.: Z, A=0 nesvítí

 NZ, A=1 svítí

 EDIT 8800 provedení změny v editačním řádku

 vstup: ASCII C134= kód znaku nebo povelu

 výst.: změněný editační buffer je vypsán na obrazovku

 WRLINE 8855 výpis editačního bufferu do dialogového řádku

 vstup: RPOS C038 první vypisovaný znak

 DIAL C032 pozice pro výpis na obrazovce

 DLZR C0FE počet znaků pro výpis

 PREVOD0 886B výstupní hex konverze 4 bity

 vstup: A= bity 0..3= číslo

 výst.: A= hex.

 BEEP 88A3 standardní pípnutí

 vstup: BEEDT C130 adresa tabulky pípnutí

 výst.: volá BELL 88A6

 BELL 88A6 generuje tóny podle tabulky

 vstup: HL= adresa tabulky /délka,výška,....,délka,výška,FF/

 výst.: zahraje melodii podle tabulky

 WAITS 88B5 čekací smyčka

 vstup: DE= zpoždění

 výst.: vykoná časové zpoždění

 zničí: DE

 XCUR 8A7D vykreslení/smazání kurzoru

 vstup: CURSOR C03E= pozice kurzoru

 

 PRTTEXT 8A89 pípnutí a tisk hlášení

 vstup: MESS C074= adr. textu hlášení ukončeného 0D

 DIAL= pozice dial. řádku na obrazovce

 výst.: provede výpis, volá BEEP /8A8C nezavolá BEEP/

 OCHRAN 8B1C ochrana proti prohlížení paměti

 vstup: OCHR C1F1= kód ochrany, 2A= chráněno

 výst.: je-li paměť chráněna, smaže celou paměť a provede

 reset systému. Tato služba je volána po resetu, takže

 již spuštěný chráněný program je resetem vymazán

 ERROR 8B31 výpis chybového hlášení

 vstup: MESS C074= adr. textu

 ENDLN 8B46 vyhledání posledního znaku v editačním bufferu

 vstup: DLZRAD C034= konec textu

 výst.: HL= adresa posledního platného znaku

 ENTER 8BEE vstup řádky s editací

 vstup: RETCLL C076= návrat po EOL

 ODLOZ C078= adr. uložení textu po EOL

 RETSP C07A= adr. odložení zásobníku

 výst.: volá INKLAV 84A1, zajišťuje správnou korespondenci

 mezi uživatelským programem a Monitorem. Umožňuje

 odložení vrcholu zásobníku, vlastní nastaví na 7FFF

 SCAN 8C03 letmý test klávesnice

 výst.: Z= nic není stisknuto, A=00

 NZ, A= kód stisknuté klávesy

 DOKEY 8C43 provedení změny v editačním bufferu

 vstup: ASCII C134 řídící nebo grafický znak

 výst.: změněný text v bufferu

 STOP 8C74 test klávesy STOP

 výst.: Z, A=03 STOP stisknuto

 NZ, A=40 STOP nestisknuto

 POINT 8C7D vykreslení bodu v daném grafickém módu

 vstup: X1 C170, Y1 C172 = souřadnice bodu

 MODIFY C1FA= mód zobrazení /AB negace, AF zhášení,

 B0 rozvěcování/, COLOR C03A= atribut /barva/

 výst.: vykreslí bod vypočtený ze zadaných souřadnic vzhledem  ke strojové nule C000

 zničí: PSW

 POSPOINT8C94 výpočet adresy v displeji+ bitová maska vykreslení

 vstup: L= souřadnice X, H= souřadnice Y

 výst.: HL= adresa byte v displeji

 B= bitová maska (1,2,4,8,10,20,40,80)

 TAPEOUT 8D6C zápis bloku dat na magnetofon

 vstup: HL= začátek dat

 DE= počet byte-1

 výst.: zapsaný blok dat

 LOAD 8DC2 načtení bloku dat z magnetofonu

 vstup: HL= adresa kam ukládat

 DE= počet byte-1

 výst.: Z= blok dat v paměti je vpořádku načten

 NZ= chyba při čtení nebo bylo stisknuto STOP

 zničí: DE, BC, PSW

 

 SHEAD 8DE2 vyhledání a načtení souboru z magnetofonu

 vstup: FINDNR C1B0, FINDTP C1B1= číslo, typ hledaného souboru

 RAM C0F0 modifikace údajů po načtení hlavičky

 výst.: HEAD C1B2= hlavička nalezeného souboru

 C,NZ= chyba, vypíše ++ FILE ERROR ++

 NC,Z= správně načteno, vypíše ++ READING OK ++

 při nalezení jiného souboru vypíše jméno, hledá dál

 volá LOAD 8DC2, ERROR 8B31

 DECPAR 8E3E načtení čísla souboru

 výst.: načte číslo souboru, převede ho na dekadické číslo

 BINBCD 8E73 konverze BCD kódů na binární

 vstup: A= BCD kód

 výst.: A= binární kód

 zničí: HL, B, PSW

 SYNC 8EBE načtení synchrosměsi pro čtení dat z magnetofonu

 výst.: zasynchronizování systému pro HEADIN 8EE4

 HEADIN 8EE4 načtení hlavičky souboru

 výst.: HEAD C1B2= hlavička souboru

 OUTSYNC 8F2D zápis synchrosměsi před hlavičkou na magnetofon

 DTSYNC 8F38 zápis synchrosměsi pro zápis dat na magnetofon

 PRGOUT 8F60 zápis bloku dat do souboru na magnetofon

 vstup: HEAD C1B2= číslo, typ, počátek, délka, název

 RAM C0F0= modifikace zápisu po uložení hlavičky

 TRANSFER8FA4 načtení bloku dat z ROM modulu připojeného na K2

 vstup: parametry se ukládají v programu těsně za voláním  služby CALL TRANSFER : adresa začátku v ROM modulu,  počet čtených byte-1, adresa uložení v RAM

 SSKIP 8FB1 přeskočit mezery v textu

 vstup: HL= adresa textu

 výst.: HL= adresa textu za mezerami

 

6. Popis vybraných tabulek Monitoru

-----------------------------------

 80D2 definice standardního pípnutí pro BEEP, končí FFH

 80F4 definice puknutí při stisku klávesy, končí FFH

 8089 definice melodie při resetu systému, končí FFH

 8231 inicializační data - přenáší se do oblasti zápisníku

 83F2 mapování kódů klávesnice

 82B2 tabulka podprogramů editačních kláves, končí 00H

 82EC tabulka příkazů Monitoru, končí FFH

 8600 tabulka tvarů znaků s kódy 20H-5FH, končí FFH

 88B8 tabulka tvarů znaků s kódy 60H-7FH

 

5. Převodní tabulka adres služeb mezi PMD 85-1,2 -> Maťo

 Jsou zde uvedeny pouze ty nejpodstatnější.

 Návěští 85-1 85-2 Maťo charakteristika

 MONIT 8C40 805A 8054 vstup do monitoru

 ROLL ---- 808E 8088 posun obrazu o 1.ř

 

 TEXTHEAD ---- 81D8 81C0 přenos hlavičky souboru

 TEXTSP ---- 81DD 81C5 přenos textu s doplněním mezer

 BECLR ---- 81EE 8170 vypnout pukání klávesnice

 JUMP 81F5 81F5 81D6 povel JUMP

 DUMP 8205 8205 81E6 povel DUMP

 KEYMAP ???? 82D0 83F2 tab. kódů kláves

 XCHUR ???? 8481 8A7D vykreslení/smazání kurzoru

 WRK ---- 8493 83C1 příznak zápisu do klíčů

 PTL 8499 8499 83C7 příznak rolování dial. řádku

 LEADER ???? 886B 8F2D inicializace I/O

 HOME ???? 8880 85F6 nastavení kurzoru na 1. znak

 PRE00 ---- 8888 886B výst. konverze 4.bity

 SCAN ---- 89C0 8C03 ohmatá klávesnici

 DECPAR ---- 8A54 8E3E načtení čísla souboru

 BYTE ???? 8B6C 8EFA načtení byte z magnetofonu

 MGLD ???? 8B9C 8873 povel MGLD

 MGEND ???? 8BA0 8879 MGEND

 WAITS 88B5 8BCB 88B5 časová smyčka

 OCHRAN ---- 8BD8 8B1C pokus o ochranu

 TRANSFER 8C00 8C00 8FA4 přenos z ROM modulu z K2

 MGOUT ???? 8D7E 8DA2 zápis byte na MG

 ERROR ???? 8E43 8B31 výpis ch. hlášení do dial.

 ENDLN ---- 8E5D 8B46 vyhledání konce textu

 I/O INI 8F4F 8F4F 8C6B nastavení interf. desky

 JOB ???? 8F94 8FD7 povel JOB

 Adresy ostatních podprogramů jsou shodné nebo chybí.

 

5. Porty a přípojná místa počítače

----------------------------------

 Zobrazovací jednotka /K4/

 Jako zobrazovací jednotka se k počítači použije běžný TV  přijímač. Počítač generuje úplný televizní signál modulovaný na  nosný signál v televizním pásmu VHF - 9. kanál. Anténní vodič  televizoru zapojíme do konektoru K3 počítače a televizor  naladíme na 9. kanál. Videoprocesor je v počítači MAŤO zapojen

 napevno, žádná programová modifikace jeho vlastností není  možná. Zápis informace pro zobrazení se provádí jako přímý  zápis do dané části paměti /viz. Obrazovka, Paměť počítače/

 Vnější paměť - magnetofon /K3/

 Počítač je vybaven přípojkou pro vnější paměť - magnetofon,  obvykle běžný kazetový, lze však použít i jiný typ magnetofonu.

 Propojovací šňůru magnetofonu zapojíme do konektoru K4  počítače, tím je počítač připraven pro spolupráci s  magnetofonem pomocí standardních příkazů MONITORu. Někdy se  vyskytne závada, kdy soubor uložený na magnetofonu nelze  načíst do počítače. Vyloučíme-li běžné příčiny, jako např.  poškozený mgf pásek, znečištěná snímací hlava mgf nebo špatně  nastavená kolmost snímací hlavy, pak se nejspíše jedná o  převrácenou polaritu přiváděného signálu z magnetofonu. Pomoc  spočívá v prohození vodičů 2,3 propojovací šňůry na straně  počítače, vývod 1 odpojíme. Tuto šňůru lze použít pouze pro  čtení z magnetofonu do počítače, nicméně se hodí ji mít po ruce  pro případ, že dostaneme kazetu, která byla nahrána na jiném  typu magnetofonu - tehdy nejčastěji dochází k převrácení  polarity signálu, s kterým si pak počítač neumí poradit.

 Magnetofon je obsluhován pomocí systémového portu F6.

 

 2 2

          ┌──────────────  GND              ┌──────────────  GND

     ┌────┼────┐                       ┌────┼────┐

   1 │  \   /  │ 3                   1 │  \   /  │ 3

   ┌─┼──  K3 ──┼─────────  DATAIN    ┌─┼──  K4 ─ │

   │ └─────────┘                     │ └─────────┘

   └─────────────────────  DATAOUT   └─────────────────────  TVOUT

 

 Klávesnice

 je připojena pomocí systémových portů F4, F5, F6.

 Klávesy SHF, CNT, STOP, EOL jsou připojeny samostatně a lze

 tedy jejich stav snímat z portu. Klávesa RST je připojena

 odlišným způsobem a její stav snímat nelze. Ostatní klávesy

 jsou zapojeny v matici, takže pro načtení jedné klávesy je

 nutné nejprve zakázat řady matice, v kterých se klávesa

 nevyskytuje a poté číst sloupec, v kterém se klávesa nachází.

 Reproduktor

 slouží ke generování akustických návěští, melodií, pazvuků

 apod. Je připojen na systémový port F6, a proto můžeme bězným

 způsobem nastavit jen dva stavy. Tón se generuje jako rychlé

 přepínání mezi těmito stavy. Tímto způsobem je zapojen

 i výstup dat na magnetofon, je možné generovanou melodii

 zavádět jak na vestavěný reproduktor, tak současně i na

 výstup pro magnetofon, kam potom místo magnetofonu můžeme

 připojit zesilovač pro hlasitější poslech generovaných

 melodií.

 Systémový port a obsluha připojených zařízení

 Systémový port je realizován obvodem INTEL 8255A, který

 obsahuje tři osmibitové brány /PA,PB,PC/ a řídící registr

 /CWR/ určující režim vstupu/výstupu jednotlivých bran.

 PA výstupní / adresa F4

 zápisem log.1 na některý bit zakážeme čtení dané řady kláves,

 zapíšeme-li na některý bit log.0, vybereme tím danou řadu

 kláves ke čtení. U jednotlivých bitů jsou vypsány klávesy

 připojené v dané řadě a konstanta, kterou vybíráme danou řadu.

   ┌───┬───┬───┬───┬───┬───┬───┬───┐

   │PA7│PA6│PA5│PA4│PA3│PA2│PA1│PA0│

   └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘

     │   │   │   │   │   │   │   └─ FEH  1  2  3  4  5  6  7

     │   │   │   │   │   │   └───── FDH  Q  W  E  R  T  Z  U

     │   │   │   │   │   └───────── FBH  A  S  D  F  G  H  J

     │   │   │   │   └───────────── F7H  Y  X  C  V  B  N  M

     │   │   │   └───────────────── EFH  =  0  ^  8  ,  K  I

     │   │   └───────────────────── DFH  P  ?  +  9  .  L  O

     │   └───────────────────────── BFH up dn spc @  «  »  *

     └───────────────────────────── tento bit je nezapojen

 

 PB vstupní / adresa F5

 přečtením bytu a vymaskováním daného bitu přečteme stav

 klávesy připojené v daném sloupci. U jednotlivých bitů jsou

 vypsány klávesy v daném sloupci a konstanty, kterým je roven

 stav načteného byte, pokud povolená klávesa v daném sloupci

 byla stisknuta.

 

 

   ┌───┬───┬───┬───┬───┬───┬───┬───┐

   │PB7│PB6│PB5│PB4│PB3│PB2│PB1│PB0│

   └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘

     │   │   │   │   │   │   │   └─ FEH  1  Q  A  Y  =  P  dn

     │   │   │   │   │   │   └───── FDH  2  W  S  X  0  ?  up

     │   │   │   │   │   └───────── FBH  3  E  D  C  ^  + spc

     │   │   │   │   └───────────── F7H  4  R  F  V  8  9  *

     │   │   │   └───────────────── EFH  5  T  G  B  ,  .  «

     │   │   └───────────────────── DFH  6  Z  H  N  K  L  »

     │   └───────────────────────── BFH  7  U  J  M  I  O  *

     └───────────────────────────── 7FH  EOL se nevybírá v matici

 

 Příklad načtení klávesy M

 MVI A,F7 vybrání /povolení/ řady kláves obsahující M

 OUT F4 vyslat na port řad matice klávesnice F4

 IN F5 přečtení sloupců z portu F5

 CPI BF porovnat, zda byla stisknuta klávesa ve sloupci s M

 JZ bylo stisknuto

 nebo

 ANI 40 vymaskovat 6. bit sloupce s klávesou M

 JZ bylo stisknuto, tento druhý způsob je lepší, protože test

 není ovlivněn stiskem více kláves současně

 PCL výstupní PCH vstupní / adresa F6

   ┌───┬───┬───┬───┼───┬───┬───┬───┐

   │PC7│PC6│PC5│PC4│PC3│PC2│PC1│PC0│

   └─┬─┴─┬─┴─┬─┴─┬─┼─┬─┴─┬─┴─┬─┴─┬─┘

     │   │   │   │   │   │   │   │

     │   │   │   │   │   │   │   └─ výstup dat na magnetofon

     │   │   │   │   │   │   └───── výst. na vestavěný repro.

     │   │   │   │   │   └───────── nezapojeno, možno vyvést na K2

     │   │   │   │   └───────────── přepíná polaritu signálu z mgf

     │   │   │   └───────────────── klávesa STOP /aktivní v log.0/

     │   │   └───────────────────── klávesa  SHF

     │   └───────────────────────── klávesa  CNT

     └───────────────────────────── čtení dat z magnetofonu

 

 Příklad načtení klávesy STOP

 IN F6 načtení portu F6

 ANI 10 vymaskovat bezvýznamné bity, zbude jen bit 4

 JZ byl STOP

 Příklad gerování tónu na výstupu mgf a repro najednou

 LXI B,0020 délka tónu

 *01:

 LXI D,0400 výška tónu /zpoždění/

 CALL WAITS zavolat službu vykonající zpoždění

 IN F6 sejmout stav výstupního portu

 XRI 03 invertovat bity 0 a 1

 OUT F6 vyslat nový stav na port

 DCX B snížit BC o 1

 MOV A,B test BC na nulu

 ORA C

 JNZ *01 není-li BC=0, generuje se dále

 JMP MON návrat do monitoru

 CWR řídící registr systémového portu / adresa F7

 viz. obvod 8255

 

 Aplikační konektor K2

 slouží k připojování dalších vstupních a výstupních zařízení  k počítači MAŤO. Obsahuje úplnou datovou sběrnici, vybrané bity  adresové sběrnice, vstup pro hardwarové přerušení, výstup hodin  počítače, externí reset a body pro možnost napájení připojeného

 zařízení z počítače. Pomocí tohoto konektoru můžeme připojit  např. externí paměť, diskovou jednotku, interface pro připojení

 tiskárny, joysticku apod.

 

   ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐

   │GND│+5V│-5V│12V│xRD│ A0│ A1│ A7│ A6│ A4│ A3│ A2│CLK│ D6│ NC│

   ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤

   │GND│+5V│-5V│12V│ A5│xWR│RST│ D0│ D1│ D2│ D3│ D4│ D5│INT│ D7│

   └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

 

 GND společný bod, 0V

 +5V vývod napětí zdroje +5V, max. odběr 100 mA

 -5V napětí zdroje -5V, max. odběr 15 mA /nedoporučuji používat/

 12V napětí zdroje +12V, max. odběr 30 mA

 A0-A7 nižší bity adresní sběrnice pro adresaci I/O zařízení

 D0-D7 bity datové sběrnice pro přesun dat mezi zařízením a CPU

 xWR signál mikroprocesoru /CPU/ pro zápis dat do zařízení /OUT/

 xRD signál CPU pro načtení dat ze zařízení /IN/

 INT vstup přerušení CPU, nepřipojen je v log. 0 /viz. CPU/

 CLK výstup hodin /taktovací kmitočet/

 NC nezapojen, můžeme přes rezistor 180R vyvést bit PC2 sys.

 RST externí reset systému

 x- označení negovaného signálu /aktivní v log. 0/

 

6. Připojení dalších zařízení

-----------------------------

 Chcete-li připojovat další zařízení, jste jistě zkušenější  uživatel, proto Vám doporučuji následující úpravy počítače,  které zlepší jeho funkci.

 1. zapojte propojku mezi vývod INT /14 mikroprocesoru a  rezistor R16 dle schematu počítače. Toto má být zapojeno,  skutečnost je taková, že veškeré počítače, které jsem dostal do  opravy toto propojené neměly. Tím zůstává vstup přerušení  mikroprocesoru "v luftě", což způsobuje nahodilé hroucení  systému při spuštění jiného program než je BASIC.

 2. Citlivost klávesnice zlepšíte zvětšením rezistorů R27-R37 z  11k na 120k.

 3. Vodivost nevodivého "vodivého" elastomeru klávesnice  zlepšíte vlepením kolečka z pečlivě vyrovnaného alobalu na  plochu "vodivého" elastomeru v tlačítku. Kolečko vyrobíte  pomocí kancelářské děrovačky. K vlepení do tlačítka použijte  Chemopren. Vyjmuté tlačítko s vlepeným kolečkem alobalu  zasadíte zpět do klávesnice a z druhé strany zcela lehce  zakápnete Purocelem.

 Paralelní interface

 Využije se pro připojení tiskárny, zapisovače, joysticku ap.

 Z mnoha variant je nejefektnější konstrukce interface s obvodem

 INTEL 8255A. Ke konstrukci potřebujeme univerzální desku  plošných spojů, konektor FRB 30 pin /2x, samec,samice/,  spojovací vodiče, obvod 8255 - vhodný je NEC 8255AC, MHB 8255,

 KR 580NB 55, a obvod 7400 - MH 7400, SN 7400 /bude sloužit jako

 invertor pro připojení zařízení s nestandardními řídícími  signály/. Obvod 8255 se připojí přímo na sběrnice počítače přes

 konektor K2 počítače Maťo. Důležité je správné propojení  adresních a výběrových signálů, aby nedocházelo ke kolizím na  sběrnici počítače. Uvedené zapojení toto splňuje, navíc adresy  portů interface jsou zvoleny tak jako u počítače PMD-85 a to  pro obě rozhraní PMD-85 /GPIO 4CH-4FH, IMS-2 7CH-7FH/, tj. pro  adresaci interface lze využít dvojího adresování. V nových námi  psaných programech použijeme vyšší adresu /7CH-7FH/, nižší  adresa by mohla způsobit kolizi při připojení více zařízení na  sběrnici, to však v našem případě není možné. Akceptování  nižší adresy je výhodné, protože programy z PMD-85 není nutné  upravovat a též je možné využít povely jazyku BASIC. /kanál 7  IMS-2 se potom chová stejně jako kanál 4, jenom není invertován  výstup dat/. Pro toto zapojení jsou psány i mé programy, tj.  bude správně fungovat joystick ap./2/ Konektor interface budeme

 nazývat K5.

 

 Adresy: PA 7CH /4CH/, PB 7BH /4BH/, PC 7DH /4DH/, CWR 7FH/4FH/

 Tabulka instrukcí PIO

 Mód 0 /všechny brány/ Mód 1 /handshake/ pouze

 v PA /+PC3-7/ a PB /+PC0-PC2/

 CWR PA PB PCl PCh CWR PA PB PCi

 80H out out out out A0H out ... PC7=xOBF PC6=xACK PC3=INTa

 81H out out out in

 82H out in out out B0H in ... PC4=xSTB PC5=IBF PC3=INTa

 83H out in out in

 88H out out in out 84H ... out PC1=xOBF PC2=xACK PC0=INTb

 89H out out in in

 8AH out in in out 86H ... in PC2=xSTB PC1=IBF PC0=INTb

 8BH out in in in

 90H in out out out + kombinace s módem 0

 91H in out out in

 92H in in out out

 93 in in out in

 98H in out in out

 99H in out in in

 9AH in in in out

K2 K5

       ┌──────────────────────────────────────────────────── PB7

       │ ┌────────────────────────────────────────────────── PB6

       │ │ ┌──────────────────────────────────────────────── PB5

       │ │ │ ┌────────────────────────────────────────────── PB4

       │ │ │ │ ┌──────────────────────────────────────────── PB3

       │ │ │ │ │ ┌──────────┐

       │ │ │ │ └─┤          ├─────────────────────────────── PB2

       │ │ │ └───┤          ├─────────────────────────────── PB1

       │ │ └─────┤          ├─────────────────────────────── PB0

       │ └───────┤          ├─────────────────────────────── PC3

       └─────────┤          ├─────────────────────────────── PC2

+5V ──┬──────────┤+Ucc      ├─────────────────────────────── PC1

 D7 ──X──────────┤          ├─────────────────────────────── PC0

 D6 ──X──────────┤          ├─────────────────────────────── PC4

 D5 ──X──────────┤   8255A  ├─────────────────────────────── PC5

 D4 ──X──────────┤          ├─────────────────────────────── PC6

 D3 ──X──────────┤          ├─────────────────────────────── PC7

 D2 ──X──────────┤        A0├─────────┐

 D1 ──X──────────┤        A1├───────┐ │

 D0 ──X──────────┤       GND├─────┐ │ │

RST ──X──────────┤RESET   CS├───┐ │ │ │

xWR ──X──────────┤IOWR  IORD├─┐ │ │ │ │

      │  ┌───────┤          ├─X─X─X─X─X───────────────────── PA0

      │  │ ┌─────┤          ├─X─X─X─X─X───────────────────── PA1

      │  │ │ ┌───┤    ┌┐    ├─X─X─X─X─X───────────────────── PA2

      │  │ │ │ ┌─┤    ││    ├─X─X─X─X─X───────────────────── PA3

      │  │ │ │ │ └────┴┴────┘1│ │ │ │ │

      │  │ │ │ └──────────────X─X─X─X─X───────────────────── PA4

      │  │ │ └────────────────X─X─X─X─X───────────────────── PA5

      │  │ └──────────────────X─X─X─X─X───────────────────── PA6

      │  └────────────────────X─X─X─X─X───────────────────── PA7

      │                       │ │ │ │ │

      │                       │ │ │ │ │ ┌─────┬───────────── +5V

xRD ──X───────────────────────┘ │ ├─X─X─X─────X────────┬──── GND

 A7 ──X─────────────────────────┘ │ │ │ │     │        │

GND ──X───────────────────────────┘ │ │ │    ┌┴┴┴┴┴┴┴┐ │

 A1 ──X─────────────────────────────┘ │ │    ├─ 7400 │ │

 A0 ──X───────────────────────────────┘ │   1└┬┬┬┬┬┬┬┘ │

      └─────────────────────────────────┘     └┤│   └──┘

                                               │└─────────── XOU

                                               └──────────── XIN

 

 Konektor interface K5

   ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐

   │GND│+5V│XIN│PA6│PA4│PA2│PA0│PC6│PC4│PC2│PC0│PB1│PB3│PB5│PB7│

   ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤

   │GND│+5V│XOU│PA7│PA5│PA3│PA1│PC7│PC5│PC3│PC1│PB0│PB2│PB4│PB6│

   └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

 

 PA0-PA7 vstupně/výstupní brána A XIN vstup invertoru

 PB0-PB7 vstupně/výstupní brána B XOU výstup invertoru

 PC0-PC7 vstupně/výstupní brána C

 

 Konektory PMD-85 pro úpravu zapojení pro Maťo

 PMD-85 zezadu

   ┌─────────────────────────────────┐

   │ 1.  2.      3.   4.   5.      6.│  Význam signálů je stejný

   │┌─┐ ┌─┐ ┌─────┐┌───┐┌───┐┌──────┐│  jako u interface pro Maťo

   │└─┘ └─┘ └─────┘└───┘└───┘└──────┘│

   └─────────────────────────────────┘

 

 5. GPIO AC /adr. 4C+4E, kanál 4/

   ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐

   │XOU│xIN│XoU│REV│PC6│PC4│PA0│PA2│PA4│PA6│

   ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤

   │GND│xOU│XIN│XiN│PC7│PC5│PA1│PA3│PA5│PA7│

   └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

 REV - ovládání směru toku dat, log.0=PAvstup

 4. GPIO BC /adr. 4D+4E, kanál 4/

   ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐

   │XOU│xIN│XoU│REV│PC2│PC0│PB0│PB2│PB4│PB6│

   ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤

   │GND│xOU│XIN│XiN│PC3│PC1│PB1│PB3│PB5│PB7│

   └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

 

 3. IMS-2 /adr. 7C-7E, kanál 7/

   ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐

   │PC2│ NC│ NC│GND│PA3│PA2│PC0│PC5│PA1│PC7│PA7│ ? │PA4│ NC│ NC│

   ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤

   │ NC│PC1│PC3│GND│ NC│PB5│PB7│ NC│ NC│ NC│PA0│PA6│PA5│ NC│ NC│

   └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

 

 6. Aplikační konektor

 Měl by se chovat stejně jako K2 počítače Maťo, má však  prohozené signály D6 a INT !!!.

 Joystick pro interface Maťo

 Použijeme libovolný joystick s alespoň 5-ti spínanými

 kontakty. K interface ho připojíme dle schematu. Obvod

 je vhodné zapojit uvnitř mechanizmu joysticku.

               ┌───┬───┬───┬───┬───────────────────   +5V

           5x 8k2

           5x 10k

   DOWN  ─┴─   │   │   │   │   │

       ┌─   ───┴───X───X───X───X───────   ─────────   PA0

     UP│ ─┴─       │   │   │   │

       ├─   ───────┴───X───X───X───────   ─────────   PA1

  RIGHT│ ─┴─           │   │   │

       ├─   ───────────┴───X───X───────   ─────────   PA2

   LEFT│ ─┴─               │   │

       ├─   ───────────────┴───X───────   ─────────   PA3

   FIRE│ ─┴─                   │

ize:8.0pt;        ├─   ───────────────────┴───────   ─────────   PA4

       │       ┌───────────────────────────────────   PA5

       │       │   ┌───────────────────────────────   PA6

       │       │   │   ┌───────────────────────────   PA7

       │               

       │               

       │       │   │   │  3x 18k

       └───────┴───┴───┴───────────────────────────   GND

 X- křížení vodičů

 Ovládání

 1. Naprogramování interface

 3E 92 MVI A,92H Basic: OUT '7F,'92

 D3 7F OUT 7FH nebo CONTROL 7,3,146

 2. Test přítomnosti joysticku

 DB 7C IN 7CH Basic: IF INP('7C)='1F THEN je přítomen

 FE 1F CPI 1FH

 Z -joystick je přítomen

 NZ -joystick není přítomen

 3. Snímání stavu /princip viz. klávesnice/

 DB 7C IN 7CH Basic:

 E6 10 ANI 10H bit FIRE A=BIT STATUS('7C),5

 IF A=0 THEN bylo stisknuto FIRE

 Z -bylo stisknuto FIRE

 NZ -nebylo stisknuto FIRE

 

 Tiskárna BT-100

 K obsluze tiskárny je nutný obslužný program.

 Pro obsluhu pomocí mého programu zapojte tiskárnu dle schematu.

 Údaje v závorkách platí pro kazetopáskovou jednotku SP 210.

 K6

               ┌───────────────────────────────────────   GND

               │    psací hlava

   ┌────────┐  │  ┌────────────────────────────────────   PA0

   │      ┌─┼──┼──┼─┐

   │      │ └\   /┘ │     ┌────────────  PA2 /SP 210T/

   │    ┌─┼── I N ──┼─────┘

   │    │ │ ┌/   \──┼──────────────────  PA3 /SP 210T/

   │    │ └─┼───────┘ posun papíru

   │    │   └──────────────────────────────────────────   PA4

   │    │      posun hlavy doprava

   │    └──────────────────────────────────────────────   PA5

   │            posun hlavy doleva

   └───────────────────────────────────────────────────   PA7

 

               ┌───────────────────────────────────────   GND

               │

   ┌────────┐  │  ┌────────────────────  PA6 /SP 210T/

   │      ┌─┼──┼──┼─┐       snímač posuvu papíru

   │      │ └\   /┘ │     ┌────────────────────────────   PC4

   │    ┌─┼── OUT ──┼─────┘ snímač souřadnic bodů

   │    │ │ ┌/   \──┼──────────────────────────────────   PC6

   │    │ └─┼───────┘       snímač synchronizace

   │    │   └──────────────────────────────────────────   PC7

   │    │                   snímač dorazu vozíku

   │    └──────────────────────────────────────────────   PC5

   │

   └───────────────────────────────────  PA1 /SP 210T/

 

 Tiskárna Gamacentrum 01

 Obsluhuje se pomocí programu.

 K6

 snímač polohy

           ┌───────────────────────────────────────   PB4

           │            hlava 2

   ┌────┐  │  ┌────────────────────────────────────   PC7

   │  ┌─┼──┼──┼─┐

   │  │ └\   /┘ │     ┌────────────────────────────   GND

   │  ┼ ─ OUT ──┼─────┘ posun papíru

   │  │ ┌/   \──┼──────────────────────────────────   PC6

   │  └─┼───────┘       posun vozíku

   │    └──────────────────────────────────────────   PC4

   │                    hlava 1

   └───────────────────────────────────────────────   PC5

 

 Tiskárna Consul 2111, 2112, 2113 /Zbrojovka Brno

   A ──────────────────────────────────────────────   PB0

   B ──────────────────────────────────────────────   PB1

   C ──────────────────────────────────────────────   PB2

   D ──────────────────────────────────────────────   PB3

   E ──────────────────────────────────────────────   PB4

   F ──────────────────────────────────────────────   PB5

   G ──────────────────────────────────────────────   PB6

   H ──────────────────────────────────────────────   PB7

   M ──────────────────────────────────────────────   PC

   K ──────────────────────────────────────────────   XOU

                                                ┌──   XIN

                                                └──   PC

   I,J,L,P,T,V ────────────────────────────────────   GND

 

 Tiskárna D100 /dovoz PLR

   D0 ─────────────────────────────────────────────   PB0

   D1 ─────────────────────────────────────────────   PB1

   D2 ─────────────────────────────────────────────   PB2

   D3 ─────────────────────────────────────────────   PB3

   D4 ─────────────────────────────────────────────   PB4

   D5 ─────────────────────────────────────────────   PB5

   D6 ─────────────────────────────────────────────   PB6

   D7 ─────────────────────────────────────────────   PB7

   xSTB ───────────────────────────────────────────   PC

   xACK ───────────────────────────────────────────   PC

   GND ────────────────────────────────────────────   GND

 

 Tiskárna PRT 80 GS /dovoz MLR

 Plotter DIDAKTIK Z2 /Didaktik Skalica

   D0 ─────────────────────────────────────────────   PB0

   D1 ─────────────────────────────────────────────   PB1

   D2 ─────────────────────────────────────────────   PB2

   D3 ─────────────────────────────────────────────   PB3

   D4 ─────────────────────────────────────────────   PB4

   D5 ─────────────────────────────────────────────   PB5

   D6 ─────────────────────────────────────────────   PB6

   D7 ─────────────────────────────────────────────   PB7

   xSTROBE ────────────────────────────────────────   PC

   BUSY ───────────────────────────────────────────   XIN

                                                ┌──   XOU

                                                └──   PC

   GND ────────────────────────────────────────────   GND

 

 

 

 Připojení monitoru

 Můžeme připjit monitor videosignálu - obvykle TV přijímač s  videovstupem, nebo monitor, který zpracovává obrazové signály  odděleně /jas+synchro/.

 Výstup pro monitor videosignálu

 zapojíme nejlépe na vývod č.3 konektoru K4. Signál odebíráme z

 vývodu č.6 obvodu U11/3 - na konektor ho zavedeme přes rezistor

 390R. Případný výstup audiosignálu odebíráme z vývodu č.16  obvodu U36 přes rezistor 22k, vhodné je zapojit ho na vývod 5  konektoru K4.

 2

            ┌──────────────  GND

            │  ┌───────────  AUDIOOUT

       ┌────┴──┼─┐

     1 │  \   /┘ │ 3

     ┌─┼──  K4 ──┼─────────  VIDEOOUT

     │ └─────────┘

     └─────────────────────  TVOUT

 

 Výstup pro klasický monitor

 /po úpravě synchronizačních kmitočtů je možné použít i monitory  od počítačů PC - vhodné jsou Hercules, CGA, EGA/.

 Pro tento monitor nejlépe nahradíme stávající konektor K3  7-kolíkovým konektorem, signály zapojíme jako v předchozím  případě, takže veškeré funkce zůstanou zachovány a přidáme  signály jasové složky a vertikální a horizontální  synchronizace. Jasový signál odebíráme přes rezistor 390R z  vývodu 8 obvodu U8/3, chceme-li inverzní, pak z vývodu 9 téhož  obvodu, případně zapojíme přepínač. Vertikální synchronizaci  odebíráme z vývodu 12 U10/2, horizontální z 9 U11/4, obojí přes

 390R.

               ┌───────────────  GND

               │

   ┌────────┐  │  ┌────────────  AUDIOOUT

   │      ┌─┼──┼──┼─┐

   │      │ └\   /┘ │     ┌────  VIDEOOUT

   │    ┌─┼──  K4 ──┼─────┘

   │    │ │ ┌/   \──┼──────────  VSYNC

   │    │ └─┼───────┘

   │    │   └──────────────────  HSYNC

   │    │

   │    └──────────────────────  TVOUT

   │

   └───────────────────────────  Y

 

 

 

 

 

 

 

 

 

 

7. Instrukce mikroprocesoru INTEL 8080A

---------------------------------------

kód op dél takt příznaky popis

 Osmibitová aritmetika

ANI/XRI/ORI d8 2 7 # log. součin, nonekvivalence, součet s A

ADI/SUI d8 2 7 * prostý součet nebo rozdíl s A

ACI/SBI d8 2 7 * součet n. rozdíl včetně příznaku CY s A

CPI d8 2 7 * srovnání A s d8 /příznaky jako SUI/

ANA/XRA/ORA rm 1 4/7 # log. součin, nonekvivalence, součet s A

ADD/SUB rm 1 4/7 * součet n. rozdíl včetně příznaku CY s A

CMP rm 1 4/7 * srovnání A s rm /příznaky jako SUB/

INR/DCR rm 1 5/10 " zvýšení/snížení rm o 1 /modulo 2**8/

DAA 1 4 v dekadická úprava A

CMA 1 4 - jedničkový doplněk A /inverze/

RLC/RRC 1 4 ! rotace A /a krajní bit do CY/

RAL/RAR 1 4 ! rotace A a CY /9.bitů/

STC/CMC 1 4 ! nastavení/inverze příznaku CY

 Šestnáctibitová aritmetika

DAD ps 1 10 ! přičtení ps k registrovému páru HL

INX/DCX ps 1 5 - zvýšení/snížení ps o 1 /modulo 2**16/

 Osmibitové přesuny

MOV rm,rm 1 5/7 - přesun mezi registry nebo registry a rm

MVI rm,d8 2 7/10 - přímá hodnota do rm

STAX/LDAX px 1 7 - A do/z M /adr. M v BC či DE !/

STA/LDA a16 3 13 - A do/z M /adr. M v operandu instrukce!/

OUT/IN a8 2 10 - výstup A na port / vstup z portu do A

 Šestnáctibitové přesuny

LXI ps,d16 3 10 - přímá hodnota do ps

SHLD/LHLD a16 3 16 - HL do/z paměti /adresa v instrukci/

PUSH/POP pp 1 11/10 & ulož na zásobník / vyber ze zásobníku

SPHL 1 5 - HL do SP, změna ukazatele zásobníku

PCHL 1 5 - HL do PC, t.j. skok !!!

XCHG 1 4 - výměna obsahu páru HL a DE

XTHL 1 18 - výměna obsahu zásobníku a HL, nemění SP

 Skokové instrukce a řízení procesu

JMP a16 3 10 - skok na a16

CALL a16 3 17 - volání podprogramu na a16

RET 1 10 - návrat z podprogramu či přerušení

JNZ/JZ JNC/JC JPO/JPE JP/JM a16 3 10 - JMP podmíněný příznaky

CNZ/CZ CNC/CC CPO/CPE CP/CM a16 3 17/11 - CALL podmíněný přízn.

RNZ/RZ RNC/RC RPO/RPE RP/RM a16 1 11/5 - RET podmíněný přízn.

INT n 1 11 - volání obsluhy přerušení /0-7/

DI/EI 1 4 - zákaz/povolení přerušení

HLT 1 7 - zastavení mikroprocesoru

NOP 1 4 - prázdná instrukce

- nikdy nemění žádné příznaky

v mění všechny příznaky

# mění všechny příznaky, vynuluje CY a AC

& POP PSW změní příznaky obnovením AF

! mění pouze CY

* mění všechny příznaky:

 -sečítání nastaví CY=1 pro součet>255 /přetečení/, jinak CY=0

 -odčítání nastaví CY=1 pro A <operand /podtečení/, jinak CY=0

 - CMP,CPI nastaví CY=1 pro A <operand, jinak CY=0,

 Z=1 pro A=operand, jinak Z=0.

 -SBB,SBI 0. přičte CY k operandu -DAA 1. dolní půlbyte>9 nebo

 -SUB,SUI 1. dvojkový doplněk AC=1 - přičte 06H k A

 2. přičtení k A+CY 2. horní půlbyte>9 nebo

 3. negace CY CY=1 - přičte 60H k A

d8 data 8 bitů rm registry nebo M Takty dle operandů:

pp BC,DE,HL,PSW pp pár BC,DE,HL,PSW registry/paměť nebo

a8 adresa portu ps pár BC,DE,HL,SP PUSH/POP nebo

a16 adresa paměti px pár BC nebo DE splněná/nesplněná

n číslo obsluhy podmínka /JZ apod./

 přerušení 0-7

M pseudoregistr,pomocí něho pracujeme s pamětí, fyzickou adresu

 paměti pro M určuje HL

INT adresy podprogramů obsluhy přerušení jsou mapovány do paměti

 jako 0000H+n*08H, tj. INT 5 vyvolá totéž co CALL 0028H.

 HW přerušení mikroprocesoru je mapováno jako INT 7.

HLT zastaví činnost mikroprocesoru, pokračování nastane signálem

 HW přerušení /na vstupu INT mikroprocesoru/, pokud není zaká-

 záno instrukcí DI, jinak se činnost obnoví pouze Resetem.

 

8. Popis obvodu CPU INTEL 8080A

-------------------------------

 Registry

 Registry jsou paměťová místa přímo v mikroprocesoru. Slouží

 ke krátkodobému uschovávání dat při výpočtu, k provádění  aritmetických operací, a k předávání dat mezi mikroprocesorem,

 pamětí a I/O zařízeními, případně data důležitá k řízení  průběhu procesu. Do datových registrů lze vkládat 8bitová data,

 případně lze některé využívat spojené jako dvojregistr, data

 pak mohou být 16bitová. Registry pro řízení procesu jsou  16bitové. Registry mají písmenné označení, používáme-li  dvojregistr, pak je označen oběma písmeny - první je vyšší  byte, druhý nižší byte dvojbytového registru.

 

  ┌────────┬────────┐   ┌────────┬────────┐   ┌─────────────────┐

  │8b  A   │8b  F   │   │8b  D   │8b  E   │   │16b    S P       │

  └────────┴────────┘   └────────┴────────┘   └─────────────────┘

 

  ┌────────┬────────┐   ┌────────┬────────┐   ┌─────────────────┐

  │8b  B   │8b  C   │   │8b  H   │8b  L   │   │16b    P C       │

  └────────┴────────┘   └────────┴────────┘   └─────────────────┘

 

  ┌────────┐

  │8b  M   │

  └────────┘

 

 A základní registr, zde probíhají výměny dat mezi pamětí,  registry a I/O, a výpočty. Někdy se nazývá střadač, častěji  akumulátor. Lze využít pouze jako 8bitový.

 F příznaková část reg. A. Přímý zápis do tohoto registru není  možný. Tento registr slouží k testování a zjišťování stavu  vykonané operace. Stav operace je indikován jako tzv.  příznaky. Každý bit tohoto registru udává určitou událost,  která nastala při výpočtu, tj. každý bit je příznak. V  závislosti na příznacích je potom možné rozhodnout o dalším  průběhu výpočtu /JNZ,CNC,RZ..../. Výjimkou jsou instrukce  RLC,RRC,RAL,RAR,STC,CMC, které provádí zápis do tohoto reg.

     ┌──┬──┬──┬──┬──┬──┬──┬──┐    S  0=kladné číslo n. 0

     │ S│ Z│ 0│AC│ 0│ P│ 1│CY│       1=záporné číslo

     └──┴──┴──┴──┴──┴──┴──┴──┘    Z  0=nenulové číslo

 1=nulové číslo

 P 0=lichá parita /ODD/

 1=sudá parita /EVEN/

 AC pom. přenos z bitu 3

 CY přenos z bitu 7 /přetečení/

 B,C,D,E datové registry, používáme pro dočasnou úschovu dat,  pro řízení cyklů. Pár BC,DE používáme pro řízení cyklů  pracujících s pamětí, je-li obsazen HL /STAX,LDAX/.

 H,L tyto datové registry se zřídka používají samostatně.  Častěji se používá pár HL, protože pomocí něho definujeme  adresu paměti pro pseudoregistr M. Jinak jako B,C,D,E.

 M toto není registr v pravém slova smyslu. Tímto se díváme na

 paměť jako na registr, což zrychluje běh programu. Adresu  paměti v případě užití tohoto pseudoregistru určuje HL !  Jeho použití je složitější a výrazně rychlejší než STAX,LDA.

 SP obsahuje aktuální adresu zásobníku tj. část paměti vymezená  pro ukládání návratových adres /CALL,INT/, případně hodnot  registrů, kterých hodnoty nechceme ztratit a potřebujeme je

 použít /PUSH/.Zásobník při ukládání roste směrem k začátku  paměti, tj. při uložení do něj se adresa sníží. Vybírat ze  zásobníku /POP,RET/ je nutno v opačném pořadí než v jakém  byly hodnoty vkládány, jinak se nám budou vracet data jiných

 registrů. Neprovedeme-li POP v podprogramu, kde jsme  provedli PUSH, podprogram se instrukcí RET nevrátí na  uloženou návratovou adresu, ale na adresu uloženou instrukcí

 PUSH, což vede k nedefinovatelným efektům !!! Systém si  většinou sám nastavuje zásobník při startu, nemusíme se  proto příliš starat o jeho hodnotu. /MAŤO: po RST SP=7FFFH/

 PC ukazuje na adresu paměti, kde se nachází právě zpracovávaná

 instrukce. Změnou obsahu provedeme skok na jiné místo v  paměti, program bude pokračovat od zadané adresy /JMP,JZ/.

 Jiné změny obsahu nejsou možné.

 Sběrnice a vstupy, výstupy CPU

 D0-D7, A0-A15

 Tento obvod je vybaven 8bitovou datovou sběrnicí a 16bitovou  adresní sběrnicí. Datová sběrnice slouží pro přenos dat mezi  registry mikroprocesoru, pamětí a I/O. Adresní sběrnice určuje

 adresu připojené paměti s kterou se bude pracovat, max.  obsluhovaná paměť je určená 16 bity tj. 64kB. Dolních 8 bitů  adresní sběrnice slouží k adresaci I/O zařízení, tj. zařízení  může být 255. /viz. zapojení K2/

 IOWR,IORD,IORQ

 Na těchto výstupech generuje mikroprocesor žádost o práci s  I/O zařízeními. Pouze při tomto signálu smí být aktivní  připojené I/O zařízení, jinak dojde ke kolizi na datové  sběrnici a tím k havárii systému.

 CLK

 Vstup taktovacích hodin mikroprocesoru. Kmitočet určuje 1  takt vykonání instrukce. Čím je kmitočet vyšší, tím je vyšší i

 rychlost vykonávání instrukcí, zvýšení kmitočtu nad určitou mez

 má za následek zastavení mikroprocesoru. U počítače Maťo je  taktovací kmitočet /2.62 MHz/ generován obvodem INTEL 8228A. Z  tabulky počtu taktů instrukcí je možné určit dobu trvání  instrukce či výpočtu na počítači Maťo.

 INT

 Vstup signálu přerušení. Je-li instrukcí EI povoleno  přerušení, pak signál log.1 přivedený na tento vstup způsobí  přerušení zpracovávaného programu provede se volání obsluhy  tohoto přerušení /jako CALL 0038H/. Je-li mikroprocesor  zastaven /HLT/, pak lze signálem přerušení /je-li povoleno/  obnovit činnost mikroprocesoru /obsluha přerušení se nevolá/.

 RST

 Signál pro reset mikroprocesoru - provede se skok na adresu  vnucenou na adresní sběrnici. U počítače Maťo je to 8000H.

 Ucc,GND

 Přívody napájení +5V,-5V,12V potřebného pro napájení CPU.

 GND je společný bod CPU.

9. Popis obvodu PIO INTEL 8255A

-------------------------------

 Paralelní vstupně/výstupní obvod zajišťuje převzetí dat ze  zařízení/datové sběrnice a přenesení na sběrnici/zařízení.

 Obsahuje tři osmibitové brány z nichž každá může pracovat ve  vstupním nebo ve výstupním režimu, mimoto poslední z nich může  být rozdělena na dolní a horní 4 bity, pro které lze také  nastavit různý režim. Obvod má 4 registry, první tři slouží pro

 zápis nebo čtení dat do/z jednotlivých bran /každá brána má  svůj registr/ a zbývající slouží pro zápis režimu jednotlivých

 bran. Registry se označují jako PA, PB, PC - brána tohoto  registru může být rozdělena=> PCL, PCH, CWR - registr pro zápis

 režimu obvodu. Obvod má tři režimy - mod 0-2. Mod 0 je běžný  vstup/výstup. Mod 1 je tzv. strobovaný vstup/výstup. Slouží  k výměně dat přes brány PA,PB ve spojení se strobovacími  impulzy nebo signály pro potvrzení z rozdělené brány PC.

 Mod 2 je strobovaná obousměrná sběrnice, pouze pro PA. PB může

 být v modu 0,1.

 Sběrnice a vstupy, výstupy PIO

 D0-D7

 datová sběrnice /viz. CPU/

 A0-A1

 adresní signály pro výběr registrů PIO

 PA0-PA7,PB0-PB7,PC0-PC7

 bity vstupně/výstupních bran

 CS

 signál aktivity I/O zařízení

 IORD,IOWR

 signál žádosti čtení/zápisu do I/O

 RST

 reset obvodu

 12. Doporučená literatura

-------------------------

 1. Počítač a jeho programování, J. Starý

 2. Output/Enter - uživatelská příručka PMD-85, TESLA Piešťany