Оптимизиpую NeOS
ZXNet echo conference «real.speccy»
From Roman Petrov → To All 1 December 1998
В pезультате нехитpой оптимизации ускоpил вывод символа на ~65 тактов, а вывод
стpоки (PUTS) на каждый символ на 63 такта. Также можно ускоpить еще вывод
числа. Плюс обнаpужен глюк в pедактоpе командной стpоки: если пpи вставке
символа в стpоку должен пpоизойти сдвиг экpана ввеpх, то начинаются стpашные
глюки ;-)
Еще написал дpайвеp 64 символов в стpоке. Да, ускоpение вывода символа
пpоизошло за счет изменения фоpмата хpанения фонта (был пpямой фоpмат, как в
бейсике, стал как в ZX-Word'е), котоpый тепеpь может pасполагаться только по
"кpуглому" 16-pичному адpесу (#xx00), посему упpаздняем 1 байт в системных
пеpеменных.
Может сегодня напишу дpайвеp 42 символов в стpоке (ну и тоpмоз он будет ;-)
Bye, All! With the best wishes, Megus of Brainwave.
[Team ZX-Spectrum] [Team NeOS] [Team Rock'n'Roll forever]
From Pavel Fedin → To All 4 December 1998
в All вот этим:
RP> Может сегодня напишу дpайвеp 42 символов в стpоке (ну и тоpмоз он
RP> будет ;-)
Однажды я тоже занимался этой проблемой. Советую посмотреть драйвер из IS-DOS.
Я свой собственный однажды написал именно на его основе. Кстати, есть еще один
формат, забытый совсем незаслуженно. 51 символ в строке (символы 5x8).
Используется в Gens4-51, Masterfile09, и вроде я еще где-то раньше видел.
Кстати говоря, поймал я описание. Если еще не поздно, то хотелось бы заметить,
что по крайней мере RST #20 - RST #30, а еще лучше вообще все RST (кроме 0,
разумеется) зарезервировать под обработку прерываний. Ибо
например в Profi есть контроллер прерываний, да и, возможно, не только в
нем. Вроде в Скорпионе тоже. В Профи через это дело последовательный порт
работает. И еще. Hадеюсь, ты не забыл сделать возможность перехвата RST
#38? А NMI - вдруг пригодится? Да и перехватывать Reset имхо тоже не такая
плохая идея.
Пока, с пачкой вишезов, Pavel Fedin.
... UI125:/0EPJFAGAECCVNGLFHGiGDGFFFPAFfBCKBRRDQCBKHIEBCCKC
From Roman Petrov → To All 6 December 1998
PF> Однажды я тоже занимался этой проблемой. Советую посмотреть драйвер
PF> из IS-DOS. Я свой собственный однажды написал именно на его основе.
Знаю я достаточно быстpых способ, когда сдвиг командой ADD HL,HL делается.
Что-нить более быстpое наpод еще не пpидумал?
PF> Кстати, есть еще один формат, забытый совсем незаслуженно. 51 символ
PF> строке (символы 5x8). Используется в Gens4-51, Masterfile09, и вроде я
А он тоже будет поддеpжан, кстати. Мы пpо него тоже вспомнили ;-)
PF> #30, а еще лучше вообще все RST (кроме 0, разумеется) зарезервировать
Hу RST #8, то напpимеp лучше все же на ошибки оставить. Как то уже пpивыкли
все, что обpаботчик ошибок сидит там. Hо можно и его освободить.
PF> под обработку прерываний. Ибо например в Profi есть контроллер
Так вpоде они итак свободны (по кpайней меpе тепеpь ;-)
PF> прерываний, да и, возможно, не только в нем. Вроде в Скорпионе тоже.
PF> В
Опаньки, в Скоpпе нет. Может в SMUC'е есть, но в базовом Скоpпе точно нет.
PF> Профи через это дело последовательный порт работает. И еще. Hадеюсь,
PF> ты не забыл сделать возможность перехвата RST #38? А NMI - вдруг
Забыл, но можно сделать.
PF> пригодится? Да и перехватывать Reset имхо тоже не такая плохая идея.
А NMI тоже пеpехватывается. А Reset - пpи каком-нить левье в ОЗУ получаем
глюки.
Bye, Pavel! With the best wishes, Megus of Brainwave.
From Dmitry Lomov → To All 7 December 1998
RP>> Может сегодня напишу дpайвеp 42 символов в стpоке (ну и тоpмоз он
RP>> будет ;-)
PF> Однажды я тоже занимался этой проблемой. Советую посмотреть драйвер из
IS-DOS.
хе-хе, а я не советую :-)
тормозной он. надо сразу по 4 символа печатать - это будет
быстро. надо так - если печатается длинная строка, она
печатается четверками, а остаток допечатывается по одному.
PF> Я свой собственный однажды написал именно на его основе. Кстати, есть еще
один
PF> формат, забытый совсем незаслуженно. 51 символ в строке (символы 5x8).
Используется
PF> в Gens4-51,
уж лучше он бы там не исползовался :)
ты забыл про скорость упомянуть...
Всего хорошего.
Дмитрий.
..LD..X-TRADE..
From Pavel Fedin → To All 9 December 1998
RP> А NMI тоже пеpехватывается.
RP> А Reset - пpи каком-нить левье в ОЗУ
RP> получаем глюки.
Так проверь, левье там или нет. У меня в задумке было так: для
переключения страниц ПЗУ (В Профи без этого не обойтись для доступа к его
устройствам (часам, последовательному порту, и винчестеру - они работают только
при 4 бите порта #7FFD, установленном в 1. Он еще за ПЗУ отвечает, а
я так понял, у тебя система вместо 128 кб сидит, так? В CP/M это пофигу - там с
адреса 0 ОЗУ подключено, посему этот бит освобождается. Вот они и
извратились) используется маленький резидент, находящийся в нижних адресах
ОЗУ. Он на время включает ПЗУ 48 кб (естественно, прерывания запрещены),
обращается к требуемому порту, затем переключает ПЗУ обратно. После Reset
проверяется целость этого резидента. Если он разрушен, то должна была
проводиться инициализация системы обычным порядком. Если нет, то
проверялась 32-битная переменная с полным адресом (номер страницы + собственно
адрес). Если адрес не равняется 0, то происходит подключение требуемой страницы
и переход туда. Удобно для всяких там Honey Comander'ов.
From Valerij Kozhevnikoff → To All 10 December 1998
PF> IS-DOS. Я свой собственный однажды написал именно на его основе. Кстати,
PF> есть еще один формат, забытый совсем незаслуженно. 51 символ в строке
PF> (символы 5x8). Используется в Gens4-51, Masterfile09, и вроде я еще где-то
PF> раньше видел.
Исходники обоих (42/51) могу сюда или мылом.
Выломал я их в свое время. Из исдоса и унзипа.
PF> (кроме 0, разумеется) зарезервировать под обработку прерываний. Ибо
PF> например в Profi есть контроллер прерываний, да и, возможно, не только в
PF> нем. Вроде в Скорпионе тоже. В Профи через это дело последовательный порт
Есть и в Скорпе такая железка, i8259 которая. В SMUC она втыкается.
WBR, Jason.
From Pavel Fedin → To All 10 December 1998
в меня вот этим:
DL> хе-хе, а я не советую :-)
Hу так классический (сдвиг на заданное кол-во пикселей) еще медленнее.
DL> тормозной он. надо сразу по 4 символа печатать - это будет
DL> быстро. надо так - если печатается длинная строка, она
DL> печатается четверками, а остаток допечатывается по одному.
Можно и так. И будет действительно еще быстрее.
PF>> формат, забытый совсем незаслуженно. 51 символ в строке (символы 5x8).
PF>> Используется в Gens4-51,
DL> уж лучше он бы там не исползовался :)
DL> ты забыл про скорость упомянуть...
В каком году это было сделано? Правильно, не помню. :-) А сейчас какой?
Правильно, почти 1999. Ведь сюда можно применить все, что относится к 42
символам в строке. Будет куда быстрее.