В ближайшем времени буду ставить 128к на байт. Многие игрушки во время загрузки определяют какой у тебя комп.(48 или 128) Они определяют прошивку или объём памяти? Придётся ли мне ставить ещё одну прошивку (переключаемую) или не надо?
Вид для печати
В ближайшем времени буду ставить 128к на байт. Многие игрушки во время загрузки определяют какой у тебя комп.(48 или 128) Они определяют прошивку или объём памяти? Придётся ли мне ставить ещё одну прошивку (переключаемую) или не надо?
байт (я так понял у тебя он) это вообще тяжелый случай.. но 99% программ используют только обычную 48ю прошивку, так что всё будет нормально
Компьютер из 48K в 128K (и более) можно превратить даже не имея в наличии прошивки BASIC128, важен лишь порт переключения страниц и экранов (7ffd). Проги, по крайней мере подавляющее большинство, в этом случае прекрасно понимают что они работают на Spectrum128. Кроме того интересно и то, что имея только 48К и порт 7ffd сам BASIC128 прекрасно запускается и считает что компьютер Spectrum128 (но кажется также понимает что верхняя память "повреждена").
Детект факта 128К проги осуществляют как правило занесением инфы по #C000-#FFFF и переключением банков памяти с последующим сравнением занесенного и считанного значения.
есть несколько прог которые определяют размер памяти по ячейки ПЗУ или переменной 23388, но таких очень мало
Всё понятно. А то думаю как CHASE HQ определяет. На Spectrum128 грузится дольше и заставка другая и АУ работает...
В своих программах я определяю 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
ужас!! никогда так больше не делай. и вообще попорченные ячейки надо восстанавливать.Цитата:
Сообщение от Grand
Из всех программ, что мне встречались 128-е ПЗУ (не для определения количества памяти) для нормальной работы нужно было лишь для игры TERMINTOR 128K и для нескольких русских журналов.
:v2_wink2:Цитата:
Сообщение от The Exploited
В 1990-х Сергей Зонов, - один из уважаемых мной разработчиков Spectrum-совместиных компьютеров, - настоятельно не рекомендавал задействование битов 7 и 6 порта #7FFD (как впрочем и #1FFD).
Иногда я делаю такую "поблажку" :v2_smile: : так, например, в командере TR-DOS Navigator V0.68b используется изменённая процедура:Цитата:
Сообщение от The Exploited
Код: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
Это даже не смешно. Сергей Зонов дает советы как распоряжаться портами памяти которые растут еще с фирменного спектрума. А потом сам же получается в Scorpion 1024 и нарушил свои советы?Цитата:
Сообщение от Grand
И что? В #10-ой странице все равно 1 ячейку испортил. Это не критично, но если уж гордится тем что определялка не портит память (как например в Quick Commander :) ) то лучше написать так:Цитата:
Сообщение от Grand
Код: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