User Tag List

Страница 4 из 20 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 200

Тема: Пишем свою ОС. Практика

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    12.12.2009
    Адрес
    Курск
    Сообщений
    768
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    можно получить домашнее задание? где почитать про командыВГ?
    Pentagon-128/AY/FDD; Leningrad-48/128; Гамма-48 ред1; Искра- 1080; Искра-1085;

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

  3. #2

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    При наличии аппаратной реализации принципа "любая страница в любом окне" нужно планировать под память пользователя (программы/процесса) все 64к адресного пространства. Ядро держать в "теневой" странице и подключать только на время обращения к его функциям. Разница между 32к/64к для процесса критична в том, что в 64к уже достаточно большой простор для длинномерного компилированного С-кода, а в 32к на C разве что только "hello world" запускать.
    Последний раз редактировалось Error404; 29.01.2010 в 16:56.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #3

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Разница между 32к/64к для процесса критична в том, что в 64к уже достаточно большой простор для длинномерного компилированного С-кода, а в 32к на C разве что только "hello world" запускать.
    Хорошо, что я об этом не знал и писал на С программки для 8кбайтовых контроллеров

    На самом деле - современные компиляторы С оптимизируют код хорошо. Сам ты его соптимизируешь ну щё процентов на несколько - не больше.

    ---------- Post added at 07:35 ---------- Previous post was at 07:32 ----------

    Цитата Сообщение от Error404 Посмотреть сообщение
    Использую Hitech-C для CPM - пожалуй единственный 32-битный ANSI C для Z80, работающий нативно на Z80 (в отличие от SDCC, IAR и прочего для PC)
    А! так тебе обязательно НАТИВНО работающий? тады ой.

    в принципе, для скорости написания проще использовать кросс-средства.

    нативных оптимизирующих компиляторов С для Z80 не знаю.

  5. #4

    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Хорошо, что я об этом не знал и писал на С программки для 8кбайтовых контроллеров
    Но согласись что это были довольно простые по логике програмки, далеко не ROM от спектрума и не типичная спектрум игрушка типа exolon. Как показывает практика то длинна кода и скорость при использовании ЯВУ падает в среднем в 3...4 раза так что надо памяти хотябы 256Кб а лучше 512кб частоту не 3Mhz а 20Mhz! И при этом желательно чтоб память была прямоадресуемая без всяких страниц и сегментов (типичный m68000 или mos65816).

  6. #5

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    176
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    Как показывает практика то длинна кода и скорость при использовании ЯВУ падает в среднем в 3...4
    ну это зависит от того, как писать, да и от компилятора сильно зависит
    если не пользоваться 32х битной арифметикой, вычислениями с плавающей точкой и прочим, чего в процессоре нет, то работать будет быстро, а занимать мало
    си - это же, как говорится, ассемблер высокого уровня.. я, например, не представляю, почему Hello, world на си может получиться значительно больше по объему, чем на асме
    эксолон-не эксолон, а какой-нибудь maziacs (не менее типичная zx-игра) умять в 32 килобайта компиленного сишного кода вполне реально
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  7. #6

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    Как показывает практика то длинна кода и скорость при использовании ЯВУ падает в среднем в 3...4
    Это где такая "практика" ? Давай говорить не о "яву", а о языке С, например. О современных компиляторах, а не о поделках 20-летней давности.

    1. Скорость. Для того, чтобы алгоритм был "в 3-4" раза медленне, чем на асме - надо ОООЧЕНЬ постараться. Отключить полностью оптимизацию, писать как попало. Есть, конечно, исключения, но кто мешает сделать ассемблерную вставку ? Как правило, критическая часть кода занимает не более нескольких десятков комманд ассемблера.
    Как правило, проигрыш в скорости - проценты. Никак не 3-4 раза.

    2. Объём. Язык С позволяет разместить данные не менее плотно, чем ассемблер. Только удобств куда как больше.

    3. Скорость разработки. Тут асм явно в проигрыше.

    ИТОГ.

    Проект лучше делать на С, а потом критические места - переписывать на асме.

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

    Но в свете написания ОС могу сказать, что тут про асм лучше забыть и не вспоминать без крайней нужды. Писал для ARM7 многозадачку потоковую. ядро заняло всего несколько килобайт.А для АРМ7 куда как более жирный, чем для Z80 получается. В ядро вошли - переключатель задач, менеджер памяти (куча), рудиментарная файловая система (для обращения к устройствам), куча сервисных функций.
    Ассемблер использовал только для запуска процессора (расставить все стеки, запустить тактовый генератор) - и всё.

  8. #7

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    Но согласись что это были довольно простые по логике програмки, далеко не ROM от спектрума и не типичная спектрум игрушка типа exolon. Как показывает практика то длинна кода и скорость при использовании ЯВУ падает в среднем в 3...4 раза так что надо памяти хотябы 256Кб а лучше 512кб частоту не 3Mhz а 20Mhz! И при этом желательно чтоб память была прямоадресуемая без всяких страниц и сегментов (типичный m68000 или mos65816).
    Моя программка на С для AT8535 (память команд - 8К, т.е. 4096 команд) была не "Эхолон".. Это да..
    В реалтайме обрабатывала информацию с 30 датчиков и управляла 15 двигателями. Плюс к этому - держала интерфейс пользователя на 7-сегментных индикаторах.

    Как думаешь - что сложнее - обработать 5 кнопок ввода пользователем в эхолоне или 30 датчиков? Я уж не говорю про то, что зависание эхолона - никакого вреда, кроме мата пользователя не принесёт.. Чего не скажешь о зависании программы управления очисткой воды, которую я писал...

    В принципе вся "сложность" в игре типа эхолон - это скорость перестроения экрана. А никак не логика.

    ---------- Post added at 01:00 ---------- Previous post was at 00:47 ----------

    Цитата Сообщение от Zet9 Посмотреть сообщение
    Операционная система Микроб
    Версия 0.00.
    По-моему вы не с того начали.

    Драйвера - это всё хорошо, но! Есоли пишите ОС, то, ИМХО, вначале ответьте на такие вопросы:

    1. Как ОС будет взаимодействовать с ПО пользователя. То есть "механизм системных вызовов". Механизм должен быть единым для всех программ, пригодным для любого клона, на котором планируется запуск ОС.

    2. Как будет происходить переключение задач. Тип многозадачности, события, переключающие задачи, механизм переключения задач.

    3. Как будет органиована совместимость с ПО, не поддерживающим данную ОС (старые программы, игрухи и проч.)

    4. Как будет выделяться память. Скажем, учитывая архитектуру спека, можно ограничить максимальный объём памяти, выделяемой за раз - 16К.

    5. Список основных системных вызовов. Их функции.

    ИМХО, когда ответите на все эти вопросы - только тогда можно браться за написание программы. Иначе - получится нечто кривонесовместимое и непонятноработающее.

  9. #8

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    а в 32к на C разве что только "hello world" запускать.
    забыл добавить: "на пц"

  10. #9

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    забыл добавить: "на пц"
    Я конечно немного утрирую, но по моему опыту, любая более-менее интересная программа (это обычно 1000-2000 строк) у меня получается порядка 36-40к только кода (а ведь нужна еще и куча, и стек). Использую Hitech-C для CPM - пожалуй единственный 32-битный ANSI C для Z80, работающий нативно на Z80 (в отличие от SDCC, IAR и прочего для PC)
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #10

    Регистрация
    05.10.2006
    Адрес
    Харьковская обл.
    Сообщений
    166
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про команды ВГ-93 можно прочитать в книге "ZX-SPECTRUM и TR-DOS для пользователей и программистов". Она есть на сайте Virtual TR-DOS

Страница 4 из 20 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  2. Пишем свою ОС. Теория
    от Zet9 в разделе ZX Концепции
    Ответов: 280
    Последнее: 27.06.2012, 15:27
  3. Я ищу свою дему
    от AAA в разделе Демо
    Ответов: 4
    Последнее: 04.05.2005, 22:59
  4. Ищу свою gfx работу!!!
    от invador в разделе Игры
    Ответов: 7
    Последнее: 02.02.2005, 12:54

Ваши права

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