;TownsMENU背景 表示/非表示 設定ユーティリティ 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 =0xxxxxxxb(非表示) =1xxxxxxxb(表示)
	mov	al,cmdlen
	cmp	al,2
	jb	err		;if コマンド長<2 then err
	mov	ax,word ptr cmdln	;ah=コマンド

	cmp	ax,'+ '
	jne	next1
	cmp	cl,0
	js	bgon1
	
	mov	al,cl
	or	al,80h
	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
	cmp	cl,0
	jns	bgoff1
	
	mov	al,cl
	and	al,7fh
	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
	cmp	cl,0
	jns	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,80h
	rol	al,1
	mov	ah,4ch
	int	21h		;終了
	
m_head	db	0Dh,0Ah,'TownsMENU背景 表示/非表示 設定ユーティリティ Ver.1 By Ushio 1994.1.2',0Dh,0Ah,0Dh,0Ah,'$'
m_on0	db	'現在背景は <表示> に設定さています。$'
m_off0	db	'現在背景は <非表示> に設定さています。$'
m_on1	db	'背景は既に <表示> に設定さています。',0Dh,0Ah,'$'
m_off1	db	'背景は既に <非表示> に設定さています。',0Dh,0Ah,'$'
m_on2	db	'背景を <表示> に設定しました。',0Dh,0Ah,'$'
m_off2	db	'背景を <非表示> に設定しました。',0Dh,0Ah,'$'
m_tail	db	0Dh,0Ah,0Dh,0Ah
	db	'使用法 : TMBG +         背景を 表示 に設定します。',0Dh,0Ah
	db	'         TMBG -         背景を 非表示 に設定します。',0Dh,0Ah
	db	'         TMBG           現在の 表示/非表示 の状態を表示します。',0Dh,0Ah,0Dh,0Ah
	db	'戻り値 : ERRORLEVEL==0  背景は 非表示 の状態です。',0Dh,0Ah
	db	'         ERRORLEVEL==1  背景は 表示 の状態です。',0Dh,0Ah
	db	'$'
	
CODE	ends
	end	ENTRY
