Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 18

Тема: ДОС для РК: идеи.

  1. #1
    Veteran Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    37
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ДОС для РК: идеи.

    Всем доброго дня!
    Хочу изложить в этой теме моё видение ДОСа для РК-совместимых компов.
    Сейчас уже есть немало наработок в этой области: ORDOS, флеш-пзу, для дискет со своим форматом, но есть у этого одна проблема: каждый вариант доса работает только у автора и заточен под его оборудование. Если взять все варианты РК (РК стандарт, РК SRAM, Апогей, Микроша, Партнёт...) и перемноржить на все типы подключения хранилищ данных (Флеш(много вариантов), Дискета, SPI флеш, I2C ...), то получится огромное количество ДОСов. Как же разобраться в этой ситуации? Придумать единый стандарт и насильно всех на него пересадить - такой вариант не сойдёт. Многим приятна и родна какая-то либо машина, с ней будет неохота уходить. Как, например, мне с Апогея, хотя сейчас есть более развитые варианты, но апогей мне больше нравится.

    И вот мне пришла в голову идея, с помошью которой может получиться решить проблему: Распростронять ДОС в виде исходников (возможно, и даже лучше, вместе с компилятором).
    Что мы тогда получаем: Человек скачивает архив с исходниками, редактирует их под свой вариант РК, компилирует и прошивает (или загружает в память, если дос в озу хранится). Все эти действия надо свести к максимальной простоте: распростронять коды вместе с ассемблером, чтоб откомпилировать одним кликом, писать инструкцию по портированию(Открыть DOS.ASM, установить стартовый адрес после .ORG... и далее в таком ключе). Чтобы дос работал с разныминакопителями, надо сделать так: разделить исходник на два файла: первый будет содержать в себе исходники самого доса, операций над файлами, а второй - только операции работы с диском: чтение и запись сектора. В комплекте исходников должно быть несколько вариантов этого файла, для каждого типа накопителя. То есть: BDOS_I2C.ASM, BDOS_FLOPPY.ASM, BDOS_FLASH.ASM, возможно несколько вариантов одного и того же типа хранилища, для разных микросхем. Эти файлы тоже должны быть настраеваемы, в них вначале должен быть откомментированный текст, в котором должно быть написано что сделать чтоб адаптировать этот исходник к вашей модели РК: где поменять адрес ВВ55, где поменять используемые биты, и прочее.
    Тогда мы получим максимальную совместимость, программы будут одинаково работать как, например на Апогее с I2C флешкой и на РК SRAM с Ромдиском на AT27XXXX !
    Данный метод распространения программ широко используется, можно привести много примеров, например, линукс. Трудно найти место, куда его не портировали. Или например, CP/M. Вполне похожий принцип, количество её вариантов достаточно велико. Вот ещё один вариант, далеко ходить не надо - This Is Apogey!!!. Стоило мне выложить исходники+компилятор, как демку сразу портировали на РК и ЮТ Кстати, мы тоже можеи не зацикливаться на РК, а распрострониться на соседние компы: ЮТ, Специалист, Орион... Это будет сделать проще простого.

    Но тут вылазят несколько проблем. Первая и основная - Не постоянный адрес ДОСа. В своей идее я подразумеваю, что дос может компилироваться под любой адрес. Это зависит как от модели компьютера, как и от желаний автора. В итоге мы получаем, что программа не будет знать где находится ДОС, и, собственно, процедуры сохранения/записи. Как я предлагаю решить данную проблему. Опять предлагаю обратиться к предкам: В Cp/M программы грузились с адрса $100, до этого распологалась системная зона, которая служила для связи прогаммы и ОС. Нечто подобное можно сделать и здесь, только предлагаю уменьшить эту область до двух байт. Эти два байта будут, собственно и адресом доса. Есть два варианта дальнейшиих размышлений. Первый, как в Мониторе - прдпрограммы располагаются с некоторым смещением от начального адреса. Т.е.: Чтение файла = Старт+3, Запись файла - Старт + 6... Второй вариант - Как в CP/M - этот адрес указывает не на адрес доса, а на адрес обрабатывающей процедуры, тогда: Чтение файла - MVI A,1:CALL DOS, Запись файла - MVI A,2:CALL DOS. А можно объеденить эти два варианта. Тогда в первых двух байтах находится адрес доса, а далше - ДОС+3 - обрабатывающая процедура (как в cp/m), дос+6 - чтение файла, и т д...
    Но кто же занесёт в эту область адрес доса? - спросите вы. Тут надо взглянуть на братьев спектрумистов. У них есть похожая ситуация- за всё время существования спектрума так и не было придумано универсального способа управления в играх. И поэтому вначале каждой игры есть табличка: 1-Keyboard. 2-Kempston. 3-Sinclair. 4-Redefine. 5-Start game. Так и тут я предлагаю, чтоб программа при запуске спрашивала адрес доса, и записывала его в Первые два байта памяти. Если же пользователь не ввёл, а просто нажал энтер, значит, адрес уже там есть, использовать его. Можно ввести какой нибудь флаг, что запись там уже есть, чтоб на каждом резете не вводить число. Но всё равно, думаю, от того, что надо будет нажать 5 кнопок (4 hex числа + Enter) никто не умрёт, и много времени это не займёт.

    В общем, вот так
    Что хотел, высказал. Думаю, надо эту идею немного обсудить и можно приступать к реализации. Можно взять за основу имеющийся дос, можно написать заново. Второе, наверное, лучше, так как идея переносимости будет реализована полностью. Если никто не возмётся, напишу сам, опыт и умения есть, но только после Демопати Мультиматограф, сейчас нет времени, занят другим проектом. (Для РК. Будет интересно )

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Activist
    Регистрация
    08.04.2013
    Адрес
    г. Ульяновск
    Сообщений
    293
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Апогее с I2C флешкой
    Вот про это поподробнее узнать бы

    А вот по поводу ДОСа действительно стоит поразмыслить.

    Например для РК86 (РК86СРАМ) были сделаны платы ФДД, и скоро ДОС 2.9 на нём появиться, может есть смысл взять её за основу и например ДОС под флеш оформить как её файл, а может наоборот ДОС под флеш дополнить таблицей переходов от ДОСа 2.9 получим совместимость (правда к сожалению с пятью програмами ДОСа 2.9) я Владимиру об этом написал.
    Можно за основу взять ОРДОС с его таблицей переходов, он мне всегда нравился, я даже пытался его на РК перетащить, но если честно я бы его оставил Ориону, а на РК пусть будет его ДОС 2.9
    А вот по поводу "в Cp/M программы грузились с адрса $100" мне ни когда не нравилось, т.к. в РК подобных компиках сложился стандарт $0000 не занимать, я бы ДОС всё же старался бы запихнуть в адреса повыше.

    Как то так пока.
    РК86 ещё жив!!! а теперь и ЮТ-88!!!

  4. #3
    Master
    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    890
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я здесь недавно и поэтому могу сказать или глупость или очевидную вещь.
    Почему бы не сделать так же как и в уже упомянутом Спектруме - использовать таблицу переходов. Саму таблицу расположить в верхней памяти и стандартную для всех, а вот адреса переходов - у каждого свои. Раз ДОС распространять в виде исходников, то логично, что в нем же будет и загрузчик, который и заполнит таблицу переходов. С такой таблицей решается вопрос и с уже существующими версиями ДОСа - для них нужен всего лишь загрузчик, который заполнит таблицу переходов. Проблема только в существующем софте, который нужно переделать для обращения к функциям ДОСа через точки перехода.

  5. #4
    Veteran Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    37
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так вот дело в том, что "в верхней памяти" будет у всех разное. У одних моделей память кончается на $8000, у других на $E000, у третьих ещё где-то. Очень трудно подобрать место в таком случае.

  6. #5
    Master
    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    890
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все равно надо хотя бы одну ячейку стандартизировать иначе ничего не получится! А вот в этой ячейке записывать адрес таблицы переходов.

  7. #6
    Veteran Аватар для gdv2002
    Регистрация
    17.07.2013
    Адрес
    г. Курган
    Сообщений
    1,972
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    105 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Идея хороша, но утопична. Каждый РК-клон его автор кроил по своему, как удобно/хотел/умел. Единого "стандарта" нет именно по этой причине.
    И подружить всех будет очень не просто, это работа для хорошего программера, а кто будет этим заниматься?
    Я подымал вопрос о создании чего-то подобного, предлагал сделать фонд поддержки для создателя/лей ДОС, но так все и кануло в пучине букаф и обсуждений отдельных разработок.
    С уважением, Дмитрий.
    Pentagon-128 вер.2023+Turbo Sound+ZXM-GeneralSound
    ZXM-Phoenix 2048+Turbo Sound+ZXM-GeneralSound+ZXM-SoundCard Lite
    ZXM-Phoenix в Телеграмм

  8. #7
    Master Аватар для alx32
    Регистрация
    18.07.2010
    Адрес
    Ульяновск
    Сообщений
    849
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    возможно, как вариант, использовать точки входа монитора, а сама дос будет спрашивать, что да как. Например ввод/вывод на магнитофон, запрос типа "Лента/Диск?", при выборе ленты - переход на стандартную программу монитора, а диск - это уже средства дос. И ещё, а может точку входа сделать в самом мониторе?

  9. #8
    Master
    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    890
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gdv2002 Посмотреть сообщение
    Идея хороша, но утопична.
    Я бы не сказал, что сильно и утопично. Стандартизировать нужно всего лишь ОДНУ ячейку и расписать таблицу переходов, вернее расписать индексы подпрограмм, а уж каждый хозяин "своего" ДОСа впишет туда свои адреса! Проблема только в одном - заставить программеров писать программы для ДОСа для такого стандарта, что практически невыполнимо - лень непобедима...

  10. #9
    Veteran Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    37
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поначалу будет много досов, потом их количество будет уменьшаться и придёт к одному.
    Примерно такое было со спеком. Вначале было много клонов, время шло и в итоге остался распростронён практически один вариант - пентагон.


    Цитата Сообщение от Alex_LG Посмотреть сообщение
    Стандартизировать нужно всего лишь ОДНУ ячейку и расписать таблицу переходов, вернее расписать индексы подпрограмм, а уж каждый хозяин "своего" ДОСа впишет туда свои адреса!
    Лучше всего сделать её в мониторе, так как верхняя граница ОЗУ у всех своя. Но для этого придётся монитор перешивать.
    Я предлагал так, чтоб программа при первом запуске сама спрашивала этот байт, и от него уже отталкивалась. Не так уж это и страшно. Взамен получим полную универсальность.

  11. #10
    Activist
    Регистрация
    08.04.2013
    Адрес
    г. Ульяновск
    Сообщений
    293
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gdv2002 Посмотреть сообщение
    Я подымал вопрос о создании чего-то подобного, предлагал сделать фонд поддержки для создателя/лей ДОС, но так все и кануло в пучине букаф
    Дмитрий это вы зря, ни куда ни чего не кануло, если бы кануло то данная тема не появилась бы!

    ---------- Post added at 18:01 ---------- Previous post was at 17:59 ----------

    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Поначалу будет много досов
    Вот здесь вопрос, где же их много?

    ---------- Post added at 18:03 ---------- Previous post was at 18:01 ----------

    Цитата Сообщение от Alex_LG Посмотреть сообщение
    Проблема только в одном - заставить программеров писать программы для ДОСа
    Вот это действительно проблема, кто знает НОВУЮ программу хотя бы под ДОС 2.9, кроме пяти тех из журнала?
    РК86 ещё жив!!! а теперь и ЮТ-88!!!

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Идеи демо
    от GM BIT в разделе Демо
    Ответов: 711
    Последнее: 24.03.2019, 19:24
  2. Восстановить клаву - идеи
    от doc_fbi в разделе Устройства ввода
    Ответов: 10
    Последнее: 28.10.2013, 23:25
  3. Идеи нейминга для demo
    от unbeliever в разделе Демо
    Ответов: 53
    Последнее: 12.11.2011, 22:27
  4. идеи устройств
    от next в разделе Несортированное железо
    Ответов: 13
    Последнее: 10.08.2006, 19:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •