(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?