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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Как проги определяют 128к?

  1. #1
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    7,551
    Благодарностей: 1672
    Записей в дневнике
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Как проги определяют 128к?

    В ближайшем времени буду ставить 128к на байт. Многие игрушки во время загрузки определяют какой у тебя комп.(48 или 128) Они определяют прошивку или объём памяти? Придётся ли мне ставить ещё одну прошивку (переключаемую) или не надо?
    С уважением, Александр.
    Scorpion ZS-256 Turbo+
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

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

  3. #2
    Veteran Аватар для jtn
    Регистрация
    15.01.2005
    Адрес
    Kievska Rus
    Сообщений
    1,147
    Благодарностей: 5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    байт (я так понял у тебя он) это вообще тяжелый случай.. но 99% программ используют только обычную 48ю прошивку, так что всё будет нормально

  4. #3
    Veteran
    Регистрация
    22.02.2005
    Адрес
    Украина, Харьков
    Сообщений
    1,523
    Благодарностей: 107
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Компьютер из 48K в 128K (и более) можно превратить даже не имея в наличии прошивки BASIC128, важен лишь порт переключения страниц и экранов (7ffd). Проги, по крайней мере подавляющее большинство, в этом случае прекрасно понимают что они работают на Spectrum128. Кроме того интересно и то, что имея только 48К и порт 7ffd сам BASIC128 прекрасно запускается и считает что компьютер Spectrum128 (но кажется также понимает что верхняя память "повреждена").
    Детект факта 128К проги осуществляют как правило занесением инфы по #C000-#FFFF и переключением банков памяти с последующим сравнением занесенного и считанного значения.

  5. #4
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,462
    Благодарностей: 3169
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    есть несколько прог которые определяют размер памяти по ячейки ПЗУ или переменной 23388, но таких очень мало

  6. #5
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    7,551
    Благодарностей: 1672
    Записей в дневнике
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё понятно. А то думаю как CHASE HQ определяет. На Spectrum128 грузится дольше и заставка другая и АУ работает...
    С уважением, Александр.
    Scorpion ZS-256 Turbo+
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

  7. #6
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    697
    Благодарностей: 137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В своих программах я определяю 128К такой максимально оптимизированной процедурой:
    Код:
    DI
    LD  HL,#D110
    LD  BC,#7FFD
    OUT (C),L
    LD  (HL),B
    OUT (C),H
    LD  (HL),C
    OUT (C),L
    LD  A,(HL)
    CP  B
    LD  A,L
    LD  (23388),A
    EI
    ;на выходе, если Z=1, то 128K

  8. #7
    Veteran Аватар для jtn
    Регистрация
    15.01.2005
    Адрес
    Kievska Rus
    Сообщений
    1,147
    Благодарностей: 5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand
    LD HL,#D110
    OUT (C),H
    ужас!! никогда так больше не делай. и вообще попорченные ячейки надо восстанавливать.

  9. #8
    Activist Аватар для Jukov
    Регистрация
    03.12.2005
    Адрес
    Серов
    Сообщений
    471
    Благодарностей: 65
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Из всех программ, что мне встречались 128-е ПЗУ (не для определения количества памяти) для нормальной работы нужно было лишь для игры TERMINTOR 128K и для нескольких русских журналов.

  10. #9
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    697
    Благодарностей: 137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от The Exploited
    Цитата Сообщение от Grand
    LD HL,#D110
    OUT (C),H
    ужас!! никогда так больше не делай.

    В 1990-х Сергей Зонов, - один из уважаемых мной разработчиков Spectrum-совместиных компьютеров, - настоятельно не рекомендавал задействование битов 7 и 6 порта #7FFD (как впрочем и #1FFD).

    Цитата Сообщение от The Exploited
    Цитата Сообщение от Grand
    LD HL,#D110
    OUT (C),H
    и вообще попорченные ячейки надо восстанавливать.
    Иногда я делаю такую "поблажку" : так, например, в командере TR-DOS Navigator V0.68b используется изменённая процедура:
    Код:
    LD  HL,#D110
    LD  BC,#7FFD
    OUT (C),H
    LD  E,(HL)
    LD  (HL),C
    OUT (C),L
    LD  (HL),B
    OUT (C),H
    LD  A,(HL)
    CP  C
    LD  (HL),E
    OUT (C),L
    ;на выходе - если Z=1, то 128K

  11. #10
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Благодарностей: 11
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand

    В 1990-х Сергей Зонов, - один из уважаемых мной разработчиков Spectrum-совместиных компьютеров, - настоятельно не рекомендавал задействование битов 7 и 6 порта #7FFD (как впрочем и #1FFD).
    Это даже не смешно. Сергей Зонов дает советы как распоряжаться портами памяти которые растут еще с фирменного спектрума. А потом сам же получается в Scorpion 1024 и нарушил свои советы?

    Цитата Сообщение от Grand
    Иногда я делаю такую "поблажку" : так, например, в командере TR-DOS Navigator V0.68b используется изменённая процедура:
    Код:
    LD HL,#D110
    LD BC,#7FFD
    OUT (C),H
    LD E,(HL)
    LD (HL),C
    OUT (C),L
    LD (HL),B
    OUT (C),H
    LD A,(HL)
    CP C
    LD (HL),E
    OUT (C),L
    ;на выходе - если Z=1, то 128K
    И что? В #10-ой странице все равно 1 ячейку испортил. Это не критично, но если уж гордится тем что определялка не портит память (как например в Quick Commander ) то лучше написать так:

    Код:
    		LD HL,#C010
    		LD E,#11
    		LD BC,#7FFD
    		OUT (C),L
    		LD A,(HL)
    		INC (HL)
    		OUT (C),E
    		DEC (HL)
    		OUT (C),L
    		CP (HL)
    		JR Z,48K
    		DEC (HL)
    		OUT (C),E
    		INC (HL)
    		OUT (C),L
    	 ;128K

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Не могу доделать 128К
    от rw6hrm в разделе Unsorted
    Ответов: 29
    Последнее: 04.03.2006, 10:39
  2. Вопрос о переводе проги c TRD
    от AAA в разделе Разное
    Ответов: 23
    Последнее: 16.01.2006, 16:52
  3. ZX Speccy 128к и СИММ
    от BaguM в разделе Unsorted
    Ответов: 5
    Последнее: 29.12.2005, 12:35
  4. радолюбительские проги
    от rw6hrm в разделе Софт
    Ответов: 6
    Последнее: 14.07.2005, 22:34

Ваши права

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