EM400 - konfiguracja

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania

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.