MULTIX od środka
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 | Typ | Nazwa | Znaczenie |
---|---|---|---|
0-1 | RO | DANEI | dane odczytane z MERA-400 (MSB, LSB) |
0-1 | WO | DANEO | dane do przesłania rozkazem "pisz do PAO" (MSB, LSB) |
2-3 | RO | PSARG | argument polecenia sterującego (MSB, LSB) |
2-3 | WO | ADRES | adres w PAO MERA-400 (MSB, LSB) |
4 | RO | POLST | specyfikacja polecenia sterującego |
4 | WO | NBPN | nr bloku PAO, nr procesora |
5 | RO | POLST+1 | ID linii |
5 | WO | KWINT | pokwitowanie przerwań |
6 | WO | SPECI | specyfikacja przerwania do MERA-400 |
7 | WO | SPECI+1 | specyfikacja przerwania: numer linii |
8 | WO | KOTRA | Rozkaz "koniec transmisji" |
10 | WO | PISZB | Rozkaz "pisz blok przez DMA do MERA-400" |
11 | WO | CZYTB | Rozkaz "czytaj blok przez DMA z MERA-400" |
12 | WO | PISZP | Rozkaz "pisz do MERA-400" |
13 | WO | CZYTP | Rozkaz "czytaj z MERA-400" |
14 | WO | INTR0 | Rozkaz "zgłoś przerwanie do MERA-400 (procesor 0) |
15 | WO | INTR1 | Rozkaz "zgłoś przerwanie do MERA-400 (procesor 1) |
0x38 | WO | KOPRQ | pokwitowanie OPRQ |
0x4e | WO | 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 | RO | 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.