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

User Tag List

Страница 22 из 23 ПерваяПервая ... 181920212223 ПоследняяПоследняя
Показано с 211 по 220 из 227

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

  1. #211
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    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
    Вложения Вложения
    Куплю корпус и материнку от Spectrum +2/+3

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

  3. #212
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,773
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,178
    Поблагодарили
    774 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    осталось все сжатые блоки расположить с одного адреса.
    и можно будет экономить
    Код:
    ld b,x
    call load
    ..........
    load ld c,5
         ld hl,26000
    .......

  4. #213
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,133
    Записей в дневнике
    38
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    23 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    ld b,x
    Разъединение bc дало экономию в 1 байт. При условии, что у нас 3 блока. Если блока будет 2, то экономия будет отрицательной.

    Цитата Сообщение от goodboy Посмотреть сообщение
    осталось все сжатые блоки расположить с одного адреса.
    Картинку можно с основным блоком расположить с одного адреса. Но ведь третий блок (музыка) надо грузить с 49152
    Куплю корпус и материнку от Spectrum +2/+3

  6. #215
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,773
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,178
    Поблагодарили
    774 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    третий блок (музыка) надо грузить с 49152
    ну так и разжимай его на 49152, а сжатый размещай по другому адресу.
    грузи/разжимай его на страницу после загрузки картинки,
    (без проверки режима)
    на 48к он потом затрётся, на 128 будет на своём месте
    Последний раз редактировалось goodboy; 23.05.2018 в 10:25.

  7. #216
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,133
    Записей в дневнике
    38
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    23 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    коль пошла речь о экономии:
    Код:
            LD   HL,49152
            CALL    LOAD
            CALL    49152
    похожий вызов с 42000. поставь в LOAD push hl и убери CALL. -5 байт вроде

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

    упс, не так


    LD HL,26000
    CALL LOAD1

    LOAD
    push hl
    LOAD1

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

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    ну так и разжимай его на 49152, а сжатый размещай по другому адресу.
    грузи/разжимай его на страницу после загрузки картинки,
    (без проверки режима)
    на 48к он потом затрётся, на 128 будет на своём месте
    Я понял.
    Но тут вопрос идеологический. Выходит в 48-ом режиме зря будет что-то грузиться, а это не айс. Если на это забить, то можно вообще было бы блоки склеить и за один раз всё загрузить, или по крайней мере за 2 захода всё загрузить. Но мне больше нравится когда всё по отдельности. Это если бы под код загрузчика вообще места не было, тада другое дело.

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

    Шынни, про push не совсем понятно. Где push, там по идее и pop, как гласит народная мудрость. Но как это всё применить в загрузчике пока не пойму.
    Куплю корпус и материнку от Spectrum +2/+3

  9. #218
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,133
    Записей в дневнике
    38
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    23 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Шынни, про push не совсем понятно. Где push, там по идее и pop, как гласит народная мудрость
    сделаешь push hl, на стеке будет помещен адрес, RET бросит на адрес. Тот же CALL. (вызов не нужен после загрузки)

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

    По умолчанию

    Шынни, наконец до меня дошло Минус 5 байт.
    Куплю корпус и материнку от Spectrum +2/+3

  11. #220
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,133
    Записей в дневнике
    38
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    23 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    еще один незначительный выигрыш: при вызове LOAD ты используешь

    LD BC,#xx05 - три раза

    если оставить LD b,#xx а в процедуре LOAD ld c,5 , то выигрыш 1 байт

    И далее:

    LD SP,24137
    CALL 26000
    RUN JP 24158

    ZX48 LD SP,24137
    CALL 26000
    XOR A
    LD (29326),A
    JR RUN
    неясно, зачем заносить 0 в 29326, но 8 лишних байт итак видно.

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

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

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

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

Ваши права

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