City #09 |
|
Likbez - full description + full disassembler ROM (part 5).
-------------------------------------------------- LIKBEZ -------------------------------------------------- (C) P. Yu Fedin FULL DESCRIPTION + FULL ROM Disassembler TR-DOS 5.04T (5.03) For professionals And as for those WHO WANTS TO BE. continued Ways to refer to TR-DOS ROM TR-DOS ROM is a shadow, so it can not be speak directly with CALL. But for that it was available for use, there is an address during the transition which included ROM TR-DOS. In the ROM BASIC-48 in these addresses is decoder therefore usually control there is never transmitted. Attention! In the ROM BASIC-128 in these addresses, there is a program, so when the ROM BASIC-128 TR-DOS ROM is blocked completely. Below you see a list of entry points, switching ROMs. 15616 - entrance to the shell TR-DOS. 15,619 - execute commands TR-DOS from BASIC. 15,622 - routine input from the data file. 15,629 - routine output data file. 15,632 - routine change of mind. 15,635 - subroutine call TR-DOS from the machine code. 15638 - error routine coming from the ROM BASIC. 15,663 - go to any address in the ROM TR-DOS. How to use these entry points 15616 - a simple call. You can set variables 23831 and 23296. 15619 - from BASIC: RANDOMIZE USR 15619: REM:of machine code: 1) placed in the memory of the command line in ASCII form with the prefix REM:. 2) put in CH_ADD address this row. 3) CALL 15619. For example: LD HL, LINE; installation CH_ADD LD (23645), HL JP 15619, the command ; Command line LINE DEFB 234; REM DEFB ":";: DEFB 239; HOAD DEFB 34; " DEFM "EXAMPLE"; EXAMPLE DEFB 34; " DEFB 13; ENTER 15,622 - to open a channel data file vyzvat.Na output symbol from the file will be in the battery. 15,629 - to open a channel data file and place in A character and cause. Attention! Contains an error. 15,632 - just call. Checks 23734 and 23832 and changes blokipamyati places if needed. 15,635 - Number of sub put in register C, the rest according to the table: Team Functions 0 recovery with the expectation INTRQ. Susceptibility takes BREAK 1 Select the floppy drive. Put the drive number those in case A. If a variable with time Menem move drive heads bit 7 included, is determined by the time displacement of the head and checked variable type of drive. If it does not equal 255 (Error), it will be determined by the number of Track drive. In this case involves It turns out that a unilateral drive (error). When you return is determined by track number, on which the drive heads and for worn in case the track 2 Positioning. Logical zero track place in A. If the address 23757 is not 0, after positioning of the delay. The program has a bug 3 Puts the contents of the battery on Adre Su 23807 4 Pushes the contents of the HL at 23,808 5 Reading of sectors. In HL place address in memory, D - number of the first road ki, the E - number of first sektoa in B - to lichestvo sectors. The program has a bug. 6 Recording of sektorov.Parametry and error same team of 5. 7 The output directory. In the battery place thread number, and place the number at 23,801 drive from 23798. The program has a bug. 8 Reading the file descriptor at 23,773. File number put in the battery 9 record file descriptor. Descriptor Publish Tite at 23,773 and put the number file in the battery 10 Search File. Verifiable part of the descriptor place to address 23773, and its length by place in 23814.Esli file is found, then the BC, 23823 and 23838 will be his number, or 23,838 does not change, but in 23,823 BC, and will be 255 11 record fayla.Imya and expanding place with 23773, beginning at the memory place in the HL, and Length - DE 1912 Record of the program in BASIC. Name and extension broadening place to address 23773. If we consider extension is not "B", then the file is written as code 13 Not used 1914 Performs 5 Functions: File Download: 23801 and 23824 in place 0, name and extension of place with 23,773, and also: To BASIC - program - nothing more. For files CODE: When A = 0 - the load address and length of the Be rutsya from the directory. For A = 3 - the load address is taken from HL, length - out DE. Otherwise - the load address is taken from HL, length - from the catalog. Array - A <> 0, HL - length of body the old array, or 0 if none No, in 23767 - the address of the old body weight Siwa in memory of 23,762 - the array name Verification of the file - all as to zag manual ultrasonic inspection, only 23,801 put 255. Upload file sector - in the 23,801 hybrids Tits 0, 23824 - 255, 23767 - Address BitTorrent, the HL - sector number in A - 3, in DE - 0 (the last two steps to about of the error. Attention! Does not work with files BASIC and DATA with the following error. Verification of the sector file, all as in the loaded, only 23,801 put 255. Record sector file - 23801 place 255 (for a workaround) in 23,824 - not 0 and 255, A - not 0, the HL - the number seconds torus in 23767 - the memory address 15 - 17 Not used 18 Erasing files. Name and extension of hybrids Titus with 23773, 23815 can be cleared, then at the end there will be a number of abortive fi fishing 19 Transferring 16 bytes from the address in HL at 23873 20 converse 19 21 Checking dorozhki.Fizichesky track number put in the battery and then hand Well drive. If you find any bad sector then 23,823, and BC will be 7, and 23,766 bu-children number 22 Select the upper side of the disc 23 Select the lower side of the disc 24 Checks membership drive and nastrai Vaeth system of its type. Contains an error 15638 - internal entry point. How to use See the disassembler. 15663 - Place the stack the desired address, then JP 15663. As an example, cite a program run two teams TR-DOS, absent in 15635. Formatting the drive. The name of the drive put in 23773. CAHL 15632; change memory LD A, 255, this part of the program repeats 15635 LD (23829), A; message does not print LD (23839), A; running machine code LD (23768), A; tracks do not check LD (23761), A; NO DISC when reading the address marker to ignore LD HL, 513; after the return will children in BASIC LD (23834), HL LD (23836), SP; preservation SP PUSH AF; allocation of space to address error-handling routine LD HL, 7901; e routines Format tion PUSH HL; putting it on the stack LD HL, 541; address setup routines address error handling PUSH HL; putting it on the stack JP 15663, the entrance to the TR-DOS ROM Packaging of disk space. CALL 15632; repeats 15635 LD A, 255 LD (23829), A LD (23839), A LD HL, 513 LD (23834), HL LD (23836), SP PUSH AF LD HL, 5806; address subroutine package disk space PUSH HL; putting it on the stack LD HL, 541; continue as above with as PUSH HL JP 15663 to be continued ...
Other articles:
Similar articles:
В этот день... 21 November