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одолжение следует ...




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
О разном - обзор существующих прошивок: EWS 1.0, GLUK RESET SERVICE 5.3K, REAL CAMMANDER 1.95, NEOS, MADROM, QUICK COMMANDER 2.6. Схема 16кб Кеша.
Система - музыкальные редакторы "WHAM" и "WHAM+AY".
О разном - сетевые новости из Москвы и не только.

В этот день...   20 сентября