> 念のためですが、konnoさん、以下を見たことありますよね?
ざっとは見ていますが、私は文太さんとの意思疎通がうまく出来ていない気がして。
とりあえず TBCの現況を書いてみますね。
TBCは普通のBASICにある TIME$なども無いので、マシン語で作ってみました。
20000
* time ax$2c00,&i($21)h=cx/256,m=cx-h*256,
*integer n,h,m,s
* マシン語の内容
/byte &b4, &2c
/byte &cd, &21
/byte &b4, 0
/byte &8A, &c5
value = h
/byte &8A, &c1
value = m
/byte &8A, &c6
value = s
h=h mod 24
m=m mod 60
s=s mod 60
print#0 %2I h; ":"; %2I m; ":"; %2I s
* マシン語 アセンブラのソース
* B8 2C00 mov ax,2c00h
* B4 2C mov ah,2ch
* CD 21 int 21h
* B4 0 mov ah,0
* 8A C5 mov al,ch h
* 8A C1 mov al,cl m
* 8A C6 mov al,dh s
return
これを作った後で、contime.libに同等のサブルーチンがあるのに気が付いた次第です。
subroutine time
なんてこったい。(-_-;)
でもこれが出来たので、prime2.bas 素数表示の移植が出来ました。
#txt:prime2tk.lzh 7098bytes by TBC ソース付き
これを 1 オプション付きで起動して 65550 を入力します。
>prime2tk.exe 1
Prime Number (20 to 100000 ) ? 65550
0: 0:13
Prime Number = 6545
DOSVAXJ3 や MS-DOS Player はこういう表示になるのですが、VTDOSは
0: 0:17
Prime Number = 6555
こうなります。VTDOSだけ 65536を超えるとおかしくなるようです。
エラー処理が無いのでこの状態になったり中断したりするとメモリを壊すかもしれません。
DOSエミュ窓が消滅しても良い状態で試してください。
386コードなどが紛れているのか、VTDOSかソースに問題が有るのか、わかりませんが
現状ここで躓いてしまっています。