Просмотр полной версии : Научите делать Basic моноблок %)
Subj.
Или может быть даже есть какая то програмка для этого? :v2_conf2:
Забыл уже?;)
10 rem <здесь кодовый загрузчик>
20 paper not pi : border not pi : ink 7 : clear ... : randomize usr 23719 (адрес точно не помню уже)
следом за этим басиком лежат все кодовые блоки. В загрузчике:
ld de,(23796) ;расположение на диске первого кодового блока
ld hl,...
ld bc,#..05
call #3d13
...
и т.д.
Проверить, запуская басик. После этого склеить басик и все следующие за ним нужные блоки (L в RealCommander, ЕМНИП).
ЗЫ. Или пользоваться сборочной системой от Alone Coder'a. Там прям на диск списывается все. Но сложные случаи не уверен что поддержит.
ЗЫ. Или пользоваться сборочной системой от Alone Coder'a. Там прям на диск списывается все. Но сложные случаи не уверен что поддержит.
Это только для поклонников Аласма.
Забыл уже?
А я и не знал, первую прогу мне помогли собрать.
Начиная с Knight Arena, я просто брал любимый Real Commander, обрезал до 1 сектора, вбивал туда свой загрущик и склеивал с кодом. %)
Начиная с Knight Arena, я просто брал любимый Real Commander, обрезал до 1 сектора, вбивал туда свой загрущик и склеивал с кодом. %)
Жуть какая... У меня монолоадеры все свои всегда были:) По единому шаблону, разумеется)))
Конечно же есть такая программка. Названия забыл, но я ей все и делал под бейсик.
Вставлю свои 5 копеек. В бейсике делается загрузчик, на диске файлы располагаются в том порядке, в каком их надо грузить, потом для бейсик файла меняется длина в секторах так чтобы она равнялась сумме всех файлов (бейсик + кодовые) и переписывается на другой диск :)
А кто-нибудь помнит как в STS5.6 менять номер дисковода?
Вот что-то нашел у себя, вроде бы даже работало.
org #6000
;Monoloader maker v.0.1
;rajdee.mhm
;01.02.05
randomize equ #f9
usr equ #c0
val equ #b0
rem equ #ea
ld bc,#7ffd:ld a,#17:out (c),a
ld hl,End
ld (hl),0:ld a,h:or l
inc hl:jr nz,$-5
ld bc,9:call CopyName
ld hl,Start:ld de,BasEnd-BasBeg
ld c,#0b:call #3d13
ld bc,13:call CopyName
ld a,(#5d1e)
ld c,#09:call #3d13
ret
CopyName
ld hl,BasName:ld de,#5cdd:ldir
ret
BasName db "test "
db "B"
FilePar dw LdrEnd-BasBeg
dw LdrEnd-BasBeg
Start ;disp #5d3b; Alasm
phase #5d3b
BasBeg dw #0100; номер строки
dw LdrEnd-LdrBeg
LdrBeg db randomize,usr,val
db #22,"23883",#22
db ":",rem
;-Loader put here--------------
;------------------------------
db #0d
LdrEnd db #80,#aa
dw 1; номер строки автостарта
BasEnd unphase
End
В комплекте с sjasm есть monoloader, адаптированный Aprisobal.
Я конечно хрен его знает ;) но подобная темка уже была, правда там шел в основном разговор о создании загрузчика с помощью sjasm, но в нём это удобнее делать, даже примеры были.
А я делал, в основном так: В бейсике писал строку randmize usr 0 : rem, и столько пробелов, сколько байт имеет кодовый лоадер. Сохранял на диске, а потом STS-ом писал загрузчик. После #0e, менял 3 и 4 байты под реальный адрес (можно даже с кода двоеточия писать лоадер)и всё. Дописывал следом за бейсиком кодовый блок, склеивал и готово.
Писать в STS конечно не дело, зато просто. Golden Max как-то демку написал;-). Во прикол! Ох и мучался...
Потом появился Аласм, в котором есть фишка, что сама всё делает.
Если программа небольшая, то самый лучший вариант засунуть весь кодовый блок в REM строку... После старта перекидывается на свое место и запускается. Преимущество данного метода в том, что работать будет и с диска и с ленты....
для объединения файлов в один есть софт Monoblock creator, и какой-то коммандер умел это делать (Perfect commander?).
вот ещё нашёл, как-то здесь обсуждалось:
http://zx.pk.ru/archive/index.php/t-4401.html
klondike
25.08.2009, 11:10
Вставлю свои 5 копеек. В бейсике делается загрузчик, на диске файлы располагаются в том порядке, в каком их надо грузить, потом для бейсик файла меняется длина в секторах так чтобы она равнялась сумме всех файлов (бейсик + кодовые) и переписывается на другой диск :)
Если нужно было место в бейсике - определялась переменная массив, в которую подгружался ранее подготовленный код, далее - как описано выше )
Дык, написали же:
"...После этого склеить басик и все следующие за ним нужные блоки (L в RealCommander)..."
Это я насчет предпоследнего поста...
Aprisobal
28.08.2009, 16:36
Я конечно хрен его знает ;) но подобная темка уже была, правда там шел в основном разговор о создании загрузчика с помощью sjasm, но в нём это удобнее делать, даже примеры были. В примерах к SjASMPlus есть реализация моноблока. Для финальной сборки файлы нужно клеить в Real Commander'e, конечно же.
в составе Alasm есть модуль SAVEBAS.H
Я пользовался им.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot