англійськафранцузькаіспанська

Ad


Значок OnWorks

bwbasic - Інтернет у хмарі

Запустіть bwbasic у постачальника безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда bwbasic, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


bwbasic - інтерпретатор/оболонка Bywater BASIC

Bywater BASIC Interpreter/Shell, версія 2.10
---------------------------------------------

Авторське право (c) 1993, Тед А. Кемпбелл
для bwBASIC версії 2.10, 11 жовтня 1993 року

ЗМІСТ:

1. ОПИС
2. УМОВИ КОРИСТУВАННЯ
3. ШВИДКИЙ СПИСОК ДОВІДНИКІВ КОМАНД ТА ФУНКЦІЙ
4. ЗАГАЛЬНІ ПРИМІТКИ ЩОДО ВИКОРИСТАННЯ
5. РОЗШИРЕНА ДОВІДКА ПРО КОМАНДІ ТА ФУНКЦІЇ
6. ЗАВДАННЯ ЗМІННІ
7. НЕРЕАЛЬНІ КОМАНДІ ТА ФУНКЦІЇ
і ПОРЯДОК ДЕННИЙ РОЗВИТКУ
8. ІСТОРІЯ ПРО БІВОДІ БАЗ
9. КОМУНІКАЦІЇ

Автор хоче висловити свою подяку пану Девіду Маккензі,
який допомагав у розробці встановлення та налаштування Unix
для цієї версії.

1. ОПИС

Інтерпретатор Bywater BASIC (bwBASIC) реалізує великий
наднабір стандарту ANSI для мінімального BASIC (X3.60-1978)
і значна підмножина стандарту ANSI для повного BASIC
(X3.113-1987) на C. Він також пропонує засоби програмування оболонки
як розширення BASIC. bwBASIC прагне бути максимально портативним
наскільки це можливо.

bwBASIC можна налаштувати на емуляцію функцій, команд і
функції, доступні на різних типах інтерпретаторів BASIC;
дивіться файл INSTALL для отримання додаткової інформації про встановлення.

Перекладач працює досить повільно. Завжди, коли стикається з вибором
між концептуальною ясністю та швидкістю я послідовно вибирав
колишній. Перекладач - це найпростіший доступний дизайн,
і не використовує систему проміжного коду, яка б прискорювала
значно збільшити його роботу. Як воно є, кожен рядок інтерпретується
знову, коли перекладач прийде до нього.

bwBASIC реалізує одну функцію, недоступну в попередньому BASIC
інтерпретатори: команду оболонки можна вводити інтерактивно в
bwBASIC, і інтерпретатор виконає його під a
командна оболонка. Наприклад, команда "dir *.bas" може бути
введений у bwBASIC (у DOS або "ls -l *.bas" у UNIX) і
він буде виконуватися як з командного рядка операційної системи.
Команди оболонки також можна подавати в пронумерованих рядках у bwBASIC
програми, щоб bwBASIC можна було використовувати як програмування оболонки
мова. bwBASIC реалізація RMDIR, CHDIR, MKDIR,
Команди та функції NAME, KILL, ENVIRON і ENVIRON$().
пропонують додаткові можливості обробки оболонки.

2. УМОВИ ВИКОРИСТАННЯ:

Ця версія Bywater BASIC випущена згідно з умовами
GNU General Public License (GPL), яка поширюється разом із цим
програмне забезпечення у файлі «КОПІЮВАННЯ». GPL визначає умови
згідно з якими користувачі можуть копіювати та використовувати програмне забезпечення в цьому дистрибутиві.

Для комерційного розповсюдження доступна окрема ліцензія,
за інформацією, про яку слід звернутися до автора.

3. ШВИДКИЙ СПИСОК ДОВІДНИКІВ КОМАНД ТА ФУНКЦІЙ

Майте на увазі, що багатьох з цих команд і функцій не буде
доступний, якщо ви не встановили певні прапорці у файлах заголовків
(див. розширений довідковий розділ нижче, щоб дізнатися про залежності).

ABS (число)
ASC ( рядок $ )
ATN (число)
Назва підпрограми CALL
ІНШИЙ ВИПАДОК | IF частковий вираз | постійний
ланцюжок [ОБЛИВАННЯ] ім'я файлу [, номер рядка] [, ВСІ]
Шлях CHDIR
CHR$(число)
CINT (число)
CLEAR
ЗАКРИТИ [[#]номер файлу]...
CLS
ЗАГАЛЬНА змінна [, змінна...]
COS (число)
CSNG (число)
CVD (рядок$)
CVI( рядок $ )
CVS ( рядок $ )
DATA константа[,константа]...
ДАТА $
DEF FNname(arg...)] = вираз
DEFDBL буква[-літера](, буква[-літера])...
ВИЗНАЧЕННЯ буква[-літера](, буква[-літера])...
DEFSNG буква[-літера](, буква[-літера])...
DEFSTR буква[-літера](, буква[-літера])...
ВИДАЛИТИ рядок[-рядок]
Змінна DIM(елементи...)[змінна(елементи...)]...
ЗРОБИТИ NUM|UNNUM
DO [вираз WHILE]
EDIT
ELSE
ELSEIF
END IF | ФУНКЦІЯ | ВИБЕРІТЬ | SUB
Рядок змінної ENVIRON = рядок
ENVIRON$( рядок змінної)
EOF (номер пристрою)
ERASE змінна[, змінна]...
ERL
ERR
Номер ПОМИЛКИ
EXP (число)
FIELD [#] номер пристрою, номер AS рядкова змінна [, число AS рядкова змінна...]
ФАЙЛИ filespec$
ФУНКЦІЯ
FOR лічильник = від початку до кінця [КРОК приріст]
ОТРИМАТИ [#] номер пристрою [, номер запису]
Лінія GOSUB | етикетці
GOTO рядок | етикетці
HEX$(число)
Вираз IF THEN [оператор [оператор ELSE]]
INKEY$
INPUT [# номер-пристрою]|[;]["prompt string";]список змінних
INSTR( [початкова позиція,] string-searched$, string-pattern$)
INT(число)
KILL ім'я файлу
LEFT$( рядок$, кількість пробілів)
LEN( рядок$ )
LET змінна = вираз
LINE INPUT [[#] номер-пристрою,]["рядок запиту";] рядок-змінна$
рядок LIST[-line]
LOAD ім'я файлу
LOC (номер пристрою)
ЗНАЙТИ рядок, стовпець
LOF (номер пристрою)
LOG(число)
LOOP [UNTIL вираз]
LSET рядкова змінна$ = вираз
Ім'я файлу MERGE
MID$( рядок$, початкова позиція в рядку[, кількість пробілів ] )
MKD$ (число)
Шлях MKDIR
MKI$(число)
MKS$ (число)
NAME ім'я старого-файлу AS new-file-name
Нове
NEXT [лічильник]
OCT$(число)
ON змінної GOTO|GOSUB рядок[,рядок,рядок,...]
ПОМИЛКА рядка GOSUB
ВІДКРИТИ "O"|"I"|"R", [#]номер пристрою, ім'я файлу [,довжина запису]
ім'я файлу FOR INPUT|OUTPUT|APPEND AS [#]номер пристрою [LEN = довжина запису]
Номер OPTION BASE
POS
ДРУКУВАТИ [# номер-пристрою,][ВИКОРИСТАННЯ формат-рядок$;] вирази...
PUT [#] номер пристрою [, номер запису]
ВИХІД
РАНДОМІЗУЙТЕ число
ЧИТАЙТЕ змінну[, змінну]...
рядок REM
Рядок ВІДНОВЛЕННЯ
ПОВЕРНЕННЯ
RIGHT$( рядок$, кількість пробілів)
Шлях RMDIR
RND (число)
RSET рядок-змінна$ = вираз
RUN [рядок][назва-файлу]
ЗБЕРЕГТИ ім'я файлу
SELECT CASE вираз
SGN (число)
SIN (число)
ПРОБІЛ $( число )
SPC (число)
SQR (число)
СТОП
STR$( число )
STRING$(число, ascii-значення|рядок$)
Ім'я підпрограми SUB
SWAP змінна, змінна
SYSTEM
TAB (число)
TAN (число)
TIME$
ТАЙМЕР
ТРОФФ
TRON
VAL( рядок$ )
ВЕНД
Вираз WHILE
WIDTH [# номер пристрою,] номер
WRITE [# номер пристрою,] елемент [, елемент ]....

4. ЗАГАЛЬНІ ПРИМІТКИ ЩОДО ВИКОРИСТАННЯ:

4.a. Інтерактивне середовище

Інтерактивне середовище надається, якщо прапорець INTERACTIVE
визначається як TRUE в bwbasic.h, так що рядок з a
номер рядка можна ввести у підказці bwBASIC, і він буде
додано до програми в пам'ять.

Номери рядків не є суворо обов’язковими, але корисні, якщо є
для програмування використовується інтерактивне середовище. Довше
програмний запис, можна було б віддати перевагу використанню текстового редактора ASCII, і
в цьому випадку рядки можна вводити без цифр. Можна використовувати
DO NUM і DO UNNUM для нумерації або скасування нумерації рядків. Дивіться також
документація нижче для псевдокоманди EDIT.

4.b Умови найменування

Назви команд і функцій не чутливі до регістру,
щоб "Run" і "RUN" і "run" були еквівалентними і "abs()"
і "ABS()" і "Abs()" є еквівалентними. ОДНАК змінна
імена чутливі до регістру в bwbASIC, тому "d$" і "D$"
є різними змінними. Це відрізняється від деяких BASIC
реалізації, де імена змінних не чутливі до регістру.

Назви змінних можуть використовувати будь-які символи алфавіту, крапку
і символи підкреслення та десяткові цифри (але не в
перша позиція). Їх можна завершувати символом '#' або '!' до
дозволити імена типу Microsoft, навіть якщо точність є
не має відношення до bwBASIC.

4.c. Числові константи

Числові константи можуть починатися з цифри 0-9 (десяткові), с
«&H» або «&h» (шістнадцятковий) або «&o» чи «&O» (вісімковий).
Десяткові числа можуть закінчуватися символами "E", "e", "D" або "d"
за яким слід число експоненти для позначення експоненційного запису.
Десяткові константи також можуть закінчуватися символами '#' або '!'
щоб відповідати прецизійним термінаторам у стилі Microsoft
вказана точність буде невідповідною для bwBASIC.

4.d Виконання командного рядка

Ім'я файлу можна вказати в командному рядку і буде
ЗАВАНТАЖУЄТЬСЯ і ЗАПУСКАЄТЬСЯ негайно, щоб командний рядок

bwbasic prog.bas

завантажить і виконає "prog.bas".

4.e. Сховище програм

Усі програми зберігаються як текстові файли ASCII.

4.f. ІСТИНА і НЕПРАВДА

TRUE визначається як -1, а FALSE визначається як 0 за замовчуванням
розповсюдження bwBASIC. Ці визначення можна змінити за допомогою
ті, які компілюють bwBASIC (див. файл BWBASIC.H).

4.g. Завдання

Змінним потрібно присвоїти. Це відрізняється від деяких
реалізації BASIC, де присвоєння може бути виконано a
функція. Висновок: "INSTR( 3, x$, y$ ) = z$" не буде
працювати під bwBASIC.

4.h. Оператори та пріоритет

bwBASIC розпізнає наступні оператори з їх рівнем
даного пріоритету (1 = найвищий):

^ 1 піднесення до степеня
* 2 множення
/ 2 відділ
3 ціле ділення
+ 5 додавання
- 5 віднімання
= 6 рівність або присвоєння
MOD 4 модуль (залишок) арифметика
<> 7 нерівність
< 8 менше ніж
> 9 більше ніж
<= 10 менше або дорівнює
=< 10 менше або дорівнює
>= 11 більше або дорівнює
=> 11 більше або дорівнює
НЕ 12 заперечення
І 13 сполучник
АБО 14 диз'юнкція
XOR 15 ексклюзивний або
Імплікація IMP 16
Еквівалентність EQV 17

4.h. Числова точність (НЕ)

bwBASIC використовує числа лише з одним рівнем точності. Якщо
прапор NUMBER_DOUBLE визначено як TRUE в bwbasic.h
реалізовано точність типу даних C "double";
інакше (за замовчуванням) точність буде такою, як у C "float"
типу. У ряді точок є команди (або псевдо-
команди), які, здається, розпізнають точність у стилі Microsoft
відмінності, але здебільшого це просто обхідний шлях
псевдоніми, щоб дозволити запускати програми в стилі Microsoft.

5. РОЗШИРЕНА ДОВІДКА ПРО КОМАНДІ ТА ФУНКЦІЇ

«Залежності» перераховані в наступних довідкових матеріалах
посилається на прапори, які мають бути встановлені в TRUE в bwbasic.h для
пов’язану команду або функцію, яку потрібно реалізувати. Ці прапори
полягають в наступному:

(основні) команди та функції в будь-якій реалізації
bwBASIC; це ядро ​​ANSI Minimal BASIC

ІНТЕРАКТИВНІ Команди, що підтримують інтерактивне програмування
навколишнє середовище

COMMON_CMDS Команди за межами ANSI Minimal BASIC, які є поширеними
до повного ANSI BASIC і Microsoft BASIC

COMMON_FUNCS Функції за межами ядра ANSI Minimal BASIC, але
загальний як для ANSI Full BASIC, так і в стилі Microsoft
ОСНОВНІ сорти

UNIX_CMDS Команди, які потребують каталогу в стилі Unix і
підпрограми середовища, не зазначені в C

STRUCT_CMDS Команди, що стосуються структурованого програмування; всі
з них є частиною повного стандарту ANSI BASIC

ANSI_FUNCS Функції, унікальні для ANSI Full BASIC

MS_CMDS Команди, унікальні для Microsoft BASIC

MS_FUNCS Функції, унікальні для Microsoft BASIC

------------------------------------------

Функція: ABS (число)

Опис: ABS повертає абсолютне значення аргументу «число».

Залежності: (основне)

------------------------------------------

Функція: ASC( рядок$)

Опис: ASC повертає код ASCII для першої літери
аргумент string$.

Залежності: MS_FUNCS

------------------------------------------

Функція: ATN (число)

Опис: ATN повертає значення арктангенса аргументу "число"
в радіанах.

Залежності: (основне)

------------------------------------------

Команда: назва підпрограми CALL

Опис: CALL викликає названу підпрограму (див. SUB і END SUB).

Залежності: STRUCT_CMDS

------------------------------------------

Команда: CASE ELSE | IF частковий вираз | постійний

Опис: CASE вводить елемент оператора SELECT CASE
(див. ВИБІР ВИПАДУ). CASE IF вводить умовний
SELECT CASE елемент, а CASE ELSE вводить a
за замовчуванням елемент SELECT CASE.

Залежності: STRUCT_CMDS

------------------------------------------

Команда: CHAIN ​​[MERGE] ім'я файлу [, номер рядка] [, ALL]

Опис: CHAIN ​​передає керування іншій програмі BASIC.
Змінні, оголошені COMMON (qv), будуть передані
до нової програми.

Залежності: COMMON_CMDS

------------------------------------------

Команда: CHDIR шлях $

Опис: CHDIR змінює поточний каталог на вказаний
за аргументом pathname$.

Залежності: UNIX_CMDS

------------------------------------------

Функція: CHR$( число )

Опис: CHR$ повертає односимвольний рядок із символом
відповідний коду ASCII, зазначеному аргументом
'число'.

Залежності: COMMON_FUNCS

------------------------------------------

Функція: CINT (число)

Опис: CINT повертає усічене ціле число для аргументу
'число'.

Залежності: MS_FUNCS

------------------------------------------

Команда: CLEAR

Опис: CLEAR встановлює для всіх числових змінних 0 і всі
рядкові змінні до нуля.

Залежності: COMMON_CMDS

------------------------------------------

Команда: ЗАКРИТИ [[#]номер файлу]...

Опис: CLOSE закриває файл, позначений номером файлу
(див. ВІДКРИТИ).

Залежності: COMMON_CMDS

------------------------------------------

Команда: CLS

Опис: CLS очищає екран дисплея (IBM і сумісні
тільки з версії 2.10).

Залежності: IMP_IQC і IMP_CMDLOC

------------------------------------------

Команда: CMDS

Опис: CMDS — це команда налагодження, яка друкує список
усіх реалізованих команд bwBASIC.

Залежності: DEBUG

------------------------------------------

Команда: COMMON змінна [, змінна...]

Опис: COMMON позначає змінні, які будуть передані в CHAINed
програма (див. ЛАНЦЮГ).

Залежності: COMMON_CMDS

------------------------------------------

Функція: COS (число)

Опис: COS повертає косинус аргументу "число"
в радіанах.

Залежності: (основне)

------------------------------------------

Функція: CSNG (число)

Опис: CSNG — це псевдофункція, яка не має впливу під
bwBASIC. Він реплікує команду типу Microsoft
це перетворило б "число" на одинарну точність.

Залежності: MS_FUNCS

------------------------------------------

Функція: CVD (рядок$)

Опис: CVD перетворює аргумент string$ у bwBASIC
число (точність не має значення в bwBASIC, оскільки
bwBASIC числа мають лише одну точність).

Примітки щодо реалізації:

CVD(), CVI(), CVS(), MKI$(), MKD$(), MKS$(): ці функції
реалізовані, але залежать від а) розмірів цілого числа,
float і подвійні значення для певних систем, і b) як
певні версії C зберігають ці числові значення. The
Це означає, що файли даних створюються за допомогою цих функцій
на мікрокомп'ютері на базі DOS може бути неправильно перекладено
від bwBASIC, що працює на комп'ютері на базі Unix. Так само дані
файли, створені bwBASIC, скомпільовані однією версією C, можуть не бути
читається bwBASIC, скомпільованим іншою версією C (навіть під
та сама операційна система). Тому будьте обережні з цими.

Залежності: MS_FUNCS

------------------------------------------

Функція: CVI( рядок$ )

Опис: CVI перетворює аргумент string$ у bwBASIC
число (точність не має значення в bwBASIC, оскільки
bwBASIC числа мають лише одну точність; Дивись також
примітка про ССЗ).

Залежності: MS_FUNCS

------------------------------------------

Функція: CVS( рядок$)

Опис: CVI перетворює аргумент string$ у bwBASIC
число (точність не має значення в bwBASIC, оскільки
bwBASIC числа мають лише одну точність; Дивись також
примітка про ССЗ).

Залежності: MS_FUNCS

------------------------------------------

Команда: DATA constant[,constant]...

Опис: DATA зберігає числові та рядкові константи
доступ до READ (qv).

Залежності: (основне)

------------------------------------------

Функція: DATE$

Опис: DATE$ повертає поточну дату на основі дати комп’ютера
внутрішній годинник у вигляді рядка у вигляді "РРРР-ММ-ДД".
Як реалізовано в bwBASIC, DATE$ не можна використовувати для
призначення (тобто встановити системну дату).

Примітка: зараз bwBASIC (v2.10) не дозволяє призначати
до функції.

Залежності: COMMON_FUNCS

------------------------------------------

Команда: DEF FNname(arg...)] = вираз

Опис: DEF визначає функцію, написану користувачем. Ця функція
хоча відповідає реалізації типу Microsoft
у bwBASIC DEF є робочим еквівалентом FUNCTION.

Залежності: (основне)

------------------------------------------

Команда: DEFDBL буква[-літера](, буква[-літера])...

Опис: DEFDBL оголошує змінні з однолітерними іменами
як числові змінні (точність не має значення в
bwBASIC).

Залежності: MS_CMDS

------------------------------------------

Команда: DEFINT буква[-літера](, буква[-літера])...

Опис: DEFINT оголошує змінні з однолітерними іменами
як числові змінні (точність не має значення в
bwBASIC).

Залежності: MS_CMDS

------------------------------------------

Команда: DEFSNG буква[-літера](, буква[-літера])...

Опис: DEFSNG оголошує змінні з однолітерними іменами
як числові змінні (точність не має значення в
bwBASIC).

Залежності: MS_CMDS

------------------------------------------

Команда: DEFSTR буква[-літера](, буква[-літера])...

Опис: DEFSTR оголошує змінні з однолітерними іменами
як рядкові змінні.

Залежності: MS_CMDS

------------------------------------------

Команда: DELETE рядок[-line]

Опис: DELETE видаляє рядки програми, позначені
аргумент(и). Якщо ви хочете використовувати DELETE для не-
пронумеровані програми, спочатку використовуйте DO NUM, потім DELETE,
потім DO UNNUM.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Команда: змінна DIM(елементи...)[змінна(елементи...)]...

Опис: DIM визначає змінні, які мають більше однієї
елемент в одному вимірі, тобто в масиві
змінні.

Примітка. Як реалізовано в bwBASIC, DIM приймає тільки
дужки як роздільники для змінних полів.
(Деякі BASIC дозволяють використовувати квадратні дужки.)

Залежності: (основне)

------------------------------------------

Команда: DO NUM|UNNUM

Опис: DO NUM нумерує всі рядки програми. Перший
рядку дається число 10, а наступні рядки
нумеруються послідовно кратними 10. DO
UNNUM видаляє всі номери рядків із програми.
Зверніть увагу, що ці функції нічого не роблять для рядка
числа, наприклад, після оператора GOSUB або GOTO;
ці команди не можна використовувати як заміну
RENUM (доступно в деяких системах, але не bwBASIC).
Однак за допомогою цих команд можна розвиватися
ненумеровані програми, вводячи нові рядки з цифрами,
потім запустіть DO UNNUM, щоб видалити номери рядків.
Разом з LOAD і SAVE (qv) можна використовувати
bwBASIC як примітивний текстовий редактор.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Команда: DO [вираз WHILE]

Опис: DO реалізує ряд форм циклів програми.
DO...LOOP просто цикли; єдиний вихід - мимо
ВИХІД; цикл DO WHILE...LOOP, а "вираз".
true (це еквівалентно старшому WHILE-WEND
цикл, також реалізований в bwBASIC); ЗРОБИТИ... ПЕТЛЯ ДО
циклів, доки вираз після UNTIL не стане істинним.

Залежності: STRUCT_CMDS

------------------------------------------

Команда: EDIT

Опис: EDIT — це псевдокоманда, яка викликає текстовий редактор
вказано у змінній BWB.EDITOR$ для редагування
програма в пам'яті. Після дзвінка до текстового редактора,
(відредагована) програма перезавантажується в пам'ять. Користувач
зазвичай потрібно вказати дійсний шлях та ім’я файлу
BWB.EDITOR$ перед цією командою буде корисним.

Залежності: COMMON_CMDS

------------------------------------------

Команда: ІНШЕ

Опис: ELSE вводить умову за замовчуванням у багаторядковому IF
Заява

Залежності: STRUCT_CMDS

------------------------------------------

Команда: ELSEIF

Опис: ELSEIF вводить вторинну умову в мульти-
рядок оператор IF.

Залежності: STRUCT_CMDS

------------------------------------------

Команда: END IF | ФУНКЦІЯ | ВИБЕРІТЬ | SUB

Опис: END IF завершує багаторядковий оператор IF. КІНЕЦЬ ФУНКЦІЯ
завершує визначення багаторядкової функції. END SELECT
завершує оператор SELECT CASE. END SUB завершує мульти-
визначення підпрограми рядка.

Залежності: STRUCT_CMDS

------------------------------------------

Команда: ENVIRON змінна-рядок$ = рядок$

Опис: ENVIRON встановлює змінну середовища, визначену за допомогою
змінна-рядок$ до рядка$.

Можна відзначити, що це відрізняється від реалізації
ENVIRON в деяких версіях BASIC, але ENVIRON від bwBASIC
дозволяє використовувати змінні BASIC по обидва боки від рівних
знак. Зверніть увагу, що функція ENVIRON$() відрізняється від функції
команду, і пам’ятайте про те, що в деяких операційних системах
змінна середовища, встановлена ​​в програмі, не буде передана
до його батьківської оболонки.

Залежності: UNIX_CMDS

------------------------------------------

Функція: ENVIRON$(змінна-рядок$)

Опис: ENVIRON$ повертає змінну середовища, пов’язану з
ім'я змінної-рядок$.

Залежності: MS_FUNCS

------------------------------------------

Функція: EOF (номер пристрою)

Опис: EOF повертає TRUE (-1), якщо пристрій, пов’язаний з
номер пристрою знаходиться в кінці файлу, інакше він
повертає FALSE (0).

Залежності: MS_FUNCS

------------------------------------------

Команда: ERASE змінна[, змінна]...

Опис: ERASE видаляє масив змінних із програми.

Залежності: COMMON_CMDS

------------------------------------------

Функція: ERL

Опис: ERL повертає номер рядка з останньою помилкою.

Залежності: MS_FUNCS

------------------------------------------

Функція: ERR

Опис: ERR повертає номер помилки останньої помилки.

Зауважте, що якщо PROG_ERRORS було визначено, коли є bwBASIC
скомпільована, змінна ERR буде неправильно встановлена
помилки. Це працює лише тоді, коли використовуються стандартні повідомлення про помилки.

Залежності: MS_FUNCS

------------------------------------------

Команда: номер помилки

Опис: ERROR імітує помилку, тобто відображає повідомлення
підходить для цієї помилки. Ця команда корисна
письмово ПОМИЛКА підпрограм GOSUB, які можна ідентифікувати
кілька помилок для спеціальної обробки, а потім ERROR ERR
(тобто обробка за замовчуванням) для всіх інших.

Залежності: COMMON_CMDS

------------------------------------------

Команда: EXIT [FOR]

Опис: EXIT сам виходить із циклу DO...LOOP;
EXIT FOR виходи з циклу FOR...NEXT.

Залежності: STRUCT_CMDS

------------------------------------------

Функція: EXP (число)

Опис: EXP повертає експоненціальне значення "число".

Залежності: (основне)

------------------------------------------

Команда: FIELD [#] номер-пристрою, число AS рядок-змінна$ [, число AS рядок-змінна$...]

Опис: FIELD виділяє місце у випадковому файловому буфері для пристрою
позначається номером пристрою, розподіляючи «кількість» байтів
і присвоєння байтів у цій позиції змінній
рядкова змінна$.

Залежності: COMMON_CMDS

------------------------------------------

Команда: FILES filespec$

Опис: FILES — це псевдокоманда, яка викликає програму каталогу
зазначено у змінній BWB.FILES$ з аргументом
filespec$. Зазвичай користувач повинен встановити цю змінну
перед використанням FILES. Наприклад, для комп'ютерів типу ПК,

BWB.FILES$ = "DIR"

працюватиме для машин Unix,

BWB.FILES$ = "ls -l"

і т.п.

Залежності: COMMON_CMDS

------------------------------------------

Команда: FNCS

Опис: CMDS — це команда налагодження, яка друкує список
усіх попередньо визначених функцій bwBASIC.

Залежності: DEBUG

------------------------------------------

Команда: FUNCTION

Опис: FUNCTION зазвичай вводить визначення функції
закінчується на END FUNCTION. У bwBASIC, FUNCTION і
DEF є робочими еквівалентами, тому можна використовувати будь-який
з однорядковими визначеннями функцій або з кількома
визначення рядка закінчуються END FUNCTION.

Залежності: STRUCT_CMDS

------------------------------------------

Команда: FOR counter = start TO finish [КРОК приріст]

Опис: FOR ініціює цикл FOR-NEXT зі змінною
«лічильник» спочатку встановлено на «початок» і збільшується
кроками "збільшення" (за замовчуванням 1) до "лічильник"
дорівнює «закінчити».

Залежності: (основне)

------------------------------------------

Команда: GET [#] номер пристрою [, номер запису]

Опис: GET зчитує наступний запис із файлу з довільним доступом
або пристрій у буфер, пов’язаний із цим файлом.
Якщо вказано номер запису, команда GET зчитує файл
зазначений запис.

Залежності: COMMON_CMDS

------------------------------------------

Команда: рядок GOSUB | етикетці

Опис: GOSUB ініціює виклик підпрограми до лінії (або мітки)
вказано. Підпрограма повинна закінчуватися на RETURN.

Залежності: (основне), але STRUCT_CMDS для міток

------------------------------------------

Команда: GOTO рядок | етикетці

Опис: GOTO розгалужує виконання програми до вказаного рядка
(або етикетку).

Залежності: (основне), але STRUCT_CMDS для міток

------------------------------------------

Функція: HEX$(число)

Опис: HEX$ повертає рядок із шістнадцятковим (основа 16)
значення для 'числа'.

Залежності: MS_FUNCS

------------------------------------------

Команда: вираз IF THEN [оператор [оператор ELSE]]

Опис: IF оцінює "вираз" і виконує THEN
твердження, якщо воно істинне або (необов’язково)
Оператор ELSE, якщо він FALSE. Якщо STRUCT_CMDS
встановлено на TRUE, bwBASIC дозволяє багаторядкове IF
оператори з випадками ELSE і ELSEIF, закінчення
з END IF.

Залежності: (ядро), STRUCT_CMDS для багаторядкових операторів IF

------------------------------------------

Функція: INKEY$

Опис: INKEY$ зчитує стан клавіатури, причому одиночний
натискання клавіші, якщо є. Якщо натискання клавіш недоступне,
тоді INKEY$ негайно повертає нульовий рядок ("").
Наразі (v2.10) реалізовано лише в bwx_iqc.c.

Залежності: IMP_IQC і IMP_CMDLOC

------------------------------------------

Команда: INPUT [# номер-пристрою]|[;]["prompt string";]список змінних

Опис: INPUT дозволяє вводити дані з терміналу або пристрою
визначений номером пристрою. Якщо термінал, «підказка
рядок» виводиться, а вхід призначається для
визначені відповідні змінні.

bwBASIC не підтримує додаткову функцію INPUT
який пригнічує повернення каретки та переведення рядка в кінці
входу. Це пояснюється тим, що C сам по собі нічого не забезпечує
засоби введення, відмінні від рядків із закінченням CR-LF.

Залежності: (основне)

------------------------------------------

Функція: INSTR( [початкова позиція,] string-searched$, string-pattern$)

Опис: INSTR повертає позицію, в якій рядок-шаблон$
зустрічається у string-searched$, починаючи з початкової позиції.
Як реалізовано в bwBASIC, INSTR не можна використовувати для
доручень.

Примітка: зараз bwBASIC (v2.10) не дозволяє призначати
до функції.

Залежності: MS_FUNCS

------------------------------------------

Функція: INT (число)

Опис: INT повертає найбільше ціле число, менше або дорівнює
аргумент «число». Зверніть увагу, що це не "урізаний"
ціла функція, про яку див. CINT.

Залежності: (основне)

------------------------------------------

Команда: KILL ім'я файлу$

Опис: KILL видаляє файл, зазначений у file-name$.

Залежності: UNIX_CMDS

------------------------------------------

Функція: LEFT$( рядок$, кількість пробілів)

Опис: LEFT$ повертає підрядок string$ з кількістю пробілів
зліва (початку) рядка). Як реалізовано
у bwBASIC його не можна використовувати для призначення.

Залежності: MS_FUNCS

------------------------------------------

Функція: LEN( рядок$)

Опис: LEN повертає довжину рядка $ в байтах.

Залежності: COMMON_FUNCS

------------------------------------------

Команда: LET змінна = вираз

Опис: LET призначає значення "виразу" змінній.
Як зараз реалізовано, bwBASIC підтримує неявний LET
твердження (наприклад, "X = 4.5678" на початку
рядок або відрізок, але не підтримує присвоєння
до кількох змінних (наприклад, "x, y, z = 3.141596").

Залежності: (основне)

------------------------------------------

Команда: LINE INPUT [[#] номер-пристрою,]["рядок запиту";] рядок-змінна$

Опис: LINE INPUT зчитує весь рядок з клавіатури або файлу
або пристрій у рядкову змінну$. Якщо вхід з
клавіатури (stdin), тоді буде надруковано "рядок підказки".
спочатку. На відміну від INPUT, LINE INPUT читає цілий рядок,
не зупиняється для елементів даних, розділених комами.

Залежності: COMMON_CMDS

------------------------------------------

Команда: рядок LIST[-line]

Опис: LIST перераховує рядки програми, як зазначено в його аргументі.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Команда: LOAD ім'я файлу

Опис: LOAD завантажує програму ASCII BASIC в пам'ять.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Функція: LOC (номер пристрою)

Опис: LOC повертає наступний запис з операторами GET або PUT
буде використовувати.

Залежності: MS_FUNCS

------------------------------------------

Команда: LOCATE рядок, стовпець

Опис: LOCATE адресує курсор до вказаного рядка і
колонка. Наразі (v2.10) реалізовано лише в bwx_iqc.c.

Залежності: IMP_IQC і IMP_CMDLOC

------------------------------------------

Функція: LOF (номер пристрою)

Опис: LOF повертає довжину файлу (вказується номером пристрою)
у байтах.

Залежності: MS_FUNCS

------------------------------------------

Функція: LOG(число)

Опис: LOG повертає натуральний логарифм аргументу «число».

Залежності: (основне)

------------------------------------------

Команда: LOOP [UNTIL вираз]

Опис: LOOP завершує цикл програми: див. DO.

Залежності: STRUCT_CMDS

------------------------------------------

Команда: LSET string-variable$ = вираз

Опис: LSET передає дані з «виразу» в ліву сторону
сторона рядкової змінної або поля буфера довільного доступу.

Залежності: COMMON_CMDS

------------------------------------------

Команда: MERGE ім'я файлу

Опис: MERGE додає до програми рядки програми з 'file-name'
в пам'яті. На відміну від LOAD, він не очищає програму
на даний момент в пам'яті.

Залежності: COMMON_CMDS

------------------------------------------

Функція: MID$( рядок$, початкова позиція в рядку[, кількість пробілів ])

Опис: MID$ повертає підрядок string$, що починається з
start-position-in-string і продовження для
кількість пробілів байтів.

Залежності: MS_FUNCS

------------------------------------------

Команда: ім'я шляху MKDIR$

Опис: MKDIR створює новий шлях до каталогу, як зазначено в
ім'я шляху$.

Залежності: UNIX_CMDS

------------------------------------------

Функція: MKD$ (число)

Опис: MKD$, MKI$ і MKS$ всі еквівалентні в bwBASIC.
Вони перетворюють числове значення 'number' в рядок
який можна зберегти у більш стиснутому вигляді у файлі
(особливо для випадкового доступу до файлів). Оскільки bwBASIC робить
не розпізнають відмінності в точності цих команд
є фактично еквівалентними.

Залежності: MS_FUNCS

------------------------------------------

Функція: MKI$(число)

Опис: еквівалент MKD$ (qv)

Залежності: MS_FUNCS

------------------------------------------

Функція: MKS$ (число)

Опис: еквівалент MKD$ (qv).

Залежності: MS_FUNCS

------------------------------------------

Команда: NAME старе-ім'я-файлу AS new-file-name

Опис: NAME перейменовує існуючий файл (стара назва-файлу) як
ім'я нового файлу.

Залежності: UNIX_CMDS

------------------------------------------

Команда: НОВИНКА

Опис: NEW видаляє програму з пам'яті та очищає все
змінні.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Команда: NEXT [контр-змінна]

Опис: NEXT знаходиться в кінці циклу FOR-NEXT; див. ДЛЯ.

Залежності: (основне)

------------------------------------------

Функція: OCT$(число)

Опис: OCT$ повертає рядок із вісімковим числом (основа 8)
представлення «числа».

Залежності: MS_FUNCS

------------------------------------------

Команда: ON змінної GOTO|GOSUB рядок[,line,line,...]

Опис: ON або розгалужується (GOTO), або викликає підпрограму
(GOSUB) на основі округленого значення змінної;
якщо він дорівнює 1, перший рядок називається, якщо 2, то другий
лінія називається тощо.

Залежності: (основне)

------------------------------------------

Команда: ON ERROR GOSUB line|label

Опис: ON ERROR встановлює підпрограму обробки помилок. Побачити
також ПОМИЛКА.

Залежності: COMMON_CMDS, STRUCT_CMDS для міток

------------------------------------------

Команда: OPEN "O"|"I"|"R", [#]номер пристрою, ім'я файлу [,довжина запису]
ім'я файлу FOR INPUT|OUTPUT|APPEND AS [#]номер пристрою [LEN = довжина запису]

Опис: OPEN виділяє пам'ять із довільним доступом для доступу до диска
файл або інший пристрій. Зверніть увагу, що це дві досить різні форми
оператора OPEN підтримуються. У першій формі,
«О» (зверніть увагу, що ці літери мають бути в лапках
позначки) позначає послідовний вихід, «I» позначає послідовний
вхід, а «R» позначає вхід і вихід із довільним доступом.
Після відкриття можна виконати будь-яку кількість операцій
на пристрої (див. № WRITE, INPUT, PRINT тощо).

Залежності: COMMON_CMDS

------------------------------------------

Команда: номер OPTION BASE

Опис: OPTION BASE встановлює найнижче значення для індексів масиву,
або 0, або 1.

Залежності: (основне)

------------------------------------------

Функція: POS

Опис: POS повертає поточну позицію курсору в рядку.

Залежності: COMMON_FUNCS

------------------------------------------

Команда: PRINT [# номер-пристрою,][ВИКОРИСТАННЯ формат-рядок$;] вирази...

Опис: PRINT виводить текст на екран або у файл чи пристрій
визначений номером пристрою. У поточній реалізації
bwBASIC вирази, які будуть надруковані, повинні бути розділені символами
кома (виведення з вкладкою), крапка з комою (негайно
послідовний вихід) або знак плюс (миттєвий послідовний вихід
виведення шляхом конкатенації рядків). Вирази розділені
за допомогою пробілів або табуляції не підтримуються. Якщо вказано USING,
у форматі може з’явитися ряд позначок форматування
рядок:

! друкує перший символ рядка

\ друкує 2+x символів рядка, де x =
кількість пробілів між зворотною косою рискою

& поле рядка змінної довжини

# представляє одну цифру у вихідному форматі для
число

. десяткова кома в числі

+ знак числа (виведе + або -)

- завершуючий мінус після числа

** заповнити пробіли зірочками

$$ вивести знак долара перед числом

^^ вивести число в експоненційному форматі

_ вивести наступний символ буквально

Як зараз реалізовано, експоненційний формат
буде використовуватися компілятором C.

Залежності: (ядро), COMMON_FUNCS для USING

------------------------------------------

Команда: PUT [#] номер пристрою [, номер запису]

Опис: PUT виводить наступний доступний запис або запис
визначений номером запису до файлу або пристрою
позначається номером пристрою.

Залежності: COMMON_CMDS

------------------------------------------

Команда: QUIT

Опис: QUIT є синонімом СИСТЕМИ; з ІНТЕРАКТИВНИМ
середовища, він виходить з програми в
операційної системи (або програми, що викликає).

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Команда: RANDOMIZE number

Опис: RANDOMIZE запускає генератор випадкових чисел (див. RND).
У bwBASIC можна використовувати функцію ТАЙМЕР (qv).
щоб надати початкове "число" для випадкового числа
генератор

Залежності: (основне)

------------------------------------------

Команда: READ змінна[, змінна]...

Опис: READ зчитує значення з операторів DATA і призначає їх
значення до названих змінних. Типи змінних у READ
оператор повинен відповідати типам даних в операторах DATA
як вони відбуваються. Дивіться також ДАНІ та ВІДНОВЛЕННЯ.

Залежності: (основне)

------------------------------------------

Команда: рядок REM

Опис: REM дозволяє включати зауваження до програми. Як
в даний час реалізовано, вся лінія слідує
REM ігнорується інтерпретатором (таким чином, навіть якщо
Налаштовано MULTISEG_LINES, лінія REM не зможе
щоб знайти роздільник сегмента (":"), за яким слідує інший
відрізок лінії за допомогою команди. bwBASIC наразі цього не робить
реалізуйте використання одинарних лапок у стилі Microsoft
позначка для позначення зауважень.

Залежності: (основне)

------------------------------------------

Команда: рядок RESTORE

Опис: RESTORE скидає лічильники рядків і позицій для DATA
і оператори READ у верхній частині програмного файлу або
до початку вказаного рядка. (Наразі це
має бути номером рядка.)

Залежності: (основне)

------------------------------------------

Команда: ПОВЕРНУТИСЯ

Опис: RETURN завершує підпрограму, викликану GOSUB.

Залежності: (основне)

------------------------------------------

Функція: RIGHT$( рядок$, кількість пробілів)

Опис: RIGHT$ повертає підрядок рядок$ з кількістю пробілів
з правого (кінця) рядка). Як реалізовано
у bwBASIC його не можна використовувати для призначення.

Залежності: MS_FUNCS

------------------------------------------

Команда: шлях RMDIR

Опис: RMDIR видаляє шлях до каталогу, зазначений ім'ям шляху.

Залежності: UNIX_CMDS

------------------------------------------

Функція: RND (число)

Опис: RND повертає псевдовипадкове число. Значення «число».
ігнорується bwBASIC, якщо вказано. РАНДОМІЗАЦІЯ
команда (qv) повторно заповнює генератор випадкових чисел.

Залежності: (основне)

------------------------------------------

Команда: RSET string-variable$ = вираз

Опис: RSET передає дані з «виразу» до правого боку
сторона рядкової змінної або поля буфера довільного доступу.

Залежності: COMMON_CMDS

------------------------------------------

Команда: RUN [рядок][ім’я-файлу$]

Опис: RUN виконує програму в пам'яті. Якщо ім’я файлу$ є
надається, то вказаний файл завантажується в пам’ять
і виконано. Якщо вказано номер рядка, то виконання
починається з цієї лінії.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Команда: SAVE file-name$

Опис: SAVE зберігає програму в пам'яті у файл-name$. bwBASIC
зберігає файли лише у форматі ASCII.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Команда: вираз SELECT CASE

Опис: SELECT CASE вводить багаторядковий умовний вибір
заяву. Вираз, наданий як аргумент SELECT
CASE буде оцінено за допомогою операторів CASE, наведених нижче. The
Оператор SELECT CASE завершується командою END SELECT
Заява

Як зараз реалізовано, можна дотримуватись операторів CASE
за рядковими значеннями, але в даному випадку лише прості порівняння
(дорівнює, а не дорівнює) може виконуватися.

Залежності: STRUCT_CMDS

------------------------------------------

Функція: SGN (число)

Опис: SGN повертає знак аргументу «число», +1
для додатних чисел 0 для 0 і -1 для від’ємних чисел.

Залежності: (основне)

------------------------------------------

Функція: SIN (число)

Опис: SIN повертає синус аргументу "число"
в радіанах.

Залежності: (основне)

------------------------------------------

Функція: SPACE$(число)

Опис: SPACE$ повертає рядок пробілів "число"
байт завдовжки.

Залежності: MS_FUNCS

------------------------------------------

Функція: SPC (число)

Опис: SPC повертає рядок пробілів "число"
байт завдовжки.

Залежності: MS_FUNCS

------------------------------------------

Функція: SQR (число)

Опис: SQR повертає квадратний корінь аргументу «число».

Залежності: (основне)

------------------------------------------

Команда: СТОП

Опис: STOP перериває виконання програми. Як реалізовано під
bwBASIC, STOP видає сигнал SIGINT.

Залежності: (основне)

------------------------------------------

Функція: STR$( число )

Опис: STR$ повертає рядок із десятковим числом (основа 10)
представлення аргументу «число».

Залежності: COMMON_FUNCS

------------------------------------------

Функція: STRING$( число, ascii-значення|рядок$)

Опис: STRING$ повертає рядок "число" довжиною в байтах
або першого символу рядка$, або символу
відповідаючи на значення ASCII, значення ascii.

Залежності: MS_FUNCS

------------------------------------------

Команда: ім'я підпрограми SUB

Опис: SUB представляє іменовану багаторядкову підпрограму. The
Підпрограма викликається оператором CALL і закінчується
з оператором END SUB.

Залежності: STRUCT_CMDS

------------------------------------------

Команда: змінна SWAP, змінна

Опис: SWAP міняє місцями значення двох змінних. Дві змінні
має бути одного типу (числовий або рядковий).

Залежності: COMMON_CMDS

------------------------------------------

Команда: СИСТЕМА

Опис: SYSTEM виходить з bwBASIC до програми, що викликає або
(частіше) операційна система.

Залежності: ІНТЕРАКТИВНІ

------------------------------------------

Функція: TAB (число)

Опис: TAB виводить пробіли до стовпця, позначеного
"номер" досягнуто.

Залежності: (основне)

------------------------------------------

Функція: TAN (число)

Опис: TAN повертає тангенс аргументу "число"
в радіанах.

Залежності: (основне)

------------------------------------------

Функція: TIME$

Опис: TIME$ повертає поточний час на основі комп'ютера
внутрішній годинник у вигляді рядка у вигляді "HH-MM-SS".
Як реалізовано в bwBASIC, TIME$ не можна використовувати для
призначення (тобто встановити системний час).

Примітка: зараз bwBASIC (v2.10) не дозволяє призначати
до функції.

Залежності: COMMON_FUNCS

------------------------------------------

Функція: ТАЙМЕР

Опис: ТАЙМЕР повертає час у системному годиннику в секундах
минуло з півночі.

Залежності: MS_FUNCS

------------------------------------------

Команда: TROFF

Опис: TROOFF повороти об'єкта трасування; див. ТРОН.

Залежності: COMMON_CMDS

------------------------------------------

Команда: TRON

Опис: TRON вмикає засіб відстеження. Цей засіб буде друкувати
номер кожного рядка в квадратних дужках, як і програма
виконано. Це корисно при налагодженні програм з
номери рядків. Для налагодження ненумерованої програми за допомогою
TRON, спочатку зателефонуйте DO NUM, але не забудьте викликати DO UNNUM
перед тим, як зберегти програму пізніше.

Залежності: COMMON_CMDS

------------------------------------------

Функція: VAL( рядок$)

Опис: VAL повертає числове значення рядка$.

Залежності: COMMON_FUNCS

------------------------------------------

Команда: VARS

Опис: VARS — це команда налагодження, яка друкує список
всі визначені змінні, які мають глобальну область дії.

Залежності: DEBUG

------------------------------------------

Команда: WEND

Опис: WEND завершує цикл WHILE-WEND; див. ДОКИ.

Залежності: COMMON_CMDS

------------------------------------------

Команда: вираз WHILE

Опис: WHILE ініціює цикл WHILE-WEND. Петля закінчується с
WEND, а виконання повторюється через цикл as
поки «вираз» має значення TRUE (-1).

Залежності: COMMON_CMDS

------------------------------------------

Команда: WIDTH [# номер пристрою,] номер

Опис: WIDTH встановлює вихід екрана або пристрою на "число"
колонки. номер пристрою визначає пристрій
або файл для виведення.

Залежності: COMMON_CMDS

------------------------------------------

Команда: WRITE [# номер пристрою,] елемент [, елемент ]....

Опис: WRITE виводить змінні на екран або у файл
або пристрій, визначений номером пристрою. Коми
вставляються між виведенням виразів і рядками
беруться в лапки.

Залежності: COMMON_CMDS

------------------------------------------

6. ЗАВДАННЯ ЗМІННІ

BWB.EDITOR$
BWB.FILES$
BWB.PROMPT$
BWB.ВПРОВАДЖЕННЯ$

Команди EDIT і FILES є псевдокомандами, які запускаються
програми оболонки, названі у змінних BWB.EDITOR$ і BWB.FILES$,
відповідно. Значення за замовчуванням для цих змінних можуть
бути змінено в bwbasic.h (DEF_EDITOR і DEF_FILES), або вони
користувач може змінювати на льоту. Ідея може бути
ініціалізуйте ці змінні в "profile.bas" для конкретних
реалізації; наприклад, BWB.FILES$ можна визначити як
"ls -l" у системах Unix або "dir" у системах DOS.

Для встановлення підказки можна використовувати попередньо встановлену змінну BWB.PROMPT$
рядок для bwBASIC. Знову ж таки, пропонується, щоб користувач-
Вибране підказку можна налаштувати в файлі "profile.bas".
ініціалізується при кожному запуску bwBASIC. Зверніть увагу, що спец
символи можна додати до рядка підказки, наприклад,

BWB.PROMPT$ = "Гаразд"+CHR$(10)

видасть підказку "Ok", а потім рядок.

Попередньо встановлена ​​змінна BWB.IMPLEMENTATION$ поверне "TTY" для
реалізацію bwx_tty і поверне "IQC" для
Реалізація IBM PC або сумісна з QuickC (bwx_iqc).
Це може бути корисно для визначення команд і функцій
(зокрема CLS, LOCATE та INKEY$) можуть бути доступні.

7. НЕВИКОНАННЯ КОМАНДІ ТА ФУНКЦІЇ, ТА ПОРЯДОК ДЕННИЙ ДЛЯ РОЗВИТКУ

Є деякі елементи, які не реалізовані так довго
частина стандартних БЕЙСІків, що їх відсутність здасться дивним.
Однак у кожному випадку їх реалізація потребувала б
функції, специфічні для системи або терміналу
що не може бути універсальним. Деякі конкретні приклади:

CLOAD Покладається на конвенції CP/M або MSDOS для двійкових файлів
виконувані файли.

ПРОДОВЖЕННЯ Дивіться РЕЗЮМЕ нижче (незнання програміста?).

DEF USR покладається на конвенції CP/M або MSDOS для двійкових файлів
виконувані файли.

FRE() Можливість повідомляти про обсяг вільної пам'яті
решта залежить від системи через різні моделі
виділення та доступу до пам'яті; отже це
можливість відсутня в ANSI або попередніх версіях
C і ця функція недоступна в bwBASIC.

INPUT$() C сам по собі не в змозі прочитати клавіатуру без звуку
введення, і може прочитати введення з клавіатури лише після a
Перевезення-повернення введено.

INP Викликає апаратні порти, як-от машинна мова
рутини, дуже специфічні для системи і не можуть
бути реалізованим лише на C.

LLIST Див. LPRINT нижче.

LPOS Дивіться LPRINT нижче.

LPRINT, LLIST тощо, вимагають доступу до пристрою принтера,
і це варіюється від однієї системи до іншої. Користувачі
можуть спробувати ВІДКРИТИ принтер самостійно
операційна система (наприклад, "/dev/lp" у системах Unix,
або "PRN" у DOS) і подивіться, чи можна роздрукувати
з bwBASIC таким чином.

NULL У цьому випадку я переконаний, що NULL більше не є
необхідно, оскільки зараз дуже мало принтерів вимагають значення NULL
в кінці рядків.

OUT Див. INP вище (виклики до апаратних портів).

PEEK() PEEK і POKE увімкнули для адресації попередні BASIC
конкретні місця пам'яті. Хоча bwBASIC
міг би реалізувати цю команду (POKE) і
цієї функції (PEEK()), обмеження буде
сильно обмежені різними системами для
доступ до пам'яті в різних системах.

POKE див. PEEK() вище.

RENUM Оскільки ненумеровані рядки можна ввести та
виконується під bwBASIC, цього не буде
можливо реалізувати процедуру RENUM.
Замість цього bwBASIC використовує DO NUM і DO UNNUM.

РЕЗЮМЕ Чи можливо це в C? Якщо так, то я
просто ще не зміг це зрозуміти.
Mea culpa (але не максимум).

USR Див. USR CALL і DEF вище (машинна мова
підпрограми).

VARPTR Див. PEEK і POKE вище.

ЗАЧЕКАЙТЕ Див. INP та OUT вище.

Існують інші команди, функції та деталі реалізації
над якими я працюю і які в порядку денному на майбутнє
версії bwBASIC. Цей порядок денний включає:

PARACT тобто здатність виконувати паралельні дії. Це
описано в ANSI BASIC, хоча я його не бачив
реалізовано раніше. Це запропонує грубу, не-
випереджувальна форма багатозадачності в межах обсягу
програми BASIC. Програмісти відзначають моменти, в яких
у bwBASIC вже є гачки для PARACT.

Комп’ютери типу ПК XMEM повинні мати можливість використовувати розширене
пам'ять. Якби ми могли використовувати розширену пам'ять для програми
рядки, змінні та визначення функцій, ми могли б
писати набагато довші програми. Це означало б,
однак досить серйозне переписування програми
щоб використовувати ручки пам’яті для цих функцій зберігання
замість прямих покажчиків пам'яті.

Windows Додавання дескрипторів пам'яті на додаток до
невипереджувальне виконання рядків програми (в a
груба форма, вже наявна) зробить це можливим
для розробки реалізацій для Windows і, можливо
для інших графічних інтерфейсів користувача. Але в якій формі
це потрібно приймати? Зараз я маю на увазі ОСНОВНИЙ
який буде працювати у фоновому режимі, лише відображаючись
як піктограма в графічному інтерфейсі, зі спливаючими редакторами
і вихідні вікна. Таким чином, інтерпретована мова
слугуватиме такій цілі, як "cron" (завдання
планувальник) в системах Unix. Можливо, у вас є
роздуми, які допомогли б мені в цьому.

Графіка Тут ми стикаємося з досить критичними відмінностями в різних
стилі та реалізації графіки, наприклад, між
GWBASIC, ANSI BASIC, VisualBASIC тощо. Але це так
можливо, що графічні команди та функції можуть
бути доданим. Усе це буде залежати від реалізації.

Стандарт ANSI для повного BASIC не визначає, який саме
команди або функції повинні бути реалізовані, і фактично стандарт
є дуже міцним. Можливо, жодна реалізація BASIC ніколи не буде
включає всі елементи, але деякі команди та функції ANSI, які
залишаються нереалізованими:

ДОСТУП
КУТ
ПЛОЩА
АРИФМЕТИКА
МАСІВ
ASK
BSTR
BVAL
СТЕЛЯ
КЛЕТКИ
CLIP
ЗБІР
CONNECT
COSH
ДАТА
DEBUG
DECIMAL
DECLARE
СТУПЕНІ
ПРИСТРІЙ
ВІДКРИТТЯ
DISPLAY
DOT
DRAW
ERASE
EVENT
ИСКЛЮЧЕНИЕ
ГРАФ
ПЕРЕКЛАДЧИК
IMAGE
KEY
LCASE
ЛІНІЇ
LOG10
LOG2
MAT
MIX
МНОГОТВАРТНІСТЬ
OUTIN
ВИХІД
ПРАКТ
КАРТИНА
ПІКСЕЛЬ
ПЛОТ
ТОЧКИ
РАДІАНИ
ВИЙТИ
ПЕРЕНОМЕР
REWRITE
ПОВЕРТИСЯ
КРУГЛИЙ
ВИХІПАТИ
ВІДПРАВИТИ
SHIFT
СІНХ
TANH
ТАЙМ-АУТ
СЛІД
ПЕРЕТВОРЕННЯ
ЗРУЧИТИ
ЗВ'ЯЗАНО
UCASE
VIEWPORT
ЗАЧЕКАЙТЕ
VIEWPORT
ШИРИНА ЗОНИ

8. ІСТОРІЯ ПРО БІВОДІ БАЗ

Цю програму спочатку розпочала у 1982 році моя бабуся, місіс.
Заклинання Верда з Бомонта, штат Техас. Вона писала програму за допомогою
компілятор ANSI C на комп'ютері Osborne I CP/M і хоча мій
дідусь (Локвуд Спелл) купив IBM PC за 256 тис
RAM моя бабуся не використовувала б його, перефразовуючи Джорджа Герберта
про те, що «хто не може в програмі 64k, не може в 512k».
Вона використовувала Microsoft BASIC і хоча нічого не мала проти
це вона неодноразово говорила, що не розуміє, чому Digital
Дослідження не «подали в суд на шкарпетки від Microsoft» для версії 1.0
MSDOS, і я вважаю, що вона сподівалася підірвати Microsoft
весь ринок і в кінцевому підсумку побудувати нову програмну імперію
Північний край Бомонта. Її зусилля з програмування були скорочені
трагічно коротка, коли її викинули з Бомонта в Порт
Приміський потяг Артура влітку 1986 року. Я знайшов джерело
код для bwBASIC на дискеті Осборна одинарної щільності в її в'язанні
сумку і врешті вдалося скопіювати все це на ПК
дискету. Я трохи переглянув його до цього випуску. ти
однак слід знати, що я сам історик, а не програміст.

9. КОМУНІКАЦІЯ:

електронна пошта: [захищено електронною поштою]

Жовтень 11, 1993 BWBASIC(1)

Використовуйте bwbasic онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad