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 ноября