ワンボードマイコンをつくろう!(パソコンの原点はここから始まった)
TK80ソフトコンパチブル!8080、Z80マシン語からBASICまでこれ1台でこなせます
当記事は2009年11月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.1 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆ND80ZVでBASICを(2) ND80ZVに搭載予定のBASICはハンパではありません。 浮動小数点演算をこなし、さらに三角関数、対数計算までできるのです。 しかも、倍精度での演算もできてしまいます。 |
[第66回]
●XLコマンドの改良
前回、前々回で、BASICのプログラムの一部文字列を一括置き換えするために、XLコマンドを使用しました。
XLコマンドの機能そのものはなかなかに便利なのですが、置き換えの対象となったBASICプログラム行を表示するときに、置き換え後のリストを表示するのではなくて、置き換え前のリストを表示するようになっていました。
これは、早い話が手抜きでありました。
処理の前半部分は、文字列検索を行うSLコマンドの処理と同じなので、そのようになっていたのでした。
このコマンドを作ったのはもうずいぶん昔のことなのですが、手を加えるのも面倒なので、ずっとそういうことで来てしまいました。
でも、前回、XLコマンドの操作の説明をしておりまして。
うう。
やっぱり、あれです。
置き換え後のリストが表示されない、つうのは、せっかくの便利な機能なのに、いかにも中途半端な印象なのですよねえ。
むむ。なんとかしたいなあ。
で。
なんとか、してしまいました。
今回は、そのご報告です。
まずは前回の置き換え前のリストを用意いたしました。
>h. TEXT 8004-8198 ヘンスウ DFFB-DFFF >. 5 ON ERROR GOTO *ERR 10 PRINT "rad","sin","cos","tan" 20 A=0:A$="0":GOSUB *SAN 30 A=PI/6:A$="pai/6":GOSUB *SAN 40 A=PI/4:A$="pai/4":GOSUB *SAN 50 A=PI/3:A$="pai/3":GOSUB *SAN 60 A=PI/2:A$="pai/2":GOSUB *SAN 70 A=PI:A$="pai":GOSUB *SAN 80 A=PI*1.5:A$="1.5pai":GOSUB *SAN 90 A=PI*2:A$="2pai":GOSUB *SAN 100 STOP 110 *SAN 120 PRINT A$,SIN(A),COS(A),TAN(A) 130 RETURN 190 *ERR 200 PRINT "***" 210 RESUME NEXT |
>xl a=,a#= 20 A#=0:A$="0":GOSUB *SAN 30 A#=PI/6:A$="pai/6":GOSUB *SAN 40 A#=PI/4:A$="pai/4":GOSUB *SAN 50 A#=PI/3:A$="pai/3":GOSUB *SAN 60 A#=PI/2:A$="pai/2":GOSUB *SAN 70 A#=PI:A$="pai":GOSUB *SAN 80 A#=PI*1.5:A$="1.5pai":GOSUB *SAN 90 A#=PI*2:A$="2pai":GOSUB *SAN |
>xl pi,pi# 30 A#=PI#/6:A$="pai/6":GOSUB *SAN 40 A#=PI#/4:A$="pai/4":GOSUB *SAN 50 A#=PI#/3:A$="pai/3":GOSUB *SAN 60 A#=PI#/2:A$="pai/2":GOSUB *SAN 70 A#=PI#:A$="pai":GOSUB *SAN 80 A#=PI#*1.5:A$="1.5pai":GOSUB *SAN 90 A#=PI#*2:A$="2pai":GOSUB *SAN |
>xl a),a#) 120 PRINT A$,SIN(A#),COS(A),TAN(A) 120 PRINT A$,SIN(A#),COS(A#),TAN(A) 120 PRINT A$,SIN(A#),COS(A#),TAN(A#) |
>list 5 ON ERROR GOTO *ERR 10 PRINT "rad","sin","cos","tan" 20 A#=0:A$="0":GOSUB *SAN 30 A#=PI#/6:A$="pai/6":GOSUB *SAN 40 A#=PI#/4:A$="pai/4":GOSUB *SAN 50 A#=PI#/3:A$="pai/3":GOSUB *SAN 60 A#=PI#/2:A$="pai/2":GOSUB *SAN 70 A#=PI#:A$="pai":GOSUB *SAN 80 A#=PI#*1.5:A$="1.5pai":GOSUB *SAN 90 A#=PI#*2:A$="2pai":GOSUB *SAN 100 STOP 110 *SAN 120 PRINT A$,SIN(A#),COS(A#),TAN(A#) 130 RETURN 190 *ERR 200 PRINT "***" 210 RESUME NEXT |