;RAMDISK 使用/不使用 設定ユーティリティ for TOWNS Ver.1  By Ushio 1994.1.2
.8086
print	macro	msg		;文字列の使用(終端=$,破壊=ah,dx)
	mov	dx,offset msg
	mov	ah,9
	int	21h
	endm
	
CODE	segment
	assume	cs:CODE,ds:CODE
	org	80h
cmdlen	db	?		;文字列長-1
cmdln	label	byte		;文字列
	org	100h
ENTRY:	
	mov	dx,3c30h
	in	al,dx
	mov	cl,al		;cl =x0xxxxxxb(不使用) =x1xxxxxxb(使用)
	mov	al,cmdlen
	cmp	al,2
	jb	err		;if コマンド長<2 then err
	mov	ax,word ptr cmdln	;ax=コマンド

	cmp	ax,'+ '
	jne	next1
	test	cl,40h
	jnz	bgon1
	
	mov	al,cl
	or	al,40h
	out	dx,al		;使用
	print	m_head
	print	m_on2
	jmp	owari
bgon1:	print	m_head
	print	m_on1
	jmp	owari
next1:
	cmp	ax,'- '
	jne	next2
	test	cl,40h
	jz	bgoff1
	
	mov	al,cl
	and	al,0bfh;10111111b
	out	dx,al		;不使用
	print	m_head
	print	m_off2
	jmp	owari
bgoff1:	print	m_head
	print	m_off1
	jmp	owari
next2:
err:	print	m_head
	test	cl,40h
	jz	next3
	print	m_on0
	print	m_tail
	jmp	owari
next3:	print	m_off0
	print	m_tail
;	jmp	owari
next4:
owari:	mov	al,cl
	and	al,40h
	shl	al,1
	rol	al,1
	mov	ah,4ch
	int	21h		;終了
	
m_head	db	0Dh,0Ah,'RAMDISK 使用/不使用 設定ユーティリティ for TOWNS Ver.1   By Ushio 1994.1.2',0Dh,0Ah,0Dh,0Ah,'$'
m_on0	db	'現在RAMDISKは <使用> に設定さています。$'
m_off0	db	'現在RAMDISKは <不使用> に設定さています。$'
m_on1	db	'RAMDISKは既に <使用> に設定さています。',0Dh,0Ah,'$'
m_off1	db	'RAMDISKは既に <不使用> に設定さています。',0Dh,0Ah,'$'
m_on2	db	'RAMDISKを <使用> に設定しました。',0Dh,0Ah,'$'
m_off2	db	'RAMDISKを <不使用> に設定しました。',0Dh,0Ah,'$'
m_tail	db	0Dh,0Ah,0Dh,0Ah
	db	'使用法 : RAMDISK +      RAMDISKを 使用 に設定します。',0Dh,0Ah
	db	'         RAMDISK -      RAMDISKを 不使用 に設定します。',0Dh,0Ah
	db	'         RAMDISK        現在の 使用/不使用 の状態を表示します。',0Dh,0Ah,0Dh,0Ah
	db	'戻り値 : ERRORLEVEL==0  RAMDISKは 不使用 の状態です。',0Dh,0Ah
	db	'         ERRORLEVEL==1  RAMDISKは 使用 の状態です。',0Dh,0Ah
	db	'$'
	
CODE	ends
	end	ENTRY
