|
|
(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> ||
| |
| |-
| |
| |}
| |