City #28
15 сентября 1999 |
|
Likbez - a full disassembler ROM (part 21).
*************** ****************** 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 4754 RST 24; print a message POP HL; recovery addresses the 19 th descriptor byte disk LD C, (HL); take a number of deleted files CALL 7588; print it LD HL, 4261; print DEL.FILES RST 1924 LD HL, 4382; print FREE SECTORS: RST 1924 LD HL, (23759) 4-byte LD BC, 4 ADD HL, BC LD C, (HL); take a number of free seconds tori INC HL LD B, (HL) CALL 7593; print it LD HL, 4398; print FILE NAME, START, LENGTH, LINE RST 1924 POP BC; restore BC and the current addresses in the buffer POP HL LD B, 16; print information about the 16 files 4789 CALL 4528; check reaches the end of Buffet pa CALL 15744; newline PUSH BC; preservation of the remaining Xia files PUSH HL; and current address in the buffer CALL 10552; print file name and extension LD BC, 13, the 13th byte of the file descriptor POP HL; recovery current address in buffer ADD HL, BC LD C, (HL); take the file size in sectors PUSH BC; save it LD A, C; load it into C LD B, 2, print 2 spaces before the number CP 10, the file length is less than 10 sectors? JR C, 4816, and if so, print gap DEC B; print a single space 4816 CP 100, file length is less than 100 sectors ditch? JR NC, 4825, and if not, what gaps not printing thief 4820 LD A, ""; seal gaps RST 1916 DJNZ 4820 4825 POP BC; restore the file length in sectors CALL 7593; print it LD HL, 4298, 16 spaces RST 1924 POP HL; recovery address descriptor file in the buffer PUSH HL; and then save it LD BC, 9, 9-th byte of the descriptor ADD HL, BC LD E, (HL); take the address of the file download INC HL LD D, (HL) PUSH HL; to save the current address in file descriptor EX DE, HL; transfer of load address fi la in HL CALL 4445; print it LD A, ""; gap CALL 15746 POP HL; recovery current address a file descriptor INC HL; the following address LD E, (HL); take the length of the file INC HL LD D, (HL) EX DE, HL; transfer it to the HL CALL 4445; print it POP HL; recovery address descriptor File PUSH HL; and then save it LD BC, 8, 8-th byte ADD HL, BC LD A, (HL); take the file extension CP "B"; a "B"? CALL Z, 4891, and if so, print the line cars run POP HL; recovery address descriptor File POP BC; and counter files LD DE, 16; address of the next descriptor fi la ADD HL, DE DJNZ 4789; repeat until the end PUSH HL; preserve address descriptor File CALL 15744; 2 times newline CALL 15744 JP 4760; repeat from the beginning Address 4891. Print auto-line program BASIC. In HL put the address of the file descriptor plus 8 and install 23,759. 4891 LD BC, 5, take the address of the file length in seconds tori ADD HL, BC LD B, (HL); take this length INC HL; the following address in the descriptor LD E, (HL); take the address of the file on disk INC HL LD D, (HL) DEC B; load will be 2 sectors JR Z, 4917 DEC B JR Z, 4917, if the file length is not greater than 2 sectors, the loading Sectors LD A, 16, 16 sectors per track 4908 INC E; next sector CP E; the end of the track? JR NZ, 4915, and if so, LD E, 0; next sector 0 INC D; and take the next track 4915 DJNZ 4908; repeat until the end 4917 LD HL, (23759) take the address of the workspace LD BC, 33, 33 bytes are already occupied ADD HL, BC LD B, 2, load 2 sectors PUSH HL; conservation load address sec tori CALL 7741; boot sectors LD A, 128, we seek the end of the program POP HL; recovery sector addresses in memory LD BC, 512; length of the region - 512 bytes CPIR; search for the end of the program LD A, (HL); take the next byte CP 170, is 170? RET NZ; if not, return INC HL; take the line number of auto- LD C, (HL) INC HL LD B, (HL) LD A, B; is 0? OR C RET Z; if so, return PUSH BC; preserve line numbers car Launch LD A, ""; print space CALL 15746 POP BC; recovery line number Autostart CALL 7593; print it RET; Returns to be continued ...
Other articles:
Similar articles:
В этот день... 21 November