Spectrum Land #02
31 октября 1996
  Софт  


  Программа   MONOBLOCK  CREAtOR
предоставлена  для публикации  в
нашем журнале кемеровской компа-
нией PLAYGEAR. Автор программы -
Даниил Баянов - прислал вместе с
ней и небольшой HELP, который Вы
сможете прочитать чуть ниже.  Мы
немного изменили текст HELP'а (в
смысле орфографии и стилистики),
но суть дела  от этого,  естест-
венно, не пострадала.  Надеемся,
что уважаемый DANIIL  не будет в
претензии.                      
                                
  Поскольку, как явствует из на-
звания программы,  речь пойдет о
моноблоках, после HELP'а  мы да-
дим полезную  (как  мы надеемся)
информацию для начинающих -  что
нужно сделать,  чтобы самому на-
писать простой загрузчик для мо-
ноблока (монолоадер).           
Баянов Даниил         г.Кемерово
Copyright PLAYGEAR COMPANY ©1996
------------------------------------------
  Попытки найти  среди  большого
количества  системных  программ,
преднaзнaчaющиxся  для работы  с
дисками, программу,  аналогичную
MBC по функциональным возможнос-
тям, не увенчались успехом. Поэ-
тому  я сел  и написал сию прог-
pammky...                       
  В принципе, как таковой,  HELP
не нужен, но все же  я решил его
написать, чтобы в дальнейшем из-
бежать всяческих проблем.       
                                
  Утилита MBC v1.00 преднaзнaче-
на для объединения  обычных фай-
лов в один  или несколько  (если
суммарная   длина   объединяемыx
файлов  превышает  255 секторов)
моноблочных файлов.             
  Ранее  для  выполнения  данной
задачи  необходимо было  вручную
рассчитывать  и  исправлять  все
параметры файлов с помощью диск-
доктора.  MBC работает  только с
каталогом,  поэтому если Вы сом-
hebaetecb в своих действиях,  то
предварительно сохраните нулевой
трек  (например,  с  помощью  JC
v4.0т),  т.к. восстановить преж-
ний  вид каталога  будет практи-
чески невозможно.  Программа ра-
ботает   с  каталогом  абсолютно
корректно (т.е. байты количества
файлов на диске, количества уда-
ленных файлов и т.п. рaссчитывa-
ются правильно).                
  Управление в программе элемен-
taphoe:                         
                                
  <GRAPH> - отметить  или  снять
метку с файла(ов).              
  Отметить можно только  находя-
щиеся "рядом" друг с другом фай-
лы (иначе отметка просто не про-
исходит). Аналогично осуществля-
ется и снятие метки. таким обра-
зом,  за один раз  можно создать
только 1 моноблок.              
                                
  <ENtER>  -  создать  моноблок.
Если было отмечено  более одного
файла, то появится предваритель-
ный запрос: "ARE YOU SURE Y/N ?"
("Вы уверены?"). Нажатие клавиши
 приводит к созданию монобло-
ка.                             
                                
  <SPACE> -  перечитать  каталог
диска (например, при его смене).
Все отметки при этом теряются.  
                                
  <D> - выход в tR-DOS,  попытка
запустить "boot".               
  Пример использования программы
MBC v1.00.  Пусть были  отмечены
следующие файлы:                
                                
  FILE:       TYPE:    LENGTH:  
  ─────       ─────    ───────  
 CRUSHER        B          1    
 loader         C          4    
 INTRO          C         46    
 GAMEDATA       C        112    
 LEVEL1         C         З7    
 LEVEL2         C         З9    
 EPILOGUE       C         48    
  В правом верхнем окне  отобра-
жаются файлы,  которые получатся
в результате создания моноблока.
Должно получиться следующее:    
                                
  FILE:       TYPE:    LENGTH:  
  ─────       ─────    ───────  
 CRUSHER        B        255    
 CRUSHER        1         З2    
  Имена всех  моноблочных файлов
одинаковы, тип первого файла  не
меняется. тип последующих файлов
- от "1"  до "9"  (по  возраста-
нию), их длина  (в байтах) равна
нулю.                           
  Если Вы  не знаете,  что такое
моноблок или монолоадер,  то пе-
ред тем,  как использовать прог-
рамму MBC v1.00, сначала изучите
соответствующую литературу.     
  Напоследок   хочется  сказать,
что хорошо бы реализовать данную
функцию в каком-нибудь  "комман-
дере",   например,  JEMMINY  или
MONStER  COMMANDER  (KSA,  отзо-
вись!...)...                    
──────────────────────────────────────────
                                          
  Небольшое примечание: JC v4.0т
- это  JEMMINY COMMANDER, версия
4.0т.                           
  Определение  того,  что  такое
"моноблок", Вы только что прочи-
тали  в HELP'е.  Но зачем  нужны
моноблоки?                      
  Моноблоки удобнее  копировать;
они быстрее загружаются;  меньше
изнашиваются  магнитные  головки
дисководов и рабочая поверхность
дискет.  Полагаем,  этих доводов
для Вас достаточно.             
                                
  Программа MBC освобождает соз-
дающего моноблок от рутинной ра-
боты, связанной с необходимостью
исправлять  ряд данных  о файлах
вручную, удалять файлы и т.д. Но
с ее помощью  нельзя  просто так
взять  и  превратить  в моноблок
обычную дисковую версию програм-
мы. Надо проделать небольшую ра-
боту и написать хотя бы  простой
машиннокодовый загрузчик.       
  Как это  сделать,  мы  покажем
Вам на условном примере.        
  Программа  (игра)   называется
GAME и состоит из 3-х файлов:   
                                
          1-й ф.2-й ф.З-й ф. 
──────────────────────────────────────────
Название  │ GAME │game$ │game1  
──────────────────────────────────────────
Тип файла │BASIC │ CODE │ CODE  
──────────────────────────────────────────
Длина в                      
байтах    │  200 │ 6912 │ З5000 
──────────────────────────────────────────
Длина в                      
секторах      1 │   27 │   1З7 
──────────────────────────────────────────
                                          
  Файл "game$" загружается с ад-
реса  16384  (заставка  к игре),
после грузится  файл  "game1"  с
адреса 25000.                   
  Затем игра стартует: RANDOMIZE
USR 25000.                      
  C помощью какого-нибудь ассем-
блера наберите программку:      
   ORG 30000                    
   DI                           
   LD ВС,#1В05   ;заставка (#1В=
                 ;27 секторов)  
   LD DE,(23796) ;трек, сектор  
   LD HL,16384   ;куда          
   CALL 15635    ;вызов TR-DOS  
   LD ВС,#8905   ;осн.блок (#89=
                 ;137 секторов) 
   LD DE,(23796)                
   LD HL,25000                  
   CALL 15635                   
   EI                           
   JP 25000      ;старт игры    
                                
  Загрузка всех блоков игры про-
изводится при помощи 5-й функции
tR-DOS (чтение группы секторов).
  Номер функции  задается  в ре-
гистре C.  В регистр В нужно за-
нести количество секторов. В ре-
гистровую  пару  HL  мы засылаем
адрес в памяти, с которого будет
грузиться  блок.  В  регистровую
пару DE заносятся номера началь-
ных трека и сектора нужного бло-
ка на диске. Поскольку файлы на-
шей  игры  расположены  на диске
подряд,  удобно  воспользоваться
системными  переменными   tR-DOS
(23796 и 23797). В этих перемен-
ных хранятся  данные о секторе и
треке, следующих непосредственно
за только что загруженными.     
                                
  Cкомпилировав программу, запи-
шите полученный объектный код на
диск (31 байт).  теперь надо об-
ратиться  к услугам старого доб-
рого BASIC'а 48K.               
  В строке  10  наберите  данные
установок цвета, оператора CLEAR
и пр., как в прежнем файле GAME.
В конце строки напишите:  RANDO-
MIZE USR 23872.                 
  В строке 1 наберите REM, после
поставьте  столько же  пробелов,
сколько  получилось  байт  в за-
грузчике. Загрузите коды загруз-
чика в строку 1  прямой командой
RANDOMIZE USR 15619:  REM:  LOAD
<имя файла> CODE (23872+257).   
  Запишите полученный BASIC-файл
на другой диск  (под тем же име-
нем - GAME),  скопируйте туда же
файлы  "game$"  и  "game1".  Вот
сейчас можете  запускать  MBC  и
насладиться  результатом  своего
"каторжного" труда.             
                                
  Несколько слов скажем  о неко-
торых "мелочах".                
  Экранные файлы (заставки)  за-
частую бывают компрессированными
и запускаются  из BASIC'а  стан-
дартной  командой  RANDOMIZE USR
<адрес>. В монолоадере (сразу же
после  команд   загрузки  такого
файла)  надо написать  CALL <ад-
рес>. A если  запуск игры произ-
водился двумя командами,  напри-
мер, DRAW USR <адрес1>,<адрес2>,
то  в конце  загрузчика  пишется
CALL <адрес1>, JP <адрес2>.     
  Написание  простых загрузчиков
для моноблоков в целом не намно-
го сложнее  адаптации  кассетных
программ для работы  в tR-DOS, и
особо "страшного" в этом  ничего
нет.  Хотя было бы  неплохо уви-
деть программу, которая,  помимо
наличия функций, выполняемых MBC
v1.00, имела бы возможность соз-
давать и простые монолоадеры.   
  Вполне возможно,  что  в нашем
журнале  будут   опубликованы  и
другие, не менее интересные  ра-
боты  творческого коллектива  из
г.КЕМЕРОВО. Если Вы захотите на-
писать автору программы MBC (Да-
ниилу Баянову)  или другому  со-
труднику  компании PLAYGEAR,  то
адрес Вы найдете в разделе "РЕК-
ЛАМА".                          
                                
         ─════════════─



Other articles:


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

Similar articles:
about different - The rumor about Mortal Kombat 1024kb. Match of Virus II. On autopsy Mirrors.
Presentation - a presentation of the game PUZZLE.

В этот день...   23 November