21.11.2011 Alasm is back again. What's new this time? The reality of past versions of Alasm was, that either you have to have Alasm files placed in the same directory as your sources, or you could have them somewhere else, then you have to jump out of Alasm, switch to source codes from BASIC and rerun Alasm. Both ways work, but both suck.

So I got inspired by the original, where you also find a file named "Gruzilka" in the pack. Its role is to run Alasm from drive B. I made the same for MB-02+. The result is that you can have Alasm files only on one disk and run Alasm from any path with "gruzilka" loader. The principle is the same as running files with NEW# path, file_to_run. E.g. you have Alasm on disk 10, your project with sources on disk 33, dir 1. So switch to sources, input NEW #10,"gruz64W128". Thus Alasm will be loaded and then you will be switched back to your sources at the same time.

Closer info: I had to adapt original BASIC loader and write a new preliminary BASIC loader which carries "gruz" in its name- this will always be the executive file. "Gruz" file finds out from which disk with sources we switched and from which disk we are about to run Alasm. The path to sources, i.e. disk and dir is then placed to 23296. Then Alasm BASIC loader is loaded with short code placed in, which before Alasm run (jp #C000) reads path from 23296, sets disk and dir to it. This is the principle of gruzilka.

So, to sum it up. The only file you will run with NEW # command is the one carrying "gruz" in its name. The original Alasm BASIC loaders have been left on the disk just for completeness sake. Released in two versions again- 128K and Pentagon (up to 64 pages for your sources).

09.02.2015 Huray, version 2.0. is here. Well, we are still speaking about Alasm 5.08, but I made some slight changes. The main one is rewriting the keyboard routine. Alasm worked badly with our western original machines connecting loads of hw addons on their I/O ports. I got a new +2, where even arrows did not work, so I was already fed up with it and under Busy's direction I rewrote the keyboard routine. And, futhemore, I made yet another progress towards our western alphabet.

Further changes:

And that's it this time. I know, much ado about nothing. But I know that there is only one MB02+ user of the Alasm in the entire world and the user is me. So see you later:))


06.02.2010 I am hereby releasing MB02+ version of ALASM 5.08, together with STS 7.4. As you will learn further on, in both versions the author is not bringing huge novelties. I think the most valuable news from me in this release is the pseudo rewrite function of sources on MB02+ version.

News from authors in this release:
My novelties in MB version: Disk contents:
In the .ZIP file you find not only MBD image, but also TAP files. Each TAP represents one MBD directory. The MBD image has 9 directories: During the work with Alasm for almost one year, I found out many useful information, it is really outstanding modern tool for programming. It could be desirable to create here a text dealing the tips and hints for work in AL, but I have a bit run out of energy (even releasing AL508 was quite a drudgery, mainly constituting those versions). Persons that would be interested should contact me to consult work with AL. Thanks go to Busy for pseudo-rewrite deliberation:) and Velesoft for advices concerning the paging of all the machines.

23.03.2009 Dear friends, after a longer time, Hood is coming back to you with a new MB02+ product from his ZX foundry:)) Yes, mighty Alasm 5.07, this time is coming to us- i.e. the latest version.

This time, do not await neat and tidy PDF manuals, I am bringing this html text instead. I must confess the fact, that I am fairly tired of coding and I already understand Tritol's aversion. I have been coding since Xmas ceaselessly and now the time has come for relaxation. It is starting to be warm spring outdoors, the girls are shortening their skirts, and I must say, I dislike the idea of sitting at home and screw the head about routines. I love life and ZX Spectrum belongs to it, yet I am alone at the moment and I feel the need to direct my energy into seeking for a partner, not sitting at the computer after work and into midnight. So, what will be my next outpour, only the one sitting in heaven knows:))

Beforehand, I need to notice, that reworking Alasm's (further reffered to as AL) disk operations for MB02+ disk interface (further reffered to as MB) was partially a challenge. After I reworked ZASM3.0, I realised it was a very good program, but it lacked eg. macros and I knew AL is even a bit better. Even though being the best ZX assembler on MB at the moment, I am not living in an illusion, that the coders nowadays coding on PC and other platforms and used to lots of info on the screen, would switch to AL. I am convinced that as far as functions and syntax are concerned, AL equals or gives even better performance than those assemblers on different platforms. It is true, the source text is limited to 16kB, but with INCLUDE, it can be extended practically limitless. For me, the only limits is displaying ability of our beloved ZXS, only 256x192 pixels. Although, the author presented us with 42 characters version using 6x6 pixels font, thus 30 lines are displayed in the editor. From my personal experience I must say, I did not like this style, as only a space of one pixel lies between lines. Surprisingly, I got used to it, and am now using 42 character version without problems.

Before you would think of rejecting AL forever, I recommend you to read its manual. AL is a huge project and though looking plain at first sight, coding in AL is very comfortable and joyful. As a cherry on a cake, I recommend trying out SNAKE and HUMOR sources:), simply, we do not have assemblers on our machines, that would manage such things (does not imply at all, that our current assemblers are bad).

I suceeded in reworking all major disk functions. Only TRDOS's MOVE command was replaced by MB_DIR, showing the current path MB catalogue. DRIVE selection was removed. Disk and directory selection have to be done via my nmi menu.

Below, you find a list of features, which could be still done, and what I have not managed (the list is going from the top priority to the lower):
Working with memory
AL is simply interesting and working with it differs from Prometheus or Zasm. In the begining I dislike the editor, but I got used to it and it is quite OK. First of all, source texts are placed into 128k pages, from c000h. AL is managing memory using a memory driver, which is loaded in config screen. There are a lot of clones in ex Soviet Union, therefore various memory drivers are used to handle all of these machines. MB has also 16kB pages which could be used for storing source texts, but some memory driver has to be written. At the moment, I asked the author for help, and hope it wil be realisable. Because AL can work with more sources together. Pressing SS+ENTER displays those pages, that contain source texts.

Command "SAVE !" saves all existing sources on the disk. "SAVE +!" saves only those, that were changed during your work.

Config- saving setup
In config (key F) you can set a lot of things and save them. In the original version, changed config is saved directly on the disk in the AL body. I have made it in a different way, config is saved into an external file, which is loaded together with other files in a BASIC loader. It means, each time, you save a new config, you have to delete/rename the old one.

Config has an essential linkage to memory driver. Even though there are many memory drivers for many machines, it does not mean, that changing the driver during work in AL will be successful. It is the other way round. The memory driver which is set in the config has a direct influence on AL start. During the AL start, the memory test is going on. And this test is using the memory driver that is present in the config. It means, if you have a config with 128KDRV driver but the machine is Pentagon 512, the existing 512kB of Pentagon 512 memory will not be detected at all, owing to the 128KDRV. And even if you attempt to load a memory driver for Pentagon 512 (PENTDRV), the program will freeze on config quit, because 128k memory was detected on the AL start, and subsequent memory driver change will have no effect. Remember that!

File names
MB version is only working with names like this: 8 characters stands for name, 9th is an extension, either H for sources (AL checks after loading, if it is handling realy its own source file), or C for any binaries. Eg., if you wish to import sources from PC or any other file, only place C extension on the 9th position in the name of the file, write IMPORT command and the file will be listed into files for import (import catalogue, actually).

The original AL version allows to save files with identical names. It is the rule, that if more files of this kind occur on the disk, the latest of them is loaded. In MB version this is working alike, if the number of files is <129 or if these files start beyond position 128. But if you have on position 100 file XY and the same file on the position 200 (it means out of TRDOS range), the file on position 100 will be loaded. Remember that and rename your files. Or work with maximum of 128 files only in your directory.

Maximum of 128 files limitation....
.... is concerning only displaying files on the screen. AL MB version can work with files beyond position 128. For example, you can display sources using WORK command and you can comfortably select them with the cursor. But you can also load sources by their names with the command "WORK name", the file "name" will be loaded even if it were on position 10.000! (of course, the operation will slow down due to searching the file). So, if you have more than 128 sources, simply load them in this way, This is working also with other commands like IMPORT. To rework AL to manage to display limitless number of files would be a work for x days.

Saving your final code
A speciality again, which we do not know in our countries. Saving of your final code is realised via source SAVEOBJM.H. Load this source and look into it, everything is written in it, you must fill in the table with all neccessary info for saving, and that is it. Eventually, you can load ALMB2546 source text from the directory 1, it is a source of MB disk operations, where saving of final code on the disk is used too. This utility allows to save more blocks of memory successively. First ASSEMBLY and the RUN+ pressing CAPS SHIFT together starts the process of saving, I have not reworked disk operations of interesting M2HRUST and MRIP6 sources, as I had no space for it.

Source text export
AL is able to export files, which is bringing together a known problem of saving a file of unknown length on MB. I solved it the same way as in Zasm. A 64kB file is opened, into which saving is done. The moment the last byte is saved, we know exactly the total length, and a new original file with a proper length now can be founded on the disk and contents of the 64kB file is put into it.

Working with AL
Again, I recommend to read the manual, where you basically find every detail. Go, and study disk commands syntax. Nevertheless, I am going to give brief comments on some facts, which I were confused about in the beginning, to make it a bit easier for you.

In principle, AL comprises two user layers: the main screen and the editor. You recognise the first by A> cursor line, while the second by E> cursor line. A> allows basic disk operations + further general operations (see the manual), E> is the editor itself. Contraty to Zasm, it does not allow instructions to be separated by colon on one line. On the other hand, some instructions have a special syntax and the space can be saved (for example "PUSH IX,DE,HL" on a line). However, AL is able to import source texts that have instructions on a line separated with colon. AL is working with blocks in a different way, actually, you find no standart block operations. But how should we copy a block and move/copy it somewhere else? The principle is the same as on PCs (CTRL+C, or CTRL+X and CTRL+V). If you look into the config, you will see an item "Pocket page". This is a buffer into which single lines are put and from which the lines are taken. It is done with SS+W (the line is only copied) or with SS+SPACE (the line is copied and deleted), in both cases the line is copied into the pocket page. EXT+R then, places pocket's content on the cursor position. EXT+C clears the pocket. I must say, it is not bad way of working with blocks, at all.

Unfortunately, for me at least, writing small/capital letters is a bit annoying. It is working just quite the reverse as we are normally used to. If you are writing normally on your keyboard, capital letters are dispalyed. If you want to write in small letters, you have to press CAPS SHIFT together, a bit weird, isn't it?

For moving back and forth, use PGUP/PGDWN or TRUE/INV VIDEO, same as in Prometheus. Jump to the beginning and end with EXT+B/S or with arrows. I added the arrows for bigger comfort and swapped Page UP/DOWN keys just like in Prometheus and Zasm MB have it.

Despite the fact, that AL, as contrasted to Zasm, does not use bookmarks, you can move within your source texts fairly easily- not according to line numbers but according to labels. The labels are jumping points for you. If you know, that you will need to jump on the label, leave it alone on the line. In the editor, input LABEL command (commands in the editor are inputed via EXT MODE), and all alone labels will be displayed on the screen, and you can comfortably choose with the cursor, where you would like to jump. In the lower right corner you find a kind of a counter of your position, it does not count line numbers as Zasm does, but the position in memory. The maximum count is theoretically 4000h. On the beginning of the source text, the count should be 0000h. The next counter will be displayed right next to file name each time the pocket page is in use.

What was said above implies, that the source text has a maximum length of 4000h bytes. Obviously, you can extend the source text with INCLUDE or INCBIN.

Wildchars (*,$)- this is a perfectly useful feature, not only for disk operations, but universal. Obviously, MB version and its disk operations can use wildchars without limits. On of the ideal wildchars usage: your main source text is including another source text, which you are changing from time to time. In order not to change the name of the included file, each time you change its name, just insert in the mainsource: "INCLUDE file*". At the same time, give the file on which you are working, names "file1", "file2", 3, 4.... remove the old versions from the disk, remain the latest one, and the * ensures for you, that right this file will be included for sure.

AL syntax
Do you want to upgrade your coding to flawlessness? Use AL! I highly recommend to open the original main file AL50 from directory 4 in the MBD image. Load it and carry out ASSEMBLY. Unfortunatelly, it will not be carried out properly on 128k machines, as during assemblym, sources are loaded into Pentagon 512 pages. So, you must switch the emulator in Pentagon 512 mode+ MB02+ (probably in RelaSpec emulator, and use directory 6 on MBD image), it will assemble correctly. So, I again advise to look into that source, where you will be able to see all these syntax finesses- conditional assemblies, macros, uncanny syntaxes...

MBD image contents

STS modification
Much like Zasm, nothing important to modify here, too. The only function worth for reworking would be compilation of machine code back to AL source with saving to disk. I plunged into it, but I simply run out of moral energy, so maybe the next time. In any case, all TRDOS disk operations are disabled, so there is no fear of crash by activating disk operations.

As usual, I would like to thank to Velesoft for creating text files out of original AL sources (see download)+ for his advices+ for his help with enlarging screenshots, Alone Coder (yes, the famous author of Black Raven, ProTarcker3...), who contrary to Zasm author communicated in English, so it was a comfortable for me, and who above all translated AL manual+ several next texts into English. And I nearly have forgotten Cygnus, whose TRDOS description on his website I consulted a lot (also when I was working already on Zasm). Thank you, guys!

AL just after start 128k memory

AL just after start 512k memory

AL config screen

first page of the main AL source text (mind the very special syntax!!)

catalogue of source texts

normal catalogue

catalogue of .C files to import

finished assembly of AL sources

in Pentagon 512 mode, list of pages used for AL source texts

HUMOR.H source text assembled

SNAKE.H source text assembled, play while assembling:)

my BASIC utility- extension maker for AL files


21.11.2011 A máme tu opět Alasm. Co je nového? Realita minulých verzí Alasmu na MBčku byla ta, že jste buď musely soubory Alasmu mít vždy ve stejném adresáři jako vaše zdrojáky, nebo jste jej mohli mít mimo zdrojáky, pak z Alasmu vyskočit, v BASICu se přepnout na zdrojáky a spustit opět Alasm. Obě řešení fungují, ale jsou naprd.

Nechal jsem se inspirovat originálem, kde v balíku najdete soubor s názvem "Gruzilka". Ten udělá to, že spustí Alasm z disku B. To samé jsem vytvořil pro MBčko a výsledkem je to, že soubory s Alasmem můžete mít na jediném disku a pomocí souboru "gruzilka", který je také přítomen, jej odkudkoliv spouštět. Princip je stejný jako spouštění souborů přes "NEW# cesta, soubor_ke_spuštění. Takže např. Alasm máte na disku 10, a váš projekt se zdrojáky na disku 33 v adresáři 1. Tak se přepnete na zdrojáky a zadáte NEW #10,"gruz64W128". Tím se nahraje Alasm a přepne vás to zpět na vaše zdrojáky.

Podrobnější popis: Musel jsem upravit původní BASICovský soubor a napsat nový, který má v názvu "gruz"- to je vždy spouštěcí soubor. Soubor "gruz" zjistí z jakého disku se zdrojáky jsme se přepnuli a z jakého disku spouštíme Alasm. Cestu, tedy disk a adresář, ke zdrojákům uloží na 23296. Poté již nahraje upravený BASICovský loader Alasmu, do kterého je vložen krátký kód, který před spuštěním Alasmu (jp #C000) zjistí z oblasti 23296 na jaký disk a adresář se zdrojáky se má přepnout. To je celá podstata gruzilky.

Takže ještě jednou, jediné co budete příkazem NEW # spouštět je soubor, který nese v názvu "gruz". Na disku jsou pro úplnost ponechány i původní BASICovské loadery Alasmu. Vydáno opět ve dvou verzích pro 128K a pro Penatagon (až 64 stránek pro zdrojáky).

09.02.2015 A je na světě verze 2.0. Tedy pořád se jedná o Alasm 5.08, ale je v něm několik málo úprav. Hlavní úprava spočívá v přepsání klávesnicové rutiny. Alasm zkrátka špatně spolupracoval s našimi originálními a mnohdy na sběrnici přetíženými mašinami. Dostal jsem novou +2, kde prakticky nefungovaly šipky, takže už mě to nebavilo a pod taktovkou Busyho jsem klávesnicovou rutinu přepsal. A z hlediska psaní Alasm trošku více přizpůsobil naší západní abecedě.

Další úpravy:

A to je celé. Já vím, není to žádné harakiri, ale stejně tak vím, že Mbčkový uživatel Alasmu je na světě jen jeden a to jsem prosím já. Takže někdy opět nashle:))


06.02.2010 Vypouštím do světa ALASM 5.08, mbčkovou verzi, spolu s STS 7.4. Jak se dozvíte dále, obě verze nepřináší autorsky mnoho nového, ale k vypuštění této verze mě vedla jedna věc z praxe práce s AL. Dle mého, nejpřínosnější věcí tohoto balíku pro mbčko je pseudo rewrite zdrojáků.

Autorské novinky v těchto verzích:
Moje novinky v MB verzi: Obsah diskety:
V zipu najdete MBD image a tapky, všechny tapky jsou na mbd imagi, co tapka, to adresář. Na disku je 9 adresářů: Za rok práce s Alasmem jsem přišel na spoustu cenných informací, je to opravdu skvělý a moderní nástroj na programování. Bylo by možná záhodno vytvořit zde kolonku pojednávající o práci s AL, ale nemám sílu (jen vydání AL508 byla makačka, hlavně dokončovací práce), zájemci, nechť mě kontaktují, rád se s nimi podělím o zajímavosti Alasmu. Děkuji Busymu za úvahy o rewritu:) a Velesoftovi za rady týkající se stránkování jednotlivých strojů.

23.03.2009 Vážení přátelé, po delší době vám opět Hood přináší něco ze své dílny. Ano, je to věhlasný a mocný Alasm 5.07- tedy poslední verze.

Tentokrát nečekejte žádné úpravné manuály v PDF, místo toho je tu tento html text. Musím přiznat, že jsem z kódování dost vyčerpanej a už chápu Tritola a jeho odpor. Kóduju bez přestávek od vánoc do teď a je čas na relaxaci. Venku je už teplo, děvčata zkracují sukně, a přiznám se, že se mi nechce hnít doma a lámat si hlavu nad rutinami. Mám rád život a ZX Spectrum k němu patří, ale momentálně jsem bez partnerky, a cítím potřebu směřovat svoji energii do jejího hledání, nikoliv vysedáváním po práci a do noci za komplem. Takže jaké další díla z mé dílny vyjdou momentálně ví jenom ten pán, co sedí nahoře:)))

Musím předeslat, že předělat alasmovi (dále jen AL) diskové operace na mbčkové (MB), byl částečně i hec. Prostě, poté, co jsem upravil ZASMa, tak to sice bylo dobrý, ale přeci jen ZASM neumí makra, atd. atd. atd. takže jsem se pustil do alasmu. I přes skutečnost, že jde patrně o nejdokonalejší assembler, který jsme na MBčku měli, si nedělám příliš iluze, že by v dnešní době kódování pro speccy na jiných platformách najednou sáhl programátor, zvyklý na to mít na obrazovce hodně informací, po alasmu. Jsem přesvědčen, že co do funkcí a syntaxe nabízí alasm stejné, ne-li lepší podmínky jako ZX assemblery na jiných platformách. Zdroják je sice omezen an 16kB, ale pomocí INCLUDE jej lze rozšířit prakticky neomezeně. Pro mě jediné omezující jsou zobrazovací schopnosti ZX Spectra, tedy 256x192. Pokus o lepší zobrazování nabízí verze 42 znaků na řádek, která zobrazuje fontem 6x6, takže vám zobrazí v editoru 30 řádek zdrojáku. Z osobní zkušenosti musím říct, že jsem toto zobrazení neměl rád, protože mezi jednotlivými řádky je mezera pouhý jeden pixel. Ale kupodivu zvyknout se na to dá, a už mi to nedělá problémy.

Předtím než byste chtěli AL definitivně zavrhnout, doporučuji si přečíst manuál. AL je rozsáhlý projekt a i když vypadá obyčejně, kódování v něm je velice solidní. Jako třešničku na dortu doporučuji k vyzkoušení zdrojáky SNAKE a HUMOR:), na našich systémech prostě nemáme assemblery, které takové pi**vinky umí (což jistě neznamená, že ty naše dosavadní jsou špatné).

Podařilo se předělat všechny zásadní diskové funkce. Pouze místo TRDOS funkce MOVE jsem udělal MB_DIR, tedy katalog aktuálního adresáře. Volba disku pod klávesou DRIVE je zaslepena. Disk a adresář musíte volit přes nmi menu.

A dále je zde seznam toho, co by se eventuelně ještě dalo upravit, a co jsem tedy tudíž zatím nepředělal (řazeno podle priority):
Práce s pamětí
AL je prostě zajímavý a práce s ním je odlišná např od Promíka nebo Zasmu. Ze začátku se mi v něm vůbec nelíbilo psát, ale zvykl jsem si a je to OK. Předně, pro zdroják je použita pamět od C000h a výš, tedy v podstatě 16kB stránky stodvacetosmičky. AL pro práci s pamětí používá memory driver, který si nahrajete v setupu. Protože v Rusku existuje mnoho strojů, existují pro všechny tyto varianty i memory drivery pro AL. MB má taky 16kb stránky, které by se daly použít, jenže to chce nějaký ten mem drv. Prozatím jsem kontaktoval autora a doufám, že to bude relizovatelné. Protože AL umožňuje pracovat s více zdrojáky současně. Pomocí SS+ENTER si zobrazíte obsah stránek- tedy momentálně nahrané zdrojáky.

Pomocí příkazu "SAVE !", si můžete na disk sejvnout všechny zdrojáky najednou, pomocí "SAVE +!" všechny ty, co byly změněny.

Config- uložení setupu
V configu (klávesa F) si můžete nastavit spoustu věcí a taky si jej sejvnout. V originále se změny ukládají přímo do těla alasmu na disketě. Já to udělal jako save do externího souboru, který nahrajete basicovým loaderem. Z toho plyne, že když si sejvnete nový setup, tak ten starý si z disku smažte/ přejmenujte.

Config má důležité spojení s memory driverem. I když je spousta ovladačů paměti ke spoustě strojům, neznamená to, že při změně memory driveru vám to bude za chodu fungovat. Naopak. Memory driver nastavený v configu má i přímý vliv na start alasmu. Při startu se totiž děje test přítomnosti paměti. A tento startovní test probíhá právě pomocí memory driveru, který je zaveden v configu. Tzn. když budete mít config s ovladačem 128KDRV a budete na stroji Pentagon 512, tak při počáteční inicializaci AL a testu paměti, nebude vlivem 128KDRV ovladače oněch 512kB paměti detekováno. A i když přehrajete mem. driver správným driverem pro Pentagon 512 (PENTDRV), tak vám to při výskoku z configu vytuhne, prostě při startu AL detekoval 128k stroj a dodatečná změna mem. driveru nepomůže. Pamatujte na to!

Jména souborů
MB verze pracuje jen s názvy ve formě: 8 znaků jméno, devátý je přípona a to buď H pro alasm zdrojáky (AL si i po nahrátí kontroluje, jedná-li se o jeho soubor) nebo C pro binárku. Budete-li chtít např. importovat zdroják z PC nebo cokoliv jiného do AL, pak na 9. pozici dejte příponu C, zadejte IMPORT a onen soubor se vám zobrazí v seznamu a můžete jej importovat.

AL originál umožňuje ukládat soubory se stejným názvem. Při loadu těchto souborů nahrává vždy ten nejposlednější, to je ten, který je blíže konci diskety. V MB verzi toto funguje samozřejmě shodně, pokud je počet souborů <129 a pokud soubor je až za pozicí 128. Pokud ale budete mít třeba na pozici 100 soubor se jménem XY a na pozici 200 (tedy mimo dosah TRDOSu) soubor se stejným názvem, tak se nahraje soubor s číslem 100. Pamatujte na to a soubory si přejmenovávejte. A nebo, si nechávejte pouze 128 souborů v adresáři.

Omezení na 128 souborů....
....se týká pouze zobrazení katalogů na obrazovce. AL MB verze umí pracovat i s jakýmykoliv soubory za pozicí 128. Např. zdrojáky si zobrazíte pomocí příkazu WORK, a můžete si je pohodlně vybrat kurzorem. AL umožňuje i nahrát dle názvu , tedy "WORK name", vám z MB disku nahraje soubor "name", byť by měl pořadové číslo 10.000! (samozřejmě, že vlivem hledání se operace zpomalí). Takže, pokud byste měli více než 128 zdrojáků, tak je prostě nahrajte tímto druhým příkazem. Toto funguje i u jiných příkazů (např. IMPORT). Přeprcávat AL, aby uměl zobrazovat neomezeně souborů na disku, by byla práce na x dnů.

Sejvování hotového kódu
opět další specialita, kterou v našich zemích patrně neznáme. Sejvování přeloženého kódu se děje pomocí zdrojáku SAVEOBJM.H. Nahrajte si tento zdroják a prostudujte si jej, je tam vše napsané, do tabulky si vyplníte vše potřebné pro SAVE a je to. Případně si nahrajte zdroják z adresáře 1, ALMB2546, je to zdroják MB diskových operací, kde ukládání na disk vidíte přímo použité. Tato utilitka vám dokonce umožní sejvovat libovolný počet bloků paměti za sebou. Nejdříve dáte ASSEMBLY a potom RUN a u toho podržte CAPS SHIFT a uložení tak začíná. Zdrojáky M2HRUST a MRIP6 jsou sice zajímavé, ale prostě jsem se k nim nedostal, abych je předělal.

Export zdrojáků
AL umí samozřejmě exportovat, což přináší na MB nám známý problém sejvování bloku dat o neznámé délce. Je to řešeno stejně jako u Zasmu, tedy na disku se otevře 64k soubor, do něj se vše uloží, až je uložen poslední bajt tak známe délku, teprve potom se zakládá oficiální soubor, do kterého se přeleje obsah toho 64k souboru.

Práce s AL
Znovu doporučuji číst manuál, kde je v podstatě vše. Nastudujte si syntaxe diskových příkazů. Přesto zde v kostce popíšu začátky, protože já ze začátku trošku tápal.

V podstatě se jedná o dvě prostředí: o základní obrazovku a o editor. První poznáte dle kurzoru A> a druhé podle E>. A> umožňuje diskové operace+ obecné operace (viz. manuál), E> je samotný editor. Na rozdíl od ZASMu neumožňuje oddělovat příkazy dvojtečkou, zato ale některé příkazy mají speciální syntaxi a přeci jen se místo dá ušetřit (např. "PUSH IX,DE,HL" na jednom řádku). AL umí importovat zdrojáky, která mají příkazy oddělené na jednom řádku dvojtečkou. AL dost zvláštně pracuje s bloky, vlastně on pracovat s bloky neumí. Jak ale zkopírovat část kódu a přesunout ho jinam? Dělá to stejně jako na PC (CTRL+C, příp. CTRL+X a CTRL+V). Když se podíváte do configu (klávesa F), tak tam uvidíte položku pocket page. To je jakýsi buffer, kam si ukládáte jednotlivé řádky a z něj si je pak zase vybíráte. Děláte to pomoci SS+W (řádek zůstane) a nebo pomocí SS+SPACE (řádek se maže), v obou případech se vámi zvolené kopíruje do pocket stránky. Pomocí EXT+R si obsah pocket umístíte na místo kurzoru. EXT+C maže pocket. Musím říct, že to není tak špatná práce.

Co mě ale dost štve, je psaní velkých/malých písmen. Je to přesně naopak než je obvyklé, tzn. píšete-li normálně na klávesnici, zobrazí se velká písmena, když chcete psát malá, musíte stisknout CAPS SHIT, to je dost ujetý, ne?

Pro pohyb po kódu použijete PGUP/PGDWN neboli TRUE/INV VIDEO, jako v Promíkovi, skok na konec a začátek je pomocí EXT+B/S, nebo šipek. Ty šipky jsem tam pro větší komfrot dodělal, a i přehodil Page UP/DOWN jako to má Prometheus a Zasm MB.

AL na rozdíl od Zasmu nemá záložky. Přesto se dá pohybovat po AL poměrně komfortně, a to ne na základě řádků, ale na základě návěští. To jsou pro vás body skoku. Pokud budete vědět, že na dané návěští budete chtít skákat, tak je nechte na řádku samotné. V editoru pak zadejte příkaz LABELS (příkazy se vždy v editoru volají přes EXT MODE), a zobrazí se vám všechna takto osamocená návěští, a vy si z kurzorem můžete vybrat, kam chcete skočit. Vpravo dole je pseudopočítadlo, kde se zrovna nacházíte, nepočítá čísla řádků jako u zasmu, ale umístění v paměti, max stav počítadla je teoreticky 4000h. Na začátku zdrojáku by na počítadle mělo být 0000h. Další počítadlo se objeví napravo vedle jména souboru, pokud něco uložíte do pocket stránky.

Z výše uvedeného vyplývá, že zdroják může mít max. délku 4000h. Samozřejmě si zdroják můžete libovolně natáhnout pomocí INCLUDE a INCBIN.

Wildchars (*,$)- toto je bezvadně fungující věc, nejen pro diskové operace, ale všeobecně. Samozřejmě MB verze a její diskové operace umí wildchars bez omezení. Ideální využití wildchars: váš hlavní zdroják includuje jiný zdroják, ve kterém ale čas od času potřebujete něco upravit. Abyste v hlavním souboru nemuseli pořád měnit jméno toho includovaného, tak si tam dejte: "INCLUDE soubor*". A soubor, na kterém pracujete si pojmenovávejte "soubor1", "soubor2", 3,4,.... staré verze si z disku odstraňte a nechte tu aktuální, hvězdička zajistí, že se includne právě tato.

Syntaxe AL
Chcete vaše programování dovést k dokonalosti? Pak používejte AL! Doporučuji si z přiložené MBD image (adresář 4) nahrát originální soubor AL50, který je hlavní a řídící. Stačí když jej nahrajete a zadáte ASSEMBLY a AL se postará o překlad. Bohužel, na 128k strojích to ale nespustíte, protože zdrojáky se nahrávají do pentagoňáckých stránek. Když si ale přepnete emulátor do kombinace Pentagon512+ MBčko (na disku adresář 6 a patrně pouze pro RealSpec emulátor), tak vám to fungovat bude. No, a doporučuji si tedy projít tento zdroják, kde prostě uvidíte všechny ty finesky na vlastní oči. Podmíněné překlady, makra, prapodivné syntaxe.... budete mrkat.

Obsah MBD image

Předělání STSka
stejně jako v ZASMu, není tady příliš co předělávat. Jediná funkce, která by stála za to předělat, je kompilace strojového kódu zpět na AL zdroják se sejvem přímo na disk. Pustil jsem se do toho, ale prostě nezbyly mi už morální síly, takže snad příště. Každopádně stsko je opět zaslepené, takže nehrozí jeho pád při aktivaci jakékoliv TRDOS diskové operace.

Jako vždy, chci poděkovat Velesoftovi za zhotovení alasm zdrojů do textové podoby (viz. download)+ za jeho rady+ za jeho pomoc při zvětšení obrázků, ale také jednomu z autorů Alone Coderovi (ano, slavnému autorovi Black Ravena, ProTrackeru3...), který na rozdíl od autora Zasmu komunikoval anglicky, takže to byl komfort a hlavně přeložil do angličtiny manuál+ další věci. A úplně jsem zapoměl (i u Zasma) poděkovat Cygnusovi, za jeho popis trdosu na webu, který jsem dost používal.