Оригинальная функция DSKF()
, указывающая свободное место на диске, возвращает число свободных кластеров в MSX-DOS. В Nextor поведение этой команды было изменено: теперь возвращает количество свободных Кбайт.
Это эти изменения кардинально отличают её поведение от MSX-DOS. Однако большинство существующих программ, использующих эту команду, на самом деле не рассчитывают количество свободного пространства в Кбайтах, вместо этого отображается необработанный счётчик кластеров для пользователя. Кроме того, в течение многих лет наиболее популярным носителем данных для компьютеров MSX была дискета 2DD, размер кластера которой составлял 1 Кбайт, поэтому многие пользователи ошибочно полагали, что команда DSKF
все равно возвращает значение в Кбайт.
Но эти изменения не применяется к режиму MSX-DOS, в этом режиме счётчик свободных кластеров по–прежнему возвращается как счётчик кластеров.
Оригинальные функция DSKI$()
и команда DSKO$
, которые позволяют считывать и записывать один сектор диска соответственно, теперь принимают 32–битные номера секторов, что позволяет получить доступ к любому сектору диска, а не только к первым 65536 секторам.
Чтобы получить доступ к секторам с номерами свыше 32767, номер сектора должен быть указан как константа одинарной или двойной точности, выражение или переменная. Если указано значение с одинарной точностью, а число настолько велико, что одна или несколько младших цифр номера теряются из–за округления, эти команды завершатся с ошибкой «Overflow»(переполнение). Это разработано таким образом, чтобы предотвратить случайный доступ к неправильному сектору.
CALL CHDRV
Эта команда изменяет текущий диск, и он уже существует.
Диск может быть указана в виде:
Например,
_CHDRV (3)
то же самое, что
_CHDRV ("C:")
CALL NEXTOR
Эта команда просто вывод на экран список новых команд для оператора CALL, которые Nextor предоставляет для среды MSX BASIC.
Список команд:
CALL DRIVERS
Эта команда эквивалентна программе DRIVERS.COM
, которая отображает информацию о доступных драйверах MSX-DOS и Nextor. Отображается имя и версия (только для драйверов Nextor), номер слота и смонтированные диски. Драйверы MSX-DOS будут определены как «Legacy driver» («устаревшие драйверы»).
CALL DRVINFO
Эта команда эквивалентна программе DRVINFO.COM
, которая отображает информацию обо всех доступных буквах дисков (которые не отображаются). Отображаемая информация включает в себя соответствующий слот драйвера и другую информацию, которая зависит от соответствующего типа драйвера (имя и версия драйвера для драйверов Nextor; номера устройств и логических блоков для драйверов на основе устройств Nextor; относительный блок для MSX-DOS и дисков на основе Nextor драйверы). Драйверы MSX-DOS будут определены как «Legacy driver» («устаревшие драйверы»).
Эта команда позволяет заблокировать/разблокировать устройство аналогично команде LOCK.COM
Текущее состояние блокировки:
CALL LOCKDRV(<drive>)
Разблокировать:
CALL LOCKDRV(<drive>, 0)
Заблокировать:
CALL LOCKDRV(<drive>, <любое число ≠ 0>)
<drive>
— буква диска может быть указана в виде:
Например,
_LOCKDRV (3)
то же самое, что
_LOCKDRV ("C:")
CALL MAPDRV(<drive>, <partition>, <device>, <slot>|0)
где:
<drive>
— диск может быть указана в виде:<partition>
— номер раздела в диапазоне 0–255, интерпретируется следующим образом:<device>
индекс устройства в диапазоне 1–7. Если устройство имеет несколько логических частей, используйте формулу <device>+16*<logical unit>
(0 также принимается и интерпретируется как 1)
<slot>
если номер слота находится в диапазоне 0–3. Если слот расширен, нужно использовать формулу: <main slot>+4*<subslot>
Пример:
CALL MAPDRV("C:", 2, 1, 6)
Команда CALL MAPDRVL
идентична команде CALL MAPDRV, за исключением того, что она выполнит блокировку диска.
В Nextor есть аналогичная команда: LOCK
.
Обратите внимание, что эта команда недоступна в режиме MSX-DOS, в котором отсутствует понятие «блокировка диска».
CALL MAPDRV(<drive>, <file> [,0|1])
где:
<drive>
— диск может быть указана в виде:<file>
— путь и имя файла с образом диска
Команда CALL USR
позволяет выполнять код на ассемблере из программы на MSX BASIC. Он эквивалентен стандартной команде DEF USR
и функции USR
, но с дополнительной функцией: он позволяет указывать входные значения регистров Z80 для кода, который нужно выполнить, и считывать выходные значения после выполнения.
Синтаксис команды CALL USR
выглядит следующим образом:
CALL USR(<code address> [,<registers address>])
где:
<code address>
— адрес кода ассемблера, который будет выполнен. _USR (-1)
ничего не сделает, но не выдаст ошибку. Вы можете использовать эту функцию вместе с командой ON ERROR GOTO
, чтобы обнаружить присутствие Nextor в программе на MSX BASIC.[,<registers address>]
— адрес 12–байтового буфера для значений регистров Z80. Если этот параметр указан, регистры будут загружены с содержимым этой области перед вызовом кода; после выполнения кода выполняется обратный процесс: буфер обновляется значениями, хранящимися в регистрах. Порядок регистров в буфере: F, A, C, B, E, D, L, H, IXl, IXh, IYl, IYh.CALL MAPDRV
в любом из следующих событий:CALL MAPDRV
в любом из следующих событий:CALL MAPDRV
, если указанный раздел не существует на указанном или неявном устройстве.CALL MAPDRV
, если вы попытаетесь сопоставить комбинацию раздела, устройства и драйвера, которые уже сопоставлены на другом диске. Однако вы можете снова сопоставить ту же комбинацию с тем же диском.CALL MAPDRV
при попытке смонтировать файл размером менее 512 байт или более 32 Мбайт.