ZX Format #07
05 декабря 1997
  Софт  

animated cartoon - Description of a new turbo-assembler from STORM X-Trade.

<b>animated cartoon</b> - Description of a new turbo-assembler from STORM
X-Trade.
 STORM

 TURBO ASSEMBLER

 Version 1.1

music by MIDISOFT
(C) X-TRADE GROUP
_

The rudimentary state lasted long.
But it is a brilliant moment when we
were able to finally write the program is
that suits us almost a hundred percent. Albeit at the cost of 
two-month effort. 

   We hope you enjoy what we have
done, although we did it according to its own desires.

We offer you a second
account version. The first was a "breakdown of the pen in
Anna area.

   The most severe was dokodivat new version ZXASM 3.0 (we 
missing INCLUDE), but now all subsequent version will be 
written on the previous. 

 Otlichiya_ot_versii_1.0

 - Fix known bugs
- Change the screen size from 32 to 40 * 22 * ​​20
 - Appended INCLUDE
 - Added a full-line editor
 - You can change colors
(See Memory Allocation)
 - Izmemeny priorities arith / log operations

So what we have now:

Editor

 √ Scrolling text in the frame! (1 / 50 sec)
 √ PAGE UP, PAGE DOWN in five frames.
 √ Search thousands of rows per second.
 √ Evil tokenizirovanny text format.

   Text size XAS / 1.2
- ZXASM / 2
- ALASM/1.4
- TASM4/1.5
 √ Block operations over arbitrarily from
   marked lines. (When unloaded
   Ke text marking is preserved).
 √ Size text box 40 * 20 characters

   each familiarity 6 * 6 pixels.
 √ length of the string in memory up to 40 characters.
 √ Syntax Check as you type.
 √ autopartition line.
 √ possibility of a reduced set of

     (LD, JR does not require a user).
 √ Options SCROLL UP, SCROLL DOWN.
 √ Integrated IMPORT FROM DISK and EXPORT

   TO DISK (from / to text format).



Compiler

 √ Time compilation XAS / 1.2
 ZXASM / 2
 ALASM/1.4
 TASM4/1.5
 √ Any number of operators in a row.
 √ Any number of operands in one
operator.
 √ Arithmetic in compliance with the priorities.
 √ 22 arithmetic, logical, and special operations.
 √ labels up to seven characters.
 √ Total number of tags around 1536
(11.5 Kb buffer, each label is
3 + DLINA_METKI bytes.)
 √ When you compile the possible replication
line
 √ The ability to place code at
not coinciding with the ORG.
 √ Naturally, INCBIN / INCLUDE.
 √ compilation speed depends very little on
the total number of tags.
 √ Increase the speed, due to pre-
counted / translated numbers.
 √ Support for undocumented commands.
 √ Built-in macros such as LD BC, HL

Miscellaneous

 √ cache directory for INCBIN / INCLUDE.
 √ Fast disc procedure.
 √ recognition of text in the page when you restart.
 √ Startup STS startup.



 Raspredelenie_pamyati

Originally intended use
extended memory, but not enough time, and therefore it happened 
that the user memory is quite a bit. 

Free banking 0,1,2,3,5,7.

The first 4k banks can not kill 3, then
possible (table tags will be killed).

The user can bang down the bank 1, but
when you return on Wednesday it will crash
editor, there depachitsya / dekryunchitsya
font / scrolling. Use this bank to
the same purpose.

The bank 6 is the text in the 3 - piece body and
tags, and 4 recline the body itself, Asma.

The bank sits 7 STS, but the area of ​​its screen and banging 
editor (do not think the bad, the first screen does not turn on 
never! ). 

From the environment to the user domain is not available
# 40 - # 5F (Bank 5). There can not be put
object code. Code, compiled in these
addresses can be placed on another
address and forwarded to the region of # 40 - # 5F
user program. Use ORG
offset address.

Banks 0 and 2 are available in full.

ACM banging BASIC-area # 5B00-# 5BFF,
E # 5E00-# 5EFF.

When you start / return to the environment must
. RAMTOP that stood at 24,575, or half
  Chita 4 OUT of memory, 0:1.

To return to using USR or 23600
OUT 32765,20: USR 49152.

When you start set the 48th mode
open pages.

STS 5.1a must be recorded immediately after
STORM - he did not bother to climb in
directory.

ROM is not used, you can take out, but
the disc will not read. ;) TR-DOS-yet
yuzaetsya (5.03/04 only).

When first run going and DeMSPacking
Cleaning the 48th memory.

At the entrance / exit is SWAPPING with
pages, is not perturbed by forced
Brake (30 cycles / byte, however.).

When the first bank and STS $ cleaned. If someone wants to 
break down the scroller or printer (8 marks 6 * 6 per pass -

faster does not happen), so good to them
reach. or pull out of the viewer.

If you will be noticed glitches, I would like to
they hear. and see, because the color
 squares - it's so beautiful! ..


  Speaking of colors. You can change
some color in the editor (only ink)
with. DiskDoctor'a!

  To implement this kind of violence
needed in the first 2 bytes Basic unit (there
where the stored line number) to record
the following values:

 0-byte 1-byte
 00AB CDEF
 ^ ^

     = 0! (Aka Basic skipaet line)



B Ink Assignment
 "

   0 A - Frame Color

   0 B - Color line editor

   C D - Text Color

   E F - Colour marking
 "

  0B0INK - resulting attribute

   | Brightness

 * What is perverted, huh? *

 Editor


  The interface is optimized for speed (these words lies the 
lack of memory, and the most common, human laziness.) 

  All the work thus carried out with
via hotkeys.

 On the screen we have:
 - Statusbar

INS / OVR - No comments

   BIG / SML

   RUS / LAT

EXT / ALT - Change virtual menu
- And then understand.

   RES / SET - mode marking
- (See below)


  LINE, COL, FREE - speak for themselves

 - Window Text
 - Field reports
 - Field line editor
 - The name of the file being edited + tops

 *! A: FILENAME


     Current drive

     Signs marking

     Sign changes to the text

Keys in edit mode the text:

CS / edit a Scroll up
 CS / 2 caps lock Scroll down
CS / 3 true video on the page up
CS / 4 inv. video On the bottom of the page
CS / 5 left Left
CS / 6 down Down
CS / 7 up Up
CS / 8 right Right
CS / 9 graphics Delete at cursor
CS / 0 back space slaughtered (at all).
SS / W Insert / Replacement
SS / A stop CAPS LOCK
SS / Q in the beginning of the line
SS / E to end of line

  SS / I continued searching
CS / ENTER Mark line

  SS / ENTER Delete row
SS / SPACE ENG / LAT

CS / SS ext prefix command editor
CS / SPACE break prefix external command

 Keys to the line editor:

SS + Q / E Home / End
SS + SPACE RUS / LAT
SS + A CAPSLOCK
DOWN Cleaning Line
EDIT Change drive
EXT, BREAK Cancel

 Команды_делятся_на_две_группы:

 - Teams Editor (EXT).

    Introduced after clicking EXTEND.

 - External (alternative) (ALT)

   Introduced after pressing BREAK.

Teams Editor:

BeginOtmetit beginning of the block.
End Mark the end of the block.
BlK mode Setting the mark of the unit:
 SET in that block the line of the sword.
 RES in this block is removed
 tag on all lines.
Copy copies all selected units
 in the place indicated by the cursor.
Delete Delete all selected blocks.
Move Move All Selections. blocks
 place indicated by the cursor. (IP uses COPY '& DEL, the best
 there was no time.)
uNmark Remove all block tagging.
Search Search.
neXt Find next.
Replace Search and Replace.
 Request:

  Y - to replace the N - skip

  A - replace all Q - roll away

Undo Redo line form, which she

  had before editing.
 If you combine any number honors the command line, or DEL
 BACK SPACE, or the washing line
 row with ss + enter, all
 restored.
Assemble Compile the program.
 If there are no errors and the program ma Lenka, you do not 
catch anything  notice. Errors are

 portions of 20 lines and waits
 keystroke. Space - Output
 of a compiler. The second pass

  done in the absence of
 errors on the first pass.
Jump Go to line number N.
Inspect Calculator.


  Displacement:

extent in the beginning of the text.
extent At the end of the text.
-Extent> to the next marked line.
extent <Go to the previous marked line.



 External commands:

Load Download text
Save Save text
Cat Directory
Merge To add text to the end and
   his next mark.
save Blk Save the block (it should
 be unique, otherwise it will be

  error message).
save Obj Saving compiled
 program. Saves the block from
 minimum to maximum
 address to which was sgene erate code. You may have used any 
number of ORG  and in order.

Zap text Clear text.
Quit Exit to BASIC.
imporT transformation from a text
 format tokenizirovanny. SOS for the source code from the disk. 
Noe misunderstood or too long, tagging is a block and a sign 
";" directly nyatnye team perceived  as labels.

 was: INCLUDE "THRASH"
 was: JR INCLUDE, "THRASH"
 means: INCL "THRASH",
 and "DOOM" and "DEATH".
eXport Convert a text form mate. Unsubscribe to drive. No
 tabs. At the end of the line # 0D.
 Marker end of the text is not assigned.
Assemble Compile the program.
DebugVyzov STS.
 Returns - RETURN TO ASM
Run Run compiled prog FRAMEWORK. Return to RET or

   OUT (# 7FFD), # 14: JP # C0


  Questions _ne_nashedshie_otveta_vyshe:


  Some errors are displayed on the curb.

 Blue - The current line is longer than 40
 characters (limited size)
 Red - Syntax error

 Yellow - Out of memory

 Green - Internal Error


  It can arise, for example, if
import is a text, for example, the code
block. If re-entry does not work,
reboot the AFM.

  Maybe you can not recover
text.


  It is no secret that working through the TR-DOS like 
sadomasochism. Therefore, Asma uses fast disk procedure 
therefore, happy owners of the screw break off abruptly. 


  Checking text to commit adultery as long as there is no (to 
be fast CRC), so do not forget to save time. If you not 
preserved, and for some reason all hung, there is a chance that 
the re- Upload AFM will miraculously survived

text.



 Compiler



GENERAL FORMAT STRING:

[Label] [com. + Camera.]: [Com. + Camera.]; REM

All fields are optional.

The label of up to seven characters.

In the label may be a record of the form:

 . Number

where n = 0-255, giving the circulation of the
row 0 = 256 times.

Comments can be in any field.

Maybe any number of operators in
line (how much you want in 40 characters ..).

One operator is not limited to the number of
operands, such as:

 ADD A, A, A, B, HL, DE = ADD A, A

  ADD A, B

  ADD HL, DE
 PUSH BC, DE, HL = PUSH BC

  PUSH DE

  PUSH HL
 JR NZ, LOOP, LOOP1 = JR NZ, LOOP

  JR LOOP1
 JR C, $ +5, Z, $ +20 = JR C, $ +5

  JR Z, $ +20

 DB ABC-$, ​​LOOP-$ = DB ABC-$

  DB LOOP-$

In the last two cases $ calculated
true, and the teams left and right is absolutely
equivalent).

Admitted following freaks:

 OUT (# FE) = OUT (# FE), A

 OUT B, A, (# FE) = OUT (C), B; only
- OUT (C), A; unclear
- OUT (# FE), A; why.

 IN (# FE) = IN A, (# FE)

 IN D, E, (# B7) = IN D, (C)
- IN E, (C)
- IN A, (# B7)

 LD HL, BC etc = LD H, B
- LD L, C

 LD BC, IX etc = LD B, HX
- LD C, LX

 EX HL, DE = EX DE, HL

 ADD DE, HL = EX DE, HL
- ADD HL, DE
- EX DE, HL

 ADD DE, BC = screwed up, did not.
- Corrected.

 EXA = EX AF, AF

 DB "@ AEDFC825" = DB # AE, # DF, # C8, # 25

 DS 7, # AA, # BB = DB # AA, # BB, # AA, # BB
- DB # AA, # BB, # AA
- Only seven bytes

 DS 1, "@ ABCD" = DB # AB, # CD
-.
- DB # AB
- Only 1 byte.

 DS 10 = 10 zeros

 _


  In _posleduyuschih_ versions of the compiler
expected to support the actions of the form:

 1. XI R, R (N)
Where X = ADD, SUB, AND, OR, XOR
 R-register or indirect cell
ADDI L, # 20 == LD A, L: ADD A, # 20: LD L, A

 2. LD DD, R

  LD BC, L == LD C, L: LD B, 0

 3. SUB HL, DD == OR A: SBC HL, DD

Oh, and something else come up with a thread.
 _

EXPRESSION

 Where the syntax allows a number, can be used in any expression
direct or some EQU.
This is true for all teams.

The counting takes place, ignoring transfers, the expression of 
the form 0 - # 20 = # FFE0. 

If the syntax requires a word, the result
just considered.

If the syntax requires a byte, the result
-Should be in the range # FF00-# 00FF, ie
0 - # 20 will give # E0.

In the commands IN, OUT, IM and RST negative
number is not allowed.

Signs that require two operands
(Placed between them):

 + Addition
G - Subtraction
 * Multiplication
 / Division

   Modulo
 '& AND (bitwise over words)
 ! OR (bitwise over words)
 | XOR (bitwise over words)
 > Acyclic right shift by N
 <= Less than or equal to, the result is 0 or 1
 > = Greater than or equal to, the result is 0 or 1
  More strictly, the result is 0 or 1
 = Equal, the result is 0 or 1

Signs that require one operand,
(Put after):

 [Byte (N/256)
 ] Low byte (N256)
 ^ Round to greater than or equal
# AE18 = # AF00, # B700 = # B700
 `Rounding to less than or equal
# AE18 = # AE00, # 3D00 = # 3D00
 ~ NEG, subtract variable from zero.
(The most interesting is that this sign
can not be entered from the keyboard:)

 @ NOT, = 0, if not zero
 = 1 if zero 'multiplied by 256

In complex terms, first considered
brackets, and then signs with the highest priority, then signs 
with smaller, and further to ninimalnogo prioriteta.Dlya equal 
priority calculation goes from left to right. 

   Within the brackets the same thing (there the
priorities). Maximum level of nesting of parentheses + priority 
- 16. (use a recursive procedure, the stack becomes clogged 
with intermediate results. Monitoring of the 16 levels is 
present, the system do not hang.)


 If the whole expression must be enclosed
in parentheses, use record
type 0 + (expression), otherwise the bracket will be
 perceived as a method of addressing.

Priorities:

[] ^ `'8
* / 7
~ 6
>> <<5
+ - 4
'& |! 3
= Etc 2
@ 2

Expressions can be used:

. Tags as the first character
 allowed only capital letter,
 As the others - the numbers, "_"
 and capital and small letters.

$ Current address of this broadcast
 operator. If you use any kind that JR $,$,$,$,$, then $ me is 
inside the line - he always  again points to the current 
"virtual exponentially" JR. 

123desyatichny bytes
12345 decimal word
# AAshestnadtsaterichny bytes
# FAB2 hexadecimal word
% Binary 10101 bytes
%. binary word
"A" character code in bytes
"AB" codes are two characters in a word,
 first - the eldest.



A few words about the peculiarities of syntax.

 INCB = INCBIN / INSERT
 INCL = INCLUDE (embedding not allowed)

 LX, LY, HX, HY 
 * 64 etc characters per line (revision
Our bend to apprehend such an option as a personal affront.)
 * Marks are longer than seven characters
 * Supports hard drives by # 3D13.
EXCEPTION: someone will ready the driver _BEZ_ characteristics 
of TR-DOS, so that all the errors came back up without messing 
up the screen no need for the system variables.

And if a driver suit us, then.






Other articles:

From the authors - a few words about the next issue.

Ator magazine - ZX-Format No.7

Content - short contents of the magazine ZX-Format No.7

Toys - an overview of new products: Los Angeles Drugs Bust, Jungle Warfare, Dragonia, 3D Starfighter, Rock star ate my hamster, Star Cobtrol, Malstese joe's pool challenge, Dynamite dux, Blood Brodthers, Galactic Games, Motor Masscre, International Kickboxing.

Toys - Tai-Pan: a masterpiece of classic ZX Spectrum. The game that combines the quest and the manager. Interesting story and a rather detailed description.

Toys - Operation R.R. Opening a new graphic novel from quest'u GALAXY.

Toys - Adventyury: description of the game-parody "Bored of the ring" - "sick of the Rings" can be used as a description, but can simply be read as a parody of JRR Tolkien.

Toys - 3D construction kit: a detailed description of the editor of 3D games such as Castle Master. The article describes the internal language sistemmy, which in fact, makes a set of locations and objects in a full game.

Programmers - Basic - 7: The End of the description of Beta-Basic.

Programmers - library of mathematical procedures. Series of articles for those wishing to learn how to program in assembly language.

Programmers - algorithms and examples of procedures for quick calculations on asemblere: multiplication and division of 3-byte numbers

Programmers - Mod Format files. Describe the format of the standard MOD file used in the General Sound.

Programmers - BMC 2. Esche few words about the conversion of PC-shnyh images in 3-color.

Review - An overview of the passage of the regular Demo-party ENLiGHT 1997 with photographs of some of the guests.

Review - A few moments with the exhibition of video and audio Video FAIR, held in autumn in Saint-Petersburg.

Iron - Captain Nemo invites to share technology KAY all willing to do production.

Iron - Information on a new project by Scorpion - motherboard expansion graphics and memory GMX.

Iron - An article about the audio amplifier and a price list (for those wishing to buy a ready-amp or kit assembly).

animated cartoon - Description of a new turbo-assembler from STORM X-Trade.

animated cartoon - Riff Tracker New Music Editor for General sound.

animated cartoon - Description tekstovgo editor of ZX-Winword, allowing to make graphical inserts in the text, and its utility Sprite Cutter - Cutting these insertions.

animated cartoon - Head Ball - Golovobol: Description of a new game.

Interview - interviews with participants ENLiGHT'97: Digital Reality.

Interview - interviews with participants ENLiGHT'97: Extreme.

Interview - interviews with participants ENLiGHT'97: MMA, ALK.

Interview - interviews with participants ENLiGHT'97: Flash inc.

Interview - interviews with participants ENLiGHT'97: Progress.

Interview - interviews with participants ENLiGHT'97: Felix / Softland.

Interview - interviews with participants ENLiGHT'97: Slash.

Interview - interviews with participants ENLiGHT'97: Vyacheslav Mednonogov.

It was you - Lord of the teeth - 2. Continuation of the adventures of the brave Hobbits.

It was you - Switch - A small philosophical parable.

Mail - A masterpiece. Another interesting letter - "the majority of applications and system software - complete nonsense, and Labuda!

Mail - readers' letters: Nikolai Sergeyev, Jobman, Nikolai Parfenov, Dmitry Zalissky.

Mail - free advertising and announcements.

Miscellaneous - prospects for the software. A new RPG game from Odessa Group "Oberon" - an unknown world.

Miscellaneous - prospects for the software. STATE OF THE ART: a new graphical editor for the Spectrum.

Miscellaneous - Electronic Samizdat: A few words about a new kind of software - Electronic books.

Amiga Club - A new article of the former Spektrumista Max Petrov on Amiga.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Stuck? - Description of the game "Castle Master 2 (The Crypt)".
Games - description of Game Crossword Razzlers.
Preamble - finally managed to get a firmware v. 4.01 for ProfPZU.
For Coderz - how to programmatically determine the number of strokes in the line of cars equipped with Port # FF.

В этот день...   21 November