EM400: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
Usunięte 1871 bajtów ,  24 lut 2022
Nie podano opisu zmian
 
(Nie pokazano 42 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
[[File:Em400_ncurses_1.png|thumb|400px|Debugger EM400]]
[[File:Em400-crook.png|thumb|400px|Start systemu [[CROOK-5]] i interpreter zleceń OSL w emulatorze EM400]]
EM400 jest powstającym emulatorem systemu MERA-400. W założeniu ma emulować kompletny system, wraz z zegarem czasu rzeczywistego, kanałami (znakowym i pamięciowym), oraz urządzeniami podłączonymi do kanałów (terminalami i pamięciami masowymi). W dziale [[Pytania]] spisane są aktualnie wymagające wyjaśnienia kwestie.
EM400 jest emulatorem systemu MERA-400. W obecnym stadium rozwoju pozwala na poprawne uruchamianie oryginalnego oprogramowania minikomputera, m.in. systemu operacyjnego [[CROOK]], poprawnie wykonują się też testy procesora dołączane do zestawu przez producenta. Emulowane elementy systemu to:
* procesor (zarówno MERY-400 jak i z [[Modyfikacje sprzętowe procesora|przeróbkami]] wprowadzonymi w [[MX-16]])
* [[Arytmometr Wielokrotnej Precyzji]]
* pamięć Elwro (ferromagnetyczna, bloki po 32ksłowa)
* [[Pamięć MEGA]] [[Amepol]]-u (półprzewodnikowa, bloki po 64ksłowa)
* kanał znakowy
* procesor peryferyjny [[MULTIX]]
* dysk [[Winchester]]
* terminal znakowy


Repozytorium GIT ze źródłami emulatora i podręcznych narzędzi: https://github.com/jakubfi/mera400
== Dokumentacja użytkownika ==


* [[Debugger EM400]]
* [[EM400 - Instalacja|Instalacja]]
* [[EM400 - konfiguracja|Konfiguracja]]
* [[EM400 - linia poleceń|Wywołanie z linii poleceń]]
* [[Debugger EM400|Debugger]]
* [[CROOK-5 w EM400]]
* [[EM400 - uruchamianie programów]]


== Aktualny stan prac nad emulatorem ==
== Linki ==


Kolor zielony w stanie implementacji oznacza, że element jest już funkcjonalny
* [[Pytania|Do wyjaśnienia]]
* [https://github.com/jakubfi?tab=repositories Repozytoria źródeł emulatora i narzędzi]
* [[Wydajność EM400|Wydajność]]
* [[EM400 - Plan prac|Plan prac]]


=== Emulator ===
== Narzędzia ==
 
* [[EMAS]] - assembler skrośny dla MERY-400 używający współczesnej składni
{| class="wikitable"
* [[EMDAS]] - deassembler binariów MERY-400
! Obszar/Funkcjonalność !! Stan implementacji !! Uwagi
* [[EMAWP]] - biblioteka realizująca operacje na liczbach długich i zmiennoprzecinkowych w standardzie MERY-400
|-
* [[EMCRK]] - biblioteka i narzędzia wspomagające obsługę struktur danych systemu [[CROOK-5]]
| Konfiguracja emulatora || 5% || Plik konfiguracyjny EM400 i jego obsługa
* [[ASSEM]] - assembler skrośny używający takiej samej składni jak [[Język_symboliczny_(assembler)_ASSM|ASSM]] i ASSK
|-
| Linia poleceń emulatora || 0% || Opcje wywołania emulatora
|-
| Tablica skoków dla rozkazów || <font color=green>100%</font> || 1 lub 2 poziomy wywołań do osiągnięcia rozkazu
|-
| Dekoder rozkazów i argumentów || <font color=green>100%</font>
|-
| Szkielet, pamięć, rejestry + makra || <font color=green>100%</font> ||
|-
| Rozkazy procesora || <font color=green>96%</font> || 
|-
| Konfiguracja programowa pamięci || <font color=green>100%</font> ||
|-
| Rozkazy IN/OU (dekodowanie argumentów -> kanały) || <font color=green>100%</font> ||
|-
| Szkielet kanałów i urządzeń || <font color=green>100%</font> || warstwa abstrakcji dla sterowników kanałów i urządzeń
|-
| System przerwań || <font color=green>100%</font> ||
|-
| Bootstrap || 0% || Niepotrzebny (?) ze względu na ładowanie obrazu do pamięci emulatora
|-
|}
 
=== Emulator - urządzenia ===
 
{| class="wikitable"
! Obszar/Funkcjonalność !! Stan implementacji !! Uwagi
|-
| Kanał znakowy || <font color=green>80%</font> ||
|-
| Kanał pamięciowy || <font color=green>80%</font> ||
|-
| Terminal znakowy || 0% ||
|-
| Mera 9425 || 0% ||
|-
| Winchester w kanale pamięciowym (translacja adresów?) || 0% ||
|-
| PLIX? || 0% ||
|-
| MULTIX? || 0% ||
|-
| Winchester w PLIX-ie? || 0% ||
|-
| Floppy 5.25"? || 0% ||
|-
|}
 
=== Debugger ===
 
{| class="wikitable"
! Obszar/Funkcjonalność !! Stan implementacji !! Uwagi
|-
| Szkielet || <font color=green>100%</font> ||
|-
| Podgląd pamięci i rejestrów || <font color=green>100%</font> ||
|-
| Disassembler || <font color=green>100%</font> ||
|-
| Translator || <font color=green>100%</font> || nie-assemblerowy pseudokod
|-
| Load/save || 50% ||
|-
| Breakpointy || <font color=green>100%</font> ||
|-
| Ncurses || <font color=green>100%</font> || ergonomiczny interfejs użytkownika
|-
| Interpreter poleceń || <font color=green>100%</font> || nowa, bogatsza linia poleceń
|-
| Śledzenie zmian w pamięci i rejestrach || <font color=green>80%</font> ||
|-
| Podgląd stosu || <font color=green>100%</font> ||
|-
| Logowanie || <font color=green>100%</font> ||
|-
|}
 
=== Narzędzia ===
 
{| class="wikitable"
! Obszar/Funkcjonalność !! Stan implementacji !! Uwagi
|-
| Roboczy disassembler || <font color=green>100%</font> || Python
|-
| <strike>Roboczy Assembler</strike> || 25% || porzucony na rzecz pełnoprawnego ASSEM
|-
| ASSEM || <font color=green>70%</font> ||
|-
| Testy automatyczne CPU || 5% ||
|-
| <strike>Narzędzia do odczytu systemu plików CROOK-5</strike> || <font color=green>100%</font> || porzucone na rzecz C5FS Explorera
|-
| C5FS Explorer || <font color=green>100%</font> || Eksplorator systemu plików CROOK-5
|-
| Sterownik FUSE dla systemu plików CROOK-5 || <font color=green>100%</font> ||
|-
|}

Menu nawigacyjne