PDA

Просмотр полной версии : Вопрос по процедуре сброса



Тайльнемер
04.05.2009, 08:51
Извините за возможно глупый вопрос, я вообще-то чайник в вопросах относительно того, что содержится в ПЗУ.
Но вот, скажем, при сбросе спектрума 48К возникают пресловутые красные полоски — заполнение ОЗУ двойкой, а потом проверка:


. . .
LD H,D
LD L,E

L1: LD (HL),#02
DEC HL
CP H
JR NZ,L1

L2: AND A
SBC HL,DE
ADD HL,DE
INC HL
JR NC,L3

DEC (HL)
JR Z,L3

DEC (HL)
JR Z,L2

L3: DEC HL
. . .

Почему процедура устроена именно так:
1) Какая вообще цель этой процедуры? Проверка ОЗУ?
2) Почему в память заносятся именно двойки?
3) Почему от этих двоек потом дважды делается DEC с проверкой того, что после первого DEC’а должен остаться не ноль, а после второго — ноль?

Jukov
04.05.2009, 15:01
все это нужно лишь для того, чтобы проверить работоспособность всего ОЗУ.
Проверяется, что в ОЗУ нормально пишутся и нули и единицы.

Тайльнемер
04.05.2009, 16:56
Очень странная проверка.
Допустим, сгорели старшие 6 бит байта, и единица в них не записывается (или так не бывает?) — а данная «проверка» этого и не заметит.
Почему бы не записать, скажем 255, а потом 0, а не 2 и 0?

Destr
05.05.2009, 01:38
Очень странная проверка.
Допустим, сгорели старшие 6 бит байта, и единица в них не записывается (или так не бывает?) — а данная «проверка» этого и не заметит.
Почему бы не записать, скажем 255, а потом 0, а не 2 и 0?

Бывает.
У меня на Скорпе как-то один из разрядов сгорел, а я понять не мог чё-за хрень. Работают одни игры, другие нет...
Только с помощью Service monitor удалось разобратся что пишем в память допустим #E6, а читается #А6.
Батон микросхему (видимо памяти) поменял, и всё стало ок.

По уму видимо надо чтоб все разряды по очереди проверялись (писались и считывались), но видимо на заре комп-строения и пзу-юзанья довольствовались лишь котнрольным числом и типа всё ок...