;==============================================================================
;	<< 386ASM V2.0 >>  for  FM TOWNS
;==============================================================================
.386p
		PAGE	60,132
		NAME	CTRLCPY
		TITLE	control parameter move.
;==============================================================================
;	CONTROL.EXEへのパラメータ転送
;	( 実行コマンドラインの転送 )
;
;	< High C からの呼出形式 >
;	extern char CTRL_cmdline_data[] ;
;	extern CTRL_cmdline() ;
;	strcpy( CTRL_cmdline_data,"Q:\\RUN386.EXE XXX.EXP PARA1 ..." ) ; 
;	RealCall( CTRL_cmdline ) ;
;	exit( 0 ) ;
;
;	< note > : TABS = 4
;
;	< History >
;	1990.03.14 : CREATE
;	1991.04.13 : 清書
;
;	★ 注意
;		本プログラムがコールされる時には、
;		CONTROL.EXE が常駐していること！
;
;	Programmed by Y.Hirata
;==============================================================================
;
INCLUDE	hc.inc								;
;
;--------------------------------------------
		public	CTRL_cmdline				;
		public	CTRL_cmdline_data			;
;--------------------------------------------
;
rmcode  SEGMENT								;
		ASSUME	cs:rmcode					;
;
;********************************************
;	コントローラの構造体
;********************************************
com_buf		STRUC							;
Cmd_code	DW		?						; コマンドコード(INPUT)
Cmd_stat	DW		?						; エラーレベル  (OUTPUT)
Dos_erno	DW		?						; INT21(#4B)時に返されるAX
											; の値(OUTPUT)
Dev_code	DW		?						; INT24時に渡されるAXの値(OUTPUT)
Err_code	DW		?						; INT24時に渡されるDIの値(OUTPUT)
Cmd_line	DB		120 DUP (?)				;
com_buf		ENDS							;
;
;********************************************
;	実行コマンドラインの転送
;********************************************
		ALIGN	4							; dword boundary
CTRL_cmdline	PROC	FAR					;
			push	si						;
			push	di						;
			push	ds						;
			push	cx						;
;
			mov		ax,0					;
			int		INT_CTRL				; Output = ES:BX
			mov		di,bx					;
			mov		es:Cmd_code[di],1		; 再帰コール時に必要
											; MENUに戻るならば 0 をｾｯﾄ
			lea		di,Cmd_line.[di]		;
			push	cs						;
			pop		ds						;
			mov		si,OFFSET CTRL_cmdline_data
											;
			mov		cx,120					;
	rep 	movsb							;
;
			pop		cx						;
			pop		ds						;
			pop		di						;
			pop		si						;
			ret								;
CTRL_cmdline	ENDP						;
;
CTRL_cmdline_data	DB		120 DUP (?)		;
;
rmcode		ENDS							;
;
		END

