PDA

Просмотр полной версии : Magic Button vs Kay & Pentagon 2.2SL



Keeper
15.04.2009, 00:45
Курил схемы петагона 2.2, пентагона 128 (1991) и кая 1024. Собственно вопрос в том что происходит в пентагоне 2.2 и кае при нажатии на "магик" кнопку? Вопрос возник из-за того что сигнал /DOS как и /NMI не влияет на сигнал RS, т.е. не устанавливает его в "1", соответственно если в D4 #7FFD = 0 то обработка NMI уйдет в банку с глюком или еще чем нибудь, вот в кае например что в банке 0?

Black_Cat
15.04.2009, 07:41
Вопрос возник из-за того что сигнал /DOS как и /NMI не влияет на сигнал RS, т.е. не устанавливает его в "1", соответственно если в D4 #7FFD = 0 то обработка NMI уйдет в банку с глюком или еще чем нибудьне уйдёт :) , обработчик NMI сидит в 48 ПЗУ, поэтому как только управление передаётся ему (т.е. устанавливается RS=1), так сразу мы однозначно попадаем в тырдос
вот в кае например что в банке 0?севис-ПЗУ, функции которой официально не публиковались

Keeper
06.05.2009, 22:03
Вопрос пока открыт, не понимаю :(

Black_Cat
06.05.2009, 22:41
чего ещё непонятно? В 48 режиме по NMI/ сразу попадаем в DOS, а в 128 режиме в ейной ПЗУ обработчика NMI/ как такового нет, там есть токо переход в 48 режим, где собственно есть обработчик. Переход осуществляется установкой RS=1, после чего, опять же, сразу попадаем в DOS. Должно быть так.

Keeper
06.05.2009, 22:50
Непонятно следуюющее:

Если включен 128 режим то попадаем туда, куда ведет RS = 0, /DOS = 0, т.е. хз куда. Если при RS = 0, /DOS = 0 мы вдруг каким-то неизвестным образом попадаем в ПЗУ васика128 то получим скорее всего зависание или глюк:


#66 LD E,E
EX (SP),HL
JP #5B00

#5B00 PUSH AF
PUSH BC
LD BC,#7FFD
LD A,(#5B5C)
XOR #10
DI
LD (#5B5C),A
OUT (C),A
EI
POP BC
POP AF
RET

Добавлено через 28 минут
Gluk 6.4: Делает JR на #0000

Black_Cat
07.05.2009, 02:35
Если при RS = 0, /DOS = 0 мы вдруг каким-то неизвестным образом попадаем в ПЗУ васика128 то получим скорее всего зависание или глюк:программа как программа, на первый взгляд вроде делает именно то, что надо.. т.е. устанавливает RS=1.

Если включен 128 режим то попадаем туда, куда ведет RS = 0, /DOS = 0Судя по всему происходит всё не так как ты представляешь. Суть в том, что в 128 режиме по NMI/, DOS/ в ноль не устанавливается, в этом твоя ошибка. Сигнал DOS/ просто не успевает установиться, а NMI/ уже снимается обращением в ROM. Дальше отрабатывается вышеприведённая программа, меняющая системную переменную содержащую значение #7FFD и потом прописывающую RS=1 в сам порт. Всё это время кнопка "магик" всё ещё удерживается, но она заблокирована обращением в ROM. После отработки программы имеем RS=1, и как только блокировка кнопки "магик" снимается, происходит повторный запрос NMI/, но уже в 48 режиме. Не знаю что там в 48 прошивке, но явно в обработчике NMI/ ошибка, благодаря которой DOS/ наконец то устанавливается в ноль и происходит переключение ПЗУ на TR-DOS. По идее должно быть так.

Keeper
07.05.2009, 12:30
программа как программа, на первый взгляд вроде делает именно то, что надо.. т.е. устанавливает RS=1.

Это только на первый взгляд так кажется :) Команда EX (SP), HL поместит на вершину стека содержимое регистра HL, и соответственно RET отправит нас хз куда (по адресу из HL).


Судя по всему происходит всё не так как ты представляешь...

Как-то все сложно и не однозначно. Буду курить обвязку АГ3 на предмет длительностей...

Black_Cat
07.05.2009, 13:03
Буду курить обвязку АГ3 на предмет длительностей...смотри KAY BETA-TURBO или Скорпион, там нет АГ3

Команда EX (SP), HL поместит на вершину стека содержимое регистра HL, и соответственно RET отправит нас хз куда (по адресу из HL).а нам это уже не важно, т.к. после RET будет новый NMI/, хотя скорее всего там всё правильно..