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.

Repozytorium GIT ze źródłami emulatora i podręcznych narzędzi: https://github.com/jakubfi/mera400
Aktualny stan prac nad emulatorem
Kolor zielony w stanie implementacji oznacza, że element jest już funkcjonalny
Emulator
| Obszar/Funkcjonalność | Stan implementacji | Uwagi |
|---|---|---|
| Konfiguracja emulatora | 5% | Plik konfiguracyjny EM400 i jego obsługa |
| Linia poleceń emulatora | 0% | Opcje wywołania emulatora |
| Tablica skoków dla rozkazów | 100% | 1 lub 2 poziomy wywołań do osiągnięcia rozkazu |
| Dekoder rozkazów i argumentów | 100% | |
| Szkielet, pamięć, rejestry + makra | 100% | |
| Rozkazy procesora | 96% | |
| Konfiguracja programowa pamięci | 100% | |
| Rozkazy IN/OU (dekodowanie argumentów -> kanały) | 100% | |
| Szkielet kanałów i urządzeń | 100% | warstwa abstrakcji dla sterowników kanałów i urządzeń |
| System przerwań | 100% | |
| Bootstrap | 0% | Niepotrzebny (?) ze względu na ładowanie obrazu do pamięci emulatora |
| Infrastruktura testów automatycznych | 100% |
Emulator - urządzenia
| Obszar/Funkcjonalność | Stan implementacji | Uwagi |
|---|---|---|
| Kanał znakowy | 80% | |
| Kanał pamięciowy | 80% | |
| 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
| Obszar/Funkcjonalność | Stan implementacji | Uwagi |
|---|---|---|
| Szkielet | 100% | |
| Podgląd pamięci i rejestrów | 100% | |
| Disassembler | 100% | |
| Translator | 100% | nie-assemblerowy pseudokod |
| Load/save | 50% | |
| Breakpointy | 100% | |
| Ncurses | 100% | ergonomiczny interfejs użytkownika |
| Interpreter poleceń | 100% | nowa, bogatsza linia poleceń |
| Śledzenie zmian w pamięci i rejestrach | 80% | |
| Podgląd stosu | 100% | |
| Logowanie | 100% |
Narzędzia i inne
| Obszar/Funkcjonalność | Stan implementacji | Uwagi |
|---|---|---|
| Roboczy disassembler | 100% | Python |
| 25% | porzucony na rzecz pełnoprawnego ASSEM | |
| ASSEM | 90% | |
| ASSEM - wsparcie dla składni ASSK i ASSM | 0% | |
| Testy CPU | 80% | |
| 100% | porzucone na rzecz C5FS Explorera | |
| C5FS Explorer | 100% | Eksplorator systemu plików CROOK-5 |
| Sterownik FUSE dla systemu plików CROOK-5 | 100% |