Важная информация

User Tag List

Страница 2 из 23 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 227

Тема: Монолоадер для чайников.

  1. #11
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем мне нужно время, чтобы переварить инфу и попробовать что-нибудь на практике сделать
    По ходу дела буду отчитываться о проделаной работе.
    Куплю корпус и материнку от Spectrum +2/+3

  2. #12
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Жаль, zx-spectrum.ru гавкнулся, g0blinish тред создавал..

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Как узнать адрес не первого блока, а остальных двух?
    никак. Ты сам собираешь файлы, сам указываешь при загрузке.

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Как будет выглядеть кодовый загрузчик? Как его засунуть в REM? Как узнать точку входа в этот кодовый загрузчик?
    типа:
    Код:
     MODULE boot
    Basic:
     db #00,#01;номер строки
     DW EndLine1 - Line1
    Line1:
     db #EA;REM
     ld sp,#5FFE
    
     ld a,0:out ($FE),a
     ld hl,$4000,de,$4001,bc,6911,(hl),l:ldir
    
     di
     ld de,(#5CF4)
     ld hl, #4000
     sectors loaderb,loadere
     call #3d13
     jp #4000
    ;----------------------------demo------------
     db "yo,lamer!"
     db #0D
    EndLine1:
     db #00,#02
     DW EndLine2 - Line2
    Line2:
     db #20,#FD,#B0
     db #22,#32,#34,#35,#37,#35,#22;clear val "24575"
     db #3A; :
     db #F9,#C0,#28,#35;randomize usr (5+256*peek val "23635"+peek val "23636"
     db #0E,#00,#00,#05,#00,#00,#2B
     db #32,#35,#36
     db #0E,#00,#00,#00,#01,#00,#2A,#BE
    
     db #B0
     db #22,#32,#33,#36,#33,#36,#22;"23635"
     db #2B;???
     db #BE
     db #B0
     db #22,#32,#33,#36,#33,#35,#22;"23636"
     db #29,#0D;)
     db #80
     db #AA,1,0;;;;;;;;;;;;;autorun line,change program length to -4, e.g. 83-4=79
    EndLine2:
    EndBasic:
     ENDMODULE
    
     page 7
     org #DB00
    page7b:
    plyer:include "stc_player.a80"
    song:incbin "!rivrade-KIDSON AND ODYSSEY FROM RAPEWARE CORP-1996.STC"
    page7e:
    
     page 1
     org #C000
    page1b:
     incbin "page1.bin.zx7"
    page1e:
    
     page 3
     org #C000
    page3b:
     incbin "page3.bin.zx7"
    page3e:
    
     page 4
     org #C000
    page4b:
     incbin "page4.bin.zx7"
    page4e:
    
     page 6
     org #C000
    page6b:
     incbin "page6.bin.zx7"
    page6e:
    
        EMPTYTRD "past.trd" ;create empty TRD image
    	SAVETRD "past.trd", "boot.B", boot.Basic, boot.EndBasic - boot.Basic
    
        SAVETRD "past.trd","loader.C",loaderb,loadere-loaderb
    
        PAGE 1
        SAVETRD "past.trd","pg1.C",page1b,page1e-page1b
    
        PAGE 3
        SAVETRD "past.trd","pg3.C",page3b,page3e-page3b
    
        PAGE 4
        SAVETRD "past.trd","pg4.C",page4b,page4e-page4b
    
        PAGE 6
        SAVETRD "past.trd","pg6.C",page6b,page6e-page6b
    
        SAVETRD "past.trd","demo.C",begin,end-begin
        
        page 7
        SAVETRD "past.trd","song.C",page7b,page7e-page7b


    ---------- Post added at 14:40 ---------- Previous post was at 14:39 ----------

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    По ходу дела буду отчитываться о проделаной работе.
    валяй. спрашивай если чо.

  3. #13
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,195
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Это не по теме, но всегда было интересно: почему USR используется именно с RANDOMIZE? И если аргумент USR строка, то тоже используется RANDOMIZE?
    немного пооффтоплю, и не открою великую тайну, но бут в тырдосе я запускаю командой "poke" - кнопка ближе к ентеру
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  4. #14
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rasmer Посмотреть сообщение
    немного пооффтоплю, и не открою великую тайну, но бут в тырдосе я запускаю командой "poke" - кнопка ближе к ентеру
    можно j - тоже рядом

  5. #15
    Member Аватар для Faster
    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Монолоадер. Что это? И с чем его едят? Как сделать монолоадер? Что для этого надо?
    Вот тебе еще по теме пример. Посмотри исходники...

    Цитата Сообщение от denpopov Посмотреть сообщение
    Код:
    ...
    ;----------------------------demo------------
     db "yo,lamer!"
     db #0D
    EndLine1:
     db #00,#02
     DW EndLine2 - Line2
    Line2:
     db #20,#FD,#B0
     db #22,#32,#34,#35,#37,#35,#22;clear val "24575"
     db #3A; :
     db #F9,#C0,#28,#35;randomize usr (5+256*peek val "23635"+peek val "23636"
     db #0E,#00,#00,#05,#00,#00,#2B
     db #32,#35,#36
     db #0E,#00,#00,#00,#01,#00,#2A,#BE
    
     db #B0
     db #22,#32,#33,#36,#33,#36,#22;"23635"
     db #2B;???
     db #BE
     db #B0
     db #22,#32,#33,#36,#33,#35,#22;"23636"
     db #29,#0D;)
     db #80
     db #AA,1,0;;;;;;;;;;;;;autorun line,change program length to -4, e.g. 83-4=79
    ...
    мне кажется это слишком сложно для новичка
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  6. #16
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Faster Посмотреть сообщение
    мне кажется это слишком сложно для новичка
    /me разводит руками

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,800
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    86 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Ну и последний вопрос ;-) А чего запуск бинарного кода так далеко задвинули (спец вариант функции), почему не отдельная команда? Не предполагалось, что будет широко использоваться или нужна было именно функция, что бы код мог что-то вернуть в Бейсик?
    Размышлял тут так и сяк над этим филосовским вопросом.
    Пришёл к выводу: слишком жирно отдельную команду чисто для вызова кодблока без всяких "НО", "ЕСЛИ" и "ЧТО ПОТОМ" заводить было.
    Ведь пришлось бы её куда нибудь впихивать (на клавишу)
    А их и так на каждой клавиши по три штуки сидят!
    Какую-нибудь RUNCODE.
    Т.е. чисто "одноразовую" - передал управление машкоду и привет!
    Ради одной такой тратить место на вводе?
    (ведь до 128 бейсика по буковкам не наберешь)
    Хватит и RANDOMIZE (она тоже могла-бы остатся только для RND, но спасибо, пригодилась и для вызова кодблока)
    Как-то так видимо...

    ---------- Post added at 04:08 ---------- Previous post was at 03:58 ----------

    И вот ещё мысля пришла: Есть команда NEW
    Было-бы логично если NEW без аргумента - ну это как оно щас есть (сброс бейсика)
    А если с аргументом - то передача управления кодблоку.
    Это было-бы очень разумно.
    Как-бы безусловная передача и без надежды на возврат.
    Да только не додумали (да и не удивительно, ведь тогда это всё наощупь делалось, искали пути и способы как построить интерфейс. Даже сама концепция токенизированого ввода уже чего стоит!)

  9. #18
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак.. Я сделал самый простейший монолоадер, который просто грузит 1 архив и просто распаковывает его. Сначала я долго не мог понять, с чего же мне начать. Нифига не понятно. Но потом понял, что надо открыть Sublime Text, написать код, который дается в примере WLODEK BLACK и всё это собрать в трд. Поначалу код не хотел собираться в трд, я пробовал и так и сяк, в конце концов плюнул и скопировал в Sublime простейший пример, который выкладывал Алекс Райдер, и в этом примере поменял "середину" на код Влодека. Ну и естествено подставил свои значения длины секторов и старта. Потом сделал бейсик, загрузил в него полученный код, а потом всё это дело склеил риалкоммандером. Всё работает! ))

    Это конечно микроскопический успех, но всё-таки успех. Однако не понятно вот что, в уроке Влодека говорится
    Поскольку файлы нашей игры расположены на диске подряд, удобно воспользоваться системными переменными TR-DОS (23796 и 23797). В этих переменных хранятся данные о секторе и треке, следующих непосредственно за только что загруженными.
    Однако в примере кодового лоадера есть упоминание только о 23796:
    C помощью какого-нибудь ассем-
    блера наберите программку:
    ОRG 30000
    DI
    LD ВС,#1В05 ;заставка (#1В=
    ;27 секторов)
    LD DE,(23796) ;трек, сектор
    LD HL,16384 ;куда
    СALL 15635 ;вызов ТR-DОS
    LD ВС,#8905 ;осн.блок (#89=
    ;137 секторов)
    LD DE,(23796)
    LD HL,25000
    СALL 15635
    EI
    JР 25000 ;старт игры
    А почему 23797 никак не задействовано? В каком случае нужно, а в каком не нужно юзать этот адрес?

    И еще вопрос, в том же уроке описано как полученный кодовый загрузчик "залить" в бейсик:
    В конце строки напишите: RANDОМIZE USR 23872.
    В строке 1 наберите REМ, после поставьте столько же пробелов, сколько получилось байт в загрузчике. 3агрузите коды загрузчика в строку 1 прямой командой RANDОМIZE USR 15619: REМ: LОAD <имя файла> CОDE (23872+257).
    - Откуда взялась цифра 23872? Откуда мы узнали, что кодовый загрузчик надо грузить именно по этому адресу?
    - Что значит "имя файла" CODE (23872+257)? Я бы понял просто CODE 23872, но зачем скобки и зачем приплюсовывание 257? И почему именно 257?
    - Можно ли в строку REM вставить более весомый код, чем лоадер? Как? Ведь замучаешься вбивать несколько сотен пробелов.
    Куплю корпус и материнку от Spectrum +2/+3

  10. #19
    Activist
    Регистрация
    07.05.2014
    Адрес
    г. Новосибирск
    Сообщений
    424
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    про моноблок в 3-ем номере ЗаRulem было написано - http://vk.com/doc-69042740_284540298
    ZX-Evo (rev. C); Aspect 128 AVR Spectrum; ZX Spectrum +2; Дельта С; Speccy 2010; Sprinter Sp2000s

  11. #20
    dig out your soul Аватар для scl^mc
    Регистрация
    26.01.2005
    Адрес
    Russia, Ulianovsk
    Сообщений
    5,423
    Записей в дневнике
    6
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    29
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    - Можно ли в строку REM вставить более весомый код, чем лоадер? Как? Ведь замучаешься вбивать несколько сотен пробелов.
    можно. в zx-ревю за 1992 год приводилась программа для создания строки с rem и требуемым количеством символов после него
    'SONGS FROM CRUEL WORLD' IS REMASTERED!
    unmilky sky and other albums is here
    speccy merchandise

    we can dance beneath the fireflies on an empty road
    there is the light that never goes out... (the smiths)
    если кто-то что-то как-то, то вот моя аська - 371432992

Страница 2 из 23 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 206
    Последнее: 19.08.2020, 10:36
  2. TS Conf прошивка для Чайников
    от AAA в разделе Софт
    Ответов: 157
    Последнее: 10.01.2015, 04:46
  3. Ответов: 35
    Последнее: 01.12.2006, 10:06
  4. монолоадер.
    от Sinus в разделе Программирование
    Ответов: 17
    Последнее: 07.02.2006, 14:25

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •