Plik dokumentu w formacie PostScript lub PDF.


System uruchomieniowy ROM68K
płyty prototypowej MC68EC0x0IDP

Dr inż. Witold Marańda

12 października 2000

Spis treści

1  Konfiguracja systemu
2  Składnia poleceń
3  Opis poleceń
    3.1  AS - asembluj do pamięci
    3.2  BI - uruchom program monitora MON68
    3.3  CB - Usuń punkt przerwań
    3.4  CM - porównaj pamięć
    3.5  DB - ustaw punkt przerwań
    3.6  DC - Załaduj plik w postaci S-rekordów
    3.7  DI - disasembluj pamięć
    3.8  DM - wyświetl pamięć
    3.9  DO - wyświetl rejestry monitora
    3.10  DR - wyświetl zawartość rejestrów
    3.11  EC - oblicz wartość dziesiętną
    3.12  FM - wypełnij pamięć
    3.13  GO - uruchom program
    3.14  HC - konfiguracja sprzętu
    3.15  HE - wyświetl opis poleceń
    3.16  LB - wyświetl listę punktów przerwań
    3.17  MM - kopiuj pamięć
    3.18  MP - ustaw mapowanie adresów logicznych systemu
    3.19  PM - zapisz do pamięci
    3.20  PR - zapisz do rejestrów
    3.21  SM - przeszukaj pamięć
    3.22  ST - wykonaj instrukcję

1  Konfiguracja systemu

Płyta prototypowa MC68EC0x0IDP jest wyposażona w program ROM68K umieszczony w pamięci ROM i uruchamiany po włączeniu zasilania. Program ten realizuje następujące funkcje: Najprostsza konfiguracja systemu składa się z płyty prototypowej oraz komputera macierzystego połączonych łączem szeregowym z protokółem RS-232. Na komputerze macierzystym, wykorzystywanym jako konsola systemu MC68EC0x0IDP, musi być uruchomiony dowolny program terminala, z możliwością przesyłania danych poprzez port szeregowy.

Podczas pracy z programem ROM68K polecenia wydawane są z klawiatury terminala (tj. komputera macierzystego), a ich efekty wyprowadzane są na ekran monitora terminala. Po włączeniu zasialania, program ROM68K zgłasza się komunikatem i znakiem zachęty:

Copyright 1993 Motorola Inc. All rights reserved
Copyright 1993 Software Components Group. All rights reserved
IDP ROM Version 3.0
Processor Type is: M68030
DRAM Size: 2 Megs

ROM68K :->

2  Składnia poleceń

Wszystkie polecenia programu ROM68K są dwuliterowe po których podaje się wymagane argumenty (program nie rozróżnia małych i wielkich liter) np.: GO 1B, pr PC 40000, db 50ac6 8.

Wszystkie numeryczne argumenty poleceń tj. dane lub adresy, są liczbami szestnastkowymi bez żadnego znaku prefixu.

Odwołanie do rejestrów wewnętrzych mikroprocesora odbywa się przez podanie jego nazwy tj.:

D0-D7 - Data Registers
A0-A7 - Address Registers
PC - Program Counter
SR - Status Register
USP, MSP, ISP - User, Master, Interrupt Stack Pointer
VBR - Vector Base Register
DFC, SFC - Destination and Source Function Code registers
CACR, CAAR - Cache Control and Address Registers
Domyślnie wszystkie polecenia operują na danych o rozmiarze bajtu, ale użytkownik może zmienić to zachowanie dodając symbol rozmiaru danych do polecenia. Dopuszczalne są następujące symbole: .B (bajt), .W (słowo: 2 bajty) oraz .L (długie słowo: 4 bajty).

Niektóre polecenia akceptują lub wymagają podania jako argumentu obszaru pamięci. Obszary można zapisywać podając początkowy i końcowy adres rozdzielony dwiema kropkami np. 40000..400FF lub podając adres początku obszaru i ilość elementów np. 40000 FF. W ostatnim przypadku, adres końcowy obliczany jest przez dodanie do adresu poczatkowego ilości elementów przeskalowanych względem rozmiaru danych i pomniejszonych o jeden. Komórka o adresie końcowym również należy do danego obszaru.

Adresy mogą być podawane jako absolutne lub względem zawartości rejestrów adresowych. W tym drugim przypadku, adres zbudowany jest z przesunięcia, znaku ukosnika oraz nazwy rejestru np. 2F/A0, 0/A0 lub /A0.

Przykłady:

Polecenia dotyczące pamięci systemu 
AS Asembluj do pamięci 
CM Porównaj pamięć 
DI Disasembluj pamięć 
DM Wyświetl pamięć 
FM Wypełnij pamięć 
MM Kopiuj pamięć 
MP Mapuj pamięć 
PM Zapisz do pamięci 
SM Przeszukaj pamięć 
Polecenia dotyczące rejestrów mikroprocesora 
DO Wyświetl rejestry dodatkowe 
DR Wyświetl zawartość rejestrów 
PR Zapisz do rejestrów 
Polecenia związane z uruchamianiem programów 
CB Usuń punkt przerwań 
DB Ustaw punkt przerwań 
GO Uruchom program 
LB Wyświetl listę punktów przerwań 
ST Wykonaj instrukcję 
Polecenia związane z przesyłaniem danych 
BI Uruchom program monitora MON68 
DC Załaduj plik w postaci S-rekordów 
Inne polecenia 
EC Oblicz wartość dziesiętną 
HC Konfiguracja sprzętu 
HE Wyświetl opis poleceń 
Table 1: Lista poleceń programu ROM68K

3  Opis poleceń

Pełna lista poleceń programu ROM68K znajduje się w tablicy 1. Polecenia można podzielić na następujące grupy: W opisie poleceń, argumenty podane w nawiasach kwadratowych '[]' są opcjonalne, natomiast rozdzielenie argumentów znakiem '|' oznacza konieczność wyboru jednego z nich.

3.1  AS - asembluj do pamięci

Składnia:

AS[.rozmiar] adres Polecenie AS wyświetla i pozwala zmienić zawartość komórki pamięci o podanym adresie używając standardowych mnemoników asemblera 680x0 oraz szestnastkowo. W odpowiedzi na wyświetloną informację i znak zachęty '=', użytkownik może wprowadzić nową instrukcję, zakończyć wykonywanie polecenia przez wpisanie znaku kropki '.' lub po naciśnięciu klawisza Enter przejść do asemblacji następnej instrukcji.

Podczas wprowadzania nowej instrukcji, polecenie akceptuje standardowe mnemoniki asemblera 680x0, przy czym polecenia nieodpowiednie dla danego typu procesora będą odrzucone. Adresy względne np. dla instrukcji skoków, muszą być podawane w postaci absolutnej - adres względny będzie obliczony automatycznie.

3.2  BI - uruchom program monitora MON68

Składnia:

BI

Polecenie służy do przełączenia z programu ROM68 do MON68. Konfiguracja systemu nie ulega zmianie, tj. nie zmienia się aktualne mapowanie pamięci oraz konfiguracje urządzeń systemowych dokonane podczas pracy w programie ROM68.

3.3  CB - Usuń punkt przerwań

Składnia:

CB indeks Polecenie CB usuwa zdefiniowany poleceniem DB punkt przerwania o podanym numerze. Jeśli jako argument podany zostanie znak '*', usuniete zostaną wszystkie punkty przerwań.

3.4  CM - porównaj pamięć

Składnia:

CM[.rozmiar] obszar adres Polecenie CM dokonuje porównania dwóch bloków pamięci podanych jako argumenty polecenia. Sygnalizowane są wszystkie przypadki niezgodności występujące w porównywanym obszarze.

3.5  DB - ustaw punkt przerwań

Składnia:

DB adres [licznik] Polecenie ustawia nowy punkt przerwnia dla wskazanej instrukcji. Wykonywanie programu będzie przerwane przed wykonaniem instrukcji dla której zdefiniowano punkt przerwania.

Działanie punktu przerwania może być zmienione przez podanie wartości licznika przerwań. Podczas każdego przejścia przez punkt przerwania, jego licznik jest zmniejszany o jeden. Zatrzymanie programu w danym punkcie nastąpi więc dopiero na ostatnim, z podanej liczby, wykonaniu instrukcji. Jeśli nie podano wartości licznika, przyjmowana jest domyślnie liczba 1.

Polecenie LB pokazuje aktualną wartość licznika przerwań, związanego z każdym punktem przerwania.

3.6  DC - Załaduj plik w postaci S-rekordów

Składnia:

DC[.rozmiar] [przesunięcie] [PREV] Polecenie ładuje dane w postaci S-rekoru napływające z portu szeregowego, tj. z konsoli systemu, do pamięci komputera. Po wydaniu polecenia DC pojawia się komunikat: Waiting for S-records from the host , po którym wszelkie dane napływające z konsoli są traktowane jako dane do załadowania. Transmisja kończy się po otrzymaniu S-rekordu kończącego blok danych, po ręcznym przerwaniu transmisji lub resecie systemu. Po pomyślnym zakończeniu transmisji wyświetlany jest komunikat z informacją o liczbie załadowanych danych.

3.7  DI - disasembluj pamięć

Składnia:

DI[.rozmiar] [adres] [licznik] Polecenie wyświtla zawartość pamięci od podanego adresu w postaci standardowych mnemoników asemblera 680x0. Jesli nie podano adresu, disasemblowana jest pamięć od adresu znajdującego się w rejestrze PC. Dodatkowo można podać liczbę instrukcji, które mają być disasemblowane, domyślna wartość wynosi 8.

Disasemblacja może być powtórzone przez naciśnięcie klawisza Escape, z tym, że wówczas rozpoczyna się od następnej instrukcji za blokiem, ktory został wyświetlony przez poprzednie polecenie.

Zawartość pamięci, której nie odpowiada żaden kod instrukcji maszynowej, wyświetlany jest w postaci szestnastkowej jako DC.W hex.

3.8  DM - wyświetl pamięć

Składnia:

DM[.rozmiar] adres|obszar [licznik] Polecenie wyświetla zawartość pamięci w postaci szestnastkowej i ASCII razem z jej adresem i adresem względnym. Położenie bloku pamięci może być podane w postaci kompletnego zakresu lub adresu i liczby elementów do wyświetlenia. Domyślna wartość elementów wynosi 80. Polecenie zawsze wyświetla pamięć w porcjach będących całkowitą wielokrotnością 16 bajtów.

Polcenie może być powtórzone przez naciśnięcie klawisza Escape i wówczas wyświetlony zostanie następny blok pamięci, położony za wyświetlonym poprzednio.

3.9  DO - wyświetl rejestry monitora

Składnia:

DO

Polecenie wyświetla zawartość dodatkowych rejestrów programu monitora F0-F7.

3.10  DR - wyświetl zawartość rejestrów

Składnia:

DR

Polecenie wyświetla zawartość wewnętrznych rejestrów mikroprocesora:

Current registers.
---------------------------------------------------------------------------
SR=2708-tfSm.111...xNzvc USP=00000000 MSP=00000500 ISP=00000500
VBR=00000000 DFC=7 SFC=7 CACR=0000 CAAR=F7FEFFFE
DR=901C0080 00000000 00000000 00000000  00000000 00000000 00000000 00000000
AR=00000001 00000000 00000000 00000000  00000000 00000000 00000000
PC=00000026-00000026  900C              DC.W    $900C

Zawartość rejestru statusowego SR wyświetlona jest szesnastkowo oraz symbolicznie, tj. litery oznaczają bity (małe =0, wielkie =1), a cyfry maskę przerwań np. t Ž Trace=0, S ŽSupervisor=1, x Ž Extended=0, N ŽNegatative=1, itd.

Po skrócie DR wyświetlona jest zawartość ośmiu rejestrów danych, a po AR - zawartość siedmiu rejestrów adresowych (rejestrem A7 jest USP lub ISP, w zależności od kontekstu).

Na końcu, po rejestrze PC wyświetlana jest zawartość słowa pamięci pod adresem wskazywanym przez PC oraz jej mnemomik asemblera, a jeśli taki nie istnieje sygnalizowane jest to kodem DC.W.

Dodatkowo, powyżej może być wyświetlana informacja o ostatniej przyczynie wstrzymania wykonywania programu, np. Ill Ins - Illegal Instruction

RS Exception.  Level=7  F/O=0010 (Ill Ins)
---------------------------------------------------------------------------
SR=2708-tfSm.111...xNzvc USP=00000000 MSP=00000500 ISP=00000500
VBR=00000000 DFC=7 SFC=7 CACR=0000 CAAR=F7FEFFFE
DR=DBDE00A8 00809014 00000000 00000000  00000000 00000000 00000000 00000000
AR=00000001 00000000 00000000 00000000  00000004 00000000 00000000
PC=00000412-00000412  9D3C              DC.W    $9D3C

3.11  EC - oblicz wartość dziesiętną

Składnia:

EC wyrażenie Polecenie wyświetla podaną liczbę szesnastkową w postaci dziesiętnej. Możliwe jest również obliczanie wartości wyrażeń z użyciem nazw rejestrów (poprzedzonych znakiem '/') oraz operatorów dodawania i odejmowania.

3.12  FM - wypełnij pamięć

Składnia:

FM[.rozmiar] obszar wartość Polecenie wypełnia podany blok pamięci podaną wartością. Podana liczba powinna być zgodna z zadeklarowanym typem danych.

3.13  GO - uruchom program

Składnia:

GO [adres] [,punkt1] [,punkt2] Polecenie uruchamia program znajdujący się w pamięci komputera od adresu zawartego w rejestrze PC lub od adresu podanego jako argument polecenia. Dodatkowo można podać dwa chwilowe punkty przerwań. Ich działanie ogranicza się jedynie do aktualnego uchuchomienia programu, tj. po zakończeniu działania programu, punkty te są usuwane z listy punktów przerwań. Punkty przerwań podaje się jako poprawny adres do instrucji programu.

Poprawne zakończenie wykonywania programu, tj. powrót do programu ROM68 powinno odbywać się poprzez wywołanie sytuacji wyjątkowej (np. illegal instruction (kod $4AFC) lub trap #0).

3.14  HC - konfiguracja sprzętu

Składnia:

HC obiekt dane Polecenie służy do konfiguracji następujących elementów systemu:

3.15  HE - wyświetl opis poleceń

Składnia:

HE [polecenie] Polecenie wyświetla pełną listę dostępnych poleceń programu ROM68 wraz z ich skrótowym opisem. Podanie argumentu powoduje wyświetlenie informacji jednynie o wybranym poleceniu. Odpowiednikiem tego polecenia są także HELP oraz ?.

3.16  LB - wyświetl listę punktów przerwań

Składnia:

LB

Polecenie wyświetla aktualną listę wszystkich punktów przerwań oraz ich liczniki przejść.

3.17  MM - kopiuj pamięć

Składnia:

MM[.rozmiar] obszar adres Polecenie wypełnia kopiuje dane z podanego obszaru pamięci do obszaru wskazanego poprzez adres poczatkowy.

3.18  MP - ustaw mapowanie adresów logicznych systemu

Składnia:

MP

Polecenie to umożliwia zmianę przyporządkowania adresów logicznych systemu do fizycznych obszarów pamięci systemu. Stosowane jest głównie w sytuacji dołączania nowych urządzeń lub pamięci do głownej magistrali systemu mikroprocesorowego. Szczegóły użycia polecenia zostały opisane w dokumentacji płyty prototypowej MC68EC0x0IDP.

3.19  PM - zapisz do pamięci

Składnia:

PM[.rozmiar] adres [SKIP] [wartość] Polecenie wyświetla i pozwala wpisać nową wartość do komórki pamięci o podanym adresie. Polecenie może pracować w trybie natychmiastowym lub interaktywnym. W trybie natychmiastowym, tj. gdy w linii polecenia podano adres i wartość, wykonanie dotyczy tylko bieżącej komórki i kończy się po wpisaniu nowej wartości.

W trybie interaktywnym, tj. po podaniu tylko adresu komórki, użytkownik może przeglądać i wpisywać wartości do serii komórek pamięci. Na ekranie wyświetlany jest adres oraz aktualna wartość, a program czeka na podanie rozkazu:

Opcja SKIP (tylko w trybie interaktywnym) pozwala ominąć nieistniejące fizycznie komórki, np. podczas pracy z rejestrami urządzeń zewnętrznych, których 8-bitowe rejestry mapowane są tylko pod parzystymi lub nieparzystymi adresami.

3.20  PR - zapisz do rejestrów

Składnia:

PR [rejestr] [wartość] Polecenie wyświetla i pozwala wpisać nową wartość do rejestrów mikroprocesora oraz dodatkowych rejestrów monitora. Polecenie może pracować w trybie natychmiastowym lub interaktywnym. W trybie natychmiastowym, tj. gdy w linii polecenia podano nazwę rejestru i wartość, wykonanie dotyczy tylko danego rejestru i kończy się po wpisaniu nowej wartości.

W trybie interaktywnym, tj. gdy podano tylko nazwę rejestru, użytkownik może przeglądać i wpisywać wartości rejestrów mikroprocesora. Rejestry podzielono na cztery grupy: 1) sterujące (PC, SR, VBR), 2) danych (D0-D7), 3) adresowe (A0-A7) oraz 4) monitora (F0-F7). Polecenie będzie wyświetlać tylko rejestry z grupy, do której należy nazwa podana w linii polecenia. Na ekranie wyświetlana jest nazwa rejestru oraz jego aktualna wartość, a program czeka na podanie rozkazu:

3.21  SM - przeszukaj pamięć

Składnia:

SM[.rozmiar] obszar [NOT] wartość Polecenie przeszukuje podany obszar pamięci i wyświetla wszystkie komórki, których zawartość jest różna od podanej wartości. W przypadku typu danych innych niż .B, przeszukiwane elementy muszą zaczynać się pod parzystym adresem.

Opcja NOT odwraca sens przeszukiwania, tj powoduje, że polecnie wyszukuje elementy, których wartość nie równa się wartości podanej w linii polecenia.

3.22  ST - wykonaj instrukcję

Składnia:

ST [licznik] Polecenie wykonuje jedną instrukcję wskazywaną przez aktualną wartość rejestru PC. Wykonanie większej liczby instrukcji wymaga podania parametru w linii poleceń.

Polecenie, przez wykonaniem, wyświetla adres, kod i mnemonik wykonywanej instrukcji, a po jej wykonaniu (lub ostatniej z serii) zawartość wszystkich rejestrów mikroprocesora oraz następną intrukcję do wykonania.


File translated from TEX by TTH, version 2.78.
On 12 Oct 2000, 15:28.