ZX Review #3-4
22 июля 1997 |
|
Forum - I. Roshchin. Sharing ZX ASM 3.0 and STS 5.1.
(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).
Other articles:
Similar articles:
В этот день... 21 November