旧型ムーブマスタをWindowsから動かす(2003.04〜)

事情があって旧型ムーブマスタをWindowsから動かす必要がでてきた。 マシンは RV-M1である。 当初はN88-BASIC/PC9801(注:MS-DOS版でない)で制御されていた。

再稼働の試み1

すでにN88-BASIC/PC9801が稼働するマシンはなく、 なんとかN88-BASIC(MS-DOS版)/MS-DOS/PC9801でトライしてみる。
当初のN88-BASIC/PC9801ではRS232Cを使用していたが、 N88-BASIC(MS-DOS版)では設定方法の詳細が分からず、 うまく通信できない。
しかたなくセントロニクス経由に変更。 LPRINT文を使って久しぶりにムーブマスタが動き出す。
ムービー(N88BASICを起動し「NT」と「OG」を送る)

旧型DOSマシンでのRS232Cの使い方など
徳島大学、村上氏のページ

再稼働の試み2
..
再稼働の試み3

ムービー(C++サンプルより「NT」と「OG」を送る)

サンプルプログラム

#include
#include
#include
#include"cdio.h"

void outx( int );

short 	id;
void main()
{
	int	r;
	BYTE  data;

	r = DioInit("DIO000",&id);
	printf("ret %d \n", r);
//	getch();
	outx( 'N');	outx( 'T' );
	outx( 0x0d );	outx( 0x0a );
	
	outx( 'O');	outx( 'G' );
	outx( 0x0d );	outx( 0x0a );
}
void outx( int x)
{
	BYTE busy,data;

	while( 1 ){
		DioInpByte(id, 0, &busy);
		if( (busy & 0x10) == 0x10)
			break;
	}
	data = 0x7f & x | 0x80;
	DioOutByte(id, 0, ~data);
	data = 0x7f & x ;
	DioOutByte(id, 0, ~data);
	data = 0x7f & x | 0x80;
	DioOutByte(id, 0, ~data);
}

I/Oモジュールとの接続回路

使用したI/Oモジュールは8入力・8出力なので、 I/Oモジュール出力の7ビット目をストローブ信号として使い、 プリンタポートのデータ線の7ビット目は常に0とする。