
W ramach swojej pracy dyplomowej inżynierskiej napisałem emulator DSM-51.
System został zaprojektowany w latach dziewięćdziesiątych, jest do dzisiaj produkowany przez firmę MicroMade i konstrukcja nie zmieniła się od tamtego czasu. Jedynie w roku 2004 zmienił się wygląd z powodu wprowadzenia w życie lutowania bezołowiowego i tym samym zastosowania innych elementów.
Nie wiem, jak obecnie wygląda popularność tego sprzętu w szkołach i uczelniach, ale widzę, że od czasu do czasu pojawia się nowy temat dotyczący wykonania zadania szkolnego na tym systemie, tak 2 lub 3 lata temu pojawił się wątek na temat szukania innych emulatorów niż Jagoda.
Warto jednak mieć na uwadze, że on jest oparty na rozwiązaniach stosowanych w latach dziewięćdziesiątych, a może osiemdziesiątych, bo technologia do Polski zawsze dociera jakiś czas później w stosunku do USA i Japonii.
Jest to system stosowany w szkołach średnich i na uczelniach wyższych, używany na przedmiotach związanych z programowaniem układów mikroprocesorowych. Jak sama nazwa wskazuje, urzadzenie służy do nauki programowania mikrokontrolerów 8051.
Ponieważ, jak ja miałem na nim zajęcia, system mnie zainteresował do tego stopnia, że chciałem mieć go w domu i na nim programować. Ponieważ na prawdziwy DSM-51 mnie nie stać, a umiem programować w C#, chciałem mieć odpowiednik systemu w komputerze. Jakiś rok temu zacząłem go tworzyć na własne potrzeby, ale projekt porzuciłem, bo popełniłem pewne błędy implementacyjne, które mogły znacznie utrudnić implementację pełnej funkcjonalności i nie warto było tamtego projektu przerabiać, więc postanowiłem zbudować emulator na nowo od podstaw.
Tworzenie trwało mniej więcej miesiąc wakacji z przerwani, obecnie zapewnia 99% kompatybilności. Różnice w kompatybilności polegają tylko na braku implementacji elementów, które istnieją w systemie, ale zwykle nie są wykorzystywane. Dokładny opis kompatybilności jest w załączniku.
Jak wiadomo, już jest jeden emulator, nazywa się Jagoda, ale tamten emulator ma sporo ograniczeń, których nie ma w moim.
Jedną z najważniejszych cech mojego emulatora jest obsługa plików Intel Hex, tych samych, które wprowadza się do prawdziwego systemu, więc użytkownik może programować w dowolnym języku, ważne, żeby kompilator generował pliki w formacie Intel Hex, odczytywane przez program do wprowadzania ich do DSM-51.
Poniżej obraz przedstawiający emulator z uruchomionym programem dla DSM-51:

Emulator wymaga środowiska .NET 2.0 lub kompatybilnego. Sprawdzałem działanie w środowisku Mono w systemie Linux, nie stwierdziłem żadnych błędów w działaniu z powodu ewentualnej niekompatybilności Mono z .NET 2.0.
W załączniku jest program i opis. Mój promotor wie o moim zamiarze udostępnienia emulatora i twierdzi, że nie ma problemu. Inaczej by wyglądała sprawa, gdybym rozważał udostępnienie całej pracy inżynierskiej, z tego powodu całej pracy nie udostępniam.
Czekam na ewentualne pytania, sugestie, być może są jakieś błędy (mimo dołożenia wszelkich starań i uruchamiania w emulatorze wielu różnych programów, nie mogę zagwarantować, że nie ma żadnych błędów implementacyjnych w samym emulatorze).
Cool? Ranking DIY