ZXNet эхоконференция «code.zx»
тема: монолоадер.
от: SMT
кому: All
дата: 04 Feb 2006
Hello, Sinus
млин, а зайти в отладчик и поискать адрес строки
"yyyy_probelov_chtob_zapihat_code" лениво?
от: Slavik Tretiak
кому: All
дата: 04 Feb 2006
Hello, All
в ощем чую я что запарил всех своими вопросами, но срочняк надо.
как там чё надо в бейсике крутить и по каким адресам туда код запихивать, чтоб
монолоадер склепать?
типа
10 CLEAR VAL "xxxx": RAND USR VAL "fz_kakoj_adres": REM
yyyy_probelov_chtob_zapihat_code
вот вы мне этот "фз какой адрес" и скажите ;)
от: Oleg Golenkoff
кому: All
дата: 05 Feb 2006
Hello, SMT
SMT> млин, а зайти в отладчик и поискать адрес строки
SMT> "yyyy_probelov_chtob_zapihat_code" лениво?
Hасколько я помню AlCo вместе с аласмом распространял хрень которая при
компиляции и делала монолоадер! :rolleyes:
от: Slavik Tretiak
кому: All
дата: 05 Feb 2006
Hello, breeze
SMT: было б не лениво, не спрашивал бы ;)
breeze: аласм у меня ещё от Capry, а искать алковский аласм... уж прощё в
сталкере адрес вычислить ^_~
от: Гаврилов Виталий
кому: All
дата: 05 Feb 2006
Hello, Sinus
10 rem monoloader_code_and other fignja
20 clear val "25656":border not pi:paper not pi:ink val "7":randomize usr val
"23810"
по памяти нафигачил %)
от: Slavik Tretiak
кому: All
дата: 05 Feb 2006
Hello, Vitamin
сёнькс ^_~
однако я уже успел пересилить себя и посмотреть в сталкере ;)
зы. кста меньше места будет занимать мой вариант, когда CLEAR: R/U : REM
а всякие бордеры и паперы во вторичном загрузчике проставлять.
но всё равно сенькс.
от: Slavik Tretiak
кому: All
дата: 06 Feb 2006
Hello, goodboy
короче ещё 5 мессаг назад сделал сам.
но всё равно всем спасибо.
от: Kirill Frolov
кому: All
дата: 06 Feb 2006
Hello, Sinus
Sin> а всякие бордеры и паперы во вторичном загрузчике роставлять.
За вторичный загрузчик -- МОЧИТЬ В СОРТИРЕ!
от: Kirill Frolov
кому: All
дата: 06 Feb 2006
Hello, Sinus
Sin> как там чё надо в бейсике крутить и по каким адресам туда код
Sin> запихивать, чтоб монолоадер склепать?
Sin>
Адрес определяется самим бейсиком и зависит от наличия TR-DOS, interface-1 и
других фич.
> 10 CLEAR VAL "xxxx": RAND USR VAL "fz_kakoj_adres": REM
> yyyy_probelov_chtob_zapihat_code
> вот вы мне этот "фз какой адрес" и скажите ;)
МОЧИТЬ В СОРТИРЕ, таких кодеров. Догадайся за что.
Монолоадер обязан:
* являться ОДHИМ бейсик файлом. Hе "склеенном" в коммандере.
Полноценным бейсиком. Чтоб одним LOAD "" загружаться в
память.
* загружаться на любой спектрум-совместимой платформе.
а не исключительно пентагон-скорпион-трдос.
Иначе смысла в его монолитности -- нуль.
Как примерно устроен грамотный монолоадер можешь почитать
по ссылке:
http://groups.google.com/group/fido7.zx.spectrum/browse_frm/thread/542cbe0e50bd
ca83/cc19060deec4a106?lnk=st&q=fido7.zx.spectrum+Frolov+JP+1eb7&rnum=2#cc19060d
eec4a106
HИ ОДHОГО АБСОЛЮТHОГО АДРЕСА. HИКАКИХ СКЛЕИВАHИЙ.
И ДОЗАГРУЗОК ЧЕРЕЗ ТР-ДОС. Программа прячется в REM строке
программы ЦЕЛИКОМ. После загрузки программа распаковывается
или перемещается куда нужно и устанавливается CLEAR.
от: Kirill Frolov
кому: All
дата: 06 Feb 2006
Hello, Vitamin
Vit> 20 clear val "25656":border not piaper not pi:ink val "7":randomize
Vit> usr val "23810"
МОЧИТЬ В СОРТИРЕ!
от: Slavik Tretiak
кому: All
дата: 06 Feb 2006
Hello, fk0
fk0> * являться ОДHИМ бейсик файлом. Hе "склеенном" в коммандере.
fk0> Полноценным бейсиком. Чтоб одним LOAD "" загружаться в
fk0> память.
fk0>
МОЧИТЬ! ибо в REM ты не запихнёшь 200кб кода!
> * загружаться на любой спектрум-совместимой платформе.
> а не исключительно пентагон-скорпион-трдос.
>
МОЧИТЬ! ибо на моём байт-48 по любому не загрузиться!!!
> Иначе смысла в его монолитности -- нуль.
>
> Как примерно устроен грамотный монолоадер можешь почитать
> по ссылке:
> http://groups.google.com/group/fido7.zx.spectrum/browse_frm/thread/54
> 2cbe0e50bdca83/cc19060deec4a106?lnk=st&q=fido7.zx.spectrum+Frolov+JP+
> 1eb7&rnum=2#cc19060deec4a106
>
МОЧИТЬ!! ибо
fk0> * загружаться на любой спектрум-совместимой платформе.
fk0> а не исключительно пентагон-скорпион-трдос
fk0>
не загрузиться на +D и на моём байт-48 с кассеты!
> HИ ОДHОГО АБСОЛЮТHОГО АДРЕСА. HИКАКИХ СКЛЕИВАHИЙ.
> И ДОЗАГРУЗОК ЧЕРЕЗ ТР-ДОС. Программа прячется в REM строке
> программы ЦЕЛИКОМ. После загрузки программа распаковывается
> или перемещается куда нужно и устанавливается CLEAR.
>
ну что ж... после таких громких высказываний могу только пожелать удачи.
ибо это наводит на мысь что никаких серьёзных программ тебе писать не
доводилось.
от: Wladimir Bulchukey
кому: All
дата: 06 Feb 2006
Hello, fk0
Единственное, в чём есть капля смысла в предложении fk0, это проверять наличие
других интерфейсов и не стартовать вторичный загрузчик с абсолютного адреса
23872, так как при наличии дополнительных интерфейсов этот адрес может
сместиться выше. Hо покажите мне хоть один такой комп на просторах xUSSR. А для
"зарубежных друзей" давно уже делаются tap-версии.
А смысла запихивать всё в один REM нет вообще, мы не выигрываем ни в чём, а
проигрываем в том, что не можем поставить CLEAR ниже, чем это позволит вся
бейсик-программа, грузящаяся сразу, в то время как при наличии вторичного
загрузчика вполне можно поставить CLEAR хоть 24499 и грузить потом ещё 40
килобайт выше области стека.
от: Slavik Tretiak
кому: All
дата: 07 Feb 2006
Hello, Strunov
да.
когда загружается бейсик, вычисляешь адрес начала бейсика (PROG вроде или ещё
что там, помнил бы сам- не спрашивал бы ;) )
прибавляешь туда смещение от начала бейсика до твоих кодов
и далее:
┌─- code ───
di
ld a,201 ; ret
ld (#9000),a
call #9000
lbs dec sp
dec sp
pop hl
ld de,lbe-lbs
add hl,de
ld de,#9000
ld bc,pre-prs
ldir
jp #9000
lbe
disp #9000
prs ld sp,#9000
....
.. your programm ..
....
pre
└── code ───
не зависин ни от ПЗУ ни от подключённых девайсов... вааще ^_~
только может надо будет не в #9000 а повыше пихать прогу.
да, после старта проги прерывания желательно переопределить и ПЗУ вааще не
пользоваться.
тогда 100% везде будет работать.
зы. а оно надо? в нашем TR-DOS-ном мире ?
от: Wladimir Bulchukey
кому: All
дата: 07 Feb 2006
Hello, Strunov
Str> А все таки, есть ли способ, если программа не очень большая (кил 10),
Str> засунуть ее в REM строку всю и передать ей управление так, чтобы
Str> работало на любом Spectrum совместимом компе, с любыми подключеными
Str> девайсами?????
Str>
(23635) PROG
Соответственно, считываешь слово с этого адреса (PEEK 23635 + 256*PEEK 23636).
В компе с TR DOS будет 23867, а первый байт после REM - по адресу 23872. Если
есть ещё интерфейсы, PROG будет указывать на более высокий адрес.
от: Вячеслав Струнов
кому: All
дата: 07 Feb 2006
Hello, Sinus
А все таки, есть ли способ, если программа не очень большая (кил 10),
засунуть ее в REM строку всю и передать ей управление так, чтобы работало на
любом Spectrum совместимом компе, с любыми подключеными девайсами?????
:confused:
|