Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:maestro:maestro [2022-03-29 11:36] GreyWolf [lf4init()] |
msx:maestro:maestro [2024-03-07 11:13] (текущий) GreyWolf |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
С помощью ПС «Маэстро» автор создал [[msx:maestro:pac:|]] и [[msx:ar_games:ar_games|эти игры]]. | С помощью ПС «Маэстро» автор создал [[msx:maestro:pac:|]] и [[msx:ar_games:ar_games|эти игры]]. | ||
+ | /* | ||
Страница на официальном сайте автора: [[http://rodionov.info/software.shtml#MAESTRO_Intro|Программное средство «МАЭСТРО» — аннотация]] | Страница на официальном сайте автора: [[http://rodionov.info/software.shtml#MAESTRO_Intro|Программное средство «МАЭСТРО» — аннотация]] | ||
+ | |||
[[http://forum.rodionov.info:8080/forums/msx.36/|Форум на сайте автора]] | [[http://forum.rodionov.info:8080/forums/msx.36/|Форум на сайте автора]] | ||
+ | */ | ||
Основные главы: | Основные главы: | ||
Строка 23: | Строка 26: | ||
~~TOC_HERE~~ | ~~TOC_HERE~~ | ||
~~TOC 1-3 wide~~ | ~~TOC 1-3 wide~~ | ||
+ | |||
{{anchor:grplib}} | {{anchor:grplib}} | ||
Строка 28: | Строка 32: | ||
FIXME | FIXME | ||
- | Графическая Библиотека MSX для BDS C версия 3.02 | + | {{anchor:grplib_disk}} |
- | \\ MSX Graphic Library for BDS C v3.02 | + | Графическая Библиотека MSX для BDS C версия 3.05 |
+ | \\ MSX Graphic Library for BDS C v3.05 | ||
+ | |||
+ | {{:msx:maestro:devdisk_-_msx_graphic_lib_3.05.dsk|Образ диска с версией 3.05}} | ||
(C) МЭВЦ 1988 | (C) МЭВЦ 1988 | ||
Строка 104: | Строка 111: | ||
В частности, раздел библиотеки [[#GRPLIB2]] содержит функции ТОЛЬКО для [[msx:msx_2|MSX2]] и НЕ ДОЛЖЕН использоваться при написании программ для [[msx:msx_1|MSX1]], а раздел [[#GRPLIB5]] и заголовок ''GRPMSX1.H'' ДОЛЖНЫ быть подключены к программе, если она рассчитана на компьютер MSX с 16 кбайт видеопамяти и без [[msx:bios#subrom|SubROM]] (дополнительного 16-кбайтного расширения ПЗУ, обеспечивающего большинство функций [[msx:msx_2|MSX2]] со 128 кбайт видеопамяти и энергонезависимой памятью для календаря, часов, пароля и т.п.). | В частности, раздел библиотеки [[#GRPLIB2]] содержит функции ТОЛЬКО для [[msx:msx_2|MSX2]] и НЕ ДОЛЖЕН использоваться при написании программ для [[msx:msx_1|MSX1]], а раздел [[#GRPLIB5]] и заголовок ''GRPMSX1.H'' ДОЛЖНЫ быть подключены к программе, если она рассчитана на компьютер MSX с 16 кбайт видеопамяти и без [[msx:bios#subrom|SubROM]] (дополнительного 16-кбайтного расширения ПЗУ, обеспечивающего большинство функций [[msx:msx_2|MSX2]] со 128 кбайт видеопамяти и энергонезависимой памятью для календаря, часов, пароля и т.п.). | ||
- | Абсолютно необходимым условием успешного применения функций библиотеки является знание программистом архитектуры и особенностей компьютеров [[msx:msx_1|MSX1]] и [[msx:msx_2|MSX2]], операционной системы [[msx:dos|]] и основных принципов работы со знакоместной и битмэп-графикой. Кроме этого, совершенно необходимо знание языка Си и особенностей его конкретной реализации в системе [[bds_c:bds_c|]] (смотри {{:bds_c:bds_c_v1.50a_users_guide_addenda_jul83.pdf|C Compiler v1.5 Users Guide, Copyright (c) 1982 by Leor Zolman BD Software}}). | + | Абсолютно необходимым условием успешного применения функций библиотеки является знание программистом архитектуры и особенностей компьютеров [[msx:msx_1|MSX1]] и [[msx:msx_2|MSX2]], операционной системы [[msx:dos:|]] и основных принципов работы со знакоместной и битмэп-графикой. Кроме этого, совершенно необходимо знание языка Си и особенностей его конкретной реализации в системе [[bds_c:|]] (смотри {{:bds_c:bds_c_v1.50a_users_guide_addenda_jul83.pdf|C Compiler v1.5 Users Guide, Copyright (c) 1982 by Leor Zolman BD Software}}). |
Для нормальной работы большинства функций Библиотеки требуется выделение и инициализация специальной системной рабочей области памяти. Эта рабочая область выделяется автоматически при ОБЯЗАТЕЛЬНОМ включении в создаваемую программу одного из двух | Для нормальной работы большинства функций Библиотеки требуется выделение и инициализация специальной системной рабочей области памяти. Эта рабочая область выделяется автоматически при ОБЯЗАТЕЛЬНОМ включении в создаваемую программу одного из двух | ||
Строка 176: | Строка 183: | ||
</code> | </code> | ||
Примечания: | Примечания: | ||
- | * точка «.» может быть использована в [[msx:dos|]] вместо ''REM''; | + | * точка «.» может быть использована в [[msx:dos:|]] вместо ''REM''; |
* если в файле ''GRO.CRL'' (результат работы компилятора [[bds_c:bds_c|]]) появляются функции с именами, такими же как и в файлах Библиотеки ''GRPLIB4.CRL'' … ''GRPLIB1.CRL'' — они заменяют соответствующие функции Библиотеки, так как находятся в командной строке ''clink'' ДО переключателя ''-f'' (см. [[bds_c:bds_c|]] ''clink'') (этот приём используется для подключения функций пользователя вместо стандартных системных заглушек, находящихся в библиотеке (''[[#process1() … process9()]]'', ''[[#tickexit()]]'' — ), а также для исключения нежелательных библиотечных функций, которые подключаются автоматически (путём написания заглушек пользователем)); | * если в файле ''GRO.CRL'' (результат работы компилятора [[bds_c:bds_c|]]) появляются функции с именами, такими же как и в файлах Библиотеки ''GRPLIB4.CRL'' … ''GRPLIB1.CRL'' — они заменяют соответствующие функции Библиотеки, так как находятся в командной строке ''clink'' ДО переключателя ''-f'' (см. [[bds_c:bds_c|]] ''clink'') (этот приём используется для подключения функций пользователя вместо стандартных системных заглушек, находящихся в библиотеке (''[[#process1() … process9()]]'', ''[[#tickexit()]]'' — ), а также для исключения нежелательных библиотечных функций, которые подключаются автоматически (путём написания заглушек пользователем)); | ||
* порядок следования библиотечных файлов по убыванию их номеров <code>… -f grplib5 grplib4 grplib3 grplib2 grplib1 grpliba …</code> является существенным для ''clink'', так как в противном случае ''clink'' не найдёт функции, на которые появятся отсылки «назад» (см. [[bds_c:bds_c|]] ''clink''). | * порядок следования библиотечных файлов по убыванию их номеров <code>… -f grplib5 grplib4 grplib3 grplib2 grplib1 grpliba …</code> является существенным для ''clink'', так как в противном случае ''clink'' не найдёт функции, на которые появятся отсылки «назад» (см. [[bds_c:bds_c|]] ''clink''). | ||
Строка 206: | Строка 213: | ||
char mode, *msg1, *msg2; | char mode, *msg1, *msg2; | ||
</code> | </code> | ||
- | Аварийный выход из программы в [[msx:dos|]] с установкой (без установки) ''Screen 0'' и выдачей сообщения (сообщений). | + | Аварийный выход из программы в [[msx:dos:|]] с установкой (без установки) ''Screen 0'' и выдачей сообщения (сообщений). |
Значения ''mode'' | Значения ''mode'' | ||
Строка 402: | Строка 409: | ||
char mode; | char mode; | ||
</code> | </code> | ||
- | Отладочная функция, которая обычно стандартно подключается к каждой программе и вызывается диспетчером параллельных процессов с параметром 0 (''showpage(0)''). В этом режиме функция проверяет нажатие клавиш <key>STOP</key> и <key>SELECT</key> и, если они нажаты, захватывает управление. После этого, нажатие функциональных клавиш <key>F1</key>...<key>F4</key> даёт возможность визуально проверить состояние всех страниц VRAM с плавным просмотром каждой страницы при помощи клавиш курсора, <key>F5</key> возвращает управление в прерванную программу, <key>STOP</key> и <key>F5</key> — возвращает управление [[msx:dos|]] с выдачей статистики использования процессов и состояний почтовых ящиков. | + | Отладочная функция, которая обычно стандартно подключается к каждой программе и вызывается диспетчером параллельных процессов с параметром 0 (''showpage(0)''). В этом режиме функция проверяет нажатие клавиш <key>STOP</key> и <key>SELECT</key> и, если они нажаты, захватывает управление. После этого, нажатие функциональных клавиш <key>F1</key>...<key>F4</key> даёт возможность визуально проверить состояние всех страниц VRAM с плавным просмотром каждой страницы при помощи клавиш курсора, <key>F5</key> возвращает управление в прерванную программу, <key>STOP</key> и <key>F5</key> — возвращает управление [[msx:dos:|]] с выдачей статистики использования процессов и состояний почтовых ящиков. |
ВНИМАНИЕ! Для сокращения объёма уже отлаженной программы можно исключить эту функцию на этапе компоновки, написав в тексте вашей программы заглушку с тем же именем: | ВНИМАНИЕ! Для сокращения объёма уже отлаженной программы можно исключить эту функцию на этапе компоновки, написав в тексте вашей программы заглушку с тем же именем: | ||
Строка 1496: | Строка 1503: | ||
''diskdir()'' возвращает количество точек входа, помещённых в ''buf1700'', и релевантных ''dirmask'' | ''diskdir()'' возвращает количество точек входа, помещённых в ''buf1700'', и релевантных ''dirmask'' | ||
- | ''dirmask'' является символической строкой (оканчивающейся двоичным нулём) в стандартной нотации [[msx:dos|]]: | + | ''dirmask'' является символической строкой (оканчивающейся двоичным нулём) в стандартной нотации [[msx:dos:|]]: |
<code> | <code> | ||
[drive:]filename[.suffix]\0 | [drive:]filename[.suffix]\0 | ||
Строка 1657: | Строка 1664: | ||
char count; | char count; | ||
</code> | </code> | ||
- | Вывести на принтер ''count'' байт начиная с адреса ''adr'' непосредственно через [[msx:dos|]] (не используя ''lprintf()'' [[bds_c:bds_c|]]). Эту функцию, в том числе, удобно использовать для посылки кодов управления принтером. | + | Вывести на принтер ''count'' байт начиная с адреса ''adr'' непосредственно через [[msx:dos:|]] (не используя ''lprintf()'' [[bds_c:bds_c|]]). Эту функцию, в том числе, удобно использовать для посылки кодов управления принтером. |
=== lprint2() === | === lprint2() === | ||
Строка 1694: | Строка 1701: | ||
Функция ''alloc()'' [[bds_c:bds_c|]] (в отличие от ''sbrk()'') не может выделять память блоками более 32 кбайт — это связано с тем, что одна из переменных в ''alloc()'' описана как int вместо unsigned. | Функция ''alloc()'' [[bds_c:bds_c|]] (в отличие от ''sbrk()'') не может выделять память блоками более 32 кбайт — это связано с тем, что одна из переменных в ''alloc()'' описана как int вместо unsigned. | ||
- | Это ЕДИНСТВЕННАЯ ошибка(?), которую автор Библиотеки обнаружил в [[bds_c:bds_c|]] v1.50a за более чем три года интенсивной эксплуатации этой системы. Здесь же отметим, что ошибочная ситуация со стеком при автоматическом вызове ''cc2.com'' из ''cc.com'' порождена отличием [[msx:dos#v1x|MSX-DOS]] 1.03 от [[msx:cp_m:cp_m|CP/M]], а не ошибкой [[bds_c:bds_c|]]. | + | Это ЕДИНСТВЕННАЯ ошибка(?), которую автор Библиотеки обнаружил в [[bds_c:bds_c|]] v1.50a за более чем три года интенсивной эксплуатации этой системы. Здесь же отметим, что ошибочная ситуация со стеком при автоматическом вызове ''cc2.com'' из ''cc.com'' порождена отличием [[msx:dos:|]] 1.03 от [[msx:cp_m:|]], а не ошибкой [[bds_c:|]]. |
Это отличие компенсировано автором Библиотеки небольшим изменением кода ''cc.com'' (вместе с добавлением обнуления счётчиков времени для утилиты [[#DURATION.COM]]). Изменённую версию ''cc.com'' можно идентифицировать по номеру версии, выводимому на экран во время выполнения ''cc.com'' (v1.50aR вместо v1.50a). | Это отличие компенсировано автором Библиотеки небольшим изменением кода ''cc.com'' (вместе с добавлением обнуления счётчиков времени для утилиты [[#DURATION.COM]]). Изменённую версию ''cc.com'' можно идентифицировать по номеру версии, выводимому на экран во время выполнения ''cc.com'' (v1.50aR вместо v1.50a). | ||
Строка 2240: | Строка 2247: | ||
/* macro */ | /* macro */ | ||
</code> | </code> | ||
- | FIXME Выход в [[msx:dos|]] с восстановлением Screen 0 и параметров цвета экрана из энергонезависимой памяти MSX2 или GRPMSX1.H MSX1 | + | FIXME Выход в [[msx:dos:|]] с восстановлением Screen 0 и параметров цвета экрана из энергонезависимой памяти MSX2 или GRPMSX1.H MSX1 |
=== PAUSE() === | === PAUSE() === | ||
Строка 2448: | Строка 2455: | ||
Ставит музыкальный фрагмент с адресом ''qad'' в музыкальную очередь. | Ставит музыкальный фрагмент с адресом ''qad'' в музыкальную очередь. | ||
- | Eсли cycle=0, элемент играется один раз; в противном случае ''[[mutick()]]'', встретив байт 0xFF, не переписывает его в системную очередь, а начинает с места данной входной очереди, указанного в ''Vptr''. | + | Eсли cycle=0, элемент играется один раз; в противном случае ''[[#mutick()]]'', встретив байт 0xFF, не переписывает его в системную очередь, а начинает с места данной входной очереди, указанного в ''Vptr''. |
Если в нотной строке не было операторов ':', указатель содержит 0; если встретилось несколько операторов ':', указатель соответствует последнему из них. | Если в нотной строке не было операторов ':', указатель содержит 0; если встретилось несколько операторов ':', указатель соответствует последнему из них. | ||
Строка 2454: | Строка 2461: | ||
Вызывает ''[[#lf4init()]]'', включает шум. | Вызывает ''[[#lf4init()]]'', включает шум. | ||
+ | /* | ||
<code c> | <code c> | ||
play(cycle,qad) | play(cycle,qad) | ||
Строка 2460: | Строка 2468: | ||
</code> | </code> | ||
То же, что play(), исключая вызов ''[[#lfo4init()]]'' | То же, что play(), исключая вызов ''[[#lfo4init()]]'' | ||
+ | */ | ||
=== mutick() === | === mutick() === | ||
<code с> | <code с> | ||
Строка 2599: | Строка 2607: | ||
notick() | notick() | ||
</code> | </code> | ||
- | - вызывается в ''[[#tickexit()]]''; осуществляет модуляцию шума (linear noise oscillation, LNO): если установлен глобальный флаг _NMFL, "базовый" период шума, заданный в noisep(), модулируется через каждые NТ тиков случайным приращением в диапазоне (-NA,NA). | + | Вызывается в ''[[#tickexit()]]''; осуществляет модуляцию шума (linear noise oscillation, LNO): если установлен глобальный флаг _NMFL, "базовый" период шума, заданный в noisep(), модулируется через каждые NТ тиков случайным приращением в диапазоне (-NA,NA). |
Значения NT, NA и периода шума NP хранятся в глобальных переменных, определённых в ''GRPMUS.H''. Первоначально они устанавливаются в 0 функцией musini(). | Значения NT, NA и периода шума NP хранятся в глобальных переменных, определённых в ''GRPMUS.H''. Первоначально они устанавливаются в 0 функцией musini(). | ||
Строка 2611: | Строка 2619: | ||
===== Функции для поддержки 4-х цветов и мерцания в режиме TEXT2 для MSX2 ===== | ===== Функции для поддержки 4-х цветов и мерцания в режиме TEXT2 для MSX2 ===== | ||
- | <code> | ||
+ | |||
+ | === setblnk() === | ||
+ | <code c> | ||
setblnk(txt,bg,on,off) | setblnk(txt,bg,on,off) | ||
int txt,bg,on,off; | int txt,bg,on,off; | ||
- | - задает параметры мерцания (все четыре параметра должны | + | </code> |
- | быть в диапазоне 0-15). txt и bg задают альтернативную | + | Задаёт параметры мерцания (все четыре параметра должны быть в диапазоне 0-15). |
- | пару цветов текст/фон. Мерцающие символы поочередно | + | |
- | высвечиваются то основными, то альтернативными цветами. | + | ''txt'' и ''bg'' задают альтернативную пару цветов текст/фон. Мерцающие символы поочерёдно высвечиваются то основными, то альтернативными цветами. |
- | ( Позиции экрана, в которых должно происходить мерцание, | + | |
- | задаются установкой соответствующих битов в Color Table). | + | (Позиции экрана, в которых должно происходить мерцание, задаются установкой соответствующих битов в Color Table). |
- | Период мерцания задается величинами on - время высвечи- | + | |
- | вания альтернативным цветом и off - основным (*1/6 сек.). | + | Период мерцания задаётся величинами on - время высвечивания альтернативным цветом и off - основным (*1/6 сек.). |
- | Если оn и off равны 0, мерцания нет, все выводится в | + | |
- | основных цветах. Если on=15, а off=0, мерцания также | + | Если оn и off равны 0, мерцания нет, все выводится в основных цветах. Если on=15, а off=0, мерцания также нет, но позиции, помеченные в Color Table, выводятся альтернативными цветами, т.е. появляется возможность работать в режиме TEXT2 с четырьмя цветами. |
- | нет, но позиции, помеченные в Color Table, выводятся | + | |
- | альтернативными цветами, т.е. появляется возможность | + | |
- | работать в режиме TEXT2 с четырьмя цветами. | + | === rstblnk() === |
- | + | <code c> | |
rstblnk() | rstblnk() | ||
- | - устанавливает период мерцаний равным 0, т.е. выключает | + | </code> |
- | мерцание на всем экране, не изменяя Color Table. | + | Устанавливает период мерцаний равным 0, т.е. выключает мерцание на всем экране, не изменяя Color Table. |
+ | === clrblnk() === | ||
+ | <code c> | ||
clrblnk() | clrblnk() | ||
- | - обнуляет Color Table, т.е выключает мерцание для каждой | + | </code> |
- | позиции экрана. | + | Обнуляет Color Table, т.е выключает мерцание для каждой позиции экрана. |
+ | === blink() === | ||
+ | <code c> | ||
blink(x,y,len) | blink(x,y,len) | ||
int x,y,len; | int x,y,len; | ||
- | - включает мерцание для len позиций экрана, начиная с | + | </code> |
- | позиции с координатами (x,y). | + | Включает мерцание для ''len'' позиций экрана, начиная с позиции с координатами (''x,y''). |
+ | === xblink() === | ||
+ | <code c> | ||
xblink(x,y,len) | xblink(x,y,len) | ||
int x,y,len; | int x,y,len; | ||
- | - переключает мерцание для len позиций экрана, начиная с | + | </code> |
- | позиции с координатами (x,y) (т.е. включает для выключенных, | + | Переключает мерцание для ''len'' позиций экрана, начиная с позиции с координатами (''x,y'') (т.е. включает для выключенных, выключает для включённых). |
- | выключает для включенных). | + | |
+ | === dblink() === | ||
+ | <code c> | ||
dblink(x,y,len) | dblink(x,y,len) | ||
int x,y,len; | int x,y,len; | ||
- | - выключает мерцание для len позиций экрана, начиная с позиции с координатами (x,y). | + | </code> |
+ | Выключает мерцание для ''len'' позиций экрана, начиная с позиции с координатами (''x,y''). | ||
+ | |||
+ | ===== Ограничения ===== | ||
Ограничения, накладываемые звукогенератором и механизмом прерываний: | Ограничения, накладываемые звукогенератором и механизмом прерываний: | ||
- | 1. Длительность звучания ноты измеряется в тиках - 1/60 сек | + | - Длительность звучания ноты измеряется в тиках — 1/60 сек. (на некоторых машинах — 1/50). Она определяется по формуле: \\ d=14400/(t*l) (на 50–гц машинах — 12000), минимальная длительность равна двум тикам, максимальная - 4095. \\ Систематическая погрешность округления при нецелом частном может приводить к рассинхронизации голосов, которую приходится устранять вручную, вставляя дополнительные ноты и контролируя длительности голосов в поле "Ticks" на [[msx:maestro:med:med|экране музыкального редактора]]. |
- | ( на некоторых машинах - 1/50). Она определяется по формуле: | + | - В моменты обращения к диску системный обработчик прерываний получает управление с задержкой, что приводит к искажению длительностей нот, загруженных в это время в звукогенератор. |
- | d=14400/(t*l) (на 50-гц машинах - 12000), | + | - Если ''[[#tickexit()]]'' в программе пользователя слишком долго не получает управления (например, при неправильно организованном ожидании ввода с клавиатуры; при использовании отладочной функции ''[[#dump()]]'' с большим объёмом выдачи и т.п.), и успевают доиграть все |
- | минимальная длительность равна двум тикам, максимальная - 4095. | + | пакеты, поставленные mutick() в системную очередь, может произойти отключение или рассинхронизация голосов. Поэтому надо внимательно отслеживать возможные источники задержек, обязательно вставлять ''[[#totick()]]'' в продолжительные или зависящие от внешних событий циклы и функции, осторожно пользоваться ''[[#DIS_INTERRUPT]]'', ''[[#TICKOFF]]'' и ''[[#TICKSTOP]]''. |
- | Систематическая погрешность округления при нецелом частном может | + | Если специфика программы такова, что гарантировать регулярное выполнение tickexit() невозможно, остаётся воспользоваться функцией ''[[#autoplay()]]''. |
- | приводить к рассинхронизации голосов, которую приходится устранять | + | |
- | вручную, вставляя дополнительные ноты и контролируя длительности | + | |
- | голосов в поле 'Ticks' на экране музыкального редактора. | + | |
- | 2. В моменты обращения к диску системный обработчик прерываний | + | |
- | получает управление с задержкой, что приводит к искажению | + | |
- | длительностей нот, загруженных в это время в звукогенератор. | + | |
- | 3. Если tickexit() в программе пользователя слишком долго | + | |
- | не получает управления (например, при неправильно организованном | + | |
- | ожидании ввода с клавиатуры; при использовании отладочной функции | + | |
- | dump() с большим объемом выдачи и т.п.), и успевают доиграть все | + | |
- | пакеты, поставленные mutick() в системную очередь, может произойти | + | |
- | отключение или рассинхронизация голосов. Поэтому надо внимательно | + | |
- | отслеживать возможные источники задержек, обязательно вставлять | + | |
- | totick() в продолжительные или зависящие от внешних событий циклы и | + | |
- | функции, осторожно пользоваться DIS_INTERRUPT, TICKOFF и TICKSTOP. | + | |
- | Если специфика программы такова, что гарантировать регулярное | + | |
- | выполнение tickexit() невозможно, остается воспользоваться | + | |
- | функцией autoplay(). | + | |
| | ||
- | Примечание: grpini(), tickexit(), totick(), dump(), DIS_INTERRUPT, | + | __//Примечание//__: |
- | TICKOFF, TICKSTOP - функции, входящие в ПС "МАЭСТРО". | + | * ''[[#grpini()]]'', ''[[#tickexit()]]'', ''[[#totick()]]'', ''[[#dump()]]'', ''[[#DIS_INTERRUPT]]'', ''[[#TICKOFF]]'', ''[[#TICKSTOP]]'' — функции, входящие в ПС "МАЭСТРО". |
- | swapin() - функция BDS C. | + | * ''[[#swapin()]]'' — функция BDS C. |
- | </code> | + | |
====== Утилиты ====== | ====== Утилиты ====== | ||
Строка 2713: | Строка 2715: | ||
===== Условия применения утилит ===== | ===== Условия применения утилит ===== | ||
- | Для работы утилит требуется MSX компьютер с 64 кбайт оперативной памяти и как минимум одним дисководом. Большинство утилит может выполняться как на [[msx:msx_1|MSX]] так и на [[msx:msx_2|MSX2]]. Случаи использования [[msx:msx_2|MSX2]] оговариваются особо. Операционная система: [[msx:dos#v1x|MSX-DOS 1]] версии 1.03 (''COMMAND.COM'' 1.11). | + | Для работы утилит требуется MSX компьютер с 64 кбайт оперативной памяти и как минимум одним дисководом. Большинство утилит может выполняться как на [[msx:msx_1|MSX]] так и на [[msx:msx_2|MSX2]]. Случаи использования [[msx:msx_2|MSX2]] оговариваются особо. Операционная система: [[msx:dos:|]] версии 1.03 (''COMMAND.COM'' 1.11). |
Внимание! Для нестандартных модификаций операционной системы и консольного процессора нормальная работа утилит не гарантируется. | Внимание! Для нестандартных модификаций операционной системы и консольного процессора нормальная работа утилит не гарантируется. | ||
Строка 2740: | Строка 2742: | ||
^Формат командной строки|<code>blade [<fileset>]</code>| | ^Формат командной строки|<code>blade [<fileset>]</code>| | ||
^Параметры|<WRAP> | ^Параметры|<WRAP> | ||
- | * ''<fileset>'' — любая стандартная маска набора файлов [[msx:dos|]] с расширением «!» — [and] not. Если не указан — ''*.*'' | + | * ''<fileset>'' — любая стандартная маска набора файлов [[msx:dos:|]] с расширением «!» — [and] not. Если не указан — ''*.*'' |
</WRAP>| | </WRAP>| | ||
^Особенности|Файлы, релевантные маске, сортируются по алфавиту и проверяются на наличие FE в первом байте файла. В случае присутствия FE на экран выводится имя файла и три шестнадцатеричных слова: адрес загрузки, адрес конца и адрес передачи управления.| | ^Особенности|Файлы, релевантные маске, сортируются по алфавиту и проверяются на наличие FE в первом байте файла. В случае присутствия FE на экран выводится имя файла и три шестнадцатеричных слова: адрес загрузки, адрес конца и адрес передачи управления.| | ||
Строка 2768: | Строка 2770: | ||
^Параметры|<WRAP> | ^Параметры|<WRAP> | ||
* ''/p'' — вывод копии экрана на принтер. | * ''/p'' — вывод копии экрана на принтер. | ||
- | * ''<fileset>'' — любая стандартная маска набора файлов [[msx:dos|]] с расширением «!» — [and] not. Если не указан — *.* | + | * ''<fileset>'' — любая стандартная маска набора файлов [[msx:dos:|]] с расширением «!» — [and] not. Если не указан — *.* |
</WRAP>| | </WRAP>| | ||
^Особенности|Файлы, релевантные маске, выводятся на экран в отсортированном по алфавиту суффиксов, а внутри них — по именам файлов виде.| | ^Особенности|Файлы, релевантные маске, выводятся на экран в отсортированном по алфавиту суффиксов, а внутри них — по именам файлов виде.| | ||
Строка 2834: | Строка 2836: | ||
</WRAP>| | </WRAP>| | ||
^Особенности|<WRAP> | ^Особенности|<WRAP> | ||
- | - Нажатие любой клавиши останавливает/продолжает дамп. Нажатие клавиши <key>STOP</key> приводит к выходу в [[msx:dos|]]. | + | - Нажатие любой клавиши останавливает/продолжает дамп. Нажатие клавиши <key>STOP</key> приводит к выходу в [[msx:dos:|]]. |
- При помощи утилиты DUMP можно объединить несколько разных фрагментов разных источников в один файл — разделителем источников в командной строке является символ '&' (см. пример). | - При помощи утилиты DUMP можно объединить несколько разных фрагментов разных источников в один файл — разделителем источников в командной строке является символ '&' (см. пример). | ||
- В качестве отдельных источников в командной строке могут использоваться специальные параметры (без пробелов) | - В качестве отдельных источников в командной строке могут использоваться специальные параметры (без пробелов) | ||
Строка 3206: | Строка 3208: | ||
{{:msx:maestro:maestro_glall-305.txt|}} | {{:msx:maestro:maestro_glall-305.txt|}} | ||
+ | {{anchor:microprocessor_means_and_systems_1988_06}} | ||
<hidden Реклама в журнале "Микропроцессорные средства и системы" №6, 1988> | <hidden Реклама в журнале "Микропроцессорные средства и системы" №6, 1988> | ||
{{msx_maestro.jpg?1000|}} \\ [[https://i.postimg.cc/vmMr7cyF/image.jpg|оригинал]] \\ | {{msx_maestro.jpg?1000|}} \\ [[https://i.postimg.cc/vmMr7cyF/image.jpg|оригинал]] \\ | ||
{{msx_maestro_02.jpg?1000|}} \\ [[https://pic.maxiol.com/images2/1613586053.1054456127.72j.jpg|оригинал]]\\ | {{msx_maestro_02.jpg?1000|}} \\ [[https://pic.maxiol.com/images2/1613586053.1054456127.72j.jpg|оригинал]]\\ | ||
Реклама в журнале "Микропроцессорные средства и системы" №6, 1988 | Реклама в журнале "Микропроцессорные средства и системы" №6, 1988 | ||
+ | </hidden> | ||
+ | |||
+ | {{anchor:mpc0398}} | ||
+ | <hidden Реклама в журнале "Мир ПК №3, 1989"> | ||
+ | Файл предоставил **Артем Читайло** | ||
+ | |||
+ | {{:msx:maestro:mpc0398_maestro.jpg|}} | ||
</hidden> | </hidden> | ||
Строка 3219: | Строка 3229: | ||
{{tag>MSX Programming Rodionov_A_B}} | {{tag>MSX Programming Rodionov_A_B}} | ||
- | |||
- | <PRELOAD> | ||
- | <!-- Yandex.Metrika counter --> | ||
- | <script type="text/javascript" > | ||
- | (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; | ||
- | m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) | ||
- | (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); | ||
- | |||
- | ym(86679439, "init", { | ||
- | clickmap:true, | ||
- | trackLinks:true, | ||
- | accurateTrackBounce:true | ||
- | }); | ||
- | </script> | ||
- | <noscript><div><img src="https://mc.yandex.ru/watch/86679439" style="position:absolute; left:-9999px;" alt="" /></div></noscript> | ||
- | <!-- /Yandex.Metrika counter --> | ||
- | </PRELOAD> |