(c) nikphe/any vs alone coder/i8/any

     ┌──      -──    ──-─-- ─-───- ─┐
  Creater of Turbo Mono Loader
     └┬──-  ───-── -   - ───  - -─┬-┘

┌ Nikphe

  Завалялся тут у меня кое-какой исходни-
чек, дай,думаю,в гайд кину... Программа-то
полезная,может кому и пригодится...
   Сама прогза лежит в приложении к журна-
лу,называется creater.H
   Каждый, наверное,сталкивался с ситуаци-
ей,когда требовалось создать загрузчик.Со-
бственно,цель прогзы - создание бейсик-за-
грузчика с mono лоадером (или ещё чем).
   Как  делается это стандартным способом:
берётся  бейсик  загрузчик, туда через sts
запихивается кодовый блок mono загрузчика,
фиксится длина бейсик-строки,добавляются в
конце  текста определённые байты для авто-
матического  старта  программы при команде
LOAD,тыры-пыры... Долго и муторно!!!
   Чтобы  не терять время и силы  на такие
мало интересные вещи, я и слепил эту прог-
зу.Она сама создаст подходящий бейсик-файл
и впихнёт туда загрузчик,от вас же требуе-
тся подправить кое-какие параметры в исхо-
днике (собственно, в исходняк можно пихать
всё, что угодно) и запустить прогзу. После
её запуска на диске появится бейсик-файл,к
которому вы приклеите всё, что хотели заг-
рузить. Клеить  файл к файлу можно в любом
нормальном  коммандере. (Ред.: только  вот
Perfect Commander  после  склеивания длину
неправильно ставит ;( ) Естественно, файлы
нужно  располагать на диске в той последо-
вательности, в какой они должны загружать-
ся.
   Ну вроде и всё, если вам это надо, то с
остальным вы разберётесь сами.

   P.S. В исходнике  использовался  turbo-
loader, написанный Faster'ом.
──────────────────────────────────────────


       #3d13 mono-load-n-runner ;)
        __,,,,...-.=-^-^^^^"""~~~

┌ Alone Coder

 Наверняка каждому после написания хоро-
шей  проги  хотелось  её побыстрее зарели-
зить,но писать загрузчик обычно бывает со-
всем ЛЕНИВО ;) Это понятно:пока писал про-
грамму - устал,отдохнуть охота... Но отзы-
вов по программе тоже охота,и побыстрее ;)
   Тут два решения:либо распространять не-
посредственно  исходник, либо использовать
готовый лоадер.
   Так вот, специально для быстрых релизов
маааленьких программ я написал один из та-
ких лоадеров.
   Мой лоадер занимает 1 сектор.

   Что делает этот лоадер:

1. Грузит  один  упакованный Hrust'ом v1.3
блок без распаковщика.
2. Распаковывает его.
3. OUT (254),0.
4. LD SP,stack.
5. Запускает программу.

   Основную часть загрузчика занимает рас-
паковщик Hrust, поэтому не обессудьте, что
он умеет так мало. Зато в большинстве слу-
чаев удаётся сократить собранную программу
на один сектор :D
   Перекидывалку  данных  из  распаковщика
пришлось убрать,поэтому блок нужно грузить
в высокие адреса,а распаковывать в низкие.

   Как пользоваться:

 - Откомпилируйте  свою  программу  в один
кодовый блок "prog.C".
 - Скопируйте  на этот диск сам загрузчик:
"DEHR.B".
 - Упакуйте свою кодовый блок Хрустом, без
распаковщика: "prog   *.C". Нужно,чтобы он
располагался на  диске сразу после DEHR.B.
Запомните  полученную после упаковки длину
в секторах.
 - Загрузите  исходник (DEHR1SEC.H) и вни-
мательно осмотрите его.
   Далее варианты:
 - Вариант a): исправьте переменные (адрес
загрузки,длину упакованного блока в секто-
рах,адрес распаковки,адрес стека,адрес за-
пуска)  в  исходнике, откомпилируйте его и
запишите с помощью STS получившийся сектор
с адреса #5d3b на диск поверх файла DEHR.B
(команда SS/S в STS'е.По умолчанию в пара-
метрах этой команды указан следующий после
загруженного файла сектор - вычтите из не-
го единицу).
 - Вариант b): загрузите  в  STS "DEHR.B",
исправьте  переменные в самом коде загруз-
чика  и запишите  опять-таки сектор поверх
старого.
   Не  пользуйтесь в STS командой сохране-
ния файла применительно к бейсикам. STS не
умеет правильно сохранять бейсик-файлы!
 - Выходите в коммандер и склейте "DEHR.B"
с файлом "prog   *.C". Потом переименуйте.
Можно релизить ;)

   Интересно, что  заголовок  упакованного
хруст-файла (первые 8 байт) не использует-
ся!
   Такой загрузчик имеют программы PT UTIL
и  8col-0.5  в приложении. Причём  PT UTIL
во время  работы использует этот же распа-
ковщик для разворачивания хелпа :)

   Hint: а вы знаете,что в Hrust 1.3 можно
сменить систему счисления кнопкой Edit?