Virtual Worlds #01
31 декабря 1999

Ассемблер - Оверлеи для JC: Описание методов создания утилит работающих под управлением Jemmini_Commander 4.0T.

<b>Ассемблер</b> - Оверлеи для JC: Описание методов создания утилит работающих под управлением Jemmini_Commander 4.0T.
 ┌────────────────────────────┐
░▒░ JEMMINI COMMANDER ▒░▒░ ░ ░▒░▒▓▒▓ FOREVER █▓▒▓▒░▒░ ░ └────────────────────────────┘

                (C) TimeKeeper


  Программа эта довольно старая,
но я думаю еще есть люди которые
ей пользуются. Именно  для них и
предназначена данная статья.


  Сегодня   появляется  огромное
количество всевозможных команди-
ров,  плохих  и  хороших. Вкусы,
естественно,  у  всех  разные, и
каждый для себя выбирает то, что
ему больше подходит. До недавне-
го времени я использовал Jemmini
Commander,  и  я хочу предложить
вам  одну  из  своих разработок,
благодаря   которой   вы  самос-
тоятельно  сможете писать утили-
ты,  работающие  под управлением
Jemmini Commander'а версии 4.0T.

  Вообще,    эта   функция   уже
реализована в нем в виде кодовых
запускаемых файлов с расширением
*.U,  но я так до конца и не ра-
зобрался в их формате и способах
взаимодействия  с командиром, но
у  меня уже давно возникло жела-
ние  написания подобных приложе-
ниЙ,  что и побудило меня вплот-
ную  заняться  изучением данного
вопроса.

  Все  оказалось даже проще, чем
я  думал.  Начальный загрущик JC
выглядит следующим образом:

 1 CLEAR 0:RANDOMIZE USR 0:****

 На месте  звездочек расположена
программа   начальной  загрузки,
написанная  в  кодах.  Подлинные
значения  Clear и Usr из Бейсика
увидеть  нельзя и я, при исполь-
зовании  STS,  получил следующие
числа:  Clear=#5F1F,  Usr=#5D60.
После   окончания   загрузки, JC
преобразует  первую  строку сле-
дующим образом:

 1 CLEAR 0:RANDOMIZE USR 0:REM:
     RUN "        "

Clear=#FFFF,  Usr=#3D03 (15619).

И  переопределяет  указатель за-
пуска  на начало текущей строки.
Перед стартом программы он всего
лишь подставляет имя файла вмес-
то  пробелов и делает возврат по
команде RET. Ну вот, в принципе,
и  все,  что  нам необходимо для
написания  программ  под JC. Для
тех,  кто еще не догадался, обь-
ясню:  сначала  мы  создаем сле-
дующий Бейсик-файл:

 1 CLEAR 0:RANDOMIZE USR 0:REM:
     RUN "        "
 2 REM *****

Clear=#5F1F, Usr=#5D66.

 Вместо  звездочек  мы  помещаем
программу,  выполняющую загрузку
утилиты,  ее  запуск и возврат в
Jemmini.  Возврат может произво-
диться  по двум адресам:

 36076 - с тестированием компа
 36178 - без него.

 Итак сама программа:

      ORG #5D66
      LD BC,#7FFD   ;Загружаем утилиту в 7 страничку.
      LD A,23
      OUT (C),A
      LD HL,56064
      LD DE,(#5CF4)
      LD BC,#XX05
      CALL #3D13
      CALL 56064    ;и запускаем ее.
      LD HL,TEST    ;После возврата проверяем откуда
      LD DE,#8BC4   ;она была запущена:
      LD B,22       ;из командира или из DOS'а и
L0    LD A,(DE)     ;возвращаемся в среду вызова.
      CP (HL)
      JR NZ,DOS
      INC HL
      INC DE
      DJNZ L0
      LD BC,#7FFD
      LD A,16       ;Возврат в командир с предварительной
      OUT (C),A     ;коррекцией Бейсика и содержания порта
      LD HL,#FFFF   ; #7FFD.
      LD (23876),HL
      LD HL,#3D03
      LD (23886),HL
      JP 36076      ;Возврат с выводом тестовой страницы.
DOS   LD BC,#7FFD   ;Выход в DOS.
      XOR A
      OUT (#FE),A
      RST #00
TEST  DB "JemminiCOMMANDER V4.0"
 
  Конечно  же, утилиты не обяза-
тельно  должны  работать в стра-
ничках  - можно запускать их и в
основной  памяти,  но  предвари-
тельно   сохранив   используемый
участок  в страницах и восстано-
вив  его  после  работы. Как вы,
наверное, заметили, в программу,
для   более  корректной  работы,
введена проверка среды, из кото-
рой  был  осушествлен  запуск и,
соответственно,  возврат  в нее.
Если  ваша  программа, по каким-
либо  причинам,  не должна рабо-
тать из DOS'а, то вставьте в нее
фрагмент,   который  будет  осу-
ществлять  проверку и, при необ-
ходимости,  выдавать сообщение о
невозможности  продолжения рабо-
ты,   сопровождаемое  выходом  в
Бейсик.

  При     запуске     утилиты из
JCv4.0T,  по адресу #8BC4 содер-
жится  строка:  JemminiCOMMANDER
V4.0

  Еще хочу добавить, что начиная
с #6000 хранится каталог диска.

  В приложении журнала вы найде-
те утилиту написанные специально
для  JC по описанному мной мето-
ду: JC_cat.B

  Эта утилита нужна для устране-
ния ошибок каталога, появившихся
в  результате  работы Jemmini.

 (:) - ред. )

  Про это, я думаю, следует рас-
сказать поподробнее:

  Дело  в  том, что JC не совсем
правильно  осуществляет уплотне-
ние  диска. После этой операции,
в  конце  каталога остается сле-
дующая комбинация:

50 53 43 20 31 2E 30 33 PSC 1.03
...
00 41 20 50 52 45 56 31 ?A PREV1
...
01 58 5A 49 50 52 45 46 ?XZIPREF
^^

В то время как должно быть:

50 53 43 20 31 2E 30 33 PSC 1.03
...
00 41 20 50 52 45 56 31 ?A PREV1
...
00 58 5A 49 50 52 45 46 ?XZIPREF
^^

(Пример приведен для конкретного
каталога).

  Аналогичная  ошибка  возникает
при удалении группы файлов, рас-
положеных  в конце каталога. При
этом   начинаются   всевозможные
глюки,  из-за которых можно пол-
ностью  потерять всю информацию,
записанную после уплотнения.

  Программы,  написанные по опи-
санному  методу,  будут  на 100%
работоспособными  только при за-
пуске  из JCv4.0T или DOS'a. Про
другие  версии командира сказать
ничего  не  могу из-за невозмож-
ности проверки.





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

От редакции - история создания журнала.

Путеводитель - подробное содержание номера.

Описание оболочки - описание оболочки и методов ее правильной эксплуатации.

Авторы - об авторах.

Ассемблер - Z80 Flags: недокументированные комманды процессора Z80.

Ассемблер - Оверлеи для JC: Описание методов создания утилит работающих под управлением Jemmini_Commander 4.0T.

Ассемблер - Секреты TR-DOS: о методах пределения наличия дисководов.

Ассемблер - Круги на воде: Алгоритмы имитации эффекта известного на других платформах, под названием "круги на воде".

Ассемблер - Поиск пути. Решение задачи "статического" поиска наикратчайшего маршрута между двумя точками.

Отдохни - Механический эффект. История о том, что бывает, если использовать презервативы сомнительного происхождения.

Железо - Глюки клавиатуры: почему в играх для двух игроков, при игре вдвоем, компьютер не слушается вашего управления и информация о том, как этого избежать.

Железо - Прерывания: Кое-что непонятное о прерываниях второго рода.

Техпомощь - Мысли вслух. Интересно письмо из конференции fido7.zx.spectrum на тему "К вопросу о стандартизации".

Техпомощь - File FAQ. Полный разбор форматов файлов, наиболее часто встечающихся в Интернет, и не только; а также способы их конвертации в "нормальный" вид.

Техпомощь - Dos Review: материал по формату дисковой операционной системы IS-DOS.

Техпомощь - Dos Review 2: материал по формату дисковых операционных систем ПК "АГАТ", Радио-86РК, SP-DOS, БК-0011М.

Техпомощь - Dos Review 3: материал по формату дисковых операционных систем CP/M, ASC SOUND MASTER, RT11, СМ ЭВМ РАФОС.

Техпомощь - Dos Review 4: материал по формату дисковой операционной системы от неизвестного автора.

DI:HALT:99 - Анализ DH:99. Наконец-то вся правда о прошедшей летом, в г.Дзержинске пати, от самих организаторов.

DI:HALT:99 - Hidden Parts. Жизнь дзержинских (и не только) спектрумистов в период проведения DI:HALT:99.

DI:HALT:99 - Результаты. После прошествия DH:99, чуть ли не каждая вторая газета, считала своим долгом придумать новый вариант результатов. Данная статья направле- на на то, чтобы окончательно поставить все точки над "И".

Программы - Alien: описание и прохождение игры по фильму "Чужой".

Программы - описание Universal AntiProtector 0.01 (программа для автоматического раскалывания ряда популярных защитных систем).

Программы - редактор игровых экранов "Белые Пятна".

Программы - Exhumator: программа для "эксгумации дисков".

Программы - чанковый графический редактор: Hard Core ver 3.01

Программы - Глаз Вопиющего: програмка позволяющая смотреть картинки, спрайты, слушая при этоммузыку.

Отдохни - Стих о Sysop'e. Поэзия однако...

Отдохни - Секс в Фидо. Юмористический расказ о том, как же на самом деле занимаются любовью заядлые фидошники.

Отдохни - Анекдоты. Подборка анекдотов с компьютерной тематикой.


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

Похожие статьи:
Реклама - Реклама и объявления...
Новости - Дата релиза Walker, новое издание из Самары.
Железо - архитектура БИС параллельного интерфейса KP580BB55.
Обзор новинок - Nether Earth ZS Edition'99.
Привет - Штурм опять будет звонить; Imperio наверняка пошлет мне big fuck.

В этот день...   18 апреля