(C) Davydov, s.Zaprudnoe,
Nizhny Novgorod Region.
PROCEDURE FOR RELEASE OF MARKS
ASSEMBLER XAS
MONITOR debugger STS 4.3
I suggest to the "reader -
reader to "refine monitor STS
4.3.
In July 1996, I got the editor-assembler XAS
((C) Max Petrov), acquaintance with
which put an end to the search of a decent replacement for ZEUS,
which is composed of a shell PHT
v3.6 is still the most convenient for the 48K. Next question
will focus on a fairly old version
XAS, distribute in
the electronic journal "ZX-FORMAT
N4 ", which is starting with a
new text provides commentary "XAS by Max Petrov (HPM)
3,091.
Assembler XAS has, in my
opinion, a number preimushestv before
other assemblers:
- A legible font size 6x8 pixels. Tried in his
time to master TASM, MASM, etc.
Some characters differ
two - three points, and you have to strain your eyes are
constantly reading the listing.
- A convenient disk interface.
I immediately wanted to write something
similar to themselves, and the desire to use other assemblers
128K permanently lost.
- When writing and editing
line it automatically formats and validates formal syntax.
Though free-format text and graphically highlight the structure
of the program, but manually fill the mass gap
or pressed after each entity the tab key does not give much
pleasure. A syntax check enables
right to notice and eliminate most of the typos.
- Keyboard macros expand significantly reduce the time
getting your program.
- Attached recoder
translates the result of disassembling STS v.4 ((c) Dmitry
Partsyrny) format XAS, that
allows you to create a full
package from the assembly and monitoraotladchika.
- And many more enjoyable
detail.
Of the shortcomings can be noted
three, that could be easily
removed by the author of the program XAS
in the following versions:
- When you delete a row when
accidentally pressed SS / W it is impossible to restore.
- No team notes the group of lines to block operations. When
compiling the program from ready-made procedures rather boring
to keep SS / E from the beginning before the end of the text.
- Difficult to write programs using Russified upper half of
the code tables. Given the way Russification XAS, one can in
addition DEFM to enter the type of the mnemonic
DEFR, which is produced when compiling the code conversion
characters written in the standard KOI-7, loadable on the
table. The length of the table # 60. When this to the
characters with codes # 20 .. # 3F can be hung pseudographics.
Remain readable listing and the user will be free to choose the
way of Russification of your program.
About XAS all. Now for the completion by him STS 4.3, the
best monitor debugger for SPECTRUM.
The following is a listing routines print labels XAS.
140.
ORG # 8000
WORK # FE68
JR PR_NUM
PR_NUM JP # F867; printing numerical
; Tag values
PUSH HL
PUSH BC
LD (LABEL), BC
LD HL, SEARCH
CALL # DEB2; transfer podprog; FRAMEWORK in Resident
EXX
LD HL, (# DEEC); Banks
LD A, L
AND # 18; installation
OR # 56, 6-th page of RAM
LD BC, # 7FFD
CALL # E3CC; execution
; Subprogramme Residents
EXX
EX AF, AF
PUSH HL
CALL # DEA6; recovery
; Resident
POP DE
POP BC
POP HL
EX AF, AF
JR C, PR_NUM
LD A, (# FAE4)
AND A
CALL Z, # FB23; coordinates
LD HL, # DEEC; Banks
LD A, (HL)
LD C, A
AND # 18
OR # 56
LD (HL), A
LD HL, # FFF7; -9
ADD HL, DE
LD B, # 07; length of the label
EX DE, HL
PR_LOOP CALL # DEBC; A <- (DE) of 6 pages
CP # 21
JR C, PR_END
CP # 80
JR NC, PR_END
CALL # FB50; print Reg. A
INC DE
DJNZ PR_LOOP
PR_END LD A, C
LD (# DEEC), A
RET
SEARCH OUT (C), A; search tags
EXX
LD HL, # CB16; top of the table
; Tags XAS
S_LOOP LD A, (HL)
SUB # 01
JP M, S_END
LD DE, # 0007; length of the label
ADD HL, DE
LD C, (HL)
INC HL
LD B, (HL)
INC HL
EX DE, HL
LD HL, # 0000
LABEL EQU $ -2
SBC HL, BC
EX DE, HL; in HL address name
JR NZ, S_LOOP; next
; Tags
S_END EXX
OUT (C), H
RET
2
Since the label printing assembly is only meaningful if
there is a memory table tags Here is one of the possible
options for sharing assembly XAS and monitor STS 4.3.
Used with slight modifications BASIC-boot from
program XAS, intended
to work with STS 3. Two code
power source loader merged into one and added a file download
sts4.3b.
1 CLEAR VAL "25000":
RANDOMIZE USR VAL "23893":
REM
2 OUT VAL "32765", VAL "81":
RANDOMIZE USR VAL "49152"
3 OUT VAL "32765", VAL "87":
RANDOMIZE USR VAL "56064":
GO TO VAL "3"
In line 1, after the REM must
103 be any character in the place that you want to put a code
block, the listing of which is shown nizhe.140.
ORG # 8000
WORK # 5D55
LD A, # 51
LD HL, # C000; Loading XAS
LD B, # 2E
CALL LOAD
LD HL, # DB00; Loading sts4.3a
LD B, # 25
LD A, # 57
CALL LOAD
LD HL, # FB00; Loading sts4.3b
LD B, # 05
LD A, # 54
CALL LOAD
LD SP, # 5FFF
LD HL, # 1303; address of the program
PUSH HL; processing
LD (# 5C3D), SP; error
LD HL, # 1B76
PUSH HL
LD HL, (NEXT); address of the next
; Line BASIC
LD A, H
LD H, L
LD L, A
LD (# 5C42), HL; number of the next
; Line
XOR A
LD (# 5C44), A; number of the next
; Operator
LD HL, (# 5C4F); current channel
LD DE, # 000F
ADD HL, DE
LD DE, # 15BE
EX DE, HL
LD BC, # 0004
LDIR
RES 4, (IY + # 01), inclusion
; ROM-348
LD DE, # 5D3B
LD HL, NEXT
JP # 19E5; removing the first
; Line and running BASIC-interpreter
, With zero operator next line
LOAD PUSH BC
LD BC, # 7FFD
OUT (C), A
POP BC
LD C, # 2005
LD DE, (# 5CF4)
JP # 3D13
NEXT EQU $ +1; beginning of the next
; Line BASIC-program
2
To ensure joint
with XAS need to make
some changes to the STS 4.3.
Since XAS uses 4
page of RAM (1-I - assembler
3rd - the first text, 4 th - the second
text, 6 th - macro and table
labels) have one of them
combine for XAS and STS. I am a
made in the 4 th page, which is the second text XAS.
It is necessary to place additional bank STS 4.3.
You do not accidentally spoil
STS, better put it into
blank disc, on which to carry out all changes.
First, you need to set
"SETUP" STS Extend Bank # 1C
(Fourth page of RAM). So
as XAS uses its own
resident, located at # 5B90, to avoid conflict to establish a
resident of STS at # 5BB0. Save SETUP, in this case will be
modified and files sts4.3a sts4.3b.
Upload file sts4.3a in
Bank # 18 and downloaded at
# FE68 block codes that
printing labels XAS.
You can then use both the XAS and
STS, using the exit to BASIC.
In order for the command STS
Quit To ASM, switch to the XAS, to the address # DF53
write value # 51 (memory bank, which is installed
before moving on to the address
# C000). Since the resulting version of STS is designed to work
with the XAS, the change is justified devyatibaytnogo title
title screen STS. At # FF8C record STS4.3XAS. So how can a
situation in which the need Podgruzka additional bank STS, has
sense to change the file name is printed on the first command
LOAD. To this end, at # E6EB record sts4.3b
or the name of the file that you have it
rename. And it is better to rename to avoid confusion.
Modified sts4.3a ready. Save it to disk and place the files
on the disk in the following order: BASIC-loader code block
XAS, sts4.3a, sts 4.3b. They can be combined into
MONO-LOADER with any
disk utility that performs
"Bonding" files. At the same time
should be left on the disk also
copy sts4.3b for possible podgruzki.
Memory area occupied by
file sts4.3b, can be damaged when a large length of the second
text XAS. To debug programs are not affected, but not will use
the SETUP and disassembling the disk. If You need it, pre-check
the 4-th page RAM, and if necessary, load sts4.3b.
Migrating from STS in XAS team Quit To ASM will run always,
but the transition from the XAS the STS will be guaranteed to
run unless you change the memory address # 5C00 # 6000.
For the use of XAS with other versions of the procedure
STS4.X print labels need to change all the absolute addresses
of routines and variables STS. Learn them by viewing the
procedure for printing labels STS4.X. The algorithm is the same
for the labels of any assembly: the transfer of routines search
a resident, search tags, restore resident, print the label.
*