MULTIX od środka: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 41: Linia 41:


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