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:
|
|
|
|
|
|
Likbez - full description + full disassembler ROM (part 5).
|
|
|
|
|