Co nowego

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

31 marca 2017

Od kilku miesięcy powstaje współczesna, wierna reimplementacja procesora MERY-400 w FPGA. Dziś procesor poprawnie przeszedł pierwszą grupę testów!

27 lipca 2016

Wersja 0.3 EM400 używa nowej, znacznie wierniejszej emulacji MULTIX-a. Pozwala to m.in. na uruchomienie systemu CROOK-5 bez używania bootloadera BOOTW.

2 lipca 2016

Odczytanych zostało pięć 9-ścieżkowych taśm magnetycznych, które Pan Zbigniew Czerniak zachował po tym jak MERY-400 i K-202 skończyły swoją służbę w Instytucie Okrętowym Politechniki Gdańskiej. Taśmy okazały się być skarbnicą źródeł oprogramowania dla MERY-400 i K-202! Zawierają m.in. źródła systemów operacyjnych SOK-1, SOWA, CROOK-1, CROOK-2, CROOK-3 i CROOK-4, a także mnóstwo narzędzi dla tych systemów, zarówno w postaci źródłowej jak i binarnej.

17 luty 2016

Odkryta została Największa tajemnica CROOK-a, która przez trzy lata przeszkadzała w poprawnym uruchomieniu części programów dla systemu CROOK-5.

10 stycznia 2016

Od dziś każdy może uruchomić system operacyjny CROOK-5 w EM400! Za zgodą autorów systemu, panów Zbigniewa Czerniaka i Marka Nikodemskiego, przygotowany został i opublikowany obraz dysku z zainstalowanym systemem CROOK-5 i mnóstwem narzędzi.

8 stycznia 2016

mera400.pl zagościła na Facebooku! Zapraszamy na https://facebook.com/mera400 po świeże informacje z życia MERY-400 i EM400.

16 lutego 2015

Odnalazły się zdjęcia następcy MERY-400, produkowanego przez Amepol minikomputera MX-16! Niezwykle cenne to znalezisko, biorąc pod uwagę fakt, że komputerów, zwłaszcza w tej formie, powstało bardzo niewiele.

23 września 2014

Wykonana dokumentacja fotograficzna pakietów procesora pozwoliła odtworzyć szczegóły przeróbek procesora, które składają się na zmodyfikowany procesor MX-16. Dzięki temu procesor emulowany przez EM400 jest już w pełni zgodny nie tylko z MERĄ-400, ale również z jej następcą.

1 sierpnia 2014

Dzięki uprzejmości Muzeum Techniki i Przemysłu serwis wzbogacił się o wysokiej jakości zdjęcia około 50 pakietów MERY-400, w tym zarówno pakietów podstawowych: procesora, pamięci, kanałów, etc., jak i urządzeń Amepolu: MULTIXa, zegara czasu rzeczywistego czy pamięci MEGA. Zdjęcia zilustrują odpowiednie artykuły na stronach serwisu, można je też obejrzeć w galerii.

4 marca 2014

Powstał format plików wykonywalnych i konsolidowalnych EMELF, dla którego wsparcie otrzymał EMAS i EMDAS. Jako uzupełnienie zestawu narzędzi powstał również konsolidator EMLIN.

5 lutego 2014

W dziale Literatura pojawiły się skany fragmentu oryginalnej dokumentacji MERY-400. Kolejne będą pojawiać się w miarę obróbki dostępnego materiału.

3 lutego 2014

Nastąpiło kilka zmian w zestawie narzędzi dla MERY 400 oraz w repozytoriach, w których są przechowywane.

  • ASSEM stał się assemblerem obsługującym wyłącznie składnię klasyczą (z mnemonikami K-202 i MERY 400),
  • Powstał EMAS - nowy assembler obsługujący składnię współczesną (nieco poprawnioną względem tej wspieranej do tej pory przez ASSEM). Jest szybszy i elastyczniejszy - nowa architektura pozwoli w przyszłości na assemblację do konsolidowalnych obiektów oraz rozbudowę o preprocesor.
  • Powstał EMDAS - szybszy i bardziej rozbudowany deassembler.
  • Do osobnego repozytorium wyniesiony został wdreader - narzędzie użyte do odczytu Winchestera
  • Tym samym dotychczasowe repozytorium stało się lokalizacją wyłącznie dla emulatora EM400.

Dopracowane zostały dwa elementy emulacji, które czynią emulator w pełni kompatybilnym z MX-16 Amepolu: pamięć MEGA i modyfikacje sprzętowe procesora. Trwają też prace nad uzupełnieniem i usprawnieniem emulacji MULTIX-a.

EM400 działa już również w systemie operacyjnym Windows, co pozwoli na jego udostępnienie w łatwiejszej w użyciu, binarnej wersji dla tego systemu.

13 października 2013

Emulator EM400 zdał kolejny, ważny sprawdzian. Producent MERY-400 dostarczał minikomputer z zestawem testów, z których najistotniejsze: test procesora (TP) i test arytmometru wielokrotnej precyzji (TPZ), udało się odnaleźć. Analiza tych kilku tysięcy linii kodu i próby uruchomienia go w emulatorze pozwoliły znaleźć kilka bardzo specyficznych niedokładności emulacji maszyny. Po naniesieniu poprawek EM400 poprawnie przechodzi oba testy, zbliżając się jeszcze bardziej do tego, jak działała prawdziwa MERA-400.

19 września 2013

W dęblińskiej Wyższej Szkole Oficerskiej Sił Powietrznych znajduje się MERA-400, która wciąż działa i spełnia swoje zadanie! Tutaj krótki opis systemu.

4 września 2013

mera400.pl i emulator EM400 zagościły na stronie głównej Wykopu, a to znaczy, że o MERZE-400 udało się opowiedzieć szerokiej publiczności. Dzięki, użytkownicy Wykopu! Informację o projekcie zamieściło również Studio Opinii.

27 sierpnia 2013

W emulatorze EM400 został uruchomiony system operacyjny MERY-400, CROOK-5! Poprawne funkcjonowanie tak skomplikowanego oprogramowania jest ostatecznym dowodem wiernej emulacji minikomputera. Ten ważny moment zbiega się z rocznicą istnienia http://mera400.pl - doskonały prezent na pierwsze urodziny serwisu. Wydarzenie zostało odnotowane na stronach PTI.

To oczywiśnie nie koniec prac. Wciąż pozostają do zaimplementowania brakujące urządzenia zewnętrzne, jest też kilka pomysłów na usprawnienie emulatora. W kolejce na implementację czekają również narzędzia ułatwiające pracę z plikami MERY-400.

11 sierpnia 2013

Nieprzerwanie trwają prace nad emulacją urządzeń zewnętrznych, niezbędnych do uruchomienia systemu CROOK-5. Większość funkcjonalności procesora peryferyjnego MULTIX jest już zaimplementowana, działa również dysk Winchester, a "w drodze" jest emulacja napędu MERA 9425 w kanale pamięciowym. Warto też odnotować, że emulacja procesora jest już kompletna: zaimplementowane zostały ostatnie brakujące instrukcje - operacje na liczbach zmiennoprzecinkowych.

30 kwietnia 2013

ASSEM, skrośny asembler dla MERY-400, poprawnie zbudował jądro systemu operacyjnego CROOK-5. To kolejny, po udanych testach procesora, ważny krok na drodze do uruchomienia systemu CROOK-5 w emulatorze EM400.

27 kwietnia 2013

W dziale Czytelnia pojawiły się teksty autorstwa Elżbiety Jezierskiej-Ziemkiewicz i Andrzeja Ziemkiewicza opowiadające o historii oraz budowie projektowanych przez nich komputerów K-202 i MERA-400.

30 marca 2013

Dostępny jest już raport z odczytu Winchestera z informacją o tym, jakie oprogramowanie i inne dane udało się odnaleźć, oraz slajdy z prezentacji na IV Seminarium Historii Informatyki.

26 lutego 2013

Jest już działający asembler generujący kod binarny MERY-400, a pracujący na komputerze PC. Dzięki temu emulator mógł po raz pierwszy uruchomić program dla MERY-400 napisany i zasemblowany na zupełnie innej architekturze.

15 lutego 2013

W trzeciej próbie odczytany został dysk Winchester MERY-400. Szczegółowy przebieg procesu odczytywania danych oraz opis zawartości dysku pojawią się niebawem.

11 stycznia 2013

Przeprowadzona została druga próba odczytu dysku Winchester działającego kiedyś w MERZE-400. Próba nieudana - dwa różne kontrolery odmówiły współpracy z dyskiem. Udało się natomiast namierzyć układ, który w minikomputerze użyty został do sprzęgnięcia Winchestera z systemem (na zdjęciu obok). To pozwoli ukierunkować toczące się już prace nad zbudowaniem kontrolera, dzięki któremu dane, miejmy nadzieję, uda się ostatecznie odczytać.

12 grudnia 2012

Zdigitalizowana została wypożyczona, brakująca dokumentacja kanału pamięciowego i znakowego, AWP, oraz kilku innych elementów systemu. Łącznie około 50 dokumentów, które obecnie są w fazie obróbki. Tym samym kompletna jest już dokumentacja pozwalająca na stworzenie funkcjonalnej emulacji MERY-400.

Kontroler, dzięki któremu będzie można odczytać zawartość Winchestera jest w drodze zza Wielkiej Wody. Prace nad odczytem zostaną podjęte na początku stycznia.

1 grudnia 2012

Powstał zestaw prostych narzędzi pozwalających zinterpretować zawartość systemu plików systemu CROOK-5. Przykładowy rezultat wywołania narzędzi:

amo:tools> ./label.py ../varia/cn 96
 Disk image    : ../varia/cn
 LABEL sector  : 96
-----------------------------------------------
 Label         : SYS
 DICDIC offset : 96
 FILDIC offset : 99
 MAP offset    : 106
 MAP end       : 107
 Disk end      : 760
 Disk name     : ......
amo:tools> ./dicdic.py ../varia/cn 96 98
 Disk image    : ../varia/cn
 DICDIC start  : 96
 DICDIC end    : 98
 data len      : 1536
-------------------------------------------------------------
  Name  Code Sect. Pas Budg.   Top  Acc.    OSL OSLarg
LIBRAR     0     1 ... 32767     0 32767 ...... ......
BOSS..    32     0 ... 32767    32 32767 ...... X2....
MAGAZ1 65532     0 ...     0     0     0 ...... ......
KSIEMA 65532     0 ...     0     0     0 ...... ......
EMPTY
amo:tools> ./fildic.py ../varia/cn 99 105
 Disk image    : ../varia/cn
 FILDIC start  : 99
 FILDIC end    : 105
 data len      : 3584
-------------------------------------------------------------
  name   dir typ typei  arg1  arg2   acc  attr   mem  user   res   beg   end   len
SYSTEM    48 P8G 27007     0     0    OW     0     0     4     0     1    96    95
FILDIC    48 SYS 31419     0     0    OR     0     0     4     0    99   106     7
CH....    32 1F. 45040     0  1799    AR    19     3    32  3323   202   210     8
COPFIL    32 27C 47763     0  2450    AR    19     5    32  3176   210   220    10
INIT1.    32 CHR  5138 65213     0    OR    32     0    32 10070   392   393     1
LIST..    32 16G 46127     0  1605    AR    16     0    32  3323   406   413     7
OSL...    32 7D. 54560     8  3073    AR    19     0    32  3323   428   441    13
PINF..    32 1C. 44920     0   475    AR     8     0    32  3323   445   447     2
BOOTL.    48 L5. 20480     0   255    LR     8     0    32  3323   459   460     1
BOSS..    48 4E. 49800     8  4542    LR    19     3    32  3323   460   478    18
CLEAD.    48 12A 45961     0  1349    LR    19     3    32  3323   478   484     6
EXM...    32 55C 52483     0  6938    AR    48     3    32 10070   484   551    67
MWORDS    32 CHR  5138 65145     1    AR     0     0    32 10070   551   553     2
...

16 listopada 2012

Przeprowadzona została pomyślna próba uruchomienia dysku Winchester używanego w jednej z MER-400. Dysk, po dwudziestu z górą latach, okazał się być sprawny. Talerze się kręcą, głowice pracują bez zarzutu, a elektronika dysku odpowiada na polecenia. Próba odczytu danych będzie miała miejsce jak tylko zestaw uruchomieniowy zostanie wyposażony w odpowiedni kontroler.

21 października 2012

Debuger emulatora em400 został wyposażony w nowy, wygodny interfejs użytkownika (zrzut ekranu obok). Pozwala on na bieżąco oglądać zawartość pamięci, wykonywany program i rejestry, pozostawiając przestrzeń linii poleceń do celów sterowania. Układ okien automatycznie dostosowuje się do rozmiarów terminala. Dalsze usprawnienia będą obejmować n.im.:

  • zawartość okna dynamicznie dostosowaywaną do jego rozmiarów
  • automatyczne przesuwanie obszaru pamięci do miejsc, w których nastąpił zapis/odczyt
  • graficzne wyróżnianie słów/bitów w pamięci i rejestrach, które w wyniku działania instrukcji zostały zmienione lub ocztytane

16 października 2012

Zawartość odczytanej dyskietki jest następująca (w kolumnach kolejno: początkowy i końcowy sektor zbioru, nazwa zbioru, opis):

000 2f8 GLOBAL : cały dysk
000 001 LABEL  : etykieta dysku
001 060 SYSTEM : jądro systemu
060 063 DICDIC : słownik skorowidzów
063 06a FILDIC : słownik zbiorów
06a 06b MAP    : mapa zajętości dysku
06b 076 NDIREC
076 0a6 XOSL   : interpreter zleceń
0a6 0b8 ASSK   : assembler K-202
0b8 0ca ASSM   : assembler MERY-400
0ca 0d2 CH     : porównywanie zbiorów
0d2 0dc COPFIL : szybkie kopiowanie zbiorów (dużymi rekordami)
0dc 0e1 COPY   : znakowe kopiowanie zbiorów
0e1 109 DEBU   : debuger
109 165 HELP   : pomoc systemu
165 176 INI
176 188 INI5
188 189 INIT1
189 196 LIF    : listowanie zawartości skorowidzu
196 19d LIST   : wyświetlanie zawartości zbioru
19d 1a0 LOAD   : wczytanie taśmy binarnej
1a0 a18 MACRO
1a8 a1c MAIL
1ac 1b9 OSL
1b9 1bd PER    : utrwalanie zbiorów
1bd 1bf PINF
1bf 1c9 SET
1c9 1ca TM     : wyświetl czas
1ca 1cb BOOT   : bootloader (zapisywany na taśmie perforowanej)
1cb 1cc BOOTL  : bootloader (zapisywany na pierwszym sektorze dysku)
1cc 1de BOSS   : interpreter zleceń administatora
1de 1e4 CLEAD  : zlecenie kompresji zbiorów
1e4 227 EXM    : edytor tekstowy
227 229 MWORDS
229 22b NWORDS
22b 22d MNAMES
22d 22f NNAMES
22f 231 MAGIC
231 233 NOMAG
233 234 COPEXM
234 238 COPLIB
238 239 REWR
239 23b X2
23b 23d MBWG

14 października 2012

Dyskietka "CROOK-5" faktycznie zawiera system operacyjny. Wskazują na to zarówno łańcuchy znaków, disassemblacja, jak i analiza struktury systemu plików. Na załączonym zrzucie ekranu proces odkrywania jej zawartości. Od lewej do prawej widać:

  • binarny podgląd fragmentu
  • ten sam fragment, zdekodowany z kodu R40 do ASCII, pokazujący część opisu systemu plików
  • disassemblacja wcześniejszego obszaru

4 października 2012

Serwis mera400.pl został przeniesiony na nowy sprzęt.

3 października 2012

Emulator ma już funkcjonalny, podstawowy debuger. Przykład użycia:

Pokazanie zawartości rejestrów procesora (rejestr zgłoszeń przerwań pokazuje przerwanie timera):

em400 [0 00 0x0000]> regs
           iiiiiiDAAABBBCCC             RM________QBNB__
IR: 0x0000 0000000000000000  SR: 0x0000 0000000000000000
IC: 0x0000 P: 0

    01234567012345670123456701234567      ZMVCLEGYX.......
RZ: 00000100000000000000000000000000  R0: 0000000000000000

     hex... dec...  bin.....|.......       hex... dec...  bin.....|.......
R00: 0x0000      0  0000000000000000  R01: 0x0000      0  0000000000000000
R02: 0x0000      0  0000000000000000  R03: 0x0000      0  0000000000000000
R04: 0x0000      0  0000000000000000  R05: 0x0000      0  0000000000000000
R06: 0x0000      0  0000000000000000  R07: 0x0000      0  0000000000000000

Deassemblacja trzech kolejnych rozkazów, od bieżącej pozycji IC:

em400 [0 00 0x0000]> dasm 3
0x0000: (2) LWI r1, 16
0x0002: (2) AWI r1, 17
0x0004: (2) RWD r1, 18

Wyświetlenie zawartości pamięci pod adresami 16 do 17:

em400 [0 00 0x0000]> mem 0 0x10 0x12
  addr: +000 +001 +002 +003 +004 +005 +006 +007 +008 +009 +00a +00b +00c +00d +00e +00f 
0x0010:  202  202   15                                                                   ......

Wykonanie trzech kolejnych instrukcji:

em400 [0 00 0x0000]> step
em400 [0 00 0x0002]> step
em400 [0 00 0x0004]> step

Ponowne pokazanie zawartości pamięci:

em400 [0 00 0x0006]> mem 0 0x10 0x12
  addr: +000 +001 +002 +003 +004 +005 +006 +007 +008 +009 +00a +00b +00c +00d +00e +00f 
0x0010:  202  202  404                                                                   ......

Deasemblacja kolejnego (nieprawidłowego) rozkazu i próba jego wykonania:

em400 [0 00 0x0006]> dasm
0x0006: (1) ILLEGAL: 0x0002 (dec: 2, bin: 0000000000000010)
em400 [0 00 0x0006]> step

Wyświetlenie zawartości rejestrów (rejestr zgłoszeń przerwań pokazuje przerwanie generowane przy próbie wykonania niewłaściwiej instrukcji):

em400 [0 00 0x0007]> regs
           iiiiiiDAAABBBCCC             RM________QBNB__
IR: 0x0002 0000000000000010  SR: 0x0000 0000000000000000
IC: 0x0007 P: 0

    01234567012345670123456701234567      ZMVCLEGYX.......
RZ: 00000110000000000000000000000000  R0: 0000000000000000

     hex... dec...  bin.....|.......       hex... dec...  bin.....|.......
R00: 0x0000      0  0000000000000000  R01: 0x0404   1028  0000010000000100
R02: 0x0000      0  0000000000000000  R03: 0x0000      0  0000000000000000
R04: 0x0000      0  0000000000000000  R05: 0x0000      0  0000000000000000
R06: 0x0000      0  0000000000000000  R07: 0x0000      0  0000000000000000
em400 [0 00 0x0007]> 

4 września 2012

EM400 - emulator MERY-400, jeszcze w zupełnych powijakach (1694 linie), wykonuje poprawnie pierwszy, testowy kod maszynowy, który w assemblerze wygląda tak:

LWI     r1, 16
AWI     r1, 17
RWI     r1, 18

23 sierpnia 2012

Pod adresem http://mera400.pl powstaje wiki poświęcone MERZE-400. Powstaje też disassembler kodu maszynowego, który pozwala zweryfikować, że na dyskietce faktycznie są binaria dla MERY-400 (fragment zdissassemblowanego INSTALL.EXE):

0x0125: BCD     r4, 256         # 0  100 000 000 (4 0 0)  m=100      # Branch if not all Conditions
0x0127: IRB     r1, -12         # 1  001 001 100 (1 1 4)  t=-c       # Increment Register and Branch
0x0128: LWD     r6, 65522+r3    # 0  110 011 000 (6 3 0)  m=fff2     # Load Word                   
0x012a: CWT     r4, 0           # 0  100 000 000 (4 0 0)  t=0        # Compare Word to parameTer   
0x012b: JER     r7              # 0  010 000 111 (2 0 7)  m=0        # Jump if Equal               
0x012c: LWT     r3, 16          # 0  011 010 000 (3 2 0)  t=10       # Load to Word paremeTer      
0x012d: SRZ     r4              # 1  100 001 000 (4 1 0)             # Shift Right, add Zero       
0x012e: JYS     1               # 0  110 000 001 (6 0 1)  t=1        # Jump if Y Short             
0x012f: DRB     r3, -3          # 1  011 000 011 (3 0 3)  t=-3       # Decrease Register and Branch
0x0130: LWI     r3, [4569+r3]   # 1  011 011 000 (3 3 0)  m=11d9     # Load Word                   
0x0132: UJD     730             # 0  000 000 000 (0 0 0)  m=2da      # Unconditional Jump

31 lipca 2012

Udało się odczytać dyskietkę 5.25" opisaną "CROOK-5". Zawartość wygląda obiecująco: Późniejsze prace pokazały, że ta lista plików nie ma nic wspólnego z faktyczną zawartością dyskietki

-rwxr-xr-x 1 amo amo  1572 Aug  4 20:22 E14X8.PAK
-rwxr-xr-x 1 amo amo 32060 Aug  4 20:22 HASLA.PAK
-rwxr-xr-x 1 amo amo  8496 Aug  4 20:22 INSTALL.EXE
-rwxr-xr-x 1 amo amo  9496 Aug  4 20:22 KLUCZE.PAK
-rwxr-xr-x 1 amo amo    72 Aug  4 20:22 KOLORY.DTA
-rwxr-xr-x 1 amo amo    72 Aug  4 20:22 KOLORYH.DTA
-rwxr-xr-x 1 amo amo    72 Aug  4 20:22 KOLORYM.DTA
-rwxr-xr-x 1 amo amo  9034 Aug  4 20:22 MAKEPLIK.PAK
-rwxr-xr-x 1 amo amo 24384 Aug  4 20:22 PTV.SKR
-rwxr-xr-x 1 amo amo 89164 Aug  4 20:22 PTVX.PAK
-rwxr-xr-x 1 amo amo 16442 Aug  4 20:22 TEKSTY.PAK
-rwxr-xr-x 1 amo amo 21406 Aug  4 20:22 UNPAK.EXE
-rwxr-xr-x 1 amo amo 12715 Aug  4 20:22 UNSKR.EXE
-rwxr-xr-x 1 amo amo  1649 Aug  4 20:22 V16X9.PAK
-rwxr-xr-x 1 amo amo 76277 Aug  4 20:22 ZAKLADY.SKR