City
#44
19 мая 2000 |
|
Ликбез - полный дизассемблер ПЗУ (часть 34).
╔═════════════════════════════════════════════════╗ ║.................................................║ ║..... .................. ..............║ ║.... @@@ ................ @@@@ ..............║ ║... @ @ ............... @ ................║ ║.. @ @ @ ║ ║.. @ @ @ @ @ @@ @@@@ @@@ @@@ ║ ║.. @ @ @ @ @ @ @ @ @ @ @ @ @ ║ ║.. @ @ @ @ @@@ @ @ @@ @ @ @ ║ ║ @ @ @ @ @ @ @ @@ @@@@ @ @ ║ ║ @ @ @ @ @ @@ @ @ @ @ @ @ @@ ║ ║ @@ @@ @@@ @@ @ @@ @@@@ @@@@ @ ║ ║ @@@ @ ║ ║........................................ @ @ ║ ║........................................ @@@@ ║ ║.................................................║ ╚═════════════════════════════════════════════════╝ (c) П.Федин ПОЛHОЕ ОПИСАHИЕ + ПОЛHЫЙ ДИЗАССЕМБЛЕP ПЗУ TR-DOS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5.04T (5.03) ДЛЯ ПРОФЕССИОНАЛОВ, А ТАКЖЕ ДЛЯ ТЕХ, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ КТО ХОЧЕТ ИМИ СТАТЬ ~~~~~~~~~~~~~~~~~~~ продолжение Адрес 7248. Обработка ошибки FILE EXISTS. 7248 LD HL,10693;адрес сообщения FILE EXISTS LD A,2 ;код ошибки - 2 JR 7242 ;обработка ошибок ─────────────────────────────────────────────────── Адрес 7255. Установка имени файла. Установите 23645 на имя файла. Будет выбран дисковод и установлена переменная 23773. 7255 LD HL,23773;адрес переменной с именем файла LD B,8 ;ее длина - 8 байтов 7260 LD (HL)," ";очистка ее INC HL DJNZ 7620 CALL 1329 ;снятие строки со стека калькуля- тора EX DE,HL CALL 7297 ;установка дисковода LD A,C ;имя файла - пустая строка ? OR A Ошибка в программе!!! Здесь должно быть OR B. JP Z,7450 ;если да, то ошибка CP 9 ;в имени файла больше 8 символов JR Z,7283 ;если да, то обрезаем его LD C,8 Внимание!!! Это будет работать неправильно при дли- не имени файла больше 255 символов. 7283 LD A,(HL) ;берем первый символ имени файла CP " " ;его код меньше 32 ? JP C,7450 ;если да, то ошибка LD DE,23773;адрес переменной с именем файла PUSH BC ;сохранение длины имени LDIR ;установка имени POP BC ;восстановление длины имени RET ;возврат ─────────────────────────────────────────────────── Адрес 7297. Установка дисковода для операции с фай- лом. В HL поместите начало имени файла в ASCII пре- дставлении, а в BC - его длину. HL установится на начало имени без дисковода, а в BC будет его длина. 7297 INC HL ;берем адрес следующего символа имени LD A,(HL) ;берем этот символ CP ":" ;это двоеточие ? JR NZ,7230 ;если нет, то активизация диско- вода по умолчанию DEC HL ;берем адрес имени дисковода LD A,(HL) ;берем имя дисковода CALL 1316 ;преобразование имени дисковода в его номер PUSH BC ;сохранение длины имени файла PUSH HL ;и адреса имени дисковода CALL 15819 ;выбор дисковода POP HL ;восстановление адреса имени дис- ковода POP BC ;и длины имени файла DEC BC ;отсекли 2 символа DEC BC INC HL ;берем адрес имени файла без дис- ковода INC HL RET ;возврат 7320 DEC HL ;берем адрес имени файла LD A,(23833);берем дисковод по умолчанию PUSH BC ;сохранение длины и адреса имени файла PUSH HL CALL 15819 ;выбор дисковода POP HL ;восстановление длины и адреса имени файла POP BC RET ;возврат продолжение следует ...
Другие статьи номера:
Похожие статьи:
В этот день... 2 декабря