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:




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

Похожие статьи:
scene more - трилогия о сценерах: часть II.
Лит. страничка - Гриф "Y" (Дневник Лаборанта Ж. Скальпив - окончание).
Байки - День города: Вот и прошла у нас ещё одна пати, о которой я и хочу вам поведать...
Авторы - "A нeльзя ли было кyпить мeлодии y дрyгих грyпп?"
Истории - милицейские байки, продолжение.

В этот день...   26 апреля