IsKrA
Краткий курс истории iS-DOS
© Леонтьев Алексеи, © Демидов Александр, Санкт-Петербург
Возникновение самой идеи iS-DOS'a теряется в глубине веков и мраке тысячелетий. Всю свою историю человечество мечтало иметь нечто подобное. И вот, наконец, явились мы, т.е. фирма IskraSOFT и её основатель Ильяшенко Эдуард. И мы сотворили чудо, и явили изумленному миру наше гениальное произведение (т.е. iS-DOS), и сказали: "Берите, люди, пользуйтесь!" И от сих есть, пошла история Исдосова. Мне вспоминается одна историческая встреча с Эдуардом. Было это году так в 1989-ом. Эдуард собрал тогда первый свой Sinclair. Был он без дисковода, но подключался к цветному телевизору и бытовому магнитофону первого класса сложности. У Эдуарда не было тогда никаких средств программирования, кроме встроенного в Sinclair языка BASIC. Но уже на BASIC'e Эдуард начал осуществлять свою давнюю мечту: создать удобную файловую оболочку типа Norton для самого популярного в СССР компьютера.
ЭТАПЫ!БОЛЬШОГО ПУТИ
Более серьезные разработки продолжились после приобретения GENS'a и MONS'a, хотя были попытки написать текстовый редактор с русским шрифтом, которого ещё вроде бы тогда не существовало в мире ZX, на языке C. Попытки эти, как и следовало ожидать, окончились полным провалом, и Эдуард сотоварищи окончательно остановили свой выбор на ассемблере. За год-два были разработаны ряд программных технологий, включая оконную, связь с TR-DOS, работа с прерываниями в разных режимах и пр. На этой базе были созданы текстовый редактор "Spark 1.0,2.0.1" и другие полезные программы. В то же время Эдуард не оставлял работ по созданию удобной файловой оболочки, так как копирование группы файлов в системе TR-DOS весьма неудобно без оной. В течение года или двух было создано несколько версий такой программы. Все они имели сходный внешний вид: файловое окно со скроллингом и отметкой файлов в левой части экрана и вспомогательные окна индикации, ввода маски и меню управления режимами справа. Качество программы подтверждает весьма забавный инцидент, когда один из клиентов IskraSOFT обвинил нас в том, что мы взломали "стандартный западный BOOT западной же фирмы IskraSOFT". Выяснилось, что он просто имел в виду две различные модификации нашей же программы. А если серьезно, то все без исключения программисты IskraSOFT'a по сей день пользуются этой программой.
ВЧЕРА БЫ1ЛО РАНО, ЗАВТРА БУДЕТ ПОЗДНО
Но сколь ни хороши были на тот исторический момент программы, работающие в TR-DOS'e, сам TR-DOS становился всё более и более тесным для идей фирмы IskraSOFT. И вот, осенью 1990 года началась разработка принципиально новой для ZX файловой службы. Новая файловая служба должна была позволять добавлять и удалять блоки из середины файлов. Учитывая скромные размеры памяти ZX, был разработан свой, отличный от громоздких FAT-цепочек в MS-DOS и тупого в CP/M метод реализации сегментированных файлов. Для ускорения процесса работы с диском была реализована идея использования части ОЗУ ZX в качестве буфера блочных устройств. Все эти идеи сохранились и в сегодняшнем iS-DOS'e, изменяясь лишь в части реализации. В первом варианте файловой службы все файлы были сегментированными, описатель файла был, как и в TR-DOS'e 16-байтовым, был лишь один каталог на диске. Программа писалась специально для новой учебной базы данных "ФЕМИДА", так похоже и не нашедшей широкого распространения.
Кажется зимой 1990-91 года Игорь Абрамов разработал дизайн новой файловой оболочки. Она должна была быть двух-панельной (как и Norton), а посему печать на экране в ней должна была осуществляться принципиально новым драйвером с матрицей 6x8 вместо привычной для ZX 8x8. Этот самый драйвер (лишь слегка модифицированный изнутри) работает в iS-DOS'e до сих пор. Дизайн тоже сохранился до сих пор. Лишь весной 1993-го года под непрекращающимся давлением клиентуры фирма IskraSOFT была вынуждена поступиться принципами и сменить верхнюю строку меню на Нортоновский стандарт. Программу решили назвать iS-DOS'ом."iS" означает IskraSOFT.
ПРОЩАНИЕ С TR-DOS'OM
Очень скоро в системе появились подкаталоги до 6-го уровня вложенности (ограничение связано с чисто графическими трудностями верхнего уровня) и непрерывные файлы. Первые версии iS-DOS работали на дисках обычных TR-DOS^^m форматов, предпочтительно "Fast". iS-DOS устройство начиналось с какой либо определенной дорожки, например с 100-ой или 10-ой. В этом была и необходимость: в TR-DOS'овой части диска размещался загрузчик iS-DOS, и определенное удобство: при создании новых программ для iS-DOS в TR-DOS'e не надо было переставлять диски. Первые версии iS-DOS работали к тому же в первом режиме прерываний, что очень облегчало отладку, как утилит, так и самой системы. К тому же выйти в BASIC можно было простым RET^. Все эти замечательные свойства, к сожалению, навсегда утеряны. Но прогресс, как и искусство, требуют жертв.
Примерно осенью 1991 iS-DOS перешел и на другой формат дисков: 800 kB вместо 640, что несколько ускорило процессы работы с диском и увеличило емкость дисков. Как это отразилось на (не)совместимости дисководов по сию пору вопрос тёмный, ибо кто-то утверждает, что диски с малыми (по 256 байт) секторами якобы лучше читаются на других дисководах. В то время как Эдуард утверждал полностью обратное, а ему тоже можно верить, т.к. у него был 2-дисководный ZX с весьма плохо совместимыми дисководами. Я же не замечал особой разницы между переносимостью iS-DOS и TR-DOS дискет. Одновременно новый формат несколько усложнил жизнь любителям торговли крадеными программами и облегчил написание дискового загрузчика системы. С тех пор формат диска остается прежним, за исключением проведения одной реформы, упростившей нумерацию блоков на диске. Хотя, как вспоминается, были веселые времена, когда формат заголовка диска менялся почти каждый день.
Переход на режим IM 2 был осуществлен где-то весной 1992 года. Я страшно ругался, так как привык уже при отладке прошагивать свои (а иногда и чужие) утилиты и системные процедуры старым добрым MONS^, а он, как известно не любит режима IM 2. Но ко всему привыкаешь. А своего отладчика в iS-DOS нет и поныне.
ПУТЬ К УСПЕХУ
Ещё одной гениальной идеей заложенной в систему iS-DOS явились т.н. рестарты, т.е. набор системных функций, вызываемых как утилитами, так и верхними уровнями системы через команду RST 16 по 4-му каналу BASIC'a с кодом функции в регистре C. Был принят ряд стандартов, таких как сохранение всех основных регистров, возвращение кода ошибки в регистре A, передача результатов в альтернативных регистрах и т.п. Т.о. развязывалась система и утилиты, которые уже не надо было перетранслировать после изменения системы. К тому же система становилась открытой, а это, как показывает мировая практика, очень и очень важно. Сама же система естественным образом распадалась на уровни по 32 рестарта в каждом. Номера рестартов, их функции менялись от версии к версии (последнее изменение было произведено 23.9.93: выкинут за ненадобностью рестарт создания каталога и ещё один), но главный принцип сохраняется по сей день.
Кстати об уровнях. iS-DOS мезозойской эры загружался с помощью bat-файла из исходных составляющих частей, что было довольно наглядно для скучающего постороннего наблюдателя, но сильно раздражало программистов медлительностью этого процесса. Помню как сейчас, эта была моя идея: сохранять собранную систему в виде единого файла на диске. Этот день на веки войдет в историю iS-DOS'a как День Великого Единения (к сожалению, точной даты события не припомнят даже старожилы). Что любопытно, пра-iS-DOS загружался и собирался в памяти специальной программой, так как bat-файлов тогда ещё не было. Да и весь COM-уровень изначально существовал исключительно для открытия каталогов по пути для копировщика FILECOPY.com, да запуска сот-файлов нажатием <Enter>. Однако к осени 1991 года COM-уровень приобрел знакомые очертания. Позже в него были добавлены лишь 3 функции для работы с резидентурой и ещё кое-какая мелочь. Вскоре после появления возможности вызывать программы с помощью командных строк опять я подал гениальную идею сформировать список команд, вызываемых нажатием клавиши, в виде обычного текстового файла, что и было после вполне обычного в подобных случаях сопротивления со стороны остальных гениальных программистов реализовано.
О ДРАЙВЕРАХ
Все драйверы iS-DOS суть отдельные модули, резидентно находящиеся в памяти и связанные с системой целыми наборами каналов. Все драйверы могут быть сменены, большинство из них даже прямо на ходу, без переконфигурации системы. Эта заменяемость - также один из основополагающих принципов iS-DOS'a. Кстати резидентные программы в iS-DOS'e, как это ни покажется странным суть деградировавшие драйверы, и появились после них, a вовсе не наоборот. Любопытно также, что первым резидентом стала программа VIR.res, т.е. вирус. Он, правда, был и остается абсолютно безобидным. И здесь не обошлось без реформ и перестроек. Первые версии iS-DOS позволяли устанавливать до 16 устройств и драйверов одного типа одновременно, что было посчитано впоследствии за излишество и сокращено вдвое против прежнего.
Последняя версия системы от 11.10.93 позволяет на ходу снимать два верхних уровня из bat-файла что позволяет значительно увеличить область памяти для программ пользователя, хотя и создает некоторые неудобства. Таким образом, можно отметить, что iS-DOS продолжает совершенствоваться по сей день.
РАЗВИТИЕ И СОВЕРШЕНСТВО
Операционнная система была бы сама в себе, если бы не писались пользовательские программы, на которых отрабатывался удобный интерфейс с системой.
Одним из направлений пользовательских программ были базы данных - так появился первый пользовательский уровень NVZ (Неровный Владимир Зосимович). В основу этого уровня была взята система команд dBASE. Доступ к пользовательскому уровню был осуществлен так же как и к любой функции оболочки RST 16. Дальнейшее развитие баз данных связано с Демидовым Александром, после чего появились функции поиска и сами базы. Путь развития был сложен, основные трудности возникают и возникали с быстродействием, так появились индексные файлы, значительно ускорившие работу. На текущий момент уже написаны всевозможные картотеки - для обычных пользователей, и специализированные пакеты "Финансы", "Платежки" - облегчающие работу бухгалтера, "Магазин" - снимает все проблемы с товароведов, продавцов и кладовщиков. Достоинство всех пакетов - удобный пользовательский интерфейс, контекстно зависимые подсказки, использование дополнительных возможностей компьютера.
ТЕНДЕНЦИИ РАЗВИТИЯ
Система без языков программирования - это не система. Вряд ли кто из программистов будет спорить с этим утверждением. Поэтому основные тенденции развития лежат именно в этой области. Сейчас можно отметить три основных направления, по которым система развивается.
Первое направление - адаптация популярного языка FORTH в системе iS-DOS. Второе направление -разработка "своего" Ассемблера. И последнее направление - создание СУБД для написания пользователем собственных прикладных программ. С появлением вышеупомянутых средств система станет полностью открытой для
пользователя и у него появится уникальная возможность самому писать "под iS-DOS".
К уже сказанному хочется добавить, что разработчики не забывают также и о создании всевозможных сервисных программ, дополнительных утилит и средств отладки.
iS-DOS В ОКЕАНЕ КОММЕРЦИИ
Продажа iS-DOS'a началась осенью 1992 года. Производилась она штучно и лично. Вернее, продавать iS-DOS начали чуть раньше, но лишь как приложение к базам данных, которые в нем работали. Создание первой базы летописцы относят к ранней весне 1992 года.Был это "Деловой Календарь". Вскоре появился "Склад", были написаны в общих чертах такие программы как текстовый редактор, программы печати текстовых и графических файлов, осуществлялась файловая связь с TR-DOS и MS-DOS и нам было ясно, что iS-DOS обречен на успех. Продавался iS-DOS поначалу весьма дорого по сравнению с теперешними ценами. Достаточно сказать, что базовый набор оценивался около $10, хотя за наличные он отпускался почти за полцены. Говорят, что в это время на толчке в "Автово" можно было купить краденый iS-DOS за двойную против нашей цену и к тому же без проверки на компьютере. С начала 1993 года цены начали постепенно снижать, вернее заморозили рублевую, а с июля начались массовые продажи через магазины по почти бросовым ценам.