|
Insanity
#01
20 июля 1999 |
|
3d2f или 3d30 - TR-DOS путешествие в мир заблуждений.

(C) Surv!v0r
ёЄєЇїЎў°∙·√№¤■█ПРОЯСНЕНИЕ СИТУАЦИИ ВЫХОДА В ДОСку█■¤№√·∙°ўЎїЇєЄё
В поисках материалов для газеты, я натолкнулся на такую
забавную ситуацию. Прогрammируя дисковый контроллер используют в своей
работе, чаще всего для выхода к подпрограммам TR DOS'a, как
известно команды jp #3d2f и jp #3d30. Не помню, когда и где, я
услыхал, прочитал... вообщем, узнал, что jp #3d2f - это наиболее
подходящий способ выхода в TR DOS. Какой же глючный? Естественно
jp #3d30. В свое время ругали последний способ. А ругали громко,
правда я сейчас не могу указать источник, но, видимо, где-то в
ZX РЕВЮ. Смысл руганья был примерно в следующем. Не надо
использовать команду jp #3d30, так как на некоторых (тормозных)
компютерах не успевает переключаться ПЗУ на TR DOS.
Да, ничего не скажешь. Давайте подумаем. А как это ТR DOS не
успевает переключиться и регистр PC проскочит? Известно, что по
адресу #3d2f в TR DOS располагается:
#3d2f nop
#3d30 ret
Как же тогда, на месте не переключенного TR DOS процессор
опознает команду nop, если подать jp #3d2f? Eсли подумать, то и
в этом случае мы не войдем в TR DOS на гипотетическом
"тормозном" компьютере, а будем болтаться в BASIC'е - ведь nop
не перехватился, а значит, следующая команда опять будет nop, a
потом в BASIC'e там стоит DJNZ:
Не переключенное ПЗУ: #3d2f nop
#3d30 nop
#3d31 djnz #3d5b
...
Если "тормозной" компьютер так глючит, почему бы не
использовать команду jp #3d2c в альтернативу названным, ведь там
очень и очень много nop'oв, так что переключиться уже должно!
Наверное, заблуждение с командами выхода в DOS надуманно и,
скорее, от лукавого. Я сам с такими проблемами не сталкивался и
ничего более добавить не могу.
На самом деле, вам самим решать, какой командой
пользоваться, но все-же jp #3d30 быстрее перейдет на
подпрограмму TR DOS, как никак.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября