City #26
30 августа 1999 |
|
Likbez - a full description and diassembler ROM (part 19).
************** *************** 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 4261. Message command LIST. 4261 DEFM "Del." 4265 DEFM "File (s)" DEFB 0 4275 DEFM "Title:" DEFB 160 4282 DEFB 23,17 DEFM "Disk Drive:" DEFB 0 4298 DEFB 23,16, "", 0 4302 DEFM "40 Track S. Side" DEFB 0 4322 DEFM "80 Track S. Side" DEFB 0 4342 DEFM "40 Track D. Side" DEFB 0 4362 DEFM "80 Track D. Side" DEFB 0 4382 DEFB 23,16 DEFM "Free sector" DEFB 0 4398 DEFB 13,13 DEFM "File Name Start Length Line" DEFB 0 Address 4433. Allocation of 546 bytes in the workspace. Sets 23759. 4433 LD HL, (23649) take the address of the workspace LD (23759), HL; installation address space LD BC, 546; to allocate 546 bytes JP 7715; selection and return Address 4445. Print the number of HL with zeros. 4445 XOR A; in the tens of thousands including 0 LD DE, 10000 4449 SBC HL, DE; subtracted from the number 10000 JR C, 4456, if the number turned out lower 10000, then the next level INC A; the next ten thousand JR 4449; repeat 4556 ADD A, "0"; print tens of thousands CALL 4520 ADD HL, DE; restore the balance of XOR A; including 0 thousand 4446 LD DE, 1000 SBC HL, DE; subtracted from the number 1000 JR C, 4473, if the number turned out lower 1000, the next level INC A; the next thousand JR 4446; repeat 4473 ADD A, "0"; print thousands CALL 4520 ADD HL, DE; restore the balance of XOR A; among hundreds 0 LD DE, 100 4483 SBC HL, DE; subtracted from the number 100 JR C, 4490, if the number turned out less than 100, then the next level INC A; next hundred JR 4483; repeat 4490 ADD A, "0"; print hundreds of CALL 4520 ADD HL, DE; restore the balance of XOR A; among dozens 0 LD DE, 10 4500 SBC HL, DE; subtracted from the number 10 JR C, 4507, if the number turned out less than 10, then the next level INC A; the next ten JR 4500; repeat 4507 ADD A, "0"; print tens CALL 4520 ADD HL, DE; restore the balance of LD A, L; printing units ADD A, "0" CALL 4520 RET; Returns Address 4520. Same as 15746. 4520 PUSH HL; preservation of HL and DE PUSH DE CALL 15746; print symbol POP DE; restoration DE and HL POP HL RET; Returns Address 4528. Check it reaches the end buffer working with the catalog. Set 23801 and 23756, and HL put the current buffer address. If the end of the buffer is reached, then load the next buffer sector of a directory, but the HL will be 23845. 4528 PUSH HL; preservation of HL and BC PUSH BC LD A, (23801) take the number of floppy 23801 LD HL, 23798; take a number of the current drive CP (HL); assigned a different drive? CALL NZ, 15,819, and if so, choose a designated drive POP BC; recovery HL and BC POP HL CALL 1292; check reaches the end of Buffet pa LD A, (HL); take the first character filename OR A; the end of the directory? JP Z, 467; if so, the conclusion CP 1, the file is erased? CALL Z, 1287, and if so, skip the file RET NZ; otherwise return JR 4528, if the file was missing, then the types torus to be continued ...
Other articles:
Similar articles:
В этот день... 21 November