Odin Editor • Autor: Matt Davies • Verze: Dev.1 • Datum: 2022-12-22

MANUÁL ODIN EDITORU

Copyright © 2020–2022 Matt Davies, všechna práva vyhrazena.

Odin je editor/assembler určený pro ZX Spectrum Next. Je inspirovaný nástrojem Zeus pro původní ZX Spectrum (autoři Neil Mottershead a Simon Brattel).

Přejdi na příslušné sekce manuálu, nebo čti stránky postupně pomocí funkcí next/previous v NextGuide.

NODE: STARTING

Spuštění Odinu

Odin je dot command – soubor .odin by měl být nainstalovaný ve složce /dot na SD kartě a všechny soubory s příponou .gde zkopírované do /docs/guides.

Potom lze Odin spustit jednoduše zadáním:

.odin

Pokud chceš hned otevřít nějaké soubory, můžeš je přidat přímo na příkazovou řádku. Přípona .odn je volitelná.

NODE: ED_MAIN

Používání editoru

Přepínej mezi příkazovou řádkou Odin Monitoru a obrazovkovým editorem klávesou EDIT.

NODE: ED_BASIC

Editor – Základní ovládání

Psaní

Editor umožňuje psát kdekoliv na obrazovce: piš normálně a stiskni ENTER pro začátek nového řádku.

Řádek lze vložit nad aktuální řádek (užitečné, pokud jsi už na začátku souboru) pomocí EXT+ENTER.

Pokud je řádek delší než šířka obrazovky (80 znaků), vpravo se zobrazí červený znak „větší než“ (>) a přebytečné znaky nebudou vidět. Přesto se ukládají a můžeš je „odkrýt“ smazáním znaků před nimi.

Poznámka: neexistuje způsob, jak řádek „rozpůlit“ a přesunout zbytek na nový řádek.

Mazání znaků

Znak vlevo od kurzoru smažeš DELETE – znaky za kurzorem se posunou doleva. Znak pod kurzorem smažeš EXT+DELETE – opět se následující znaky posunou doleva.

Mazání od znaku pod kurzorem až do konce řádku: EXT+E.

Režim přepisování

Standardně se při psaní znaky za kurzorem posouvají doprava (vkládání). Přepnout na přepisování (overwrite) můžeš pomocí EXT+O. Opětovným stiskem se vrátíš do režimu vkládání.

V režimu vkládání kurzor bliká zeleně, v režimu přepisování bliká červeně.

Tabulátory

Mezery do další tab stop vložíš klávesou TRUE VIDEO (zhruba na místě klávesy TAB na moderní klávesnici).

Pozice tabů zatím nelze měnit: jsou pevně na sloupcích 9, 14, 33 a poté každé 4 znaky (37, 41, 45, …).

NODE: ED_MOVE

Editor – Pohyb kurzoru

Kurzorem pohybuješ pomocí UP/DOWN/LEFT/RIGHT. Když dojedeš na horní nebo dolní okraj, obrazovka se posouvá (pokud je v daném směru ještě další část souboru).

Aktuální pozice kurzoru (řádek a sloupec v rámci souboru) se zobrazuje ve stavové liště dole.

Skok na začátek nebo konec aktuálního řádku: EXT+LEFT / EXT+RIGHT.

Posun o jednu obrazovku (30 řádků): EXT+UP / EXT+DOWN. INV VIDEO a GRAPH posouvají obrazovku o jeden řádek nahoru/dolů bez pohybu kurzoru (pokud by kurzor nezmizel mimo viditelnou část).

Skok na začátek nebo konec souboru: EXT+TRUE VIDEO / EXT+INV VIDEO.

NODE: ED_BLOCK

Editor – Cut/Copy/Paste a blokové operace

Cut / Copy / Paste

Jeden řádek můžeš vyjmout nebo zkopírovat do interní schránky:

EXT+X  – vyjmout aktuální řádek do bufferu
EXT+C  – zkopírovat aktuální řádek do bufferu

Vložení z bufferu na pozici kurzoru:

EXT+V  – vložit buffer před aktuální řádek

Buffer se po vložení nemaže, takže ho můžeš vkládat opakovaně.

Výběr bloku více řádků

Výběr spustíš EXT+SPACE a blok vyznačíš pomocí UP/DOWN, EXT+UP/DOWN (o obrazovku) nebo EXT+TRUE/INV VIDEO (skok na začátek/konec souboru).

Pak můžeš blok vyjmout / kopírovat pomocí EXT+X / EXT+C nebo ho přepsat psaním nového textu. Zrušení výběru: BREAK.

Duplikování řádku

Aktuální řádek duplikuješ klávesou EXT+D – vloží se pod aktuální řádek a kurzor se posune dolů. Neovlivní to obsah schránky.

NODE: ED_EDITORFILE

Editor – Příkazy pro soubory

Odin umí mít otevřeno více souborů současně. Název právě editovaného souboru je zobrazen na začátku stavové lišty dole.

Pokud byl soubor změněn, ale nebyl uložen, vlevo od názvu se zobrazí hvězdička *.

Hlavní příkazy pro práci se soubory jsou dostupné z příkazové řádky Monitoru (odkaz „main commands“ v původním manuálu vede na uzel, který tu není zahrnut). Některé často používané akce jsou ale dostupné přímo v editoru:

Přepínání mezi soubory

Přepnutí mezi otevřenými soubory: EXT+EDIT. Zobrazí se menu nad stavovou lištou se seznamem otevřených souborů. Výběr měníš UP/DOWN, potvrdíš ENTER.

Uložení a zavření souboru

Uložení z editoru: EXT+S.

Zavření souboru: EXT+W. Pokud soubor ještě nebyl uložen, Odin si vyžádá potvrzení, aby nedošlo ke ztrátě změn.

Odin Monitor • Autor: Erik van der Tier • Verze: Dev.2 • Datum: 2021-12-04

MANUÁL ODIN EDITOR/ASSEMBLER

Copyright © 2021 Matt Davies, všechna práva vyhrazena.

Odin je editor/assembler určený pro ZX Spectrum Next. Je inspirovaný Zeusem pro původní ZX Spectrum.

Tento průvodce popisuje část Monitor, která zároveň funguje jako „rozbočovač“, přes který se dostaneš ke všem funkcím Odinu.

Přejdi na příslušné sekce, nebo čti postupně pomocí next/previous v NextGuide.

NODE: STARTING

Začínáme s Odin/Monitor

Odin je dot command – soubor .odin patří do /dot na SD kartě a soubory .gde do /docs/guides.

Spuštění:

.odin

Odin se spustí v Monitoru a zobrazí uvítací zprávu. Odtud se dostaneš ke všem funkcím Odinu.

Příkaz h zobrazí seznam všech příkazů a klávesových zkratek Monitoru.

NODE: FILE_MAN

Správa souborů

Odin Monitor nabízí obecnou správu souborů a navigaci, plus příkazy pro práci se zdrojáky assembleru.

Obecné příkazy pro správu souborů

  • ls: vypíše obsah aktuální složky.
  • cd: změní aktuální složku.
  • md: vytvoří novou složku.

Příkazy pro správu assembler souborů

  • new: vytvoří nový soubor.
  • l: načte odin zdroják.
  • s: uloží aktuální odin zdroják.
  • tl: načte textový soubor.
  • ts: uloží aktuální soubor jako text.
NODE: FM_LS

Správa souborů: ls

usage: ls (path)

Příkaz ls vypíše obsah adresáře. Může přijmout jeden volitelný parametr path. Pokud parametr vynecháš, vypíše obsah aktuálního adresáře.

Pokud path zadáš, určuje adresář, jehož obsah se má vypsat.

Viz cesty k souborům pro detailní popis formátu argumentu path.

Příklady

ls "/odin": vypíše obsah adresáře odin v kořeni aktuální jednotky.

NODE: FM_CD

Správa souborů: cd

usage: cd (path)

Příkaz cd změní aktuální adresář. Přijímá jeden volitelný argument path. Pokud path nezadáš, jen zobrazí aktuální cestu.

Pokud path zadáš, určuje adresář, do kterého se má přejít.

Viz cesty k souborům pro detailní popis formátu argumentu path.

Příklady

cd "/odin": přejde do adresáře odin v kořeni aktuální jednotky.

NODE: FM_MD

Správa souborů: md

usage: md (path)

Příkaz md vytvoří nový adresář. Přijímá jeden povinný argument path, který určuje cestu k adresáři, jenž se má vytvořit.

Viz cesty k souborům pro formát argumentu.

Příklady

md "/odin/newdir": vytvoří složku newdir v /odin.

NODE: FM_NEW

Správa souborů: new

usage: new (path)

Příkaz new vytvoří nový Odin assembler soubor. Přijímá jeden povinný argument path, který určuje cestu k souboru, jenž se má vytvořit. Je zvykem používat příponu .odn, ale není to nutné.

Viz cesty k souborům.

Příklady

new main.odn: vytvoří soubor main.odn v aktuálním adresáři.

NODE: FM_LOAD

Správa souborů: l(oad)

usage: l (path)

l (load) načte Odin assembler soubor. Přijímá povinný argument path určující cestu k souboru. Načtený soubor se stane „aktuálním“ a při přepnutí do edit režimu se otevře v editoru.

Viz cesty k souborům.

Příklady

l main.odn: načte main.odn z aktuálního adresáře.

NODE: FM_SAVE

Správa souborů: s(ave)

usage: s (path)

s (save) uloží aktuální Odin assembler soubor. Přijímá povinný argument path, tj. kam se má soubor uložit. Uložený soubor se stane „aktuálním“ (užitečné při uložení pod novým názvem). Při přepnutí do edit režimu se otevře tento soubor.

Viz cesty k souborům.

Příklady

s main.odn: uloží main.odn do aktuální složky.

NODE: FM_TLOAD

Správa souborů: tl(oad)

usage: tl (path)

tl načte textový soubor a během toho ho tokenizuje. Přijímá povinný argument path. Načtený a tokenizovaný soubor se stane „aktuálním“. Při přepnutí do edit režimu se otevře v editoru.

Viz cesty k souborům.

Příklady

tl main.odn: načte textový soubor main.odn z aktuální složky.

NODE: FM_TSAVE

Správa souborů: ts(ave)

usage: ts (path)

ts uloží aktuální Odin assembler soubor jako text. Přijímá povinný argument path.

Viz cesty k souborům.

Příklady

ts main.txt: uloží aktuální soubor jako main.txt do aktuální složky.

NODE: ASS_RUN_DEB

Sestavení, spuštění a ladění

Odin Monitor je prostředí, přes které sestavíš (assemble), spustíš (run) a budeš ladit (debug) své assembler programy.

Podporované příkazy:

  • a: sestavení programu
  • r: spuštění sestaveného programu
  • m: výpis paměti na obrazovku
  • t: seznam symbolů z posledního sestavení
  • info: informace o využití paměti
NODE: ASS_RUN_DEB_A

Assemble, run a debug: a(ssemble)

usage: a (path)

Příkaz a sestaví program. Může mít volitelný argument path (soubor k sestavení). Bez argumentu sestaví aktuální soubor nebo posledně sestavený soubor.

Při prvním sestavení bez argumentu (nebo při sestavení s argumentem) si Odin uloží cestu k „hlavnímu dokumentu“ (main doc). Příště pak a bez argumentu sestaví právě tento „main doc“.

Assembler automaticky načte i další soubory, které jsou z „main doc“ includované, a sestaví celý komplet.

NODE: ASS_RUN_DEB_R

Assemble, run a debug: r(un)

usage: r

Příkaz r spustí naposledy sestavený program. Program je volaný jako call, takže pokud program provede návrat (ret), vrátí se zpět do Odin Monitoru.

NODE: ASS_RUN_DEB_M

Assemble, run a debug: m(emory dump)

usage: m (address)

Příkaz m udělá výpis paměti. Může mít volitelný argument address. Pokud je zadán, dump začne na této adrese, jinak začne na start adrese, na kterou byl program sestaven.

Adresu můžeš zadat hexadecimálně nebo decimálně. Hex adresa má prefix dolar: $.

Dump vypíše 8 řádků, každý obsahuje 16 bytů. Každý řádek má formát:

C9:0000:8000  C3 78 85 11 80 B0 ED 53 A0 80 3E 00 32 A2 80 AF   .x.....S..>.2...
\__________/  \_____________________________________________/   \______________/
  adresa                 obsah v hexadecimálu                   obsah v ASCII

Pole adresy se skládá ze tří částí:

  1. (stránka?)
  2. offset od startu programu?
  3. absolutní adresa

ASCII část ukazuje jen „tisknutelné“ znaky, ostatní jsou nahrazeny tečkou (.).

NODE: ASS_RUN_DEB_T

Assemble, run a debug: t

usage: t

Příkaz t zobrazí seznam všech symbolů z posledního sestaveného programu.

NODE: ASS_RUN_DEB_I

Assemble, run a debug: info

usage: info

Příkaz info zobrazí informace o využití paměti Odinem.

Document:                       <využití paměti dokumenty>
  Pages: D6 D5 D4 D3 D2 D1        <stránky použité dokumenty>
   Size: 015001                   <velikost dokumentů>
Code:                           <využití paměti Odin (program)>
  Pages: C9 C8 C7 C6              <stránky použité Odin>
Symbols:                        <využití paměti symboly>
  Pages: C4                       <stránky použité symboly>
    Num: 0157/2048                <počet a limit>
NODE: REF_PATH

Reference: cesty k souborům

Cesta (path) je specifikace, která identifikuje soubor nebo adresář na disku. Může být relativní nebo absolutní.

Relativní cesty

Relativní cesta začíná v aktuálním adresáři a určuje kroky, které má příkaz (např. ls) následovat. Nejjednodušší je jen název souboru nebo podadresáře aktuální složky.

Cesta může mít více kroků oddělených lomítkem /. Každý krok je adresář relativně k předchozímu kroku. Každá cesta, která obsahuje /, musí být uzavřena do dvojitých uvozovek.

Absolutní cesty

Absolutní cesta začíná buď písmenem jednotky a dvojtečkou (např. d:), nebo lomítkem / (kořen aktuální jednotky). V obou případech musí být cesta v dvojitých uvozovkách. Zbytek cesty se zapisuje stejně jako u relativní cesty.

Speciální kroky jsou . a ... Tečka znamená aktuální složku. Dvě tečky znamenají nadřazený adresář.

Příklady

ls "/odin"             ; obsah /odin v kořeni aktuální jednotky
l "../main.odn"        ; načtení main.odn z nadřazené složky
l "/mydir/main.odn"    ; načtení z /mydir
s "d:/mydir/main.odn"  ; uložení na jednotku d: do /mydir
Odin Editor/Assembler • Autor: Matt Davies • Verze: Dev.1 • Datum: 2023-12-22

MANUÁL ODIN EDITOR/ASSEMBLER

Copyright © 2020–2022 Matt Davies, všechna práva vyhrazena.

Odin je editor/assembler pro ZX Spectrum Next, inspirovaný Zeusem pro původní ZX Spectrum.

Vyber si sekci, nebo čti postupně.

NODE: STARTING

Spuštění Odinu

Odin je dot command – soubor .odin patří do /dot a soubory .gde do /docs/guides.

Spuštění:

.odin

Pokud chceš hned otevřít soubory, přidej je na příkazovou řádku. Přípona .odn je volitelná.

Odin se spustí v monitoru, kde můžeš zadávat příkazy, nebo přepnout do editoru a psát programy.

NODE: ED_MAIN

Používání editoru

Průvodce pro editor je v souboru odin-editor.gde.

Zobrazíš ho příkazem:

.guide odin-editor
NODE: MON_MAIN

Používání monitoru

Průvodce pro monitor je v souboru odin-monitor.gde.

Zobrazíš ho příkazem:

.guide odin-monitor
NODE: DBG_MAIN

Používání debuggeru

Průvodce pro debugger je v souboru odin-debugger.gde.

Zobrazíš ho příkazem:

.guide odin-debugger