ZX Format #07
05 декабря 1997 |
|
animated cartoon - 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:
Similar articles:
В этот день... 21 November