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…

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *