User Tag List

Показано с 1 по 10 из 34

Тема: Fast PC-Loader

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

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

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    BASIC загрузчик
    Код:
    5CCB 0001                    ; номер строки BASICa = 1 
         2600                    ; длина строки = 38 + 4 = 42 байта
         F9C0                    ; RANDOMIZE USR 
         300E                    ; 0 - фиктивный адрес в символьном виде для экономии времени загрузки     
         0000DA5C00              ; реальный адрес начала загрузчика в кодах = 5CDA
         3AEA                    ; :REM - начало камментариев, где находится загрузчик в кодах
    
    5CDA F3         di           ; запрет прерываний
    5CDB 3E08       ld   a,08    ; BORDER=BLACK, TAPE_OUT=1 - пауза отключена
    5CDD D3FE       out  (FE),a
    5CDF 2100BF     ld   hl,BF00 ; адрес начала загрузки второго загрузчика
    5CE2 01FEFF     ld   bc,FFFE ; при чтении из порта FE ни одна линия клавиатуры не активирована
    
    5CE5 ED78       in   a,(c)   ; ожидание прихода стартового байта AA
    5CE7 FEAA       cp   AA
    5CE9 20FA       jr   nz,5CE5
    
    5CEB ED78       in   a,(c)   ; чтение байта данных из AVR (всего 256)
    5CED 77         ld   (hl),a  ; запись байта в память
    5CEE 2C         inc  l       ; следующий адрес и 
    5CEF 20FA       jr   nz,5CEB ; если не последний байт - продолжение загрузки
    
    5CF1 C300BF     jp   BF00    ; запуск второго загрузчика с адреса BF00
    
    5CF4 0D                      ; конец строки BASICa
    "L-256"

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    BASIC загрузчик
    Код:
    5CEB ED78       in   a,(c)   ; чтение байта данных из AVR (всего 256)
    5CED 77         ld   (hl),a  ; запись байта в память
    5CEE 2C         inc  l       ; следующий адрес и 
    5CEF 20FA       jr   nz,5CEB ; если не последний байт - продолжение загрузки
    почитай про работу команд INI/INIR

  4. #3

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    почитай про работу команд INI/INIR
    На мой взгляд, скорость достаточно хорошая получится и без INI.
    Команды INI слишком быстрые. ATMEGA у меня сможет передавать максимум 150 KB/s.
    В основном загрузчике будут 32 одинаковые блока команд:

    in a,(c)
    ld (hl),a
    inc hl

    Они обеспечивают оптимальную скорость 140 KB/s.
    Потом будет проверка цикла через каждые 32 байта:
    (Тут надо подумать, какая проверка лучше.)
    ld a,d
    or e
    jp nz, LABEL1

    Это снизит скорость до 135 KB/s.

    Тогда получится такое время загрузки SNA-файлов:
    T48 = 1,4 + 1,4 + 0,3 + 0,4 = 3,5 s
    T128 = 1,4 + 1,4 + 0,3 + 1,0 = 4,1 s
    Где 1,4 s - минимальное время пилот-тона, 0.3 s - время загрузки 50 байтов на стандартной скорости, 0.4 s - время загрузки 48 KB, 1.0 s- время загрузки 128 KB.

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

    Можно использовать и ini:

    ini
    inc b ; желательно, чтобы b был всегда равен FF
    dec e

    Это обеспечит скорость 145,8 KB/s. С проверкой цикла снизится до 140 KB/s

    В первом из 32х блоков dec e заменить на dec de.

    После 32-го блока добавить:

    jp nz, LABEL1
    ld a,d
    or e
    jp nz, LABEL1

    В de у нас будет размер загружаемого блока, кратный 32 байтам.

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

    Давайте попробуем сделать загрузку командой INIR. Это обеспечит скорость около 3500000 / 21 = 167 KB/s. Частоту UART FT232 и AVR тогда надо будет настроить на скорость 2 Mbps. Для этого к AVR подключим кварц на 16 MHz.
    Последний раз редактировалось zx-kit; 20.12.2015 в 20:31.
    "L-256"

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

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

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

Похожие темы

  1. Fast Tracker
    от GibbS в разделе Музыка
    Ответов: 7
    Последнее: 31.03.2018, 23:05
  2. Fast test AY
    от jerri в разделе Программирование
    Ответов: 3
    Последнее: 07.11.2013, 19:09
  3. Basic Loader Creator
    от Faster в разделе Софт
    Ответов: 39
    Последнее: 10.07.2013, 16:09
  4. Mod Loader 4 GS
    от breeze в разделе Программирование
    Ответов: 19
    Последнее: 20.10.2008, 16:13
  5. Fast 48x48 MUL | DIV
    от Sinus в разделе Программирование
    Ответов: 6
    Последнее: 05.07.2005, 17:00

Ваши права

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