Micro #10
28 ноября 1998 |
|
Tape and Disk - Adapting programs to the system TR-DOS (Part 4).
ADAPTATION PROGRAMMES OF SYSTEM TR-DOS CHAPTER 4 LOADER, native ------------------------------- for those who do not know what machine code. Despite the fact that knowledge of assembler is not is required to understand what I'm going to write on, it does not hurt. Even more useful is the ability to use any monitor, disassembler, I recommend to use program from the package Ultraviolet / Infrared. This is the first assembler and disassembler, which appeared on the market for the ZX Spectrum. The program is easy to use and quite acceptable for the solution of those tasks that will be dealt with in this chapter. Later you would have to switch to something more serious (eg, STS 6.2). To present a consistent and clear organization of downloading files from the machine code for nepodgotolennogo user's task is more than difficult, but you can try. Let's start with the easiest. Suppose that the tape has a program consisting four files: the file to BASIC, the code file and two files with no header. Having studied BASIC program, you've come to the conclusion that it loads the code file and runs it from address 65000. With a Copy you have determined that code file is loaded from address 65000 and has a length of 30 bytes, the length of the file without the header is respectively 6912 and 32768 bytes. Now run the code file where him to be laid, but do not run it, and your disassembler. Disassemble memory is needed, starting at address start-up, that is, from the address 65000. Suppose disassembler that showed the following: 65000 LD IX, 16384; starting address 65004 LD DE, 6912, the length 65007 LD A, 255 65009 SCF 65010 CALL 1366; call Subprogramme, we load 65013 LD IX, 25000; starting address 65017 LD DE, 32768, length 65020 LD A, 255 65022 SCF 65023 CALL 1366; call Subprogramme, we load 65026 JP 40000; run the program 65029 NOP I do not presume to explain the meaning of all these zakoryuchek. If you know what they stand for your happiness, if not, and God bless You. To a little bit to deal with boot loaders, you need to remember that after LD IX should be addressed to download the file, after LD DE its length. Mnemonics LD A, 255, and SCF set the registration system, and CALL 1 366 calls a subroutine boot tape. Address after the CALL may vary Depending on whether you use the standard boot loader routine loading, located in ROM (as in this example), or their own. Thus, we learned that the loader Download two files, the first of which (6912 bytes in length and load address 16384), obviously, screensaver, and the second (32768 and 25000, respectively), the main program file (note that data on length of the file match the data provided by copyists), in addition, we learned that the program starts at address 40000. Using these data, we can begin to adaptation programs. Perhaps the hardest thing that will be to do is write the two files without the headers on the disk. If you have a program PCopier, PCopier Plus or L-COPY, then the problem is somewhat simplified. Will be sufficient to copy the files to disk and then run the following program: 10 RANDOMIZE USR 15619: REM: LOAD "less 001" CODE 16384 20 RANDOMIZE USR 15619: REM: SAVE "screen" SCREEN $ 30 RANDOMIZE USR 15619: REM: LOAD "less 002" CODE 25000 40 RANDOMIZE USR 15619: REM: SAVE "main" CODE 25000,32768 Of course, addresses and file names are only suitable for this example. However, there are many ways to copy files without using special kopiroschikov. We give the most simple for this example, the method (basically, it is suitable for most cases). After downloading the file, the loader, as Typically, runs the program. Usually, It uses the already mentioned team JP XXXXX, where XXXXX address programmy.Chtoby start to get a copy of the file, need to download the files into memory from tape and burn them to disc. You can use ready-made boot, after replacing instuktsiyu that triggers program, the instruction returns control to the BASIC interpreter, that is instead of the entity to supply JP RET, code is 201. In our example, this can be achieved by performing an operator POKE 65026.201. The value of the address, where the user JP, change to 201 (command RET), which will ensure a return to the beysiksistemu after downloading both files. Preparing such a code loader way, you can run it, not forgetting to provide a record of files on the disc after completion of boot. It is convenient to collect program in a few lines: 10 RANDOMIZE USR 65000: REM Start of longshoreman 20 RANDOMIZE USR 15619: REM: SAVE "screen" SCREEN $ 30 RANDOMIZE USR 15619: REM SAVE "main" CODE 25000,32768 When you see the message successful completion of the program, you will only have to write the loader from the disk, with What I hope no difficulties will arise. Chapter 5 "How To Fight RAMTOP'om," You See the next issue of Micro. --------------------------- 03/12/1998. Gloom Demons Inc. C.E. special for Micro 10.
Other articles:
BBS - Full description of work with BBS for Spectrum. |
Opinion - an overview of game genre D & D - Last Herp of Light Force. |
Tape and Disk - Adapting programs to the system TR-DOS (Part 4). |
Humor - a compilation of anecdotes. |
Pokes - a compilation of Poke's. |
Similar articles:
В этот день... 21 November