City
#25
16 августа 1999 |
|
Ликбез - полный дизассемблер ПЗУ (часть 17).
┌─────────────────────────────────────────────────┐ │ *************** ЛИКБЕЗ **************** │ └─────────────────────────────────────────────────┘ (c) П.Ю.Федин ╔═════════════════════════════════════════════════╗ ║ ║ ║ ПОЛHОЕ ОПИСАHИЕ + ПОЛHЫЙ ДИЗАССЕМБЛЕP ПЗУ ║ ║ ║ ║ TR-DOS 5.04T (5.03) ║ ║ ║ ║ ДЛЯ ПРОФЕССИОНАЛОВ, ║ ║ ║ ║ А ТАКЖЕ ДЛЯ ТЕХ, ║ ║ ║ ║ КТО ХОЧЕТ ИМИ СТАТЬ. ║ ║ ║ ╚═════════════════════════════════════════════════╝ пpодолжение Адpес 2054. Фирменный знак изготовителей TR-DOS ве- рсии 5.04T. 2054 DEFM " Message for hackers:Base version 5.03, High Speed" DEFM ", Turbo Format. " DEFB 127 DEFM "Copyright C.C. 1991" ─────────────────────────────────────────────────── Адрес 4096. Текст "Interface one fitted." 4096 DEFB 22,9,5 DEFM "Interface one fitted." DEFB 0 ─────────────────────────────────────────────────── Адрес 4120. Выполнение команды "*". Установите 23825 и 23611. 4120 CALL 7647 ;установка CH_ADD и прием имени дисковода на стек калькулятора CALL 7541 ;если идет проверка на синтаксис, то возврат CALL 1329 ;снятие имени дисковода со стека калькулятора LD A,(DE) ;берем первый символ имени CALL 1316 ;вычисление номера дисковода LD (23833),A;установка дисковода по умолчанию CALL 15819 ;выбор дисковода JP 993 ;сообщение O.K. ─────────────────────────────────────────────────── Адрес 4142. Прием расширения файла. Установите 23645 и 23766. 4142 LD B,"C" ;расширение C LD A,(23766);расширение принимать ? OR A JR NZ,4173 ;если нет, то установка расшире- ния файла CALL 7564 ;берем текущий символ CP 175 ;это CODE ? LD B,"C" ;расширение C JR Z,4173 ;если да, то установка расширения файла CP 228 ;это DATA ? LD B,"D" ;расширение D JR Z,4173 ;если да, то установка расширения файла CP "#" ;это # ? LD B,"#" ;расширение # JR Z,4173 ;если да, то установка расширения файла LD B,"B" ;расширение B 4173 LD HL,23781 ;адрес переменной с расширением файла LD (HL),B ;установка расширения RET ;возврат ─────────────────────────────────────────────────── Адрес 4206. Вывод цветных полос для заставки. 4206 LD HL,22757;адрес линии атрибутов LD B,10 ;установка атрибутов 4211 LD (HL),7 INC HL DJNZ 4211 LD (HL),2 INC HL LD (HL),22 INC HL LD (HL),52 INC HL LD (HL),37 INC HL LD (HL),40 INC HL LD (HL),7 LD HL,16622;адрес верхней линии пикселей LD B,8 ;8 линий пикселей в знакоместе XOR A ;обнуление аккумулятора 4239 PUSH BC ;сохранение количества линий SCF ;сдвиг пикселей RLA PUSH HL ;сохранение адреса линии пикселей PUSH AF ;и байта для заполнения LD B,5 ;в линии 5 байтов 4246 INC HL ;заполнение линии LD (HL),A DJNZ 4246 POP AF ;восстановление байта для заполне- ния линии, POP HL ;адреса линии POP BC ;и количества линий LD DE,256 ;берем адрес следующей линии ADD HL,DE DJNZ 4239 ;повтор до конца RET ;возврат ─────────────────────────────────────────────────── Адрес 4178. Ввод клавиши с ожиданием. 4178 DI ;запрет прерываний PUSH HL ;сохранение регистров PUSH BC PUSH DE 4182 RST 32 ;определение номера нажатой клавиши DEFW #028E LD C,0 ;режим клавиатуры - C или L JR NZ,4182;если нажата бессмысленная комбина- ция клавиш, то повтор RST 32 ;определение кода нажатой клавиши DEFW #031E JR NC,4182;если ничего не нажато, то повтор DEC D ;режим клавиатуры - C или L LD E,A ;помещение кода клавиши в регистр E RST 32 ;обработка клавиш CAPS SHIFT и SYM- BOL SHIFT DEFW #0333 POP DE ;восстановление регистров POP BC POP HL AND 223 ;буква будет заглавная EI ;разрешение прерываний RET ;возврат пpодолжение следует ...
Другие статьи номера:
Похожие статьи:
В этот день... 10 декабря