CODE	SEGMENT
	ASSUME	CS:CODE,DS:CODE,ES:CODE,SS:CODE
	ORG	100H
START:
	MOV	DI,OFFSET STR
	CLD
	MOV	CX,8
	MOV	AX,':'+'1'*256
	REP	STOSB
	STOSW
	PUSH	CX
	MOV	BP,0FFFEH
	CWD
	INC	CX
	PUSH	DI
MAIN2:
	MOV	BX,2D0FH
MAIN1:
	DEC	BX
	JS	MAIN2
	POP	SI
	PUSH	CX
	JPO	NEXTM
	SHR	BH,1
	JNBE	SKIP
	MOV	AX,'F'+'i'*256
STOR:
	STOSW
	MOV	AX,'z'+'z'*256
	STOSW
	JB	SKIP2
SKIP:
	CMC
	MOV	AX,'B'+'u'*256
	JMP	STOR
NEXTM:
	SUB	SI,CX
	REP	MOVSB
SKIP2:
	MOV	AX,0A0DH
	STOSW
	MOV	CX,DI
	SUB	CX,SI
	MOV	AH,40H
	DEC	BP
	JNE	SKIP3
	DEC	DX
	JE	FLUSH
SKIP3:
	CMP	CH,AH
	JB	NOFLS
	PUSH	BX
FLUSH:
	PUSH	DX
	MOV	DX,SI
	MOV	DI,SI
	MOV	BX,1
OS:
	INT	21H
	POP	DX
	POP	BX
NOFLS:
	POP	CX
	MOV	AX,4C00H
	JCXZ	OS
	PUSH	SI
NEXT1:
	DEC	SI
	INC	BYTE PTR [SI]
	CMP	BYTE PTR [SI],':'
	JB	MAIN1
	SUB	BYTE PTR [SI],10
	JPE	NEXT1
	INC	CX
	JMP	MAIN1
STR	LABEL	BYTE
CODE	ENDS
	END	START
