User Tag List

Страница 20 из 23 ПерваяПервая ... 1617181920212223 ПоследняяПоследняя
Показано с 191 по 200 из 227

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    31.10.2005
    Адрес
    Кемерово
    Сообщений
    1,390
    Спасибо Благодарностей отдано 
    118
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    CP и JR Z оказались отличной заменой бейсик-нагромождениям "if peek x=y then randimze usr z"
    ZX_NOVOSIB походу преодолел барьер машинного кода . Ломани какой-нибудь релиз Billa Gilberta что ли - опыт охрененный получишь!

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

  3. #2

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    268
    Поблагодарили
    187 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от daniel Посмотреть сообщение
    Ломани какой-нибудь релиз Billa Gilberta что ли - опыт охрененный получишь!
    Не всё сразу

    - - - Добавлено - - -

    Цитата Сообщение от Шынни Посмотреть сообщение
    кстати, проверка на 128 некорректная, по адресу в страницах может находиться любое значение.
    Смотря что считать корректным. Формально она не корректная, но фактически сложно представить реальную (а не выдуманную) ситуацию в которой она не сработает. Вряд ли кто-то будет что-то химичить с содержанием страниц, а потом, без рестарта компа решит поиграть в игру. Даже в детстве, када я грузил с мафона, было правило, что перед каждой попыткой загрузки делался reset. И мне кажется, что все так делали/делают.

    Т.е. эта проверка - достаточная. Можно конечно сделать проверку "маниакальную", предельно корректную для всех случаев. Можно конечно сделать, для интереса. Правда тада не получится:

    ld a,20
    ......
    dec a ; a=19


    Ибо придется делать примерно так:
    1. В сжатом блоке хруста находим после 49151 какой-то байт, который равен нулю. Берём этот адрес на карандаш.
    2. Грузим картинку и основной блок.
    3. Переключаем на 19
    4. Заносим по этому адресу "19"
    5. Переключаем обратно на 16.
    6. Смотрим что лежит по адресу.
    7. Если там 19, то JZ на 48-ой сценарий.
    8. Иначе (0) - по любому 128. И пофиг что там в каких страницах лежало до загрузки игры.
    В 48-ом сценарии конечно придется перед стартом добавить
    XOR A
    LD адрес , A
    ___________

  4. #3

    Регистрация
    15.07.2009
    Адрес
    Череповец
    Сообщений
    1,800
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    64
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну и в догонку - в фирменной версии проверка как раз корректная в загрузчике:
    Код:
    LD HL,(C000)
    PUSH HL
    LD A,55
    LD (C000),A
    LD A,13
    CALL SET_RAM_PAGE
    LD A,AA
    LD (C000),A
    LD A,10
    CALL SET_RAM_PAGE
    LD A,(C000)
    AND 01
    LD (728E),A
    POP HL
    LD (C000),HL
    LD A,(728E)
    AND A
    JP Z,5E5E; START
    LD A,13
    CALL SET_RAM_PAGE
    LD IX,C000
    LD DE,4000
    CALL LOAD_BLOCK
    LD A,10
    CALL SET_RAM_PAGE
    JP 5E5E; START
    ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
    Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek

  5. #4

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Смотря что считать корректным. Формально она не корректная, но фактически сложно представить реальную (а не выдуманную) ситуацию в которой она не сработает.
    какую невыдуманную? у анрыла есть настройки замусорить память при запуске. Лучше выкинуть из головы тот факт, что в памяти одни нули, иначе придется разбираться, почему программа не работает. а нажать reset - это детский сад.

  6. #5

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
            LD   A,19
            LD   BC,32765
            OUT  (C),A
            LD   (65532),A
            LD   A,16
            OUT  (C),A
            
            LD   A,(65532)
            CP   19
            JR   Z,ZX48
    
     ZX128 LD   A,19
            LD   BC,32765
            OUT  (C),A
    лишнее телодвижение. проще включить страницу 6, потом 3

  7. #6

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    при проверке режима можно сначала включить четвертую, а потом третью.
    Код:
    ld a,20
    ......
    dec a ; a=19
    уже экономим байт
    и вместо
    Код:
    ld (xxxx),a
    .......
    ld a,(xxxx)
    сделать
    Код:
    ld hl,xxxx
    ld (hl),a
    .......
    ld a,(hl)
    ещё экономим байт

  8. #7

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    268
    Поблагодарили
    187 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    при проверке режима можно сначала включить четвертую, а потом третью.
    Код:
    ld a,20
    ......
    dec a ; a=19
    уже экономим байт
    и вместо
    Код:
    ld (xxxx),a
    .......
    ld a,(xxxx)
    сделать
    Код:
    ld hl,xxxx
    ld (hl),a
    .......
    ld a,(hl)
    ещё экономим байт
    Экономить по байту - не наш метод! )

    К тому же, как заметил Шынни, проверка не корректная (мало ли что окажется в памяти перед запуском игры). В общем, я упростил некоторые конструкции и убил таким образом сразу двух зайцев: сэкономил 14 байт, и проверка стала корректной "Всё и сразу" (с)

    Код:
            ORG 23894
    
            LD   BC,#1605
            LD   HL,42000
            CALL    LOAD
            CALL    42000
            DI
            LD   BC,#7D05
            LD   HL,26000
            CALL    LOAD
    
            LD   A,18
            CALL    PAGE
    
            LD   A,(50100)
            CP   84
            JR   Z,ZX48
    
     ZX128  CALL    PAGE
    
            LD   BC,#1105
            LD   HL,49152
            CALL    LOAD
            CALL    49152
    
            LD   A,16
            CALL    PAGE
    
            LD   SP,24137
            CALL    26000
     RUN    JP      24158
    
     ZX48   LD   SP,24137
            CALL    26000
            XOR A
            LD  (29326),A
            JR RUN
    
     LOAD   LD  DE,(23796)
            CALL    15635
            RET
    
     PAGE   LD   BC,32765
            OUT  (C),A
            RET
    Вложения Вложения
    ___________

  9. #8

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZX_NOVOSIB, я предвкушаю тот момент, когда ты обратишься в сторону написания tiny intro xD

    Например, LOAD и PAGE можно объединить и сократить, если нужно.

  10. #9

    Регистрация
    15.07.2009
    Адрес
    Череповец
    Сообщений
    1,800
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    64
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а зачем 1 загонять в 29326? Что это даёт?
    ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
    Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek

  11. #10

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    268
    Поблагодарили
    187 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Gutten Посмотреть сообщение
    Что мешает проверить самому?
    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Проверить самому??
    Хм.. А это идея.
    Цитата Сообщение от Gutten Посмотреть сообщение
    а зачем 1 загонять в 29326? Что это даёт?
    Как насчёт проверить самому?
    Можно же загрузить блок, распаковать его и в эмуле посмотреть что-там лежало до 1 (подскажу, там до 1 лежал 0), а потом прям во время игры по Ctrl+P (в спекуляторе так) позаносить эти значения и сразу станет ясно, зачем нужна 1 ))

    - - - Добавлено - - -

    Цитата Сообщение от Шынни Посмотреть сообщение
    лишнее телодвижение. проще включить страницу 6, потом 3
    Это как? Это то о чём Гудбой писал или ты о чём-то другом?
    ___________

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

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

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

Эту тему просматривают: 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

Ваши права

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