MULTIX od środka: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
(→I/O) |
(→I/O) |
||
Linia 41: | Linia 41: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Adres !! | ! Adres !! R/W !! Nazwa !! Znaczenie | ||
|- | |- | ||
| 0-1 || | | 0-1 || R || DANEI || dane odczytane z MERA-400 (MSB, LSB) | ||
|- | |- | ||
| 0-1 || | | 0-1 || W || DANEO || dane do przesłania rozkazem "pisz do PAO" (MSB, LSB) | ||
|- | |- | ||
| 2-3 || | | 2-3 || R || PSARG || argument polecenia sterującego (MSB, LSB) | ||
|- | |- | ||
| 2-3 || | | 2-3 || W || ADRES || adres w PAO MERA-400 (MSB, LSB) | ||
|- | |- | ||
| 4 || | | 4 || R || POLST || specyfikacja polecenia sterującego | ||
|- | |- | ||
| 4 || | | 4 || W || NBPN || nr bloku PAO, nr procesora | ||
|- | |- | ||
| 5 || | | 5 || R || POLST+1 || ID linii | ||
|- | |- | ||
| 5 || | | 5 || W || KWINT || pokwitowanie przerwań | ||
|- | |- | ||
| 6 || | | 6 || W || SPECI || specyfikacja przerwania do MERA-400 | ||
|- | |- | ||
| 7 || | | 7 || W || SPECI+1 || specyfikacja przerwania: numer linii | ||
|- | |- | ||
| 8 || | | 8 || W || KOTRA || Rozkaz "koniec transmisji" | ||
|- | |- | ||
| 10 || | | 10 || W || PISZB || Rozkaz "pisz blok przez DMA do MERA-400" | ||
|- | |- | ||
| 11 || | | 11 || W || CZYTB || Rozkaz "czytaj blok przez DMA z MERA-400" | ||
|- | |- | ||
| 12 || | | 12 || W || PISZP || Rozkaz "pisz do MERA-400" | ||
|- | |- | ||
| 13 || | | 13 || W || CZYTP || Rozkaz "czytaj z MERA-400" | ||
|- | |- | ||
| 14 || | | 14 || W || INTR0 || Rozkaz "zgłoś przerwanie do MERA-400 (procesor 0) | ||
|- | |- | ||
| 15 || | | 15 || W || INTR1 || Rozkaz "zgłoś przerwanie do MERA-400 (procesor 1) | ||
|- | |- | ||
| 0x38 || | | 0x38 || W || KOPRQ || pokwitowanie OPRQ | ||
|- | |- | ||
| 0x4e || | | 0x4e || W || WUUPG || ustawienie maski przerwań 'INTR' | ||
|- | |- | ||
| 0x50 || RW || CLOCK || zegar | | 0x50 || RW || CLOCK || zegar | ||
Linia 111: | Linia 111: | ||
| 0x82 || RW || PARIO+2 || port C = sygnały handshake i gotowości | | 0x82 || RW || PARIO+2 || port C = sygnały handshake i gotowości | ||
|- | |- | ||
| 0x83 || | | 0x83 || R || PARIO+3 || sterowanie | ||
|- | |- | ||
| ... || ... || ... || kolejne linie szeregowe/równoległe | | ... || ... || ... || kolejne linie szeregowe/równoległe |
Wersja z 12:19, 11 mar 2014
Dokumentacja techniczna MULTIX-a prawdopodobnie dziś już nie istnieje. Niniejsza strona jest próbą odtworzenia tego, jak MULTIX działał i jaka była jego architektura.
Sprzęt
MULTIX to komputer zbudowany w oparciu o procesor Intel 8085:
- CPU: Intel 8085
- Timer: Intel 8253
- I/O równoległe: Intel 8255
- I/O szeregowe: Intel 8251
- I/O floppy:
- kontroler Zilog Z0765A08PSC + Intel 8257
- pamięć Hitachi HM6264LP 8KB static RAM (150ns)
- I/O winchester:
- kontroler Intel C82062
- pamięć: Hitachi HM6264LP 8KB static RAM (150ns)
- DMA: Intel 8257
- kanał 1: MERA-400
- kanał 2: taśma
- kanał 3: autoload
- ROM (firmware) ?KB
- RAM ?KB
Mapa pamięci
Adres | Nazwa | Zawartość |
---|---|---|
0x6000 | RAM | początek RAM |
0x6000+154 | STACK | koniec stosu, początek dostępnej RAM |
0xa000 | RAMW8 | początek RAM dla floppy dysku ? |
0xc000 | RAMW6 | początek RAM dla winchestera ? |
0xFF00-0xFFFF | AD | we/wy widziane jako pamięć |
I/O
Adres | R/W | Nazwa | Znaczenie |
---|---|---|---|
0-1 | R | DANEI | dane odczytane z MERA-400 (MSB, LSB) |
0-1 | W | DANEO | dane do przesłania rozkazem "pisz do PAO" (MSB, LSB) |
2-3 | R | PSARG | argument polecenia sterującego (MSB, LSB) |
2-3 | W | ADRES | adres w PAO MERA-400 (MSB, LSB) |
4 | R | POLST | specyfikacja polecenia sterującego |
4 | W | NBPN | nr bloku PAO, nr procesora |
5 | R | POLST+1 | ID linii |
5 | W | KWINT | pokwitowanie przerwań |
6 | W | SPECI | specyfikacja przerwania do MERA-400 |
7 | W | SPECI+1 | specyfikacja przerwania: numer linii |
8 | W | KOTRA | Rozkaz "koniec transmisji" |
10 | W | PISZB | Rozkaz "pisz blok przez DMA do MERA-400" |
11 | W | CZYTB | Rozkaz "czytaj blok przez DMA z MERA-400" |
12 | W | PISZP | Rozkaz "pisz do MERA-400" |
13 | W | CZYTP | Rozkaz "czytaj z MERA-400" |
14 | W | INTR0 | Rozkaz "zgłoś przerwanie do MERA-400 (procesor 0) |
15 | W | INTR1 | Rozkaz "zgłoś przerwanie do MERA-400 (procesor 1) |
0x38 | W | KOPRQ | pokwitowanie OPRQ |
0x4e | W | WUUPG | ustawienie maski przerwań 'INTR' |
0x50 | RW | CLOCK | zegar |
0x51 | RW | CLDZI | dzielnik zegara (we=1536kHz) |
0x52 | RW | CLUSA | dzielnik dla USART (we=1536kHz, wy=153,6kHz) |
0x64-0x65 | RW | DMAD1 | DMA kanał 1: rejestr adresu |
0x66-0x67 | RW | DMCO1 | DMA kanał 1: licznik, typ pracy |
0x68-0x69 | RW | DMAD2 | DMA kanał 2: rejestr adresu |
0x6a-0x6b | RW | DMCO2 | DMA kanał 2: licznik, typ pracy |
0x6c-0x6d | RW | DMAD3 | DMA kanał 3: rejestr adresu |
0x6e-0x6f | RW | DMCO3 | DMA kanał 3: licznik, typ pracy |
0x70 | RW | DMAST | DMA: sterowanie |
0x80 | RW | INFTR | informacja do/z linii szeregowej |
0x81 | RW | INFST | status i sterowanie linii szeregowej |
0x80 | RW | PARIO | PORT A = parzysty nr. linii |
0x81 | RW | PARIO+1 | PORT B = nieparzysty nr. linii |
0x82 | RW | PARIO+2 | port C = sygnały handshake i gotowości |
0x83 | R | PARIO+3 | sterowanie |
... | ... | ... | kolejne linie szeregowe/równoległe |
Przerwania wewnętrzne
Przerwanie | Nazwa | Znaczenie | Pokwitowanie |
---|---|---|---|
1 | IKWIT | MERA-400 przyjęła przerwanie | zapis 1 DO "KWINT" |
2 | IZEGA | zegar | zapis "MODE" do "CLCON" |
3 | IOPRQ | zgłoszenie OPRQ | zapis "KOPRQ" |
4.5 | ITRAP | dla testowania | odczyt "PTRAP" |
5.5 | IPOST | polecenie sterujące | odczyt "POLST+1" |
6 | ITAP | taśma magnetyczna | odczyt specyfikacji |
6.5 | IKASE | kaskada serial | odczyt/zapis informacji |
7 | IKAPA | kaskada parallel | odczyt/zapis informacji |
7.5 | IDMA | DMA | odczyt DMAST |
Przerwania do MERA-400
Kolejka przerwań wysyłanych z MULTIX-a do MERY-400 ma długość 32.