City #21
24 июля 1999 |
|
Likbez - polnoy disassembler ROM (part 14).
-------------------------------------------------- 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 Address 1409. Request to erase the file. Set 23773 and 23798, and in case C put the file number. If you answer Y file will be erased and turned on the flag Z, otherwise it will be turned off. 1409 PUSH BC; saving the file number CALL 7575; clear the screen and the opening of current 0. LD A, (23798) take the number of drive ADD A, "A"; calculate your drive CALL 15746; print it LD A, ":"; print colon CALL 15746 LD HL, 23773; address of the variable with the name and races File extension CALL 10552; print file name and extension LD HL, 10272; print FILE EXISTS. OVERWRITE? CALL 9991 CALL 4178; input keys CP "Y"; a "Y"? PUSH AF; preservation of the check result CALL 7575; clear screen POP AF; AF and restore a file number POP BC RET NZ; if there was a response to N, then return PUSH BC; saving the file number CALL 7575; clear screen POP BC; restore the file number CALL 1921; erase file XOR A; the inclusion of the flag Z RET; Returns Address 1460. Testing the existence of a file block with extension #. Set 23773, 23781 and 23782. If a block is found or the file has another extension, then include a flag Z, otherwise it will be turned off. 1460 LD A, (23781) take the file extension CP "#"; a "#"? JR Z, 1469, and if not, then XOR A; the inclusion of the flag Z RET; & Returns 1469 LD A, 10, a file search to 10 bytes LD (23814), A CALL 7347; file search LD A, 9; file look for the 9 bytes LD (23814), A RET; Returns Address 1483. Runs the command COPY "*","*". First star place in 23773, the second - on the calculator stack and set the 23800, 23843 and 23759. 1483 LD A, (23773) take the first character filename CP "*"; a "*"? JP NZ, 985, and if not, then NO FILE CALL 7605; withdrawal line from the stack Calculator torus EX DE, HL CALL 7297; install drive-receiver LD A, (HL); take the next character in the string CP "*"; a "*"? JP NZ, 7450, and if not, then the error LD A, (23798); retention rates drive-in receiver LD (23801), A 1524 LD A, (23801), the choice of drive-receiver CALL 15819 CALL 1029, setting the disk LD A, 255, start with the file 0 LD (23821), A LD A, (23800), the choice of drive-source CALL 15819 CALL 1029, setting the disk LD A, (23821); next file INC A LD (23821), A LD C, A CALL 5725; reading its descriptor LD A, (23773) take the first symbol of his name CP 0; is the end of the catalog? JP Z, 993, and if so, O.K. CP 1, the file is erased? JR NZ, 1524, and if so, what next file LD HL, 23782; preserve a part of the file descriptor LD DE, 23789 LD BC, 7 LDIR LD A, (23801), the choice of drive-receiver CALL 15819 CALL 7347; file search JR NZ, 1588, and if not found, copying File CALL 1460; check the file with a "#" JR NZ, 1588, if copied another block, then copy it CALL 1409; request OVERWRITE? JR NZ, 1524, if the answer was N, then the next file 1588 CALL 1596; copying a file CALL 7747; overwrite the sector with the descriptor File JR 1524, repeat until the end of the catalog Address 1596. Copying a file with two drives. Place the file descriptor in the 23773 and part of it at 23,789. 1596 CALL 1021; boot sector of the buffer 8 to Cones 0 LD A, (24073) take the number of files on the dis Ke CP 128; already have 128 files? JP Z, 7237, and if so, NO SPACE Error! We must show DIRECTORY FULL. LD HL, 23789; restore the file descriptor LD DE, 23782 LD BC, 7 LDIR LD DE, (23786) take the file length in sectors LD D, 0 OR A LD HL, (24074); take a number of free seconds operators on the disk SBC HL, DE; reduce the space JP C, 7237, if space is not enough, then NO SPACE LD (24074), HL; installation of a new number free sectors LD HL, (24070) take the address of the free space the space on the disk LD (23787), HL; installation disk file address PUSH HL; preserving its CALL 1839; copying a file POP HL; recovery addresses on file CD LD (23787), HL; install it LD HL, (23796) take the new address of the free Disk Space LD (24070), HL; install it LD HL, 24073; recorded 1 file INC (HL) LD C, (HL); take a number of the recording file DEC C LD B, 0 PUSH BC; save it LD DE, 9, burn the track sector 8 0 LD (23796), DE CALL 7747; record sector POP BC; restore the file number CALL 5739; installation file descriptor RET; Returns to be continued ...
Other articles:
Similar articles:
В этот день... 21 November