Change log.
5.07:
*UNTIL token is now called UNTIL0
+RUN directive allows page number (sman):
RUN addr,pg
+ALASM syntax extending macros (variables, structures) -
Vars*.H (sman)
-two empty lines joining resulted in incompilable empty
line (axor)
5.06:
-sometimes shouted "wrong short", but the next
assembly went OK
(fixed further :))
-last macro parameter included comments and spaces before
them
-could drop editing after Ext,T,T,BS,BS,Enter
+shows $ and RUN address after assembly
5.05:
-sometimes shouted "wrong short", but the next
assembly went OK
-fixed returning to ALASM from IM2 programs
+new ATM-turbo 2+ driver using Gluk ROM for ATM -
fully compatible with pentagon driver in terms of page
numbers
(you can compile pentagon sources unchanged)
+Home,End keys added. Mark line is now ssW(Ins), delete
line is ssSpace.
Insert line is removed (Axor)
!DD allows commas between groups of bytes
5.04:
-STS interface fixed (#db06 entrance now)
-macros inside INCLUDE inside macros did not work
5.03:
-ORG without page number does not put trash to post
symbols anymore
+new ALASM tech demos - fixed SNAKE by RST7 (interrupt
synchronized)
and recursive FIbonacci numbers macro
+added ATM-turbo 2+ driver - switches #7ffd off! your
program must switch in back on!
-if ALASM was not on the disk the save setup showed video
effects
*IF token is now called IF0
+BUILD+ can set date! (buffer=#5efa, CMOS RTC scheme by
Mr Gluk)
5.02:
-INCLUDE "B:filename" changed drive if such a
file was already loaded
(todo skip 3d13 in cases like this)
5.01:
-current drive changed after INCLUDE/INCBIN
"B:filename"
*assembly stops after INCLUDE of non-existing file
+ALASM loader from drive "B" added
5.0f2:
-"V" in 4x8 font could not be detected by
Unreal Speccy, fixed.
+new directive: "RUN address" - allows running
of any user routine
while assembly (must be lower than #8000, as ALASM
resides in #8000)!!!
+SAVEOBJ4 can save from address!=TR-DOS Start address.
This way one can define 3-symbol extension.
!if you are short in pages on 128k, you must not use
macro page
(even if you don't use macros), but a page having common
3 lower
bits with it (i.e., for example, #C0 instead of #80).
If you use macro page you will get page 0. This is not
bug, this is
feature of ALASM logic. When INCLUDE is executed inside
macro
(which is compiled like ordinary source but lying in
macro page)
for correct exit ALASM checks for macro page, and if it
is,
then the current compiling page will be set instead. If
macros are not used it is 0.
Made in 4.46 as a fix of Capry bug. See also 5.04.
-when sources with INCLUDE into the same page were
compiled
the main source name could be ruined.
5.0f1:
-decimal mode malfunctioned in show labels and ssEnt
(Xor, Vitamin)
5.0:
+ALTER (source selector) shows page numbers!
+Enter in 8th column does not shift line left
(useful for labels cutting)
-sometimes include, save Y, not found file
<filename>
showed W12345...
*64-pitch fonts fixed for Unreal Speccy anti-text filter
compatibility
-MOVE did not work in DOS6.05e
-demoversion crashed if labels in exL exceeded screen
+macro page can now start from any address! 128k users
can use macros now, too ;))
+setup allows addresses <#c000 (for macro page
address, for example)
+RUN 2 in basic reloads STS without reloading ALASM
-change font saved it incompletely
5.0demo:
-MOVE crashed if memory contained a long basic like
ACEdit.
Uses memory lower than #7400.
-import and export added extra line breaks at the end
-both FONT64s fixed (ñ, ü, russian and latin
distinguishability).
One can edit these fonts in usual 8x8 font editors.
-SYMBOL worked as REPLACE after REPLACE was called
-did not HL'=10072 before quit to basic
!for STS7.0 compatibility and for clones with high memory
at crazy ports
the ALASM page number is no longer put into STS!
!keyboard is synchronized with timer at last!
IY is now reserved. Now we can work in any turbo mode.
If all programs could do this!.. Interestingly, scrolling
became 10% faster :)))
/keyboard speed settings removed
*6x6 type routine optimized
*ALASM file name and the name of its overlay no more
depends on version number -
for sake of easier updates
/catalogue buffer address must be #XX00
4.47fff:
+JNC, JC, JNZ, JZ - for conditional JR.
+MOVE (M key). MERGE went to G, PAGE went to P.
6x6free=#0002, 4x8free=#0048
!4.47 doc was wrong! current DISP shift is detected this
way:
a ORG 0
ENT
shift ORG a+shift
DISP a
;shift=org-disp
4.47ff:
+a mean documented to know what assembly is on,
usual or auto-running (mkace):
ORG #FF32,2
IF {4>4+{$}}-#BF43
make ;auto-running (mkace)
ENDIF
Now we can drop intermediate source file.
+a mean documented to know for Vitamin/CAIG, what source
page is
being compiled and what line of it (not from macros):
ORG #C0E1,2
DISPLAY {$}-#C040,"/pg",.{$+2}
Source file name lies in the very start of its page.
4.47f:
*both FONT42s have *òóôõþ fixed.
+current page of code (not of source): $$.
v4.47 (15.11.04):
+macro call inside inactive branch of conditional
compilation
is now done this way:
}macroname
parameters
(can have any number of spaces in the left but no space
after "}"!)
One can make a label even in inactive branch:
}labelname
This returned the old speed and made recursion possible.
-al42_446 could not load font.
+overlay is shortened to #1200 bytes, so it can reside
in the same page as catalogue buffer and STS.
/the following unused options were removed from config:
text info, locate error, Ins/Ovr switch (main ALASM has
it
itself - if you want to save the state, switch it is
ALASM
and save via config), Ok (break works as it).
/hot keys in config were removed.
/overlay help was removed, too many helps in the archive!
+FULL help as one source file.
+ORG is now using DISP shift, so you can make know
what current DISP shift is, this way:
blah blah
(see 4.47fff for correct routine)
-compiling to ROM error was not shown in this sequence:
ORG to ROM (it is not error itself), then ORG to end of
RAM,
then commands until the end of memory.
-not fully compiled program could be run if it had ORG in
ROM.
-DB with unpaired " in shifted line could compile
extra #FF.
+new command: EXD=EX DE,HL.
*main font (FONT42a.C) has ^ changed.
+CLEAR #6DFF can now be used. import/export are using
#7400-#7FFF
(was #6800-#7FFF before).
+first page in import is not entered, uses current page.
*macro parameters now drop only leading spaces, so now we
can make a macro like this:
MACRO Y
REPEAT
\0
UNTIL
"\P "-" "
ENDM
and use it like this:
Y XOR A,OR (HL),RET Z,INC HL
:)
(note, they are not tokenized.)
4.46f (30.10.04):
*SYMBOL =<number> instead of SYMBOL <number>
(memory economy).
-if a page had text changed then instead of loading
another one,
this one was asked for save then saved then loaded again!
+"" inside of a string means one "
(as in basic). For example: DB
"""string"""
will make bytes """", "s",
"t", "r", "i", "n", "g",
"""".
+russian and latin letters "H" are now distinct
in 6x6 font.
+macro command \P (shift parameters)
returns dropped first parameter. \R returns initial
parameters enumeration.
-filenames like "AAA.?" could not be loaded
+unpaired IF/IFN/ELSE/ENDIF can now be defined in macros!
Rules (changed in 4.47):
.macro is executed unregarding of branch of conditional
compilation
(more exactly, IF,IFN,ELSE,ENDIF lines in it) -
reduces the compilation speed;
.label existance is tested even in inactive branches -
reduces the compilation speed;
.IF stack is moved atop of MACRO stack when entering
macro;
.IF stack is moved from MACRO stack below when quiting
macro.
AFTERMATH. It was not used by anyone ever.
-COUNT {a} in editor moved the cursor if
7fff<=a<=bfff.
+when SYMBOL is interrupted it indicates number of labels
shown.
-after compiling a macro using program SYMBOL went wrong
in the end.
:unusable "SYMBOL -" is killed.
-INCLUDE inside macro went crazy. (see versions up, and
upper)
-number+-number is no longer error (needed for macros).
-number--number was number-number that was wrong.
number*-number and number/-number were not fixed,
use brackets for such parameters in your macros.
ALASM treats "*-" as "/" and vice
versa.
-ssE (mark line) killed ssQ (delete line) buffer.
-mkace does not RUN if file not found. Now mkace can
be used as normal ALASM loader.
-long decimal numbers (1000000) were considered errors.
-ssI after any commands forgot about REPLACE.
+new memory driver ZSKAY512 - for Scorpion but with
pentagon page numbers (mask #47).
KAY will have 512k (mask #c7), and will work with any
ROM, unlike KAY1DRV
+resident part of mkace was moved to ALASM (to edit
buffers, not bloating ALASM size).
Now we can compile into basic, and mkace is compatible
with
mrip/m2hrust.
+6x6 font instead of 6x7. 4 lines more and 16 list
elements more.
*SAVEOBJ is not longer macro but mrip analog.
+compilation is speeded up because of label finding made
faster.
+scroll in 6x7 mode is 15% faster.
+SAVE ! saves all texts.
+right arrow in command line (both inside and outside the
editor)
remembers symbols of previous command. If the cursor
stops, the previous
command is over. Type in any symbol, and more older and
longer commands may be remembered.
+makes STS think that it is not returned from JUMP,
and the address must not be zeroed.
-fixed REPLACE when replace string contained search
pattern.
+REPLACE is speeded up a little.
*macro parameters as in TASM: \0 etc, make yourself
familiar.
-import with default settings did not work (my fault).
-export with default settings messed up the disk (my
fault).
v4.45 (28.2.04):
-lines like LD (ADR),A,HL,(ADR) compiled wrong.
+micro speed up in 4x8.
-6x7 bug fixed: REPLACE,N - dash was shown.
*ORG without second parameter continues to compile into
current page (was page 0).
*EXPORT writes CR, not CR+LF.
+overlay is one sector less :)
+Enter, Del and Graph cut and paste in one way in INS and
OVR modes.
+catalogue and labels list columns are 2 lines higher.
+DD is possible (and must be) without #.
+impOrt: uppercases DD without #.
+driVe without :.
+counts builds.
+sources and helps were optimised to reduce the archive.
Before setting non-pentagon memory driver you must
set all pages in setup to point 128k pages only
(just zero the first digits in hexadecimal page numbers).
PENT512 is now driver by default as it is in first use.