EM400 - konfiguracja: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
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. | 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 konfiguracyjnego = | ||
Konfiguracja składa się z | Konfiguracja składa się z sekcji opisujących poszczególne elementy systemu. Definicja sekcji rozpoczyna się jego nazwą, po czym występują opcje konfiguracji dla danej sekcji. Rozpoznawane są następujące sekcje: | ||
* ''' | * '''cpu''' - konfiguracja emulacji procesora | ||
* '''memory''' - konfiguracja emulacji pamięci | |||
* '''log''' - konfiguracja logowania | * '''log''' - konfiguracja logowania | ||
* ''' | * '''ui''' - ustawienia interfejsu użytkownika | ||
* '''sound''' - konfiguracja dźwięku | |||
* '''fpga''' - konfiguracja połączenia ze sprzętową implementacją procesora | |||
* '''io''' - konfiguracja kanałów I/O systemu | |||
* '''devX.Y''' - konfiguracja urządzeń w kanałach, gdzie X jest numerem kanału, a Y numerem urządzenia | |||
== | == CPU == | ||
Dostępne sa następujące opcje konfigurujące działanie procesora: | Dostępne sa następujące opcje konfigurujące działanie procesora: | ||
* '''fpga''' - używanie sprzętowej implementacji procesora (true/false) | |||
* '''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). | ||
* ''' | * '''speed_factor''' - współczynnik prędkości emulacji | ||
* ''' | * '''throttle_granularity''' - kwant czasu (w mikrosekundach) używany do śledzenia prędkości emulacji | ||
* ''' | * '''clock_period''' - okres [[Przerwanie_zegarowe|zegara systemowego]] (w milisekundach) | ||
* ''' | * '''clock_start''' - uruchom zegar systemowy przy starcie emulatora (true/false) | ||
* ''' | * '''modifications''' - włącz modyfikacje procesora do zgodności z MX-16 (true/false) | ||
* ''' | * '''user_io_illegal''' - instrukcje IN/OU nielegalne dla programów użytkownika (true/false) | ||
* '''awp''' - dołącz [[Arytmometr Wielokrotnej Precyzji]] (true/false) | |||
* '''stop_on_nomem''' - procesor przechodzi w stan STOP przy odwołaniu to nieskonfigurowanego segmentu pamięci w bloku 0 (true/false) | |||
* '''kb''' - wartość do ustawienia na kluczach pulpitu technicznego przy starcie emulatora | |||
* ''' | |||
Przykładowy blok konfiguracji | Przykładowy blok konfiguracji procesora: | ||
[cpu] | |||
fpga = false | |||
speed_real = false | |||
speed_factor = 1 | |||
throttle_granularity = 10 | |||
clock_period = 10 | |||
clock_start = true | |||
stop_on_nomem = true | |||
user_io_illegal = true | |||
awp = true | |||
modifications = false | |||
kb = 0 | |||
== Pamięć == | |||
* '''elwro_modules''' - ilość bloków pamięci Elwro (bloki 32ksłowa) | |||
* '''mega_modules''' - ilość bloków [[Pamięć MEGA|pamięci MEGA]] (bloki 64ksłowa) | |||
* '''mega_prom''' - nazwa pliku z obrazem pamięci PROM MEGA | |||
* '''mega_boot''' - boot systemu z pamięci MEGA (true/false) | |||
* '''hardwired_segments''' - liczba segmentów zarezerwowanych dla systemu operacyjnego (1 lub 2) | |||
* '''preload''' - program ładowany do bloku 0 pamięci przy starcie emulatora | |||
Przykładowy blok konfiguracji pamięci: | |||
[memory] | |||
elwro_modules = 1 | |||
mega_modules = 0 | |||
hardwired_segments = 2 | |||
mega_prom = mega0.bin | |||
mega_boot = false | |||
preload = program.bin | |||
== Logowanie == | == Logowanie == | ||
Linia 71: | Linia 93: | ||
=== Kanały === | === Kanały === | ||
Dołączenie emulacji kanału wymaga | Dołączenie emulacji kanału wymaga podania w sekcji '''io'' nazw kanałów jako wartości dla kluczy '''channel_X''', gdzie X jest numerem kanału, np.: | ||
[io] | |||
channel_15 = char | |||
=== Urządzenia === | === Urządzenia === | ||
Konfiguracja emulowanych urządzeń definiowana jest | Konfiguracja emulowanych urządzeń definiowana jest w osobnych sekcjach nazwanych '''devX.Y''', gdzie X jest numerem kanału, a Y numerem urządzenia. | ||
Wersja z 17:20, 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 konfiguracyjnego
Konfiguracja składa się z sekcji opisujących poszczególne elementy systemu. Definicja sekcji rozpoczyna się jego nazwą, po czym występują opcje konfiguracji dla danej sekcji. Rozpoznawane są następujące sekcje:
- cpu - konfiguracja emulacji procesora
- memory - konfiguracja emulacji pamięci
- log - konfiguracja logowania
- ui - ustawienia interfejsu użytkownika
- sound - konfiguracja dźwięku
- fpga - konfiguracja połączenia ze sprzętową implementacją procesora
- io - konfiguracja kanałów I/O systemu
- devX.Y - konfiguracja urządzeń w kanałach, gdzie X jest numerem kanału, a Y numerem urządzenia
CPU
Dostępne sa następujące opcje konfigurujące działanie procesora:
- fpga - używanie sprzętowej implementacji procesora (true/false)
- speed_real - zachowanie prędkości emulacji odpowiadającej prawdziwej MERZE-400 (true/false).
- speed_factor - współczynnik prędkości emulacji
- throttle_granularity - kwant czasu (w mikrosekundach) używany do śledzenia prędkości emulacji
- clock_period - okres zegara systemowego (w milisekundach)
- clock_start - uruchom zegar systemowy przy starcie emulatora (true/false)
- modifications - włącz modyfikacje procesora do zgodności z MX-16 (true/false)
- user_io_illegal - instrukcje IN/OU nielegalne dla programów użytkownika (true/false)
- awp - dołącz Arytmometr Wielokrotnej Precyzji (true/false)
- stop_on_nomem - procesor przechodzi w stan STOP przy odwołaniu to nieskonfigurowanego segmentu pamięci w bloku 0 (true/false)
- kb - wartość do ustawienia na kluczach pulpitu technicznego przy starcie emulatora
Przykładowy blok konfiguracji procesora:
[cpu] fpga = false speed_real = false speed_factor = 1 throttle_granularity = 10 clock_period = 10 clock_start = true stop_on_nomem = true user_io_illegal = true awp = true modifications = false kb = 0
Pamięć
- elwro_modules - ilość bloków pamięci Elwro (bloki 32ksłowa)
- mega_modules - ilość bloków pamięci MEGA (bloki 64ksłowa)
- mega_prom - nazwa pliku z obrazem pamięci PROM MEGA
- mega_boot - boot systemu z pamięci MEGA (true/false)
- hardwired_segments - liczba segmentów zarezerwowanych dla systemu operacyjnego (1 lub 2)
- preload - program ładowany do bloku 0 pamięci przy starcie emulatora
Przykładowy blok konfiguracji pamięci:
[memory] elwro_modules = 1 mega_modules = 0 hardwired_segments = 2 mega_prom = mega0.bin mega_boot = false preload = program.bin
Logowanie
EM400 pozwala na logowanie zdarzeń do pliku. Zadrzenia występują w obrębie komponentów. Lista dostępnych komponentów jest następująca:
- em4h - emulator
- 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
- 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
- components - określa które komponenty będą logowane
- line_buffered - pozwala włączyć buforowanie linii
Przykładowy blok konfiguracji logowania:
[log] enabled=true file=em400.log components=em4h line_buffered=true
Urządzenia zewnętrzne
Kanały
Dołączenie emulacji kanału wymaga podania w sekcji io nazw kanałów jako wartości dla kluczy channel_X', gdzie X jest numerem kanału, np.:
[io] channel_15 = char
Urządzenia
Konfiguracja emulowanych urządzeń definiowana jest w osobnych sekcjach nazwanych devX.Y, gdzie X jest numerem kanału, a Y numerem urządzenia.