  
PAGE  59,132
  
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;ÛÛ								         ÛÛ
;ÛÛ			        STYPE				         ÛÛ
;ÛÛ								         ÛÛ
;ÛÛ      Created:   23-Dec-86					         ÛÛ
;ÛÛ      Version:						         ÛÛ
;ÛÛ      Passes:    5	       Analysis Options on: none	         ÛÛ
;ÛÛ								         ÛÛ
;ÛÛ								         ÛÛ
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
  
.286c
  
data_1e		equ	0A0h			; (0000:00A0=80h)
data_2e		equ	1040h			; (0000:1040=0)
data_3e		equ	80h			; (8288:0080=0)
  
seg_a		segment	byte public
		assume	cs:seg_a, ds:seg_a
  
  
		org	100h
  
stype		proc	far
  
start:
		jmp	loc_23			; (0222)
data_4		dw	0
data_5		dw	0
data_6		db	3
  
stype		endp
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_1		proc	near
		mov	si,data_3e		; (8288:0080=0)
		lodsb				; String [si] to al
		mov	ah,al
loc_1:
		call	sub_2			; (012B)
		cmp	bh,1
		je	loc_1			; Jump if equal
		ja	loc_3			; Jump if above
		mov	dx,si
		dec	dx
loc_2:
		call	sub_2			; (012B)
		or	bh,bh			; Zero ?
		jz	loc_2			; Jump if zero
		dec	si
		mov	al,0
		mov	[si],al
		retn
loc_3:
		mov	al,1
		retn
sub_1		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_2		proc	near
		lodsb				; String [si] to al
		dec	ah
		js	loc_5			; Jump if sign=1
		or	al,al			; Zero ?
		jz	loc_5			; Jump if zero
		cmp	al,0Dh
		je	loc_5			; Jump if equal
		cmp	al,20h			; ' '
		je	loc_4			; Jump if equal
		cmp	al,9
		je	loc_4			; Jump if equal
		cmp	al,2Ch			; ','
		je	loc_4			; Jump if equal
		cmp	al,3Bh			; ';'
		je	loc_4			; Jump if equal
		cmp	al,2Fh			; '/'
		je	loc_4			; Jump if equal
		mov	bh,0
		retn
loc_4:
		mov	bh,1
		retn
loc_5:
		mov	bh,2
		retn
sub_2		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_3		proc	near
		mov	bh,80h
		mov	ax,1200h
		mov	bx,8010h
		int	10h			; Video display   ah=functn 12h
						;  misc EGA/VGA func, bl=submode
		push	bx
		mov	ax,1130h
		mov	bh,0
		push	es
		push	bp
		int	10h			; Video display   ah=functn 11h
						;  set character set, al=submode
		pop	bp
		pop	es
		pop	bx
		retn
sub_3		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_4		proc	near
loc_6:
		mov	ah,0Eh
		mov	bl,3
		lodsb				; String [si] to al
		or	al,al			; Zero ?
		jz	loc_ret_7		; Jump if zero
		int	10h			; Video display   ah=functn 0Eh
						;  write char al, teletype mode
		jmp	short loc_6		; (016D)
  
loc_ret_7:
		retn
sub_4		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_5		proc	near
		mov	ah,3Dh			; '='
		int	21h			; DOS Services  ah=function 3Dh
						;  open file, al=mode,name@ds:dx
		jc	loc_8			; Jump if carry Set
		mov	data_5,ax		; (8288:0105=0)
		retn
loc_8:
		mov	data_4,ax		; (8288:0103=0)
		retn
sub_5		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_6		proc	near
		mov	ch,bh
		mov	ah,0Fh
		int	10h			; Video display   ah=functn 0Fh
						;  get state, al=mode, bh=page
		or	ch,ch			; Zero ?
		jnz	loc_12			; Jump if not zero
		cmp	al,7
		je	loc_13			; Jump if equal
		cmp	al,2
		jl	loc_9			; Jump if <
		cmp	al,3
		jle	loc_10			; Jump if < or =
loc_9:
		mov	ax,200h
		int	10h			; Video display   ah=functn 02h
						;  set cursor location in dx
loc_10:
		mov	ax,500h
		int	10h			; Video display   ah=functn 05h
						;  set display page al
loc_11:
		mov	ah,2
		mov	dx,1800h
		int	10h			; Video display   ah=functn 02h
						;  set cursor location in dx
		clc				; Clear carry flag
		retn
loc_12:
		cmp	al,7
		je	loc_11			; Jump if equal
loc_13:
		stc				; Set carry flag
		retn
sub_6		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_7		proc	near
		xor	ah,ah			; Zero register
		int	16h			; Keyboard i/o  ah=function 00h
						;  get keybd char in al, ah=scan
		cmp	al,20h			; ' '
		je	loc_16			; Jump if equal
		cmp	al,2Bh			; '+'
		je	loc_19			; Jump if equal
		cmp	al,2Dh			; '-'
		je	loc_20			; Jump if equal
		sub	al,30h			; '0'
		jl	loc_14			; Jump if <
		cmp	al,9
		jle	loc_21			; Jump if < or =
loc_14:
		test	byte ptr data_19,0FFh	; (8288:0450=0)
		jnz	loc_15			; Jump if not zero
		mov	byte ptr data_19,6	; (8288:0450=0)
loc_15:
		stc				; Set carry flag
		retn
loc_16:
		mov	al,byte ptr data_19	; (8288:0450=0)
		or	al,al			; Zero ?
		jz	loc_17			; Jump if zero
		mov	data_6,al		; (8288:0107=3)
		mov	byte ptr data_19,0	; (8288:0450=0)
		jmp	short loc_18		; (01F5)
loc_17:
		mov	al,data_6		; (8288:0107=3)
		mov	byte ptr data_19,al	; (8288:0450=0)
loc_18:
		clc				; Clear carry flag
		retn
loc_19:
		mov	ax,data_19		; (8288:0450=0)
		inc	al
		cmp	al,ah
		jg	loc_18			; Jump if >
		mov	byte ptr data_19,al	; (8288:0450=0)
		jmp	short loc_18		; (01F5)
loc_20:
		mov	al,byte ptr data_19	; (8288:0450=0)
		dec	al
		js	loc_18			; Jump if sign=1
		mov	byte ptr data_19,al	; (8288:0450=0)
		jmp	short loc_18		; (01F5)
loc_21:
		shl	al,1			; Shift w/zeros fill
		mov	ah,byte ptr data_19+1	; (8288:0451=0)
		cmp	al,ah
		jl	loc_22			; Jump if <
		mov	al,ah
loc_22:
		mov	byte ptr data_19,al	; (8288:0450=0)
		jmp	short loc_18		; (01F5)
sub_7		endp
  
loc_23:
		cld				; Clear direction
		call	sub_1			; (0108)
		or	al,al			; Zero ?
		jz	loc_24			; Jump if zero
		mov	data_5,0		; (8288:0105=0)
		jmp	short loc_25		; (023F)
loc_24:
		mov	al,0
		call	sub_5			; (017B)
		mov	si,2E0h
		jnc	loc_25			; Jump if carry=0
		jmp	loc_34			; (02D7)
loc_25:
		mov	ax,data_5		; (8288:0105=0)
		call	sub_18			; (2768)
		call	sub_3			; (0155)
		mov	si,300h
		or	bh,bh			; Zero ?
		jns	loc_26			; Jump if not sign
		jmp	loc_34			; (02D7)
loc_26:
		push	bx
		push	cx
		call	sub_6			; (0189)
		pop	cx
		pop	bx
		mov	si,326h
		jc	loc_34			; Jump if carry Set
		call	sub_14			; (052E)
		xor	al,al			; Zero register
		mov	ah,0Fh
		mov	si,35Fh
		call	sub_15			; (0562)
loc_27:
		mov	ah,1
		int	16h			; Keyboard i/o  ah=function 01h
						;  get status, if zf=0  al=char
		jz	loc_28			; Jump if zero
		call	sub_7			; (01B8)
		jnc	loc_27			; Jump if carry=0
		mov	si,offset data_7+117h	; (8288:03F7=2Dh)
		jmp	short loc_33		; (02BB)
loc_28:
		call	sub_17			; (26E7)
		cmp	ah,3
		je	loc_32			; Jump if equal
		mov	bx,cx
		mov	byte ptr [bx+si],0
		push	ax
loc_29:
		call	sub_8			; (0456)
		jge	loc_30			; Jump if > or =
		mov	ah,1
		int	16h			; Keyboard i/o  ah=function 01h
						;  get status, if zf=0  al=char
		jz	loc_29			; Jump if zero
		call	sub_7			; (01B8)
		jnc	loc_29			; Jump if carry=0
		pop	ax
		mov	si,offset data_7+117h	; (8288:03F7=2Dh)
		jmp	short loc_33		; (02BB)
loc_30:
		mov	ah,7
		call	sub_13			; (04DE)
		pop	ax
		or	ah,ah			; Zero ?
		jz	loc_27			; Jump if zero
		dec	ah
		jnz	loc_32			; Jump if not zero
loc_31:
		call	sub_17			; (26E7)
		or	ah,ah			; Zero ?
		jz	loc_27			; Jump if zero
		dec	ah
		jz	loc_31			; Jump if zero
loc_32:
		mov	si,offset data_7+0CBh	; (8288:03AB=2Dh)
loc_33:
		mov	ah,0Fh
		call	sub_13			; (04DE)
		mov	ah,7
		mov	si,offset data_11	; (8288:0443=0)
		call	sub_13			; (04DE)
		call	sub_16			; (05B5)
		mov	bx,data_5		; (8288:0105=0)
		mov	ah,3Eh			; '>'
		int	21h			; DOS Services  ah=function 3Eh
						;  close file, bx=file handle
		xor	al,al			; Zero register
		jmp	short loc_35		; (02DC)
loc_34:
		call	sub_4			; (016D)
		mov	al,1
loc_35:
		mov	ah,4Ch			; 'L'
		int	21h			; DOS Services  ah=function 4Ch
						;  terminate with al=return code
data_7		db	'stype: cannot open input file', 0Dh
		db	0Ah, 0
		db	'stype: no Enhanced Graphics Adap'
		db	'tor', 0Dh, 0Ah, 0
		db	'stype: Enhanced Graphics Adaptor'
		db	' not in supported mode', 0Dh, 0Ah
		db	0
		db	'STYPE 1.2       + = Faster,  - ='
		db	' Slower,  space = pause      Zha'
		db	'hai Stewart', 0
		db	'------------------------------- '
		db	'End Of File --------------------'
		db	'-----------', 0
		db	'----------------------------- ST'
		db	'YPE CANCELLED ------------------'
		db	'-----------'
		db	0
data_11		db	0
data_12		dw	0
data_13		dw	0
data_14		dw	0
data_15		dw	0
data_16		dw	0
data_17		dw	0
data_19		dw	0
data_21		dw	0
data_22		dw	0
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_8		proc	near
		mov	cx,data_12		; (8288:0444=0)
		mov	bx,data_17		; (8288:044E=0)
		add	bl,byte ptr data_19	; (8288:0450=0)
		cmp	bl,bh
		jl	loc_37			; Jump if <
		retn
  
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
  
sub_9:
		xor	bl,bl			; Zero register
		jmp	short loc_36		; (046D)
  
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
  
sub_10:
		sub	bl,bh
loc_36:
		add	cx,50h
		mov	data_12,cx		; (8288:0444=0)
loc_37:
		pushf				; Push flags
		mov	byte ptr data_17,bl	; (8288:044E=0)
		mov	dx,data_21		; (8288:0452=0)
loc_38:
		in	al,dx			; port 0, DMA-1 bas&add ch 0
		and	al,8
		jz	loc_38			; Jump if zero
loc_39:
		in	al,dx			; port 0, DMA-1 bas&add ch 0
		and	al,1
		jnz	loc_39			; Jump if not zero
		sub	dx,6
		mov	al,8
		mov	ah,bl
		shr	ah,1			; Shift w/zeros fill
		out	dx,ax			; port 0FFFAh
		mov	al,0Ch
		mov	ah,ch
		out	dx,ax			; port 0FFFAh
		inc	al
		mov	ah,cl
		out	dx,ax			; port 0FFFAh
		popf				; Pop flags
		retn
sub_8		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_11		proc	near
		mov	dx,data_21		; (8288:0452=0)
		sub	dx,6
		mov	cx,data_12		; (8288:0444=0)
		mov	al,0Ch
		mov	ah,ch
		out	dx,ax			; port 0FFFAh
		inc	al
		mov	ah,cl
		out	dx,ax			; port 0FFFAh
		retn
sub_11		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_12		proc	near
		mov	cx,50h
  
locloop_40:
		lodsb				; String [si] to al
		or	al,al			; Zero ?
		jz	loc_41			; Jump if zero
		cmp	al,9
		je	loc_42			; Jump if equal
		stosw				; Store ax to es:[di]
		loop	locloop_40		; Loop if cx > 0
  
		retn
loc_41:
		mov	al,20h			; ' '
		rep	stosw			; Rep when cx >0 Store ax to es:[di]
		retn
loc_42:
		mov	bx,cx
		and	cx,7
		nop				;*ASM fixup - sign extn byte
		jnz	loc_43			; Jump if not zero
		mov	cx,8
loc_43:
		sub	bx,cx
		mov	al,20h			; ' '
		rep	stosw			; Rep when cx >0 Store ax to es:[di]
		or	cx,bx
		jnz	locloop_40		; Jump if not zero
		retn
sub_12		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_13		proc	near
		push	es
		mov	bx,data_22		; (8288:0454=0)
		mov	es,bx
		mov	di,data_15		; (8288:044A=0)
		call	sub_12			; (04B3)
loc_44:
		call	sub_8			; (0456)
		jl	loc_44			; Jump if <
		call	sub_10			; (046B)
		mov	si,data_15		; (8288:044A=0)
		mov	di,data_14		; (8288:0448=0)
		mov	cx,50h
		push	ds
		mov	ax,es
		mov	ds,ax
		rep	movsw			; Rep when cx >0 Mov [si] to es:[di]
		pop	ds
		cmp	si,data_16		; (8288:044C=0)
		jge	loc_45			; Jump if > or =
		mov	data_15,si		; (8288:044A=0)
		mov	data_14,di		; (8288:0448=0)
		pop	es
		retn
loc_45:
		mov	data_15,di		; (8288:044A=0)
		mov	cx,data_13		; (8288:0446=0)
		mov	data_14,cx		; (8288:0448=0)
		shr	cx,1			; Shift w/zeros fill
		mov	data_12,cx		; (8288:0444=0)
		call	sub_11			; (049D)
		pop	es
		retn
sub_13		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_14		proc	near
		mov	byte ptr data_17,0	; (8288:044E=0)
		mov	data_13,1200h		; (8288:0446=0)
		shl	cl,1			; Shift w/zeros fill
		mov	byte ptr data_17+1,cl	; (8288:044F=0)
		mov	byte ptr data_19+1,cl	; (8288:0451=0)
		test	bh,1
		jnz	loc_46			; Jump if not zero
		mov	data_21,3DAh		; (8288:0452=0)
		mov	data_22,0B800h		; (8288:0454=0)
		retn
loc_46:
		mov	data_21,3BAh		; (8288:0452=0)
		mov	data_22,0B000h		; (8288:0454=0)
		retn
sub_14		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_15		proc	near
		push	si
		push	ax
		or	al,al			; Zero ?
		jz	loc_47			; Jump if zero
		cmp	al,byte ptr data_19+1	; (8288:0451=0)
		jl	loc_48			; Jump if <
loc_47:
		mov	al,byte ptr data_19+1	; (8288:0451=0)
		mov	cl,3
		shr	al,cl			; Shift w/zeros fill
loc_48:
		mov	byte ptr data_19,al	; (8288:0450=0)
		mov	di,data_13		; (8288:0446=0)
		mov	data_14,di		; (8288:0448=0)
		mov	si,di
		shr	si,1			; Shift w/zeros fill
		mov	data_12,si		; (8288:0444=0)
		lea	si,[di+1040h]		; Load effective addr
		mov	data_15,si		; (8288:044A=0)
		add	si,data_2e		; (0000:1040=0)
		mov	data_16,si		; (8288:044C=0)
		xor	si,si			; Zero register
		mov	cx,7D0h
		mov	ax,data_22		; (8288:0454=0)
		push	es
		push	ds
		mov	ds,ax
		mov	es,ax
		rep	movsw			; Rep when cx >0 Mov [si] to es:[di]
		pop	ds
		pop	bx
		pop	ax
		pop	si
		push	bx
		call	sub_12			; (04B3)
		call	sub_11			; (049D)
		pop	es
		retn
sub_15		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_16		proc	near
		push	es
		mov	bx,data_22		; (8288:0454=0)
		mov	es,bx
loc_49:
		call	sub_8			; (0456)
		jl	loc_49			; Jump if <
		call	sub_9			; (0467)
		mov	si,data_14		; (8288:0448=0)
		add	si,data_1e		; (0000:00A0=80h)
		push	ds
		mov	cx,es
		mov	ds,cx
		xor	di,di			; Zero register
		mov	cx,7D0h
		rep	movsw			; Rep when cx >0 Mov [si] to es:[di]
		pop	ds
		mov	data_12,0		; (8288:0444=0)
		call	sub_11			; (049D)
		pop	es
		retn
sub_16		endp
  
		db	12 dup (0)
data_24		dw	0
data_25		dw	0
data_26		dw	0
data_27		db	0
		db	8432 dup (0)
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_17		proc	near
		mov	di,data_24		; (8288:05F0=0)
loc_50:
		mov	si,data_24		; (8288:05F0=0)
		mov	cx,data_25		; (8288:05F2=0)
		sub	cx,di
		jz	loc_51			; Jump if zero
		mov	al,0Ah
		repne	scasb			; Rep zf=0+cx >0 Scan es:[di] for al
		jz	loc_54			; Jump if zero
		mov	cx,di
		sub	cx,si
		cmp	cx,0F0h
		jg	loc_57			; Jump if >
loc_51:
		mov	di,offset data_27	; (8288:05F6=0)
		mov	data_24,di		; (8288:05F0=0)
		jcxz	loc_52			; Jump if cx=0
		rep	movsb			; Rep when cx >0 Mov [si] to es:[di]
loc_52:
		mov	bx,data_26		; (8288:05F4=0)
		mov	cx,2000h
		mov	dx,di
		mov	ah,3Fh			; '?'
		push	di
		int	21h			; DOS Services  ah=function 3Fh
						;  read file, cx=bytes, to ds:dx
		pop	di
		jc	loc_58			; Jump if carry Set
		or	ax,ax			; Zero ?
		jz	loc_58			; Jump if zero
		mov	si,ax
		add	si,di
		cmp	byte ptr [si-1],1Ah
		jne	loc_53			; Jump if not equal
		dec	si
loc_53:
		mov	data_25,si		; (8288:05F2=0)
		jmp	short loc_50		; (26EB)
loc_54:
		mov	ah,0
		mov	data_24,di		; (8288:05F0=0)
		dec	di
		mov	cx,di
		sub	cx,si
		jz	loc_ret_56		; Jump if zero
loc_55:
		cmp	byte ptr [di-1],0Dh
		jne	loc_ret_56		; Jump if not equal
		dec	cx
  
loc_ret_56:
		retn
loc_57:
		mov	ah,1
		mov	data_24,di		; (8288:05F0=0)
		jmp	short loc_55		; (2745)
loc_58:
		mov	ah,2
		mov	si,data_24		; (8288:05F0=0)
		mov	data_24,di		; (8288:05F0=0)
		mov	cx,di
		sub	cx,si
		jnz	loc_55			; Jump if not zero
		inc	ah
		retn
sub_17		endp
  
  
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_18		proc	near
		mov	data_26,ax		; (8288:05F4=0)
		mov	ax,5F6h
		mov	data_24,ax		; (8288:05F0=0)
		mov	data_25,ax		; (8288:05F2=0)
		retn
sub_18		endp
  
		db	11 dup (0)
  
seg_a		ends
  
  
  
		end	start
