# gcc -nostdlib -nostdinc -Wl,--oformat,binary,-Ttext,0x100 a.s
# check whether 0x60-0x6f is same as 0x70-0x7f
	.code16
	pushf
	pop	%di
	mov	$0x100, %cx
lp:	push	%cx
	mov	$f, %si
	mov	%cl, %dh
	mov	$5, %dl
	cld
lpset:	lodsb
	mov	%al, %cl
	mov	$1, %ax
	shl	%cl, %ax
	or	%ax, %di
	shr	%dh
	jc	bit1
	xor	%ax, %di
bit1:	dec	%dl
	jne	lpset
	mov	$0x70, %al
	call	tst
	mov	$0x60, %al
	call	tst
	mov	$0x78, %al
	call	tst
	mov	$0x68, %al
	call	tst
	mov	$' ', %dl
	mov	$2, %ah
	int	$0x21
	pop	%cx
	push	%cx
	mov	%cx, %ax
	dec	%ax
	test	$0x1f, %al
	jne	1f
	mov	$crlf, %dx
	mov	$9, %ah
	int	$0x21
1:	pop	%cx
	loop	lp
	int	$0x20
tst:	mov	%dh, 1f
	add	%al, 1f
	push	%dx
	mov	$'0', %dl
	push	%di
	popf
	jmp	.+2
1:	je	1f
	nop
	nop
	nop
	inc	%dx
1:	mov	$2, %ah
	int	$0x21
	pop	%dx
	ret
f:	.byte	0,2,6,7,11	# CF PF ZF SF OF
crlf:	.ascii	"\r\n$"
