Emulator '51 do 64KB
Instrukcja obsługi
Emulator oddaje nieocenione usługi podczas uruchamiania programów dla 89C55,
ponieważ największe dostępne procesory z SPI posiadają 12kB FlashRom (89S53).
Napisanie więc programu dla 89C55 jest uciążliwe. Dzięki emulatorowi
uruchamianie programów dla 89C55 staje się przyjemnością. Ponadto pisanie
programów dla procesorów 89S8252 i 89S53 jest wygodniejsze, ponieważ czas
zapisu 8kB po SPI wynosi około 60 sekund, w porównaniu do 3 sekund dla
emulatora 51-64kB, czyli około 20 razy szybciej!
Podłączenie:
Emulator łączymy z komputerem dołączonym kablem do wolnego portu
w komputerze. Gniazdo RS w emulatorze znajduje się z tyłu obudowy
W wersji bez interfejsu obsługującego zewnętrzną pamięć danych taśma sondy emulacyjnej na stałe jest podłączona z płytką emulatora i wychodzi z lewej strony obudowy.
W wersji emulującej pamięć danych na górze obudowy znajdują się dwa gniazda opisane "Internal ROM" i "External ROM"
Zawartość dyskietki:
Na dyskietce dla IBM PC umieszczono:
katalog "C" - rozkazy dla emulatora
W katalogu tym zawarte są pliki tekstowe sterujące pracą emulatora.
katalog "EXE" - kompilator asemblera 8051
Kompilator umożliwia kompilację warunkową. O składni źródłówki można poczytaę w pliku "Asm51.doc".
katalog "INCL" - include
W katalogu umieszono include dla asemblerów.
plik "TestWP.bat" - wysyła on plik IntelHex generujący na porcie P0 efekt pływającego punktu. Plik ten umożliwia przetestowanie emulatora. Taśma złącza emulacyjnego podłączona jest do gniazd IntenalROM, prędkośę transmisji 9600bd, adres emulatora #0. Składnia rozkazu:
TestWP [nr portu COM] np.:
TestWP 2
wyśle plik na port COM2
plik "TestWP.hex" - plik wysyłany rozkazem TestWP.bat
plik "Test2250.bat" - wysyła plik IntelHex z systemem operacyjnym dla AVT2250. Plik ten umożliwia przetestowanie emulatora. Wtyk emulatora musi byę umieszczony w systemie AVT2250, Taśma złącza emulacyjnego podłączona jest do gniazd ExtenalROM, prędkośę transmisji 9600bd, adres emulatora #0. Składnia rozkazu:
Test2250 [nr portu COM] np.:
Test2250 2
wyśle plik na port COM2
plik "Test2250.hex" - plik wysyłany rozkazem Test2250.bat
plik "a51.bat" - kompiluje program źródłowy, po czym wysyła plik wynikowy na port COM2.
Składnia rozkazu:
51 [nazwa pliku bez rozszerzenia .asm] np.:
51 Test
Skompiluje plik źródłowy "Test.asm" do postaci wynikowej i wyśle portem COM2. prędkośę transmisji 9600bd, adres emulatora #0. Zdecydowano się na stały adres portu COM, aby zaoszczędzię ciągłego wpisywania jego nr podczas kompilacji. Jeśli chcemy zmienię nr portu należy wszystkie wystąpienia tekstu COM2 w pliku "51.bat" zamienię na np. COM1 dla portu nr 1. Jeśli chcemy zmienię prędkośę transmisji należy zmienię prędkośę w linii:
MODE COM2 9600,n,8,1
na inną. Jeśli chcemy zmienię adres emulatora neleży zmienię linię:
COPY C\INIT0
na np.:
COPY C\INIT1
dla adresu #1
Jak łatwo wywnioskowaę można osiągnąę tylko prędkości: 9600, 19200, 57600, 115200bd, a gdzie obiecane 345600? Funkcję zmiany prędkości na większą realizuje plik "a51f.bat". Składnia jest taka sama jak dla "51.bat". W pliku tym występują jednak dodatkowo linie:
Copy C\b19200 COM2
Mode COM2 19200,n,8,1
Powodują one przestawienie emulatora na większą prędkośę transmisji, następnie zmianę prędkości w PC. Od tej chwili transmisja przebiega ze zwiększoną prędkością. W powyższym przypadku prędkośę jest zwiększana do 19200bd, ale można ją zwiększyę do 115200 czy 345600bd. Należy jednak pamiętaę, że maksymalna prędkośę transmisji zależy od BIOS^˝^u i od płyty głównej, a konkretnie zastosowanego układu UART.
plik "Test.asm" - Plik źródłowy w wyniku kompilacji którego (programem "a51" lub "a51f") powstanie odpowiednik pliku "TestWP.hex" generujący "wędrujący punkt".
Programów nie trzeba instalować, wystarczy skopiowaę w dowolne miejsce na dysk.
Na dyskach dla Amigi umieszczono pakiet kompilatorów z możliwością komilacji warunkowej.
"kliknięcie" na ikonę "Dekompresuj" na dysku nr 1 połączy pliki "kompilatory.lzx" i "kompilatory.l01" w plik "kompilatory.lha" następnie rozpakuje go do RAM; Wymaga to 6MB pamięci RAM. Jeśli nie posiadamy tyle pamięci "kliknijmy" na ikonę "DekompresujOszczędnie". Dekompresja zostanie przeprowadzona do katalogu SYS: Po dekompresji pakiet można zainstalowaę "RAM:Asemblery/Instaluj na HD" ("SYS:Tent/Asemblery/Instaluj na HD" dla dekompresji oszczędniej). Po instalacji pliki można usunąę ("del RAM:asemblery ALL" lub del SYS:Tent/Asemblery ALL dla dekompresji oszczędnej). W zainstalowanym pakiecie w katalogu "Emu51-64" znajdziemy między innymi:
"Test.asm" - przykładowy program źródłowy generujący "wędrujący punkt"
"TestAVT2250.skrypt" - funkcjonalny odpowiednik pliku "Test2250.bat" dla PC.
"TestWP.skrypt" - funkcjonalny odpowiednik pliku "TestWP.bat" dla PC.
O obsłudze i sposobie instalacji można przeczytaę w pliku "CompilerDoc.PL".
Opis rozkazów akceptowanych przez emulator:
Wydając odpowiedni rozkaz do emulatora można wyczyścię jego pamięę,
czy zmienię prędkośę transmisji.Emulator akceptuje komendy:
@emu51-64 #x
gdzie x nr symulatora z zakresu 0...4. Komenda powoduje przejście
z trybu emulacji do trybu ładowania. Objawia się to świeceniem diody LOAD.
Po połączeniu można wydaę jedną z poniższych komend:
:xxx...xx
Wczytanie pliku IntelHex. Pierwsze pojawienie się znaku ":" powoduje
oczekiwanie na plik IntelHex. Akceptowane są rekordy o długości do 256 bajtów. Wielkośę znaków nie ma znaczenia, znakiem końca linii może byę kod:
LF - Amiga
CR - C64, MAC, Unix
CR+LF - PC
Ewentualne błędy pojawiające się podczas transmisji są sygnalizowane diodami LED.
@write
Wczytanie pliku binarnego. Ewentualne błędy są sygnalizowane diodami LED.
(koniec pliku jeśli brak znaków przez 1 sekundę). Zaleca się korzystanie
z pliku "write" zawierające znak końca linii w postaci CR+LF. Jeśli wyślemy
tekst "@write", a znak końca linii będzie składał się tylko ze znaku LF (Amiga)
czy CR (Mac) plik zostanie źle odczytany chyba, że sami dodamy dowolny znak,
który zastępuje brakujący CR lub FL i zostanie zignorowany przykład 1:
@writeCRLF0123456789
taki plik zostanie poprawnie zapisany do emulatora w postaci:
$30 $31 $32 $33 $34 $35 $36 $37 $38 $39
przykład 2:
@writeLF0123456789
taki plik zostanie źle zapisany do emulatora w postaci:
$31 $32 $33 $34 $35 $36 $37 $38 $39
@clear lub @clr
Czyści pamięć symulatora wypełniając wartością $FF.
@end
Rozłączenie z symulatorem. Komenda powoduje przejście z trybu LOAD
do trybu symulacji. Dioda LOAD gaśnie, program w symulatorze zostaje
uruchomiony jak po resecie CPU.
@Baud
Pędkość transmisji ustawiamy zworkami. Można ją także zmienię programowo:
@Baud 4800 - zmiana prędkości transmisji.
@Baud 9600 - zmiana prędkości transmisji.
@Baud 14400 - zmiana prędkości transmisji.
@Baud 19200 - zmiana prędkości transmisji.
@Baud 28800 - zmiana prędkości transmisji.
@Baud 38400 - zmiana prędkości transmisji (tylko dla wersji 64KB).
@Baud 57600 - zmiana prędkości transmisji.
@Baud 115200 - zmiana prędkości transmisji (tylko dla wersji 64KB).
@Baud 345600 - zmiana prędkości transmisji (tylko dla wersji 64KB).
UWAGA! O maksymalnych prędkościach transmisji (ponad 57600bd) decyduje typ płyty głównej komputera i wersja BIOS'u!
"Cisza" na łączu RS przez 10 sekund od nadania ostatniego znaku powoduje przejście z trybu LOAD do trybu symulacji.