ZXNet эхоконференция «code.zx»


тема: навоpоты



от: 812/17.09
кому: Aleksandr Majorov
дата: 12 Jan 1998
11-01-98 в 03:18 Aleksandr Majorov писал(а) к Sergej Pou- gachev на тему "навоpоты". Привет, Aleksandr! AM> усе элементарно! AM> по команде CAT/LIST Тыр-дос считывает 8-й сектор AM> в буфер для анализа. перед эти оно сохраняет AM> адрес возврата в стеке, который "совершенно случайно" AM> нахонится недалеко от буфера... Глупости. Стек здесь непричем. Запуск происходит при прак- тически любои значении стека. Дабы не заниматься словоблудием привожу выписку содержащую разъяснение данного способа запуска диска. "... 1. Любая операция по просмотру, или изменению инфор- мации диска влечет собой предварительное считывание 8-го сек- тора. 2. Если 8-ой сектор отформатирован, скажем, на 512 байт, то эти 512 байт исправно считаются в память независимо от того, что освобожден буфер размером всего в 256 байт. 3. Буфер резервируется с адреса #5d25. Hа 257 байт сдвигается не только область Бейсика, а еще и область информа- ции о каналах, расположенная перед областью Бейсика. ..." [ по моему на 256 ] Hу соответственно, данные 8-го сектора формируются так, что бы адреса процедур печати содержащиеся в области каналов изме- нились на адрес запуска нашей программы из 8-го сектора. После считывания тыр-дос попытается что-нибудь напечатать и тем са- мым запустит программу. Я когда то сам этим занимался, так что это проверено на практике. AM> Усе остальное просто... Как видишь, не так... P.S. перечитал перед отправкой и решил добавить: Hапример нам надо что бы проц прыгнул на адрес ADDR, то 8-ой сектор надо сформировать так... Структура 8-го сектора: DS 256 ;Что запихать сюда это ваше дело. DW ADDR ;адрес по которому надо перейти DW ADDR ;повторить 10-15 раз для надежности DW ADDR ;кто его знает, какую именно процедуру DW ADDR ;ему приспичит вызвать ..... DS XXX ;XXX зависит от длины сектора и может ;содержать любую информацию. С уважением, Aleksandr With best wishes, Ruiner. -+- Кыш-Edit v6.06

от: 812/00.00
кому: Oleg Grigoriev
дата: 12 Jan 1998
12-01-98 в 03:34 Oleg Grigoriev писал(а) к Aleksandr Majorov на тему "навоpоты". Привет, Oleg! [...] AM>> по команде CAT/LIST Тыр-дос считывает 8-й сектор AM>> в буфер для анализа. перед эти оно сохраняет AM>> адрес возврата в стеке, который "совершенно случайно" AM>> нахонится недалеко от буфера... OG> Глупости. Стек здесь непричем. Запуск происходит при прак- [..] OG> бы адреса процедур печати содержащиеся в области каналов изме- OG> нились на адрес запуска нашей программы из 8-го сектора. После OG> считывания тыр-дос попытается что-нибудь напечатать и тем са- [...] Печать говоришь? А как ты объяснишь что перехватываются команды LOAD, RUN, SAVE, которые вроде ничего не печатают? [....] OG> Структура 8-го сектора: OG> DS 256 ;Что запихать сюда это ваше дело. OG> DW ADDR ;адрес по которому надо перейти OG> DW ADDR ;повторить 10-15 раз для надежности OG> DW ADDR ;кто его знает, какую именно процедуру OG> DW ADDR ;ему приспичит вызвать скажи, ты всегда так пишешь проги? знает кудв пойдет проц... ваще-то программирование - ... хм... точная наука ;-))) проц работает одинаково, и адрес перехвата один и тот-же... OG> With best wishes, Ruiner. С уважением, Aleksandr PS. данная инфа давно кидалась кем-то в .zx, тама усе разъяснялось... -+- ручки [левая и правая]

от: 812/17.09
кому: Aleksandr Majorov
дата: 13 Jan 1998
12-01-98 в 18:47:46 Aleksandr Majorov писал(а) к Oleg Gri- goriev на тему "навоpоты". Здравствуй, Aleksandr! AM> Печать говоришь? Стек говоришь? Войди в Бейсик, установи стек 60000 и дай в тыр-досе какую-нибудь команду. Hа стек не наедет и, исходя из твоих слов, ничего не запустится. _У тебя_. AM> А как ты объяснишь что перехватываются команды AM> LOAD, RUN, SAVE, которые вроде ничего не печатают? А "Disk error" на что? Вот только не помню как тыр-доска отреагирует если 231 байт (количество секторов на дорожке) будет равен #10. С другой стороны, я не разу не видел что бы эту ситуацию специально обыгрывали. А самому проверять влом. [ skipped ] AM> скажи, ты всегда так пишешь проги? Hет, я сначала думаю, а потом пишу. AM> ...напишем LD HL,12345, повторим 10...15 раз, кто его Я повторял ровно 10 (было это года полтора назад, так что может и не 10;) ) раз и все прекрасно работало, у Медноногова в ЧВ повторено 14 раз, так что это количество не критично. AM> знает куда пойдет проц... Конечно, именно так и надо писать. Я, например, стек в своих программах выставляю следующим образом: LD A,R LD L,A HALT LD A,R AND #3F ADD A,#40 LD H,A LD SP,HL Это, знаешь, очень способствует выработке адреналина в ор- ганизме. AM> ваще-то программирование - ... хм... точная наука ;-))) Вот именно, что хм...;-) Точная наука это физика, а прог- раммирование даже не наука;) AM> проц работает одинаково, и адрес перехвата один и тот-же... Теоретически да, а на практике лучше подстраховаться.:) AM> С уважением, Aleksandr AM> AM> PS. данная инфа давно кидалась кем-то в .zx, AM> тама усе разъяснялось... В сети я с середины октября, а .zx читаю не регулярно. Ты лучше бы сам попробовал.;) With best wishes, Ruiner. -+- Кыш-Edit v6.06

от: 812/17.09
кому: Ivan Mak
дата: 16 Jan 1998
14-01-98 в 08:38:08 Ivan Mak писал(а) к Aleksandr Majorov на тему "навоpоты". Привет, Ivan! AM>> Печать говоришь? AM>> А как ты объяснишь что перехватываются команды AM>> LOAD, RUN, SAVE, которые вроде ничего не печатают? IM> В инфоpмации о каналах есть адpеса подпpогpамм ввода. Мое пpедположение, Мас меня поддел и я решил досканально прояснить для себя эту ситуацию. Как выяснилось, все очень просто. Адрес начала области каналов при активном буфере tr-dos #5e27 а не #5e25. Соответственно по этому адресу и должен располагаться адрес (слышала бы меня моя учительница литературы:) ) перехода. Са- мым первым в области каналов хранится адрес подпрограммы выво- да в служебный экран. А именно туда tr-dos пытается напечатать "Disk error". Все-таки Мас был кое в чем прав - достаточно од- ного адреса перехода. IM> могут использоваться и они. TR-DOS ведь пpовеpят нажатия клавиш в этих Сама tr-dos проверяет нажатие клавиш очень редко, имхо только в случае с "Retry,Abort,Ignore?". IM> командах что бы поймать BREAK, напpимеp. Бряк тыр-дос ловит напрямую, не через каналы, а вызывая процедуру #1f54 основного ПЗУ. IM> Хотя, быть может, я и не пpав. Всяко бывает... Может и я в чем-то не прав... IM> ░▒▓██ С уважением, Ivan. ██▓▒░ With best wishes, Ruiner. -+- Брысь-Edit v6.06




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
События - официальные результаты Chaos Construction 2004.
От авторов - Особенности новой оболочки.
Hello to - приветы.
Новости - Ковров, Кемерово.
Юмор - Анекдоты.

В этот день...   8 мая