Co nowego: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 1: | Linia 1: | ||
__NOTOC__ | __NOTOC__ | ||
=== 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 === | === 4 września 2012 === |
Wersja z 10:39, 4 paź 2012
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