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,7777H
	MOV	BX,BP
	INC	CX
	PUSH	DI
MAIN2:
	MOV	DX,2D0FH
MAIN1:
	DEC	DX
	JS	MAIN2
	POP	SI
	PUSH	CX
	JPO	NEXTM
	DEC	BP
	JNE	MAIN3
	DEC	BX
	JS	FLUSH
MAIN3:
	SHR	DH,1
	JNBE	SKIP
	MOV	AX,'F'+'i'*256
STOR:
	STOSW
	MOV	AX,'z'+'z'*256
	STOSW
SKIP:
	JB	SKIP2
	CMC
	MOV	AX,'B'+'u'*256
	JMP	STOR
NEXTM:
	SUB	SI,CX
	REP	MOVSB
SKIP2:
	CMP	DI,OFFSET STR + 10 + 8192
	JB	NOFLS
	PUSH	BX
FLUSH:
	PUSH	DX
	MOV	DX,SI
	MOV	CX,DI
	SUB	CX,SI
	MOV	DI,SI
	MOV	BX,1
	MOV	AH,40H
OS:
	INT	21H
	POP	DX
	POP	BX
NOFLS:
	POP	CX
	MOV	AX,4C00H
	JCXZ	OS
	MOV	AX,0A0DH
	STOSW
	PUSH	SI
NEXT1:
	DEC	SI
	INC	BYTE PTR [SI]
	CMP	BYTE PTR [SI],':'
	JB	MAIN1
	SUB	[SI],AH
	JPE	NEXT1
	INC	CX
	JMP	MAIN1
STR	LABEL	BYTE
CODE	ENDS
	END	START
