User Tag List

Страница 9 из 47 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 466

Тема: Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ

  1. #81

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

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Для z80, кстати нелогично с 0 банку включать. Там же рядом вектора лежат.
    Вектора копируются при создании нового процесса, там даже специальная функция для этого предусмотрена, _program_vectors. Мне больше интересно, как все эти архитектуры с RAM в самом низу умудряются грузиться? Им кто-то копирует код в ОЗУ при ресете?

    Может просто в конфиге ядра какой символ предусмотреть? Если он не определён - компилить как раньше. Если определёно - то как в твоём коммите.
    Да, я так и сделаю.
    #define CONFIG_BANK_FIXED_START 0xC000, в таком духе
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  2. #82

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Вектора копируются при создании нового процесса, там даже специальная функция для этого предусмотрена, _program_vectors. Мне больше интересно, как все эти архитектуры с RAM в самом низу умудряются грузиться? Им кто-то копирует код в ОЗУ при ресете?
    Копировние = лишние 256 байт занятого ОЗУ

    Да так же грузятся, как я пентеву гружу... В момент включения с адреса 0 - ПЗУ. Потом всё копируется куда надо и переключается на ОЗУ.

    Эта схема стандартная. Она и ARM и ещё много где.

    ---------- Post added at 17:49 ---------- Previous post was at 17:30 ----------

    Eltaron

    struct devsw dev_tab[] = /* The device driver switch table */
    {
    // minor open close read write ioctl
    // -----------------------------------------------------------------
    Мелкий косяк. Номер устройства в таблице - MAJOR, а не minor.

    ---------- Post added at 17:59 ---------- Previous post was at 17:49 ----------

    Кстати, в структуре struct devsw вообще ни major ни minor не указан.
    Это плохо.

    Модульные драйвера в произвольных страницах сложнее сделать будет.

  3. #83

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Сама ФС fuzix-овая стандартная. Она же UZIX-овая стандартная и (судя по словам Error404) UZI-ховая стандартная.
    Тулзы для её создания лежат в /Standalone, собираются под хост.
    Алан в бложике писал, что в fuzix он уже внес "усовершенствования" в ФС от UZI - например, увеличил длину имен файлов (вот зачем?). Насколько после этого сохранилась совместимость с утилитами от UZIX - ХЗ. Кстати, и в UZIX не в чистом виде ФС от UZI: разрабы UZIX писали что в классической UZI в коде ФС есть ошибки, иногда приводящие к крашу ФС, и они якобы их исправили (исправил ли их Алан?). Что там при этом поменялось - структура ФС (и соответственно совместимости с UZI нет) или только функции ядра (и совместимость с UZI осталась) не описывалось. Для UZIX я собирал утилиты для себя из исходников UZIX, для win32. Те что под Linux - не пробовал.
    Последний раз редактировалось Error404; 19.11.2014 в 15:14.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  4. #84

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

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Мелкий косяк. Номер устройства в таблице - MAJOR, а не minor.
    Да там вообще жесть. Добавил устройство в верх таблицы - переделывай всё вплоть до файловой системы. Зато скорость доступа растет, не надо всё таблицу оббегать.

    Копировние = лишние 256 байт занятого ОЗУ
    На фоне выигрыша в 16 килобайт?
    И даже не 256, а 104. Выше NMI (0x66) ничего нет, ни векторов, ни рестартов.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  5. #85

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Да там вообще жесть. Добавил устройство в верх таблицы - переделывай всё вплоть до файловой системы.
    Почему? По uzix не припоминаю такого. Впрочем, не пробовал таблицу менять.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  6. #86

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

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Почему? По uzix не припоминаю такого. Впрочем, не пробовал таблицу менять.
    Потому что номер устройства в таблице - это его major. Скажем, я сначала выкинул всякие дисководы и параллельные порты, оставил один терминал. Терминал получил major = 0. Потом добавил дисковод в верх таблицы - дисковод стал 0, терминал стал 1.
    И пошло-поехало. Дефайн BOOT_TTY поменяй, номер устройства у /dev/tty1 поменяй... Не то, чтобы это большая проблема была, но всё же.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  7. #87

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

    По умолчанию

    Заколебался с менеджером памяти пентевы. Чтото я делаю не так.
    Грузится, запускается - и потом рушится тут же. только стартовое сообщение и вижу.

    А казалось бы - поменяй в паре мест 7FFD на порт пентевы и инвертируй биты...

  8. #88

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    А казалось бы - поменяй в паре мест 7FFD на порт пентевы и инвертируй биты...
    Как и какие порты юзаешь? Архитектуру бэйзконфы не ведаю, зачем инвертировать биты? Скинь кусок этого менеджера подивиться.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  9. #89

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

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Как и какие порты юзаешь? Архитектуру бэйзконфы не ведаю, зачем инвертировать биты? Скинь кусок этого менеджера подивиться.
    Тут подробно. http://nedopc.com/zxevo/rom/zxevo_ba...figuration.pdf

    Просто я ещё не все фишки за 3 дня разборов с пентевной памятью просёк.

    Там портов всяких... Как у дурака махорки...

    Есть и режим пентагон1024 и АТМ и свой пентевовский. Две карты памяти, которые можно переключать и не дай бог это сделать, если в другой карте памяти в этом окне другая страница впечатана...

    Причём влияние одних портов управления памяти на другие определяется третьими портами

    Видеорежимов 7 штук.

    Есть NMI - ловушка, срабатывающая по адресу..

    В обещем - почти "воплощение всех мечт". А теперь я со всей этой хренью взлететь пробую

    В общем я примерно идею как правильно сделать уяснил. теперь дело за малым - сделать
    Последний раз редактировалось SfS; 20.11.2014 в 09:12.

  10. #90

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Там портов всяких... Как у дурака махорки...
    Причём влияние одних портов управления памяти на другие определяется третьими портами
    Это я в курсе. Дока-то есть и даже распечатана, но слишком слаб умом, чтобы вникнуть

    Пиши не под BASE- , а под TS-Config! - там все очень просто:
    порты 0x10af, 0x11af, 0x12af, 0x13af для окон 0, 1, 2, 3 соответственно. И доступны всегда без всяких фокусов. Пишешь туда номер паги, и всё!
    Только для окна 0 есть нюансы связанные с мапом ПЗУ.

    Регистры Page0-Page3. Номер страницы задается линейно 0-255. Для страниц ПЗУ используются только биты 4:0, биты 7:5 игнорируются.

    Q: Что творится в в окне #0000, как использовать регистр MemConfig?
    А: Отображаемая страница в окне #0000 задается в регистре Page0.
    MemConfig указывает что и каким образом там отображать.
    W0_RAM: что отображать - 0 - ПЗУ, 1 - ОЗУ
    W0_WE: 0 - запись запрещена, 1 - разрешена. Для ПЗУ - это соответствующая ножка чипа EEPROM. Для ОЗУ - просто запрет записи. Нужно для правильной работы прошивки бейсика из ОЗУ, поскольку бейсик пишет в адреса ПЗУ и портит прошивку.
    !W0_MAP: включает "маппинг" четвертинок ПЗУ в окне 0. При этом номер страницы образуется так: биты 7:2 (или 4:2 для ПЗУ) берутся из Page0, а биты 1:0 заменяются на то, что должно быть в окне 0 в зависимости от бита 4 из #7FFD и включенности TR-DOS:
    00 Service
    01 DOS
    10 128
    11 48
    Это позволяет загрузить в ОЗУ прошивку ПЗУ (64кБ) и использовать например для отладки.

    ROM128 - копия бита 4 из #7FFD.
    Да и видео-режимы по-быстрее и по-удобней для кодинга.

    ссылка на полный FAQ: http://forum.tslabs.info/viewtopic.php?f=35&t=157
    ссылка на памятку по портам: https://zx-evo-fpga.googlecode.com/h...onf/TSconf.xls
    ссылка на эмулятор: http://zx-evo-fpga.googlecode.com/hg.../bin/unreal.7z

    Хотя, если под бэйз напишешь, тебе потом пожизни ничего страшно не будет
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

Страница 9 из 47 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Куплю БК 0010 или подобную машинку в Украине
    от LeBohdan в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 06.07.2008, 23:29
  2. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  3. Ответов: 16
    Последнее: 02.08.2005, 12:20
  4. Ответов: 10
    Последнее: 18.02.2005, 17:45

Ваши права

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