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

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 15 из 15

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

  1. #11
    Veteran
    Регистрация
    22.02.2005
    Адрес
    Украина, Харьков
    Сообщений
    1,527
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectre
    Это даже не смешно. Сергей Зонов дает советы как распоряжаться портами памяти которые растут еще с фирменного спектрума. А потом сам же получается в Scorpion 1024 и нарушил свои советы?
    Заблуждаешься! Насчет советов и фирменности битов не знаю, с последним так вообще очень сомневаюсь. А то что Scorpion 1024 это самопальная доработка так это точно - любители дорабатывали и биты выбирали. Следующей машиной после Scorpion256 был Scorpion2000 (или что то почти же самое но в overdrive исполнении - GMX). У Зонова биты D6/D7 портов #1FFD/#7FFD никогда не были заюзаны. Не путать с KAY1024, машины разные!

  2. #12
    Activist
    Регистрация
    27.02.2006
    Адрес
    Курск
    Сообщений
    218
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще ПЗУ128 нужно по моему в игре "48 утюгов"

  3. #13
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще ПЗУ128 нужно по моему в игре "48 утюгов"
    точно нет, я его адаптировал под ленту и 48k. мелодии приходилось слушать перед запуском уровня

  4. #14
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow

    Цитата Сообщение от Spectre
    И что? В #10-ой странице все равно 1 ячейку испортил. Это не критично /.../
    Разумеется, ячейки не нужно восстанавливать, если, скажем, в них будет загружен код.



    Для программ, завершающих свою работу возвратом в систему ZX Spectrum (не кнопкой Reset, естественно) подойдет процедура очищающая электронный диск попутно с проверкой памяти.
    Код:
    ;Проверка наличия памяти 128K и очистка
    ;электронного диска BASIC 128.
    ;(C) GRAND, 12.11.2006.
    	LD BC,#7FFD
    	LD DE,#1017
    	OUT (C),D
    	LD HL,#EBEC
    	LD (HL),D
    	OUT (C),E
    	LD E,19
    	LD (HL),0
    	INC HL
    	DEC E
    	JR NZ,$-4
    	LD L,#F7
    	LD (HL),#C0
    	OUT (C),D
    	LD L,#EC
    	LD A,(HL)
    	OR A
    	LD (23388),A;BANKM
    	LD (23427),HL;SFNEXT
    	LD H,#2B
    	LD A,1
    	LD (23429),HL;SFSPACE
    	LD (23431),A;
    ;на выходе флаг Z=0 - означает наличие 128K.
    ;При работе процедуры прерывания должны быть
    ;запрещены, а ее код НЕ должен распологаться
    ;в диапазоне, где устанавливаются банки
    ;памяти, т.е. #C000...#FFFF. Процедура оперирует
    :только с системными переменными BASIC 128,
    :расположенными как в бывшем буфере принтера,
    ;так и в банке 7, поэтому никакое изменение
    ;ячеек, установленных после ее работы, недопустимо!


    Что касается вопроса о якобы некорректной работе порта #7FFD на всех остальных компьютерах, кроме Pentagon'а, при обращении к нему, скажем, LD A,#10 \ OUT (#FD),A, то после того, как кодеры правильных компьютеров стали исправлять этот бред на LD A,%01010000 \ OUT (#FD),A, проблема бумерангом вернулась на тот клон (Pentagon), где она была порождена, и это вполне справедливо.
    Последний раз редактировалось Grand; 04.09.2007 в 03:41.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  5. #15
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос был - КАК?

    ответ
    1) Через ПЗУ, проверяются какие то ячейки, причём адрес ячейки как правило выбирается наобум, не очень понятно как такие программы реагируют на изменённые версии ПЗУ.
    Типовой код проверки:
    ________LD A,(ADDR) ; ADDR - откуда то из ПЗУ
    ________CP #XX ; ячейка которая должна соответствовать якобы ПЗУ-48
    ________JR Z,ROM48
    ________CP #YY ; для ПЗУ-128
    ________JR Z,ROM128
    ________RET

    может быть другой вариант:
    ________LD A,(ADDR) ; ADDR - откуда то из ПЗУ
    ________CP #XX ; ячейка которая должна соответствовать якобы ПЗУ-48
    ________JR (N)Z,ROM48 ; проверка на (не)совпадение
    ________JR ROM128
    Причём, очевидно, что глюков и та и другая процедура имеет немерянно.

    2) Проверять системные переменные
    Это более предпочитительный (по сравнению с первым вариантом) способ. Тут его уже комментировали

    3) Проверять реагирует ли хоть что-то при выводе разных значений в порт #7ffd. Опять же типовой код был приведён несколькими постами выше.
    Я считаю этот способ самым правильным, однако необходимо в любом случае восстанавливать ячейки памяти, которые, возможно, были похерены. Работа программы-загрузчика может завершиться неудачно, а там могут оказаться какие-то данные, необходимые для SOS-48 или SOS-128.
    И ещё, приведённые программы страдают недостатком - при переключении страничек рекомендуется либо ждать начала прерывания (команда HALT) либо на время работы процедуры определения отрубать прерывания. Это связано с тем, что SOS-128 восстаналивает страницы при каждом прерывании, кроме того, прерывание может криво отработаться, если была активна не та страничка, что прописана в системных переменных.
    Последний раз редактировалось GriV; 27.08.2007 в 10:45.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

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

Ваши права

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