|
|
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.ini'''. | | 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 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 [[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 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 ==
| |
| | |
| 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.
| |