EM400 - konfiguracja: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
 
(Nie pokazano 4 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
Plik konfiguracyjny EM400 pozwala skonfigurować parametry sprzętowe emulowanej maszyny i jest wymagany do uruchomienia emulatora. Jeśli użytkownik podał nazwę pliku konfiguracyjnego w linii poleceń (używając przełącznika '''-c'''), zostanie on użyty. Jeśli nie, domyślnie używany jest plik '''~/.em400/em400.cfg'''.
Plik konfiguracyjny EM400 pozwala skonfigurować parametry sprzętowe emulowanej maszyny i jest wymagany do uruchomienia emulatora. Jeśli użytkownik podał nazwę pliku konfiguracyjnego w linii poleceń (używając przełącznika '''-c'''), zostanie on użyty. Jeśli nie, domyślnie używany jest plik '''~/.em400/em400.ini'''.


= Składnia pliku konfiguracyjnego =
Składnia pliku i opis poszczególnych opcji znajduje się [https://github.com/jakubfi/em400/blob/master/cfg/em400.ini.template tutaj]
 
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
* '''log''' - konfiguracja logowania
* '''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 [[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_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ęć MEGA|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
}
 
== Logowanie ==
 
EM400 pozwala na logowanie zdarzeń do pliku. Zadrzenia występują w obrębie ''komponentów'' i na ''poziomach'' logowania. Poziom logowania jest liczbą od 0-9, a lista dostępnych komponentów jest następująca:
* reg, mem, cpu, op, int - rejestry, pamieć, procesor i wykonywane instrukcje, przerwania
* io, mx, px, cchr, cmem - wejście/wyjście i kanały
* term, wnch, 9045, flop, pnch, pnrd - urządzenia zewnętrzne
* em4h - emulator
* crk5 - CROOK-5
* all - komponent specjalny, zawiera wszystkie pozostałe komponenty
 
Konfiguracja logowania obejmuje następujące opcje:
 
* '''enabled''' - aktywuj logowanie (true/false)
* '''file''' - plik, do którego zapisywany będzie log
* '''levels''' - poziomy logowania opisane w składni: '''komponent=poziom[,komponent=poziom[,...]]'''. Ustawione poziomy mówią jakie zdarzenia (do jakiego poziomu w danym komponencie) będą logowane.
* '''pname_offset''' - opcja ma znaczenie, jeśli w emulatorze uruchamiany jest system CROOK-5. Jej użycie powoduje, że dla każdego zdarzenia generowanego w procesorze, będzie logowana nazwa procesu, w którego kontekście znajduje się system operacyjny. W zależności od wersji jądra systemu przesunięcie nazwy procesu jest inne: dla jąder w wersji "N" wynosi 52, a dla wersji "P" - 54. Logowanie nazwy procesu nie jest w 100% precyzyjne, ponieważ jest ona aktualizowana tylko przy wywołaniach instrukcji LIP i SP.
 
Przykładowy blok konfiguracji logowania:
 
emulog {
        enabled = true
        levels = "all=1,em4h=2,wnch=10"
        pname_offset = 54
}
 
== 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>

Aktualna wersja na dzień 17:22, 1 gru 2021

Plik konfiguracyjny EM400 pozwala skonfigurować parametry sprzętowe emulowanej maszyny i jest wymagany do uruchomienia emulatora. Jeśli użytkownik podał nazwę pliku konfiguracyjnego w linii poleceń (używając przełącznika -c), zostanie on użyty. Jeśli nie, domyślnie używany jest plik ~/.em400/em400.ini.

Składnia pliku i opis poszczególnych opcji znajduje się tutaj