Co nowego: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 1: | Linia 1: | ||
__NOTOC__ | __NOTOC__ | ||
=== 21 października 2012 === | |||
[[File:Em400_ncurses_1.png|thumb]] | |||
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 === | === 16 października 2012 === | ||
Zawartość odczytanej dyskietki jest następująca (w kolumnach kolejno: początkowy i końcowy sektor zbioru, nazwa zbioru, opis): | Zawartość odczytanej dyskietki jest następująca (w kolumnach kolejno: początkowy i końcowy sektor zbioru, nazwa zbioru, opis): |
Wersja z 11:27, 21 paź 2012
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:
-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