EM400 - konfiguracja: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 18: | Linia 18: | ||
* '''speed_real''' - zachowanie prędkości emulacji odpowiadającej prawdziwej MERZE-400 (true/false). | * '''speed_real''' - zachowanie prędkości emulacji odpowiadającej prawdziwej MERZE-400 (true/false). | ||
* '''timer_step''' - okres [[Przerwanie_zegarowe|zegara systemowego]] (w milisekundach) | * '''timer_step''' - okres [[Przerwanie_zegarowe|zegara systemowego]] (w milisekundach) | ||
* '''timer_start''' - uruchom zegar systemowy przy starcie emulatora (true/false) | |||
* '''cpu_mod''' - włącz modyfikacje procesora do zgodności z MX-16 (true/false) | * '''cpu_mod''' - włącz modyfikacje procesora do zgodności z MX-16 (true/false) | ||
* '''cpu_user_io_illegal''' - instrukcje IN/OU nielegalne dla programów użytkownika (true/false) | * '''cpu_user_io_illegal''' - instrukcje IN/OU nielegalne dla programów użytkownika (true/false) | ||
Linia 24: | Linia 25: | ||
* '''mem_mega''' - ilość bloków [[Pamięć MEGA|pamięci MEGA]] (bloki 64ksłowa) | * '''mem_mega''' - ilość bloków [[Pamięć MEGA|pamięci MEGA]] (bloki 64ksłowa) | ||
* '''mem_mega_prom''' - nazwa pliku z obrazem pamięci PROM MEGA | * '''mem_mega_prom''' - nazwa pliku z obrazem pamięci PROM MEGA | ||
* '''mem_mega_boot''' - boot systemu z pamięci MEGA (true/false) | |||
* '''cpu_stop_on_nomem''' - procesor przechodzi w stan STOP przy odwołaniu to nieskonfigurowanego segmentu pamięci w bloku 0 (true/false) | |||
* '''mem_os_segments''' - liczba segmentów zarezerwowanych dla systemu operacyjnego (1 lub 2) | * '''mem_os_segments''' - liczba segmentów zarezerwowanych dla systemu operacyjnego (1 lub 2) | ||
Linia 31: | Linia 34: | ||
speed_real = false | speed_real = false | ||
timer_step = 10 | timer_step = 10 | ||
timer_start = true | |||
cpu_user_io_illegal = true | cpu_user_io_illegal = true | ||
cpu_awp = true | cpu_awp = true | ||
Linia 37: | Linia 41: | ||
mem_mega = 16 | mem_mega = 16 | ||
mem_mega_prom = mega_prom.img | mem_mega_prom = mega_prom.img | ||
mem_mega_boot = true | |||
mem_os_segments = 2 | mem_os_segments = 2 | ||
} | } |
Wersja z 21:00, 23 wrz 2014
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. Dozwolone są następujace bloki:
- computer - konfiguracja procesora i emulacji
- channel n - konfiguracja kanałów dla n = 0...15
Komputer
Dostępne sa następujące opcje konfigurujące działanie procesora:
- speed_real - zachowanie prędkości emulacji odpowiadającej prawdziwej MERZE-400 (true/false).
- timer_step - okres zegara systemowego (w milisekundach)
- timer_start - uruchom zegar systemowy przy starcie emulatora (true/false)
- cpu_mod - włącz modyfikacje procesora do zgodności z MX-16 (true/false)
- cpu_user_io_illegal - instrukcje IN/OU nielegalne dla programów użytkownika (true/false)
- cpu_awp - dołącz Arytmometr Wielokrotnej Precyzji (true/false)
- mem_elwro - ilość bloków pamięci Elwro (bloki 32ksłowa)
- mem_mega - ilość bloków pamięci MEGA (bloki 64ksłowa)
- mem_mega_prom - nazwa pliku z obrazem pamięci PROM MEGA
- mem_mega_boot - boot systemu z pamięci MEGA (true/false)
- cpu_stop_on_nomem - procesor przechodzi w stan STOP przy odwołaniu to nieskonfigurowanego segmentu pamięci w bloku 0 (true/false)
- mem_os_segments - liczba segmentów zarezerwowanych dla systemu operacyjnego (1 lub 2)
Przykładowy blok konfiguracji komputera:
computer { speed_real = false timer_step = 10 timer_start = true cpu_user_io_illegal = true cpu_awp = true cpu_mod = false mem_elwro = 1 mem_mega = 16 mem_mega_prom = mega_prom.img mem_mega_boot = true mem_os_segments = 2 }
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