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

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
 
(Nie pokazano 23 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'''.
__NOTOC__
Konfiguracja emulatora dostępna jest z menu '''Emulator → Ustawienia''' i zorganizowana jest w sekcje:


= Składnia pliku konfiguracyjnego =
# '''Maszyna''' - konfiguracje sprzętowe emulowanego komputera
# '''Ogólne''' - ustawienia emulacji i interfejsu użytkownika
# '''Dźwięk''' - ustawienia dźwięków interfejsu użytkownika i głośniczka CPU
# '''Logowanie''' - konfiguracja logowania


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:
= Maszyna =


* '''computer''' - konfiguracja procesora i emulacji
[[File:Konfiguracja-maszyna.png|thumb|500px|Konfiguracja: Maszyna (procesor)]]
* '''log''' - konfiguracja logowania
* '''channel n''' - konfiguracja kanałów dla n = 0...15


== Komputer ==
EM400 pozwala przygotować wiele konfiguracji minikomputera i przełączać się nimi w zależności od potrzeb.


Dostępne sa następujące opcje konfigurujące działanie procesora:
Przy pierwszym uruchomieniu, EM400 tworzy dwie domyślne maszyny:


* '''speed_real''' - zachowanie prędkości emulacji odpowiadającej prawdziwej MERZE-400 (true/false).
* '''MERA-400''' - prosta konfiguracja z dwoma modułami pamięci Elwro i stacją dysków SP45DE
* '''timer_step''' - okres [[Przerwanie_zegarowe|zegara systemowego]] (w milisekundach)
* '''MX-16''' - przeznaczona do uruchamiania systemu operacyjnego CROOK-5, z pamięcią MEGA Amepolu, procesorem peryferyjnym MULTIX i dyskiem Winchester
* '''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:
Zarządzanie maszynami umożliwiają następujące opcje:


computer {
* '''Aktywna maszyna''' - wybór aktualnie edytowanej konfiguracji minikomputera
        speed_real = false
* '''Dodaj...''' - dodawanie nowej maszyny. Otwiera okienko pozwalające wpisać jej nazwę. Identyfikator maszyny wywodzony jest z podanej nazwy
        timer_step = 10
* '''Powiel...''' - robi kopię aktualnie wybranej maszyny
        timer_start = true
* '''Usuń''' - usuwa aktualnie wybraną maszynę
        cpu_user_io_illegal = true
* '''Nazwa''' - nazwa aktualnie wybranej maszyny
        cpu_awp = true
* '''Identyfikator''' - identyfikator wybranej maszyny. Używa się go jako parametr opci '''-m''' przy wywoływaniu emulatora z linii poleceń
        cpu_mod = false
        mem_elwro = 1
        mem_mega = 16
        mem_mega_prom = mega_prom.img
        mem_mega_boot = true
        mem_os_segments = 2
}


== Logowanie ==
Konfiguracja maszyny podzielona jest na trzy zakładki opisane w kolejnych sekcjach.


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:
== Procesor ==
* 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:
Można zmienić następujące właściwości procesora


* '''enabled''' - aktywuj logowanie (true/false)
* '''Jednostka zmiennoprzecinkowa (AWP)''' - czy zainstalowany jest Arytmometr Wielokrotnej Precyzji
* '''file''' - plik, do którego zapisywany będzie log
* '''Modyfikacje procesora''' - czy obecne są modyfikacje procesora wprowadzone w MX-16
* '''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.
* '''Instrukcje we/wy niedozwolone w trybie użytkownika''' - czy instrukcje IN oraz OU są niedozwolone w trybie użytkownika
* '''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.
* '''Zatrzymaj przy braku pamięci''' - czy procesor zatrzymuje się, jeśli w segmencie pamięci dla systemu operacyjnego nastąpiło odwołanie do nieskonfigurowanej pamięci
* '''Okres zegara''' - co jaki czas zgłaszane są przerwania zegarowe (z wewnętrznego timera CPU)


Przykładowy blok konfiguracji logowania:
== Pamięć ==


emulog {
[[File:Konfiguracja-pamiec.png|thumb|500px|Konfiguracja: Maszyna (pamięć)]]
        enabled = true
        levels = "all=1,em4h=2,wnch=10"
        pname_offset = 54
}


== Urządzenia zewnętrzne ==
* '''Moduły Elwro''' - ilość zainstalowanych modułów pamięci ferrytowej Elwro (po 32 ksłów każdy)
* '''Moduły MEGA''' - ilość zainstalowanych modułów pamięci półprzewodnikowej MEGA Amepolu (po 64 ksłów każdy)
* '''Strony systemowe (sprzętowe)''' - ilość stron pamięci skonfigurowanych sprzętowo dla systemu operacyjnego w segmencie 0
* '''Obraz PROM MEGA''' - obraz pamięci PROM (EPROM) w pamięci MEGA, który zastąpi domyślny
* '''Wstępnie ładowany program''' - program, który zostanie automatycznie załadowany do segmentu 0 po włączeniu maszyny


=== Kanały ===
== Wejście/wyjście ==


Dołączenie emulacji kanału wymaga zdefiniowania dla niego bloku konfiguracji w sposób następujący:
[[File:Konfiguracja-wewy.png|thumb|500px|Konfiguracja: Maszyna (kanały i urządzenia)]]


channel <nr_kanału> = <typ_kanału> { ... }
W tej zakładce konfigurowane są kanały wejścia/wyjścia i podłączone do nich urządzenia:


Gdzie:
* '''Dodaj kanał''' - dodanie nowego kanału wejścia/wyjścia (max 16)
* '''nr_kanału''' - kolejny numer kanału w systemie
* '''Dodaj urządzenie''' - dodanie nowego kurządzenia w kanale (ich ilość zależy od kanału)
* '''typ_kanału''' - typ kanału, dostępne typy to:
* '''Usuń''' - usuń wybrane z listy urządzenie lub kanał
** '''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).
=== Dodawanie kanału ===


=== Urządzenia ===
Dodając nowy kanał należy wybrać jego numer oraz typ. Aktualnie obsługiwane kanały:


Konfiguracja emulowanych urządzeń definiowana jest następująco:
* '''Znakowy''' - kanał znakowy minikomputera, do podłączanie wolnych urządzeń znakowych
* '''MULTIX''' - procesor peryferynjy MULTIX Amepolu
* '''Tester we/wy''' - do testów komunikacji, używany przez testy emulatora


unit <nr_urządzenia> = <typ_urządzenia> [: argument [, argument [...]]]
=== Dodawanie urządzeń do kanału ===


Gdzie:
Dodanie nowego urządzenia wymaga wybrania jego numeru i typu, oraz ustalenia opcji, które są zależne od typu urządzenia. Dostępne typy urządzeń zależą od tego, w jakim kanale jest ono dodawane.
* '''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 ====


* Terminal w konsoli emulatora:
Dostępny w kanale znakowym i MULTIX-ie. '''UWAGA:''' Terminal w MULTIX-ie nie działa w obecnej wersji emulatora.
** typ urządzenia: '''term_console'''
 
** argumenty: brak
* '''Port TCP''' - port TCP na którym słucha emulacja terminala.
** przykład użycia: <tt>term_console</tt>
* '''Prędkość''' - emulowana prędkość działania emulacji terminala. Domyślnie 9600 bodów.
* Terminal TCP
 
** typ urządzenia: '''term_tcp'''
==== Pamięć SP45DE ====
** argumenty: port TCP
 
** przykład użycia: <tt>term_tcp:20034</tt>
Dostępna tylko w kanale znakowym.
* Terminal szeregowy
 
** typ urządzenia: '''term_serial'''
* '''Obrazy dyskietek''' - pliki zawierające obrazy dyskietek 8" o geometrii: 1 strona (głowica), 77 ścieżek, 26 sektorów na ścieżkę, 128 bajtów na sektor = 256256 bajtów.
** 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>
==== Zegar czasu rzeczywistego Amepolu ====
* Dysk MERA 9425
 
** typ urządzenia: '''mera9425'''
Dostępny tylko w kanale znakowym.
** argumenty: obraz talerza stałego, obraz talerza wymiennego
 
** przykład użycia: <tt>mera9425:disk1.img, disk2.img</tt>
* '''Obraz PROM''' - alternatywna zawartość pamięci PROM zegara (256 bajtów). Zastępuje domyślną.
* Dysk [[Winchester]]
 
** typ urządzenia: '''winchester'''
==== Winchester ====
** argumenty: obraz dysku
 
** przykład użycia: <tt>winchester:winchester.img</tt>
Dostępny tylko w MULTIX-ie.
 
* '''Obraz dysku''' - plik zawierający obraz dysku o geometrii: 4 strony (głowice), 615 ścieżek, 16 sektorów na ścieżkę, 512 bajtów na sektor = 20152320 bajtów.
 
==== Napęd dyskietek 5.25" ====
 
Dostępny tylko w MULTIX-ie. '''UWAGA:''' aktualnie nie obsługiwany.
 
= Ogólne =
 
[[File:Konfiguracja-ogolne.png|thumb|500px|Konfiguracja: Ogólne]]
 
== Emulacja ==
 
Ustawienia dotyczące sposobu realizacji emulacji.
 
'''Emulowane czasy''' określają to, jak wiernie emulator oddaje prawdziwą MERĘ-400 jeśli chodzi o prędkość pracy systemu. Możliwe są trzy poziomy:
 
* '''Wszystkie''' - Aktywne są wszystkie czasy, które są zaimplementowane w emulatorze. EM400 oddaje MERĘ-400 tak wiernie, jak tylko potrafi.
* '''Minimum''' - Aktywne są tylko czasy, które są wymagane do poprawnego działania oprogramowania MERY-400. Ogólna interakcja z emulowanym minikomputerem jest znacznie szybsza, niż z prawdziwym sprzętem.
* '''Żadne''' - '''UWAGA:''' w tym trybie oprogramowanie może działać niepoprawnie z wielu przyczyn. Emulacja działa tak szybko, jak to możliwe. Nie są zachowane niemal żadne czasy działania prwawdziwego komputera. Przeznaczony do testowania, debugowania i w innych, szczególnych przypadkach.
 
W miarę rozwoju emulatora w opcji '''Wszystkie''' uwzględnianych będzie coraz więcej aspektów pracy MERY-400.
 
== Interfejs użytkownika ==
 
* '''Język''' - język interfejsu. Pozwala wybrać jeden z języków lub honorować ustawienia systemu.
* '''Uruchom z włączoną maszyną''' - emulator uruchamia się z wybraną maszyną i włączonym zasilaniem (nie trzeba przekręcać kluczyka, żeby włączyć maszynę)
* '''Motyw pulpitu''' - GUI EM400 używa własnego motywu. Wyłączenie opcji powoduje, że używany jest motyw systemowy.
* '''Mały pulpit techniczny''' - grafika pulpitu technicznego skadrowana jest do interaktywnych elementów.
* '''Terminal''' - określa, czy emulator używa wbudowanej emulacji terminala, czy zewnętrznego terminala konfigurowanego w następnej opcji
* '''Polecenie terminala''' - polecenie, które uruchamiane jest, gdy użytkownik otwiera terminal, a opcja '''Terminal''' powyżej ustawiona jest na '''Zewnętrzny'''. Pomocnicze polecenie '''emterm''' instalowane jest wraz z emulatorem i zapewnia poprawne połączenie z emulatorem.
* '''Czcionka debugera''' - czcionka używana w interfejsie debugera
* '''Czcionka terminala''' - czcionka używana we wbudowanym terminalu
 
= Dźwięk =
 
[[File:Konfiguracja-dzwiek.png|thumb|500px|Konfiguracja: Dźwięk]]
 
Dźwięk w emulatorze to dwa osobne tory audio:
 
* dźwięki interfejsu - pstrykanie kluczy, dźwięk pokrętła rejestrów, etc.
* dźwięk głośniczka CPU - generowany przez samą emulację
 
== Dźwięki interfejsu ==
 
* '''Głośność''' - głośność dźwięków interfejsu
* '''Uwielbiam gdy cewki piszczą''' - sprawdź sam ;-)
 
== Głośniczek CPU ==
 
* '''Wyjście dźwięku włączone''' - włączenie dźwięku CPU
* '''Głośność''' - głośność głośniczka CPU
* '''Częstotliwość próbkowania'''
* '''Długość bufora'''
* '''Opóźnienie'''
* '''Podsystem audio'''
* '''Urządzenie'''
 
= Logowanie =
 
[[File:Konfiguracja-logowanie.png|thumb|500px|Konfiguracja: Logowanie]]
 
Umożliwia logowanie pracy emulatora do pliku.
 
* '''Logowanie włączone''' - aktywuje logowanie
* '''Komponenty''' - jakie komponenty emulacji zapisują swoje akcje do pliku logu
* '''Plik logu''' - plik, to którego log jest zapisywany
* '''Buforowanie liniowe''' - zapis do pliku odbywa się po każdej linii. W przeciwnym wypadku zapisy są buforowane do większych zapisów (wydajniejsze, ale można stracić fragment loga)
 
Dostępne komponenty:
 
* LIB - komunikaty biblioteki libem400
* APP - komunikaty aplikacji używającej biblioteki em400
* CRK5 - procesy i wywołania systemowe CROOK-5
* MEM - konfiguracja i zdarzenia w pamięci
* CPU - praca procesora '''UWAGA:''' włączenie tej opcji loguje każdą wykonywaną instrukcję. Może to spowolnić emulację i generować pliki o rozmiarze wielu GB
* OP - szczegóły wybranych instrukcji CPU
* INT - przerwania
* IO - podsystem wejścia/wyjścia
* MX - MULTIX
* CCHR - kanał znakowy
* CMEM - kanał pamięciowy
* UZDAT - port szeregowy w kanale znakowym
* UZFX - kontroler stacji dysków SP45DE
* MECLO - zegar czasu rzeczywistego Amepolu
* TERM - terminal
* 9425 - dysk MERA 9425
* WNCH - dysk Winchester
* FLOP - stacja dysków
* PNCH - dziurkarka taśmy papierowej
* PNRD - czytnik taśmy papierowej
* TAPE - taśma magnetyczna
 
= Plik konfiguracyjny =
 
Konfiguracja określona w oknie ustawień emulatora zapisywana jest do tekstowego pliku konfiguracyjnego. EM400 odnajduje go w następujący sposób:
 
# 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:
#* w systemach Linux, kolejno:
#** '''$XDG_CONFIG_HOME/em400/em400.ini'''
#** '''$HOME/.config/em400/em400.ini'''
#* w systemach Windows:
#** '''%APPDATA%\em400\em400.ini'''
# Jeśli plik konfiguracyjny nie istnieje, tworzony jest domyślny.
 
Aktualny opis pliku konfiguracyjnego wraz z przykładami znajduje się [https://github.com/jakubfi/em400/blob/master/cfg/em400.ini tutaj]

Aktualna wersja na dzień 14:45, 30 sie 2026

Konfiguracja emulatora dostępna jest z menu Emulator → Ustawienia i zorganizowana jest w sekcje:

  1. Maszyna - konfiguracje sprzętowe emulowanego komputera
  2. Ogólne - ustawienia emulacji i interfejsu użytkownika
  3. Dźwięk - ustawienia dźwięków interfejsu użytkownika i głośniczka CPU
  4. Logowanie - konfiguracja logowania

Maszyna

Konfiguracja: Maszyna (procesor)

EM400 pozwala przygotować wiele konfiguracji minikomputera i przełączać się nimi w zależności od potrzeb.

Przy pierwszym uruchomieniu, EM400 tworzy dwie domyślne maszyny:

  • MERA-400 - prosta konfiguracja z dwoma modułami pamięci Elwro i stacją dysków SP45DE
  • MX-16 - przeznaczona do uruchamiania systemu operacyjnego CROOK-5, z pamięcią MEGA Amepolu, procesorem peryferyjnym MULTIX i dyskiem Winchester

Zarządzanie maszynami umożliwiają następujące opcje:

  • Aktywna maszyna - wybór aktualnie edytowanej konfiguracji minikomputera
  • Dodaj... - dodawanie nowej maszyny. Otwiera okienko pozwalające wpisać jej nazwę. Identyfikator maszyny wywodzony jest z podanej nazwy
  • Powiel... - robi kopię aktualnie wybranej maszyny
  • Usuń - usuwa aktualnie wybraną maszynę
  • Nazwa - nazwa aktualnie wybranej maszyny
  • Identyfikator - identyfikator wybranej maszyny. Używa się go jako parametr opci -m przy wywoływaniu emulatora z linii poleceń

Konfiguracja maszyny podzielona jest na trzy zakładki opisane w kolejnych sekcjach.

Procesor

Można zmienić następujące właściwości procesora

  • Jednostka zmiennoprzecinkowa (AWP) - czy zainstalowany jest Arytmometr Wielokrotnej Precyzji
  • Modyfikacje procesora - czy obecne są modyfikacje procesora wprowadzone w MX-16
  • Instrukcje we/wy niedozwolone w trybie użytkownika - czy instrukcje IN oraz OU są niedozwolone w trybie użytkownika
  • Zatrzymaj przy braku pamięci - czy procesor zatrzymuje się, jeśli w segmencie pamięci dla systemu operacyjnego nastąpiło odwołanie do nieskonfigurowanej pamięci
  • Okres zegara - co jaki czas zgłaszane są przerwania zegarowe (z wewnętrznego timera CPU)

Pamięć

Konfiguracja: Maszyna (pamięć)
  • Moduły Elwro - ilość zainstalowanych modułów pamięci ferrytowej Elwro (po 32 ksłów każdy)
  • Moduły MEGA - ilość zainstalowanych modułów pamięci półprzewodnikowej MEGA Amepolu (po 64 ksłów każdy)
  • Strony systemowe (sprzętowe) - ilość stron pamięci skonfigurowanych sprzętowo dla systemu operacyjnego w segmencie 0
  • Obraz PROM MEGA - obraz pamięci PROM (EPROM) w pamięci MEGA, który zastąpi domyślny
  • Wstępnie ładowany program - program, który zostanie automatycznie załadowany do segmentu 0 po włączeniu maszyny

Wejście/wyjście

Konfiguracja: Maszyna (kanały i urządzenia)

W tej zakładce konfigurowane są kanały wejścia/wyjścia i podłączone do nich urządzenia:

  • Dodaj kanał - dodanie nowego kanału wejścia/wyjścia (max 16)
  • Dodaj urządzenie - dodanie nowego kurządzenia w kanale (ich ilość zależy od kanału)
  • Usuń - usuń wybrane z listy urządzenie lub kanał

Dodawanie kanału

Dodając nowy kanał należy wybrać jego numer oraz typ. Aktualnie obsługiwane kanały:

  • Znakowy - kanał znakowy minikomputera, do podłączanie wolnych urządzeń znakowych
  • MULTIX - procesor peryferynjy MULTIX Amepolu
  • Tester we/wy - do testów komunikacji, używany przez testy emulatora

Dodawanie urządzeń do kanału

Dodanie nowego urządzenia wymaga wybrania jego numeru i typu, oraz ustalenia opcji, które są zależne od typu urządzenia. Dostępne typy urządzeń zależą od tego, w jakim kanale jest ono dodawane.

Terminal

Dostępny w kanale znakowym i MULTIX-ie. UWAGA: Terminal w MULTIX-ie nie działa w obecnej wersji emulatora.

  • Port TCP - port TCP na którym słucha emulacja terminala.
  • Prędkość - emulowana prędkość działania emulacji terminala. Domyślnie 9600 bodów.

Pamięć SP45DE

Dostępna tylko w kanale znakowym.

  • Obrazy dyskietek - pliki zawierające obrazy dyskietek 8" o geometrii: 1 strona (głowica), 77 ścieżek, 26 sektorów na ścieżkę, 128 bajtów na sektor = 256256 bajtów.

Zegar czasu rzeczywistego Amepolu

Dostępny tylko w kanale znakowym.

  • Obraz PROM - alternatywna zawartość pamięci PROM zegara (256 bajtów). Zastępuje domyślną.

Winchester

Dostępny tylko w MULTIX-ie.

  • Obraz dysku - plik zawierający obraz dysku o geometrii: 4 strony (głowice), 615 ścieżek, 16 sektorów na ścieżkę, 512 bajtów na sektor = 20152320 bajtów.

Napęd dyskietek 5.25"

Dostępny tylko w MULTIX-ie. UWAGA: aktualnie nie obsługiwany.

Ogólne

Konfiguracja: Ogólne

Emulacja

Ustawienia dotyczące sposobu realizacji emulacji.

Emulowane czasy określają to, jak wiernie emulator oddaje prawdziwą MERĘ-400 jeśli chodzi o prędkość pracy systemu. Możliwe są trzy poziomy:

  • Wszystkie - Aktywne są wszystkie czasy, które są zaimplementowane w emulatorze. EM400 oddaje MERĘ-400 tak wiernie, jak tylko potrafi.
  • Minimum - Aktywne są tylko czasy, które są wymagane do poprawnego działania oprogramowania MERY-400. Ogólna interakcja z emulowanym minikomputerem jest znacznie szybsza, niż z prawdziwym sprzętem.
  • Żadne - UWAGA: w tym trybie oprogramowanie może działać niepoprawnie z wielu przyczyn. Emulacja działa tak szybko, jak to możliwe. Nie są zachowane niemal żadne czasy działania prwawdziwego komputera. Przeznaczony do testowania, debugowania i w innych, szczególnych przypadkach.

W miarę rozwoju emulatora w opcji Wszystkie uwzględnianych będzie coraz więcej aspektów pracy MERY-400.

Interfejs użytkownika

  • Język - język interfejsu. Pozwala wybrać jeden z języków lub honorować ustawienia systemu.
  • Uruchom z włączoną maszyną - emulator uruchamia się z wybraną maszyną i włączonym zasilaniem (nie trzeba przekręcać kluczyka, żeby włączyć maszynę)
  • Motyw pulpitu - GUI EM400 używa własnego motywu. Wyłączenie opcji powoduje, że używany jest motyw systemowy.
  • Mały pulpit techniczny - grafika pulpitu technicznego skadrowana jest do interaktywnych elementów.
  • Terminal - określa, czy emulator używa wbudowanej emulacji terminala, czy zewnętrznego terminala konfigurowanego w następnej opcji
  • Polecenie terminala - polecenie, które uruchamiane jest, gdy użytkownik otwiera terminal, a opcja Terminal powyżej ustawiona jest na Zewnętrzny. Pomocnicze polecenie emterm instalowane jest wraz z emulatorem i zapewnia poprawne połączenie z emulatorem.
  • Czcionka debugera - czcionka używana w interfejsie debugera
  • Czcionka terminala - czcionka używana we wbudowanym terminalu

Dźwięk

Konfiguracja: Dźwięk

Dźwięk w emulatorze to dwa osobne tory audio:

  • dźwięki interfejsu - pstrykanie kluczy, dźwięk pokrętła rejestrów, etc.
  • dźwięk głośniczka CPU - generowany przez samą emulację

Dźwięki interfejsu

  • Głośność - głośność dźwięków interfejsu
  • Uwielbiam gdy cewki piszczą - sprawdź sam ;-)

Głośniczek CPU

  • Wyjście dźwięku włączone - włączenie dźwięku CPU
  • Głośność - głośność głośniczka CPU
  • Częstotliwość próbkowania
  • Długość bufora
  • Opóźnienie
  • Podsystem audio
  • Urządzenie

Logowanie

Konfiguracja: Logowanie

Umożliwia logowanie pracy emulatora do pliku.

  • Logowanie włączone - aktywuje logowanie
  • Komponenty - jakie komponenty emulacji zapisują swoje akcje do pliku logu
  • Plik logu - plik, to którego log jest zapisywany
  • Buforowanie liniowe - zapis do pliku odbywa się po każdej linii. W przeciwnym wypadku zapisy są buforowane do większych zapisów (wydajniejsze, ale można stracić fragment loga)

Dostępne komponenty:

  • LIB - komunikaty biblioteki libem400
  • APP - komunikaty aplikacji używającej biblioteki em400
  • CRK5 - procesy i wywołania systemowe CROOK-5
  • MEM - konfiguracja i zdarzenia w pamięci
  • CPU - praca procesora UWAGA: włączenie tej opcji loguje każdą wykonywaną instrukcję. Może to spowolnić emulację i generować pliki o rozmiarze wielu GB
  • OP - szczegóły wybranych instrukcji CPU
  • INT - przerwania
  • IO - podsystem wejścia/wyjścia
  • MX - MULTIX
  • CCHR - kanał znakowy
  • CMEM - kanał pamięciowy
  • UZDAT - port szeregowy w kanale znakowym
  • UZFX - kontroler stacji dysków SP45DE
  • MECLO - zegar czasu rzeczywistego Amepolu
  • TERM - terminal
  • 9425 - dysk MERA 9425
  • WNCH - dysk Winchester
  • FLOP - stacja dysków
  • PNCH - dziurkarka taśmy papierowej
  • PNRD - czytnik taśmy papierowej
  • TAPE - taśma magnetyczna

Plik konfiguracyjny

Konfiguracja określona w oknie ustawień emulatora zapisywana jest do tekstowego pliku konfiguracyjnego. EM400 odnajduje go w następujący sposób:

  1. Jeśli użytkownik podał nazwę pliku konfiguracyjnego w linii poleceń (używając przełącznika -c), zostanie on użyty.
  2. Jeśli nie, domyślnie używany jest plik:
    • w systemach Linux, kolejno:
      • $XDG_CONFIG_HOME/em400/em400.ini
      • $HOME/.config/em400/em400.ini
    • w systemach Windows:
      • %APPDATA%\em400\em400.ini
  3. Jeśli plik konfiguracyjny nie istnieje, tworzony jest domyślny.

Aktualny opis pliku konfiguracyjnego wraz z przykładami znajduje się tutaj