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

User Tag List

Страница 10 из 25 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 244

Тема: NedoOS

  1. #91

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Скорости это не прибавляет.
    можно так оптимизировать что и прибваит
    СВОЯ таблица может быть сокращенной и не адресовать все 64К адресного пространства
    и работать она будет быстрее

    пример вообще без таблицы
    rst_10
    ld h,$20
    ld l,a
    jp (hl)

    так понятно почему нужны все рсты?

    - - - Добавлено - - -

    Цитата Сообщение от SfS Посмотреть сообщение
    Нет, рациональный подход.
    сто пудова сяпаскалист
    Последний раз редактировалось NEO SPECTRUMAN; 18.11.2020 в 11:09.

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

  3. #92

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это полюбому быстрее
    ШТА?
    Код:
    RST8_entry:
    		call store_context_and_set_system_page
    		// Сохранили всё, что надо для вызова и включили системную страницу с адреса 0xC000
    		// считаем, что bc не изменяется при вызове
    		
    		// Вычисляем адрес обработчика системной функции
    		ld	hl,#0xC000
    		add	hl,bc
    		ld	c,(hl)
    		inc	hl
    		ld	b,(hl)
    		push	bc
    		ret		// Переходим на обработчик
    
    // Выход
    RST8_exit:
    		call restore_context_and_set_progpage
    		ret
    
    
    store_context_and_set_system_page:
    		push:push:push
    или ещё как аргументы кидаем, регистры сохраняем
    		ret
    Код:
    ;RST 10h
    		jp sys				; вектор ДОС-а
                    ...
    ;-------------------------------------------------
    ; ДОС-овый вектор
    ;-------------------------------------------------
    sys:		push hl
    		ld l,c			; номер команды
    		ld h,sys_tbl / 256		; 0200h..02FFh массив мл.байтов адресов
    		ld c,(hl)			; загр. мл.байт адреса
    		inc h			; 0300h..03FFh массив ст.байтов адресов
    		ld h,(hl)			; загр. ст.байт адреса
    		ld l,c			; готовый адрес
    		ex (sp),hl			; в стек и
    		ret
    
    ;возврат в процесс по ret, без всяких call чего то там
    такты считать будем или как?
    на каждый рестарт в итоге СВОЯ таблица.
    ЧТо мешает иметь таблицу, например в 2К величиной и там хранить до 1024 адресов функций?
    в контексте затрат по памяти нет разницы - будет это 2 таблицы рестартов или 1, но сразу на 512 адресов (или 1024 или ещё там как).

    и ты предлагаешь делать очередной тазис/издос. в котором всё засунуто в одну кучу. и bdos и драва и ioctl и остальное и пофиг на всё.
    даже в старой cp/m есть разделение на уровни. есть bdos, есть bios, есть ccp. и попробуй там через call 5 к bios`у обратиться)))
    Последний раз редактировалось Sayman; 18.11.2020 в 11:17.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  4. #93

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    ШТА?

    и этот товарищь мне что то рассказывал про *****код?

  5. #94

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

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    оно медленно работает из-за всего, мало того, что там си, так ещё и диспетчер медленный.
    я там выше привёл рабочий пример. оно работает быстрее, чем вариант от Sfs. при этом есть такие моменты:
    Ты привёл по факту то же, что и я, но БЕЗ сохранения контекста задачи. Вопросов нет - контекст можно сохранять-восстанавливать и внутри вызова где-то. Но главное - это делать придётся обязательно. Многозадачные ОС по-другому не работают.

    Цитата Сообщение от Sayman Посмотреть сообщение
    1. человек который пилит систему не путается в модулях/уровнях системы. например, можно спокойно добавить новый, скажем, isa-cf читалки. даже если что-то косячнул в нём, остальные драйвера не слетают и система будет продолжать работать.
    А с одним ресетом они с чего слетят?

    Цитата Сообщение от Sayman Посмотреть сообщение
    2. у пользователя не будет в голове каша при чтении мануалов. он читает раздел посвящённый bdos, к примеру и понимает, что к этим функциям обращается через rst 0x10. а если ему по какой-то причине нужно напрямую сектора читать (например, пишет fdisk), то для этого он может использовать rst 8. соответственно берёт в руки мануал на биос и изучает его. и никакой путаницы нет.
    Ну это уж совсем какаято чушь.
    Элементарно же. Никакой программист не станет писать константы числами.

    Скажем

    // Уровень FS
    #define FS_OPEN 0x10
    #define FS_CLOSE 0x11
    #define FS_READ 0x12
    #define FS_WRITE 0x13
    #define FS_FCNTL 0x14

    // Уровень устройства
    #define SD_READ_SECTS 0x100
    #define SD_WRITE_SECTS 0x101

    И какая разница - разнесено это по рестартам или нет? Всё понятно.

    БИОС и БДОС это CP/M-ная чушь. Строго говоря и DOS и CP/M это не ОС, а запускалки прог с драйвером диска.Управления памятью нет, задач нет, драйверов нет как таковых по сути...

    - - - Добавлено - - -

    Цитата Сообщение от Sayman Посмотреть сообщение
    такты считать будем или как?
    Нет, не будем. Потому что у тебя НЕТ сохранения и восстановления контекста задачи. А раз есть задача, то её контекст надо сохранять и восстанавливать при системных вызовах.

    Мы ж не об абстрактном вызове говорим, а об ОС.

  6. #95

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    это не ОС, а запускалки прог с драйвером диска.Управления памятью нет, задач нет, драйверов нет как таковых по сути...
    это у тебя сильно неправильное понемание понятия ОС

    а драйвера там как часть самой ос
    программы же не пишут там на прямую в видео память и не опрашивают клавиатуру
    все абстрагировано от прямого обращения к железу

  7. #96

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение

    и этот товарищь мне что то рассказывал про *****код?
    что там тебе не понравилось? в каком месте ты *****код увидел?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  8. #97

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Управления памятью нет, задач нет,
    а почему они должны обязательно быть?

    оно происходит из того времен когда не лишней памяти не многозадачности не было

  9. #98

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

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    можно так оптимизировать что и прибваит
    СВОЯ таблица может быть сокращенной и не адресовать все 64К адресного пространства
    и работать она будет быстрее

    пример вообще без таблицы
    rst_10
    ld h,$20
    ld l,a
    jp (hl)

    так понятно почему нужны все рсты?
    Это ошибка большинства - оптимизировать до укакашки несущественную мелочь, но при этом использовать готовые библиотеки той же FAT, которые едят в 1000 раз больше времени, чем что твой код, что мой. Вопрос - зачем? Ну дадут все эти извращения 1% скорости. А то и меньше. И? Зато системность - в хлам.

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    сто пудова сяпаскалист
    Да, я и Сяпаскалист и джаваскриптист и ASM48ист и Z80ASMист...

    Ты ж пойми простую вещь. Я не играю тут в конкурс "как за меньше тактов вызвать подпрограмму". Это глупо просто, считать такты вызова системного вызова без учёта времени переключения контекста, времени работы драйвера и прочего.

    В теории оптимизации программ прекрасно сказано, что сначала надо понять - на что тратит основную часть времени программа, а потом эту часть и оптимизировать.

    А тут ситуация - "ой я 16 тактов сэкономил! я крут". А то, что потом потратил в другом месте 160000 тактов - забыл..

    - - - Добавлено - - -

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а почему они должны обязательно быть?
    Потому что мы говорим опять же не про абстрактную ОСь в вакууме, а про NedoOS, где это всё предусмотрено каком-то виде, да?

    Если хочется померяться размером тактов - то пожалуйста без меня. Я не крутой кодер. Мне интересно именно построение ОС, причём правильное её построение. То есть уровни драйверов, управления памятью, переключения задач. Но не оптимизация ради оптимизации.

  10. #99

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Я не играю тут в конкурс "как за меньше тактов вызвать подпрограмму". Это глупо просто, считать такты вызова системного вызова без учёта времени переключения контекста, времени работы драйвера и прочего.
    конечно если у тебя процедура "нахерачить содержимое 3К буфера" на экран то время вызова роли и правда играть не будет (но в этот буфер нужно еще предварительно что то накедать а это двойная работа)
    но если процедура "напечатать 1 символ на экран" то эти твои 16 тактов умножаются на 100500
    и выигрыш уже достаточно ощутимый

  11. #100

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

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    это у тебя сильно неправильное понемание понятия ОС

    а драйвера там как часть самой ос
    программы же не пишут там на прямую в видео память и не опрашивают клавиатуру
    все абстрагировано от прямого обращения к железу
    В ДОС так и было часто - писали напрямую в видеопамять и даже опрашивали клавиатуру) Особенно в играх. Да и в CP/M тоже...

Страница 10 из 25 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Стримы про разработку под NedoOs
    от hippiman в разделе Новости
    Ответов: 17
    Последнее: 17.08.2020, 21:33

Ваши права

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