![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
SuperMax |
![]()
Сообщение
#1
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 345 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Справочник по языку программирования BASIC состоит из двух частей: Меню
и Информативной части. Передвижение как по меню, так и по информативной час- ти осуществляется с помощью клавиш со стрелками вверх и вниз. Для ускоренно- го передвижения можно использовать клавиши со стрелками вверх и вниз при на- жатой клавише CTRL. Выбрав в меню оператор, функцию или команду, по которым вам необходимо получить справку, нажмите клавишу ПРОБЕЛ. Для выхода в меню из информативной части используйте клавишу ВВОД. В любой момент Вы можете покинуть справочник, используя клавишу ESC. При последующем входе в справоч- ник (с помощью клавиши SELECT) Вы окажетесь в том же самом месте справочни- ка, из которого его покинули. Все клавиши, которые в данный момент могут оказать на работу справочника какое-либо действие, указываются в нижней строке. ------------------------------------------------------------------------ INPUT# - оператор чтения данных из файла Формат: INPUT # <номер>,<список переменных> Оператор действует аналогично оператору INPUT, но данные вводятся не с клавиатуры ПЭВМ, а из файла с указанным номером. Пример: 10 OPEN "TEST" FOR INPUT AS #1 20 DIM X(10) 30 FOR I=0 TO 10 40 INPUT #1,X(I) 50 PRINT X(I) 60 NEXT 70 CLOSE Программа заполняет массив переменных данными, считанными из файла с именем "TEST", и выводит их на экран. Примечание: Файл, используемый в операторе INPUT#, должен быть предваритель- но открыт с помощью оператора OPEN с атрибутом INPUT. ------------------------------------------------------------------------ BIN$ - функция преобразования числа в строку Формат: BIN$(<арифм.выражение>) Функция преобразует целое число, равное значению арифм.выражения, в строку, содержащую двоичное представление данного числа. Примеры: BIN$(10) выдает "1010" BIN$(-1) выдает "1111111111111111" Примечание: Значение аргумента должно находиться в интервале от -32768 до 65535. ------------------------------------------------------------------------ OPEN - оператор открытия файла Формат: OPEN"[<имя устройства>:]<имя файла>" [FOR <режим>] AS [#]<номер> Перед использованием файла его необходимо объявить открытым с помощью оператора OPEN, где указываются: 1. Имя устройства, где должен находиться файл (по умолчанию - А): CAS - для работы с магнитофоном; A или B - для работы с дисководом; GRP - для вывода текста на графический экран (в этом случае имя файла указывать не нужно). 2. Имя файла, которое он будет иметь на указанном устройстве. 3. Режим: INPUT - для чтения из файла; OUTPUT - для создания нового файла; APPEND - для дополнения существующего файла (только на диске- тах!). 4. Номер файла - число от 1 до указанного в операторе MAXFILES. Этот номер далее будет использоваться для обращения к файлу в программе. Пример: 10 MAXFILES=2 20 OPEN"CAS:INF" FOR INPUT AS #1 30 OPEN"A:REZ" FOR OUTPUT AS #2 После выполнения этой части программы будет открыт файл INF (для чтения с кассеты) под номером 1, и файл REZ (для записи на дискету в дисководе А) под номером 2. ------------------------------------------------------------------------ ATN - функция arctg x Формат: ATN (<арифм.выражение>) Функция вычисляет арктангенс аргумента; ее значение измеряется в ради- анах. Пример: 4*ATN(1) дает число 3.1415926535898 Примечание: 1 радиан равен (180 градусов) / 3.1415926535898. ------------------------------------------------------------------------ POKE - оператор записи в память Формат: POKE <адрес>,<арифм.выражение> Оператор записывает в байт памяти с указанным адресом значение арифм.выражения. Оба аргумента могут быть переменными или постоянными вели- чинами, записанными как в десятичной, так и в шестнадцатиричной форме. Зна- чение арифм.выражения должно находиться в интервале от 0 до 255, адреса - в интервале от &H8000 до &HFFFF (т.е. от 8000 до FFFF в шестнадцатиричной сис- теме счисления). Пример: 10 A=27 20 POKE &HB000,A Число 27 будет записано в ячейку памяти с адресом В000. Примечание: При указании адреса в интервале от 0000 до 7FFF оператор POKE выполняться не будет, хотя сообщение об ошибке в этом случае не выдается. ------------------------------------------------------------------------ STOP - оператор остановки программы Формат: STOP При выполнении оператора оканчивается работа программы, происходит пе- реход в командный режим и выдается сообщение на экран: Break in < N >, где N номер строки, в которой встретился данный оператор STOP. Часто употребляется для тестирования программы. Пример: : : : 100 A=B+C 200 STOP : : : После выполнения данного оператора STOP можно в командном режиме узнать значение переменной A путем выполнения оператора PRINT A (для тестирования программы) Примечания: 1. Продолжить работу программы после ее остановки оператором STOP можно командой CONT. 2. Действие оператора STOP аналогично нажатию <CTRL>+<STOP> во время работы программы в конкретной строке. ------------------------------------------------------------------------ DIM - оператор задания массива Формат: DIM <имя массива>(<индекс1>,<индекс2>,...)[,...] Оператор резервирует в машинной памяти место для размещения массива размерности, определяемой значениями индексов, а также присваивает всем эле- ментам массива нулевые значения (для символьных переменных пустые строки). Нумерация элементов массива начинается с нуля. Имя массива определяет тип переменной так же, как для скалярных переменных. Отдельный элемент массива обозначается именем массива, за которым следу- ют его индексы в круглых скобках. Одним оператором DIM могут описываться несколько массивов, перечисляемых друг за другом через запятую. Примеры: DIM ТА(24),М$(1,1),F% Оператор описывает вещественный массив TA с 25 элементами, массив символьных переменных М$ с 4 элементами (М$(0,0),М$(0,1),М$(1,0),М$(1,1)) и целочисленную переменную F%. Примечания: 1. Употреблению в программе элементов массива должно предшество- вать его описание в операторе DIM. 2. Повторное описание одного и того же массива не допускается. 3. Если точная длина задаваемого массива неизвестна, следует оп- ределить ее по максимально вероятной величине. 4. Индексы массива могут быть арифм.выражениями, подразумевающи- ми целые положительные значения. ------------------------------------------------------------------------ LIST - команда просмотра текста программы Формат: LIST [<номер строки1>][-<номер строки2>] или LIST [<номер строки1>-][<номер строки2>] Команда используется в режиме прямого доступа для последовательного просмотра текста программы или его фрагмента. При наличии атрибутов просмотр текста начинается с номера строки1 и заканчивается номером строки2; а при их отсутствии - за номер строки1 по умолчанию принимается начало программы, за номер строки2 - конец текста. Приостановление просмотра текста совершается после нажатия клавиши STOP, продолжение - после повторного нажатия этой клавиши. Для прекращения просмотра необходимо одновременное нажатие клавиш STOP и CTRL. Команда LIST, включенная в текст программы, прерывает ее выполнение и переключает систему в командный режим. Примеры: LIST 10-100 просмотр со строки 10 до строки 100 LIST 100 просмотр строки 100 LIST 100- просмотр со строки 100 до конца программы LIST -100 просмотр с начала программы до строки 100 10 А=5 20 LIST 30 PRINT A При выполнении программы переменной А будет присвоено значение 5, но выведено оно не будет. Примечания: 1. Введение несуществующего номера строки не вызывает появления сообщения об ошибке. Просмотр программы в этом случае начнется с первой имеющейся строки в интервале от номера строки1 до но- мера строки2. 2. Команда LIST не изменяет значений переменных. ------------------------------------------------------------------------ CLOSE - оператор закрытия файла Формат: CLOSE [<список номеров файлов>] При записи данных закрытие обеспечивает вывод в файл признака конца файла. Кроме того, закрытие файла позволяет использовать тот же номер для открытия другого файла. При указании нескольких номеров они разделяются за- пятыми. Оператор CLOSE без указания номеров произведет закрытие всех откры- тых файлов. Пример: 10 OPEN"A:REZ" FOR OUTPUT AS #1 ... 200 CLOSE #1 ------------------------------------------------------------------------ PEEK - функция чтения данных из памяти Формат: PEEK(<адрес>) Функция считывает число (лежащее в интервале от 0 до 255) из ячейки оперативной памяти с указанным адресом. Адрес может лежать в интервале от 0000 до FFFF (в шестнадцатиричной системе счисления). Пример: Х=PEEK(&НF676) В результате выполнения этого оператора переменной Х будет присвоено значение, размещенное в памяти по адресу F676. ------------------------------------------------------------------------ ON GOTO - оператор условного перехода Формат: ON <арифм.выражение> GOTO <номера строк> Оператор позволяет осуществить переход к одной из нескольких указанных строк в зависимости от того, какое значение имеет арифм.выражение. Во время выполнения оператора выражение вычисляется и целая часть его используется в качестве указателя перехода на один из номеров строк. Пример: 50 ON P GOTO 100,140,180 Оператор передает управление строке 100, если Р=1, строке 140, если Р=2 и строке 180, если Р=3. Примечание: Любые другие значения Р, не выходящие за пределы 0-255,приведут к передаче управления на следующий оператор. Если Р<0 или Р>255, то будет выдано сообщение об ошибке. ------------------------------------------------------------------------ RETURN - оператор конца подпрограммы Формат: RETURN [<номер строки>] Возвращает управление из подпрограммы. Если указан номер строки, то происходит возврат по этому номеру. Но обычно номер отсутствует и тогда уп- равление передается оператору, следующему за оператором GOSUB, с помощью ко- торого была вызвана данная подпрограмма. Как правило, RETURN размещается в конце подпрограммы. Пример: 100 GOSUB 1000 110 : : : : : : 990 END 1000'Подпрограмма 1010 FOR I=0 TO 100 : A(I)=0 : NEXT I 1020 RETURN Подпрограмма вызывается в 100-й строке, выполняется (обнуляется массив A(100)), затем оператор RETURN осуществляет переход на строку номер 110 Примечание: Выполнению каждого оператора RETURN должно предшествовать выпол- нение соответствующего оператора GOSUB. ------------------------------------------------------------------------ PRINT - оператор вывода на экран Формат: PRINT [<список>] Оператор используется для вывода на экран дисплея информации, определя- емой списком, элементами которого могут быть числовые и символьные константы и переменные. При отсутствии списка оператор PRINT используется для вывода пустой строки. Строка экрана разбита на зоны по 16 позиций каждая. Если элементы спис- ка разделены запятыми, то значение следующего элемента будет напечатано в следующей свободной зоне той же или следующей строки. Если данные разделены ";", то следующий элемент начнет печататься сразу за предыдущим. Если оператор PRINT заканчивается ";", то следующий вывод на печать начнется сразу за предыдущим; если в конце его стоит ",", то очередная пор- ция информации будет печататься в следующей зоне той же строки. В остальных случаях каждый оператор PRINT будет начинать печать с новой строки. Пример: 20 PRINT "ABCD" 30 T$="START":B=25 40 PRINT "ABCD","EF";:PRINT T$,B 50 PRINT T$;"ABCD";"EF" В результате выполнения программы на экран будет выведена следующая ин- формация (символ "|" обозначает левую границу экрана): |ABCD |ABCD EFSTART 25 |STARTABCDEF Примечание: В операторе PRINT можно использовать функции TAB и SPC. ------------------------------------------------------------------------ FOR - оператор цикла Формат: FOR <имя переменной> = <арифм.выражение1> TO <арифм.выражение2> [STEP <арифм.выражение3>] тело цикла NEXT [<имя переменной>] При выполнении оператора счетчику цикла (переменной) в качестве началь- ного значения присваивается значение арифм.выражения1, после чего выполняют- ся операторы, входящие в тело цикла. При достижении ключевого слова NEXT к счетчику цикла добавляется значение арифм.выражения3, называемое шагом цик- ла. Если при этом значение счетчика превышает (а при отрицательном шаге бу- дет меньше) значение арифм.выражения2, то программа переходит к выполнению следующего после NEXT оператора; в противном случае - вновь выполняется тело цикла. По умолчанию шаг цикла принимается равным 1. Для досрочного выхода из цикла необходимо внутри цикла присвоить счет- чику значение большее (меньшее - при отрицательном шаге), чем значение арифм.выражения2, и передать управление на NEXT. В любом случае тело цикла выполняется хотя бы один раз. Допускаются также вложенные циклы, причем внутренний цикл должен цели- ком содержаться в теле внешнего цикла. Концы циклов в этом случае могут объединяться в один оператор NEXT, и счетчик внутреннего цикла должен нахо- диться прежде счетчика внешнего цикла. Примеры: 10 FOR X=0 TO 1 STEP 0.1 20 PRINT X;SIN(X) 30 NEXT X Оператор распечатывает таблицу значений функции sin x для значений ар- гумента от 0 до 1 с шагом 0.1. 10 FOR I=1 TO 10 20 FOR J=2 TO 3 30 PRINT I^J; 40 NEXT J,I Программа выводит на печать значения квадратов и кубов первых десяти натуральных чисел. ------------------------------------------------------------------------ LINE INPUT# - оператор чтения данных из файла Формат: LINE INPUT # <номер>, <символьная переменная> Оператор действует аналогично оператору LINE INPUT, но данные вводятся не с клавиатуры ПЭВМ, а из файла с указанным номером. Пример: 10 OPEN "TEST" FOR INPUT AS #1 20 DIM X$(I) 30 FOR I=0 TO 10 40 LINE INPUT #1,X$(I) 50 PRINT X$(I) 60 NEXT 70 CLOSE Программа заполняет массив символьных переменных данными, считанными из файла с именем "TEST", и выводит их на экран. Примечание: Файл, используемый в операторе LINE INPUT#, должен быть предва- рительно открыт с помощью оператора OPEN с атрибутом INPUT. ------------------------------------------------------------------------ HEX$ - функция преобразования числа в строку Формат: HEX$(<арифм.выражение>) Функция преобразует целое число, равное значению арифм.выражения, в строку, содержащую шестнадцатиричное представление данного числа. Примеры: HEX$(255) выдает "FF" HEX$(2*2) выдает "4" HEX$(-1) выдает "FFFF" Примечание: Значение аргумента должно находиться в интервале от -32768 до 65535. ------------------------------------------------------------------------ COS - функция cos x Формат: COS (<арифм.выражение>) Вычисляет косинус от аргумента, который должен быть задан в радианах. Пример: COS(A+ ![]() ![]() COS(3.14159) дает -.99999999999643 Примечание: 1 радиан равен (180 градусов) / 3.1415926535898. ------------------------------------------------------------------------ FIX - функция [x] Формат: FIX(<арифм.выражение>) Функция выдает целую часть аргумента без округления. Примеры: FIX(33.56) выдает 33 FIX(-5.56) выдает -5 -------------------- Живы будем - Не помрем !
|
![]() ![]() |
SuperMax |
![]()
Сообщение
#2
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 345 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
------------------------------------------------------------------------
Формат: PUT SPRITE Н,[[STEP] (X,Y)][,Ц][,O] Оператор используется во всех экранах, кроме SCREEN0, для отображения спрайтов в зависимости от следующих параметров: Н - номер спрайта должен быть числом от 0 до 31. Следует помнить, что на одной горизонтальной линии может находиться не более 4 (начиная со SCRE- EN4 - не более 8) спрайтов, поэтому при превышении этого числа спрайты с бо- лее высокими номерами останутся невидимыми. (Х,Y) - координаты верхнего левого угла матрицы 8*8 или 16*16 спрайта, который должен быть отображен. Числа Х и Y могут лежать в интервале от -32768 до 32767, однако при отображении спрайта будут использоваться коорди- наты, пересчитанные как модуль деления Х и Y на соответствующие размеры эк- рана (см.оператор SCREEN). Отметим, что при отображении спрайтов верхний ле- вый угол экрана всегда соответствует точке (0,-1). При наличии атрибута STEP числа Х и Y означают приращение соответствующих координат последней указан- ной точки. Ц - цвет отображения спрайта. Допустимые значения этого аргумента зави- сят от параметров конкретного экрана (см.оператор SCREEN). О - номер образа отображаемого спрайта (число от 0 до 255). Назначение чисел Н и О различно: например, один и тот же образ может соответствовать двум различным по номерам спрайтам. При отсутствии необязательных аргументов их значения остаются такими же, как в ранее выполненном операторе PUT SPRITE для того же номера Н. Пример: 10 SCREEN2:COLOR15,6,6 20 SPRITE$(0)=CHR$(255)+STRING$(6,129)+CHR$(255) 30 SPRITE$(1)=STRING$(8,128) 40 PUT SPRITE3,(50,50),15,0 50 FOR I=0 TO 200:NEXT 60 PUT SPRITE1,(40,40),7,1 70 FOR I=0 TO 200:NEXT 80 PUT SPRITE1,,9,0 90 GOTO 90 В программе задается два образа спрайтов: номер 0 - в виде незакрашен- ного квадрата и номер 1 - в виде вертикальной черты. Белый квадрат изобража- ется в точке (50,50), голубая черта - в точке (40,40), после чего на месте последней появляется красный квадрат. Примечания: 1. При наложении спрайтов друг на друга приоритет в закрашивании точки определенным цветом имеет спрайт с меньшим номером. Это позволяет создавать многоцветные спрайты. 2. Для исчезновения спрайта необходимо задать его цвет как проз- рачный (т.е. Ц=0) либо заполнить нулями соответствующий образ, либо вывести его за пределы экрана (например, задав координаты (0,212)). ------------------------------------------------------------------------ COLOR - оператор выбора цвета Формат: I. COLOR [<цвет текста>],[<цвет фона>],[<цвет бордюра>] II. COLOR=(Ц,К,З,С) III. COLOR=NEW Первый вариант оператора задает номера цветов, в которые будут окрашены выводимый на экран текст, фон и граница экрана (бордюр). Последний параметр не употребляется в режиме SCREEN0: в этом режиме экран и его граница окраши- ваются одним цветом. Если необходимо изменить только один из этих парамет- ров, то остальные можно опустить. Как правило, номер цвета должен быть числом от 0 до 15. Каждый цвет со- ответствует определенным пропорциям красного, зеленого и синего цветов. Эти пропорции могут быть изменены с помощью второго варианта оператора COLOR, где Ц - номер изменяемого цвета, а К,З,С - соответствующие пропорции красно- го, зеленого и синего цветов. Последние три цифры могут меняться в интервале от 0 до 7. При включении компьютера по умолчанию устанавливается следующая палитра цветов: --------------------------------------------------------- | Номер | | | | | | цвета | Цвет | Красный | Зеленый | Синий | |-------|-------------------|---------|---------|-------| | 0 | Прозрачный | 0 | 0 | 0 | | 1 | Черный | 0 | 0 | 0 | | 2 | Зеленый | 1 | 6 | 1 | | 3 | Светло - зеленый | 3 | 7 | 3 | | 4 | Темно - синий | 1 | 1 | 7 | | 5 | Светло - синий | 2 | 3 | 7 | | 6 | Темно - красный | 5 | 1 | 1 | | 7 | Голубой | 2 | 6 | 7 | | 8 | Красный | 7 | 1 | 1 | | 9 | Светло - красный | 7 | 3 | 3 | | 10 | Темно - желтый | 6 | 6 | 1 | | 11 | Светло - желтый | 6 | 6 | 4 | | 12 | Темно - зеленый | 1 | 4 | 1 | | 13 | Лиловый | 6 | 2 | 5 | | 14 | Серый | 5 | 5 | 5 | | 15 | Белый | 7 | 7 | 7 | --------------------------------------------------------- Эти же цвета устанавливаются при выполнении оператора SCREEN или третьего варианта оператора COLOR. В режиме SCREEN 6 используются только 4 цвета, а в режиме SCREEN 8 но- мер цвета может меняться в интервале от 0 до 255. Он определяется по следу- ющей формуле: <номер цвета> = 32*З + 4*К + С\2, где З,К,С определены выше. Следует также отметить, что в текстовых режимах (SCREEN 0 и SCREEN 1) выполнение оператора COLOR сразу влечет за собой изменение цвета фона и все- го ранее выведенного текста. В графических же экранах при выполнении опера- тора COLOR меняется только цвет бордюра, а цвет фона изменится на указанный в COLOR только после выполнения оператора CLS (в частности, и оператора SCREEN). Новый цвет текста при этом будет действовать только для операторов, выполненных после COLOR. Пример: 10 SCREEN2:COLOR15,4,4 20 OPEN "GRP:" AS #1 30 PRINT #1,"ABCD" 40 COLOR 9 50 PRINT #1,"abcd" 60 GOTO 60 На синем экране отображается строка "ABCD" белого и строка "abcd" крас- ого цвета. Примечание: Начальная установка цветов происходит по нажатию клавиши F6. ------------------------------------------------------------------------ CIRCLE - оператор рисования кругов и эллипсов Формат: CIRCLE [STEP] (X,Y),P[,Ц][,H][,K][,A] Оператор используется в графических режимах (от SCREEN2 до SCREEN8) для рисования окружностей и эллипсов со следующими параметрами: - числа Х,Y определяют координаты центра круга или эллипса (но сама точка при этом не отображается). При наличии атрибута STEP они указывают приращение соответствующих координат точки, упомянутой в последнем выполнен- ном графическом операторе; - число Р равняется радиусу, если рисуется окружность, или длине боль- шей оси, если рисуется эллипс; - цвет окружности (эллипса) определяется числом Ц. По умолчанию он ра- вен цвету изображения последнего выполненного оператора COLOR; - число Н задает начальный (по умолчанию 0), а число К - конечный (по умолчанию 2*3.14) угол, измеренный в радианах. Путем задания иных значений можно рисовать не замкнутые кривые, а дуги. Если какое-либо из чисел Н или К будет отрицательно, то соответствующий ему конец дуги будет соединен отрез- ком с точкой (X,Y); - отношение между горизонтальной и вертикальной осями задается коэффи- циентом А. По умолчанию он равен 1. Пример: 10 SCREEN 2:COLOR15,6,6 20 CIRCLE(50,60),30,8,,,1.1 30 CIRCLE(70,45),40,,,,2 40 CIRCLE STEP (15,35),25,,-3.4,-6 50 GOTO 50 Программа рисует окружность красного цвета, овал и сектор круга белого цвета. Примечания: 1. Пропорции между координатами Х и Y не обязательно сохраняются при изображении на экране. Поэтому для получения действительного круга иногда необходимо изменить параметр А (например, А=1.1). 2. Допустимые значения чисел X,Y,Ц определяются параметрами конкретного экрана (см.оператор SCREEN). Если значение Ц выходит за пределы допустимого, то будет выдано сообщение об ошибке. В том случае, когда за пределы координатной системы выходят значе- ния Х,Y или не умещается вся фигура, то на экране отображается та часть окружности (эллипса), которая на нем помещается. ------------------------------------------------------------------------ SOUND - оператор воспроизведения звуковых эффектов Формат: SOUND <регистр>, <значение> Данный оператор позволяет воспроизводить различные звуковые эффекты. Регистры звукогенератора имеют номера от 0 до 13, значения не должны превы- шать 255. Программируются следующие характеристики звука: 1. Частота. Устанавливается следующими регистрами: канал А - регистры 0 и 1 канал В - регистры 2 и 3 канал С - регистры 4 и 5 Реальная частота в Гц вычисляется по формулам Частота=F/FV ,где F=3579545/32 ,а FV=R0+256*R1 (для канала А) FV=R2+256*R3 (для канала В) FV=R4+256*R5 (для канала С) 2. Генератор шумов. Кодируется в регистре 6 значениями от 0 до 31 как "средняя частота" шума, определяющаяся по формулам: Частота=F/R6 ,где F=3579545/32 3. Микширование каналов. В каждом из каналов возможен следующий сигнал: а) ничего; б) только заданный звуковой эффект; в) только шум; г) заданный звуковой эффект и шум. Старшие два бита R7 должны быть двоичным числом 10. Следующие 3 разре- шают (0) или запрещают (1) выход шума соответственно в каналах С, В и А. Последние три разрешают (0) или запрещают (1) выход звука соответственно в каналах С, В и А. Пример: 10 SOUND &B10110011 Результат: в канале А шум, в канале В ничего, в канале С только звук. 4. Установка громкости. Используются регистры: канал А - регистр 8 канал В - регистр 9 канал С - регистр 10 Значения лежат в пределах от 0 до 15 (максимальная громкость). При зна- чении 16 громкость контролируется генератором огибающей. 5. Частота огибающей. Кодируется в регистрах 11 и 12, в Гц вычисляется по формулам: Частота=F/FV ,где F=3579545/32 ,а FV=R11+256*R12 6. Форма огибающей. Кодируется в четырех младших битах регистра 13 по следующей таблице: В3 В2 В1 В0 Форма огибающей 0 0 х х \____________________ 0 1 x x /|___________________ 1 0 0 0 \|\|\|\|\|\|\|\|\|\|\| 1 0 0 1 \____________________ 1 0 1 0 \/\/\/\/\/\/\/\/\/\/\/ ____________________ 1 0 1 1 \| 1 1 0 0 /|/|/|/|/|/|/|/|/|/|/| 1 1 0 1 /--------------------- 1 1 1 0 /\/\/\/\/\/\/\/\/\/\/\ 1 1 1 1 /|____________________ Примеры: 10 BEEP 20 FOR I=0 TO 13 30 READ V:SOUND I,V 40 NEXT 50 END 100 DATA 0,0,0,0,0,0 110 DATA 30 120 DATA &B10110111 130 DATA 16,0,0 140 DATA 0,90,&B1110 Программа имитирует шум моря. 10 BEEP 20 FOR I=0 TO 13 30 READ V:SOUND I,V 40 NEXT 50 END 100 DATA 200,14,220,14,240,14 110 DATA 0 120 DATA &B10111000 130 DATA 15,15,15 140 DATA 0,0,0 Программа имитирует звук бомбардировщика. 10 BEEP 20 FOR I=0 TO 13 30 READ V:SOUND I,V 40 NEXT 50 FOR I=5120 TO 300 STEP -10 60 SOUND 11,I MOD 256 70 SOUND 12,I/256 80 FOR J=0 TO 20 90 NEXT J,I 95 END 100 DATA 0,0,255,14,255,14 110 DATA 10 120 DATA &B10000001 130 DATA 9,8,16 140 DATA 0,20,&B1100 Программа имитирует звук вертолета. 10 FOR I=0 TO 13 20 READ V:SOUND I,V 30 NEXT 40 FOR I=50 TO 200 50 SOUND 0,I 60 A=5^5 70 NEXT 80 SOUND 12,1010 BEEP 90 END 100 DATA 50,0,0,0,0,0 110 DATA 30 120 DATA &B10111110 130 DATA 10,0,16 140 DATA 0,0,0 Программа имитирует звук падающей бомбы. ------------------------------------------------------------------------ COLOR SPRITE$ - оператор определения многоцветного спрайта Формат: COLOR SPRITE$(<номер спрайта>)=<строка> Оператор используется в графических экранах, начиная со SCREEN4, для создания многоцветных спрайтов. Спрайт с указанным номером определяется строкой длины 8 или 16 символов (в зависимости от размера спрайта), каждый символ которой соответствует одной линии спрайта. Двоичная структура, соответствующая ASCII-коду каждого символа содержит следующую информацию: БИТ 7 (крайний левый): если этот бит равен 1, то линия будет изображена на 32 точки левее координаты Х, заданной в PUT SPRITE. БИТ 6: если этот бит равен 0, то при наложении спрайтов друг на друга приоритет будет иметь спрайт с меньшим номером. В противном случае цвет то- чек, входящих в пересечение спрайтов, определяется результатом операции OR, примененной к наложившимся цветам. Точки спрайта, не входящие в пересечение, при этом исчезают. БИТ 5: если этот бит равен 1, то столкновения этого спрайта с другими фиксироваться не будут. БИТ 4: не используется. БИТЫ 0 - 3: позволяют закодировать номер цвета (от 0 до 15), присвоен- ный данной линии. Пример: 10 COLOR 15,4,4:SCREEN 4,1 20 SPRITE$(1)=STRING$(8,255) 30 PUT SPRITE 1,(77,50),10,1 40 IF INKEY$="" GOTO 40 50 S$="":FOR J=0 TO 7:READ A$:S$=S$+CHR$(VAL("&B"+A$)):NEXT J 60 COLOR SPRITE$(1)=S$ 70 DATA 00000111,00000001,00001101,00001000 80 DATA 00000011,00000011,00000001,00001001 90 IF INKEY$="" GOTO 90 В программе определяется спрайт в виде закрашенного квадрата размером 8*8 точек, изображаемый на экране желтым цветом. После нажатия любой клавиши формируется символьная переменная длиной 8, двоичное представление которой задано операторами DATA. После выполнения оператора COLOR SPRITE$ спрайт на экране становится разноцветным. Примечание: Если для определения спрайта был использован оператор COLOR SPRITE$, то при выводе его на экран оператором PUT SPRITE пара- метр <Цвет> следует писать только в том случае, когда нужно из- менить цвет спрайта по сравнению с уже заданным. ------------------------------------------------------------------------ PLAY - функция проверки наличия данных Формат: PLAY(<номер голоса>) При выполнении оператора PLAY строки, соответствующие каждому голосу, записываются в трех очередях. По мере их считывания очереди освобождаются. Для проверки наличия данных в очереди используется функция PLAY. Номер голо- са должен быть равен 1, если проверяется канал А, 2 - если проверяется канал В, 3 - если проверяется канал С и 0, если проверяются все каналы. Значение функции равно 0, если проверяемая очередь пуста, и -1 в противном случае. При программировании длительных по протяженности музыкальных фрагментов функция PLAY используется для обеспечения непрерывности звучания. Пример: 10 A$="CDEFGAB" 20 PLAY A$,"O5 XA$;","O6 XA$;" 30 IF PLAY(0) THEN 20 ELSE 30 Программа обеспечивает непрерывное звучание по трем каналам музыкальной фразы, заданной в строке 10. -------------------- Живы будем - Не помрем !
|
![]() ![]() |
Текстовая версия | Сейчас: 24.8.2025, 20:20 |