N−BASIC


コマンド(カッコ内は中間言語)   AUTO〔〔行番号〕〔,増分〕〕  自動的に行番号を発生します  行番号は0〜65529  増分は 1〜65529まで  [STOP]または^Cで中止します  このコマンド動作中、他の行番号のプログラムは修正不可     CLEAR〔文字領域の大きさ〕〔,メモリの上限〕  文字領域の大きさをバイト数で指定、  全ての数値変数を0、文字変数を””(ヌルストリング)に  初期化します  またDEFFN、DEFUSR、DEFINTの指定も無効になります  メモリの上限はBASICで使用する上限番地の指定で  機械語の領域確保に使用します     CLOAD”ファイル名”  プログラムを消去してカセットから  BASICプログラムをロードします  ファイル名は6文字まで、省略不可  指定したファイルが見つかると画面右上に*が点滅   FOUND:ファイル名  と表示されロードされます  指定したファイルと違うのがみつかると   Skip:ファイル名  と表示されます     CLOAD?”ファイル名”  現在メモリにあるBASICプログラムと  ファイル名で指定されたファイルの比較を行います  内容が合えば“Ok”、違うと“Bad”と表示されます  ファイル名は6文字まで、省略不可     CONT  BASICプログラムを[STOP]またはSTOP、ENDコマンドで  停止したプログラムの実行を再開します  通常は停止した次のプログラムから再開ですが  INPUT、LINE INPUTの実行が停止した場合  その行から再開します  プログラムの修正、追加するとコマンド実行は不可  変数の変更は可     CSAVE”ファイル名”  カセットへBASICプログラムをセーブします  ファイル名は6文字まで、省略不可     DELETE開始行番号〔−終了行番号〕  開始行番号から終了行番号までのプログラムを削除します  終了行番号が無い場合は、開始行番号のみを削除します     KEY LIST  ファンクションキーの内容を画面に表示します  左縦一列が[f.1]〜[f.6]の内容  右縦一列が[f.6]〜[f.10]の内容     LIST〔開始行番号〕〔−〔終了行番号〕〕  メモリにあるプログラムを画面に表示します  開始、終了行番号を省略して実行すると  最初からプログラムを表示します  開行番号のみの場合、その行を表示します  開行番号−の場合、その行から最後までを表示します     LLIST〔開始行番号〕〔−〔終了行番号〕〕  メモリにあるプログラムをプリントアウトします  行番号の指定はLISTと同様     MON  機械語モニタに制御を移します     NEW  プログラムを消去し、全ての変数をクリアします     RENUM〔〔新行番号〕〔,〔旧行番号〕〔,間隔〕〕〕  プログラム行番号の整理を行います  新行番号は新しくする行番号  (省略は10)  旧行番号は整理し始める行番号 (省略はプログラムの最初の行番号)  間隔は新しくする各行番号の増分(省略は10)  GOTO、GOSUB、ON…GOTO、ON…GOSUB、ERL等で  前の行番号が無い場合  “Undefined Line nnnn in mmmm”と表示され  nnnnは無かった番号、  mmmmはその文の新しい行番号で整理されます  また 65529以上の行番号はエラーになります     RUN〔行番号〕  プログラムの実行を開始します  行番号を省力すると最初の行番号から開始します     TERMコード,パリティ、ボーレート,フィールドSW  BASICからターミナルモードに移行します  ^BでBASICに戻ります   コード     a:7ビットモード           j:7ビットモード     パリティ    0:なし           1:奇数パリティ           2:偶数パリティ     ボーレート   0:×64           1:×16     フィールドSW 0:オートL/Fしない           1:オートL/Fする     ステートメント BEEP〔スイッチ〕  内蔵スピーカのブザーのオン/オフの指定  1〜255でブザーのオン(鳴りっぱなし)  0    でブザーのオフ  省略すると約 0.5秒間鳴る  256以上指定するとエラーになる  スイッチは変数や式の使用可     COLOR〔ファンクション〕〔,ヌルキャラクタコード〕      〔,グラフィックスイッチ〕  テキスト画面に色または機能の設定を行います    ファンクション   白黒モードの場合(CONSOLE,,,0)   0…ノーマル   1…シークレット   2…ブリンク(点滅)   3…シークレット(1と同じ)   4…リバース(反転)   5…リバースシークレット   6…リバースブリンク(反転+点滅)   7…リバースシークレット(5と同じ)     カラーモードの場合(CONSOLE,,,1)   0…黒   1…青   2…赤   3…マゼンダ   4…緑   5…シアン   6…黄色   7…白    ヌルキャラクタコード   画面クリアした場合に表示するキャラクタコード   通常は0     グラフィックスイッチ   0…キャラクタモード   1…グラフィックモード     CONSOLE〔スクロール開始行〕〔,スクロール長さ〕        〔,ファンクションキー表示スイッチ〕        〔,カラー/白黒スイッチ〕    スクロール開始行はどの行からスクロールを開始するか指定(最上行は0)  スクロール長さ は指定した開始行からn行までの範囲の指定(最大25)  ファンクションキー表示スイッチは1でオン、0でオフ  カラー/白黒スイッチはテキスト画面もモード設定  1でカラーモード、0で白黒モード  各パラメータは省略可  その場合現在の値と同じになる  全てのパラメータを省略するとエラーになります     DATA定数〔,定数…〕  READで読む数値や文字定数を格納します  最大255文字  定数は整数、固定少数点、浮動小数点、16進数、8進数、  文字定数のいずれか  DATA文は,(コンマ)で区切りますが  文字定数の場合,と:で区切る事も可  空白や,や:を文字定数で使用する場合  ”(ダブルクォテーション)で囲む    <例>   DATA ”ABCD”,   ABCD   の場合両方ともABCDとなる     DEF FN名前〔(パラメータリスト)〕=関数の定義式  ユーザ作成の関数を定義  パラメータリスト内の変数名は関数の定義式内のみ有効なので  プログラムに同じ変数名があっても構いません     DEFDBL文字の範囲〔,文字の範囲…〕    INT     〃    SNG     〃    STR     〃  文字の範囲で指定された文字で始まる  すべての変数名の型を宣言します  文字の範囲の指定はアルファベット1文字  複数の場合,(コンマ)か−(ハイフン)でつなぎます  型宣言文字による指定がある場合、DEF型宣言より優先される  型宣言が行われていない状態は全て単精度変数   DBL 倍精度型   INT 整数型   SNG 単精度型   STR 文字型     <例>   DEFDBL A,C    ,で宣言すると個別で宣言される(AとCが宣言)   DEFDBL A−C    −で宣言するとその範囲で宣言される(AからCまで宣言)     DEF USR〔番号〕=開始番地  機械語のユーザ関数の実行番地を定義  番号は0〜9まで、USR番号が関数名に定義され  関数名によって機械語プログラムが実行されます  開始番地はCLEARのメモリ上限より後ろでなければならない  番号の省略は0とみなされる     DIM変数名(添字の最大値〔,添字の最大値…〕)  配列変数の要素の大きさを指定  実行時、並列の要素の値は0(文字型はヌルストリング)になります  DIMを宣言せずに配列変数を使用した場合  その添字の最大値は10になる     END  全てのファイルをクローズ、  プログラムの実行を終了します  プログラムの中にENDは必要はありませんが  その場合ファイルのクローズは行われません     ERASE配列名〔,配列名…〕  配列変数を消去します  再びDIMで宣言出来るようになります  実行時、並列の要素の値は0(文字型はヌルストリング)になります     ERL ERR  エラー発生したときに発生した行番号と  エラーコードを調べます   ERL エラー発生した行番号(ダイレクトモードでは 65535)   ERR エラーコード  プログラム中ではON ERROR GOTO〜で  エラー処理ルーチンで使用します     ERRORエラー番号  指定したエラーを発生、エラー番号のユーザ定義を行う  エラー番号は1〜 255  すでにBASIC内にあるエラーコードの場合  そのエラーを出力されます  通常はON ERROR GOTO〜で使用     FOR変数=初期値TO終値〔STEP増分〕 GET@(X,Y)−(x,y),配列〔,G〕 GET@A(X,Y)−(x,y),配列〔,G〕 GOSUB行番号 GOTO行番号 IF式THEN文または行番号〔ELSE文または行番号〕 INPUT〔”プロンプト文”;〕変数〔,変数〕 INPUT#−1,変数〔,変数…〕 KEYキー番号,文字列 LET変数名=式 LINE行数, ファンクションコード LINE(X,Y)−(x,y),文字列〔, ファンクションコード〕〔,B〔F〕〕 LINE(X,Y)−(x,y),P〔RE〕SET〔, ファンクションコード〕〔,B〔F〕〕 LINE INPUT〔”プロンプト文”;〕文字変数 LOCATE水平位置,垂直位置〔,カーソルスィッチ〕 LPRINT式〔,式…〕 LPRINTUSING”フォーマット文”;式〔,式…〕 MOTOR〔スィッチ〕 NEXT〔ループ変数〔,ループ変数…〕〕 ON ERROR GOTO行番号 ON式GOSUB行番号〔,行番号…〕 ON式GOTO行番号〔,行番号…〕 OUT I/Oアドレス,数式 POKE番地,整数表記 PRESET(水平位置,垂直位置〔, ファンクションコード〕) PRINT〔,または;または または式…〕 PRINT#−1,式 PRINT%ポート番号,〔式…〕 PSET(水平位置,垂直位置〔, ファンクションコード〕) PUT@(X,Y)−(x,y),配列〔,条件〕 PUT@A(X,Y)−(x,y),配列 READ 変数〔,変数…〕 REM 任意の文字 RESTORE 〔行番号〕 RESUME 〔0またはNEXTまたは行番号〕 RETURN STOP SWAP 変数,変数 TRON TROFF WAIT I/Oアドレス,式1〔,式2〕 WIDTH〔桁数〕〔,行数〕     ファンクション ABS ASC ATN CDBL CINT CHR$ COS CSNG CSRLIN DATE$ ERL ERR EXP FIX FRE HEX$ INKEY$ INP INPUT$ INSTR INT LEFT$ LEN LOG LPOS MID$ OCT$ PEEK POINT POS RIGHT$ RND SGN SIN SPACE$ SPC SQR STR$ STRING$ TAB TAN TIME$ USR VAL VARPTR   + − * / ^ ¥ ‘ > = < AND OR XOR NOT       FILES FORMAT LOAD MERGE LFILES NAME SAVE     CLOSE DSKO$ FIELD FORMAT GET INPUT# KILL LSET LINE INPUT# MOUNT OPEN PRINT# PUT REMOVE RSET SET     CVD CVI CVS DSKI$ EOF LOC LOF FPOS MKD$ MKI$ MKS$     定数  1.整数    −32768〜+32767    2.単精度少数点     6桁×10±10の38乗の実数(指数表現 E)    3.倍精度少数点    16桁×10±10の38乗の実数(指数表現 D)    4.16進数    &H0〜&HFFFF    5. 8進数    &O0〜&O177777 または    &0 〜 &177777   エラーメッセージ(数字はERRコード)  1 NEXT with FOR     FOR〜NEXTが正しく対応出来ない    2 Syntax error     文法間違い    3 RETURN without GOSUB     GOSUB〜RETURNが正しく対応出来ない    4 Out of Data     READ文で読まれるデータが無い    5 Illegal function call     ステートメントの機能の呼び方間違い    6 Overflow     入力数値や演算結果の許容範囲のオーバー    7 Out of memory     メモリ容量が足りない    8 Undefined line number     必要とされる行番号がない    9 Subscript out of range     配列変数の添字が規定範囲外    10 Redimensioned array     配列の再定義    11 Division by zero     0による割り算の実行    12 Illegal direct     ダイレクト・ステートメントとして使用不可のコマンド入力    13 Type mismatch     代入文等で式の左右の型が不一致    14 Out of string space     CLEAR等で指定したストリング変数用メモリの不足    15 String too long     ストリングが255文字オーバー    16 String formura too complex     文字式が複雑過ぎる(カッコのネスティングオーバー)    17 Can’t continue     CONTコマンド実行不可(プログラム編集等でポインタ破壊されている)    18 Undefined usr function     ユーザー関数の未定義    19 No RESUME     エラー処理後、プログラムの実行不可    20 RESUME without error     エラーとRESUMEの不一致    21 Unprintable error     メッセージの定義されていないエラー    22 Missing operand     ステートメント内のパラメータ不足    23 Line buffer overflow     プログラム行番号の入力の有効範囲オーバー    24 Position not on Screen     指定したカーソル位置が画面の範囲外    25 Bad File Data     ファイル上のデータ形式の不一致    26 Disk BASIC Feature     ディスクBASICが起動していない時にディスクBASICコマンドの実行    27 Communications Buffer overflow     周辺機器の入出力バッファがオーバーフロー    28 Port not initialized     インターフエィスの未設定    29 Type read ERROR     CMTからの入力が正しく行なわれない   ディスクBASIC用   50 Field overflow     FIELD文で128バイト以上割り当てた    51 Internal error     BAISC内部のエラー    52 Bad file number     オープンされていないファイル・ナンバーのアクセス    53 File not found     存在しないファイルのアクセス    54 Bad file mode     シーケンシャル・ファイルをランダムアクセスした、またはその逆    55 File already open     すでにオープンしたファイルをOPEN、KILLを実行    56    57 Disk I/O error     ディスクにリード・ライトエラーが生じ、修正できなくなった    58 File already exists     すでにあるファイルネームと同じファイルネームを定義しようとした    59  60    61 Disk Full     ディスク上の容量不足    62 Input past end     ファイルの全てのデータを読み尽くした後、INPUT分の実行    63 Bad record number     PUT、GET文でレコード・ナンバーが0〜32767の範囲外    64 Bad file name     不適当なファイルネームの使用    65    66 Direct statment in file     アスキーフォーマットのLOAD中にダイレクト・ステートメントがあった    67 Too many files     255種類以上のファイル作成    
00000H コールドスタート     00008H ホットスタート  0006AHへジャンプします     00010H ストリング解析  入力:HL=ストリングポインタ(次のデータが読み込まれる)  出力:ストリングデータによる    指定したストリングデータの次のデータを読み  そのデータによって出力データが変わります  BASICプログラム解析用    データ:000H     :A=000H           Zf=1でRET      001H〜008H:A=001H〜008H Cf=0、Zf=0でRET      009H〜00AH:次のデータを読む      00BH〜00EH:整数型                HL=042D1H、A=00BH〜00EH、Cf=0でRET      00FH     :次のデータを整数型の変数、次のストリングポインタを0EF48Hへ                HL=042D1H、A=00FH、Cf=0でRET      010H     :ストリングポインタを0EF48Hにして次のデータを読む(ループ)      01CH     :整数型                HL=042D1H、A=01CH Cf=0でRET      01DH     :単精度型                HL=042D1H、A=01DH Cf=0でRET      01EH     :A=0EF4AHの内容 Cf=0、Zf=0EF4AHの内容による      01FH     :倍精度型                HL=042D1H、A=01FH、Cf=0でRET      020H     :次のストリングデータを読む(ループ)      021H〜02FH:A=021H〜02FH Cf=0、Zf=0でRET      030H〜039H:A=021H〜02FH Cf=1、Zf=0でRET      03AH〜0FFH:A=03AH〜0FFH Cf=0、Zf=0でRET     00018H 1文字出力  入力:0EB49H 000H     =CRT            001H〜07FH=PRT            080H〜0FFH=CMT     A=出力データ    フック0F183Hをコール  0EB49Hの指定したデバイスにデータを出力を行います     00099H ディスク入出力  入力: A=セクタ数      B=トラック番号      C=セクタ番号     DE=データの先頭番地     0EDC5H:000Hエラーカウンタ     0EDC6H:ドライブNo.nn(0〜3)     Cf=1 ライト        0 ベリファイまたはリード     Zf=1 ベリファイ        0 リード  出力:Cf=1 エラー        0 エラー無し  使用:0EDB9H セクタ数    0F1B3Hをコール(フック)  Cf=1ならディスクコマンド001H(ライトディスク)     0ならディスクコマンド002H(リードディスク)     000CBH 拡張ユニットのチェック  出力:Zf=1 拡張ユニット無し        0 拡張ユニット有り  使用:A    /EXTONの状態を調べます  PC−8001ではPC−8011/12/13/33の接続の有無  PC−8001mmkII、PC−8801ではDISKユニットの接続の有無     000D2H ディスク イニシャライズ  出力:Zf=1 ディスク接続有り        0 ディスク接続無し      A=接続されているドライブ数     0EDC9H 使用するディスクのCW (通常は0FFH)  使用:0EDC5H エラー用リトライ カウンタ    プリンタの/STROBEを0から1にして拡張ユニットのチェック  拡張ユニットが接続していれば接続されているドライブ数のチェック  ディスクシステムをイニシャライズを行います。    ルーチン内でプリンタをアクセスするので、前もってポート010HにNull(000H)をセット     000FFH 接続ドライブ数を調べる  出力:A=接続されているドライブ数    ディスクコマンド 000H イニシャライズ・コマンドを実行してから  ディスクコマンド 007H ドライブ・ステータス・コマンドを実行してパラメータを読み  接続ドライブ数を調べます     00121H ディスクコマンドを送る(リード・ライト用)  入力: A=001H ライトディスク コマンド        002H リードディスク コマンド      B=トラック      C=セクタ      0EDB9H セクタ数      0EDC6H ドライブ(0から)    ディスクにデータの読み書きは行いませんディスクユニットにコマンドだけを送ります。     0017CH ディスクコマンドを送る  入力: A=コマンド  使用:0EDC9H 使用するディスクのCW (通常は0FFH)     0EDCBH タイムアップ カウンタ    ディスクユニットにコマンドデータを送ります     00183H ディスクパラメータを1バイト送る    入力: A=コマンド  使用:0EDC9H 使用するディスクのCW (通常は0FFH)     0EDCBH タイムアップ カウンタ    ディスクユニットへデータ送信     001E9H ディスクパラメータを1バイト受け取る  出力: A=データ  使用:0EDC9H 使用するディスクのCW (通常は0FFH)    ディスクユニットからデータ受信     00229H ディスク ポートCWに書き込む  入力: A=ライトデータ  使用: A     0EDC9H 使用するディスクのCW (通常は0FFH)     00234H ディスク ポートPCを読み込む  出力: A=リードデータ  使用: A     0EDC9H 使用するディスクのCW (通常は0FFH)     0023EH ディスク ポートPBに書き込む  入力: A=ライトデータ  使用: A     0EDC9H 使用するディスクのCW (通常は0FFH)     0024BH ディスク ポートPAを読み込む  出力: A=リードデータ  使用: A     0EDC9H 使用するディスクのCW (通常は0FFH)     00257H CRT1文字表示  入力: A=アスキーコード  使用:0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生     0EA59H カーソルのOn/Offを0EA5FHに従わせるフラグ     0EA57H 000H      現在のカーソル位置より次の行をクリアしない            001H〜0FFH 現在のカーソル位置より次の行をクリアする     0EA58H ターミナルモード     0EA5AH ヌルキャラクタコード(COLOR文の第2パラメータ) 通常は000H     0EA5BH アトリビュートコード     0EA5DH スクロールの長さ 000Hで1行、001Hで2行…     0EA5EH スクロールの開始行−1 001Hで最上行になる     0EA5FH カーソルスイッチ 000H=表示しない、000H以外=表示する     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する       0EA62H 行数(白黒モード)019H=25行、14=20行     0EA63H カーソルY座標(上端が01)     0EA64H カーソルX座標(左端が01)     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0EA67H ポート040Hの出力した内容     0EB4AH 画面の実際の横の文字数     0ED99H カーソルX座標     0ED9AH〜0EDB2H nn行が次の行とつながっているか 000H=繋がっている                                   000H以外=繋がっていない     0F300H〜0FEB7H VRAM     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    画面に1文字表示を行い、カーソルは次に進みます  有効なコントロールコードは下記になりそれ以外はキャラクタコードとして表示されます     コントロールコード    007H ^G BeLl    00AH ^J    00BH ^K HoMe    00CH ^L CLear Screen    00DH ^M Carge Return    01CH カーソル 右    01DH カーソル 左    01EH カーソル 上    01FH カーソル 下     002CBH アトリビュートをキャラクタにする  入力:A=アトリビュート コード  出力:A=アトリビュート コード  使用:AF、C     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒    アトリビュート コード d4=0にして  白黒ならd7=0にします     002D7H CRT1文字表示 メイン  入力: H=カーソルX座標(左端が01)      L=カーソルY座標(上端が01)      A=アスキーコード  出力: B=アスキーコード  使用:AF、BC、HL     0EA5BH アトリビュートコード     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字    カーソル座標の位置にアスキーコードとアトリビュートコードの書き込みを行います  コントロールコードは文字データとして扱われます     002DEH アトリビュートセット、1文字表示  入力: A=アトリビュート コード      B=アスキーコード      H=カーソルX座標(左端が01)      L=カーソルY座標(上端が01)  使用:AF、BC     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字    カーソル座標の位置にアスキーコードとアトリビュートコードの書き込みを行います  コントロールコードは文字データとして扱われます       00350H ^G BEEPを1回鳴らす  使用: A     0EA67H ポート040Hの出力した内容    スピーカから一定時間鳴らします     00370H カーソルを右に一つ進める  入力: H=カーソルX座標(左端が01)      L=カーソルY座標(上端が01)  出力:Zf=1 カソールが右端を越えた        0 カーソルをセットした  使用:AF     カーソルが右端を越えたらZf=1でRETします   カーソルが右端を越えていなければX座標を+1にしてカーソルセット(003A9H)へジャンプします   カーソルセット(003A9H)では最後にカーソル位置をセットして必ずZf=0になって返ります     003A6H ワークエリアからカーソルセット  出力: L=カーソルX座標(左端が01)      H=カーソルY座標(上端が01)     0EA63H カーソルY座標(上端が01)     0EA64H カーソルX座標(左端が01)     0ED99H カーソルX座標(左端が00)  使用:AF、HL     0EA63H カーソルY座標(上端が01)     0EA64H カーソルX座標(左端が01)     0EA5FH カーソルスイッチ 000H=表示しない、000H以外=表示する    ワークエリア(0EA63H〜0EA64H)を参照してカーソルをします  カーソルスイッチで表示する 場合 カーソル表示を行うようにCRTCに設定、ワークに座標をセット           表示しない場合 カーソル表示は行わずにワークに座標だけをセット     003A9H カーソルセット  入力: L=カーソルX座標(左端が01)      H=カーソルY座標(上端が01)  出力: L=カーソルX座標(左端が01)      H=カーソルY座標(上端が01)     0EA63H カーソルY座標(上端が01)     0EA64H カーソルX座標(左端が01)     0ED99H カーソルX座標(左端が00)  使用:AF、HL     0EA5FH カーソルスイッチ 000H=表示しない、000H以外=表示する    入力した座標の位置を参照してカーソルをセットします  カーソルスイッチで表示する 場合 カーソル表示を行うようにCRTCに設定、ワークに座標をセット           表示しない場合 ワークに座標をセット     003D9H 割り込みフラグのチェック  使用:AF     0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生    VRTC=1(垂直帰線期間)     になるまで待つ  0EA56H=000Hにする  VRTC=0(表示または水平帰線期間)になるまで待つ  0EA56H=000H     (割り込みが発生していない)はRET         001H〜0FFH(割り込みが発生)     は最初から戻る    これは割り込みよりVRTCとDMAのバス制御の方が優先される為  VRTCのチェックが必要になっています     003F3H カーソル座標からアドレスに変換  入力: H=X座標(左端が01)      L=Y座標(上端が01)  出力:HL=VRAMアドレス  使用:AF、DE、HL  カーソル座標からVRAMアドレスに変換します     00401H オフセットアドレス変換  入力: H=X座標(左端が01)      L=Y座標(上端が01)  出力: H=X座標から計算したオフセット アドレス      L=Y座標(上端が00)  使用:AF、HL     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     VRAMアドレス変換やカーソル表示する為に   H=各画面のX座標座標のアドレス、L=Y座標の値を−1に変換します     00451H ライン消去  入力:DE=消去するラインの先頭アドレス  使用:BC、DE、HL     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    指定したラインを0FEB8H〜0FF2FHの内容に転送を行います     0045AH 画面クリア  使用:AF、BC、DE、HL     0EA5BH アトリビュートコード     0EA5CH ファンクションキー表示方法 000H=ベースアトリビュート、050H=リバース     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0ED9AH〜0EDB2H nn行が次の行とつながっているか 000H=繋がっている                                    000H以外=繋がっていない     0F300H〜0FEB7H VRAM     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    0FEB8H〜0FF2FHに適切な1ラインクリアデータ(キャラクタ+ATB)をセット  0ED9AH〜0EDB2Hにテキストライン接続データをセット  1ラインクリアデータを25行まで転送  ファンクションキーの表示指定はf.1からf.5に指定  カーソルを0,0にします     004DDH テキストスクロールの為の最下位の行の取得  出力: A=スクロールしない最下位の行  使用:AF、B     0EA5DH スクロールの長さ 000Hで1行、001Hで2行…     0EA5EH スクロールの開始行−1 001Hで最上行になる     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する     0EA62H 行数(白黒モード)019H=25行、14=20行    まず0EA60Hと0EA62Hの内容を足しBレジスタに入れます  ファンクションキー表示スイッチが表示する場合 行数+0FFH、つまり”行数−1”となります  次に0EA5DHと0EA5EHの内容を足しAレジスタに入れます   A≧BならA=B   A<BならA=A  このAレジスタが出力パラメータとなります     004F8H アトリビュートセット(1キャラクタのみ)  入力: H=X座標(左端が01)      L=Y座標(上端が01)      A=アトリビュートコード  使用: F、BC、HL、DE     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     00622H アトリビュート データの取得  入力: H=X座標(左端が01)      L=Y座標(上端が01)  出力: A=X座標から計算したオフセット アドレス      B=アトリビュート第2データ(コード)      C=アトリビュート第1データ(桁)      D=X座標から計算したオフセット アドレス      E=残りのアトリビュート数(最大20個)     HL=次のアトリビュートのアドレス     Cf=1 アトリビュート データの取得を出来た        0 アトリビュート データの取得が出来なかった  使用:AF、BC、HL、DE     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字    指定したY座標の行のアトリビュート先頭アドレスから  指定したX座標よりアトリビュートの第1バイトが大きければ  その前のアトリビュートの第1と第2のデータを取得しCf=1にします  取得した次のデータアドレスをHLに出力を行います  また20個のアトリビュートを超えれば最後の第1と第2のデータを取得しCf=0にします     0065BH:アトリビュート 先頭アドレスの取得  入力: A=Y座標(上端が00)  出力:DE=アトリビュート 先頭アドレス  使用:HL    指定したY座標から、そのVRAMの先頭アドレスを計算して80バイト足して  アトリビュートエリアの先頭をDEに出力します     00664H VRAMの先頭アドレス計算  入力: A=Y座標(上端が00)  出力:DE=そのラインの先頭アドレス  使用:HL    指定したY座標から、そのVRAMの先頭アドレスを計算してDEに出力します     006A9H アトリビュート第1データ(桁)を進める  入力: A=アトリビュート第1データ(桁)  出力: A=進めたアトリビュート第1データ(桁)  使用: 0EA65H 白黒モードのときの1行の文字数 050H=80文字                             048H=72文字                             028H=40文字                             024H=36文字    アトリビュート第1データの内容を進めます(主にアトリビュート計算に使用)  VRAMの構造上、文字数によって進める値が変わります   72または80桁 +1   36または40桁 +2     006B8H PSET  入力:HL=パラメータデータアドレス    パラメータデータは文字列でカンマで区切りEND MARK 000Hを最後につけます。   DATA_PSET: DB '(10,10,7)',000H     00705H PRESET  入力:HL=パラメータデータアドレス    パラメータデータは文字列でカンマで区切りEND MARK 000Hを最後につけます。   DATA_PRESET: DB '(10,10,7)',000H     007C9H ファンクションキーの表示  入力:A=000H f・1 から f・5 を表示     A=005H f・6 から f・10を表示  使用:0EA58H ターミナルモード     0EA5BH アトリビュートコード     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0EA68H ファンクションキーフラグ 000H=フラグOff、000H以外でフラグOn     0EDC0H〜0EDC1H:ファンクションキーポインタ     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    各画面のモードに合わせてファンクションキーの表示を行います     00843H WIDTHの設定  入力:HL=パラメータデータ アドレス     パラメータデータは文字列でカンマで区切ります(エンドマーク000H)        DATA_WIDTH: DB '80,25',000H     00884H CONSOLEの設定  入力:HL=パラメータデータ アドレス     パラメータデータは文字列でカンマで区切ります(エンドマーク000H)        DATA_CONSOLE: DB '0,25,0,1',000H     008F7H CONSOLE&WIDTHの設定  入力:BC=ファンクションキー表示スイッチ、カラー/白黒フラグ     0EA5CH:ファンクションキー表示方法 000H=ベースアトリビュート、050H=リバース     0EA5DH:スクロールの長さ     0EA5EH:スクロール開始行+1     0EA5FH:カーソルスイッチ 000H=表示しない、000H以外=表示する     0EA60H:ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する     0EA61H:カラー/白黒 000H=白黒、0FFH=カラー     0EA62H:カーソルY+1     0EA63H:カーソルX+1     0EA64H:1行文字数     0093AH WIDTHの設定  入力: B=桁      C=行  使用:AF     0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生     0EA58H ターミナルモード     0EA5BH アトリビュートコード     0EA5DH スクロールの長さ 000Hで1行、001Hで2行…     0EA5CH ファンクションキー表示方法 000H=ベースアトリビュート、050H=リバース     0EA5EH スクロールの開始行 001Hで最上行になる     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA62H 行数(白黒モード)019H=25行、14=02行     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0EA67H ポート040Hの出力した内容     0EA68H ファンクションキーフラグ 000H=フラグOff、000H以外でフラグOn     0ED9AH〜0EDB2H nn行が次の行とつながっているか 000H=繋がっている                                    000H以外=繋がっていない     0EDC0H〜0EDC1H:ファンクションキーポインタ     0F300H〜0FEB7H VRAM     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分     画面設定WIDTHを行います     ゲームで画面を反転して元に戻す場合には     前と同じ桁でないとVRAMがクリアされます    <実行例>    LD   A,021H    ;画面反転    OUT  (051H),A           |           |       ;Wait等の処理           |    LD   BC,05019H ;WIDTH 80,25(元が80桁の場合)    CALL 0093AH    RET     00951H COLOR  入力:HL=パラメータデータ アドレス     パラメータデータは文字列でカンマで区切ります(エンドマーク000H)        DATA_COLOR: DB '7,32,1',000H     0094BH スクロール範囲の設定  入力:スタック 0EA5EHデータ、0EA5DHデータ  使用:HL  出力:0EA5DH スクロールの長さ  000Hで1行、001Hで2行…     0EA5EH スクロールの開始行 001Hで最上行になる    スクロールに関するワークエリアを設定します  前もってスタックに入力データを設定します  ルーチンはスタック操作してワーク設定を行い  最後にPOP HL、RETされているので  実行するのに注意が必要です    <実行例>    LD   HL,00118H ;長さ24行、開始行 1行    PUSH HL    LD   HL,0094BH    PUSH HL    RET     009A3H WIDTH(横のみ)  入力: A=文字数(40または80)  使用:AF     0EA5BH アトリビュートコード     0EA5CH ファンクションキー表示方法 000H=ベースアトリビュート、050H=リバース     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0ED9AH〜0EDB2H nn行が次の行とつながっているか 000H=繋がっている                                    000H以外=繋がっていない     0F300H〜0FEB7H VRAM     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    設定する文字数と違う場合画面をクリア(045AHをコール)  文字数によってポート030Hのd0の設定を行います     009CFH ポート030H d0=0にする  入力: A=ポート030Hの出力データ  出力:0EA66H ポート030Hの出力した内容  使用:A    ポート030Hのd0=0(CRT 40行)にします     009D1H ポート030H出力  入力: A=ポート030Hの出力データ  出力:0EA66H ポート030Hの出力した内容  使用:A    ポート030Hにデータを出力、出力したデータを0EA66Hに書き込みます     009D7H WIDTH(縦のみ)  入力: A=行数(20または25)  使用:AF、BC、DE、HL     0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生     0EA58H ターミナルモード     0EA5DH スクロールの長さ 000Hで1行、001Hで2行…     0EA5EH スクロールの開始行 001Hで最上行になる     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA62H 行数(白黒モード)019H=25行、14=20行     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0EA67H ポート040Hの出力した内容     0EA68H ファンクションキーフラグ 000H=フラグOff、000H以外でフラグOn     0ED9AH〜0EDB2H nn行が次の行とつながっているか 000H=繋がっている                                    000H以外=繋がっていない     0EDC0H〜0EDC1H:ファンクションキーポインタ     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    25行から20行に変更する場合、5行テキストスクロール  20行から25行に変更する場合、VRAM(21行〜25行)5行分をクリア、ファンクションキーの表示(007C9Hをコール)  CRTC、DMAの設定を行います     00B2EH ファンクションキー オフ  入力:EA62H(行数019H=25行、14=20行)の内容  出力:A=0EA62H(行数019H=25行、14=20行)の内容  使用:BC、DE、HL     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    ファンクションキーの表示される部分の一番下の行をクリアします。     00B79H 指定した行の上の接続フラグのチェック  入力: L=指定する行  出力:Zf=1 接続        0 独立     DE=0ED9AH〜0EDB2H 指定した行の接続フラグ      A=接続フラグの値  使用:A、DE    指定した行と一つ上の行が繋がっているかチェックを行います  BASICのスクリーンエディタ用     00B86H 指定した行の接続フラグのオン・オフ  入力:A=000H      接続       001H〜0FFH 独立     L=指定する行  出力:DE=0ED9AH〜0EDB2H 指定した行の接続フラグ  使用:A、DE     0ED9AH〜0EDB2H 接続フラグ 000H=接続、001H〜0FFH=独立    BASICのテキストラインを接続または独立の指定     00BD2H カーソル オフ  出力:0EA59H=000H カーソルのオン/オフを0EA5FHに従わせるフラグ  使用:AF     0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生     0EA63H カーソルYの位置(上端が01)     0EA64H カーソルXの位置(左端が01)     0ED99H カーソルX座標(左端が00)    CRTC OCW5=080Hにしてカーソル表示をオフにします     00BE2H カーソル オン  出力:0EA59H=0FFH カーソルのオン/オフを0EA5FHに従わせるフラグ  使用:AF     0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生     0EA63H カーソルYの位置(上端が01)     0EA64H カーソルXの位置(左端が01)     0ED99H カーソルX座標(左端が00)    CRTC OCW5=081Hにしてカーソル位置を設定します     00C22H CMT ロードの設定  使用:A    8251をCMT ロードの設定を行います  8251をリセット、04EH、014Hをポート021Hに書き込みます     00C2EH CMT クローズ、モータオフ  出力:0EA66H ポート030Hの出力した内容  使用:AF    WAIT0030000H  モータオフ、CHIN=1 (ポート030H d3=0、d2=1)にします     00C38H ポート030Hへ出力  入力: A=ポート030Hの出力データ  出力:0EA66H ポート030Hの出力データ  使用:A    ポート030Hへデータを出力、ワークに書き込みを行います     00C3EH CMT モータオン  出力:0EA66H ポート030Hの出力した内容  使用:AF    モータオン(ポート030H d3=1)にします     00C42H CMT モータオフ  出力:0EA66H ポート030Hの出力した内容  使用:AF    モータオン(ポート030H d3=0)にします     00C46H CMT ライトオープン  使用:AF    0EA66H ポート030Hの出力した内容      0F1B9をコール(フック)  ポート030Hのd7〜4=0000 BS2、BS1=00 (600bps)          d3〜2=11   モータオン、CHIN=1 マーク(2400Hz)  8251をリセット、0CEH、011H  WAIT0060000H  ポート030Hのd2=0 CHIN=0 スペース(1200Hz)  WAIT0010000H     00C6DH nn0000 WAITメイン  入力: E=カウンタnn  使用: F  EレジスタとHLレジスタを24ビットカウンタとしてDECして0になるまで待ちます  ただしこのルーチンでは最後にHLとDEをPOPするので  コールする前にDEとHLをPUSHしてからE=カウンタnnの設定を行います     PUSH DE   PUSH HL   LD   E,001H   CALL 00C6DH     |     00C7CH WAIT 0060000H  使用: F    E=006Hにして00C6DHをコールします     00C82H WAIT 0030000H  使用: F    E=003Hにして00C6DHをコールします     00C88H CMT 1バイト リード  出力:A=リード データ     Zf=1 リードデータが000H     の場合        0 リードデータが001H〜0FFHの場合  使用:0EF3CH CMTの入力エラー(000H=エラー)    RxRDY=1になるまで待つ(最初に0F1A4のフックをコール)  その間、STOPキーが押されていればCMTクローズ、Tape read ERROR    ポート020Hからデータを読み込む(CMT 1バイトロード)  OE、PEのチェック(エラーチェック)   エラーが無ければRET、A=ロードデータになる   エラーがあれば0EF3CHのチェック    0EF3CH=000H     ならTape read ERROR         001H〜0FFHなら0C22Hをコール、A=001HにしてRET     00CB3H CMT BAISCロード ’*’の点滅  使用:AF     0EB4AH 画面の実際の横の文字数    指定したBASICプログラムをロードまたベリファイした場合に’*’を点滅します  画面右上端から左へ−8した場所に’ ’なら’*’                  ’*’なら’ ’ 00CDAH CMT 1バイト ライト  入力:A=ライト データ  出力:A=ライト データ     Zf=1 ライトデータが000H     の場合        0 ライトデータが001H〜0FFHの場合  使用:F    0F20DHをコール(フック)  TxRDY=1になるまで待つ  その間、STOPキーが押されていればCMTクローズ、Tape read ERROR  ポート020Hにデータを書き込む(CMT 1バイトライト)     00CF1H STOP、ESCキーのチェック  出力:Zf=1 STOP、ESCキーが押されていない        0      ESCキーが押されている     Cf=1 STOPキーが押されている        0 STOPキーが押されていない      A=003H ^C(STOPキーが押されている場合)        013H ^S(ESC キーが押されている場合)  使用:AF     0EA75H キーポート09    STOP、ESCキーが押されたかチェックを行います  押されていればAレジスタにコントロールコードが入ります     00D14H μPD8251 リセット  使用:A    本体内の8251をリセット(ポート021Hに00EH、040Hを書き込む)して  8251のモード設定を出来るようにします     00D43H ^G Bell出力  入力:0EB49H 000H     =CRT            001H〜07FH=PRT            080H〜0FFH=CMT    Aレジスタに007HにしてRST 018Hを実行  0EB49Hの指定したデバイスにデータを出力を行います       00D4BH BEEP  入力: A=001H〜0FFH BEEP 1      A=000H      BEEP 0  使用:AF、 E     0EA67H ポート040Hの出力した内容    Aレジスタが000Hか000Hで無いかで  ポート040Hのd5の出力を決めています     00D60H プリンタ 1バイト出力  入力: A=コード  使用:0EA67H ポート040Hの出力した内容     0EA75H キーポート09     0EB49H 出力デバイス 000H     =CRT                   001H〜07FH=PRT(05CHで出力中止)                   080H〜0FFH=CMT    0F1BCHをコール(フック)  0EB49H=05CH(’¥’)なら終了  PRT /READY=0になるまで待つ(STOPキーチェックあり)  ポート010Hにコードを出力  PRT /STROBE 0から1にして終了     STOPキーが押された場合    0EA75Hのd0=0(STOP=0)にする    0EB49Hが000H(CRT)なら終了           001H〜0FFHなら05CHにして終了     00F75H キー入力があるまで待つ  入力:0EA63H カーソルYの位置(上端が01)     0EA64H カーソルXの位置(左端が01)  出力:0EA59H 0FFH カーソルのオン/オフを0EA5FHに従わせるフラグ      A=キャラクタコード     Cf=0 キーが押された     00F7BH キー入力  入力:0EA63H カーソルYの位置(上端が01)     0EA64H カーソルXの位置(左端が01)  出力:0EA59H 0FFH カーソルのオン/オフを0EA5FHに従わせるフラグ      A=キャラクタコード     Cf=1 キーが押されていない        0 キーが押された     00FACH リアルタイム キー入力  出力: A=アスキーコード     Cf=1 キーが押されていない        0 キーが押された  使用:AF、BC、DE、HL     0EA58H ターミナルモード     0EA5BH アトリビュートコード     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する     0EA61H カラー/白黒モード 0FFH=カラー、000H=白黒     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0EA68H ファンクションキーフラグ 000H=フラグOff、000H以外でフラグOn     0EA69H キーボードから入力されたコード     0EA6AH 前回押した特殊キーのデータ             000H=入力なし             001H=SHIFTキー             002H=CTRLキー             003H=カナキー             004H=カナ + SHIFTキー             005H=GRPHキー     0EA6BH リピートカウンタ(リピート0=006H)     0EA6CH〜0EA75H キーポート00〜09     0EDC0H〜0EDC1H ファンクションキーポインタ     0EDC2H キー入力で何か押されていれば000H     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    ファンクションキー入力があるかチェック、あればA=ファンクションキー入力データでRET  ESC、スペース、STOPキーのチェック、ファンクションキーの表示  キーポート09から読んでd0から押されているかチェック(キーデータ作成)  キーデータが変更されたらキーリピートの設定  キーデータからアスキーコードに変換を行います    ポート0 d0 〜 ポート1 d1:テンキーの数字  ポート1 d2 〜 ポート1 d7:テンキーの演算、RET  ポート2 d0 〜 ポート5 d2:フルキーの@、英字  ポート5 d3 〜 ポート5 d7:フルキーの[から−  ポート6 d0 〜 ポート7 d1:フルキーの数字  ポート7 d2 〜 ポート7 d7:フルキーの*から_  ポート8 d0 〜 ポート9 d0:HOMEからSTOP  ポート9 d1 〜 ポート9 d5:ファンクションキー  のブロックに分かれて、  通常、シフト、CTRL、カナ、カナ+シフト、GRPHそれぞれのルーチンにジャンプして  アスキーコードとしてAレジスタに出力されます     0109AH キーポート データのセット  入力: A=キーポート データA      B=キーポート データB     HL=キーポート ワーク(主に0EA6CH〜00EA75H)  出力: A=キーポート データ  使用:AF、B 、HL    キーポート データAを反転 AND キーポートワークをキーポートワークへ  キーポート データB XOR キーポートワークの内容をAレジスタへ出力     01602H タイマーリード  出力:0EA76H=秒(BCD)     0EA77H=分(BCD)     0EA78H=時(BCD)     0EA79H=日(BCD)     0EA7AH=月(BCD)     0EA7BH=年(BCD)     Cf=1 エラー        0 エラー無し  使用:AF、BC、DE、HL     0EA67H ポート040Hの出力した内容    RTCコマンド03:タイムリード  40ビットのシフトレジスタのデータを読み込み、各ワークに書き込む  曜日のデータをカットして月のデータのみとして0EA7AHに書き込む  もし0月ならSTOPキーのチェックをして最初へループする  この時STOPキーが押されていれば  Cf=1、RET  1〜12月ならCf=0、RET     01651H タイマーワーククリア(PC−8001のみ)  出力:0EA76H=000H     0EA77H=000H     0EA78H=000H     0EA79H=001H     0EA7AH=001H     0EA7BH=079H  使用:AF、BC、D 、HL     0EA67H ポート040Hの出力した内容    RTCコマンド04:TP=64Hz  タイマーのワークを初期状態79/01/01、00:00:00  タイマーセット(01663H)へジャンプします    *PC−8801/PC−/8001mkII以降ではバックアップの為、使用出来ません   また初期値は83/01/01になります。(PC−8001mkII)     01663H タイマーセット  入力:0EA76H=秒(BCD)     0EA77H=分(BCD)     0EA78H=時(BCD)     0EA79H=日(BCD)     0EA7AH=月(BCD)     0EA7BH=年(BCD)  使用:AF、BC、D 、HL     0EA67H ポート040Hの出力した内容    RTCコマンド01:レジスタシフト、0EA76H〜0EA7BHのデータをRTCに書き込む  RTCコマンド02:タイムセット/カウンタホールド  RTCコマンド03:タイムリード、RET     01675H RTCコマンドセット  入力:A=RTCコマンド  使用:AF、 C、     0EA67H ポート040Hの出力した内容    RTCコマンドセットを行います     01690H RTC 5バイト分データを書き込む  入力:HL=データアドレス(通常は0E7A6H)  使用:AF、BC、 D、HL    0EA67H ポート040Hの出力した内容    0EA7AH=月(BCD)    RTCにデータ5バイト(40ビット)のシフトデータの書き込みを行います  入力のHLは0EA7AHにしておかないと月のデータがおかしくなります     016A7H RTC データセット  入力:HL=データアドレス  使用:AF、BC、    0EA67H ポート040Hの出力した内容    RTCに8ビット分のデータの書き込みを行います     02068H RS−232C ワークの指定  出力:HL=0EB2EH RS−232C Ch1        0EB2FH RS−232C Ch2  使用:A、HL     0EED0Hで選択されているチャンネルでワークの指定を行います     0209BH RS−232C データ出力     前もってスタックに保存した出力データを取り出し、出力を行います     022D6H RS−232Cチャンネル セレクト  入力:A=001H RS−232C Ch1       002H RS−232C Ch2     A=それ以外Illegal function call  出力:C=選択したチャンネルのポート  使用:A、C    RS−232Cのチャンネルのポートを選択します  *PC−8001  ではCh1がポート0C1H、Ch2がポート0C3H   PC−8001以外ではCh1がポート021H、Ch2がポート0C3H     022E1H RSー232Cチャンネル ポートの設定  入力:A=001H RS−232C Ch1       002H RS−232C Ch2     A=それ以外Illegal function call  出力:0EA01H 出力ポート  使用:A    0EA00Hで行うポート出力をRS−232Cのチャンネル ポートにします     02D13H 16ビット 10進表示  入力:HL=変換する数値  使用:0EF45H FAccの型 002H=整数型     0EF7BH 000H     0EF9AH〜0EF9BH HLの値     0F0B7H FAccから文字列変換用     0F0A8H FAcc     0F0A9H FAcc     RST 010Hで使用するワーク    HLの16進数データを10進数に表示します  カーソル行を消さないようにするには0EA57Hを000Hにする     02D22H FAccから文字列(数値)の変換  入力:0EF45H=FAccの型 002H=整数型                   003H=文字型                   004H=単精度型                   008H=倍精度型     0F0A8H=FAccデータ  出力:HL=0F0B7H   0F0B7H〜0F0CDH:変換した文字列(000H=エンドマーク)  使用:AF、HL、DE、BC     0EF48H〜0EF49H:1ワード取得 ポインタ避難     0EF4AH       :1ワード取得 ACC避難     0EF4BH       :1ワード取得 精度(002H=整数型、004H=単精度型、008H=倍精度型)     0EF4CH〜0EF53H:1ワード取得 フローティングポイントレジスタ     0EF7BH  FAccのデータを文字列に変換します    <例>  LD   HL,nnmm     ;  LD   (0F0A8H),HL ;FAcc  LD   A,002H      ;整数型  LD   (0EF45H),A  CALL 02D22H    ;HLの内容は0F0B7H、        |          ;0F0B7Hから変換した文字列が入る        |    ; +なら数値の前に020H、−なら02DHが入る                   ・ 0の場合+0となる     HL=00000H −> F0B7:20 30 00 ?? ?? ?? ??   HL=00001H −> F0B7:20 20 20 20 20 31 00   HL=00002H −> F0B7:20 20 20 20 20 32 00   HL=07FFFH −> F0B7:20 33 32 37 36 37 00   HL=08000H −> F0B7:2D 33 32 37 36 38 00   HL=0FFFFH −> F0B7:20 20 20 20 2D 31 00     04CCCH 英字の小文字から大文字に変換  入力: A=アスキーコード  出力: A=アスキーコード  使用:AF    アスキーコードのアルファベット小文字を大文字に変換します     052EDH メッセージ表示  入力:HL=メッセージ データアドレス(000H=エンドマーク)  使用:AF、BC、DE、HL     0EA5BH:アトリビュートコード     0EA63H:カーソルYの位置 上端が01(01〜25)     0EA64H:カーソルXの位置 左端が01(01〜80)  ワークエリアのカーソル座標を見てメッセージを表示します  またアトリビュートも書き換えます     05C66H マシン語モニタ  マシン語モニタに行きます     05E39H アスキーコード内 HEXチェック  入力: A=アスキーコード  出力: A=アスキーコード     Cf=1 16進数以外        0 16進数    Aレジスタの内容がアスキーコード16進数  0〜9(030H〜039H)かA〜F(041H〜049H)を調べます     05E4BH HEXデータ追加にアスキーコードを追加  入力: A=アスキーコード     HL=HEXデータ  出力:HL=HEXデータ  使用:A、HL    アスキーコードを1桁のHEXデータに変換して  HEXデータを桁上がりにして追加します(モニタ用)     HL=00123H、A=034H(’4’)の場合   HL=01234Hになります     05E83H 16進数を2桁のアスキーコードに変換  入力: A=数値  出力: D=上位のアスキーコード(16進数)      E=下位のアスキーコード(16進数)  使用:AF、DE    Aレジスタの内容をアスキーコードに変換してDEレジスタに出力します     05EA0H 2桁の16進数(文字列)を数値に変換  入力: D=上位のアスキーコード(16進数)      E=下位のアスキーコード(16進数)  出力: A=変換したデータ  使用:AF、DE    DEレジスタの2バイトアスキーコードを16進数の数値に変換してAレジスタに出力します     05ED3H CP HL,DE  入力: HL=データ      DE=データ  出力: Zf=1 HL = DE      Cf=1 HL < DE         0 HL > DE    Cf=0、HL=HL−DEを行いHLとDEの比較を行います(HLの内容は壊れません)     05FCAH CR/LF出力  入力: H=カーソルX座標(左端が01)      L=カーソルY座標(上端が01)  使用:A  使用:0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生     0EA57H 000H      現在のカーソル位置より次の行をクリアしない            001H〜0FFH 現在のカーソル位置より次の行をクリアする     0EA58H ターミナルモード     0EA59H カーソルのOn/Offを0EA5FHに従わせるフラグ     0EA5AH ヌルキャラクタコード(COLOR文の第2パラメータ) 通常は000H     0EA5BH アトリビュートコード     0EA5DH スクロールの長さ 000Hで1行、001Hで2行…     0EA5EH スクロールの開始行−1 001Hで最上行になる     0EA5FH カーソルスイッチ 000H=表示しない、000H以外=表示する     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する       0EA62H 行数(白黒モード)019H=25行、14=20行     0EA63H カーソルY座標(上端が01)     0EA64H カーソルX座標(左端が01)     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0EA67H ポート040Hの出力した内容     0EB4AH 画面の実際の横の文字数     0ED99H カーソルX座標     0ED9AH〜0EDB2H nn行が次の行とつながっているか 000H=繋がっている                                   000H以外=繋がっていない     0F300H〜0FEB7H VRAM     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    CRの出力を行います   A=00DHにしてCRT1文字表示(00257Hをコール)   A=00AHにしてCRT1文字表示(00257Hをコール)     05FD4H スペースを表示する  入力: H=カーソルX座標(左端が01)      L=カーソルY座標(上端が01)  使用:A  使用:0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生     0EA57H 000H      現在のカーソル位置より次の行をクリアしない            001H〜0FFH 現在のカーソル位置より次の行をクリアする     0EA58H ターミナルモード     0EA59H カーソルのOn/Offを0EA5FHに従わせるフラグ     0EA5AH ヌルキャラクタコード(COLOR文の第2パラメータ) 通常は000H     0EA5BH アトリビュートコード     0EA5DH スクロールの長さ 000Hで1行、001Hで2行…     0EA5EH スクロールの開始行−1 001Hで最上行になる     0EA5FH カーソルスイッチ 000H=表示しない、000H以外=表示する     0EA60H ファンクションキー表示スイッチ 000H=表示しない、0FFH=表示する       0EA62H 行数(白黒モード)019H=25行、014H=20行     0EA63H カーソルY座標(上端が01)     0EA64H カーソルX座標(左端が01)     0EA65H 白黒モードのときの1行の文字数 050H=80文字                            048H=72文字                            028H=40文字                            024H=36文字     0EA67H ポート040Hの出力した内容     0EB4AH 画面の実際の横の文字数     0ED99H カーソルX座標     0ED9AH〜0EDB2H nn行が次の行とつながっているか 000H=繋がっている                                   000H以外=繋がっていない     0F300H〜0FEB7H VRAM     0FEB8H〜0FF2FH クリアする時にVRAMに書き込むデータ1行(80+40バイト)分    画面にスペースの出力を行います   A=020HにしてCRT1文字表示(00257Hをコール)     05FF2H 垂直帰線期間になるまで待つ  出力:A=0EA67Hの内容 (ポート040Hの出力した内容)  使用:AF、     0EA56H 割り込みがあったことを示すフラグ 000H以外で割り込みが発生    割り込みフラグのチェック(003D9Hをコール)行い  VRTC=1(垂直帰線期間)になるまで待ちます  VRTC=1(垂直帰線期間のなったらAレジスタに0EA67Hの内容を出力します     ワークエリア 0EA00H〜0EA02H:ポート出力サブルーチン nnの値はプログラムによって変化する          EA00:D3 nn OUT (nn),A          EA02:C9    RET   0EA03H〜0EA10H:除算用   0EA11H       :RND用カウンタ 0EA12H       :RND用ROMデータポインタ(1〜3) 0EA13H       :RND用ROMデータポインタ(0〜7) 0EA14H〜0EA33H:RND用RAMデータ 4バイトで1組(単精度実数型) 0EA34H〜0EA37H:前回発生したRNDの値   0EA38H〜0EA3AH:ポート入力サブルーチン nnの値はプログラムによって変化する                EA38:DB nn  IN A,(nn)                EA3A:C9   RET   0EA3BH〜0EA3CH:USR0エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA3DH〜0EA3EH:USR1エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA3FH〜0EA40H:USR2エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA41H〜0EA42H:USR3エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA43H〜0EA44H:USR4エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA45H〜0EA46H:USR5エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA47H〜0EA48H:USR6エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA49H〜0EA4AH:USR7エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA4BH〜0EA4CH:USR8エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA4DH〜0EA4EH:USR9エントリーアドレス 初期値044A5H(Illeagal function Call) 0EA4FH       :未使用 0EA50H〜0EA51H:フリーエリア最終アドレス0E9FFH(CLEAR文で変化はしない) 0EA52H〜0EA53H:コマンド・ステートメントの中間言語テーブル開始アドレス 033BDH   0EA54H       :RS−232Cバッファオーバーフローフラグ 000H以外でオーバーフロー 0EA55H       :割り込発生み直前の割り込みレベル 割り込みが発生されていない場合は0FFH 0EA56H       :割り込みがあったことを示すフラグ 000H以外で割り込みが発生 0EA57H       :000H以外を設定して1文字出力ルーチンをコールすると               現在のカーソル値より次の行をクリアする 0EA58H       :ターミナルモード                d7:ターミナルモード     1=オン  、0=オフ                d6:CRコード LF     1=オン  、0=オフ                d5:パリティ 偶数/奇数   1=偶数  、0=奇数                d4:パリティ         1=オン  、0=オフ                d3:半二重/全二重      1=半二重 、0=全二重                d2:ビット長         1=8Bit、0=7Bit                d1:コントロールコード表示  1=オン  、0=オフ                d0:プリンタへのエコーバック 1=オン  、0=オフ   0EA59H       :カーソルのオン/オフを0EA5FHに従わせるフラグ 000H=消去、0FFH=表示 0EA5AH       :ヌルキャラクタコード(COLOR文の第2パラメータ) 初期値は000H 0EA5BH       :アトリビュートコード 初期値は000H               白黒モード                d7:1=グラフィック、0=キャラクタ                d6:−                d5:アンダーライン                d4:アッパーライン                d3:−                d2:リバース                d1:ブリンク                d0:シークレット                   カラーモード(d3が1の場合)                d7:G                d6:R                d5:B                d4:1=グラフィック、0=キャラクタ                d3:1                d2:−                d1:−                d0:−                 カラーモード(d3が0の場合)                d7:−                d6:−                d5:アンダーライン                d4:アッパーライン                d3:0                d2:リバース                d1:ブリンク                d0:シークレット   0EA5CH       :ファンクションキー表示方法(画面をクリアして切り替わる) 000H=ベースアトリビュート、050H=リバース 0EA5DH       :スクロールの長さ 00〜24(000Hで1行、001Hで2行…) 0EA5EH       :スクロールの開始行01〜25(001Hで最上行になる) 0EA5FH       :カーソルスイッチ  000H=オフ、000H以外=オン 0EA60H       :ファンクションキー表示スイッチ 000H=オン、0FFH=オフ 0EA61H       :カラー/白黒モード 000H=白黒、0FFH=カラー              :ターミナルモード用 0EA62H       :行数(白黒モード)019H=25行、14=20行 0EA63H       :カーソルYの位置 上端が01(01〜25) 0EA64H       :カーソルXの位置 左端が01(01〜80) 0EA65H       :白黒モードのときの1行の文字数 050H=80文字                               048H=72文字                               028H=40文字                               024H=36文字   0EA66H       :ポート030Hの出力内容                d7:未使用                d6:未使用                d5:CMT BS2                d4:CMT BS1                d3:CMT MOTOR 1=MOTORオン、0=MOTORオフ                d2:CMT CHIN  1=マーク(2400Hz)、0=スペース(1200Hz)                d1:CRT 1=白黒、0=カラー                d0:CRT 1=80行、0=40行 0EA67H       :ポート040Hの出力内容                d7:未使用                d6:未使用                d5:BEEP    1=オン、0=オフ                d4:未使用                d3:CRT     /CLDS CLK                d2:RTC CLK(μPD1990 データ・シフト)                d1:RTC STB(μPD1990 コントロール)                d0:PRT     /STROBE   0EA68H       :ファンクションキーフラグ 000H=オフ、001H〜0FFH=オン 0EA69H       :キーボードから入力されたコード 0EA6AH       :前回押した特殊キーのデータ                000H=入力なし                001H=SHIFTキー                002H=CTRLキー                003H=カナキー                004H=カナ + SHIFTキー                005H=GRPHキー 0EA6BH       :リピートカウンタ(リピート0=006Hか040H) 0EA6CH       :キーポート000Hデータ 0EA6DH       :キーポート001Hデータ 0EA6EH       :キーポート002Hデータ 0EA6FH       :キーポート003Hデータ 0EA70H       :キーポート004Hデータ 0EA71H       :キーポート005Hデータ 0EA72H       :キーポート006Hデータ 0EA73H       :キーポート007Hデータ 0EA74H       :キーポート008Hデータ 0EA75H       :キーポート009Hデータ   0EA76H       :秒(BCD) タイマリードした値 0EA77H       :分(BCD) タイマリードした値 0EA78H       :時(BCD) タイマリードした値 0EA79H       :日(BCD) リセットした時の値は001H 0EA7AH       :月(BCD) リセットした時の値は001H 0EA7BH       :年(BCD) リセットした時の値は079H   0EA7CH〜0EA8BH:f・1の内容(最後は000H) HT 0EA8CH〜0EA9BH:f・2の内容(最後は000H) auto 0EA9CH〜0EAABH:f・3の内容(最後は000H) go to 0EAACH〜0EABBH:f・4の内容(最後は000H) list 0EABCH〜0EACBH:f・5の内容(最後は000H) run CR 0EACCH〜0EADBH:f・6の内容(最後は000H) time$ 0EADCH〜0EAEBH:f・7の内容(最後は000H) key 0EAECH〜0EAFBH:f・8の内容(最後は000H) print 0EAFCH〜0EB0BH:f・9の内容(最後は000H) list. CR↑↑ 0EB0CH〜0EB1BH:f・10の内容(最後は000H) cont CR   0EB1CH〜0EB1FH:PEST、PRESET、GET、PUT用ワーク 0EB20H〜0EB21H:LINE用ワーク 0EB22H〜0EB23H:LINE用ワーク 0EB24H〜0EB26H:PSET、PRESET用ワーク 0EB27H〜0EB29H:LINE用ワーク   0EB2AH       :RS−232C Ch1コマンド(INIT%の第3パラメータ) 0EB2BH       :RS−232C Ch2コマンド(INIT%の第3パラメータ) 0EB2CH       :RS−232C (未使用?) 0EB2DH       :RS−232C Ch入力ポート Ch1=0C1H,Ch2=0C3H 0EB2EH       :RS−232C Ch1 d7:1=キャラクタ長7、0=キャラクタ長8                           d6:キャラクタ長7時のBit7の値                           d5:                           d4:                           d3:                           d2:                           d1:                           d0: 0EB2FH       :RS−232C Ch2 d7:1=キャラクタ長7、0=キャラクタ長8                           d6:キャラクタ長7時のBit7の値                           d5:                           d4:                           d3:                           d2:                           d1:                           d0: 0EB30H       :RS−232C (未使用?) 0EB31H〜0EB32H:RS−232C 残りバッファデータ数 00000H〜0007FH 0EB33H〜0EB34H:RS−232C Ch1バッファ・アドレス 0EB35H〜0EB36H:RS−232C Ch1有効入力データ開始アドレス 0EB37H〜0EB38H:RS−232C Ch1有効入力データ最終アドレス 0EB39H〜0EB3AH:RS−232C Ch1 0EB3BH〜0EB3CH:RS−232C Ch2バッファ・アドレス 0EB3DH〜0EB3EH:RS−232C Ch2有効入力データ開始アドレス 0EB3FH〜0EB40H:RS−232C Ch2有効入力データ最終アドレス 0EB41H〜0EB42H:RS−232C Ch2 0EB43H       :RS−232C Ch1出力カウンタ 0EB44H       :RS−232C Ch2出力カウンタ 0EB45H       :RS−232C 未使用   0EB46H       :エラーコード 000H=エラー無し、001H〜010H=エラー有り 0EB47H       :未使用 0EB48H       :プリンタヘッド ポジション(LPOSの値) 0EB49H       :出力デバイス                000H     =CRT                001H〜07FH=PRT                080H〜0FFH=CMT 0EB4AH       :画面の実際の横の文字数 0EB4BH       :CRT改行値 PRINT文用                40行=00EH                80行=038H 0EB4CH       :未使用 0EB4DH       :画面の表示(ESCキー)                000H     =表示する                001H〜0FFH=表示しない 0EB4EH       :PRINTルーチン用 0EB4FH       :INPUT$用 0EB50H〜0EB51H:スタックポインタ 値初期値0E8D3H(フリーエリアの最終から文字領域分を引く) 0EB52H〜0EB53H:実行中のBASIC行番号(0FFFFHはダイレクトモード) 0EB54H〜0EB55H:BASICプログラムの開始番地                32Kシステム初期値08021H                16Kシステム初期値0C021H 0EB56H       :プログラム入力時、中間言語変換用 0EB57H〜0EC91H:中間言語バッファ 0EC92H〜0EC95H:不明コールドスタート時にEC93:3A 00 2C 0EC96H〜0ED93H:キー入力バッファ 0ED94H〜0ED98H: 0ED99H       :カーソルX座標(左端が00) 0ED9AH       :00〜01行接続フラグ 000H=接続、001H〜0FFH=独立 0ED9BH       :01〜02行接続フラグ 000H=接続、001H〜0FFH=独立 0ED9CH       :02〜03行接続フラグ 000H=接続、001H〜0FFH=独立 0ED9DH       :03〜04行接続フラグ 000H=接続、001H〜0FFH=独立 0ED9EH       :04〜05行接続フラグ 000H=接続、001H〜0FFH=独立 0ED9FH       :05〜06行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA0H       :06〜07行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA1H       :07〜08行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA2H       :08〜09行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA3H       :09〜10行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA4H       :10〜11行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA5H       :11〜12行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA6H       :12〜13行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA7H       :13〜14行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA8H       :14〜15行接続フラグ 000H=接続、001H〜0FFH=独立 0EDA9H       :15〜16行接続フラグ 000H=接続、001H〜0FFH=独立 0EDAAH       :16〜17行接続フラグ 000H=接続、001H〜0FFH=独立 0EDABH       :17〜18行接続フラグ 000H=接続、001H〜0FFH=独立 0EDACH       :18〜19行接続フラグ 000H=接続、001H〜0FFH=独立 0EDADH       :19〜20行接続フラグ 000H=接続、001H〜0FFH=独立 0EDAEH       :20〜21行接続フラグ 000H=接続、001H〜0FFH=独立 0EDAFH       :22〜22行接続フラグ 000H=接続、001H〜0FFH=独立 0EDB0H       :22〜23行接続フラグ 000H=接続、001H〜0FFH=独立 0EDB1H       :23〜24行接続フラグ 000H=接続、001H〜0FFH=独立 0EDB2H       :24〜25行接続フラグ 000H=接続、001H〜0FFH=独立 0EDB3H       :INPUT、READ用 0EDB4H       :画面から文字を読むときのY方向の始めの位置(1行入力の初期のカーソル位置) 0EDB5H       :画面から文字を読むときのX方向の始めの位置(1行入力の初期のカーソル位置) 0EDB6H       :X位置のどこまで読むか 0EDB7H〜0EDB8H:TERM用 0EDB9H       :DISK セクタ 0EDBAH       :PEST、PRESET、GET、PUT、LINE用 アトリビュート 0EDBBH       :PEST、PRESET、GET、PUT、LINE用 X(グラフィック) 0EDBCH       :PEST、PRESET、GET、PUT、LINE用 Y(グラフィック) 0EDBDH       :PEST、PRESET、GET、PUT、LINE用 カラーコード 0EDBEH〜0EDBFH:PEST、PRESET、GET、PUT、LINE用 画面上のアドレス 0EDC0H〜0EDC1H:ファンクションキーポインタ(ファンクションキー入力文字列の開始アドレス) 0EDC2H       :キー入力で何か押されていれば000H 0EDC3H       :キャラクタY座標 0EDC4H       :キャラクタX座標 0EDC5H       :DISK アクセスエラーカウンタ 0EDC6H       :DISK ドライブ0〜3 0EDC7H       :DISK 接続されているドライブ数 0EDC8H       :未使用 0EDC9H       :DISK PPI CW 通常は0FFH 0EDCAH       :LINEで引くキャラクタ 0EDCBH       :DISK タイムアップ カウンタ 0EDCCH〜0EDCDH:未使用   0EDCEH〜0EE4DH:RS−232C Ch1入力バッファ 128バイト 0EE4EH〜0EECDH:RS−232C Ch2入力バッファ 128バイト 0EECEH       :RS−232C RST 018H 出力文字用 0EECFH       :RS−232C 出力データ退避用 0EED0H       :RS−232C チャンネル 000H=Ch1、001H=Ch2 0EED1H       :未使用 0EED2H       :IEEE−488 IEEE(2)の値 0EED3H       :IEEE−488 IEEE(3)の値 0EED4H       :IEEE−488 未使用 0EED5H       :IEEE−488 STATUSの値 0EED6H〜0EEDAH:IEEE−488 0EEDBH       :IEEE−488 SQR 000H=Disable,000H以外Enable 0EEDCH       :IEEE−448 0EEDDH       :IEEE−448 0EEDEH〜0EEDFH:IEEE−488 ON SQR GOSUB用 0EEE0H〜0EEE5H:IEEE−448 0EEE6H       :IEEE−488 IEEE(6)の値 0EEE7H       :IEEE−488 IEEE(4)の値 0EEE8H       :IEEE−488 IEEE(5)の値 0EEE9H〜0EEEDH:IEEE−448 0EEEEH       :IEEE−488 CMD DELIM用 デリミタコード 0EEEFH       :IEEE−448 0EEF0H       :IEEE−448 CMD TIMEOUT用 タイム 0EEF1H〜0EEF5H:IEEE−448   0EEF6H〜0EF2BH:未使用   0EF2CH       :PUT、GET用                000H=PUT                0FFH=GET 0EF2DH〜0EF35H:PUT、GET用   0EF36H〜0EF3BH:CMT ファイルネーム 0EF3CH       :CMT 入力エラー 000H=エラーなし。0FFH=エラーあり 0EF3DH       :CMT ワーク   000H=CLOAD、0FFH=CLOAD? 0EF3EH〜0EF43H:CMT CLOAD中のファイルネーム   0EF44H       :変数認識ルーチンでDIMからきたフラグ(000H以外) 0EF45H       :FAccの型                002H=整数型                003H=文字型                004H=単精度型                008H=倍精度型 0EF46H       :中間言語とリストの変換ルーチンで使用 0EF47H       :リストから中間言語の変換で文字を行番号とするフラグ 0EF48H〜0EF49H:1ワード取得 ポインタ避難 0EF4AH       :1ワード取得 ACC避難 0EF4BH       :1ワード取得 精度(002H=整数型、004H=単精度型、008H=倍精度型) 0EF4CH〜0EF53H:1ワード取得 フローティングポイントレジスタ 0EF54H〜0EF55H:フリーエリア最終アドレス(CLEAR文の弟2パラメータ) 初期値0E9FFH 0EF56H〜0EF57H:文字列用スタックポインタ 0EF58H〜0EF75H:文字列用スタック(3バイトで1組) 0EF76H〜0EF78H:カレントストリングディスクプリタ 0EF79H〜0EF7AH:ストリングフリースペース 0EF7BH〜0EF7CH:NEXT、DIM、FN用 0EF7DH〜0EF7EH:ガベージコンクション用 変数ポインタ 0EF7FH〜0EF80H:FOR文中でHL(テキストポインタ退避) 0EF81H〜0EF82H:READ文ポインタがある行番号 0EF83H       :変数認識用 0EF84H       :READ 0EF85H〜0EF86H:FOR、ERASE、DIM、FN用 0EF87H       :GOTO 行番号からアドレスのフラグ 0EF88H       :AUTO実行中フラグ                000H     =実行していない                001H〜0FFH=実行中 0EF89H〜0EF8AH:AUTO次に発生する行番号 0EF8BH〜0EF8CH:AUTO行番号の増分 0EF8DH〜0EF8EH:プログラムを実行する前のHLの値 0EF8FH〜0EF90H:プログラムを実行する前のSPの値 0EF91H〜0EF92H:エラーの起こった行番号 0EF93H〜0EF94H:エラーの起こった行番号コピー(プログラムが実行中のとき) 0EF95H〜0EF96H:RESUME、ERROR文用 0EF97H〜0EF98H:ON ERROR GOTO〜のアドレス 0EF99H       :ON ERROR GOTO〜のフラグ 0EF9AH〜0EF9BH:DIM、FN、NEXT用 HLの値 0EF9CH〜0EF9DH:STOPキーが押された、STOP文で停止したときの行番号 0EF9EH〜0EF9FH:CONT用 行番号、プログラム書き換え時00000Hになる   0EFA0H〜0EFA1H:変数領域の開始アドレス   32Kシステム初期値08023H 0EFA2H〜0EFA3H:配列変数領域の開始アドレス 32Kシステム初期値08023H 0EFA4H〜0EFA5H:配列変数領域の終了アドレス 32Kシステム初期値08023H 0EFA6H〜0EFA7H:READ文ポインタ(現在DATA文でREADするアドレス) 0EFA8H〜0EFC1H:変数の指定 DEF文で変わる(A〜Z) 0EFC2H〜0EFC3H:FN用 0EFC4H〜0EFC5H:FN用 0EFC6H〜0F029H:FNの引数、名前、アドレス 0F02AH〜0F091H:FNの引数、名前、アドレス 0F092H〜0F095H:DIM、変数の検索用 0F096H〜0F097H:FN、ガベージコレクション用 0F098H〜0F099H:FN用 0F09AH〜0F0A1H:SWAP用フローティングポインタ 0F0A2H       :TRON、TROFF用フラグ                 000H     =TROFF                001H〜0FFH=TRON 0F0A3H       :FAcc 0F0A4H〜0F0ABH 倍精度 0F0A4H       :FAcc 0F0A8H〜0F0ABH 単精度 0F0A5H       :FAcc 0F0A8H〜0F0A9H 整数 0F0A6H       :FAcc 0F0A7H       :FAcc 0F0A8H       :FAcc 0F0A9H       :FAcc 0F0AAH       :FAcc 0F0ABH       :FAcc 0F0ACH       :符号 0F0ADH〜0F0B5H:倍精度演算用数値(0F0B5H符号) 0F0B6H〜0F0BCH:HEX$、OCT$用 0F0B7H〜0F0CDH:FAccから文字列変換用 0F0CEH〜0F0D0H: 0F0D1H〜0F0D8H:倍精度除算用 0F0D9H〜0F0DDH: 0F0DEH〜0F0E0H:単精度乗算用     0F0E1H〜0F215H:N−BASIC用ジャンプテーブル 0F0E1H〜0F0E3H:CVIフック 0F0E4H〜0F0E6H:CVSフック 0F0E7H〜0F0E9H:CVDフック 0F0EAH〜0F0ECH:EOFフック 0F0EDH〜0F0EFH:LOCフック 0F0F0H〜0F0F2H:LOFフック 0F0F3H〜0F0F5H:MKI$フック 0F0F6H〜0F0F8H:MKS$フック 0F0F9H〜0F0FBH:MKD$フック 0F0FCH〜0F0FEH:CMDフック 0F0FFH〜0F101H:OPENフック 0F102H〜0F104H:FIELDフック 0F105H〜0F107H:ISETフック 0F108H〜0F10AH:IRSETフック 0F10BH〜0F10DH:TALKフック 0F10EH〜0F110H:LISTENフック 0F111H〜0F113H:MATフック 0F114H〜0F116H:POLLフック 0F117H〜0F119H:WBYTEフック 0F11AH〜0F11CH:RBYTEフック 0F11DH〜0F11FH:???フック 0F120H〜0F122H:BCD$フック 0F123H〜0F125H:DECフック 0F126H〜0F128H:LFILESフック 0F129H〜0F12BH:GET#(01888H)フック 0F12CH〜0F12EH:DSKO$フック 0F12FH〜0F131H:FORMATフック 0F132H〜0F134H:PUT#(01893H)フック 0F135H〜0F137H:CLOSEフック 0F138H〜0F13AH:LOADフック 0F13BH〜0F13DH:MERGEフック 0F13EH〜0F140H:NAMEフック 0F141H〜0F143H:KILLフック 0F144H〜0F146H:LSETフック 0F147H〜0F149H:RSETフック 0F14AH〜0F14CH:SAVEフック 0F14DH〜0F14FH:FILESフック 0F150H〜0F152H:REMOVEフック 0F153H〜0F155H:MOUNTフック 0F156H〜0F158H:SETフック 0F159H〜0F15BH:DSKFフック 0F15CH〜0F15EH:DSKI$フック 0F15FH〜0F161H:ATTR$フック 0F162H〜0F164H:02327Hフック 0F165H〜0F167H:02345Hフック 0F168H〜0F16AH:FPOSフック 0F16BH〜0F16DH:エラーメッセージフック 0F16EH〜0F170H:BASICコマンド待ちの前のフック 0F171H〜0F173H:未使用 0F174H〜0F176H:BASICコマンド待ちでRETを押された後のフック 0F177H〜0F179H:03D6AHフック 0F17AH〜0F17CH:03D70Hフック 0F17DH〜0F17FH:プログラム入力、ENDフック 0F180H〜0F182H:04873Hフック 0F183H〜0F185H:RST 018H(040A6H)フック 0F186H〜0F188H:0413FHフック 0F189H〜0F18BH:RUNフック 0F18CH〜0F18EH:PRINTフック1 0F18FH〜0F191H:04791Hフック 0F192H〜0F194H:047EAHフック 0F195H〜0F197H:047EFH、04838Hフック 0F198H〜0F19AH:048E2Hフック 0F19BH〜0F19DH:0497AHフック 0F19EH〜0F1A0H:キー入力(00F9FH)フック 0F1A1H〜0F1A3H:LINE INPUT#フック 0F1A4H〜0F1A7H:CMT1バイトロード(00C88H)フック 0F1A7H〜0F1A9H:ディスクエラー(00175H)フック 0F1AAH〜0F1ACH:VARPTRフック 0F1ADH〜0F1AFH:03C0DHフック 0F1B0H〜0F1B2H:STOP+RESET(00081H)フック 0F1B3H〜0F1B5H:ディスク入出力(0009CH)フック 0F1B6H〜0F1B8H:CMTリード(00BF3H)フック 0F1B9H〜0F1BBH:CMTライト(00C46H)フック 0F1BCH〜0F1BDH:プリンタ1バイト出力(00D60H)フック 0F1BFH〜0F1C0H:TERM(000B8H)フック 0F1C2H〜0F1C4H:04BF9Hフック 0F1C5H〜0F1C7H:04E47Hフック 0F1C8H〜0F1CAH:エラー処理(03BF9H)フック 0F1CBH〜0F1CDH:03EA8Hフック 0F1CEH〜0F1D0H:05818Hフック 0F1D1H〜0F1D3H:文字列用スタックアクセス(05479H)フック 0F1D4H〜0F1D6H:05306Hフック 0F1D7H〜0F1D9H:016C5Hフック 0F1DAH〜0F1DCH:RST 020Hフック 0F1DDH〜0F1DFH:RST 028Hフック 0F1E0H〜0F1E2H:RST 030Hフック 0F1E3H〜0F1E5H:RST 038Hフック 0F1E6H〜0F1E8H:/INT7フック 0F1E9H〜0F1EBH:/INT6フック 0F1ECH〜0F1EEH:???フック 0F1EFH〜0F1F1H:???フック 0F1F2H〜0F1F4H:PRINTフック0 0F1F5H〜0F1F7H:048DAHフック 0F1F8H〜0F1FAH:LINE、LINE INPUTフック 0F1FBH〜0F1FDH:04939Hフック 0F1FEH〜0F200H:04BFCHフック 0F201H〜0F203H:04642Hフック 0F204H〜0F206H:041FAHフック 0F207H〜0F209H:016C2Hフック 0F20AH〜0F20CH:TERM キー入力(00E37H)フック 0F20DH〜0F20FH:CMT1バイトライト(00CDAH)フック 0F210H〜0F212H:INPUT”?Extra ignored”フック 0F213H〜0F215H:未使用 0F216H〜0F2FFH:未使用       0F300H〜0FEB7H:VRAM (80+40)*25行=3000バイト 0FEB8H〜0FF2FH:クリアする時にVRAMに書き込むデータ1行(80+40バイト)分 0FF30H〜0FF31H:マシン語モニタ Sコマンド再セットアドレス(下位・上位) 0FF32H       :マシン語モニタ 未使用 0FF33H       :マシン語モニタ ロードコマンド                000H=Lコマンド                00DH=LVコマンド 0FF34H〜0FF35H:マシン語モニタ ^Bコマンド BASICプログラム内アドレス(下位。上位) 0FF36H〜0FF37H:マシン語モニタ 起動時スタックポインタ保存用 0FF38H       :マシン語モニタ                 000H=Sコマンド                0FFH=Dコマンド 0FF39H〜0FF3AH:マシン語モニタTMコマンド エラーメモリアドレス(下位・上位) 0FF3BH       :マシン語モニタTMコマンド エラー書き込んだデータ 0FF3CH       :マシン語モニタTMコマンド エラー読み込んだデータ 0FF3DH〜0FFFFH:イニシャライズ用(使用後は空き)    
PC−8001mkII用   06BA1H グラフィックモード設定   0E6C7H:CMD SCREEN 第1パラメータ   0E6C8H:CMD SCREEN 第2パラメータ   0E6C9H:CMD SCREEN 第3パラメータ   06C5FH  ビューポート設定   0E6DBH〜0E6DCH:左上X座標   0E6DDH〜0E6DEH:左上Y座標   BC=右下X座標   DE=右下Y座標   06F27H  PSET  In:   HL=X座標   DE=Y座標   0ED9H:グラフィック機能モード       000H:PSET       001H:PRESET       002H:AND       003H:OR       004H:XOR   0E6DAH:カラーコード   07009H  LINE  In:   0E6DBH〜0E6DCH:始点X座標   0E6DDH〜0E6DEH:始点Y座標   0E6DFH〜0E6E0H:終点X座標   0E6E1H〜0E6E2H:終点Y座標   0728FH  BOX  In:   0E6DAH:カラーコード   0E6DBH〜0E6DCH:始点X座標   0E6DDH〜0E6DEH:始点Y座標   0E6DFH〜0E6E0H:終点X座標   0E6E1H〜0E6E2H:終点Y座標   072E3H  BOX FILL  In:   0E6DAH:カラーコード   0E6DBH〜0E6DCH:始点X座標   0E6DDH〜0E6DEH:始点Y座標   0E6DFH〜0E6E0H:終点X座標   0E6E1H〜0E6E2H:終点Y座標   07378H  GRAMクリア   074EAH  PAINT  In:   0E6DBH〜0E6DCH:始点X座標   0E6DDH〜0E6DEH:始点Y座標   0E6DAH       :カラーコード   0E72EH〜0E72FH:PAINTの境界色   07821H  円を描く  In:   0E6FAH〜0E6FBH:円の中心X座標   0E6FCH〜0E6FDH:円の中心Y座標   0E6FEH〜0E6FFH:円の半径   0E700H〜0E703H:円弧開始角(単精度)   0E704H〜0E707H:円弧終了角(単精度)   0E708H〜0E70BH:円の扁平率(単精度)   07825H  円を描く  In:   0E6FAH〜0E6FBH:円の中心X座標   0E6FCH〜0E6FDH:円の中心Y座標   0E6FEH〜0E6FFH:円の半径   0E6DAH       :カラーコード   0E708H〜0E70BH:円の扁平率(単精度)   07A9AH  ハードコピー(PC−8023C /8821/8822)  In:   A=001H テキスト   A=002H グラフィック   A=003H テキスト+グラフィック   A=004H グラフィック 縦1/2(640×200)   A=005H テキスト+グラフィック 縦1/2(640×200)  Out:   Cf=1 STOPキーで中断   07C94H  漢字の表示  In:   0E6DBH       :X座標   0E6DCH       :Y座標   0E6D9H       :機能                  000H PSET                  001H PRSET                  002H AND                  003H OR                  004H XOR   0E6E3H       :パレットコード   0E6E5H〜0E6E6H:JISコード   0E6E7H       :所属                  000H 全角                  002H 半角                  003H 1/4角     ワークエリア 0E603H〜0E605H:フック 0E606H〜0E617H:DMA転送方ディスクワーク 0E629H       :カレントディスクドライブ 000H=DMA転送方式                            002H=PC−8031 (1D)                            003H=PC−80S31 (2D) 0E62AH       :DMA転送方式ディスク 000H     =8インチ                           001H     =5インチ                           002H〜0FFH=なし 0E643H       :DMA転送方式ディスク セクタ長   0E6C6H       :ポート031Hの内容 0E6C7H       :CMD SCREEN 第1パラメータ 0E6C8H       :CMD SCREEN 第2パラメータ               CMD PUT 000H グラフィック                       001H 漢字 0E6C9H       :CMD SCREEN 第3パラメータ 0E6CAH       :フォアグランドカラー 0E6CBH       :バックグランドカラー 0E6CCH       :ビューポート先頭X 0E6CDH       :ビューポート先頭Y 0E6CEH       :ビューポート最終X 0E6CFH       :ビューポート最終Y 0E6D0H〜0E6D1H:解像度X 640(00280H)または320(00140H) 0E6D4H〜0E6D5H:最終参照点X座標 0E6D6H〜0E6D7H:最終参照点Y座標 0E6D8H       :グラフィックスクリーンモード                000H:アトリビュートカラー                001H:4色カラー0                002H:4色カラー1                0FFH:モノクロ 0E6D9H       :グラフィック機能モード                000H:PSET                001H:PRESET                002H:AND                003H:OR                004H:XOR 0E6DAH       :カラーコード 0〜3 0E6DBH〜0E6DCH:始点X座標 0E6DDH〜0E6DEH:始点Y座標 0E6DFH〜0E6E0H:終点X座標 0E6E1H〜0E6E2H:終点Y座標 0E6E3H       :漢字フォアグランドカラー 0E6E4H       :漢字バックグランドカラー 0E6E5H〜0E6E6H:JIS漢字コード 0E6E7H       :漢字の大きさ                 000H:全角                 003H:半角                 004H:1/4 0E6E8H〜0E6E9H:GRAM書き込みアドレス 0E6EAH〜0E6EBH:GRAM書き込みデータ 0E6ECH       :ライン、BOX開始点ビューポイントオーバーフラグ                b3:上方向 1=オン、0=オフ                b2:下方向 1=オン、0=オフ                b1:左方向 1=オン、0=オフ                b0:右方向 1=オン、0=オフ 0E6EDH       :ライン、BOX最終点ビューポイントオーバーフラグ                b3:上方向 1=オン、0=オフ                b2:下方向 1=オン、0=オフ                b1:左方向 1=オン、0=オフ                b0:右方向 1=オン、0=オフ 0E6EEH〜0E6EFH:GRAM開始点アドレス 0E6F0H〜0E6F1H:GRAM最終点アドレス 0E6F2H〜0E6F3H:CMD LINE、CMD PAINT用 0E6F4H〜0E6F5H:CMD LINE、CMD PAINT用 0E6F6H〜0E6F7H:CMD LINE、CMD PAINT用 0E6F8H〜0E6F9H:CMD LINE、CMD PAINT用 0E6FAH〜0E6FBH:円の中心X座標 0E6FCH〜0E6FDH:円の中心Y座標 0E6FEH〜0E6FFH:円の半径 0E700H〜0E703H:円弧開始角(単精度) 0E704H〜0E707H:円弧終了角(単精度) 0E708H〜0E70BH:円の扁平率(単精度)   0E725H       :円の種類 000H=円、001H=円弧 0E72EH〜0E72FH:PAINTの境界色     0E800H〜0E8FFH:拡張ROM用
Home へ戻る