戻る
Applesoft BASIC
apple][ : Apple Computer

apple][ apple][ plus

Applesoft BASICはMicrosoft社が開発したBASICである。
同社のapple][シリーズに提供されている。

apple I、][にROMで提供されていたInteger BASICとは異なり、単精度浮動小数点演算をサポートしている。
apple ][に対してはカセットで、apple][ plusではROMに搭載された。
ハイレゾグラフィック関連と数値関数以外はInteger BASICと互換性がある。

Microsoft BASICに存在していた一部命令はカットされている。
また、apple ][が持つグラフィック機能に対応した命令が追加された。

DOSから起動した場合はDOSコマンドも使用可能。

Applesoft BASIC簡易リファレンス
コマンド
表記凡例使用例説明
LISTLIST [行番号]
LIST [行番号][{- | ,}[行番号2]]
LIST
LIST 100-200
メモリ上のプログラムを表示する
指定した範囲の行番号を表示する
DELDEL 行番号1,行番号2DEL 100,200指定した範囲内のプログラムを削除する
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CONTCONTCONTSTOPキーやSTOP,ENDで終了したプログラムの実行を再開する
RUNRUN [行番号]RUN 100プログラムを実行する
行番号を指定した場合はその行から実行する
SAVESAVESAVEカセットテープにプログラムを保存する
LOADLOADLOADカセットテープからプログラムを読み込む
SHLOADSHLOAD [ファイル名]SHLOAD SHTカセットテープから描画テーブルを読み込む
STORESTORE 変数名SAVE ABカセットテープに変数を保存する
RECALLRECALL 変数名LOAD ABカセットテープから変数を読み込む
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
ENDENDENDプログラムを終了する
STOPSTOPSTOPプログラムを一時停止する
REMREM [注釈]REM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
GOSUBGOSUB 行番号GOSUB 1000サブルーチンを呼び出す
RETURNRETURNRETURNサブルーチンから復帰する
POPPOPPOPスタックから最新のリターンアドレスを削除し、次のRETURNで2番目に実行されたGOSUBの次の行に制御を移す。
GOTOGOTO 行番号GOTO 1000指定した行番号から実行する
IF...THEN | GOTO...IF 論理式 {THEN 文 | GOTO 行番号}IF A=0 {THEN END | GOTO 10}論理式の条件判断をする
ON...GOTOON 式 GOTO 行番号[,行番号2][,...]ON A GOTO 100,200式の値に応じて指定された行番号へ分岐する
ON...GOSUBON 式 GOSUB 行番号[,行番号2][,...]ON A GOSUB 100,200式の値に応じて指定された行番号のサブルーチンを呼び出す
ONERR GOTOONERR GOTO 行番号ONERR GOTO 100エラー発生時、指定された行番号へ分岐する
RESUMERESUMERESUMEエラー処理から復帰する
[戻る]
ステートメント:変数関連
表記凡例使用例説明
CLEARCLEARCLEAR変数を初期化する
LOMEMLOMEM:アドレスLOMEM:0プログラム領域の下限を指定する
HIMEMHIMEM:アドレスHIMEM:32767プログラム領域の上限を指定する
INPUTINPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
LETLET 変数=式LET A=1変数に値を代入する(LETは省略できる)
DATADATA 定数[,定数2][,...]DATA "TEST",765READで読み込むデータを定義する
READREAD 変数[,変数2][,...]READ A$,BDATAで定義したデータを変数に代入する
RESTORERESTORE [行番号]RESTORE 1000READで読み込むDATAの先頭行を設定する
DEF FNDEF FN関数名(パラメータ1[,パラメータ2][,...])=定義式DEF FNTEST(X,A,B)=X^2+AX+Bユーザ定義関数を定義する
DIMDIM 変数名(最大値[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
CALLCALL アドレスCALL -922指定したアドレスのマシン語サブルーチンを呼び出す
POKEPOKE アドレス,数式POKE 0,128指定したアドレスに値を書き込む
WAITWAIT アドレス,マスク[,マスク2]WAIT 49347,15,12アドレスの値がマスク値のbit値と真のとき、次の行からプログラムを再開する
[戻る]
ステートメント:ポート関連
表記凡例使用例説明
PR#PR# ポート番号PR# 2指定したポートへデータを出力する
IN#IN# ポート番号IN# 2指定したポートからデータを入力する
[戻る]
ステートメント:画面関連
表記凡例使用例説明
HOMEHOMEHOMEテキスト画面をクリアし、カーソルをHOMEポジション(左上)に移動する
PRINT{PRINT | ?} [式[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
HTABHTAB X座標(1〜80)HTAB 10カーソルを指定したX座標へ移動する
VTABVTAB Y座標(1〜24)VTAB 10カーソルを指定したY座標へ移動する
COLORCOLOR=カラーコード(0〜15)COLOR=12ローレゾグラフィックのカラーを指定する
HCOLORHCOLOR=カラーコード(0〜7)HCOLOR=1ハイレゾグラフィックのカラーを指定する
SPEEDSPEED=速度(0〜255)SPEED=50テキストの表示速度を指定する(デバイスの送受信速度も兼ねる)
NORMALNORMALNORMALテキスト表示を標準モードにする
INVERSEINVERSEINVERSEテキスト表示を反転モードにする
FLASHFLASHFLASHテキスト表示を点滅モードにする
TEXTTEXTTEXTテキストモードにする
GRGRGRグラフィック画面をクリアし、ローレゾグラフィックモードにする
HGRHGRHGRグラフィック画面をクリアし、ハイレゾグラフィックモード(縦160)にする
HGR2HGR2HGR2グラフィック画面をクリアし、ハイレゾグラフィックモード(縦192:フル)にする
HLINHLIN X1,X2 AT YHLIN 10,20 AT 10Y座標にX1からX2に直線を描画する(ローレゾ)
VLINVLIN Y1,Y2 AT XVLIN 10,20 AT 10X座標にY1からY2に直線を描画する(ローレゾ)
PLOTPLOT X(0〜39),Y(0〜47)PLOT 10,20指定した座標にドットを描画する(ローレゾ)
ROTROT=角度(0〜63)ROT=45DRAW及びHDRAWでの角度を指定する
SCALESCALE=スケール(1〜255)SCALE=10DRAW及びHDRAWでのスケールを指定する
指定したスケールか描画テーブルの定義の大きい方の回数分描画する
DRAWDRAW テーブル番号 [AT X,Y]DRAW 4
DRAW 4 AT 10,20
(ハイレゾ)
XDRAWXDRAW テーブル番号 [AT X,Y]XDRAW 4
4 AT 10,20
(ハイレゾ)
HPLOTHPLOT X1(0〜279),Y1(0〜191)
[X1,Y1] TO X2,Y2
HPLOT 10,10
HPLOT 10,20 TO 30,40
指定位置にドットを描画する(ハイレゾ)
X1,Y1からX2,Y2へ直線を描画する(ハイレゾ)
X1,Y1を省略した場合は直前に指定した座標から描画する
[戻る]
ステートメント:その他
表記凡例使用例説明
GETGET 文字変数GET K$実行時に押下されているキーの文字を文字変数に代入する
TRACETRACETRACEトレースモードにする
NOTRACENOTRACENOTRACEトレースモードを解除する
[戻る]
文字列関数
表記凡例使用例説明
ASCASC(文字列式)ASC("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式)CHR$(41)指定したキャラクタコードの文字を返す
STR$STR$(数式)STR$(A)数値を文字列に変換する
LEFT$LEFT$(文字列式,式)LEFT$(A$,2)文字列の左側から式で指定した桁数の文字列を返す
MID$MID$(文字列式,式1[,式2])MID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す
RIGHT$RIGHT$(文字列式,式)RIGHT$(A$,2)文字列の右側から式で指定した桁数の文字列を返す
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
SPCSPC(数式)SPC(A)指定した長さの空白を返す(出力文字式内でのみ使用)
TABTAB(数式)TAB(A)指定した位置まで空白を返す(出力文字式内でのみ使用)
[戻る]
数値関数
表記凡例使用例説明
INTINT(数式)INT(A)数式の整数値を返す(数式の値を超えない整数値)
SGNSGN(数式)SGN(A)数式の符号を返す
RNDRND(数式)RND(A)0以上1未満の乱数を返す
正数: 次の乱数を発生する(省略した場合も同様)
負数: 乱数を初期化する
0   : 同じ乱数を生成する
[戻る]
数学関数
表記凡例使用例説明
ABSABS(数式)ABS(-1000)絶対値を返す
SINSIN(数式)SIN(3.14)正弦(サイン)の値を返す
COSCOS(数式)COS(3.14)余弦(コサイン)の値を返す
TANTAN(数式)TAN(3.14)正接(タンジェント)の値を返す
ATNATN(数式)ATN(3.14)逆正接(アークタンジェント)の値を返す
EXPEXP(数式)EXP(1)自然対数の低(e)に対する指数関数の値を返す
LOGLOG(数式)LOG(1)自然対数の値を返す
SQRSQR(数式)SQR(2)平方根の値を返す
[戻る]
その他関数
表記凡例使用例説明
FREFRE(機能コード)FRE(0)使用可能なメモリサイズを返す(機能コードはダミー)
PEEKPEEK(アドレス)PEEK(16384)指定したアドレスの値を返す
USRUSR(数式)USR(A)メモリアドレス$0A〜$0C番地の値が示すアドレスにジャンプする(引数はアキュムレータに渡される)
POSPOS(機能コード)POS(0)現在のXカーソル座標の値を返す(機能コードはダミー)
SCRNSCRN(X1,Y1)SCRN(10,20)指定した座標のカラーコードを返す(ローレゾ)
PDLPDL(パドル番号)PDL(1)指定したパドルの値を返す
[戻る]
DOS(3.x)コマンド
表記凡例使用例説明
CATALOGCATALOGCATALOGファイル・ディレクトリ一覧を表示する
RUNRUN ファイル名RUN TESTディスクからプログラムを読み込んで、実行する
行番号を指定した場合はその行から実行する
SAVESAVE ファイル名SAVEディスクにプログラムを保存する
LOADLOAD ファイル名LOADディスクからプログラムを読み込む
BSAVEBSAVE ファイル名.Aアドレス,L長さBSAVE TESTディスクにバイナリファイルを保存する
BLOADBLOAD ファイル名[,Aアドレス]BLOAD TESTディスクからバイナリファイルを読み込む
BRUNBRUN ファイル名BRUN TESTディスクからバイナリファイルを読み込み、実行する
VERIFYVERIFY ファイル名VERIFY TESTファイルをチェックする
INITINIT ファイル名INIT TESTディスクをフォーマットし、ファイルを初期プログラムとして保存する
EXECEXEC ファイル名EXEC TESTテキストファイルの内容を実行する(キーボード入力相当)
DELETEDELETE ファイル名DELETE TESTファイルを削除する
RENAMERENAME 旧ファイル名,新ファイル名RENAME OLD,NEWファイル名を変更する
LOCKLOCK ファイル名LOCK TESTファイルを保護する
UNLOCKUNLOCK ファイル名UNLOCK TESTファイルの保護を解除する
MONMON [,C][,I][,O]MONコマンドトレースモードにする
NOMONNOMON [,C][,I][,O]NOMONコマンドトレースモードを解除する
MAXFILESMAXFILES ファイル数MAXFILES 3最大ファイル数を設定する
FPFPFPApplesoft BASICに切り替える(Applesoft BASICが用意されているとき)
INTINTINTInteger BASICに切り替える(Integer BASICが用意されているとき)
OPENOPEN ファイル名[,L 長さ]OPEN TXTテキストファイルをOPENする
APPENDAPPEND ファイル名APPEND TXTテキストファイルにAPPENDする
CLOSECLOSE [ファイル名]CLOSEテキストファイルをCLOSEする
POSITIONPOSITION ファイル名[,R位置]POSITION TXTテキストファイルのインデックスを指定する
READREAD ファイル名[,R位置]READ TXTテキストファイルを読み込む
WRITEWRITE ファイル名[,R位置]WRITE TXTテキストファイルに書き込む
[戻る]

※ PRINT
; : 式を続けて表示する(A;B) 例 1;2
1 2
, : 式をTABで区切って表示する(A,B) 例 1,2
1         2

[戻る]

※ COLOR

ローレゾ
0Black
1Magenta
2Dark Blue
3Violet
4Dark Green
5Grey
6Medium Blue
7Light Blue
8Brown
9Orange
10Grey 2
11Pink
12Bright Green
13Yellow
14Aqua
15White

ハイレゾ
0Black 1
1Green
2Violet
3White 1
4Black 2
5Orange
6Blue
7White 2

[戻る]

※ 変数型・定数型
有効な変数名は2文字まで(3文字以上は指定可能だが以降は判別されない)
整数型(A%) : -32767〜+32767
浮動小数点型(A) : ±9.9999999E-37〜±9.9999999E+37

A$ : 文字列型(A$="TEST")

[戻る]

※ 演算子
+   : 加算・結合(A+B、A$+B$)
-   : 減算(A-B)
*   : 乗算(A*B)
/   : 除算(A/B)
^   : べき算(A^B)
=   : 等号・代入(A=3、A=B+C)
> < : 不等号・比較(A>3、A<=2)
NOT : 否定(NOT 2)
AND : 論理積(2 AND 1)
OR  : 論理和(2 OR 1)

[戻る]

※ エラーメッセージ一覧
エラーコードはPEEK(222)で取得可能
DOSのエラーはコードで表示される

エラーメッセージ一覧
コード表示意味
0NEXT WITHOUT FORNEXTに対応したFORがない
15ILLEGAL DIRECTダイレクトモードで使用できないコマンドを実行した
16SYNTAXコマンド、またはステートメントの書き方が間違っている
22RETURN WITHOUT GOSUBRETURNに対応したGOSUBがない
42OUT OF DATAREADに対応したDATAがない
53ILLEGAL QUANTITY関数やステートメントの引数が間違っている
69OVERFLOW値が許容範囲を超えた
77OUT OF MEMORYメモリが不足している
90UNDEFINED STATEMENT未定義の行番号を指定した
107BAD SUBSCRIPT配列の添字が指定した範囲外
120REDIMENSIONED ARRAY配列が二重宣言された
133DIVISION BY ZERO除算の分母が0
163TYPE MISMATCH変数または定数の型が合わない
176STRING TOO LONG文字定数または文字変数が256文字を超えた
191FORMULA TOO COMPLEX文字式が複雑すぎる
224UNDEFINED FUNCTION未定義関数を参照した
254RE-ENTERINPUT文に対する入力が異常なので再入力を求む
255BREAKSTOPされた
DOS 3.x エラー一覧
1LANGUAGE NOT AVAILABLE指定したプログラミング言語が用意されていない
2RANGE ERROR値が範囲を超えている
4WRITE PROTECTEDディスクが書込保護されている
5END OF DATAこれ以上データはない
6FILE NOT FOUNDファイルが見つからない
7VOLUME MISMATCHボリュームが一致しない
8I/O ERRORI/Oデバイスエラー
9DISK FULLディスクの容量が一杯
10FILE LOCKEDファイルが保護されている
11INVALID OPTIONオプションが不正
12NO BUFFERS AVAILABLEバッファが存在しない
13FILE TYPE MISMATCHファイルタイプが一致しない
14PROGRAM TOO LARGEプログラムが大きすぎる
15NOT DIRECT COMMANDダイレクトコマンドではない

[TOPに戻る]