ZX Review #7-8-9-10
08 ноября 1997 |
|
reader-reader - The procedure for printing labels assembler XAS to monitor debugger STS 4.3.
(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. *
Other articles:
Similar articles:
В этот день... 21 November