====== Nextor ====== {{:msx:nextor:nextor-logo.svg?250|}} Nextor — это расширенная версия [[msx:dos2:|]] дисковой операционной системы для [[msx:|]]. За основу взята версия MSX-DOS 2.31, с ней Nextor совместим на 100%. Nextor будет работать на любом компьютере MSX (от [[msx:msx_1|]] и далее), имеющем не менее 128 кбайт ОЗУ. На компьютерах с объёмом памяти меньше 128 кбайт Nextor будет работать в режиме [[#MSX-DOS 1]] (приглашение DOS доступно только в том случае, если на компьютере установлено 64 кбайт ОЗУ). [[http://www.konamiman.com/msx/msx-e.html|Konamiman's MSX page]] [[github>Konamiman/Nextor|Nextor]] [[github>Konamiman/Nextor/releases|Nextor releases]] * 2.1.1-beta1 * {{:msx:nextor:nextor-2.1.1-beta1.sunriseide.rom|}} \\ MD5: d4ba8047c6f48810f77bc52791bb8ceb * [[https://github.com/Konamiman/Nextor/releases/tag/v2.1.1|2.1.1]] * {{:msx:nextor:nextor-2.1.1.sunriseide.rom|}} \\ MD5: ca94eb58ed7e62d01e90064e4b2301ac \\ [[https://github.com/Konamiman/Nextor/releases/download/v2.1.1/Nextor-2.1.1.SunriseIDE.ROM|оригинал]] Версия 2.1: * [[github>/Konamiman/Nextor/releases/tag/v2.1.0-beta2|Nextor v2.1.0 beta2]] * [[github>/Konamiman/Nextor/blob/v2.1/docs/Nextor 2.1 Getting Started Guide.md|Nextor Getting Started Guide 2.1]] * [[github>/Konamiman/Nextor/blob/v2.1/docs/Nextor 2.1 User Manual.md|Nextor User Manual 2.1]] * {{nextor_2.0_getting_started_guide.pdf |Nextor 2.0 Getting Started Guide}} * {{nextor_2.0_user_manual.pdf|Nextor 2.0 User Manual}} Информация по теме: * [[fdisk|FDISK — встроенный инструмент для разметки блочных устройств (дисков)]] * [[disk_basic|Расширения Disk BASIC]] * [[msx:nestor_basic:nestor_basic|]] {{anchor:setup}} ====== Установка ====== Для установки системы выполните следующие действия: - Подключите [[#hardware|устройство]] к компьютеру и включите его - Компьютер должен загружаться в [[msx:basic:|]] - Теперь надо создать нужные разделы с помощью интерфейса ''[[msx:nextor:fdisk|FDISK]]'' - Копируем **все** файлы Nextor на активный раздел, файлы доступны [[#tools|здесь]]. \\ Примеры: - Можно записать файлы на нужный раздел, подключив карту памяти к ПК, используя устройство для чтения карт (card reader) - Также можно скопировать файлы с дискеты (или образа дискеты) на диск, который является активным разделом карты памяти: COPY "B:\*.*" TO "A:\" , где * A — устройство с активным разделом Nextor, * B — [[gotekemulator:gotekemulator|GoTek]] или физический флоппи-дисковод ===== Файлы ===== {{anchor:tools}} * 2.1.0 beta 2 * {{2.1.0-b2_tools_dsk.zip|Образ дискеты}}, [[https://github.com/Konamiman/Nextor/releases/download/v2.1.0-beta2/tools.dsk.zip|оригинал]] * {{2.1.0-b2_tools.zip|Архив}}, [[https://github.com/Konamiman/Nextor/releases/download/v2.1.0-beta2/tools.zip|оригинал]] {{anchor:compile_from_sources}} ====== Компиляция из исходных текстов ====== - Скачать актуальную версию [[github>Konamiman/Nextor|Nextor]], тест был проведён на {{nextor-2.1_20211018.zip |этой}} версии - Установить необходимые пакеты: apt install make sdcc binutils - Скачать MACRO80 отсюда: [[github>Konamiman/M80dotNet/releases/tag/v1.1|M80dotNet]], например этот [[https://github.com/Konamiman/M80dotNet/releases/download/v1.1/M80dotNet_1.1_SelfContained_linux_x64.zip|файл]] - Скачать и собрать Sjasm [[github>/Konamiman/Sjasm/tree/v0.39|Sjasm v0.39]], можно скачать готовые: [[https://raw.githubusercontent.com/Konamiman/Nextor/v2.1/buildtools/linux/mknexrom|mknexrom]], [[https://raw.githubusercontent.com/Konamiman/Nextor/v2.1/buildtools/linux/sjasm|sjasm]] Можно использовать {{binary_for_compile_x86-64.tar.gz|готовые файлы необходимые для сборки для x86-64}}, их нужно скопировать, например в ''/usr/local/bin'' chmod +x bin/* sudo cp bin/* /usr/local/bin Команды для компиляции: cd Nextor-2.1/source make clean make ---- [[github>Konamiman/Nextor#linux|How to build Nextor]] {{anchor:boot_keys}} ====== Клавиши при загрузке ====== FIXME Можно изменить поведение Nextor, если во время загрузки удерживать нажатыми определённые клавиши. |0|Отключить режим постоянной [[#disk_emulation|эмуляции диска]], удалив указатель файла данных эмуляции из таблицы разделов.| |1|Принудительная загрузка в режиме [[#MSX-DOS 1]] . Если компьютер является MSX Turbo-R, переключает процессор в режим Z80.| |2|Принудительная загрузка в режиме [[#MSX-DOS 1]] . Если компьютер представляет собой MSX Turbo-R, переключите процессор в режим R800-ROM. Обратите внимание, что в режиме [[#MSX-DOS 1]] активный ЦП никогда не изменяет доступ к дискам; это может привести к тому, что некоторые устройства хранения данных не будут работать должным образом, особенно те, которые связаны с драйверами [[msx:dos:]], такими, как дисководы гибких дисков.| |3|Принудительно выполнить загрузку в приглашении [[msx:basic:|]], игнорируя любой существующий загрузочный код (то есть без загрузки и запуска ''NEXTOR.SYS'', ''AUTOEXEC.BAS'' или кода в загрузочном секторе).| |4|**Только для MSX Turbo-R.** Загрузка в режиме R800-ROM, в качестве маппера выбирается самый большой маппер, найденный в качестве основного (вместо внутреннего маппера), и освобождается 64 кбайт, выделенные для режима R800-DRAM. Это полезно при использовании программ, которые требуют много памяти и могут работать только с основным маппером; однако при этом будет значительное снижение скорости работы.| |5|Каждому ядру Nextor назначается только один диск с драйвером на основе устройства независимо от количества устройств, которые управляются драйвером. Это отменяет нормальное поведение, при котором Nextor назначает один диск на каждое найденное устройство. Но это только поведение по умолчанию — драйверы могут переопределить его.| |CTRL|Состояние этой клавиши передастся ядрам [[msx:dos:]] при инициализации. При этом внутренний дисковод в отключает второй, «несуществующий», диск, что позволяет освободить некоторую дополнительную память (которая используется под буфер дисковода), особенно в режиме [[#MSX-DOS 1]]. \\ Обратите внимание, что по умолчанию эта [[##boot_keys_inverters|клавиша инвертирована]], поэтому вы получите противоположное поведение, если не измените это.| |SHIFT|Запретить загрузку ядер [[msx:dos:]], но разрешить нормальную загрузку ядер [[msx:nextor:nextor|Nextor]]. Это полезно для отключения внутреннего дисковода гибких дисков, чтобы получить дополнительную память которая используется под буфер дисковода, особенно в режиме [[#MSX-DOS 1]]| {{anchor:boot_keys_slot}} ===== Отключение слота ===== Можно запретить загрузку ядра Nextor, нажав соответствующую клавишу. Это полезно, когда необходимо обновить ПЗУ ядра, поэтому его необходимо отключить. ^ Слот ^ Клавиша ^ | **0-0** |u| | 0-1 |i| | 0-2 |o| | 0-3 |p| | **1-0** |q| | 1-1 |w| | 1-2 |e| | 1-3 |r| | **2-0** |a| | 2-1 |s| | 2-2 |d| | 2-3 |f| | **3-0** |z| | 3-1 |x| | 3-2 |c| | 3-3 |v| {{anchor:boot_keys_inverters}} ===== Инверсия клавиш при загрузке ===== Ядро Nextor имеет два байта в ПЗУ по смещению 512 и 513, которые инвертируют клавиши при загрузке. Каждому ключу назначен один бит, который влияет на процесс загрузки (не включая клавиши отключения слота), и когда этот бит установлен, значение ключа инвертируется. Например, если бит для клавиши SHIFT установлен, драйверы MSX-DOS будут отключены, если во время загрузки не будет нажата клавиша SHIFT. Единственный способ задать их — это изменить файл ROM Nextor, прежде чем записывать его на ваше устройство. Вот как значения назначаются для каждой клавиши: ^ Бит ^ Клавиша ^ | Первый байт (смещение 512) || | 1 |1 | | 2 |2| | 3 |3| | 4 |4| | 5 |5| | Второй байт (смещение 513) || | 5 |CTRL| | 4 |SHIFT| {{anchor:boot_keys_onetime}} ===== Однократное применение клавиш при загрузке ===== Это ещё один способ изменить процедуру загрузки Nextor. Если во время загрузки Nextor найдёт определённые значения по определённому адресу в ОЗУ — он считает несколько следующих байт, и будет использовать их в качестве значений для клавиш загрузки (включая [[#boot_keys_slot|отключения слота]]), игнорируя клавиатуру. Для этого используется вторая страница ОЗУ, поэтому это будет работать только на компьютерах с ОЗУ не менее 32 кбайт. Этот механизм использует ОЗУ, потому он является «одноразовым» в том смысле, что он не будет работать снова при следующей перезагрузке компьютера, если нужные значения не будут снова помещены в память. Значения явно удаляется Nextor после считывания. Для настройки этого механизма нужно использовать программу ''[[#nextboot|NEXBOOT.COM]]'' {{anchor:nextboot}} NEXBOOT |. [ [... ]] где: * '''' — значения клавиш: * цифры 1–5 * C это CTRL * S это SHIFT * '''' — номера слотов ядер Nextor, которые необходимо отключить Примеры: * Инверсия клавиши CTRL и 1: NEXBOOT 1C * Инверсия клавиши SHIFT и отключение ядра Nextor в слотах 1 и 2-3: NEXBOOT S 1 23 * Отключение ядра Nextor в слоте 2: NEXBOOT. 2 Запуск программы вызывает перезапуск компьютера. ====== Режимы работы ====== ===== MSX-DOS 1 ===== Этом режиме используется ядро оригинальной [[msx:dos:|]] версии 1.03. ===== MSX-DOS 2 ===== Этом режиме используется ядро оригинальной [[msx:dos2:|]] версии 2.31. ====== MSX BASIC ====== В [[msx:basic:|]] используются [[msx:nextor:disk_basic#|расширения Disk BASIC]] Для выхода из Nextor в [[msx:basic:|]] используйте команду: BASIC Возврата в Nextor: CALL SYSTEM или _SYSTEM {{anchor:mapdrv}} ====== Монтирование ====== Описание аналога команды в [[msx:nextor:disk_basic#call_mapdrv|расширениях Disk BASIC]] ===== Монтирование раздела устройства ===== Программа для монтирования раздела устройства. MAPDRV [/L] : |d|u [-[] [[-]]] где: * ''/L'' — необязательный параметр, он блокирует диск, рекомендуется для съёмных устройств * '''' — буква диска (после буквы двоеточие) * '''' — номер раздела * ''-[]'' — номер устройства * ''[-]'' — номер слота Пример: MAPDRV C: 2 1 2-1 |<25%>| |буква диска|C| |раздел|2| |устройство|1| |слот|2-1| ===== Монтирование образа диска ===== MAPDRV [/ro] где: - '''' — буква диска (после буквы двоеточие) - '''' — путь и имя файла с образом диска - ''[/ro]'' — режим «только чтение» {{anchor:drivers}} ====== Доступные драйверы ====== Команда ''DRIVERS.COM'' отображает информацию о доступных драйверах [[msx:dos:|]] и Nextor. Отображается имя и версия (только для драйверов Nextor), номер слота и смонтированные диски. Драйверы [[msx:dos:|]] будут определены как «Legacy driver» («устаревшие драйверы»). Описание аналога команды в [[msx:nextor:disk_basic#call_drivers|расширениях Disk BASIC]] {{anchor:drvinfo}} ====== Доступные диски ====== DEVINFO [-] где: * '''' — номер слота * ''[-]'' — номер расширенного слота Команда ''DRVINFO.COM'' отображает информацию обо всех доступных буквах дисков (которые не отображаются). Отображаемая информация включает в себя соответствующий слот драйвера и другую информацию, которая зависит от соответствующего типа драйвера (имя и версия драйвера для драйверов Nextor; номера устройств и логических блоков для драйверов на основе устройств Nextor; относительный блок для [[msx:dos:|]] и дисков на основе Nextor драйверы). Драйверы [[msx:dos:|]] будут определены как «Legacy driver» («устаревшие драйверы»). Описание аналога команды в [[msx:nextor:disk_basic#call_drvinfo|расширениях Disk BASIC]] {{anchor:lock}} ====== Блокировка ====== LOCK [: [ON|OFF]] где: * '':'' — буква диска от A до H (после буквы двоеточие) * ''[ON|OFF]'' — заблокировать/разблокировать Команда ''LOCK.COM'' позволяет заблокировать/разблокировать устройство. Описание аналога команды в [[msx:nextor:disk_basic#call_lockdrv|расширениях Disk BASIC]] {{anchor:ralloc}} ====== Информации о свободного месте на устройстве в 16-битном режиме ====== FIXME Программа устанавливает для устройства режим, при котором информации о свободного месте выдаётся в 16-битном режиме. RALLOC [: ON|OFF] где: * '':'' — буква диска от A до H (после буквы двоеточие) * ''ON|OFF'' — включить/отключить Если параметры не указаны, отобразится список накопителей, которые в данный момент находятся в режиме информации с уменьшенным распределением. Для устройства в таком режиме функция ALLOC (которая возвращает информацию об общем и свободном пространстве, доступном на устройстве) при необходимости возвращает «поддельную» информацию, так что вычисленное общее количество или число свободных секторов всегда будет соответствовать 16 битам. Другими словами, на дисках с активным режимом информации с уменьшенным распределением, когда общее или свободное пространство превышает 32 Мбайт (для томов с FAT16), ALLOC возвращает 32 Мбайт. Есть переменная окружения ZALLOC: SET ZALLOC=ON , которая задаёт такой режим для всех разделов для функции ALLOC. Это полезно для разделов большого размера или на очень медленных устройствах. Nextor никогда не меняет этот режим автоматически. {{anchor:z80mode}} ====== Режим Z80 ====== **Только для MSX Turbo-R.** Программа ''Z80MODE.COM'', позволяет включить/отключить режим Z80 для драйвера [[msx:dos:|]]. Синтаксис: Z80MODE [-] [ON|OFF] где: * '''' — номер слота * ''[-]'' — номер расширенного слота * ''ON|OFF'' — включить/отключить Если указан только слот, будет показано текущее состояние режима Z80 для драйвера. Режим доступа Z80 устанавливается или отключается для каждого драйвера (его невозможно изменить для конкретных букв дисков). Режим доступа Z80 может быть установлен или не установлен только для драйверов MSX-DOS (Nextor никогда не переключит текущий режим при доступе к драйверу Nextor). Когда установлено, Nextor переключит текущий ЦП на Z80 перед выполнением любой операции с драйвером. Если не установлено, Nextor не будет изменять текущий ЦП при доступе к драйверу. Необходимость установки режима доступа Z80 для данного драйвера [[msx:dos:|]] зависит от каждого драйвера; если сомневаетесь, посмотрите документацию на драйвер или спросите разработчика, если это вообще возможно. Дисководам гибких дисков, вероятно, понадобится режим доступа Z80. Во время загрузки Nextor включает режим Z80 для всех драйверов [[msx:dos:|]]. Кроме того, Nextor никогда не меняет этот режим автоматически. {{anchor:fastout}} ====== Режим быстрого STROUT ====== Программа ''FASTOUT.COM'' позволяет включить/отключить режим «быстрого» STROUT. Синтаксис: FASTOUT [ON|OFF] При вызове без параметров будет отображаться текущее состояние режима ''FASTOUT''. Функция [[msx:dos:|]] STROUT печатает строку, оканчивающуюся символом "$". На самом деле эта функция выполняет один отдельный вызов функции CONOUT (которая печатает один единственный символ) для каждого символа строки. Когда включён режим «быстрого» STROUT, строка будет скопирована в 512-байтовый буфер на странице 3, а затем будет напечатана за один вызов кода ядра, что увеличивает скорость процесса печати. Недостатком является то, что длина строки ограничена 511 байтами, когда этот режим активен; более длинные строки будут обрезаны (будут отображаться только первые 511 символов). {{anchor:delall}} ====== Быстрое форматирование раздела ====== Программа ''DELALL.COM'' выполняет быстрое форматирование файловой системы, видимой для данной буквы диска. Синтаксис: DELALL : где: * : — буква диска от A до H (после буквы двоеточие) Эта программа выполняет очистку областей FAT, тем самым эффективно удаляя всю информацию в файловой системе. Эту операцию операцию нельзя отменить — файлы будут навсегда утеряны, поэтому, пожалуйста, используйте её осторожно. Этот инструмент можно использовать на любом диске, даже если он подключён к драйверам [[msx:dos:|]]. Обратите внимание, что программа работает только с файловыми системами FAT12 или FAT16. {{anchor:nsysver}} ====== Изменение номера версии NEXTOR.SYS ====== Известно, что некоторые программы, написанные для [[msx:dos:|]] проверяют номер версии ''MSXDOS2.SYS'' (''NEXTOR.SYS'' в случае Nextor) и отказываются работать, если это число меньше сопредельного значения, обычно 2.20. Это проблема, поскольку текущий номер версии ''NEXTOR.SYS'' равен 2.1. В качестве обходного пути для этой проблемы, начиная с версии 2.0 бета 2, номер версии ''NEXTOR.SYS'', возвращаемый вызовом функции DOSVER, сохраняется в ОЗУ и может быть легко изменён. Также для этого создана программа ''NSYSVER.COM'', её синтаксис следующий: NSYSVER . * — основной номер версии * — дополнительный номер версии Например: NSYSVER 2.20 Обратите внимание, что это изменит только значение номера версии ''NEXTOR.SYS'', возвращаемого вызовом функции DOSVER; команда ''VER'' по–прежнему будет отображать реальный номер версии файла. Примечание: изменение номера версии, выполненное этим инструментом, является временным, и оно перестанет действовать (т.е. Номер версии ''NEXTOR.SYS'' вернётся к своему реальному значению) при перезагрузке ''NEXTOR.SYS'', либо потому, что введено приглашение BASIC. и завершился через ''CALL SYSTEM'' или потому, что компьютер был перезагружен. Не используйте этот инструмент с версиями ''NEXTOR.SYS'' старее чем 2.0 beta 2. {{anchor:disk_emulation}} ====== Эмуляция диска ====== FIXME Программа ''EMUFILE.COM'' позволяет создавать файлы данных для эмуляции диска и включать режим эмуляции диска. Синтаксис для создания файла данных: emufile [] [ …] где: * ''[]'' * ''-b <число>'' позволяет указать номер файла образа диска, который будет использоваться для загрузки при запуске эмуляции, по умолчанию 1. * ''-a <адрес>'' позволяет вам указать адрес страницы 3, который Nextor будет использовать в качестве рабочей области (около 16 байт) во время эмуляции, должен быть шестнадцатеричным числом на странице 3 (C000 или выше). Если не указан, эта область будет выделена Nextor перед началом эмуляции. * ''-p'' напечатает все имена файлов и связанные ключи после создания файла данных. Тем не менее, обратите внимание, что вы можете увидеть эту же информацию позже, если вы вызовете ''TYPE /B имя файла данных эмуляции''. * '''' — это имя файла данных эмуляции, который будет создан (расширение по умолчанию - .EMU) * '''' — файлы образа диска, которые будут использоваться для эмуляции (они могут содержать символы подстановки). Номера (для смены диска) присваиваются файлам образа диска в том порядке, в котором они указаны; при использовании подстановочных знаков в том порядке, в котором они находятся на запоминающем устройстве, которое их содержит (в том же порядке, который вы видите при запуске команды DIR). Синтаксис для запуска эмуляции диска выглядит следующим образом: emufile set [o|p[[]]] * ''o'' — включить эмуляцию, однократно (по умолчанию), * ''p'' — включить эмуляцию, в постоянном варианте. В этом случае по умолчанию указатель данных файла эмуляции будет записан на устройство, где хранится '''', но вы можете указать другой '''', а также, необязательные параметр '''' (по умолчанию равен 1). Обратите внимание, что в любом случае компьютер перезагрузится сразу после того, как ''EMUFILE.COM'' запишет указатель файла данных эмуляции в соответствующее место. ---- [[https://github.com/Konamiman/Nextor/blob/v2.1/docs/Nextor%202.1%20User%20Manual.md#39-disk-emulation-mode|3.9. Disk emulation mode]] {{anchor:hardware}} ====== Поддерживаемое оборудование ====== ===== Sunrise IDE ===== [[msx:sunrise-ide_maxiol:sunrise-ide_maxiol|]] [[https://www.konamiman.com/msx/msx-e.html#ide|Sunrise IDE tools]] ===== Carnivore2 ===== [[msx:carnivore2:carnivore2|]] ====== Дополнительные программы ====== ===== DI ===== Аналог команды ''DIR'', которая показывает "длинное" имя файлов на разделах FAT12 и FAT16. {{di.zip|}} Синтаксис: DI [диск:] [путь][имя файла] [/параметр] Параметры: * ''/?'' показать эту справку * ''/H'' показать скрытые файлы * ''/S'' показать системные файлы * ''/F'' не показывать папки * ''/P'' не делать останов поле вывода страницы списка файлов ---- [[github>bladeba/MSX/tree/master/Programs/DI|DI]], [[github>bladeba/MSX/tree/master/SRC|исходный код]] https://msxhub.com/DI {{anchor:special_versions}} ====== Особые версии ====== Версия драйвера Sunrise IDE без поддержки Slave: * {{nextor-2.1.1-beta1.sunriseide-w_o_slave.rom|}} * {{nextor-2.1.1-beta1.sunriseide-w_o_slave.diff|}} * {{:msx:nextor:nextor-2.1.1-beta1.sunriseide-carnivore2.rom|}} * {{:msx:nextor:nextor-2.1.1-beta1.sunriseide-carnivore2.diff|}} /* Автор изменений: **Pencioner [RBSC]** */ {{:msx:nextor:nextor-2.1.1-b1_b2_carnivore2.tar.gz|Файлы для Nextor-2.1.1 beta 1, 2}} ====== Ссылки ====== [[https://msxhub.com/static/hub/img/logos/NEXTOR-Logo.svg|Логотип Nextor]] **[[msxorg>/forum/msx-talk/general-discussion/my-meeting-with-kazuhiko-nishi-the-whole-story?page=0|My meeting with Kazuhiko Nishi: the whole story]]** [[msxorg>ru/news/development/ru/nextor-стал-проектом-с-открытым-исходным-кодом|Nextor стал проектом с открытым исходным кодом]] {{tag>OS MSX on_github}}