Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
msx:nextor:disk_basic [2020-04-15 15:25] GreyWolf [Программа разметки блочном устройств (дисков)] |
msx:nextor:disk_basic [2020-04-15 15:45] GreyWolf [Работа с секторами диска] |
||
---|---|---|---|
Строка 17: | Строка 17: | ||
===== Свободное место на диске ===== | ===== Свободное место на диске ===== | ||
- | Оригинальная функция [[msx:basic_programming_guide:09#dskf|DSKF()]], указывающая свободное место на диске, возвращает число свободных кластеров в [[msx:dos|]]. В [[msx:nextor:nextor|Nextor]] поведение этой команды было изменено: теперь возвращает количество свободных Кб. | + | Оригинальная функция ''[[msx:basic_programming_guide:09#dskf|DSKF()]]'', указывающая свободное место на диске, возвращает число свободных кластеров в [[msx:dos|]]. В [[msx:nextor:nextor|Nextor]] поведение этой команды было изменено: теперь возвращает количество свободных Кб. |
Это эти изменения кардинально отличают её поведение от [[msx:dos|]]. Однако большинство существующих программ, использующих эту команду, на самом деле не рассчитывают количество свободного пространства в Кб, вместо этого отображается необработанный счётчик кластеров для пользователя. Кроме того, в течение многих лет наиболее популярным носителем данных для компьютеров MSX была дискета 2DD, размер кластера которой составлял 1 КБ, поэтому многие пользователи ошибочно полагали, что команда ''DSKF'' все равно возвращает значение в Кб. | Это эти изменения кардинально отличают её поведение от [[msx:dos|]]. Однако большинство существующих программ, использующих эту команду, на самом деле не рассчитывают количество свободного пространства в Кб, вместо этого отображается необработанный счётчик кластеров для пользователя. Кроме того, в течение многих лет наиболее популярным носителем данных для компьютеров MSX была дискета 2DD, размер кластера которой составлял 1 КБ, поэтому многие пользователи ошибочно полагали, что команда ''DSKF'' все равно возвращает значение в Кб. | ||
Строка 26: | Строка 26: | ||
===== Работа с секторами диска ===== | ===== Работа с секторами диска ===== | ||
- | Оригинальные функция [[msx:basic_programming_guide:09#09#dski|DSKI$()]] и команда [[msx:basic_programming_guide:09#09#dsko|DSKO$]], которые позволяют считывать и записывать один сектор диска соответственно, теперь принимают 32–битные номера секторов, что позволяет получить доступ к любому сектору диска, а не только к первым 65536 секторам. | + | Оригинальные функция ''[[msx:basic_programming_guide:09#09#dski|DSKI$()]]'' и команда ''[[msx:basic_programming_guide:09#09#dsko|DSKO$]]'', которые позволяют считывать и записывать один сектор диска соответственно, теперь принимают 32–битные номера секторов, что позволяет получить доступ к любому сектору диска, а не только к первым 65536 секторам. |
Чтобы получить доступ к секторам с номерами свыше 32767, номер сектора должен быть указан как константа одинарной или двойной точности, выражение или переменная. Если указано значение с одинарной точностью, а число настолько велико, что одна или несколько младших цифр номера теряются из–за округления, эти команды завершатся с ошибкой «Overflow»(переполнение). Это разработано таким образом, чтобы предотвратить случайный доступ к неправильному сектору. | Чтобы получить доступ к секторам с номерами свыше 32767, номер сектора должен быть указан как константа одинарной или двойной точности, выражение или переменная. Если указано значение с одинарной точностью, а число настолько велико, что одна или несколько младших цифр номера теряются из–за округления, эти команды завершатся с ошибкой «Overflow»(переполнение). Это разработано таким образом, чтобы предотвратить случайный доступ к неправильному сектору. |