2012.6.13
前へ
次へ
ホームページトップへ戻る

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第149回]


●ファンクションコール24H(ランダムレコードアクセスポインタの更新)

ファンクションコール24Hについては[第111回]で説明をしています。
そこでも書きましたように、ちょっとどう使うのかよくわからないファンクションです。
ま、しかし、それほど難しい働きでもありませんから、とにかく作ってしまいました。

そのテストについては、[第111回][第113回]で行なっています。
今回もそこで書きました通りの手順でテストをしてみることにいたします。
[第111回]ではFTST23.COMを使ってシーケンシャルファイルTEST.SAFを作成しています。
ftst23 test.saf[Enter]の実行です。

[第112回]ではFTST24.COMを使って、TEST.SAFの内容を読み出しています。
ftst24 test.saf[Enter]の実行です。

そして[第113回]ではFTST24.COMにファンクションコール24Hを追加したFTST25.COMを作って、実行しています。

今回もそれと同じことをしてみます。

logfile nd80zlog\06022046.txt open

ND80ZVに接続しました
0001 0000 - z
1000 00C3 - 
*** nd80z3 basic ****
>/sv bdos88-dfa.bin,8800,dfff
5800(22528)bytes saved
>/ld fille5.bin,8100
loading FILLE5.BIN ...0010(16)bytes loaded,from 8100 to 810F
>jp 8100
>/ld ftst23.bin,8100
loading FTST23.BIN ...0076(118)bytes loaded,from 8100 to 8175
>jp d233

A>dir
no file
A>save 1 ftst23.com

A>ftst23 test.saf
done

A>dir
A: FTST23   COM : TEST     SAF
A>
また何かで前の状態に戻ってテストをしなくてはならないことも出てくるかも知れませんから、仮RAMディスク〜CP/M互換DOSの範囲のRAM(アドレス8800H〜DFFFH)の内容を名前をつけて保存しました。
/sv bdos88−dfa.bin,8800,dfff[Enter]
です。

次にFILLE5.BINを実行して仮RAMディスクをフォーマット(クリア)しました。
FILLE5.BINは[第38回]で説明をしました。

それからFTST23.BINをトランジェントエリアにロードしたあと、CP/M互換DOSを起動して、FTST23.COMをAドライブにセーブしました。
そしてFTST23を使って、シーケンシャルファイルTEST.SAFを作成しています。
ftst23 test.saf[Enter]の実行です。

次はFTST24を実行して、TEST.SAFの内容を読み出しました(下のリスト)。
ftst24 test.saf[Enter]の実行です。

A>end of ZBDOS
>/ld ftst24.bin,8100
loading FTST24.BIN ...00d6(214)bytes loaded,from 8100 to 81D5
>jp d233

A>save 1 ftst24.com

A>ftst24 test.saf
r=01 d=00
r=02 d=01
r=03 d=02
r=04 d=03
r=05 d=04
r=06 d=05
r=07 d=06
r=08 d=07
r=09 d=08
r=0A d=09
r=0B d=0A
r=0C d=0B
r=0D d=0C
r=0E d=0D
r=0F d=0E
r=10 d=0F

A>

そして、FTST25を実行しました(下のリスト)。

A>end of ZBDOS
>/ld ftst25.bin,8100
loading FTST25.BIN ...00f9(249)bytes loaded,from 8100 to 81F8
>jp d233

A>save 1 ftst25.com

A>ftst25 test.saf
r=01 d=00 00 00 10
r=02 d=01 00 00 10
r=03 d=02 00 00 10
r=04 d=03 00 00 10
r=05 d=04 00 00 10
r=06 d=05 00 00 10
r=07 d=06 00 00 10
r=08 d=07 00 00 10
r=09 d=08 00 00 10
r=0A d=09 00 00 10
r=0B d=0A 00 00 10
r=0C d=0B 00 00 10
r=0D d=0C 00 00 10
r=0E d=0D 00 00 10
r=0F d=0E 00 00 10
r=10 d=0F 00 00 10

A>end of ZBDOS
>0000 00C3 - 
リモート接続を終了しました
logfile closed at Sat Jun 02 20:55:07 2012

あれっ?
ランダムレコードbェ全て10です!
むむむ。
ファンクションコール24Hにバグがあるようです。

バグを直して、再実行しました。

logfile nd80zlog\06022149.txt open

ND80ZVに接続しました
0001 0000 - z
1000 00C3 - 
*** nd80z3 basic ****
>/ld zbdos1x.bin,c406
loading ZBDOS1X.BIN ...0907(2311)bytes loaded,from C406 to CD0C
>jp d233

A>dir
A: FTST23   COM : TEST     SAF : FTST24   COM : FTST25   COM

A>ftst25 test.saf
r=01 d=00 00 00 01
r=02 d=01 00 00 02
r=03 d=02 00 00 03
r=04 d=03 00 00 04
r=05 d=04 00 00 05
r=06 d=05 00 00 06
r=07 d=06 00 00 07
r=08 d=07 00 00 08
r=09 d=08 00 00 09
r=0A d=09 00 00 0A
r=0B d=0A 00 00 0B
r=0C d=0B 00 00 0C
r=0D d=0C 00 00 0D
r=0E d=0D 00 00 0E
r=0F d=0E 00 00 0F
r=10 d=0F 00 00 10

A>end of ZBDOS
>0000 00C3 - 
リモート接続を終了しました
logfile closed at Sat Jun 02 21:50:50 2012

今度はうまくいきました。
やれやれです。

ワンボードマイコンでCP/Mを![第149回]
2012.6.13upload

前へ
次へ
ホームページトップへ戻る