Recenze - Navigátor

12 Assembler
41 Encyklopedie
30 Hardware
15 Hra
12 Párty
7 Programování
12 Sofware

HRA

Woord Spel
Herní styl Memory
Multiplayer Bez multiplayeru
Rok vydání 9992
Programátor Andy van Duyne
Grafik (Unknown)

INTRO

Turboassembler, Monitor a nic víc .... teda trochu začátku

stahněte si turboassembler v7.0

V prvním díle naašeho programování v assembleru (dále jen ass.) jste mohli číst o nekolika vhodných a méné vhodných nástrojích pro programování na Commodore 64.
Možná i tento díl pro assembleruchtivé nebude to pravé ořechové, ale určité má své nezastupitelné místo v programování.
Tento díl věnuji popisu funkcí turboassembleru a srovnání s klasickým monitorem.

1. Turboassembler a funkcí, že hlava prechází ....

Nutno na začátek napsat, že turboassembler se standartně nahrává do paměti C64 od adresy $9000, což znamená, že jakmile program nahrajete z diskety, sám se nespustí. Spustit ho musíte vy příkazem
SYS 4096 * 9
Po spuštění turboassembleru se následný start může provádět klávesou RESTORE. Budete-li mít problém se spuštěním v basicu, zkuste před SYSem zadat ještě příkaz NEW odešlete jej Returnem.

®ádné klikání , pouze klávesové zkratky. Programování bez adres. Nastavuje se pouze zacátek programu. Vše je rešeno pomocí labelu. tj. textovych ukazatelů.
Nejdříve by se hodil malý seznam funkcí pro práci s textovým editorem.Takže po pořádku.
Většina funkcí se vyvolává klávesou "šipkavlevo" a následné zmáčknutí funkční klávesy.
Následující funkce se vyvolávají přímo .. bez použití šipky.

DEL smaže znak
+ DEL smaže celý rádek
INS prepíná mezi prepisováním a vkládaní textu. (z PC známé INSERT).
RETURN skáče dolů s posunem řádků (char line) a bez posunu

Režim pro přepisování znaků je znázorněn pomocí ukazatele ve status řádku dole na obrazovce.Char line je posun textu při vkládání jiného.


I funkční klávesy jsou zavaleny funkcemi. A to jak samotné bez šipky, tak i s funkční šipkou. Následující funkce nepotřebují ke své činnosti šipku.

F1 skok o 20 řádků nahoru
F2 skok na samotný začátek programu
F3 programovatelná klávesa ... standartně nastaveno vkládání textu .text " "
F4 programovatelná klávesa ... stadartně nastaveno debugování a spuštění programu
F5 programovatelná klávesa ... stadartně nastaveno vložení textu .byte $
F6 programovatelná klávesa ... stadartně nastaveno umazání a posun řádku
F7 skok o 20 řádků dolů
F8 skok na samotný konec programu

Tady se musím zmínit o možnosti nastavit si vlastní funkce pro klávesy F3 - F6. Toto se nastavuje pomocí kombinace + K.
Funkce vám nabídne výběr funkční klávesy a poté si zadáte svůj příkaz nebo kus textu ... to je na Vás.

!! TIP !!
Existuje i možnost, že po provedení vašeho příkazu se provede posun o řádek níže, posun kurzoru zpět a podobné vychytávky. Tyto "skryte" vlastnosti těží ze systému Commodore. Vše se provádí následovným způsobem:
příklad : Potřebujete , aby se po zmáčknutí klávesy F6 napsal text .byte $00, a aby kurzor skočil na další řádek automaticky.
Napíšeme tedy požadovaný text .byte $00 napíšeme uvozovky a zmáčkneme CTRL + RETURN.

* Znak * nastavuje počátek programu v paměti kam se bude zdrojový text překládat.
Příklad: * = $1000 -- Program se bude překládat od adresy 1000 v paměti.
; Za znak (středník) se píše komentář k programu.Za středníkem se text nepřekládá.
Příklad : LDA #$ 00 ; načteme do akumulátoru

Seznam funkcí pro práci s turboassemblerem

Následující funkce jsou po zmáčknutí šipky vlevo (některé funkce mohou být v různých verzích jinde nebo jiné )

A Použití všech znaků pro editaci, včetně systémových (tj. znaky funkční jako plné M = return a pod.)
B

Operace s bloky , kopírování, mazání a zapsání bloku. (blok musí být nastaven !)

C Studený start Turboassembleru
D Diskové příkazy
E Načíst a vložit sekvenční data ze zařízení
F Najít data
F + Shift Vyplnit oblast v paměti zadanou hodnotou
G Skok na značku do paměti. (značka musí být nastavena. Možno skákat i na začátek nebo konec bloku, jeli nastaven)
H Pokračování hledání po funkci + F
I Inicializace paměti. Program smaže vše zadanou hodnotou
J Dump paměti, neboli pouze výpis dat z paměti ve formátu $adresa > $hex > $char. Výpis je na obrazovku.
K Změna funkčních kláves
K + Shift Keyklick on/off neboli zapínání a vypínání zvuku na stisk klávesy.
L Nahrát zdrojový soubor
L + Shift Nahrát normální soubor (hudba, znaky) od zadané adresy
M Nastavit značku 0 - 9 nebo S (start bloku) a E (konec bloku)
N Skok na řádek číslo ..
O Změna barev prostředí
P Nastavit EOR kód
Q Kurzor skočí na X-ovou souřadnici na řádku obrazovky.
R Nahradit text
S Uložit zdrojový text
S + Shift Uložit jakoukoliv část paměti od adresy po adresu
U Uloží / zobrazí textové LABELY na obrazovku nebo na disk
V Zobrazí volné bloky paměti
W Uloží SEQ sekvenční data

tyto příkazy však nejsou vše. Existují i příkazy upravující editor pro pohodlnější práci.Opět se šipkou doleva.

1 Výskok z turboassembleru. Neztrácí se data.
2 Vloží komentář přes celou textovou řádku ve formě minusek ;----------------------------
3 Zassembluje zdrojový text, zkontroluje chybovost a automaticky spustí
4 Vytiskne soubor
5 Vytvoří Objektový soubor. Uloží pouze přeložená data v bloku.
6 Vloží do vašeho zdrojového textu data od adresy $start do adresy $end v podobě $byte $xx, a dále...
7 Změní tabulátor na aktuální pozici kurzoru. (tato funkce funguje jen v některých verzích tass.)
- (minus) Vypočítá vám 16-ti bitový rozdíl.
+ (plus) Vypočítá 16-ti bitový součet.
= Vymaže celý aktuální řádek
/ Vymaže jen data na aktuální řádce, label ponechá
: Zobrazí všechny značky včetně start a end.
; Smaže následně vybranou značku. 0-9, S, E
* Zobrazí adresář disketové mechaniky
libra Zkopíruje aktuální řádek do bafru
šipka nahoru Vloží řádek z bafru
F1 Resetuje nastaveni F kláves
   

Formát dat, texty, proměnné ....

Každý program v turboassembleru (dále tass.) musí začínat znakem hvězdičky. Jak bylo již výše napsáno.např: * = $1000
Na rozdíl od klasického monitoru (jednoduchý program pro práci s assemblerem) umí tass. pracovat s několika formáty dat a hodnot.

Zadávání hodnot BYTE

Tass umí nejen pracovat s hexadecimální soustavou, ale i s desítkovou a binární !! Což je extrémně usnadnující práci hlavně s bitovými operacemi.
Hodnota 10 (decimálně) se dá zapsat takto :

Zadávání hodnot WORD

Další způsob zadávání hodnot v tass je používání 16-ti bitových hodnot, či adres. Hodnota .word $A234 se v paměti C64 uloží následovně.
Dejme tomu, že hodnotu WORD ukládáme od adresy $2000.

.d 2000 : 34 ; lo-byte
.d 2001 : A2 ; hi-byte

to znamená, že 16-ti bitové číslo se vždy !! uchovává do paměti ve formátu nejdříve LO-BYTE a následně HI-BYTE čísla

Zadávání textu

psaní textu je velice jednoduché. Text se ukládá pomocí kódu .text "nejaky text". Použití je velice jednoduché. Názorný příklad hovoří za vše.
POZOR !! Text se neukládá do paměti tak jak ho vidíte na obrazovce, ale v kódech ASCII

První část obrazovky je zdroj .. text od adresy 2000 hexa ... spodni cast je vypis prelozených dat v monitoru.

OFFSETY později

Offset je příkaz, který dělá jednu věc. Posunuje disassemblovaný zdroják v paměti o zadanou hodnotu. Využití se ukážeme později, obvykle není potřeba tento příkaz hodně dlouho. Nemám jej rád, což ovšem neznamená, že se k němu nedostaneme později.

LABELY neboli proměnné v textu

Labely se rozumí ukazatel ve zdrojovém kodu, na který můžeme ukazovat, číst ho, přiřazovat mu hodnotu, adresy a to vše spolu kombinovat.

Na obrazovce je názorně ukázáno, jak se dají labely používat. Nejen jako ukazatele hodnot, ale labely se daji scitat nebo odcitat.

Závěr

Myslím, že tento článek docela podrobně popisuje možnosti Turboassembleru, kterýžto se stane Vašim denním chlebem, myslíte-li to s programováním vážně. Výhoda oproti jiným platformám .. teď mám na mysli i PC je ta, že zde jste opravdu schopni vyhrát nejen softwarově, ale vaše schopnosti vám dovolí proniknout do tajů hardware ... programování grafiky, zvuku do takových hloubek, do kterých Vám PC ani nedovolí přistoupit.

Nový příspěvek k článku

podpis :
První znak podpisu musí být vykřičník, jinak se příspěvek neodešle (ochrana proti spamu)

Advert

Programmed by PCH of UNREAL, Hardware support by RAY of UNREAL. Beta test and bugs guru SILLICON
Unreal 2014 - Czech republic