User Tag List

Страница 4 из 4 ПерваяПервая 1234
Показано с 31 по 38 из 38

Тема: Определение типа компа и расширенной памяти.

  1. #31

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Biland Посмотреть сообщение
    Дрова для KAY забрал, -4 такта ещё получилось снять
    Да нет в общем то не получилось, если посчитать удаление паразитных NOP. Ну тут бзик у меня такой ))
    Но в общем снять ещё можно, если скажем не прокручивать регистры длинными инструкциями, а прокручивать аккумулятор короткими, типа так :

    Код:
         add a,a            ; 4 сдвиг битов влево
         ld d,a             ; 4
         and %01110000      ; 7 маска старших битов
         ld e,a             ; 4 сохранение для d4
         add a,a            ; 4 сдвиг битов влево
         add a,a            ; 4 сдвиг битов влево получение d7 для #1FFD , перенос в fC  d7 для #7FFD
         rr d               ; 8 возврат позиций младьших битов и установка d7 для #7FFD в рег. D
         or e               ; 4 объединение битов d4 и d7 для #1FFD
         and %10010000      ; 7 маска
         ld bc,#1FFD        ; 10
         out (c),a          ; 12
           nop                ; 4 на всякий х.з. случай. А может и не надо  ))
         ld a,d             ; 4 биты для #7FFD
         and %10000111      ; 7 маска
         or #10             ; 7 установка rom1
         ld b,#7F           ; 7 порт
         out (c),a          ; 12
          nop                ; 4 опять фигня на всякий случай ))
       ret                  ; 10  усё !
          ; Итог:
                 ; 123 такта с паразитами, 115 без NOPов
                 ; 29 байт с паразитами, 27 без nop
    - - - Добавлено - - -

    А -а ! Я вспомнил почему у меня были перепутаны биты для драйвера кая.
    Это было сделано специально для совместимости с ram-диском Real Commander
    Раньше использовался единый драйвер доп. памяти для кая и скорпиона и RC работает по формату этого драйвера. Хотя я считаю что не стоит пихать лишние биты по непонятному назначению, но ради совместимости спецификация идёт лесом ))
    А вот для пентагона совместимость не выдержал, надо будет исправить ))

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

  3. #32

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Опробовал по Pentagon 1024sl.
    Классический вариант соответствия нумерации страниц с эмулями:
    Код:
                  ld d,a
                  and %00011000
                  add a,a
                  add a,a
                  add a,a
                  xor d
                  and %11011000
                  xor d
                  or #10
                  ld bc,#7FFD
                  out (c),a
                  nop
                 ret
    Для совместимости с ram-диском REAL COMMANDER , которая понимает только 512 k:
    Код:
                  ld d,a
                  and %00011000
                  add a,a
                  add a,a
                  add a,a
                  xor d
                  and %11011000
                  xor d
                  or #10
                  ld d,a
                  and %11000000
                  ld a,d
                 jr z,1F            ; для совместимости с REAL COMMANDER ( определяет только 512 K )
                  xor %00100000     ; используем для ram-диска от pentagon-512
    1             ld bc,#7FFD
                  out (c),a
                  nop
                 ret

  4. #33

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На эмуляторе unreal в программе pentagon 256/512 определяется как rPen1024
    Предыдущий драйвер не щёлкал страницы совсем на pentagon 256/512.

    Код:
                   ld hl,rPen1024
                   ld bc,lPen1024
                   bit 7,(ix+0)
                  ret nz
    
                   ld hl,rPen512
                   ld bc,lPen512
                   bit 6,(ix+0)
                  ret nz

    Как я понял проверяется ram0 в cpu0 (D3). Это потому, что pentagon 256/512 в реале не умеет этого?

    В эмуляторе ставишь pentagon 1024 и заглушку на D3 (#EFF7), то определяется как pentagon 512.
    Как там логику поправить, чтобы корректно определял?

    Этот пользователь поблагодарил Biland за это полезное сообщение:

    Dart Alver(08.10.2021)

  5. #34

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Biland Посмотреть сообщение
    На эмуляторе unreal в программе pentagon 256/512 определяется как rPen1024
    Предыдущий драйвер не щёлкал страницы совсем на pentagon 256/512.

    Как я понял проверяется ram0 в cpu0 (D3). Это потому, что pentagon 256/512 в реале не умеет этого?

    В эмуляторе ставишь pentagon 1024 и заглушку на D3 (#EFF7), то определяется как pentagon 512.
    Как там логику поправить, чтобы корректно определял?
    По ходу никак поправить нельзя. По крайней мере у меня идей нет.
    В Xpeccy при выборе варианта пентагон 128/512 порт #EFF7 отсутствует. В последних Unreal с какого-то перепугу сделали порт #EFF7 доступным и существующим вообще для всех моделей спектрума и не только пентагона и ATM. Ну х.з. но я считаю что Unreal здесь неправ. Конечно, может этот порт и напаивали, но к схеме памяти он отношения не имел и думается в большинстве 512-х его всётаки нет, а вот в Pentagon 1024SL он как-бы встроен официально. Лучше бы конечно сделать опрос владельцев 512-х пентагонов и узнать точнее, но ...

    Поэтому тут пока только два выбора или лочить вручную порт на эмуле или ограничиться определением только 512 K. поскольку способа определить 1024 K, не залочив 128-ю память кроме наличия порта #EFF7 (а разлочку в порте не предусмотрели к сожалению) я не вижу. Единственное считаю что правило хорошего тона в программировании под расширенную память толкует дополнительно дать возможность пользователю проги отказаться от автоопределялки и выбрать расширение памяти вручную для таких исключений из правил.

    Этот пользователь поблагодарил Dart Alver за это полезное сообщение:

    Biland(10.10.2021)

  6. #35

    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,811
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    386
    Спасибо Благодарностей получено 
    339
    Поблагодарили
    244 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    при выборе варианта пентагон 128/512
    Вот да. Во многих эмуляторах, в частности в SpecEmu только модель Pentagon128, и соответственно детектится как Spectrum128.
    Хотелось бы разделить эти модели. Или слишком сложно определить contended memory ? Только по тактам?
    И хотелось бы увидеть все же последнюю сборку..
    Profi v3.2 -=- Speccy2010,r2

  7. #36

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Хотелось бы разделить эти модели. Или слишком сложно определить contended memory ? Только по тактам?
    Разделять имеет смысл если программа использует разные решения в зависимости от типа и скорости памяти, типа мультиколор или чего-то подобного. Для расширения памяти (которого нет в данном случае) это не существенно. Исключение порт #1FFD для +2A, +3 чисто чтоб не спутался со скорпионом или каем.
    А так, ну да наверно сравнивая скорость доступа до разных страниц можно определить наличие и нумерацию банков медленной памяти, если это действительно критично.

  8. #37

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В итоге, в эмуляторe unreal при Pent512/256 на D5 защёлка (даже с #EFF7). Так, наверное, и в реале.

    Осталось узнать. У Pentagon-1024SL v2.x в реале может быть ниже 1М, например 512кБ и 256кБ? Если нет, то драйвер отрабатывает "штатно".

  9. #38

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Biland Посмотреть сообщение
    В итоге, в эмуляторe unreal при Pent512/256 на D5 защёлка (даже с #EFF7). Так, наверное, и в реале.
    В реале порт #EFF7 на пентагонах 256/512 далеко не факт что присутствует. Но если таки напаяли, то да защелка залочит память до сброса, и для 1024sl защелка тоже будет работать до сброса (по спецификации) если d2=1 в #EFF7 воткнуть.
    Поэтому получается что автоматом безбоязненно можно определять только 256/512 K.
    Подумав, есть только идея при определении наличия порта #EFF7, вызвать ручное подтверждение на наличие 1024 K. Или наоборот проверить наличие заглушки, и если память залочится, выдать предупреждение о необходимости сброса компьютера и : либо загрузки с опцией 512K, либо автоматически выставить конфиг на 512K.

Страница 4 из 4 ПерваяПервая 1234

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

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

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

Похожие темы

  1. Ответов: 44
    Последнее: 22.06.2023, 18:03
  2. реанимация расширенной орель бк-08
    от strade в разделе Несортированное железо
    Ответов: 6
    Последнее: 07.02.2015, 00:00
  3. Определение текущего адреса
    от Alex Rider в разделе Программирование
    Ответов: 52
    Последнее: 26.07.2012, 13:38
  4. Ответов: 10
    Последнее: 12.09.2011, 19:12
  5. Определение Turbo-FM
    от Максагор в разделе Программирование
    Ответов: 21
    Последнее: 28.09.2007, 20:29

Ваши права

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