前頁  メニュー  次頁


True BASICとの相違

3.本BASICで使えない機能




(2) True BASIC独自の機能で本BASICで使えないもの(おもなもの)

・制御関係
    library文
    ファイル−末尾に追加読込 で対応
    OPTION TYPO
    オプション−文法−変数宣言を強要 に相当
    OPTION NOLET
    文法−Microsoft BASIC互換 で対応
    GET KEY
    CHARACTER INPUTの後,ORD関数を適用する
  KEY INPUT
    ASK CHARACTER PENDINGで対応
  END DATA, MORE DATA 
    READ文にIF MISSINGを書いて対応
  DECLARE PUBLIC
    DECLARE EXTERNAL NUMERIC
    および
    DECLARE EXTERNAL STRING
    に相当
    PUBLIC
    PUBLIC NUMERIC
    および
    PUBLIC STRING
    に分けて書く。
  PRIVATE
        share文に書き換える
    (ただし,現バージョンでは非公開にならない)

・グラフィックス
    SET BACKGROUND COLOR  (SET BACK)
    SET COLOR MIX (0) の後,CLEAR
    ASK BACKGROUND COLOR  (ASK BACK)
    ASK COLOR MIX (0) で対応
  BOX LINES
    GRAPH LINES文で対応
        副プログラムとして定義しておくとよい。
          EXTERNAL SUB BOX_LINES(l,r,b,t)
            GRAPH LINES: l,b; r,b; r,t; l,t; l,b
          END SUB
    BOX AREA
    GRAPH AREA文で対応
          EXTERNAL SUB BOX_AREA(l,r,b,t)
            GRAPH AREA: l,b; r,b; r,t; l,t
          END SUB
  BOX CLEAR
    GRAPH AREA文で対応
  BOX CIRCLE,BOX ELLIPSE 
    DRAW circleで対応
  BOX KEEP
    ASK PIXEL ARRAYで対応
  BOX SHOW
    MAT PLOT CELLSで対応
  GET MOUSE
    MOUSE POLL(規格外)が機能的に近い
    SET MODE, ASK MODE
    対応なし(ただしグラフィックは常に利用できる)
    ビットマップのサイズ変更は SET BITMAP SIZE(規格外)
    SET CURSOR, ASK CURSOR
    対応なし
    OPEN SCREEN
    対応なし
  WINDOW #
    対応なし
    
・ファイル,I/O関係
    可変長ファイル (ORG RANDOM)
    対応なし
    固定長ファイル (ORG RECORD)
    対応なし
    バイトファイル
    OPTION CHARACTER BYTEを宣言し,CHARACTER INPUT文とPRINT文で対応
    open文のCREATE句
    対応なし(本BASICの既定値が適用される)
    END #,MORE #
      INPUT文などに IF MISSING THENを書いて対応
  UNSAVE
        FILE DELETE(規格外)と同義
    ASK FREE MEMORY
    対応なし

・音楽機能
    PLAY文,SOUND文
    対応なし(本BASICのPLAY文とは機能が異なる)
     
・組み込み関数
    CPOS, CPOSR, NCPOS, NCPOSR, POSR
        外部関数を定義する
        例
EXTERNAL FUNCTION CPOS(a$,b$,n)
FOR i=n TO LEN(a$)
   IF POS(b$,a$(i:i))>0 THEN
      LET CPOS=i
      EXIT FUNCTION
   END IF
NEXT i
LET CPOS=0
END FUNCTION
  PEEK, UNPACKB, NUM, NUM$, RUNTIME
    対応なし

・組込み副プログラム
  DIVIDE
        外部副プログラム定義を利用
    EXTERNAL SUB DIVIDE(a,b,q,r)
            LET q=INT(a,b)
            LET r=MOD(a,b)
        END SUB
   PACKB, POKE
        対応なし