Turbo Assembler - opis
Wgraj Turbo Assembler wpisując polecenie
LOAD"ASS-NAZWA",8,1
i uruchom go wpisując (jeśli nie jest spakowany):
SYS(9*4096) lub SYS 36864
Jeśli jest spakowany, wpisz polecenie RUN.
UWAGA
:
Znak "{" w tym artykule oznacza "strzałkę" w lewo (Escape) na klawiaturze Commodore 64. Oznacza po prostu, że należy ten klawisz wpierw wcisnąć, następnie wykonać dalsze polecenia.
KURSOR:
CRSR LEFT/RIGHT |
ruchy kursora w lewo/prawo |
CRSR UP/DOWN |
przesuwanie o 1 linię do góry/w dół |
RETURN |
wstawia linię (jeśli jest tryb
"insert line") i idzie do tej linii |
SHIFT+RETURN |
skok do następnej linii |
F1/F7 |
scroll 20 linii w górę/dół |
F2/F8 |
skok do początku/końca kodu źródłowego |
{CRSR UP/DOWN |
scroll 200 linii w górę/dół |
{Q |
skok do początku linii |
{N |
skok do linii # |
{Y |
skok do końca linii |
DEL |
usuwanie znaku od strony lewej
kursora |
INST |
auto włączenie char mode on/off |
{DEL |
kasuje aktualną linię |
{INST |
auto wstawianie line mode on/off |
{RETURN |
wstawienie linii z pozycji kursora |
OPERACJE NA LINIACH:
{2 |
wstawia linię ';---------------------------------------' |
{/ |
usuwanie z pozycji kursora do końca
linii |
{SPACE |
wypełnianie linii SPACJAMI |
{^ |
(strzałka
w górę) kopiowanie linii |
{= |
wycinanie
linii |
{~ |
(funt
Ł) wstawia skopiowaną linię |
{Z |
undo
linii (wykonywalne po {2, {/, {SPACJA, {~) |
OPERACJE NA BLOKACH I ZNAKACH:
{M |
wstaw zaznaczenie (#0-9), blok
startowy (#s) lub blok końcowy (#e) |
{G |
idź do zaznaczenia(#0-9) |
{; |
usuń zaznaczenie(0-9) |
{: |
lista
wszystkich zaznaczeń |
{B |
operacje
na blokach: wstaw (do pliku ASCII SEQ ), kill,
copy. |
{E |
wstaw
(IMPORT ASCII SEQ) plik z dysku do wybranej
pozycji |
UWAGA:
nigdy nie oznaczaj pierwszej linii kodu źródłowego
jako bloku startowego
SZUKANIE I PRZEMIESZCZANIE:
{F |
szukaj łańcucha znaków |
{H |
wyszukaj następne zdarzenie |
{R |
zastąp łańcuch1 z łańcuchem2,
wyszukaj pierwsze zdarzenie |
{T |
zastąp
i szukaj następnych |
{Y |
zastąp
wszystkie zdarzenia |
PROGRAMOWANIE KLAWISZY
FUNKCYJNYCH:
{F1 |
Reset klawiszy funkcyjnych (F3=.słowo,
F4=assembluj i uruchom, F5=.bajt, F6=usuń linie) |
{A |
Wstaw wszystkie znaki (wyjście z
"{"); aby to zrobić "{" naciśnij
"{" dwukrotnie;
przydatne do definiowania klawiszy F(unkcyjnych) |
{K |
naciśnij klawisz F (F3-F6) do
redefinicji |
OPERACJE DYSKOWE:
{* |
katalog dysku |
{@ |
status dysku |
{D |
komenda dyskowa |
{P |
ustal kod EOR dla kodowania źródła |
{W |
zapisz cały kod
źródłowy do pliku ASCII SEQ (EXPORT) |
{L |
załaduj kod źródłowy |
{S
|
nagraj
kod źródłowy (możliwy nadpis z @: prefix)
|
UWAGA:
1. TURBO-ASM ładuje źródło od najwyższego adresu ($8FEB)
do najniższego
($0800) pamięci i zastępuje kody operacji , własnymi
numerami
(jak Basic'owe tokeny).
2. Podczas zapisywania i
ładowania kodu źródłowego TURBO-ASM. także zapisuje
i ładuje konfigurację np. kolorów, klawiszy F,
zaznaczeń i
aktualnej pozycji kursora.
OPERACJE NA PAMIĘCI:
{6 |
konwertuje blok pamięci pomiędzy
adresami do danych kodu źródłowego |
{J |
zrzuca blok pamięci pomiędzy
adresami |
{SHIFT+F |
wypełnia blok pamięci pomiędzy
adresami z kodem |
{SHIFT+L |
ładuje
do pamięci adresy |
{SHIFT+S |
zapisuje blok pamięci pomiędzy adresami |
ASEMBLACJA:
{3 |
assemblacja |
{4 |
lista asemblowanych plików: ?=drukarka,
*=screen, filename=plik |
{5 |
assembluj do wynikowego (wykonywalnego)
pliku |
{U |
lista
etykiet: ?=drukarka, *=screen, filename=plik |
RÓŻNOŚCI:
{C |
"zimny start" (inicjuje
TURBO-ASM. i czyści kod źródłowy) |
{I |
inicjuje TURBO-ASM i czyści
niewykorzystywaną pamięci |
{+ |
dodaje dwie hexagonalne liczby |
{- |
odejmuje
dwie hexagonalne liczby |
{V |
wyświetla
używaną pamięć: - wolne bloki, + używane
bloki |
{O |
zmiana
pamięci |
{SHIFT+K |
klawisz
włącz/wyłącz |
{1 |
wyjście
z TURBO-ASM. (SYS 36864 lub SYS 333 do restartu) |
UWAGA:
{V pracuje niewłaściwie w obszarze pamięci $E000-$FFFF,
lecz czyta I/O i KERNAL
(Action Repley zupełnie wystarczy przy zawieszeniu
systemu)
WYRAŻENIA:
Assembler
pracuje z 8 i 16 bitowymi numerami z następującymi
notacjami:
$ |
dla hexagonalnych numerów |
% |
dla binarnych numerów |
! (or none) |
dla dziesiętnych numerów |
"x" |
dla znaków ASCII |
Operacje
pozwalające na wyrażenie (od najwyższego do najniższego
priorytetu):
( ) - przedziału
* / - iloczynu/ilorazu
+ - - plusa, minusa
: & . - EOR, AND, OR operacji logicznych
Specjalne operacje:
< - mniej znaczący bajt 16 bit-owego wyrażenia
> - bardziej znaczący bajt 16 bit-owego wyrażenia
* - aktualnie asemblowany adres lub definicja startowego
kodu wynikowego (*=start)
UWAGA:
1. Nigdy nie używaj etykiety po etykiecie=* lub podobnej
kombinacji.
2. Nie używaj obszaru pomiędzy $E000-$FFFF (zarezerwowane
dla etykiet TURBO-ASM).
Etykiety:
Pierwsze 8 znaków jest rozpoznawanych natomiast pozostałe
są obcinane.
PSEUDO OPS
----------
.OFFS addr - przesuwanie kodu wynikowego (przez dodawanie
adresów)
.BYTE bajt1,bajt2,... - konwertowanie bajtów
.WORD słowo1,słowo2,... - konwertowanie słów
.TEXT "text1","text2",... -
konwertowanie łańcuchów tekstowych
; - komentarz
Niektóre bugi zostały
usunięte przeze mnie.:
1. Niektóre wersje TURBO-ASM (V6.0 tronic/rizing) zawodzą
z rozkazami {G.
2. {V teraz poprawione dla Action Replay.
Jest wiele różnych
wersji Turbo Assemblera, to są niektóre rozkazy (Mam je
oznaczone V5). Załaduj to tak:
LOAD"foo",8,1
SYS(9*4096)
Skąd tamto SYS pochodzi? Adres hex jest $9000, dlatego 9*4096,
jeżeli byłoby $0900to wtedy byłoby (9*256)....
"<-" to jest
tylna strzałka, to nie jest "<" mające za
sobą "-"
"<-" rozkazy
1 wyjście
2 linia komentarza
3 kompilacja (z opcjami do uruchomienia)
4 drukuj źródło jako plik
5 kompiluj na dysk
6 stwórz ".byte"
8 wstaw tab
+ dodaj
- odejmji
[DEL] usuń
[INS] wstaw
A przełączanie bloku (tekstu)
B opcje bloku (kopiowanie, zapis, kill)
C "zimny start"
D komendy dyskowe
E wejście plikowe (import pliku tekstowego) |
F
znajdź
G idź do zaznaczenia
H poszukuj
K redefinicja klawiszy funkcyjnych
L załaduj
M wstaw zaznaczenie (0-9, start, end)
N idź do linii
O zmień kolory
R zastąp tekst
S zapisz
U lista etykiet
W zapis pliku
^ przełączanie klawisza on/off (strzałka do góry)
@ status napędu
* katalog
: lista zaznaczeń
; zabij zaznaczenie |
Pseudo
Ops
.BYTE $00,$FF,0,255,"x" dane bajtowe
.WORD dane słowne
.TEXT "This is text" dane tekstowe
*=$2000 ustawienie adresy startowego
#<etykieta zawiera mniej znaczący bajt etykiety
adresu
#>etykieta zawiera bardziej znaczący bajt etykiet
adresu
* wybrany adres (JMP *+20)
Koniec Twojego kodu z
"JMP $9000" i to będzie powrót do asemblera...
Maciej 'Mike' Michalski
|