Co nowego

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

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
R08: 0x0000      0  0000000000000000  R09: 0x0000      0  0000000000000000
R10: 0x0000      0  0000000000000000  R11: 0x0000      0  0000000000000000
R12: 0x0000      0  0000000000000000  R13: 0x0000      0  0000000000000000
R14: 0x0000      0  0000000000000000  R15: 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
R08: 0x0000      0  0000000000000000  R09: 0x0000      0  0000000000000000
R10: 0x0000      0  0000000000000000  R11: 0x0000      0  0000000000000000
R12: 0x0000      0  0000000000000000  R13: 0x0000      0  0000000000000000
R14: 0x0000      0  0000000000000000  R15: 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:

-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