EM400 - konfiguracja: Różnice pomiędzy wersjami
(→Pamięć) |
Nie podano opisu zmian |
||
Linia 42: | Linia 42: | ||
* '''typ''' - typ modułu pamięci. Dostępne typy to: | * '''typ''' - typ modułu pamięci. Dostępne typy to: | ||
** '''elwro''' - pamięć ferrytowa | ** '''elwro''' - pamięć ferrytowa | ||
** '''mega''' - pamięć półprzewodnikowa | ** '''[[MEGA|mega]]''' - pamięć półprzewodnikowa | ||
* '''il_segmentów''' - ilość 4k-słowowych segmentów w module (liczba z zakresu 1-16) | * '''il_segmentów''' - ilość 4k-słowowych segmentów w module (liczba z zakresu 1-16) | ||
Linia 52: | Linia 52: | ||
module 2 = mega:5 | module 2 = mega:5 | ||
} | } | ||
== Urządzenia zewnętrzne == | |||
=== Kanały === | |||
Dołączenie emulacji kanału wymaga zdefiniowania dla niego bloku konfiguracji w sposób następujący: | |||
channel <nr_kanału> = <typ_kanału> { ... } | |||
Gdzie: | |||
* '''nr_kanału''' - kolejny numer kanału w systemie | |||
* '''typ_kanału''' - typ kanału, dostępne typy to: | |||
** '''char''' - kanał znakowy | |||
** '''mem''' - kanał pamięciowy | |||
** '''plix''' - procesor peryferyjny [[PLIX]] | |||
** '''multix''' - procesor peryferyjny [[MULTIX]] | |||
W nawiasach wąsowych występują definicje kolejnych urządzeń podłączonych do kanału (patrz niżej). | |||
=== Urządzenia === | |||
Konfiguracja emulowanych urządzeń definiowana jest następująco: | |||
unit <nr_urządzenia> = <typ_urządzenia> [: argument [, argument [...]]] | |||
Gdzie: | |||
* '''nr_urządzenia''' - kolejny numer urządzenia w kanale | |||
* '''typ_urządzenia''' - jeden z obsługiwanych typów urządzenia. | |||
* '''argument''' - opcjonalne argumenty będące parametrami dołączanego urządzenia | |||
=== Emulowane urządzenia peryferyjne === | |||
* Terminal w konsoli emulatora: | |||
** typ urządzenia: '''term_console''' | |||
** argumenty: brak | |||
** przykład użycia: <tt>term_console</tt> | |||
* Terminal TCP | |||
** typ urządzenia: '''term_tcp''' | |||
** argumenty: port TCP | |||
** przykład użycia: <tt>term_tcp:20034</tt> | |||
* Terminal szeregowy | |||
** typ urządzenia: '''term_serial''' | |||
** argumenty: urządzenie, prędkość, ilość bitów w słowie, parzystość, ilosć bitów stopu | |||
** przykład użycia: <tt>term_serial:/dev/ttyS0, 9600, 8, N, 1</tt> | |||
* Dysk MERA 9425 | |||
** typ urządzenia: '''mera9425''' | |||
** argumenty: obraz talerza stałego, obraz talerza wymiennego | |||
** przykład użycia: <tt>mera9425:disk1.img, disk2.img</tt> | |||
* Dysk Winchester | |||
** typ urządzenia: '''winchester''' | |||
** argumenty: obraz dysku | |||
** przykład użycia: <tt>winchester:winchester.img</tt> |
Wersja z 22:30, 29 mar 2013
Plik konfiguracyjny EM400 pozwala skonfigurować parametry sprzętowe emulowanej maszyny i jest wymagany do uruchomienia emulatora. Domyślne EM400 próbuje załadować następuące pliki konfiguracyjne:
- em400.cfg (w katalogu bieżącym)
- ~/.em400/em400.cfg (konfiguracja użytkownika)
- /etc/em400.cfg (konfiguracja systemowa)
Jeśli jeden z plików uda się poprawnie załadować, dalesze nie są sprawdzane. Powyższa lista plików jest ignorowana, jeśli użytkownik użyje przełącznika -c w linii poleceń
Składnia pliku konfiguracyjnego
Konfiguracja składa się z bloków opisujących poszczególne elementy systemu. Definicja bloku rozpoczyna się jego nazwą, po czym w nawiasach wąsowych występuje zero lub więcej dostępnych opcji konfiguracyjnych dla elementu. Elementy objęte konfiguracją to:
- cpu - procesor
- memory - pamięć
Procesor
Dostępne sa następujące opcje konfigurujące działanie procesora:
- speed - prędkość emulacji procesora. Dostępne warianty:
- max - emulacja z maksymalną możliwą prędkością
- real - emulator stara się zachować oryginalne czasy wykonania instrukcji, czasy dostępu do pamięci i urządzeń zewnętrznych
- timer_step - okres zegara systemowego (w milisekundach)
- mod_17bit - włącz/wyłącz modyfikację sprzętową CPU pozwalającą na 17-bitowe adresowanie bajtów (domyślnie włączone)
- mod_sint - włącz/wyłącz modyfikację sprzętową dodającą przerwanie programowe o wysokim priorytecie (domyślnie włączone)
Przykładowy blok konfiguracji CPU:
cpu { speed = max timer_step = 10 mod_17bit = true mod_sint = false }
Pamięć
Każdy z szesnastu fizycznych modułów pamięci operacyjnej może zostać skonfigurowany niezależnie. Dołączone zostaną tylko moduły o numerach podanych w konfiguracji, pozostałe będą z punktu widzenia systemu nieobecne. Konfiguracja pojedynczego modułu pamięci opisana jest w następujący sposób:
module <nr_modułu> = <typ>:<il_segmentów>
Gdzie:
- nr_modułu - kolejny numer modułu pamięci z zakresu 0-15 (moduł 0 to moduł pamięci systemu operacyjnego, musi mieć rozmiar przynajmniej 2 segmentów)
- typ - typ modułu pamięci. Dostępne typy to:
- elwro - pamięć ferrytowa
- mega - pamięć półprzewodnikowa
- il_segmentów - ilość 4k-słowowych segmentów w module (liczba z zakresu 1-16)
Przykładowy blok konfiguracji pamięci:
memory { module 0 = elwro:8 module 1 = mega:16 module 2 = mega:5 }
Urządzenia zewnętrzne
Kanały
Dołączenie emulacji kanału wymaga zdefiniowania dla niego bloku konfiguracji w sposób następujący:
channel <nr_kanału> = <typ_kanału> { ... }
Gdzie:
- nr_kanału - kolejny numer kanału w systemie
- typ_kanału - typ kanału, dostępne typy to:
W nawiasach wąsowych występują definicje kolejnych urządzeń podłączonych do kanału (patrz niżej).
Urządzenia
Konfiguracja emulowanych urządzeń definiowana jest następująco:
unit <nr_urządzenia> = <typ_urządzenia> [: argument [, argument [...]]]
Gdzie:
- nr_urządzenia - kolejny numer urządzenia w kanale
- typ_urządzenia - jeden z obsługiwanych typów urządzenia.
- argument - opcjonalne argumenty będące parametrami dołączanego urządzenia
Emulowane urządzenia peryferyjne
- Terminal w konsoli emulatora:
- typ urządzenia: term_console
- argumenty: brak
- przykład użycia: term_console
- Terminal TCP
- typ urządzenia: term_tcp
- argumenty: port TCP
- przykład użycia: term_tcp:20034
- Terminal szeregowy
- typ urządzenia: term_serial
- argumenty: urządzenie, prędkość, ilość bitów w słowie, parzystość, ilosć bitów stopu
- przykład użycia: term_serial:/dev/ttyS0, 9600, 8, N, 1
- Dysk MERA 9425
- typ urządzenia: mera9425
- argumenty: obraz talerza stałego, obraz talerza wymiennego
- przykład użycia: mera9425:disk1.img, disk2.img
- Dysk Winchester
- typ urządzenia: winchester
- argumenty: obraz dysku
- przykład użycia: winchester:winchester.img