(C) Ivan Roshchin, Moscow, 1997.
Joint use
ZX ASM 3.0 and STS 5.1.
Surely known to every programmer Monitor - debugger
STS. Especially convenient to use
this monitor along with the assembler: typing program
assembliruesh it, and then using the STS checks her work.
Starting with version 4.1, this monitor will truly priceless
opportunity to interactive debugging program with output labels
on their corresponding addresses. The problem is that not
anyone can use it.
Indeed, in version 4.1
procedure for deriving tags designed only for assembler "MASM
1.1 "and with any other assembler will not work. Similarly, the
following versions support only assembler" ALASM ". A what
about users of other assemblers?
Try to give a solution to this
problems for users "ZX
ASM 3.0 ".
WARNING! All the reasons mentioned below
only applies to STS 5.1!
To convert the STS 5.1
must do the following:
1) Make sure that the disk at
files are present "STS5.1"
(This file may also be called
ваться "STS5.1AL", "STS5.1XX"
etc.), "sts5.1a", "sts5.1b".
2) Run the file "STS5.1".
3) Press the "U". Address in
top of the screen should
become equal to # FE2A.
4) C # FE30 addresses enter prog
Rummy: 140.
# FE30: PUSH HL
PUSH DE
PUSH BC
LD HL, # FE46
LD DE, # 57E0
LD BC, # 001C
LDIR
POP BC
POP DE
POP HL
AND # 18
OR # 06
RET
CALL # 57EF
EX DE, HL
LD BC, # FFF9
ADD HL, BC
LD A, (HL)
INC HL
OR (HL)
INC HL
INC HL
LD A, H
RET
DEC DE
DEC DE
DEC DE
LD A, (DE)
RLCA
JR C, # FE5F
AND A
JR NZ, # FE57
INC DE
XOR A
RET
To control cite the contents of this memory area:
# FE30: # E5, # D5, # C5, # 21, # 46, # FE, # 11, # E0
# FE38: # 57, # 01, # 1C, # 00, # ED, # B0, # C1, # D1
# FE40: # E1, # E6, # 18, # F6, # 06, # C9, # CD, # EF
# FE48: # 57, # EB, # 01, # F9, # FF, # 09, # 7E, # 23
# FE50: # B6, # 23, # 23, # 7C, # C9, # 1B, # 1B, # 1B
# FE58: # 1A, # 07, # 38, # 03, # A7, # 20, # F8, # 13
# FE60: # AF, # C9
2
5) The address # FE71 enter prog
Rummy:
140.
# FE71: PUSH HL
PUSH BC
LD (# FECC), BC
LD HL, # FEC4
CALL # E354
LD HL, # FFFC
EXX
PUSH DE
LD HL, (# E33B)
LD A, L
CALL # FE30
LD L, A
LD BC, # 7FFD
CALL # E33D
EX AF, AF '
CALL # E348
POP DE
EXX
POP BC
POP HL
EX AF, AF '
JR NZ, # FE6E
LD A, (# FADD)
AND A
CALL Z, # FB1C
LD B, # 0A
LD A, (# E33B)
LD C, A
AND # 18
OR # 06
LD (# E33B), A
CALL # E590
NOP
AND # 7F
CP # 21
JR C, # FEBF
CALL # FB49
DJNZ # FEAF
NOP
LD A, C
LD (# E33B), A
RET
OUT (C), L
EXX
LD C, (HL)
INC HL
LD B, (HL)
EX DE, HL
LD HL, # 8015
AND A
SBC HL, BC
CALL Z, # 57EF
JR Z, # FEE0
CALL # 57E0
JR Z, # FEDF
CP # BF
JR NZ, # FEC7
AND A
EXX
OUT (C), H
RET
To control cite the contents of this memory area:
# FE71: # E5, # C5, # ED, # 43, # CC, # FE, # 21, # C4
# FE79: # FE, # CD, # 54, # E3, # 21, # FC, # FF, # D9
# FE81: # D5, # 2A, # 3B, # E3, # 7D, # CD, # 30, # FE
# FE89: # 6F, # 01, # FD, # 7F, # CD, # 3D, # E3, # 08
# FE91: # CD, # 48, # E3, # D1, # D9, # C1, # E1, # 08
# FE99: # 20, # D3, # 3A, # DD, # FA, # A7, # CC, # 1C
# FEA1: # FB, # 06, # 0A, # 3A, # 3B, # E3, # 4F, # E6
# FEA9: # 18, # F6, # 06, # 32, # 3B, # E3, # CD, # 90
# FEB1: # E5, # 00, # E6, # 7F, # FE, # 21, # 38, # 06
# FEB9: # CD, # 49, # FB, # 10, # F1, # 00, # 79, # 32
# FEC1: # 3B, # E3, # C9, # ED, # 69, # D9, # 4E, # 23
# FEC9: # 46, # EB, # 21, # 15, # 80, # A7, # ED, # 42
# FED1: # CC, # EF, # 57, # 28, # 0A, # CD, # E0, # 57
# FED9: # 28, # 04, # FE, # BF, # 20, # E8, # A7, # D9
# FEE1: # ED, # 61, # C9
2
6) Use the "B" establish
alphabet Bank = # 18.
7) Press "E". Will
Menu "Setup".
8) Choose menu item "Config Sa
ve ", write the change to the STS
disc.
To verify the correctness
changes run ZX
ASM 3.0, the Setup menu, select
click "Load sts" and specify the name
File "sts5.1a". Next, type
any program and otassembliruyte it. Then temporarily
exit in the STS and activate
disassembling with labels (with
keyboard shortcut "SS +
5). Instead of numbers you will see the corresponding label.
3
Little systematic information
on the ZX ASM: text and tags are in the same memory page
(Bank = # 1E), table labels organized on the principle of the
stack and begins with the end of the buffer. Each defined in
the program mark takes in this table 5 +
<Number of letters in the name of> bytes. STS with
disassembly examines
this area, and if the value
label and an address or number in a team match, the prints
label, or - number. If the area is kind of nonsense,
nothing bad will happen,
and the computer does not hang up and not
reset.
Disassembling labeled
runs slower than usual.
If your program uses are not very many labels, you
hardly notice the difference in
performance. But if the labels
much disassembled text output could slow by 45 times.
Procedure of disassembling
Labeled for ZX ASM 3.0 get a longer than
procedures for MASM 1.1 and
ALASM, and as a result, she
occupied the greater part of the buffer function of the user.
For this function, there are only 6 bytes of # FE2A on # FE2F
inclusive. If your function does not fit in
this area, you can do
one of two things:
1) Donate regime dizas
semblirovaniya with labels for
wrote at # FE71 commands
between JP # F86A. In this case,
can be used for fundamental
ktsii user memory
# FE2A to # FE5B and # FE74 in
# FEE3 inclusive (which is 162
bytes).
2) Place at # FE2A to
Mandu JP XXXX, and only with addresses
XXXX accommodate your function.
It should be noted that when working with the disassembly
mode tags spoils 28 bytes in the display area, starting at
address # 57E0 (and you yourself can edit these 28 bytes as you
want - It does not interfere with normal operation STS).
When downloading ZX ASM'a STS will be loaded automatically,
but Not all, but its main
part (file sts5.1a). Therefore, in
time will not be available
function "Disasm to Disk" and
"Setup", ie when you try to call STS reset. So it is better not
to press the keys "D" and "E". To save disk
space can erase files "STS5.1 " and "sts5.1b ",
if you do not run the STS
separately from the ZX ASMa.
Do not forget that nedokumen implanted team to work with
halves of the index registers
differently designated in the tech degree program in assembler
ZX ASM (XL, XH, YL, YH) and simple prog FRAMEWORK Motrya
disassembled in STS (LX, HX, LY, HY).