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

Przejdź do nawigacji Przejdź do wyszukiwania
brak opisu edycji
Nie podano opisu zmian
Nie podano opisu zmian
 
(Nie pokazano 12 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. Domyślne EM400 próbuje załadować następuące pliki konfiguracyjne:
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'''.
* '''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 [[EM400 - linia poleceń|linii poleceń]]


= 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. 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 [[Przerwanie_zegarowe|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ęć operacyjna|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|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:
** '''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>

Menu nawigacyjne