City #40
08 февраля 2000

Ликбез - полное описание + полный дизассемблер ПЗУ TR-DOS (продолжение).

<b>Ликбез</b> - полное описание + полный дизассемблер ПЗУ TR-DOS (продолжение).
┌──────────────────────────────────────────────────────────────┐
│             **           ЛИКБЕЗ           **                 │
└──────────────────────────────────────────────────────────────┘

(c) П.Федин
  ПОЛНОЕ ОПИСАНИЕ + ПОЛНЫЙ ДИЗАССЕМБЛЕР ПЗУ TR-DOS 5.04T (5.03)
    ДЛЯ ПРОФЕССИОНАЛОВ, А ТАКЖЕ ДЛЯ ТЕХ, КТО ХОЧЕТ ИМИ СТАТЬ

                          продолжение

Адрес 6657. Подготовка к загрузке программы на бейсике.
6657  LD DE,(23635);берем адрес начала программы на бейсике
      LD HL,(23641);берем адрес конца программы на бейсике
      DEC HL
      PUSH HL      ;сохранение начала и конца программы
      PUSH DE
      SBC HL,DE    ;вычисление длины программы на бейсике
      LD DE,(23782);берем длину программы с переменными
      PUSH DE      ;сохраняем ее
      PUSH HL      ;сохранение длины старой программы
      LD HL,0      ;идет верификация ?
      LD A,(23801)
      CP 255
      JR Z,6688    ;если да, то длину не меняем
      LD HL,5      ;иначе увеличим ее на 5 байтов
6688  ADD HL,DE
      LD (23771),HL;установка длины загрузки
      POP HL       ;восстановление длины старой программы
      LD A,(23801) ;верификация ?
      CP 255
      JR NZ,6705   ;если нет, то подготовка памяти
      POP DE       ;снятие регистров со стека
      POP DE
      POP HL
      JR 6728      ;возврат
6705  CALL 6642    ;проверка наличия места для программы
      POP BC       ;восстановление длины программы с переменными
      POP DE       ;восстановление начала программы
      POP HL       ;восстановление конца программы
      PUSH BC      ;сохранение длины программы
      RST 32       ;стирание старой программы
      DEFW #19E5
      POP BC       ;восстановление длины программы
      CALL 7730    ;резервирование места для новой программы
      INC HL       ;установка переменной VARS
      LD BC,(23784)
      ADD HL,BC
      LD (23627),HL
6728  LD HL,(23635);берем адрес загрузки программы
      RET          ;возврат
────────────────────────────────────────────────────────────────
Адрес 6732. Подготовка памяти к загрузке массива. Установите
23784, 23767, 23769 и 23801.
6732  LD DE,(23784);загружать весь файл
      LD (23771),DE
      LD HL,(23767);берем адрес массива в памяти
      LD A,(23801) ;верификация ?
      CP 255
      RET Z        ;если да, то возврат
      LD HL,(23769);берем адрес загрузки файла
      PUSH HL      ;сохраняем его
6753  CALL 6642    ;проверка наличия места для массива
      POP HL       ;восстановление адреса загрузки файла
      LD A,H       ;он равен 0 ?
      OR L
      JR Z,6777    ;если да, то старый массив не убираем
      LD HL,(23767);берем начало старого массива
      DEC HL
      DEC HL
      DEC HL
      LD BC,(23769);берем его длину
      INC BC
      INC BC
      INC BC
      CALL 7726    ;стирание старого массива
6777  LD HL,(23641);берем начало области переменных
      DEC HL
      LD BC,(23784);берем длину файла
      PUSH BC      ;сохраняем ее
      INC BC
      INC BC
      INC BC
      CALL 7730    ;резервирование места для нового массива
      INC HL       ;установка имени массива
      LD A,(23762)
      LD (HL),A
      INC HL       ;восстановление и установка длины массива
      POP DE
      LD (HL),E
      INC HL
      LD (HL),D
      INC HL       ;берем адрес тела массива
      RET          ;возврат

                   продолжение следует ...




Другие статьи номера:

Планета шелезяка - подключение 1Mb Simm модуля памяти к "желтому" Скорпиону.

Что-где-почем - За вpемя, пpошедшее с пpедыдущего выпуска газеты, получил несколько бандеpолей с дискетами от VEL'a, Ice'Di и Slack Den'а.

Смайлик - До конца света осталось Бог знает сколько дней ...

Ликбез - полное описание + полный дизассемблер ПЗУ TR-DOS (продолжение).

Бук - папахи на башнях.

Beatles Forever - "Сеpжант Пеппеp" откpывает новый (и заключительный) этап в совместной деятельности "Битлз".

Двигатель торговли - Пpиобpету схему паpаллельного поpта на ВВ55, ноpмально pаботающую со Скоpпионом-256.

Благодарности - RAGE Technologic за оболочку газеты.


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

Похожие статьи:
MY CITY - Пятый посёлок. Ну чё тут сказать? Внатурe дeрeвня!
Новости - Techno Lab вeдyт paзpaбoткy игpы, paбoтa нaд жypнaлoм DЕJA VU зaмopoжeнa нa нeoпpeдeлeнный cpoк, Delirium Tremens делают "Стекло 2".
Проходилка - прохождение игры New Dizzy.
Программирование - Как определить сколько килобайт у вашей тачки. Определение наличия у Компа музыкальной платы. Определение типа музыкальной платы. Определение количества тактова за одно прерывание. Проверка наличия 128Кб. Определение наличия теневого ОЗУ. Проверка наличия порта #FF. Определение наличия модемной платы. Определение CDOS-модема и порта к которому он подключен.
Фотоскоп - фотографии читателей.

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