Mapování IQ151, všechny adresy jsou hexadekadicky pokud není uvedeno jinak
Přestože většinu těchto informací lze nalézt v jiných zdrojích, zejména [1],
považuji za užitečné je přehledně soustředit na jednom místě.
Paměť
0000 - 07FF zrcadlo monitor EPROM čipu MON1, je-li aktivováno I/O portem 80.
0000 - 7FFF RAM
8000 - BFFF EPROM AMOS (vždy jedna z 16KB stránek), POZOR! konflikt s modulem BASIC G, je na to upozorněno i v manuálech modulů AMOS
B000 - BFFF EPROM BASIC G dolní část (4KB), POZOR! konflikt s moduly AMOS
A800?- ???? modul G
C000 - C7FF EPROM modul MS151A (2KB)
C800 - E7FF EPROM modulu BASIC 6 nebo BASIC G horní část (8KB)
E800 - EFFF videoram modulu VIDEO64 (2KB)
EC00 - EFFF videoram modulu VIDEO32 (1KB)
F000 - F7FF monitor EPROM (2KB), čip MON0
F800 - FFFF monitor EPROM (2KB), čip MON1
Některé počítače IQ151 mají navíc osazenou RAM v oblasti 8000-FFFF,
moduly mohou využít určitou oblast adres pro sebe a v případě přístupu
na tyto adresy blokovat RAM signálem RAM* na sběrnici.
I/O porty
80 obvod 3212 na základní desce, nejnižším bitem se ovládá zrcadlení monitor EPROM:
0 = zrcadlení čipu MON1 v oblasti 0000-07FF
1 = zrcadlo vypnuto
84-87 obvod 8255 na základní desce:
84 - brána A - zápis sloupce při zjišťování stavu klávesnice
85 - brána B - čtení řádku při zjišťování stavu klávesnice
86 - brána C - klávesy shift, ctrl, fa, fb, reproduktor, magnetofon
D7 klávesa FB (stav 0 při stisknuté klávese)
D6 klávesa FA (stav 0 při stisknuté klávese)
D5 klávesa CTRL (stav 0 při stisknuté klávese)
D4 klávesy SHIFT (obě klávesy SHIFT jsou paralelně spojeny, stav 0 pokud je stiskunta kterákoliv z nich;
nelze žádným způsobem rozlišit, která z kláves SHIFT je stisknuta popř. zda jsou stisknuty obě)
D3 reproduktor
D2 ovládání magnetofonu 2 (není vyvedeno na konektor)
D1 ovládání magnetofonu 1 (není vyvedeno na konektor)
D0 výstup pro magnetofon
Pokud D2=1 nebo D1=1, mají horní 4 bity jiný význam:
D7 vstup z magnetofonu 1
D6 vstup z magnetofonu 2
D5 kmitočet 1kHz
D4 uzeměno
Defaultně čtená hodnota je %248 = $F8 = !1111 1000
87 - řídicí registr 8255
88,89 řadič přerušení 8259
D0-D4 modul grafik:
D0 brána A 8255 - poloha X
D1 brána B 8255 - poloha Y
D2 brána C 8255 - řídicí signály
D3 řídicí registr 8255
D4 datová komunikace
EC-EF modul AMOS, adresy jsou ekvivalentní, jen zápis:
stránkování: 00=pascal runtime a editor, 01=pascal překladač, 10=assembler.
POZOR ! v originálním popise modulu je chyba a chybně se zde uvádí oblast E0-EF
F0-F4 souřadnicový zapisovač
F8-FB modul staper, obvod 8255
F8 byte čtený ze čtečky
F9 byte posílaný na tiskárnu nebo děrovačku
FA řízení
FB řídicí registr 8255
FC-FF modul video 64, adresy jsou ekvivalentní
čtení: hodnota FE pokud je modul přítomen, FF pokud ne
zápis: 0 zakazuje, 1 povoluje zobrazení znaků ve dvojnásobné šířce
Klávesnice
Klávesy jsou zapojeny do matice 8x8.
8 sloupců je zapojeno na 8 bitů portu A obvodu 8255 na základní desce,
port má adresu 84.
8 řad je propojeno s 8 bity portu B obvodu 8255 na základní desce,
port má adresu 85.
Všechny linky jsou vybaveny pull-up rezistory.
Signály jsou aktivní v úrovni L.
Scanování probíhá tak, že se zápisem na port 84 vybere sloupec
tak, že zde zapíšeme byte, který se skládá z jedniček, jen na místě vybraného sloupce má nulu.
Z portu 85 pak přečteme stav kláves v příslušném sloupci, na bitech odpovídajících stisknuté
klávese je čtená 0, ostatní bity mají hodnotu 1.
| | bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| | hodnota hex | FE | FD | FB | F7 | EF | DF | BF | 7F |
| bit | hodnota hex | hodnota dek | 254 | 253 | 251 | 247 | 239 | 223 | 191 | 127 |
| 0 | FE | 254 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 1 | FD | 253 | Q | W | E | R | T | Y | U | I |
| 2 | FB | 251 | A | S | D | F | G | H | J | K |
| 3 | 7F | 247 | Z | X | C | V | B | N | M | , |
| 4 | EF | 239 | 9 | O | L | . | CR | DC | IC | F1 |
| 5 | DF | 223 | 0 | P | ; | \ | / | DL | LEFT | F2 |
| 6 | BF | 191 | ^ | [ | ] | DOWN | F5 | IL | HOME | F4 |
| 7 | 7F | 127 | - | @ | : | SP | _ | UP | LEFT | F3 |
Příklad: Je stisknutá klávesa X. Do portu 84 zapíšeme FD.
Z portu 85 je pak čtená hodnota 7F.
Dále bylo zjištěno, že je rozdíl v klávesnici verze 1 a klávesnici verze G.
Klávesnice verze 1 má jednu souvislou kontaktní fólii pro všechny klávesy.
Klávesnice verze G má samostatnou kontaktní plošku pro každou klávesu.
Z toho plyne, že chování klávesnic bude různé při současném stisku více kláves.
Rozšířený monitor
DH dump hex
DM disassembler
Použitá literatura
[1] Ing. Pavel Přívětivý, Školní mikropočítač IQ151, SPN 1988
[2] Technický popis modulu Grafik
[3] Technický popis modulu Video64
[4] Technický popis modulu Staper
[5] Technický popis modulu AMOS
Některé informace byly zjištěny vlastním "výzkumem" - pokusným zapisováním a čtením portů, apod.,
zásadně na reálném počítači, nikdy v emulátoru.
Zpět