Ищи, ищи, выложу обязательно!
---------- Post added 28.05.2013 at 01:12 ---------- Previous post was 27.05.2013 at 23:47 ----------
Ну и как первые впечатления?
Да завсегда пожалуйста!Не возражаю его переделывать, если будут идеи. Готов иногда, (соответственно по договоренности с Максом), приезжать в Москву и отлаживать ошибки.
Скажу следующее: развивать MSX-DOS под АТМ я большой перспективы не вижу, так как насколько я знаю, софта под эту модификацию было мало, и только самого базового, консольного, который пойдет где угодно. Само собой, практически все графическое многообразие софта и игр из-под "Ямахи" не пойдет. Поэтому таки запустить на АТМ систему надо (хотя для этого надо "крякнуть" и дизассемблировать имеющееся ПЗУ с этой ОСью), внедрить ее в существующее ПЗУ или сделать загружаемый вариант. Но вот развивать? Я пока не представляю, куда...Может быть и есть возможность превратить ATM для поддержки MSX-DOS, и потом развивать его. Это только идея! Кто что скажет?
Даже CP/M после выхода xBIOS и его поддержки в TASiS, уже как-то некуда развивать. Точнее, софт еще можно писать, но саму систему развивать некуда. А вот что касается TASiS... Дима, я обеими руками за внедрение UZIX и/или SymbOS и готов прилагать к этому соответствующие усилия. Но помимо них потенциал TASiS еще далеко не исчерпан. Очень жаль, что его развитие остановилось в 2007 году - систему делали мы вдвоем с Юрой Корсуниным - он развивал ядро на основе совместно вырабатываемых идей, совместно занимались доводкой софтверной поддержки, плюс я формировал окончательный дистрибутив, выкладывал, продвигал и дальше развивал его. Потом меня на годы вперед жизни вышибла из активного спектрумизма, оставив лишь чуток пассивного болтания на форуме. В одиночку Юра замкнулся и его энтузиазм сошел на нет. А сейчас, хоть он и не забросил спектрум, как и у меня раньше, жизнь вносит существенные коррективы в возможность что-то активно кодить. Сейчас он готов помогать посильно советами и имеющимися исходниками, но не более того - надеюсь в будущем это изменится. Прочие члены НедоПиСи честно ваяли железо и доваяли его до ZX-Evolution (в девичестве - ATM-3). А вот новая, существенно доработанная версия TASiS Ex[tra] v6.00 так и остановилась в пяти минутах от релиза - ядро готово на 100%, дистрибутив - наполовину, система автоинсталляции и загрузки с LiveCD - примерно на треть.
Опишу по памяти новые возможности по сравнению с "пятым" TASiSом (начиная от самых незначительных):
1. Увеличение длины имен каталогов с 8 до 11 символов
2. Сохранение системы резидентом теперь осуществляется через рестарт - свою "сохранялку" больше писать не надо
3. Возможность "занимать" и "освобождать" любые страницы под нужды программы - т.е. введена таблица имеющихся страниц, которые можно пометить как занятые или свободные. И если, к примеру, драйвер RAM-диска позанимал страницы, сделав соответствующие метки, то программы, которые лезут в верхние страницы, могут через опрос таблицы страниц искать незанятые, обходя и не портя занятые. Соответственно, занятие и освобождение страниц, поиск свободных страниц поддержаны в рестартах системы.
4. Загрузка файла/части файла по рестарту прямо в указанную страницу памяти (включать усилиями программы пользователя эту страницу не надо - система все сделает сама и вернет все обратно)
5. Запуск программы из любой выбранной страницы памяти (в окнах №1(#4000) или №2(#8000)) с прозрачным возвратом в предыдущую страницу, откуда она была вызвана
6. Самое главное и вкусное: организация системы подгружаемых библиотек рестартов. На этом остановлюсь подробнее:
В iS-DOS Chic, чьим продолжением является нынешний TASiS, в окне №0 (#0000), как известно включена страница ОЗУ со статичной частью ядра системы (а вверху в основном всякие буфера, кэш, резиденты, драйвера переменные и еще чуток всякой мелочи). Система вызывается по RST #10 с командами в регистре C. И RST #38 традиционно - вызов прерывания.
Так вот, возник вопрос, почему, если в отличие от других спектрумов диспетчер памяти АТМ позволяет по адресу #0000 включать не одну фиксированную, а любую страницу ОЗУ, то почему это не использовать? Так и было сделано. И теперь можно грузить дополнительные рестарты в любую страницу ОЗУ, и вешать их на дополнительные вызовы рестартов RST#08, RST#18, RST#20, RST#28 и RST#30. Причем можно вызывать функции одной библиотеки из другой с возвратом обратно в библиотеку, откуда был вызов, можно таким образом перехватывать стандартные рестарты iS-DOS/TASiS (вызываемые через RST#16 - стандартное ядро Chic тут почти уже не отличается от других библиотек кроме того, что его нельзя удалить не потеряв совместимость с системой) и перенаправлять их в новые подгруженные библиотеки и т.д.
Кстати, подгружать так можно не только библиотеки - в файле может быть исполняемый код программы пользователя, поэтому становится возможным использовать почти все адресное пространство Z80, хоть и чуток поменьше, чем в MSX-DOS, но все же - почти все окно №0 (кроме, может быть, первых 512 байт), 32Кб в окнах №1 и №2, и примерно 5-7Кб (в зависимости от количества установленных резидентов, драйверов и размера кэша) в окне №3, итого - до 52-54Кб непрерывного адресного пространства.
Естественно, все эти усовершенствования были заточены под планирующиеся многозадачность и графический оконный интерфейс, которые планировалось реализовать как раз в подгружаемых библиотеках. Через дополнительные библиотеки и перехват ряда стандартных рестартов планировалось без потери базовой совместимости при работе с уровнем DOS (т.е. кроме низкоуровневой работы с устройствами вроде посекторных копировщиков) - а это подавляющее число софта - модернизировать файловую систему с увеличением размера разделов с нынешних 16Мб на порядки - до 1-2 Гигабайта. Но при полной 100% готовности ядра, именно работа над расширенными библиотеками и заглохла в 2007 году, а без них внешне TASiS EX вроде бы обычный TASiS - те же панельки, только имена каталогов больше.
Хотя часть работы по библиотекам таки была сделана. Итак, что было задумано и как реализовано:
1. Графическая библиотека - сделана достаточно много - реализован вывод окошек и спрайтов в 320х200, поддержка и вывод пропорциональных и непропорциональных шрифтов. Даже написана программка-просмотрщик недлинных текстов под эту библиотеку в качестве примера и демо-программа, рисующая окошки и курсор а-ля винда... Но все это сыро и тормозно (именно из-за сырости, так как делалось пока только для изучения возможности, без оптимизации и проч.), плюс там есть еще что дорабатывать и развивать.
2. Библиотека расширенных дисковых функций (в т.ч. расширение файловой системы) - существует только в виде концепции. Кода пока нет.
3. Диспетчер задач - не разработан совсем.
Вот такие дела. Я лично полон решимости довести TASiS EX До рождения в два этапа - сначала доработать дистрибутив в том виде, в каком есть и выложить в народ "как есть". А затем уже всерьез заняться разработкой новых библиотек. Но если первую стадию я осилю один, пусть мне и придется "поднажать" (а главное запустить новую АТМку взамен окончательно глюкнувшейся прошлой) и разыскать время, то со второй задачей мне в одиночку будет очень и очень трудно. Поэтому я бы хотел обратить внимание того же Диму Алонекодера (надеюсь, он меня читает), что в то время, пока забугорные авторы еще не решились портировать под АТМ свой SymbOS, тут в состоянии половинной готовности уже есть система с хорошими задатками, которые надо только довести до ума.








Ответить с цитированием