Projekt wykonałem w MadPascal na podstawie kodu emulatora nieznanego autora, znalezionego w internecie jeszcze ubiegłego wieku oraz kodzie pracy dyplomowej, którą zrobiłem z kolegą Ernestem.
Co jest emulowane:
- CPU 8051
- Pamięć RAM 256B
- Pamięć CODE 6 kB / DATA 6 Kb lub współdzielone 12 Kb CODE/DATA (dekoder adresów)
- "Buzzer" i "Test LED"
- Podprogramy EPROM
poprzez wywołania podprogramów w EPROM:
- LCD
- Klawiatura
Możliwość wczytania plików w formacie Intel HEX/BIN.
Poniżej lista komend:
S - Step, krok
R - Run, uruchom
T - Trace, sledzenie
D - Dump, zrzut pamieci
M - Modify, modyfikacja pamieci i rej.
L - Load, ladowanie z pliku (hex/bin)
B - Breakpoint, pulapki
C - Clear, czyszczenie, resetowanie
P - Params, parametry
Q - Quit, zakoncz program
--------------------------------------
S - Step - zrob krok i zrzut.
R - Run uruchom, dowolny wolny klawisz
lub pulapka przerywa wykonywanie.
T - Trace - uruchom krokowo, po kazdej
instrukcji wykonywany jest zrzut.
D - Dump - zrzut pamieci lub deassembl.
DA <adres> - deasemblacja od adresu
lub od aktualnego PC
D<C|R|D|S> <adres> - zrzut pamieci:
C - kodu
R - pamiec wewnetrzna RAM
D - pamiec DATA
S - rejestr SFR
DL - pokaz wyswietlacz LCD
M - Modify - modyfikacja pamieci, rej.
M<C|R|D|S> <adres> <ciag hex>
- madyfik, pamieci:
C - kodu
R - pamiec wewnetrzna RAM
D - pamiec DATA
S - rejestr SFR
MP <wartosc> modyfikuj rejestr PC.
MO <wartosc> modyfikuj rejestr DPTR.
MT <wartosc> modyfikuj rejestr SP.
L - Load - wczytaj z pliku.
L<C|R|D|S> - wczytaj z pliku do pam.:
C - kodu
R - pamiec wewnetrzna RAM
D - pamiec DATA
S - rejestr SFR
L<C|R|D|S> H <nazwa pliku>
- wczyt. z pliku HEX
L<C|R|D|S> <adres> <nawa pliku>
- wvzyt. z pliku BIN, od podanego
adresu.
B - Breakpoint, wyswietl pulapiki.
BA <adres> <nr pulapki> dodaj pulapke.
nr - 0 - F.
BD <nr pulapki> - usun pulapke o nr.
nr - 0 - F.
BC - usun wszystkie pulapki.
C - Clear, czysc pamies/resetuj
CA - resetuj (czysc pamiec RAM/DATA,
pamiec CODE zostaje niezmieniona)
CC - czysc pamiec CODE.
CD - czysc pamiec DATA.
CL - czysc LCD.
P - Params, wyswietl paramety.
PM <0/1> wspoldzielona pamiec
CODE/DATA.
0 - nie, oddzielna pamiec
DATA (6kB) i CODE (6kB).
1 - tak, wspoldzielona pamiec
DATA i CODE (12kB)
PC <kolor hex> - zmien kolor ekranu.
Q - Quit - zakoncz program.
--------------------------------------
Emulowane funkcje EPROM DSM-51
(nazwa) (adres)
WRITE_TEXT 8100
WRITE_DATA 8102
WRITE_HEX 8104
WRITE_INSTR 8106 (atrapa)
LCD_INIT 8108
LCD_OFF 810A
LCD_CLR 810C
DELAY_US 810E
DELAY_MS 8110
DELAY_100MS 8112
WAIT_ENTER 8114
WAIT_ENTER_NW 8116
TEST_ENTER 8118
WAIT_ENT_ESC 811A
WAIT_KEY 811C
GET_NUM 811E
BCD_HEX 8120
HEX_BCD 8122
MUL_2_2 8124
MUL_3_1 8126
DIV_2_1 8128
DIV_4_2 812ADołączam źródła, oryginalne źródła emulatora 8051 w TP i przykłady z lekcji DSM-51. Zdaje się, że pracy dyplomowej nie mogę dołączyć.