
PAGE  59,132

;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;ÛÛ					                                 ÛÛ
;ÛÛ				LR-dos                                 ÛÛ
;ÛÛ					                                 ÛÛ
;ÛÛ      Created:   2-Sep-30		                                 ÛÛ
;ÛÛ      Passes:    9          Analysis	Options on: AFHIZ                ÛÛ
;ÛÛ					                                 ÛÛ
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

target		EQU   'T5'                      ; Target assembler: TASM-5.0

include  srmacros.inc


; The following equates show data references outside the range of the program.

data_1e		equ	8
data_2e		equ	0Ch
data_3e		equ	0Eh
data_4e		equ	81h
timer_low_	equ	46Ch
data_5e		equ	8D8Ch			;*
data_6e		equ	0AA75h			;*
data_7e		equ	0AA77h			;*
data_8e		equ	0AA7Bh			;*
data_9e		equ	0AA81h			;*
data_10e	equ	0E1C6h			;*
data_11e	equ	0E566h			;*
data_12e	equ	0E582h			;*
data_13e	equ	0E7B4h			;*
data_14e	equ	0E7B8h			;*
data_15e	equ	0E7BAh			;*
data_16e	equ	0E7BCh			;*
data_17e	equ	0E7BEh			;*
data_18e	equ	0E7C0h			;*
data_19e	equ	0E7C2h			;*
data_20e	equ	0E7C4h			;*
data_21e	equ	0E7C6h			;*
data_22e	equ	0E7C8h			;*
data_23e	equ	0E7CAh			;*
data_24e	equ	0E7D8h			;*
data_25e	equ	0E7DAh			;*
equip_bits	equ	10h
keybd_flags_1	equ	17h
data_26e	equ	6Ch
PSP_free_seg	equ	2
data_27e	equ	4
data_28e	equ	0Eh
data_29e	equ	10h
data_30e	equ	1Fh
PSP_envirn_seg	equ	2Ch
data_31e	equ	2Fh
data_32e	equ	57h
PSP_cmd_size	equ	80h
data_33e	equ	8Ch
data_34e	equ	0F0h
data_376e	equ	0AA6Ch			;*
data_377e	equ	0AA6Eh			;*
data_378e	equ	0AA70h			;*
data_379e	equ	0AA72h			;*
data_381e	equ	0AA75h			;*
data_382e	equ	0AA77h			;*
data_383e	equ	0AA79h			;*
data_384e	equ	0AA7Bh			;*
data_385e	equ	0AA7Dh			;*
data_386e	equ	0AA7Fh			;*
data_387e	equ	0AA81h			;*
data_388e	equ	0AA83h			;*
data_389e	equ	0AA85h			;*
data_390e	equ	0AA87h			;*
data_391e	equ	0AA89h			;*
data_392e	equ	0AA8Bh			;*
data_393e	equ	0AE31h			;*
data_394e	equ	0C228h			;*
data_395e	equ	0CB3Eh			;*
data_396e	equ	0E18Bh			;*
data_397e	equ	0E18Dh			;*
data_398e	equ	0E18Fh			;*
data_399e	equ	0E190h			;*
data_400e	equ	0E192h			;*
data_401e	equ	0E194h			;*
data_402e	equ	0E196h			;*
data_403e	equ	0E198h			;*
data_404e	equ	0E1C0h			;*
data_405e	equ	0E1C5h			;*
data_406e	equ	0E1C6h			;*
data_407e	equ	0E1C7h			;*
data_408e	equ	0E366h			;*
data_409e	equ	0E3A2h			;*
data_410e	equ	0E3DEh			;*
data_411e	equ	0E3DFh			;*
data_412e	equ	0E3E0h			;*
data_413e	equ	0E3E1h			;*
data_414e	equ	0E3E2h			;*
data_415e	equ	0E3E3h			;*
data_416e	equ	0E3E4h			;*
data_417e	equ	0E3E5h			;*
data_418e	equ	0E506h			;*
data_419e	equ	0E507h			;*
data_420e	equ	0E508h			;*
data_421e	equ	0E509h			;*
data_422e	equ	0E50Ah			;*
data_423e	equ	0E50Bh			;*
data_424e	equ	0E566h			;*
data_425e	equ	0E568h			;*
data_426e	equ	0E56Ah			;*
data_427e	equ	0E56Ch			;*
data_428e	equ	0E576h			;*
data_429e	equ	0E580h			;*
data_430e	equ	0E582h			;*
data_431e	equ	0E584h			;*
data_432e	equ	0E586h			;*
data_433e	equ	0E588h			;*
data_434e	equ	0E58Ah			;*
data_435e	equ	0E58Ch			;*
data_436e	equ	0E58Eh			;*
data_437e	equ	0E597h			;*
data_438e	equ	0E598h			;*
data_439e	equ	0E599h			;*
data_440e	equ	0E738h			;*
data_441e	equ	0E73Ah			;*
data_442e	equ	0E744h			;*
data_443e	equ	0E746h			;*
data_444e	equ	0E748h			;*
data_445e	equ	0E74Ah			;*
data_446e	equ	0E74Ch			;*
data_447e	equ	0E74Eh			;*
data_448e	equ	0E758h			;*
data_449e	equ	0E762h			;*
data_450e	equ	0E76Ch			;*
data_451e	equ	0E7A8h			;*
data_452e	equ	0E7B2h			;*
data_453e	equ	0E7B4h			;*
data_454e	equ	0E7B6h			;*
data_455e	equ	0E7B8h			;*
data_456e	equ	0E7BAh			;*
data_457e	equ	0E7BCh			;*
data_458e	equ	0E7BEh			;*
data_459e	equ	0E7C0h			;*
data_460e	equ	0E7C2h			;*
data_461e	equ	0E7C4h			;*
data_462e	equ	0E7C6h			;*
data_463e	equ	0E7C8h			;*
data_464e	equ	0E7CAh			;*
data_465e	equ	0E7CCh			;*
data_466e	equ	0E7CEh			;*
data_467e	equ	0E7D8h			;*
data_468e	equ	0E7DAh			;*
data_469e	equ	0E7DCh			;*
data_470e	equ	0E7DEh			;*
data_471e	equ	0E7E0h			;*
data_472e	equ	0E7E2h			;*
data_473e	equ	0E7E4h			;*
data_474e	equ	0E7E6h			;*
data_475e	equ	0E7E8h			;*
data_476e	equ	0E7EAh			;*
data_477e	equ	0E7ECh			;*
data_478e	equ	0E7F2h			;*
data_479e	equ	0E7F4h			;*
data_480e	equ	0E7F6h			;*
data_481e	equ	0E832h			;*
data_482e	equ	0E86Eh			;*
data_483e	equ	0E882h			;*
data_484e	equ	0E896h			;*
data_485e	equ	0E8AAh			;*
data_486e	equ	0E8C8h			;*
data_487e	equ	0E8D3h			;*
data_488e	equ	0E8D4h			;*
data_489e	equ	0E8E8h			;*
data_490e	equ	0E8EAh			;*
data_491e	equ	0E8ECh			;*
data_492e	equ	0E8EEh			;*
data_493e	equ	0F500h			;*
data_494e	equ	0FDFAh			;*
data_495e	equ	0FDFCh			;*
data_496e	equ	0FDFEh			;*
data_497e	equ	0FE67h			;*
data_498e	equ	0FE68h			;*
data_499e	equ	0FF5Eh			;*
data_500e	equ	0FF5Fh			;*
data_501e	equ	1F40h
data_502e	equ	0C000h
data_503e	equ	0FA6Eh
data_504e	equ	0FFEAh
data_505e	equ	0FFFEh
data_506e	equ	0F800h

seg_a		segment	byte public
		assume	cs:seg_a, ds:seg_a


		org	100h

lrcrack		proc	far

			                        ; now data because: string or bytes
start:
;         Simulation segment register change due to start, using PSP  DS now 3BA9
;         Simulation segment register change due to start, using PSP  ES now 3BA9
		jmp	real_start

lrcrack		endp

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_1		proc	near
		mov	ax,0
		call	sub_153
		mov	byte ptr ds:data_379e,0Fh
		mov	word ptr ds:data_378e,0
		call	sub_131
		test	ax,ax
		jnz	loc_1			; Jump if not zero
		mov	word ptr ds:data_378e,1
		jmp	loc_20
loc_1:
		call	sub_107
		call	sub_91
		mov	ds:data_377e,ax
		mov	ax,ds:data_377e
		and	ax,0FF00h
		cmp	ax,2100h
		je	loc_2			; Jump if equal
		mov	ax,0
		jmp	short loc_3
loc_2:
		mov	ax,1
loc_3:
		mov	word ptr ds:data_379e+1,ax
		and	word ptr ds:data_377e,0FFh
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		je	loc_4			; Jump if equal
		cmp	word ptr ds:data_379e+1,0
		je	loc_5			; Jump if equal
loc_4:
		call	sub_92
loc_5:
		call	sub_8
		mov	word ptr ds:data_381e,6
		mov	ax,0
		mov	word ptr ds:data_382e,0
		mov	ds:data_383e,ax
		mov	ds:data_384e,ax
		mov	ds:data_385e,ax
		mov	ds:data_386e,ax
		mov	word ptr ds:data_387e,0
		mov	word ptr ds:data_388e,0
		mov	ds:data_389e,ax
		mov	word ptr ds:data_390e,96h
		mov	word ptr ds:data_391e,1
		call	sub_7
		nop
		nop
loc_6:
		mov	ax,0AA8Bh
		push	ax
		nop
		nop
		nop
		pop	cx
		test	ax,ax
		jmp	short loc_8
		mov	ax,0
		push	ax
		mov	ax,0Bh
		push	ax
		mov	ax,7716h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,0Dh
		push	ax
		mov	ax,773Fh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,0Eh
		push	ax
		mov	ax,7768h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,0Fh
		push	ax
		mov	ax,7791h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,11h
		push	ax
		mov	ax,77BAh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_75
		test	ax,ax
		jnz	loc_7			; Jump if not zero
		jmpn	loc_20
loc_7:
		jmp	short loc_6
loc_8:
		call	sub_53
		call	sub_65
		test	ax,ax
		jz	loc_20			; Jump if zero
		call	sub_77
		call	sub_97
loc_9:
		cmp	word ptr ds:data_381e,0
		je	loc_20			; Jump if equal
		mov	ax,ds:data_381e
;*		jmp	short loc_17		;*
		db	0EBh, 48h		;  Fixup - byte match

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_10:
		call	sub_3
		mov	ds:data_381e,ax
		jmp	short loc_19

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_11:
		call	sub_2
		mov	ds:data_381e,ax
		jmp	short loc_19

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_12:
		call	sub_4
		mov	ds:data_381e,ax
		jmp	short loc_19

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_13:
		call	sub_9
		mov	ds:data_381e,ax
		jmp	short loc_19

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_14:
		call	sub_15
		mov	ds:data_381e,ax
		jmp	short loc_19

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_15:
		call	sub_22
		mov	ds:data_381e,ax
		jmp	short loc_19

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_16:
		mov	word ptr ds:data_381e,0
		jmp	short loc_19
		push	di
		add	ch,[bx]
		add	bh,[bx]
		add	al,[bx+2]
		dec	di
		add	dl,[bx+2]
		daa				; Decimal adjust
		add	dh,[bx]
		add	bh,[di]
		or	[bx+si],al
		jnc	loc_18			; Jump if carry=0
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[25Fh][bx]	;*8 entries
loc_18:
		jmp	short loc_16
loc_19:
		jmp	short loc_9
loc_20:
		call	sub_78
		mov	ax,0
		push	ax
		mov	ax,0B00h
		push	ax
		call	sub_82
		add	sp,4
		call	sub_132
		cmp	word ptr ds:data_378e,0
		je	loc_21			; Jump if equal
		mov	ax,0Bh
		push	ax
		mov	ax,0Eh
		push	ax
		mov	ax,77E3h
		push	ax
		call	sub_102
		add	sp,6
		jmp	short loc_ret_22
loc_21:
		mov	ax,1
		push	ax
		mov	ax,14h
		push	ax
		mov	ax,781Eh
		push	ax
		call	sub_102
		add	sp,6

loc_ret_22:
		retn
sub_1		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_2		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	ax,ds:data_388e
		mov	[bp-2],ax
		mov	byte ptr ds:data_379e,0Fh
		mov	word ptr ds:data_396e,1
		mov	ax,ds:data_391e
		mov	[bp-4],ax
		mov	word ptr ds:data_391e,0
		call	sub_9
		mov	ds:data_381e,ax
		mov	ax,[bp-4]
		mov	ds:data_391e,ax
		mov	ax,[bp-2]
		mov	ds:data_389e,ax
		mov	ds:data_388e,ax
		mov	ax,64h
		push	ax
		call	sub_5
		pop	cx
		retn
sub_2		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_3		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,data_327
		cmp	ax,1
		je	loc_23			; Jump if equal
		mov	ax,0
		push	ax
		mov	ax,4
		push	ax
		call	sub_82
		add	sp,4
		jmp	short loc_24
loc_23:
		call	sub_137
loc_24:
		mov	ax,0Fh
		push	ax
		mov	ax,0B00h
		push	ax
		call	sub_82
		add	sp,4
		mov	ax,100h
		push	ax
		mov	ax,0B00h
		push	ax
		call	sub_82
		add	sp,4
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,1F4h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		call	sub_68
		mov	byte ptr ds:data_379e,0Dh
		mov	ax,0Fh
		push	ax
		mov	ax,2
		push	ax
		mov	ax,7846h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,14h
		push	ax
		mov	ax,4
		push	ax
		mov	ax,785Ah
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Eh
		push	ax
		mov	ax,0Dh
		push	ax
		mov	ax,7863h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Eh
		push	ax
		mov	ax,0Fh
		push	ax
		mov	ax,786Eh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Bh
		push	ax
		mov	ax,11h
		push	ax
		mov	ax,7879h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Eh
		push	ax
		mov	ax,13h
		push	ax
		mov	ax,788Ch
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Ah
		push	ax
		mov	ax,15h
		push	ax
		mov	ax,7898h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1A07h
		push	ax			; PARAMETER_2
		mov	ax,76F0h
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		call	sub_69
		mov	byte ptr ds:data_379e,0Fh
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,78ACh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,78D5h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,12Ch
		push	ax
		call	sub_5
		pop	cx
		retn
sub_3		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_4		proc	near
		mov	ax,0
		call	sub_153
		call	sub_62
		mov	ax,0C8h
		push	ax
		call	sub_5
		pop	cx
		retn
sub_4		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_5		proc	near
		mov	ax,0FFFAh
		call	sub_153
		call	sub_97
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_25			; Jump if not equal
		mov	cx,2
		mov	ax,[bp+4]
		cwd				; Word to double word
		idiv	cx			; ax,dx rem=dx:ax/reg
		mov	[bp+4],ax
		jmp	short loc_26
loc_25:
		mov	ax,[bp+4]
		cmp	ax,31h
		jle	loc_26			; Jump if < or =
		mov	cx,32h
		cwd				; Word to double word
		idiv	cx			; ax,dx rem=dx:ax/reg
		imul	data_312		; dx:ax = data * ax
		mov	[bp+4],ax
loc_26:
		mov	word ptr [bp-2],0
loc_27:
;         Simulation segment register change due to jump to label     ES now 0000
		mov	ax,[bp-2]
		cmp	ax,[bp+4]
		jl	loc_28			; Jump if <
		jmp	loc_48
loc_28:
		mov	word ptr [bp-4],0
		mov	ax,ds:data_381e
		cmp	ax,1
		jne	loc_30			; Jump if not equal
		cmp	word ptr ds:data_396e,0
		je	loc_30			; Jump if equal
		mov	word ptr ds:data_396e,0
		cmp	byte ptr ds:data_398e,0
		je	loc_29			; Jump if equal
		mov	al,ds:data_398e
		cbw				; Convrt byte to word
		mov	[bp-4],ax
loc_29:
		jmp	short loc_33
loc_30:
		call	sub_96
		test	ax,ax
		jz	loc_31			; Jump if zero
		call	sub_95
		mov	[bp-4],ax
		and	ax,0FFh
		mov	[bp-6],ax
		mov	ax,[bp-4]
		xchg	ah,al
		sub	ah,ah
		mov	[bp-4],ax
		jmp	short loc_33
loc_31:
		cmp	word ptr ds:data_399e,0
		je	loc_33			; Jump if equal
		call	sub_105
		mov	[bp-6],ax
		test	ax,10h
		jz	loc_32			; Jump if zero
		test	word ptr [bp-6],20h
		jnz	loc_33			; Jump if not zero
loc_32:
		mov	word ptr [bp-4],39h
loc_33:
		cmp	word ptr [bp-4],0
		je	loc_34			; Jump if equal
		mov	ax,ds:data_381e
		cmp	ax,2
		jne	loc_34			; Jump if not equal
		mov	word ptr ds:data_381e,6
		cmp	word ptr ds:data_383e,0
		jne	loc_34			; Jump if not equal
		push	word ptr ds:data_400e
		push	word ptr ds:data_401e
		mov	ax,ds:data_389e
		inc	ax
		push	ax
		call	sub_63
		add	sp,6
loc_34:
		mov	ax,[bp-4]
		cmp	ax,3Bh
		jne	loc_35			; Jump if not equal
		call	sub_125
		call	sub_7
		mov	ax,ds:data_381e
		retn
loc_35:
		mov	ax,[bp-6]
		cmp	ax,16h
		jne	loc_36			; Jump if not equal
		call	sub_6
		jmp	loc_27
loc_36:
		mov	ax,[bp-4]
		cmp	ax,1
		je	loc_37			; Jump if equal
		jmp	loc_46
loc_37:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,78FEh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,7927h
		push	ax
		call	sub_99
		add	sp,6
loc_38:
;         Simulation segment register change due to jump to label     ES now 3BA9
		mov	word ptr [bp-2],0
loc_39:
		call	sub_96
		test	ax,ax
		jnz	loc_40			; Jump if not zero
		mov	ax,[bp-2]
		inc	word ptr [bp-2]
		cmp	ax,1F4h
		jge	loc_40			; Jump if > or =
		mov	ax,0
		push	ax			; PARAMETER_2
		push	data_312		; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_39
loc_40:
		call	sub_96
		test	ax,ax
		jnz	loc_41			; Jump if not zero
		mov	ax,6
		retn
loc_41:
		call	sub_94
		jmp	loc_44
		mov	word ptr ds:data_381e,3
		call	sub_27
		test	ax,ax
		jz	loc_42			; Jump if zero
		mov	word ptr ds:data_402e,1
		mov	ax,ds:data_388e
		mov	ds:data_389e,ax
		mov	ax,3
		retn
loc_42:
		jmp	loc_45
		call	sub_61
		mov	ax,ds:data_388e
		inc	ax
		push	ax
		mov	ax,7950h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,20h
		push	ax
		call	sub_23
		pop	cx
		mov	[bp-4],ax
		test	ax,ax
		jz	loc_43			; Jump if zero
		dec	word ptr [bp-4]
		mov	ax,[bp-4]
		mov	ds:data_389e,ax
		mov	ds:data_388e,ax
		mov	ax,2
		retn
loc_43:
		jmp	short loc_45
		call	sub_65
		test	ax,ax
		jz	loc_45			; Jump if zero
		call	sub_62
		mov	ax,3
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,7972h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		jmp	short loc_45
		call	sub_64
		jmp	short loc_45
		call	sub_85
		jmp	short loc_45
		call	sub_6
		jmp	short loc_45
		mov	ax,0
		retn
		jmp	short loc_45
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	loc_38
loc_44:
		call	sub_148
		or	al,[bx+si]
		add	[bx+si],ax
		sub	ax,ds:data_29e
		daa				; Decimal adjust
		push	es
		adc	al,[bx+si]
		mov	es,[di]
;         Simulation segment register change due to instruction       ES now 0000
		pop	ss
		add	[di],bl
		push	es
		sbb	[bx+si],ax
		scasb				; Scan es:[di] for al
		add	ax,1Ch
		sub	ax,ds:data_30e
		test	word ptr [di],2Eh
		sbb	ds:data_31e,al
		and	al,ds:data_32e
		sub	ax,word ptr ds:[62Dh]
loc_45:
		mov	ax,6
		retn
loc_46:
		cmp	word ptr [bp-4],0
		je	loc_47			; Jump if equal
		mov	ax,0
		mov	word ptr ds:data_389e,0
		mov	ds:data_388e,ax
		mov	ax,2
		retn
loc_47:
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,28h
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		inc	word ptr [bp-2]
		jmp	loc_27
loc_48:
		mov	ax,ds:data_381e
		cmp	ax,2
		jne	loc_50			; Jump if not equal
		mov	word ptr ds:data_381e,6
		cmp	word ptr [bp-4],0
		jne	loc_49			; Jump if not equal
		cmp	word ptr ds:data_383e,0
		jne	loc_49			; Jump if not equal
		push	word ptr ds:data_400e
		push	word ptr ds:data_401e
		mov	ax,ds:data_389e
		inc	ax
		push	ax
		call	sub_63
		add	sp,6
loc_49:
		jmp	short loc_54
loc_50:
		mov	ax,ds:data_381e
		cmp	ax,6
		jne	loc_51			; Jump if not equal
		mov	word ptr ds:data_381e,1
		jmp	short loc_54
loc_51:
		mov	ax,ds:data_381e
		cmp	ax,1
		jne	loc_52			; Jump if not equal
		mov	word ptr ds:data_381e,7
		jmp	short loc_54
loc_52:
		mov	ax,ds:data_381e
		cmp	ax,7
		jne	loc_53			; Jump if not equal
		mov	word ptr ds:data_381e,6
		jmp	short loc_54
loc_53:
		mov	word ptr ds:data_381e,2
loc_54:
		mov	ax,ds:data_381e
		retn
sub_5		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_6		proc	near
		mov	ax,0
		call	sub_153
		call	sub_61
		mov	ax,0Fh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,7991h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,9C4h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		retn
sub_6		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_7		proc	near
;         Simulation segment register change due to sub entry point   ES now 3BA9
		mov	ax,0
		call	sub_153
		mov	ax,data_327
		cmp	ax,1
		jne	loc_55			; Jump if not equal
		mov	al,0FFh
		mov	byte ptr data_194,0FFh
		mov	data_192,al
		mov	data_190,al
		mov	al,84h
		mov	byte ptr data_195,84h
		mov	data_193,al
		mov	data_191,al
		jmp	short loc_ret_56
loc_55:
		mov	al,0CCh
		mov	byte ptr data_194,0CCh
		mov	data_192,al
		mov	data_190,al
		mov	al,94h
		mov	byte ptr data_195,94h
		mov	data_193,al
		mov	data_191,al

loc_ret_56:
		retn
sub_7		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_8		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	word ptr ds:data_397e,1
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		je	loc_57			; Jump if equal
		mov	ax,data_312
		cmp	ax,1Ch
		jle	loc_57			; Jump if < or =
		mov	cx,32h
		cwd				; Word to double word
		idiv	cx			; ax,dx rem=dx:ax/reg
		add	ax,2
		mov	ds:data_397e,ax
loc_57:
		mov	word ptr [bp-2],0
		jmp	short loc_59
loc_58:
		inc	word ptr [bp-2]
loc_59:
		mov	ax,[bp-2]
		cmp	ax,0Ch
		jge	loc_60			; Jump if > or =
		mov	ax,ds:data_397e
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		imul	data_267[si]		; dx:ax = data * ax
		mov	data_267[si],ax
		jmp	short loc_58
loc_60:
		mov	word ptr [bp-2],0
		jmp	short loc_62
loc_61:
		inc	word ptr [bp-2]
loc_62:
		mov	ax,[bp-2]
		cmp	ax,18h
		jge	loc_ret_63		; Jump if > or =
		mov	ax,ds:data_397e
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		imul	data_259[si]		; dx:ax = data * ax
		mov	data_259[si],ax
		jmp	short loc_61

loc_ret_63:
		retn
sub_8		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_9		proc	near
		mov	ax,0
		call	sub_153
		call	sub_11
		cmp	ax,4
		jne	loc_64			; Jump if not equal
		mov	ax,6
		retn
loc_64:
		mov	ax,ds:data_381e
		cmp	ax,2
		je	loc_65			; Jump if equal
		cmp	ax,1
		je	loc_65			; Jump if equal
		jmp	loc_79
loc_65:
		cmp	word ptr ds:data_464e,0
		je	loc_66			; Jump if equal
		call	sub_12
loc_66:
		cmp	word ptr ds:data_464e,0
		jne	loc_67			; Jump if not equal
		call	sub_10
		mov	ds:data_464e,ax
loc_67:
		mov	ax,ds:data_464e
		jmp	loc_76
loc_68:
		dec	word ptr ds:data_452e
		mov	word ptr ds:data_467e,6
		call	sub_51
		cmp	word ptr ds:data_452e,0
		jne	loc_69			; Jump if not equal
		jmp	short loc_71
loc_69:
		call	sub_21
		mov	ax,ds:data_381e
		cmp	ax,1
		jne	loc_70			; Jump if not equal
		mov	ax,1
		retn
loc_70:
		jmp	loc_78
loc_71:
		call	sub_73
		call	sub_21
		mov	ax,0Ah
		push	ax
		push	ax
		mov	ax,8DA0h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Ah
		push	ax
		mov	ax,0Bh
		push	ax
		mov	ax,8DB4h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Ah
		push	ax
		mov	ax,0Ch
		push	ax
		mov	ax,8DC8h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,ds:data_381e
		cmp	ax,1
		jne	loc_72			; Jump if not equal
		mov	ax,1
		retn
loc_72:
		mov	ax,0C8h
		push	ax
		call	sub_5
		pop	cx
		retn
loc_73:
		cmp	word ptr ds:data_463e,0
		jne	loc_74			; Jump if not equal
		inc	word ptr ds:data_388e
		inc	word ptr ds:data_389e
		mov	word ptr ds:data_467e,9
		call	sub_51
		inc	word ptr ds:data_452e
		add	word ptr ds:data_453e,5DCh
loc_74:
		call	sub_21
		jmp	short loc_78
loc_75:
		mov	word ptr ds:data_381e,2
		jmp	short loc_78
loc_76:
		cmp	ax,0
		je	loc_75			; Jump if equal
		cmp	ax,2
		jne	loc_77			; Jump if not equal
		jmp	loc_68
loc_77:
		cmp	ax,3
		je	loc_73			; Jump if equal
		cmp	ax,4
		jne	loc_78			; Jump if not equal
		jmp	loc_71
loc_78:
		jmp	loc_64
loc_79:
		mov	ax,ds:data_381e
		retn
sub_9		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_10		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,ds:data_381e
		cmp	ax,1
		je	loc_82			; Jump if equal
		cmp	word ptr ds:data_399e,0
		je	loc_82			; Jump if equal
		mov	ax,ds:data_470e
		cmp	ax,0
		jg	loc_80			; Jump if >
		mov	ax,ds:data_471e
		cmp	ax,0
		jle	loc_81			; Jump if < or =
loc_80:
		mov	ax,ds:data_472e
		cmp	ax,0
		jg	loc_82			; Jump if >
		mov	ax,ds:data_473e
		cmp	ax,0
		jg	loc_82			; Jump if >
loc_81:
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,8DDCh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_67
		call	sub_73
		call	sub_21
loc_82:
		mov	ax,ds:data_381e
		cmp	ax,2
		jne	loc_83			; Jump if not equal
		call	sub_54
		mov	ds:data_464e,ax
loc_83:
		cmp	word ptr ds:data_464e,0
		je	loc_84			; Jump if equal
		jmp	loc_99
loc_84:
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_85			; Jump if not equal
		call	sub_78
		jmp	short loc_86
loc_85:
		call	sub_77
loc_86:
		call	sub_20
		cmp	ax,1Bh
		jne	loc_87			; Jump if not equal
		jmp	loc_96
loc_87:
		call	sub_37
		mov	ax,ds:data_468e
		cmp	ax,1
		jne	loc_88			; Jump if not equal
		mov	ax,2
		retn
loc_88:
		call	sub_51
		mov	ax,ds:data_431e
		cmp	ax,0
		jg	loc_90			; Jump if >
		cmp	word ptr ds:data_462e,0
		je	loc_89			; Jump if equal
		call	sub_52
loc_89:
		cmp	word ptr ds:data_426e,0
		jne	loc_90			; Jump if not equal
		mov	ax,3
		retn
loc_90:
		call	sub_46
		mov	ax,ds:data_468e
		cmp	ax,1
		je	loc_91			; Jump if equal
		call	sub_40
		jmp	short loc_92
loc_91:
		mov	ax,2
		retn
loc_92:
		mov	ax,ds:data_468e
		cmp	ax,1
		jne	loc_93			; Jump if not equal
		mov	ax,2
		retn
loc_93:
		mov	ax,ds:data_453e
		cmp	ax,0
		jle	loc_95			; Jump if < or =
		add	ds:data_400e,ax
		mov	ax,ds:data_400e
		cmp	ax,270Fh
		jle	loc_94			; Jump if < or =
		mov	word ptr ds:data_400e,0
		inc	word ptr ds:data_401e
loc_94:
		push	word ptr ds:data_400e
		push	word ptr ds:data_401e
		mov	ax,8E05h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,8
		mov	ax,7
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr ds:data_453e,0
loc_95:
		jmp	short loc_98
loc_96:
		mov	ax,ds:data_381e
		cmp	ax,1
		jne	loc_97			; Jump if not equal
		cmp	word ptr ds:data_396e,0
		je	loc_97			; Jump if equal
		mov	ax,2
		retn
loc_97:
		call	sub_19
		mov	ds:data_464e,ax
loc_98:
		jmp	loc_83
loc_99:
		call	sub_77
		mov	ax,ds:data_464e
		retn
sub_10		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_11		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,data_327
		cmp	ax,1
		je	loc_100			; Jump if equal
		mov	ax,0
		push	ax
		mov	ax,4
		push	ax
		call	sub_82
		add	sp,4
		jmp	short loc_101
loc_100:
		call	sub_137
loc_101:
		call	sub_72
		mov	ax,ds:data_389e
		cmp	ax,0
		jle	loc_102			; Jump if < or =
		mov	word ptr ds:data_383e,1
		jmp	short loc_103
loc_102:
		mov	word ptr ds:data_383e,0
loc_103:
		mov	ax,ds:data_381e
		cmp	ax,1
		jne	loc_105			; Jump if not equal
		cmp	word ptr ds:data_396e,0
		je	loc_104			; Jump if equal
		call	sub_118
		mov	word ptr ds:data_391e,0
loc_104:
		mov	word ptr ds:data_383e,1
		mov	word ptr ds:data_389e,0
loc_105:
		mov	byte ptr ds:data_379e,0Fh
		mov	word ptr ds:data_387e,0
		mov	word ptr ds:data_452e,5
		mov	ax,0
		mov	word ptr ds:data_401e,0
		mov	ds:data_400e,ax
		mov	word ptr ds:data_464e,1
		mov	ax,data_234
		mov	ds:data_432e,ax
		mov	word ptr ds:data_474e,4
		mov	word ptr ds:data_475e,0
		call	sub_73
		call	sub_21
		mov	word ptr ds:data_469e,1
		mov	ax,ds:data_464e
		retn
sub_11		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_12		proc	near
		mov	ax,0FFFEh
		call	sub_153
loc_106:
		mov	ax,ds:data_381e
		cmp	ax,1
		jne	loc_108			; Jump if not equal
		mov	ax,ds:data_389e
		cmp	ax,2
		jle	loc_107			; Jump if < or =
		mov	word ptr ds:data_464e,2
		mov	ax,0
		retn
loc_107:
		call	sub_120
		call	sub_24
		jmp	loc_116
loc_108:
		mov	ax,ds:data_388e
		cmp	ax,95h
		jle	loc_109			; Jump if < or =
		mov	word ptr ds:data_388e,0
loc_109:
		call	sub_65
		test	ax,ax
		jnz	loc_110			; Jump if not zero
		mov	word ptr ds:data_464e,4
		mov	ax,0
		retn
loc_110:
		mov	ax,1
		push	ax
		push	word ptr ds:data_388e
		mov	ax,0E366h
		push	ax
		mov	ax,2
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_111			; Jump if not zero
		mov	word ptr ds:data_464e,4
		mov	ax,0
		retn
loc_111:
		call	sub_24
		cmp	word ptr ds:data_429e,0
		je	loc_112			; Jump if equal
		jmp	loc_116
loc_112:
		mov	ax,ds:data_388e
		cmp	ax,0
		jg	loc_113			; Jump if >
		jmpn	loc_116
loc_113:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,8E0Eh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,8E37h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		call	sub_73
		call	sub_21
		call	sub_65
		test	ax,ax
		jnz	loc_114			; Jump if not zero
		mov	word ptr ds:data_464e,4
		mov	ax,0
		retn
loc_114:
		mov	ax,1
		push	ax
		mov	ax,0
		push	ax
		mov	ax,0E366h
		push	ax
		mov	ax,2
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_115			; Jump if not zero
		mov	word ptr ds:data_464e,4
		mov	ax,0
		retn
loc_115:
		call	sub_24
		mov	word ptr ds:data_388e,0
		mov	ax,ds:data_387e
		cmp	ax,9
		jge	loc_116			; Jump if > or =
		inc	word ptr ds:data_387e
loc_116:
		cmp	word ptr ds:data_429e,0
		jne	loc_117			; Jump if not equal
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,8E60h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,8E89h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	word ptr ds:data_464e,4
		mov	word ptr ds:data_383e,1
		mov	ax,0
		retn
loc_117:
		mov	ax,ds:data_389e
		cmp	ax,5DAh
		jle	loc_118			; Jump if < or =
		mov	word ptr ds:data_389e,0
loc_118:
		call	sub_14
		mov	[bp-2],ax
		cmp	ax,1
		jne	loc_119			; Jump if not equal
		inc	word ptr ds:data_389e
		inc	word ptr ds:data_388e
		jmp	loc_106
loc_119:
		cmp	ax,2
		jne	loc_120			; Jump if not equal
		mov	word ptr ds:data_464e,4
		mov	ax,0
		retn
loc_120:
		call	sub_113
		mov	word ptr ds:data_469e,0
		mov	word ptr [bp-2],0
		jmp	short loc_122
loc_121:
		inc	word ptr [bp-2]
loc_122:
		mov	ax,[bp-2]
		cmp	ax,1Ah
		jge	loc_127			; Jump if > or =
		mov	si,0
		jmp	short loc_124
loc_123:
		inc	si
loc_124:
		cmp	si,10h
		jge	loc_126			; Jump if > or =
		mov	bx,[bp-2]
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,si
		mov	al,ds:data_406e[bx]
		mov	ds:data_438e[bx],al
		cmp	al,7
		jne	loc_125			; Jump if not equal
		mov	bx,[bp-2]
		shl	bx,cl			; Shift w/zeros fill
		add	bx,si
		mov	byte ptr ds:data_438e[bx],0
loc_125:
		jmp	short loc_123
loc_126:
		jmp	short loc_121
loc_127:
		mov	word ptr ds:data_445e,2
		mov	word ptr ds:data_446e,2
		mov	word ptr ds:data_440e,79A1h
		mov	word ptr ds:data_465e,0
		mov	si,0
		jmp	short loc_129
loc_128:
		inc	si
loc_129:
		cmp	si,5
		jge	loc_130			; Jump if > or =
		mov	ax,2
		mov	bx,si
		shl	bx,1			; Shift w/zeros fill
		mov	word ptr ds:data_448e[bx],2
		mov	ds:data_447e[bx],ax
		mov	word ptr ds:data_451e[bx],0
		mov	word ptr ds:data_449e[bx],0
		mov	word ptr ds:data_441e[bx],7C80h
		mov	word ptr ds:data_466e[bx],0
		jmp	short loc_128
loc_130:
		push	word ptr ds:data_426e
		push	word ptr ds:data_425e
		call	sub_13
		add	sp,4
		mov	ds:data_435e,ax
		mov	si,0
		jmp	short loc_132
loc_131:
		inc	si
loc_132:
		cmp	si,ds:data_430e
		jge	loc_133			; Jump if > or =
		mov	bx,si
		shl	bx,1			; Shift w/zeros fill
		push	word ptr ds:data_428e[bx]
		push	word ptr ds:data_427e[bx]
		call	sub_13
		add	sp,4
		mov	bx,si
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_436e[bx],ax
		jmp	short loc_131
loc_133:
		mov	ax,ds:data_381e
		cmp	ax,2
		jne	loc_134			; Jump if not equal
		mov	word ptr ds:data_476e,0
		jmp	short loc_135
loc_134:
		cmp	ax,1
		jne	loc_135			; Jump if not equal
		cmp	word ptr ds:data_389e,0
		jne	loc_135			; Jump if not equal
		mov	word ptr ds:data_476e,2
loc_135:
		mov	word ptr [bp-2],0
		jmp	short loc_137
loc_136:
		inc	word ptr [bp-2]
loc_137:
		mov	ax,[bp-2]
		cmp	ax,1Eh
		jge	loc_138			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	bx,ax
		mov	word ptr ds:data_450e[bx],0
		jmp	short loc_136
loc_138:
		nop
		nop
		jmp	short loc_139
		mov	di,0
		mov	ds,di
;         Simulation segment register change due to instruction       DS now 0000
		mov	di,data_1e
		mov	[di+4],di
		mov	[di+6],di
		pop	ds
		pop	di
loc_139:
		mov	word ptr ds:data_8e,0
		mov	word ptr ds:data_22e,0
		mov	word ptr ds:data_21e,1
		mov	word ptr ds:data_23e,0
		mov	word ptr ds:data_25e,0
		mov	ax,0
		mov	word ptr ds:data_19e,0
		mov	ds:data_18e,ax
		mov	ds:data_20e,ax
		mov	word ptr ds:data_15e,37h
		mov	word ptr ds:data_24e,0
		mov	word ptr ds:data_13e,0
		mov	bx,ds:data_9e
		shl	bx,1			; Shift w/zeros fill
		mov	ax,ds:data_5e[bx]
		mov	ds:data_14e,ax
		mov	ax,ds:data_12e
		add	ax,ds:data_9e
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	ds:data_16e,ax
		mov	word ptr ds:data_17e,0
		call	sub_77
		call	sub_97
		retn
sub_12		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_13		proc	near
;         Simulation segment register change due to sub entry point   DS now 3BA9
		mov	ax,0FFFEh
		call	sub_153
		mov	si,[bp+4]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp+6]
		mov	byte ptr ds:data_406e[si],0
		mov	ax,[bp+6]
		mov	cx,1B8h
		imul	cx			; dx:ax = reg * ax
		add	ax,0A1h
		mov	[bp-2],ax
		mov	ax,[bp+4]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		add	[bp-2],ax
		test	word ptr [bp+6],1
		jz	loc_140			; Jump if zero
		add	word ptr [bp-2],1FD8h
loc_140:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr [bp-2]		; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_80
		add	sp,6
		mov	ax,[bp-2]
		retn
sub_13		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_14		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	ax,ds:data_429e
		cmp	ax,1
		je	loc_141			; Jump if equal
		jmp	loc_159
loc_141:
		mov	ax,ds:data_430e
		cmp	ax,0
		jge	loc_142			; Jump if > or =
		jmp	loc_159
loc_142:
		cmp	ax,5
		jle	loc_143			; Jump if < or =
		jmp	loc_159
loc_143:
		mov	ax,ds:data_431e
		cmp	ax,0
		jge	loc_144			; Jump if > or =
		jmp	loc_159
loc_144:
		cmp	ax,0FFh
		jle	loc_145			; Jump if < or =
		jmp	loc_159
loc_145:
		mov	ax,ds:data_425e
		cmp	ax,0
		jge	loc_146			; Jump if > or =
		jmp	loc_159
loc_146:
		cmp	ax,19h
		jle	loc_147			; Jump if < or =
		jmp	loc_159
loc_147:
		mov	ax,ds:data_426e
		cmp	ax,0
		jge	loc_148			; Jump if > or =
		jmp	loc_159
loc_148:
		cmp	ax,0Fh
		jle	loc_149			; Jump if < or =
		jmpn	loc_159
loc_149:
		mov	word ptr [bp-4],0
		jmp	short loc_151
loc_150:
		inc	word ptr [bp-4]
loc_151:
		mov	ax,[bp-4]
		cmp	ax,ds:data_430e
		jge	loc_152			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	ax,ds:data_427e[si]
		cmp	ax,0
		jl	loc_159			; Jump if <
		cmp	ax,19h
		jg	loc_159			; Jump if >
		mov	ax,ds:data_428e[si]
		cmp	ax,0
		jl	loc_159			; Jump if <
		cmp	ax,0Fh
		jg	loc_159			; Jump if >
		jmp	short loc_150
loc_152:
		mov	word ptr [bp-2],0
		jmp	short loc_154
loc_153:
		inc	word ptr [bp-2]
loc_154:
		mov	ax,[bp-2]
		cmp	ax,1Ah
		jge	loc_158			; Jump if > or =
		mov	word ptr [bp-4],0
		jmp	short loc_156
loc_155:
		inc	word ptr [bp-4]
loc_156:
		mov	ax,[bp-4]
		cmp	ax,0Fh
		jge	loc_157			; Jump if > or =
		mov	si,[bp-2]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ax
		cmp	byte ptr ds:data_406e[si],0
		jl	loc_159			; Jump if <
		cmp	byte ptr ds:data_406e[si],9
		jg	loc_159			; Jump if >
		jmp	short loc_155
loc_157:
		jmp	short loc_153
loc_158:
		mov	ax,3
		retn
loc_159:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,8EB2h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,8EDCh
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr [bp-2],1
		call	sub_75
		test	ax,ax
		jnz	loc_160			; Jump if not zero
		mov	word ptr [bp-2],2
loc_160:
		call	sub_73
		call	sub_21
		mov	ax,[bp-2]
		retn
sub_14		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_15		proc	near
		mov	ax,0FFFDh
		call	sub_153
		mov	word ptr ds:data_381e,3
		mov	word ptr ds:data_379e,0Fh
		call	sub_58
		cmp	word ptr ds:data_379e+1,0
		je	loc_161			; Jump if equal
		call	sub_77
		jmp	short loc_162
loc_161:
		call	sub_78
loc_162:
		mov	ax,ds:data_381e
		cmp	ax,3
		je	loc_163			; Jump if equal
		jmp	loc_172
loc_163:
		call	sub_70
		call	sub_95
		mov	[bp-2],ax
		and	ax,0FFh
		mov	[bp-3],al
		cmp	byte ptr [bp-3],0
		jne	loc_164			; Jump if not equal
		mov	ax,[bp-2]
		and	ax,0FF00h
		xchg	ah,al
		sub	ah,ah
		mov	[bp-3],al
loc_164:
		mov	al,[bp-3]
		cbw				; Convrt byte to word
		jmp	loc_169
		mov	ax,ds:data_434e
		cmp	ax,0
		jle	loc_165			; Jump if < or =
		dec	word ptr ds:data_434e
loc_165:
		jmp	loc_171
		mov	ax,ds:data_434e
		cmp	ax,0Fh
		jge	loc_166			; Jump if > or =
		inc	word ptr ds:data_434e
loc_166:
		jmp	loc_171
		mov	ax,ds:data_433e
		cmp	ax,0
		jle	loc_167			; Jump if < or =
		dec	word ptr ds:data_433e
loc_167:
		jmp	loc_171
		mov	ax,ds:data_433e
		cmp	ax,19h
		jge	loc_168			; Jump if > or =
		inc	word ptr ds:data_433e
loc_168:
		jmp	loc_171
		mov	ax,7B8Bh
		push	ax
		mov	ax,30h
		push	ax
		call	sub_17
		add	sp,4
		jmp	loc_171
		mov	ax,7BAEh
		push	ax
		mov	ax,31h
		push	ax
		call	sub_17
		add	sp,4
		jmp	loc_171
		mov	ax,7B45h
		push	ax
		mov	ax,32h
		push	ax
		call	sub_17
		add	sp,4
		jmp	loc_171
		mov	ax,7BD1h
		push	ax
		mov	ax,33h
		push	ax
		call	sub_17
		add	sp,4
		jmp	loc_171
		mov	ax,7BF4h
		push	ax
		mov	ax,34h
		push	ax
		call	sub_17
		add	sp,4
		jmp	loc_171
		mov	ax,7C17h
		push	ax
		mov	ax,35h
		push	ax
		call	sub_17
		add	sp,4
		jmp	loc_171
		mov	ax,7C3Ah
		push	ax
		mov	ax,36h
		push	ax
		call	sub_17
		add	sp,4
		jmp	loc_171
		mov	ax,7C5Dh
		push	ax
		mov	ax,37h
		push	ax
		call	sub_17
		add	sp,4
		jmpn	loc_171
		mov	ax,7C80h
		push	ax
		mov	ax,38h
		push	ax
		call	sub_17
		add	sp,4
		jmp	short loc_171
		mov	ax,79A1h
		push	ax
		mov	ax,39h
		push	ax
		call	sub_17
		add	sp,4
		jmp	short loc_171
		mov	word ptr ds:data_381e,4
		jmp	short loc_171
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	short loc_171
loc_169:
		call	sub_148
		adc	[bx+si],ax
		sbb	ax,[bx+si]
		jnc	loc_170			; Jump if carry=0
		xor	[bx+si],al
		retf				; Return far
;*		pop	cs			; Dangerous-8088 only
		db	0Fh			;  Fixup - byte match
		xor	[bx+si],ax
			                        ; now data because: invalid for uP
		db	0DCh, 0Fh, 32h, 00h,0EDh, 0Fh
		db	 33h, 00h,0FEh, 0Fh
loc_170:
		xor	al,0
;*		pop	cs			; Dangerous-8088 only
		db	0Fh			;  Fixup - byte match
		adc	[di],dh
		add	[bx+si],ah
		adc	byte ptr ds:[3100h],dh
		adc	[bx],dh
		add	[bp+si+10h],al
		cmp	[bx+si],al
		push	bx
		adc	[bx+di],bh
		add	[bp+di+10h],ah
		inc	si
		add	[bp+di+10h],dh
		dec	ax
		add	byte ptr ds:[4B0Fh][bx],cl
		add	byte ptr ds:[4D0Fh][di],ch
		add	byte ptr ds:[500Fh][si],bh
		add	byte ptr ss:[660Fh][bp],bl
		add	[bp+di+10h],dh
		jnp	loc_173			; Jump if not parity
loc_171:
		jmp	loc_162
loc_172:
		call	sub_77
		mov	ax,ds:data_381e
		retn

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_16:
		mov	ax,0FFFCh
		call	sub_153
loc_173:
		mov	word ptr [bp-4],0A1h
		mov	ax,[bp+6]
		mov	cx,0Bh
		imul	cx			; dx:ax = reg * ax
		mov	[bp+6],ax
		mov	si,2
		cwd				; Word to double word
		idiv	si			; ax,dx rem=dx:ax/reg
		test	dx,dx
		jz	loc_174			; Jump if zero
		add	word ptr [bp-4],2000h
		dec	word ptr [bp+6]
loc_174:
		mov	ax,[bp+6]
		mov	cx,28h
		imul	cx			; dx:ax = reg * ax
		add	ax,[bp-4]
		mov	[bp-2],ax
		mov	ax,[bp+4]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		add	[bp-2],ax
		push	word ptr [bp-2]		; PARAMETER_2
		push	word ptr [bp+8]		; PARAMETER_1
		call	sub_79
		add	sp,4
		retn
sub_15		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_17		proc	near
		mov	ax,0FFFDh
		call	sub_153
		cmp	byte ptr [bp+4],30h	; '0'
		jge	loc_175			; Jump if > or =
		jmp	loc_ret_199
loc_175:
		cmp	byte ptr [bp+4],39h	; '9'
		jle	loc_176			; Jump if < or =
		jmp	loc_ret_199
loc_176:
		cmp	byte ptr [bp+4],39h	; '9'
		je	loc_177			; Jump if equal
		jmp	loc_181
loc_177:
		mov	ax,ds:data_429e
		cmp	ax,0
		jle	loc_180			; Jump if < or =
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		call	sub_61
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,8F06h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,8F2Dh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	[bp-3],al
		call	sub_58
		cmp	byte ptr [bp-3],79h	; 'y'
		je	loc_178			; Jump if equal
		cmp	byte ptr [bp-3],59h	; 'Y'
		jne	loc_179			; Jump if not equal
loc_178:
		mov	ax,7B8Bh
		push	ax
		push	word ptr ds:data_426e
		push	word ptr ds:data_425e
		call	sub_16
		add	sp,6
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	byte ptr ds:data_406e[si],0
		jmp	short loc_180
loc_179:
		mov	ax,0
		retn
loc_180:
		mov	ax,ds:data_433e
		cbw				; Convrt byte to word
		mov	ds:data_425e,ax
		mov	ax,ds:data_434e
		cbw				; Convrt byte to word
		mov	ds:data_426e,ax
		mov	word ptr ds:data_429e,1
		jmp	loc_184
loc_181:
		cmp	byte ptr [bp+4],38h	; '8'
		je	loc_182			; Jump if equal
		jmpn	loc_184
loc_182:
		mov	si,ds:data_433e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_434e
		cmp	byte ptr ds:data_406e[si],8
		je	loc_184			; Jump if equal
		mov	ax,ds:data_430e
		cmp	ax,5
		jl	loc_183			; Jump if <
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		call	sub_61
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,8F50h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,8F78h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	[bp-3],al
		call	sub_58
		mov	ax,0
		retn
loc_183:
		mov	ax,ds:data_433e
		cbw				; Convrt byte to word
		mov	si,ds:data_430e
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_427e[si],ax
		mov	ax,ds:data_434e
		cbw				; Convrt byte to word
		mov	si,ds:data_430e
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_428e[si],ax
		inc	word ptr ds:data_430e
loc_184:
		mov	si,ds:data_433e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_434e
		cmp	byte ptr ds:data_406e[si],9
		jne	loc_185			; Jump if not equal
		cmp	byte ptr [bp+4],39h	; '9'
		je	loc_185			; Jump if equal
		mov	word ptr ds:data_425e,0
		mov	word ptr ds:data_426e,0
		mov	word ptr ds:data_429e,0
loc_185:
		cmp	byte ptr ds:data_406e[si],8
		je	loc_186			; Jump if equal
		jmp	loc_195
loc_186:
		cmp	byte ptr [bp+4],38h	; '8'
		jne	loc_187			; Jump if not equal
		jmpn	loc_195
loc_187:
		mov	word ptr [bp-2],0
		jmp	short loc_189
loc_188:
		inc	word ptr [bp-2]
loc_189:
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_427e[si]
		cmp	ax,ds:data_433e
		jne	loc_190			; Jump if not equal
		mov	ax,ds:data_428e[si]
		cmp	ax,ds:data_434e
		je	loc_191			; Jump if equal
loc_190:
		mov	ax,[bp-2]
		cmp	ax,5
		jge	loc_191			; Jump if > or =
		jmp	short loc_188		; Register jump
loc_191:
		jmp	short loc_193
loc_192:
		inc	word ptr [bp-2]
loc_193:
		mov	ax,[bp-2]
		cmp	ax,4
		jge	loc_194			; Jump if > or =
		inc	ax
		mov	si,ax
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_427e[si]
		mov	bx,[bp-2]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_427e[bx],ax
		mov	si,[bp-2]
		inc	si
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_428e[si]
		mov	bx,[bp-2]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_428e[bx],ax
		jmp	short loc_192
loc_194:
		mov	ax,0FFFFh
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_428e[si],0FFFFh
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_427e[si],ax
		dec	word ptr ds:data_430e
loc_195:
		mov	si,ds:data_433e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_434e
		cmp	byte ptr ds:data_406e[si],7
		jne	loc_196			; Jump if not equal
		dec	word ptr ds:data_431e
loc_196:
		cmp	byte ptr [bp+4],37h	; '7'
		jne	loc_198			; Jump if not equal
		mov	ax,ds:data_431e
		cmp	ax,0FFh
		jge	loc_197			; Jump if > or =
		inc	word ptr ds:data_431e
		jmp	short loc_198
loc_197:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		call	sub_61
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,8F9Eh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,8FBBh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		call	sub_58
		mov	ax,0
		retn
loc_198:
		push	word ptr [bp+6]
		push	word ptr ds:data_434e
		push	word ptr ds:data_433e
		call	sub_16
		add	sp,6
		mov	al,[bp+4]
		add	al,0D0h
		mov	si,ds:data_433e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_434e
		mov	ds:data_406e[si],al
		mov	word ptr ds:data_384e,1

loc_ret_199:
		retn
sub_17		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_18		proc	near
		mov	ax,0
		call	sub_153
		mov	al,7
		mov	byte ptr [bp+4],7
		test	al,al
		jz	loc_ret_200		; Jump if zero
		mov	ax,139Ch
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,0FAh
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4

loc_ret_200:
		retn
sub_18		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_19		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	word ptr ds:data_381e,5
		call	sub_57
loc_201:
		mov	ax,ds:data_381e
		cmp	ax,5
		je	loc_202			; Jump if equal
		jmp	loc_225
loc_202:
		call	sub_94
		mov	[bp-4],ax
		jmp	loc_223
		mov	word ptr ds:data_381e,2
		jmp	loc_224
		mov	word ptr ds:data_381e,2
		mov	word ptr ds:data_464e,2
		jmp	loc_224
		mov	ax,ds:data_452e
		cmp	ax,3E7h
		jge	loc_203			; Jump if > or =
		inc	word ptr ds:data_452e
		push	word ptr ds:data_452e
		mov	ax,8FE4h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,18h
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr ds:data_383e,1
		jmp	short loc_204
loc_203:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_204:
		jmp	loc_224
		mov	ax,ds:data_389e
		cmp	ax,5DAh
		jge	loc_206			; Jump if > or =
		mov	word ptr ds:data_463e,1
		mov	word ptr ds:data_464e,3
		mov	word ptr ds:data_383e,1
		inc	word ptr ds:data_388e
		mov	ax,ds:data_388e
		cmp	ax,ds:data_390e
		jl	loc_205			; Jump if <
		mov	word ptr ds:data_388e,0
		mov	ax,ds:data_387e
		cmp	ax,9
		jge	loc_205			; Jump if > or =
		inc	word ptr ds:data_387e
loc_205:
		inc	word ptr ds:data_389e
		mov	ax,ds:data_389e
		inc	ax
		push	ax
		mov	ax,8FE9h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,24h
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_207
loc_206:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_207:
		jmp	loc_224
		cmp	word ptr ds:data_399e,0
		jne	loc_208			; Jump if not equal
		call	sub_121
		jmp	short loc_209
loc_208:
		mov	word ptr ds:data_399e,0
loc_209:
		call	sub_57
		jmp	loc_224
		call	sub_53
		cmp	word ptr ds:data_399e,0
		jne	loc_210			; Jump if not equal
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,8FEEh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9017h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		jmp	short loc_211
loc_210:
		mov	ax,18h
		push	ax
		call	sub_60
		pop	cx
		call	sub_67
loc_211:
		call	sub_57
		jmp	loc_224
		mov	ax,1
		cmp	word ptr ds:data_391e,0
		je	loc_212			; Jump if equal
		mov	ax,0
loc_212:
		mov	ds:data_391e,ax
		jmp	loc_224
		mov	ax,1
		cmp	word ptr ds:data_386e,0
		je	loc_213			; Jump if equal
		mov	ax,0
loc_213:
		mov	ds:data_386e,ax
		jmp	loc_224
		mov	ax,1
		cmp	word ptr ds:data_385e,0
		je	loc_214			; Jump if equal
		mov	ax,0
loc_214:
		mov	ds:data_385e,ax
		jmp	loc_224
		mov	word ptr ds:data_381e,2
		mov	word ptr ds:data_464e,4
		jmp	loc_224
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_215			; Jump if not equal
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	short loc_218
loc_215:
		mov	ax,ds:data_474e
		cmp	ax,0
		jle	loc_216			; Jump if < or =
		dec	word ptr ds:data_474e
		mov	si,ds:data_474e
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_233[si]
		mov	ds:data_432e,ax
		jmp	short loc_217
loc_216:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_217:
		mov	ax,ds:data_474e
		inc	ax
		push	ax
		mov	ax,9040h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,0Dh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
loc_218:
		jmp	loc_224
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_219			; Jump if not equal
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	short loc_222
loc_219:
		mov	ax,ds:data_474e
		cmp	ax,8
		jge	loc_220			; Jump if > or =
		inc	word ptr ds:data_474e
		mov	si,ds:data_474e
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_233[si]
		mov	ds:data_432e,ax
		jmp	short loc_221
loc_220:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_221:
		mov	ax,ds:data_474e
		inc	ax
		push	ax
		mov	ax,9043h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,0Dh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
loc_222:
		jmp	short loc_224
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	short loc_224
loc_223:
		call	sub_148
;*		pop	cs			; Dangerous-8088 only
		db	0Fh			;  Fixup - byte match
		add	[bx+di],al
;*		add	ah,ch
		db	 00h,0ECh		;  Fixup - byte match
		adc	dx,[bx+si]
		add	[bp+di+15h],cl
		adc	ax,3800h
		adc	ax,19h
		in	al,dx			; port 0, DMA-1 bas&add ch 0
		adc	bx,[si]
;*		add	ah,ch
		db	 00h,0ECh		;  Fixup - byte match
		adc	bx,ds:data_493e
		adc	bx,[bx]
		add	[bp+si],dl
		adc	ax,24h
		into				; Int 4 on overflow
		adc	al,25h			; '%'
		add	ss:data_65[bp],dh
		add	[bx+14h],al
		sub	ax,2500h
		adc	ax,32h
		add	al,14h
		dec	bx
		add	[bp+si+15h],bl
		dec	bp
		add	byte ptr ds:[5715h][bx],dh
;*		add	ah,ch
		db	 00h,0ECh		;  Fixup - byte match
		adc	dx,[bp+di]
		push	ss
loc_224:
		jmp	loc_201
loc_225:
		call	sub_97
		call	sub_73
		call	sub_21
		mov	word ptr ds:data_381e,2
		mov	ax,ds:data_464e
		retn
sub_19		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_20		proc	near
		mov	ax,0FFF9h
		call	sub_153
		mov	byte ptr [bp-7],0
		cmp	word ptr ds:data_396e,0
		je	loc_227			; Jump if equal
		call	sub_119
		test	ax,ax
		jz	loc_226			; Jump if zero
		jmp	loc_253
loc_226:
		mov	ax,1Bh
		retn
loc_227:
		cmp	word ptr ds:data_399e,0
		jne	loc_228			; Jump if not equal
		jmp	loc_238
loc_228:
		mov	word ptr ds:data_461e,0
		mov	ax,0
		mov	word ptr ds:data_460e,0
		mov	ds:data_459e,ax
		call	sub_105
		mov	si,ax
		mov	ax,si
		test	ax,10h
		jnz	loc_229			; Jump if not zero
		mov	word ptr ds:data_461e,1
		jmp	short loc_230
loc_229:
		test	si,20h
		jnz	loc_230			; Jump if not zero
		mov	word ptr ds:data_461e,0FFFFh
loc_230:
		call	sub_108
		mov	si,ax
		mov	ax,si
		and	ax,0FFh
		mov	[bp-2],ax
		mov	ax,si
		and	ax,0FF00h
		xchg	ah,al
		sub	ah,ah
		mov	[bp-4],ax
		mov	ax,[bp-2]
		cmp	ax,ds:data_471e
		jg	loc_231			; Jump if >
		mov	word ptr ds:data_459e,0FFFFh
		jmp	short loc_232
loc_231:
		cmp	ax,ds:data_470e
		jl	loc_232			; Jump if <
		mov	word ptr ds:data_459e,1
loc_232:
		mov	ax,[bp-4]
		cmp	ax,ds:data_472e
		jg	loc_233			; Jump if >
		mov	word ptr ds:data_460e,1
		jmp	short loc_234
loc_233:
		cmp	ax,ds:data_473e
		jl	loc_234			; Jump if <
		mov	word ptr ds:data_460e,0FFFFh
loc_234:
		cmp	word ptr ds:data_386e,0
		je	loc_235			; Jump if equal
		neg	word ptr ds:data_459e
loc_235:
		cmp	word ptr ds:data_385e,0
		je	loc_236			; Jump if equal
		neg	word ptr ds:data_460e
loc_236:
		call	sub_96
		test	ax,ax
		jz	loc_237			; Jump if zero
		call	sub_93
		mov	[bp-7],al
		cmp	al,1
		jne	loc_237			; Jump if not equal
		mov	byte ptr [bp-7],1Bh
		jmp	loc_253
loc_237:
		jmp	loc_253
loc_238:
		mov	word ptr ds:data_461e,0
		call	sub_96
		test	ax,ax
		jnz	loc_239			; Jump if not zero
		jmp	loc_253
loc_239:
		mov	ax,0
		mov	word ptr ds:data_460e,0
		mov	ds:data_459e,ax
		call	sub_95
		mov	[bp-6],ax
		and	ax,0FF00h
		xchg	ah,al
		sub	ah,ah
		mov	[bp-7],al
		test	word ptr [bp-6],0FFh
		jnz	loc_246			; Jump if not zero
		cmp	word ptr ds:data_379e+1,0
		je	loc_246			; Jump if equal
		cbw				; Convrt byte to word
		jmp	short loc_245

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_240:
		mov	byte ptr [bp-7],2Ah	; '*'
		jmp	short loc_246

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_241:
		mov	byte ptr [bp-7],36h	; '6'
		jmp	short loc_246

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_242:
		mov	byte ptr [bp-7],38h	; '8'
		jmp	short loc_246

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_243:
		mov	byte ptr [bp-7],1Dh
		jmp	short loc_246

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_244:
		mov	byte ptr [bp-7],58h	; 'X'
		jmp	short loc_246
		stosb				; Store al to es:[di]
		pop	ss
		xchg	dx,ax
		pop	ss
;*		aam	17h			; undocumented inst
		db	0D4h, 17h		;  Fixup - byte match
		stosb				; Store al to es:[di]
		pop	ss
		cbw				; Convrt byte to word
		pop	ss
;*		aam	17h			; undocumented inst
		db	0D4h, 17h		;  Fixup - byte match
		sahf				; Store ah into flags
		pop	ss
;*		aam	17h			; undocumented inst
		db	0D4h, 17h		;  Fixup - byte match
;*		aam	17h			; undocumented inst
		db	0D4h, 17h		;  Fixup - byte match
		movsb				; Mov [si] to es:[di]
		pop	ss
loc_245:
		sub	ax,47h
		cmp	ax,0Ah
		jae	loc_246			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[17B0h][bx]	;*10 entries

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_246:
		cmp	byte ptr [bp-7],1
		jne	loc_247			; Jump if not equal
		mov	byte ptr [bp-7],1Bh
		jmpn	loc_253
loc_247:
		mov	word ptr [bp-2],0
		jmp	short loc_249
loc_248:
		inc	word ptr [bp-2]
loc_249:
		mov	ax,[bp-2]
		cmp	ax,6
		jge	loc_250			; Jump if > or =
		mov	bx,ax
		mov	al,[bp-7]
		cmp	al,ds:data_477e[bx]
		je	loc_250			; Jump if equal
		jmp	short loc_248
loc_250:
		mov	ax,[bp-2]
;*		jmp	short loc_252		;*
		db	0EBh, 3Eh		;  Fixup - byte match
		mov	word ptr ds:data_459e,1
		jmp	short loc_253
		mov	word ptr ds:data_459e,0FFFFh
		jmp	short loc_253
		mov	word ptr ds:data_460e,1
		jmp	short loc_253
		mov	word ptr ds:data_460e,0FFFFh
		jmp	short loc_253
		mov	word ptr ds:data_461e,1
		jmp	short loc_253
		mov	word ptr ds:data_461e,0FFFFh
		jmp	short loc_253
loc_251:
		jmp	short loc_253
		add	ax,0D18h
		sbb	[di],dl
		sbb	[di],bl
		sbb	[di],ah
		sbb	[di],ch
		sbb	[di],bh
		push	es
		add	[bp+di+8],dh
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[1837h][bx]	;*
		jmp	short loc_251
loc_253:
		call	sub_97
		cmp	byte ptr [bp-7],0
		je	loc_254			; Jump if equal
		mov	al,[bp-7]
		cbw				; Convrt byte to word
		retn
loc_254:
		cmp	word ptr ds:data_459e,0
		jne	loc_255			; Jump if not equal
		cmp	word ptr ds:data_460e,0
		jne	loc_255			; Jump if not equal
		cmp	word ptr ds:data_461e,0
		je	loc_256			; Jump if equal
loc_255:
		mov	ax,1
		retn
loc_256:
		mov	ax,0
		retn
sub_20		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_21		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,ds:data_453e
		cmp	ax,0
		jle	loc_257			; Jump if < or =
		add	ds:data_400e,ax
		mov	ax,ds:data_400e
		cmp	ax,270Fh
		jle	loc_257			; Jump if < or =
		mov	word ptr ds:data_400e,0
		inc	word ptr ds:data_401e
loc_257:
		push	word ptr ds:data_400e
		push	word ptr ds:data_401e
		mov	ax,9046h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,8
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		push	word ptr ds:data_452e
		mov	ax,9055h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,13h
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,ds:data_389e
		inc	ax
		push	ax
		mov	ax,905Eh
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,1Eh
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr ds:data_453e,0
		retn
sub_21		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_22		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	word ptr ds:data_381e,4
		mov	word ptr ds:data_379e,0Fh
loc_258:
		mov	ax,ds:data_381e
		cmp	ax,4
		je	loc_259			; Jump if equal
		jmp	loc_262
loc_259:
		call	sub_59
		call	sub_77
		call	sub_94
		mov	[bp-4],ax
		jmp	$+94h
		call	sub_27
		jmp	loc_261
		call	sub_30
		jmp	loc_261
		call	sub_26
		jmp	loc_261
		call	sub_28
		jmp	loc_261
		push	word ptr [bp-4]
		call	sub_31
		pop	cx
		jmp	loc_261
		mov	word ptr ds:data_381e,3
		mov	word ptr ds:data_402e,1
		jmp	loc_261
		call	sub_32
		call	sub_61
		mov	ax,ds:data_388e
		inc	ax
		push	ax
		mov	ax,9075h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1Fh
		push	ax
		call	sub_23
		pop	cx
		mov	[bp-2],ax
		test	ax,ax
		jz	loc_260			; Jump if zero
		dec	word ptr [bp-2]
		mov	ax,[bp-2]
		mov	ds:data_388e,ax
		mov	word ptr ds:data_381e,2
loc_260:
		jmp	short loc_261
		call	sub_32
		mov	word ptr ds:data_381e,6
		jmp	short loc_261
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	short loc_261
		call	sub_148
		or	al,0
		add	[bx+si],ax
			                        ; now data because: instruction bad
		db	 67h, 19h, 10h, 00h,0C1h, 19h
		db	 12h, 00h, 67h, 19h, 19h, 00h
		db	 76h, 19h, 1Ch, 00h, 67h, 19h
		db	 1Fh, 00h, 51h, 19h, 22h, 00h
		db	 45h, 19h, 2Dh, 00h, 4Bh, 19h
		db	 2Eh, 00h, 57h, 19h, 4Bh, 00h
		db	 5Dh, 19h, 4Dh, 00h, 5Dh, 19h
		db	 57h, 00h, 67h, 19h,0CCh, 19h
loc_261:
		jmp	loc_258
loc_262:
		mov	ax,ds:data_388e
		mov	ds:data_389e,ax
		mov	ax,ds:data_381e
		retn
sub_22		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_23		proc	near
		mov	ax,0FFF7h
		call	sub_153
		mov	word ptr [bp-5],0
		mov	ax,ds:data_388e
		inc	ax
		push	ax
		mov	ax,9096h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		push	word ptr [bp+4]
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr [bp-9],0
		push	word ptr [bp+4]
		mov	ax,17h
		push	ax
		mov	al,ds:data_403e
		cbw				; Convrt byte to word
		push	ax
		call	sub_71
		add	sp,6
loc_263:
		call	sub_93
		mov	[bp-1],al
		cmp	al,0Dh
		jne	loc_264			; Jump if not equal
		jmp	loc_275
loc_264:
		cmp	al,30h			; '0'
		jl	loc_265			; Jump if <
		cmp	al,39h			; '9'
		jg	loc_265			; Jump if >
		mov	ax,[bp-5]
		mov	cx,0Ah
		imul	cx			; dx:ax = reg * ax
		mov	[bp-5],ax
		mov	al,[bp-1]
		cbw				; Convrt byte to word
		add	ax,0FFD0h
		add	[bp-5],ax
		jmp	short loc_268
loc_265:
		cmp	byte ptr [bp-1],8
		jne	loc_266			; Jump if not equal
		cmp	word ptr [bp-5],0
		je	loc_266			; Jump if equal
		mov	ax,[bp-5]
		mov	cx,0Ah
		cwd				; Word to double word
		idiv	cx			; ax,dx rem=dx:ax/reg
		mov	[bp-5],ax
		jmp	short loc_268
loc_266:
		cmp	byte ptr [bp-1],1Bh
		jne	loc_267			; Jump if not equal
		mov	ax,0
		retn
loc_267:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_268:
		mov	ax,[bp-5]
		mov	[bp-3],ax
		cmp	word ptr [bp-5],0
		jne	loc_269			; Jump if not equal
		mov	ax,ds:data_388e
		inc	ax
		mov	[bp-3],ax
loc_269:
		push	word ptr [bp+4]
		mov	ax,17h
		push	ax
		mov	ax,9099h
		push	ax
		call	sub_99
		add	sp,6
		push	word ptr [bp-3]
		mov	ax,909Eh
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		push	word ptr [bp+4]
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,[bp-5]
		cmp	ax,ds:data_390e
		jle	loc_270			; Jump if < or =
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,90A1h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	ax,18h
		push	ax
		call	sub_60
		pop	cx
		mov	word ptr [bp-5],0
		push	word ptr [bp+4]
		mov	ax,17h
		push	ax
		mov	ax,90CAh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,ds:data_388e
		inc	ax
		push	ax
		mov	ax,90CFh
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		push	word ptr [bp+4]
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
loc_270:
		cmp	word ptr [bp-5],0
		jne	loc_271			; Jump if not equal
		mov	word ptr [bp-9],0
		jmp	short loc_274
loc_271:
		mov	word ptr [bp-9],0
		jmp	short loc_273
loc_272:
		inc	word ptr [bp-9]
loc_273:
		mov	ax,[bp-9]
		cmp	ax,3
		jge	loc_274			; Jump if > or =
		mov	si,ax
		cmp	byte ptr ds:data_403e[si],0
		je	loc_274			; Jump if equal
		jmp	short loc_272
loc_274:
		mov	ax,[bp+4]
		add	ax,[bp-9]
		push	ax
		mov	ax,17h
		push	ax
		mov	si,[bp-9]
		mov	al,ds:data_403e[si]
		cbw				; Convrt byte to word
		push	ax
		call	sub_71
		add	sp,6
		jmp	loc_263
loc_275:
		cmp	word ptr [bp-5],0
		jne	loc_276			; Jump if not equal
		mov	ax,ds:data_388e
		inc	ax
		mov	[bp-5],ax
loc_276:
		mov	ax,[bp-5]
		retn
sub_23		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_24		proc	near
		mov	ax,0FFFAh
		call	sub_153
		mov	word ptr [bp-2],0E1C6h
		mov	word ptr [bp-4],0
		jmp	short loc_278
loc_277:
		inc	word ptr [bp-4]
loc_278:
		mov	ax,[bp-4]
		cmp	ax,1A0h
		jge	loc_279			; Jump if > or =
		mov	si,ax
		mov	al,ds:data_408e[si]
		mov	bx,[bp-2]
		inc	word ptr [bp-2]
		mov	[bx],al
		jmp	short loc_277
loc_279:
		mov	al,ds:data_418e
		cbw				; Convrt byte to word
		mov	ds:data_479e,ax
		mov	al,ds:data_419e
		sub	ah,ah
		mov	ds:data_431e,ax
		mov	al,ds:data_420e
		cbw				; Convrt byte to word
		mov	ds:data_429e,ax
		mov	al,ds:data_421e
		cbw				; Convrt byte to word
		mov	ds:data_430e,ax
		mov	al,ds:data_422e
		cbw				; Convrt byte to word
		mov	ds:data_425e,ax
		mov	al,ds:data_423e
		cbw				; Convrt byte to word
		mov	ds:data_426e,ax
		mov	word ptr [bp-4],1A6h
		mov	word ptr [bp-6],0
		jmp	short loc_281
loc_280:
		inc	word ptr [bp-4]
		inc	word ptr [bp-6]
loc_281:
		mov	ax,[bp-6]
		cmp	ax,ds:data_430e
		jge	loc_282			; Jump if > or =
		mov	si,[bp-4]
		mov	al,ds:data_408e[si]
		cbw				; Convrt byte to word
		mov	bx,[bp-6]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_427e[bx],ax
		inc	word ptr [bp-4]
		mov	si,[bp-4]
		mov	al,ds:data_408e[si]
		cbw				; Convrt byte to word
		mov	bx,[bp-6]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_428e[bx],ax
		jmp	short loc_280
loc_282:
		mov	ax,ds:data_430e
		mov	[bp-6],ax
		jmp	short loc_284
loc_283:
		inc	word ptr [bp-6]
loc_284:
		mov	ax,[bp-6]
		cmp	ax,5
		jge	loc_ret_285		; Jump if > or =
		mov	ax,0FFFFh
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_428e[si],0FFFFh
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_427e[si],ax
		jmp	short loc_283

loc_ret_285:
		retn
sub_24		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_25		proc	near
		mov	ax,0FFFAh
		call	sub_153
		mov	word ptr [bp-2],0E1C6h
		mov	word ptr [bp-4],0
		jmp	short loc_287
loc_286:
		inc	word ptr [bp-4]
loc_287:
		mov	ax,[bp-4]
		cmp	ax,1A0h
		jge	loc_288			; Jump if > or =
		mov	si,[bp-2]
		inc	word ptr [bp-2]
		mov	al,[si]
		mov	bx,[bp-4]
		mov	ds:data_408e[bx],al
		jmp	short loc_286
loc_288:
		mov	word ptr [bp-4],1A0h
		jmp	short loc_290
loc_289:
		inc	word ptr [bp-4]
loc_290:
		mov	ax,[bp-4]
		cmp	ax,200h
		jge	loc_291			; Jump if > or =
		mov	si,ax
		mov	byte ptr ds:data_408e[si],0
		jmp	short loc_289
loc_291:
		mov	byte ptr ds:data_418e,0
		mov	ax,ds:data_431e
		mov	ds:data_419e,al
		mov	ax,ds:data_429e
		mov	ds:data_420e,al
		mov	ax,ds:data_430e
		mov	ds:data_421e,al
		mov	ax,ds:data_425e
		mov	ds:data_422e,al
		mov	ax,ds:data_426e
		mov	ds:data_423e,al
		mov	word ptr [bp-4],1A6h
		mov	word ptr [bp-6],0
		jmp	short loc_293
loc_292:
		inc	word ptr [bp-4]
		inc	word ptr [bp-6]
loc_293:
		mov	ax,[bp-6]
		cmp	ax,5
		jge	loc_294			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	ax,ds:data_427e[si]
		mov	bx,[bp-4]
		mov	ds:data_408e[bx],al
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_428e[si]
		inc	word ptr [bp-4]
		mov	bx,[bp-4]
		mov	ds:data_408e[bx],al
		jmp	short loc_292
loc_294:
		mov	word ptr [bp-4],1F5h
		mov	word ptr [bp-6],0
		jmp	short loc_296
loc_295:
		inc	word ptr [bp-4]
		inc	word ptr [bp-6]
loc_296:
		mov	ax,[bp-4]
		cmp	ax,200h
		jge	loc_ret_297		; Jump if > or =
		mov	si,[bp-6]
		mov	al,byte ptr data_236[si]	; ('LodeRunner')
		mov	bx,[bp-4]
		mov	ds:data_408e[bx],al
		jmp	short loc_295

loc_ret_297:
		retn
sub_25		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_26		proc	near
		mov	ax,0FFFEh
		call	sub_153
		call	sub_61
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,90D2h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,90F5h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,22h
		push	ax
		call	sub_23
		pop	cx
		mov	[bp-2],ax
		test	ax,ax
		jnz	loc_298			; Jump if not zero
		mov	ax,0
		retn
loc_298:
		dec	word ptr [bp-2]
		push	word ptr [bp-2]
		call	sub_36
		pop	cx
		test	ax,ax
		jnz	loc_299			; Jump if not zero
		mov	ax,0
		retn
loc_299:
		call	sub_25
		mov	ax,1
		push	ax
		push	word ptr [bp-2]
		mov	ax,0E366h
		push	ax
		mov	ax,3
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_300			; Jump if not zero
		mov	ax,0
		retn
loc_300:
		mov	word ptr ds:data_384e,0
		retn
sub_26		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_27		proc	near
		mov	ax,0FFFEh
		call	sub_153
		call	sub_32
		call	sub_61
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,911Eh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,913Eh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,20h
		push	ax
		call	sub_23
		pop	cx
		mov	[bp-2],ax
		test	ax,ax
		jnz	loc_301			; Jump if not zero
		mov	ax,0
		retn
loc_301:
		dec	word ptr [bp-2]
		push	word ptr [bp-2]
		call	sub_36
		pop	cx
		test	ax,ax
		jnz	loc_302			; Jump if not zero
		mov	ax,0
		retn
loc_302:
		mov	ax,[bp-2]
		mov	ds:data_388e,ax
		call	sub_24
		call	sub_29
		mov	word ptr ds:data_384e,0
		retn
sub_27		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_28		proc	near
		mov	ax,0FFFAh
		call	sub_153
		call	sub_32
		call	sub_61
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,9166h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,20h
		push	ax
		call	sub_23
		pop	cx
		mov	[bp-4],ax
		test	ax,ax
		jnz	loc_303			; Jump if not zero
		mov	ax,0
		retn
loc_303:
		dec	word ptr [bp-4]
		push	word ptr [bp-4]
		call	sub_36
		pop	cx
		test	ax,ax
		jnz	loc_304			; Jump if not zero
		mov	ax,0
		retn
loc_304:
		mov	ax,[bp-4]
		mov	ds:data_388e,ax
		mov	word ptr [bp-6],0E1C6h
		mov	word ptr [bp-2],0
		jmp	short loc_306
loc_305:
		inc	word ptr [bp-2]
loc_306:
		mov	ax,[bp-2]
		cmp	ax,1A0h
		jge	loc_307			; Jump if > or =
		mov	si,[bp-6]
		inc	word ptr [bp-6]
		mov	byte ptr [si],0
		jmp	short loc_305
loc_307:
		mov	ax,0
		mov	word ptr ds:data_430e,0
		mov	ds:data_429e,ax
		mov	ds:data_426e,ax
		mov	ds:data_425e,ax
		mov	ds:data_431e,ax
		mov	word ptr [bp-2],0
		jmp	short loc_309
loc_308:
		inc	word ptr [bp-2]
loc_309:
		mov	ax,[bp-2]
		cmp	ax,5
		jge	loc_310			; Jump if > or =
		mov	ax,0FFFFh
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_428e[si],0FFFFh
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_427e[si],ax
		jmp	short loc_308
loc_310:
		call	sub_29
		call	sub_25
		mov	ax,1
		push	ax
		push	word ptr [bp-4]
		mov	ax,0E366h
		push	ax
		mov	ax,3
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_311			; Jump if not zero
		mov	ax,0
		retn
loc_311:
		mov	word ptr ds:data_384e,0
		retn
sub_28		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_29		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	ax,ds:data_381e
		cmp	ax,4
		je	loc_314			; Jump if equal
		mov	ax,data_327
		cmp	ax,1
		je	loc_312			; Jump if equal
		mov	ax,0
		push	ax
		mov	ax,4
		push	ax
		call	sub_82
		add	sp,4
		jmp	short loc_313
loc_312:
		call	sub_137
loc_313:
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,0FAh
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		call	sub_72
loc_314:
		mov	word ptr [bp-4],0
		jmp	short loc_316
loc_315:
		inc	word ptr [bp-4]
loc_316:
		mov	ax,[bp-4]
		cmp	ax,10h
		jge	loc_ret_320		; Jump if > or =
		mov	word ptr [bp-2],0
		jmp	short loc_318
loc_317:
		inc	word ptr [bp-2]
loc_318:
		mov	ax,[bp-2]
		cmp	ax,1Ah
		jge	loc_319			; Jump if > or =
		push	word ptr [bp-4]
		push	ax
		call	sub_74
		add	sp,4
		jmp	short loc_317
loc_319:
		jmp	short loc_315

loc_ret_320:
		retn
sub_29		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_30		proc	near
		mov	ax,0FDFAh
		call	sub_153
		call	sub_32
		call	sub_61
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,9187h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1Ah
		push	ax
		call	sub_23
		pop	cx
		mov	ss:data_495e[bp],ax
		test	ax,ax
		jnz	loc_321			; Jump if not zero
		mov	ax,0
		retn
loc_321:
		dec	word ptr ss:data_495e[bp]
		mov	ax,1Fh
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,91A3h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,24h
		push	ax
		call	sub_23
		pop	cx
		mov	ss:data_494e[bp],ax
		test	ax,ax
		jnz	loc_322			; Jump if not zero
		mov	ax,0
		retn
loc_322:
		dec	word ptr ss:data_494e[bp]
		push	word ptr ss:data_494e[bp]
		call	sub_36
		pop	cx
		test	ax,ax
		jnz	loc_323			; Jump if not zero
		mov	ax,0
		retn
loc_323:
		mov	ax,1
		push	ax
		push	word ptr ss:data_495e[bp]
		lea	ax,cs:[0FE00h][bp]	; Load effective addr
		push	ax
		mov	ax,2
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_324			; Jump if not zero
		mov	ax,0
		retn
loc_324:
		mov	ax,1
		push	ax
		push	word ptr ss:data_495e[bp]
		mov	ax,0E366h
		push	ax
		mov	ax,3
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_325			; Jump if not zero
		mov	ax,0
		retn
loc_325:
		mov	ax,1
		push	ax
		push	word ptr ss:data_494e[bp]
		lea	ax,cs:[0FE00h][bp]	; Load effective addr
		push	ax
		mov	ax,3
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_326			; Jump if not zero
		mov	ax,0
		retn
loc_326:
		mov	word ptr ss:data_496e[bp],0FFFFh
		mov	ax,ss:data_495e[bp]
		cmp	ax,ds:data_388e
		jne	loc_327			; Jump if not equal
		mov	ax,ss:data_494e[bp]
		mov	ss:data_496e[bp],ax
loc_327:
		mov	ax,ss:data_494e[bp]
		cmp	ax,ds:data_388e
		jne	loc_328			; Jump if not equal
		mov	ax,ss:data_495e[bp]
		mov	ss:data_496e[bp],ax
loc_328:
		mov	ax,ss:data_496e[bp]
		cmp	ax,0
		jl	loc_ret_329		; Jump if <
		mov	ds:data_388e,ax

loc_ret_329:
		retn
sub_30		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_31		proc	near
		mov	ax,0FFFEh
		call	sub_153
		call	sub_32
		mov	ax,ds:data_388e
		mov	[bp-2],ax
		cmp	byte ptr [bp+4],4Dh	; 'M'
		jne	loc_332			; Jump if not equal
		mov	cx,ds:data_390e
		dec	cx
		cmp	ax,cx
		jl	loc_330			; Jump if <
		mov	word ptr [bp-2],0
		jmp	short loc_331
loc_330:
		inc	word ptr [bp-2]
loc_331:
		jmp	short loc_334
loc_332:
		mov	ax,[bp-2]
		cmp	ax,0
		jg	loc_333			; Jump if >
		mov	ax,ds:data_390e
		dec	ax
		mov	[bp-2],ax
		jmp	short loc_334
loc_333:
		dec	word ptr [bp-2]
loc_334:
		push	word ptr [bp-2]
		call	sub_36
		pop	cx
		test	ax,ax
		jnz	loc_335			; Jump if not zero
		mov	ax,0
		retn
loc_335:
		mov	ax,[bp-2]
		mov	ds:data_388e,ax
		call	sub_24
		call	sub_29
		mov	word ptr ds:data_384e,0
		call	sub_97
		retn
sub_31		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_32		proc	near
		mov	ax,0FFFFh
		call	sub_153
		cmp	word ptr ds:data_384e,0
		je	loc_ret_344		; Jump if equal
		call	sub_61
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,1
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,91AAh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,91CDh
		push	ax
		call	sub_99
		add	sp,6
loc_336:
		call	sub_93
		mov	[bp-1],al
		cmp	al,53h			; 'S'
		jne	loc_337			; Jump if not equal
		cmp	al,73h			; 's'
		jne	loc_337			; Jump if not equal
		cmp	al,20h			; ' '
		je	loc_343			; Jump if equal
loc_337:
		cbw				; Convrt byte to word
		jmp	short loc_341
loc_338:
		call	sub_26
		retn

loc_ret_339:
		retn
loc_340:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	short loc_342
loc_341:
		cmp	ax,20h
		je	loc_ret_339		; Jump if equal
		cmp	ax,53h
		je	loc_338			; Jump if equal
		cmp	ax,73h
		je	loc_338			; Jump if equal
		jmp	short loc_340
loc_342:
		jmp	short loc_336
loc_343:
		call	sub_61

loc_ret_344:
		retn
sub_32		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_33		proc	near
		mov	ax,0
		call	sub_153
		call	sub_35
		test	ax,ax
		jnz	loc_345			; Jump if not zero
		mov	ax,0
		retn
loc_345:
		call	sub_34
		retn
sub_33		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_34		proc	near
		mov	ax,0
		call	sub_153
		mov	al,ds:data_418e
		cbw				; Convrt byte to word
		mov	ds:data_479e,ax
		test	ax,ax
		jmp	short loc_346
		mov	ax,ds:data_381e
		cmp	ax,2
		je	loc_346			; Jump if equal
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,91F2h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,921Bh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	ax,0
		retn
loc_346:
		mov	ax,1
		retn
sub_34		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_35		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	word ptr ds:data_478e,1
		mov	word ptr [bp-2],0
		mov	word ptr [bp-4],1F5h
		jmp	short loc_348
loc_347:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_348:
		mov	ax,[bp-4]
		cmp	ax,200h
		jge	loc_350			; Jump if > or =
		mov	si,ax
		mov	al,ds:data_408e[si]
		mov	bx,[bp-2]
		cmp	al,byte ptr data_236[bx]	; ('LodeRunner')
		je	loc_349			; Jump if equal
		mov	word ptr ds:data_478e,0
		jmp	short loc_350
loc_349:
		jmp	short loc_347
loc_350:
		cmp	word ptr ds:data_478e,0
		jne	loc_351			; Jump if not equal
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,9244h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,926Dh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	ax,0
		retn
loc_351:
		mov	ax,1
		retn
sub_35		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_36		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,1
		push	ax
		push	word ptr [bp+4]
		mov	ax,0E366h
		push	ax
		mov	ax,2
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_352			; Jump if not zero
		mov	ax,0
		retn
loc_352:
		call	sub_33
		test	ax,ax
		jnz	loc_ret_353		; Jump if not zero
		mov	ax,0
		retn

loc_ret_353:
		retn
sub_36		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_37		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,ds:data_468e
		cmp	ax,3
		jne	loc_355			; Jump if not equal
		push	word ptr ds:data_465e
		call	sub_55
		pop	cx
		test	ax,ax
		jz	loc_354			; Jump if zero
		push	word ptr ds:data_465e
		call	sub_38
		pop	cx
		call	sub_50
		mov	word ptr ds:data_467e,5
		retn
loc_354:
		push	word ptr ds:data_444e	; PARAMETER_2
		mov	ax,7BAEh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_443e	; PARAMETER_2
		push	word ptr ds:data_442e	; PARAMETER_1
		call	sub_81
		add	sp,6
		mov	word ptr ds:data_454e,0
		mov	word ptr ds:data_467e,0
		cmp	word ptr ds:data_468e,0
		je	loc_355			; Jump if equal
loc_355:
		mov	ax,ds:data_468e
		cmp	ax,2
		jne	loc_356			; Jump if not equal
		mov	word ptr ds:data_467e,1
loc_356:
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,ds:data_406e[si]
		mov	[bp-1],al
		cmp	al,3
		je	loc_357			; Jump if equal
		cmp	al,4
		jne	loc_358			; Jump if not equal
		mov	ax,ds:data_446e
		cmp	ax,2
		jne	loc_358			; Jump if not equal
loc_357:
		mov	word ptr ds:data_468e,0
		jmpn	loc_366
loc_358:
		cmp	word ptr ds:data_446e,0
		je	loc_359			; Jump if equal
		mov	ax,ds:data_446e
		cmp	ax,1
		jne	loc_360			; Jump if not equal
		mov	al,ds:data_439e[si]
		mov	[bp-2],al
		cmp	al,8
		je	loc_360			; Jump if equal
loc_359:
		mov	word ptr ds:data_468e,2
		jmp	short loc_366
loc_360:
		mov	ax,ds:data_426e
		cmp	ax,0Fh
		jge	loc_365			; Jump if > or =
		mov	al,ds:data_439e[si]
		mov	[bp-2],al
		test	al,al
		jnz	loc_361			; Jump if not zero
		mov	word ptr ds:data_468e,2
		jmp	short loc_364
loc_361:
		cmp	al,8
		je	loc_362			; Jump if equal
		cmp	al,1
		je	loc_362			; Jump if equal
		cmp	al,3
		je	loc_362			; Jump if equal
		cmp	al,2
		jne	loc_363			; Jump if not equal
loc_362:
		mov	word ptr ds:data_468e,0
		jmp	short loc_364
loc_363:
		mov	word ptr ds:data_468e,2
loc_364:
		jmp	short loc_366
loc_365:
		mov	word ptr ds:data_468e,0
loc_366:
		mov	ax,ds:data_468e
		cmp	ax,2
		jne	loc_367			; Jump if not equal
		mov	word ptr ds:data_467e,1
		mov	ax,5
		push	ax
		call	sub_38
		pop	cx
		retn
loc_367:
		mov	ax,ds:data_467e
		cmp	ax,1
		jne	loc_368			; Jump if not equal
		mov	word ptr ds:data_467e,3
		mov	word ptr ds:data_456e,37h
loc_368:
		mov	ax,ds:data_460e
		cmp	ax,1
		jne	loc_375			; Jump if not equal
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		cmp	byte ptr ds:data_406e[si],3
		je	loc_370			; Jump if equal
		mov	ax,ds:data_446e
		cmp	ax,3
		jge	loc_369			; Jump if > or =
		jmp	loc_382
loc_369:
		cmp	byte ptr ds:data_407e[si],3
		je	loc_370			; Jump if equal
		jmp	loc_382
loc_370:
		mov	ax,ds:data_446e
		cmp	ax,3
		jge	loc_374			; Jump if > or =
		cmp	word ptr ds:data_426e,0
		jne	loc_371			; Jump if not equal
		jmp	loc_382
loc_371:
		mov	al,ds:data_437e[si]
		mov	[bp-2],al
		cmp	al,1
		jne	loc_372			; Jump if not equal
		jmp	loc_382
loc_372:
		cmp	al,2
		jne	loc_373			; Jump if not equal
		jmp	loc_382
loc_373:
		cmp	al,5
		jne	loc_374			; Jump if not equal
		jmp	loc_382
loc_374:
		mov	ax,3
		push	ax
		call	sub_38
		pop	cx
		retn
loc_375:
		mov	ax,ds:data_460e
		cmp	ax,0FFFFh
		jne	loc_379			; Jump if not equal
		mov	ax,ds:data_446e
		cmp	ax,2
		jl	loc_378			; Jump if <
		mov	ax,ds:data_426e
		cmp	ax,0Fh
		jne	loc_376			; Jump if not equal
		jmp	loc_382
loc_376:
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ax
		mov	al,ds:data_439e[si]
		mov	[bp-2],al
		cmp	al,1
		jne	loc_377			; Jump if not equal
		jmpn	loc_382
loc_377:
		cmp	al,2
		je	loc_382			; Jump if equal
loc_378:
		mov	ax,4
		push	ax
		call	sub_38
		pop	cx
		retn
loc_379:
		mov	ax,ds:data_461e
		cmp	ax,1
		jne	loc_381			; Jump if not equal
		mov	ax,7
		push	ax
		call	sub_55
		pop	cx
		test	ax,ax
		jz	loc_380			; Jump if zero
		mov	word ptr ds:data_468e,3
		mov	word ptr ds:data_454e,0
		mov	ax,7
		push	ax
		call	sub_38
		pop	cx
		call	sub_50
		retn
loc_380:
		jmp	short loc_382
loc_381:
		mov	ax,ds:data_461e
		cmp	ax,0FFFFh
		jne	loc_382			; Jump if not equal
		mov	ax,6
		push	ax
		call	sub_55
		pop	cx
		test	ax,ax
		jz	loc_382			; Jump if zero
		mov	word ptr ds:data_468e,3
		mov	word ptr ds:data_454e,0
		mov	ax,6
		push	ax
		call	sub_38
		pop	cx
		call	sub_50
		retn
loc_382:
		mov	ax,ds:data_459e
		cmp	ax,0FFFFh
		jne	loc_386			; Jump if not equal
		mov	ax,ds:data_445e
		cmp	ax,3
		jge	loc_384			; Jump if > or =
		cmp	word ptr ds:data_425e,0
		je	loc_383			; Jump if equal
		mov	si,ds:data_425e
		dec	si
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,ds:data_438e[si]
		mov	[bp-2],al
		cmp	al,1
		je	loc_383			; Jump if equal
		cmp	al,2
		je	loc_383			; Jump if equal
		cmp	al,5
		jne	loc_384			; Jump if not equal
loc_383:
		jmp	short loc_385
loc_384:
		mov	ax,1
		push	ax
		call	sub_38
		pop	cx
		retn
loc_385:
		jmp	short loc_389
loc_386:
		mov	ax,ds:data_459e
		cmp	ax,1
		jne	loc_389			; Jump if not equal
		mov	ax,ds:data_445e
		cmp	ax,2
		jl	loc_388			; Jump if <
		mov	ax,ds:data_425e
		cmp	ax,19h
		je	loc_387			; Jump if equal
		inc	ax
		mov	si,ax
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,ds:data_438e[si]
		mov	[bp-2],al
		cmp	al,1
		je	loc_387			; Jump if equal
		cmp	al,2
		je	loc_387			; Jump if equal
		cmp	al,5
		jne	loc_388			; Jump if not equal
loc_387:
		jmp	short loc_389
loc_388:
		mov	ax,2
		push	ax
		call	sub_38
		pop	cx
		retn
loc_389:
		mov	ax,0
		push	ax
		call	sub_38
		pop	cx
		retn
sub_37		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_38		proc	near
		mov	ax,0FFF9h
		call	sub_153
		mov	ax,0
		mov	word ptr [bp-7],0
		mov	[bp-5],ax
		mov	ax,[bp+4]
		jmp	loc_406

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_390:
		call	sub_106
		test	ax,ax
		jnz	loc_391			; Jump if not zero
		jmp	short loc_390
loc_391:
		mov	ax,ds:data_377e
		cmp	ax,0FDh
;*		jne	loc_392			;*Jump if not equal
		db	 75h, 16h		;  Fixup - byte match
		mov	ax,ds:data_426e
		cmp	ax,6
;*		jge	loc_392			;*Jump if > or =
		db	 7Dh, 0Eh		;  Fixup - byte match
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,6
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_392:
		mov	ax,ds:data_445e
		cmp	ax,2
		jle	loc_393			; Jump if < or =
		mov	word ptr [bp-5],0FFFFh
		jmp	short loc_394
loc_393:
		cmp	ax,2
		jge	loc_394			; Jump if > or =
		mov	word ptr [bp-5],1
loc_394:
		mov	ax,[bp+4]
		cmp	ax,6
		jge	loc_395			; Jump if > or =
		jmp	loc_407
loc_395:
		cmp	ax,6
		jne	loc_398			; Jump if not equal
		mov	ax,ds:data_454e
		cmp	ax,6
		jl	loc_396			; Jump if <
		mov	word ptr [bp-2],7A73h
		jmp	short loc_397
loc_396:
		mov	word ptr [bp-2],92B9h
loc_397:
;*		jmp	short loc_400		;*
		db	0EBh, 14h		;  Fixup - byte match
loc_398:
		mov	ax,ds:data_454e
		cmp	ax,6
		jl	loc_399			; Jump if <
		mov	word ptr [bp-2],79A1h
;*		jmp	short loc_400		;*
		db	0EBh, 05h		;  Fixup - byte match
loc_399:
		mov	word ptr [bp-2],9296h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_400:
		mov	ax,ds:data_446e
		cmp	ax,2
		jle	loc_401			; Jump if < or =
		mov	word ptr [bp-7],1
		jmp	short loc_402
loc_401:
		cmp	ax,2
		jge	loc_402			; Jump if > or =
		mov	word ptr [bp-7],0FFFFh
loc_402:
		jmp	short loc_407

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_403:
		mov	ax,ds:data_440e
		mov	[bp-2],ax
loc_404:
		call	sub_106
		test	ax,ax
		jnz	loc_405			; Jump if not zero
		jmp	short loc_404
loc_405:
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	$+18h			; Jump if not equal
		mov	ax,ds:data_426e
		cmp	ax,6
		jge	$+10h			; Jump if > or =
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,6
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_407
		xlat				; al=[al+[bx]] table
		and	ax,25BCh
		mov	sp,6925h
		and	ax,2569h
			                        ; now data because: invalid for uP
		db	 69h, 25h
data_64		dw	offset loc_390
data_65		db	42h			; Data table (indexed access)
		db	25h
loc_406:
		cmp	ax,8
		jae	loc_407			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[2606h][bx]	;*7 entries
loc_407:
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,ds:data_406e[si]
		mov	[bp-3],al
		mov	ax,ds:data_432e
		cmp	ax,14h
		jge	loc_409			; Jump if > or =
		mov	ax,[bp+4]
		cmp	ax,1
		je	loc_408			; Jump if equal
		cmp	ax,2
		jne	loc_409			; Jump if not equal
loc_408:
		call	sub_39
loc_409:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_435e	; PARAMETER_2
		push	word ptr ds:data_440e	; PARAMETER_1
		call	sub_81
		add	sp,6
		mov	ax,[bp+4]
		cmp	ax,3
		je	loc_410			; Jump if equal
		mov	ax,[bp-7]
		cmp	ax,1
		je	loc_410			; Jump if equal
		jmp	loc_422
loc_410:
		cmp	word ptr ds:data_446e,0
		je	loc_411			; Jump if equal
		sub	word ptr ds:data_435e,50h
		dec	word ptr ds:data_446e
		jmp	short loc_415
loc_411:
		test	word ptr ds:data_426e,1
		jz	loc_412			; Jump if zero
		sub	word ptr ds:data_435e,2050h
		jmp	short loc_413
loc_412:
		add	word ptr ds:data_435e,1F60h
loc_413:
		cmp	byte ptr [bp-3],1
		jne	loc_414			; Jump if not equal
		mov	byte ptr [bp-3],0
loc_414:
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,[bp-3]
		mov	ds:data_438e[si],al
		dec	word ptr ds:data_426e
		mov	si,ds:data_425e
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	byte ptr ds:data_438e[si],9
		mov	word ptr ds:data_446e,4
loc_415:
		mov	ax,[bp+4]
		cmp	ax,3
		jne	loc_422			; Jump if not equal
		mov	ax,ds:data_446e
		jmp	short loc_421

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_416:
		mov	word ptr [bp-2],7CD9h
		jmp	short loc_422

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_417:
		mov	word ptr [bp-2],7D65h
		jmp	short loc_422

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_418:
		mov	word ptr [bp-2],7D42h
		jmp	short loc_422

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_419:
		mov	word ptr [bp-2],7D1Fh
		jmp	short loc_422

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_420:
		mov	word ptr [bp-2],7CFCh
		jmp	short loc_422
		cmc				; Complement carry
			                        ; now data because: invalid prefix
		db	 26h,0FCh, 26h
data_68		dw	offset loc_416
data_69		dw	offset loc_417
data_70		dw	offset loc_418
loc_421:
		cmp	ax,5
		jae	loc_422			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[2703h][bx]	;*5 entries
loc_422:
		mov	ax,[bp+4]
		cmp	ax,4
		je	loc_423			; Jump if equal
		cmp	ax,5
		je	loc_423			; Jump if equal
		mov	ax,[bp-7]
		cmp	ax,0FFFFh
		je	loc_423			; Jump if equal
		jmp	loc_435
loc_423:
		mov	ax,ds:data_446e
		cmp	ax,4
		je	loc_424			; Jump if equal
		add	word ptr ds:data_435e,50h
		inc	word ptr ds:data_446e
		jmp	short loc_428
loc_424:
		test	word ptr ds:data_426e,1
		jz	loc_425			; Jump if zero
		sub	word ptr ds:data_435e,1F60h
		jmp	short loc_426
loc_425:
		add	word ptr ds:data_435e,2050h
loc_426:
		cmp	byte ptr [bp-3],1
		jne	loc_427			; Jump if not equal
		mov	byte ptr [bp-3],0
loc_427:
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,[bp-3]
		mov	ds:data_438e[si],al
		inc	word ptr ds:data_426e
		mov	si,ds:data_425e
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	byte ptr ds:data_438e[si],9
		mov	word ptr ds:data_446e,0
loc_428:
		mov	ax,[bp+4]
		cmp	ax,4
		jne	loc_433			; Jump if not equal
		mov	ax,ds:data_446e
		jmp	short loc_431

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_429:
		mov	word ptr [bp-2],7CD9h
		jmp	short loc_432
		mov	word ptr [bp-2],7D65h
		jmp	short loc_432
		mov	word ptr [bp-2],7D42h
		jmp	short loc_432

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_430:
		mov	word ptr [bp-2],7D1Fh
		jmp	short loc_432
		mov	word ptr [bp-2],7CFCh
		jmp	short loc_432
		mov	ah,27h			; '''
		mov	bx,offset data_302
		daa				; Decimal adjust
		cmpsb				; Cmp [si] to es:[di]
		daa				; Decimal adjust
		lodsw				; String [si] to ax
		daa				; Decimal adjust
loc_431:
		cmp	ax,5
		jae	loc_432			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[27C2h][bx]	;*1 entry
loc_432:
		jmp	short loc_435
loc_433:
		mov	ax,[bp+4]
		cmp	ax,5
		jne	loc_435			; Jump if not equal
		mov	ax,ds:data_465e
		cmp	ax,1
		jne	loc_434			; Jump if not equal
		mov	word ptr [bp-2],7D88h
		jmp	short loc_435
loc_434:
		mov	word ptr [bp-2],7DABh
loc_435:
		mov	ax,[bp+4]
		cmp	ax,1
		je	loc_436			; Jump if equal
		mov	ax,[bp-5]
		cmp	ax,0FFFFh
		je	loc_436			; Jump if equal
		jmp	loc_453
loc_436:
		test	word ptr ds:data_445e,1
		jz	loc_437			; Jump if zero
		dec	word ptr ds:data_435e
loc_437:
		mov	ax,ds:data_445e
		cmp	ax,0
		jg	loc_439			; Jump if >
		cmp	byte ptr [bp-3],1
		jne	loc_438			; Jump if not equal
		mov	byte ptr [bp-3],0
loc_438:
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,[bp-3]
		mov	ds:data_438e[si],al
		dec	word ptr ds:data_425e
		mov	si,ds:data_425e
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	byte ptr ds:data_438e[si],9
		mov	word ptr ds:data_445e,5
		jmp	short loc_440
loc_439:
		dec	word ptr ds:data_445e
loc_440:
		mov	ax,[bp+4]
		cmp	ax,1
		je	loc_441			; Jump if equal
		jmp	loc_453
loc_441:
		cmp	byte ptr [bp-3],4
		jne	loc_444			; Jump if not equal
		mov	ax,ds:data_445e
		jmp	short loc_442
		mov	word ptr [bp-2],7F09h
		jmp	short loc_443
		mov	word ptr [bp-2],7EE6h
		jmp	short loc_443
		mov	word ptr [bp-2],7EC3h
		jmp	short loc_443
		mov	word ptr [bp-2],7EA0h
		jmp	short loc_443
		mov	word ptr [bp-2],7F4Fh
		jmp	short loc_443
		mov	word ptr [bp-2],7F2Ch
		jmp	short loc_443
		lea	bp,[bx+si]		; Load effective addr
		xchg	sp,ax
		sub	[bx+di+28h],dh
;*		js	loc_448			;*Jump if sign=1
		db	 78h, 28h		;  Fixup - byte match
;*		jg	loc_449			;*Jump if >
		db	 7Fh, 28h		;  Fixup - byte match
		xchg	[bx+si],ch
loc_442:
		cmp	ax,6
		jae	loc_443			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[289Bh][bx]	;*
loc_443:
		jmp	short loc_453
loc_444:
		mov	ax,ds:data_445e
;*		jmp	short loc_452		;*
		db	0EBh, 36h		;  Fixup - byte match

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_445:
		mov	word ptr [bp-2],7B22h
		jmp	short loc_453

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_446:
		mov	word ptr [bp-2],7AFFh
		jmp	short loc_453

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_447:
		mov	word ptr [bp-2],7ADCh
		jmp	short loc_453

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_450:
		mov	word ptr [bp-2],7AB9h
		jmp	short loc_453
		mov	word ptr [bp-2],7A96h
		jmp	short loc_453

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_451:
		mov	word ptr [bp-2],7A73h
		jmp	short loc_453
		xlat				; al=[al+[bx]] table
;*		sub	dh,bl
		db	 28h,0DEh		;  Fixup - byte match
		sub	ss:data_394e[bp+di],bh
;*		sub	cl,cl
		db	 28h,0C9h		;  Fixup - byte match
;*		sub	al,dl
		db	 28h,0D0h		;  Fixup - byte match
		sub	[di],bh
		push	es
		add	[bp+di+8],dh
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[28E5h][bx]	;*
loc_453:
		mov	ax,[bp+4]
		cmp	ax,2
		je	loc_454			; Jump if equal
		mov	ax,[bp-5]
		cmp	ax,1
		je	loc_454			; Jump if equal
		jmp	loc_476
loc_454:
		test	word ptr ds:data_445e,1
		jnz	loc_455			; Jump if not zero
		inc	word ptr ds:data_435e
loc_455:
		mov	ax,ds:data_445e
		cmp	ax,5
		jl	loc_457			; Jump if <
		cmp	byte ptr [bp-3],1
		jne	loc_456			; Jump if not equal
		mov	byte ptr [bp-3],0
loc_456:
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	al,[bp-3]
		mov	ds:data_438e[si],al
		inc	word ptr ds:data_425e
		mov	si,ds:data_425e
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	byte ptr ds:data_438e[si],9
		mov	word ptr ds:data_445e,0
		jmp	short loc_458
loc_457:
		inc	word ptr ds:data_445e
loc_458:
		mov	ax,[bp+4]
		cmp	ax,2
		je	loc_459			; Jump if equal
		jmp	loc_476
loc_459:
		cmp	byte ptr [bp-3],4
		jne	loc_468			; Jump if not equal
		mov	ax,ds:data_445e
		jmp	short loc_466

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_460:
		mov	word ptr [bp-2],7DCEh
		jmp	short loc_467

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_461:
		mov	word ptr [bp-2],7DF1h
		jmp	short loc_467

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_462:
		mov	word ptr [bp-2],7E14h
		jmp	short loc_467

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_463:
		mov	word ptr [bp-2],7E37h
		jmp	short loc_467

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_464:
		mov	word ptr [bp-2],7E5Ah
		jmp	short loc_467

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_465:
		mov	word ptr [bp-2],7E7Dh
		jmp	short loc_467
		xchg	sp,ax
		sub	ss:data_181[bp+di],bx
		sub	[bx+29h],di
		xchg	[bx+di],ch
		lea	bp,[bx+di]		; Load effective addr
loc_466:
		cmp	ax,6
		jae	loc_467			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[29A2h][bx]	;*6 entries
loc_467:
		jmp	short loc_476
loc_468:
		mov	ax,ds:data_445e
		jmp	short loc_475

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_469:
		mov	word ptr [bp-2],79A1h
		jmp	short loc_476

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_470:
		mov	word ptr [bp-2],79C4h
		jmp	short loc_476

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_471:
		mov	word ptr [bp-2],79E7h
		jmp	short loc_476

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_472:
		mov	word ptr [bp-2],7A0Ah
		jmp	short loc_476

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_473:
		mov	word ptr [bp-2],7A2Dh
		jmp	short loc_476

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_474:
		mov	word ptr [bp-2],7A50h
		jmp	short loc_476
			                        ; now data because: invalid for uP
		db	0DEh, 29h
data_87		dw	offset loc_474
data_88		dw	offset loc_469
data_89		dw	offset loc_470
data_90		dw	offset loc_471
data_91		dw	offset loc_472
loc_475:
		cmp	ax,6
		jae	loc_476			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[29ECh][bx]	;*6 entries
loc_476:
		cmp	byte ptr [bp-3],7
		jne	loc_477			; Jump if not equal
		mov	ax,ds:data_445e
		cmp	ax,2
		jne	loc_477			; Jump if not equal
		mov	ax,ds:data_446e
		cmp	ax,2
		jne	loc_477			; Jump if not equal
		dec	word ptr ds:data_431e
		mov	si,ds:data_425e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	byte ptr ds:data_406e[si],0
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_435e	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_80
		add	sp,6
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_435e	; PARAMETER_2
		mov	ax,7C5Dh
		push	ax			; PARAMETER_1
		call	sub_81
		add	sp,6
		add	word ptr ds:data_453e,0FAh
		mov	word ptr ds:data_467e,2
loc_477:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_435e	; PARAMETER_2
		push	word ptr [bp-2]		; PARAMETER_1
		call	sub_83
		add	sp,6
		test	ax,ax
		jz	loc_478			; Jump if zero
		mov	word ptr ds:data_468e,1
loc_478:
		mov	ax,[bp-2]
		mov	ds:data_440e,ax
		mov	ax,[bp+4]
		mov	ds:data_465e,ax
		retn
sub_38		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_39		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		je	loc_ret_481		; Jump if equal
		mov	word ptr [bp-2],0
		jmp	short loc_480
loc_479:
		inc	word ptr [bp-2]
loc_480:
		mov	ax,[bp-2]
		cmp	ax,64h
		jge	loc_ret_481		; Jump if > or =
		jmp	short loc_479

loc_ret_481:
		retn
sub_39		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_40		proc	near
		mov	ax,0FFFAh
		call	sub_153
		mov	ax,ds:data_430e
		cmp	ax,0
		jg	loc_482			; Jump if >
		jmp	loc_507
loc_482:
		inc	word ptr ds:data_458e
		mov	ax,ds:data_458e
		cmp	ax,3
		jl	loc_483			; Jump if <
		mov	word ptr ds:data_458e,0
loc_483:
		mov	si,ds:data_457e
		add	si,ds:data_458e
		mov	al,data_238[si]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
loc_484:
		mov	ax,[bp-2]
		dec	word ptr [bp-2]
		cmp	ax,0
		ja	loc_485			; Jump if above
		jmp	loc_506
loc_485:
		mov	si,ds:data_476e
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_449e[si]
		cmp	ax,0
		jg	loc_486			; Jump if >
		jmpn	loc_496
loc_486:
		dec	word ptr ds:data_449e[si]
		mov	ax,ds:data_449e[si]
		cmp	ax,0Dh
		jg	loc_493			; Jump if >
		cmp	ax,7
		jle	loc_491			; Jump if < or =
		jmp	short loc_489
loc_487:
		mov	ax,1
		push	ax
		push	word ptr ds:data_476e
		call	sub_41
		add	sp,4
		jmp	short loc_490
loc_488:
		mov	ax,2
		push	ax
		push	word ptr ds:data_476e
		call	sub_41
		add	sp,4
		jmp	short loc_490
loc_489:
		cmp	ax,8
		je	loc_487			; Jump if equal
		cmp	ax,0Bh
		je	loc_487			; Jump if equal
		cmp	ax,0Ch
		je	loc_487			; Jump if equal
		jmp	short loc_488
loc_490:
		jmp	short loc_492
loc_491:
		push	word ptr ds:data_476e
		call	sub_42
		pop	cx
		push	ax
		push	word ptr ds:data_476e
		call	sub_41
		add	sp,4
loc_492:
		jmp	short loc_495
loc_493:
		mov	si,ds:data_476e
		shl	si,1			; Shift w/zeros fill
		cmp	word ptr ds:data_451e[si],0
		jne	loc_494			; Jump if not equal
		mov	ax,0
		push	ax
		push	word ptr ds:data_476e
		call	sub_41
		add	sp,4
		jmp	short loc_495
loc_494:
		jmp	loc_504
loc_495:
		jmp	short loc_497
loc_496:
		push	word ptr ds:data_476e
		call	sub_42
		pop	cx
		push	ax
		push	word ptr ds:data_476e
		call	sub_41
		add	sp,4
loc_497:
		mov	si,ds:data_476e
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_466e[si]
		cmp	ax,5
		je	loc_498			; Jump if equal
		jmp	loc_504
loc_498:
		mov	ax,ds:data_427e[si]
		mov	[bp-4],ax
		mov	ax,ds:data_428e[si]
		mov	[bp-6],ax
		mov	ax,ds:data_448e[si]
		cmp	ax,2
		jne	loc_501			; Jump if not equal
		mov	bx,[bp-4]
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,[bp-6]
		cmp	byte ptr ds:data_406e[bx],1
		jne	loc_500			; Jump if not equal
		mov	ax,ds:data_449e[si]
		cmp	ax,0
		jg	loc_500			; Jump if >
		cmp	ax,0
		jge	loc_499			; Jump if > or =
		dec	word ptr ds:data_431e
loc_499:
		mov	ax,ds:data_455e
		mov	ds:data_449e[si],ax
		add	word ptr ds:data_453e,4Bh
		mov	word ptr ds:data_467e,4
loc_500:
		jmpn	loc_504
loc_501:
		mov	si,ds:data_476e
		shl	si,1			; Shift w/zeros fill
		cmp	word ptr ds:data_448e[si],0
		jne	loc_504			; Jump if not equal
		mov	ax,[bp-6]
		cmp	ax,ds:data_426e
		jne	loc_502			; Jump if not equal
		mov	ax,[bp-4]
		cmp	ax,ds:data_425e
		jne	loc_502			; Jump if not equal
		mov	word ptr ds:data_468e,1
		retn
loc_502:
		mov	bx,[bp-4]
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,[bp-6]
		cmp	byte ptr ds:data_406e[bx],1
		jne	loc_504			; Jump if not equal
		mov	ax,ds:data_449e[si]
		cmp	ax,0
		jge	loc_504			; Jump if > or =
		mov	word ptr ds:data_449e[si],0
		mov	si,[bp-4]
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		cmp	byte ptr ds:data_405e[si],0
		jne	loc_503			; Jump if not equal
		mov	byte ptr ds:data_405e[si],7
		mov	ax,7C5Dh
		push	ax
		mov	ax,[bp-6]
		dec	ax
		push	ax
		push	word ptr [bp-4]
		call	sub_47
		add	sp,6
		jmp	short loc_504
loc_503:
		dec	word ptr ds:data_431e
loc_504:
		inc	word ptr ds:data_476e
		mov	ax,ds:data_476e
		cmp	ax,ds:data_430e
		jl	loc_505			; Jump if <
		mov	word ptr ds:data_476e,0
loc_505:
		jmp	loc_484
loc_506:
		jmp	short loc_ret_508
loc_507:
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_ret_508		; Jump if not equal
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,8
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4

loc_ret_508:
		retn
sub_40		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_41		proc	near
		mov	ax,0FFF1h
		call	sub_153
		mov	es,data_319
;         Simulation segment register change due to instruction       ES now B800
		mov	ax,0
		mov	word ptr [bp-4],0
		mov	[bp-2],ax
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_428e[si]
		mov	[bp-6],ax
		mov	ax,ds:data_427e[si]
		mov	[bp-8],ax
		mov	ax,ds:data_448e[si]
		mov	[bp-0Ah],ax
		mov	ax,ds:data_447e[si]
		mov	[bp-0Ch],ax
		mov	ax,[bp+6]
		cmp	ax,4
		je	loc_509			; Jump if equal
		cmp	ax,3
		je	loc_509			; Jump if equal
		cmp	ax,5
		je	loc_509			; Jump if equal
		jmp	loc_520
loc_509:
		cmp	ax,4
		je	loc_510			; Jump if equal
		cmp	ax,5
		jne	loc_514			; Jump if not equal
loc_510:
		mov	ax,[bp-0Ah]
		cmp	ax,2
		jl	loc_511			; Jump if <
		mov	ax,[bp-6]
		cmp	ax,0Fh
		jge	loc_512			; Jump if > or =
		mov	bx,[bp-8]
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,ax
		mov	al,ds:data_439e[bx]
		mov	[bp-0Fh],al
		cmp	al,1
		je	loc_512			; Jump if equal
		cmp	al,2
		je	loc_512			; Jump if equal
		cmp	al,8
		je	loc_512			; Jump if equal
loc_511:
		jmp	short loc_513
loc_512:
		mov	word ptr [bp+6],0
loc_513:
		jmp	short loc_517
loc_514:
		mov	ax,[bp-0Ah]
		cmp	ax,2
		jg	loc_515			; Jump if >
		mov	ax,[bp-6]
		cmp	ax,0
		jle	loc_516			; Jump if < or =
		mov	bx,[bp-8]
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,ax
		mov	al,ds:data_437e[bx]
		mov	[bp-0Fh],al
		cmp	al,1
		je	loc_516			; Jump if equal
		cmp	al,2
		je	loc_516			; Jump if equal
		cmp	al,8
		je	loc_516			; Jump if equal
		cmp	al,5
		je	loc_516			; Jump if equal
loc_515:
		jmp	short loc_517
loc_516:
		mov	word ptr [bp+6],0
loc_517:
		cmp	word ptr [bp+6],0
		je	loc_519			; Jump if equal
		mov	ax,[bp-0Ch]
		cmp	ax,2
		jle	loc_518			; Jump if < or =
		mov	word ptr [bp-2],0FFFFh
		jmp	short loc_519
loc_518:
		cmp	ax,2
		jge	loc_519			; Jump if > or =
		mov	word ptr [bp-2],1
loc_519:
		jmp	loc_531
loc_520:
		mov	ax,[bp+6]
		cmp	ax,2
		je	loc_521			; Jump if equal
		cmp	ax,1
		je	loc_521			; Jump if equal
		jmp	loc_531
loc_521:
		mov	ax,ds:data_449e[si]
		cmp	ax,7
		jle	loc_522			; Jump if < or =
		jmp	loc_531
loc_522:
		mov	ax,[bp+6]
		cmp	ax,1
		jne	loc_526			; Jump if not equal
		mov	ax,[bp-0Ch]
		cmp	ax,2
		jg	loc_523			; Jump if >
		mov	ax,[bp-8]
		cmp	ax,0
		jle	loc_524			; Jump if < or =
		dec	ax
		mov	bx,ax
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,[bp-6]
		mov	al,ds:data_438e[bx]
		mov	[bp-0Fh],al
		cmp	al,1
		je	loc_524			; Jump if equal
		cmp	al,8
		je	loc_524			; Jump if equal
		cmp	al,2
		je	loc_524			; Jump if equal
		cmp	byte ptr ds:data_406e[bx],5
		je	loc_524			; Jump if equal
loc_523:
		jmp	short loc_525
loc_524:
		mov	word ptr [bp+6],0
loc_525:
		jmp	short loc_529
loc_526:
		mov	ax,[bp-0Ch]
		cmp	ax,2
		jl	loc_527			; Jump if <
		mov	ax,[bp-8]
		cmp	ax,19h
		jge	loc_528			; Jump if > or =
		inc	ax
		mov	bx,ax
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,[bp-6]
		mov	al,ds:data_438e[bx]
		mov	[bp-0Fh],al
		cmp	al,1
		je	loc_528			; Jump if equal
		cmp	al,8
		je	loc_528			; Jump if equal
		cmp	al,2
		je	loc_528			; Jump if equal
		cmp	byte ptr ds:data_406e[bx],5
		je	loc_528			; Jump if equal
loc_527:
		jmp	short loc_529
loc_528:
		mov	word ptr [bp+6],0
loc_529:
		cmp	word ptr [bp+6],0
		je	loc_531			; Jump if equal
		mov	ax,[bp-0Ah]
		cmp	ax,2
		jle	loc_530			; Jump if < or =
		mov	word ptr [bp-4],1
		jmp	short loc_531
loc_530:
		cmp	ax,2
		jge	loc_531			; Jump if > or =
		mov	word ptr [bp-4],0FFFFh
loc_531:
		mov	bx,[bp-8]
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,[bp-6]
		mov	al,ds:data_406e[bx]
		mov	[bp-0Fh],al
		cmp	word ptr [bp+6],0
		jne	loc_533			; Jump if not equal
		mov	ax,ds:data_441e[si]
		mov	[bp-0Eh],ax
loc_532:
		call	sub_106
		test	ax,ax
		jnz	loc_533			; Jump if not zero
		jmp	short loc_532
loc_533:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		push	word ptr ds:data_441e[si]	; PARAMETER_1
		call	sub_81
		add	sp,6
		mov	ax,[bp+6]
		cmp	ax,3
		je	loc_534			; Jump if equal
		mov	ax,[bp-4]
		cmp	ax,1
		je	loc_534			; Jump if equal
		jmp	loc_542
loc_534:
		cmp	word ptr [bp-0Ah],0
		je	loc_535			; Jump if equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		sub	word ptr ds:data_436e[si],50h
		dec	word ptr ds:data_448e[si]
		jmpn	loc_540
loc_535:
		test	word ptr [bp-6],1
		jz	loc_536			; Jump if zero
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		sub	word ptr ds:data_436e[si],2050h
		jmp	short loc_537
loc_536:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		add	word ptr ds:data_436e[si],1F60h
loc_537:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_448e[si],4
		push	word ptr [bp+4]
		call	sub_56
		pop	cx
		cmp	byte ptr [bp-0Fh],1
		jne	loc_538			; Jump if not equal
		mov	byte ptr [bp-0Fh],0
loc_538:
		mov	si,[bp-8]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		mov	al,[bp-0Fh]
		mov	ds:data_438e[si],al
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		dec	word ptr ds:data_428e[si]
		mov	si,ds:data_428e[si]
		mov	[bp-6],si
		mov	ax,[bp-8]
		shl	ax,cl			; Shift w/zeros fill
		add	si,ax
		cmp	byte ptr ds:data_438e[si],9
		jne	loc_539			; Jump if not equal
		mov	word ptr ds:data_468e,1
loc_539:
		add	ax,[bp-6]
		mov	si,ax
		mov	byte ptr ds:data_438e[si],8
loc_540:
		mov	ax,[bp+6]
		cmp	ax,3
		jne	loc_542			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_448e[si]
		jmp	short loc_541
		mov	word ptr [bp-0Eh],7F72h
		jmp	short loc_542
		mov	word ptr [bp-0Eh],7FFEh
		jmp	short loc_542
		mov	word ptr [bp-0Eh],7FDBh
		jmp	short loc_542
		mov	word ptr [bp-0Eh],7FB8h
		jmp	short loc_542
		mov	word ptr [bp-0Eh],7F95h
		jmp	short loc_542
		sub	ax,342Fh
		das				; Decimal adjust
		cmp	bp,[bx]
		inc	dx
		das				; Decimal adjust
		dec	cx
		das				; Decimal adjust
loc_541:
		cmp	ax,5
		jae	loc_542			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[2F50h][bx]	;*
loc_542:
		mov	ax,[bp+6]
		cmp	ax,4
		je	loc_543			; Jump if equal
		cmp	ax,5
		je	loc_543			; Jump if equal
		mov	ax,[bp-4]
		cmp	ax,0FFFFh
		je	loc_543			; Jump if equal
		jmp	loc_560
loc_543:
		mov	ax,[bp-0Ah]
		cmp	ax,4
		je	loc_544			; Jump if equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		add	word ptr ds:data_436e[si],50h
		inc	word ptr ds:data_448e[si]
		jmp	loc_550
loc_544:
		test	word ptr [bp-6],1
		jz	loc_545			; Jump if zero
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		sub	word ptr ds:data_436e[si],1F60h
		jmp	short loc_546
loc_545:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		add	word ptr ds:data_436e[si],2050h
loc_546:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_448e[si],0
		mov	ax,[bp+6]
		cmp	ax,5
		je	loc_547			; Jump if equal
		push	word ptr [bp+4]
		call	sub_56
		pop	cx
loc_547:
		cmp	byte ptr [bp-0Fh],1
		jne	loc_548			; Jump if not equal
		mov	byte ptr [bp-0Fh],0
loc_548:
		mov	si,[bp-8]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		mov	al,[bp-0Fh]
		mov	ds:data_438e[si],al
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		inc	word ptr ds:data_428e[si]
		mov	si,ds:data_428e[si]
		mov	[bp-6],si
		mov	ax,[bp-8]
		shl	ax,cl			; Shift w/zeros fill
		add	si,ax
		cmp	byte ptr ds:data_438e[si],9
		jne	loc_549			; Jump if not equal
		mov	word ptr ds:data_468e,1
loc_549:
		add	ax,[bp-6]
		mov	si,ax
		mov	byte ptr ds:data_438e[si],8
loc_550:
		mov	ax,[bp+6]
		cmp	ax,5
		jne	loc_553			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_466e[si]
		cmp	ax,1
		jne	loc_551			; Jump if not equal
		mov	word ptr [bp-0Eh],8021h
		jmp	short loc_552
loc_551:
		mov	word ptr [bp-0Eh],8044h
loc_552:
		jmp	short loc_560
loc_553:
		mov	ax,[bp+6]
		cmp	ax,4
		jne	loc_560			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_448e[si]
		jmp	short loc_559

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_554:
		mov	word ptr [bp-0Eh],7F72h
		jmp	short loc_560

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_555:
		mov	word ptr [bp-0Eh],7FFEh
		jmp	short loc_560

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_556:
		mov	word ptr [bp-0Eh],7FDBh
		jmp	short loc_560

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_557:
		mov	word ptr [bp-0Eh],7FB8h
		jmp	short loc_560

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_558:
		mov	word ptr [bp-0Eh],7F95h
		jmp	short loc_560
		push	dx
		xor	[bx+di+30h],bl
			                        ; now data because: invalid for uP
		db	 60h, 30h
data_96		dw	offset loc_557
data_97		dw	offset loc_558
loc_559:
		cmp	ax,5
		jae	loc_560			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[3075h][bx]	;*
loc_560:
		mov	ax,[bp+6]
		cmp	ax,1
		je	loc_561			; Jump if equal
		mov	ax,[bp-2]
		cmp	ax,0FFFFh
		je	loc_561			; Jump if equal
		jmp	loc_580
loc_561:
		test	word ptr [bp-0Ch],1
		jz	loc_562			; Jump if zero
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		dec	word ptr ds:data_436e[si]
loc_562:
		mov	ax,[bp-0Ch]
		cmp	ax,0
		jg	loc_565			; Jump if >
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_447e[si],5
		push	word ptr [bp+4]
		call	sub_56
		pop	cx
		cmp	byte ptr [bp-0Fh],1
		jne	loc_563			; Jump if not equal
		mov	byte ptr [bp-0Fh],0
loc_563:
		mov	si,[bp-8]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		mov	al,[bp-0Fh]
		mov	ds:data_438e[si],al
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		dec	word ptr ds:data_427e[si]
		mov	si,ds:data_427e[si]
		mov	[bp-8],si
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		cmp	byte ptr ds:data_438e[si],9
		jne	loc_564			; Jump if not equal
		mov	word ptr ds:data_468e,1
loc_564:
		mov	si,[bp-8]
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		mov	byte ptr ds:data_438e[si],8
		jmp	short loc_566
loc_565:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		dec	word ptr ds:data_447e[si]
loc_566:
		mov	ax,[bp+6]
		cmp	ax,1
		je	loc_567			; Jump if equal
		jmp	loc_580
loc_567:
		cmp	byte ptr [bp-0Fh],4
		jne	loc_572			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_447e[si]
;*		jmp	short loc_570		;*
		db	0EBh, 36h		;  Fixup - byte match
		mov	word ptr [bp-0Eh],81A2h
		jmp	short loc_571
		mov	word ptr [bp-0Eh],817Fh
		jmp	short loc_571

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_568:
		mov	word ptr [bp-0Eh],815Ch
		jmp	short loc_571
		mov	word ptr [bp-0Eh],8139h
		jmp	short loc_571

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_569:
		mov	word ptr [bp-0Eh],81E8h
		jmp	short loc_571
		mov	word ptr [bp-0Eh],81C5h
		jmp	short loc_571
		cmp	si,[bx+di]
		inc	dx
		xor	[bx+di+31h],cx
		push	ax
		xor	[bx+31h],dx
		pop	si
		xor	[di],di
		push	es
		add	[bp+di+8],dh
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[3165h][bx]	;*
loc_571:
		jmp	short loc_580
loc_572:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_447e[si]
;*		jmp	short loc_579		;*
		db	0EBh, 36h		;  Fixup - byte match

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_573:
;         Simulation segment register change due to indexed jmp/call  ES now 3BA9
		mov	word ptr [bp-0Eh],8369h
		jmp	short loc_580

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_574:
		mov	word ptr [bp-0Eh],8346h
		jmp	short loc_580

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_575:
		mov	word ptr [bp-0Eh],8323h
		jmp	short loc_580

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_576:
		mov	word ptr [bp-0Eh],8300h
		jmp	short loc_580

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_577:
		mov	word ptr [bp-0Eh],82DDh
		jmp	short loc_580

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_578:
		mov	word ptr [bp-0Eh],7C80h
		jmp	short loc_580
		mov	si,[bx+di]
		xchg	dx,ax
		xor	data_307[bx+di],bx
		xor	ds:data_393e[bx],sp
		xor	[di],di
		push	es
		add	[bp+di+8],dh
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[31B5h][bx]	;*6 entries
loc_580:
		mov	ax,[bp+6]
		cmp	ax,2
		je	loc_581			; Jump if equal
		mov	ax,[bp-2]
		cmp	ax,1
		je	loc_581			; Jump if equal
		jmp	loc_600
loc_581:
		test	word ptr [bp-0Ch],1
		jnz	loc_582			; Jump if not zero
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		inc	word ptr ds:data_436e[si]
loc_582:
		mov	ax,[bp-0Ch]
		cmp	ax,5
		jl	loc_585			; Jump if <
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_447e[si],0
		push	word ptr [bp+4]
		call	sub_56
		pop	cx
		cmp	byte ptr [bp-0Fh],1
		jne	loc_583			; Jump if not equal
		mov	byte ptr [bp-0Fh],0
loc_583:
		mov	si,[bp-8]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		mov	al,[bp-0Fh]
		mov	ds:data_438e[si],al
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		inc	word ptr ds:data_427e[si]
		mov	si,ds:data_427e[si]
		mov	[bp-8],si
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		cmp	byte ptr ds:data_438e[si],9
		jne	loc_584			; Jump if not equal
		mov	word ptr ds:data_468e,1
loc_584:
		mov	si,[bp-8]
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		mov	byte ptr ds:data_438e[si],8
		jmp	short loc_586
loc_585:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		inc	word ptr ds:data_447e[si]
loc_586:
		mov	ax,[bp+6]
		cmp	ax,2
		je	loc_587			; Jump if equal
		jmp	loc_600
loc_587:
		cmp	byte ptr [bp-0Fh],4
		jne	loc_592			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_447e[si]
;*		jmp	short loc_590		;*
		db	0EBh, 36h		;  Fixup - byte match
		mov	word ptr [bp-0Eh],8067h
		jmp	short loc_591
		mov	word ptr [bp-0Eh],808Ah
		jmp	short loc_591
		mov	word ptr [bp-0Eh],80ADh
		jmp	short loc_591
		mov	word ptr [bp-0Eh],80D0h
		jmp	short loc_591

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_588:
		mov	word ptr [bp-0Eh],80F3h
		jmp	short loc_591

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_589:
		mov	word ptr [bp-0Eh],8116h
		jmp	short loc_591
;*		jge	loc_595			;*Jump if > or =
		db	 7Dh, 32h		;  Fixup - byte match
		test	dh,[bp+si]
		mov	si,[bp+si]
		xchg	dx,ax
		xor	bl,byte ptr data_307+1[bx+di]
		xor	bh,[di]
		push	es
		add	[bp+di+8],dh
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[32A7h][bx]	;*
loc_591:
		jmp	short loc_600
loc_592:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_447e[si]
		jmp	short loc_599

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_593:
		mov	word ptr [bp-0Eh],820Bh
		jmp	short loc_600

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_594:
		mov	word ptr [bp-0Eh],822Eh
		jmp	short loc_600

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_595:
		mov	word ptr [bp-0Eh],8251h
		jmp	short loc_600

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_596:
		mov	word ptr [bp-0Eh],8274h
		jmp	short loc_600

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_597:
		mov	word ptr [bp-0Eh],8297h
		jmp	short loc_600

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_598:
		mov	word ptr [bp-0Eh],82BAh
		jmp	short loc_600
		int	32h			; ??INT Non-standard interrupt
;*		aam	32h			; '2' undocumented inst
		db	0D4h, 32h		;  Fixup - byte match
			                        ; now data because: invalid for uP
		db	0DBh, 32h
data_114	dw	offset loc_596
data_115	dw	offset loc_597
data_116	dw	offset loc_598
loc_599:
		cmp	ax,6
		jae	loc_600			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[32F7h][bx]	;*6 entries
loc_600:
		cmp	byte ptr [bp-0Fh],7
		jne	loc_601			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_447e[si]
		cmp	ax,2
		jne	loc_601			; Jump if not equal
		mov	ax,ds:data_448e[si]
		cmp	ax,2
		jne	loc_601			; Jump if not equal
		mov	ax,ds:data_449e[si]
		cmp	ax,0
		jl	loc_601			; Jump if <
		mov	ax,ds:data_475e
		inc	ax
		neg	ax
		mov	ds:data_449e[si],ax
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	si,ds:data_427e[si]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		mov	bx,[bp+4]
		shl	bx,1			; Shift w/zeros fill
		add	si,ds:data_428e[bx]
		mov	byte ptr ds:data_406e[si],0
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_80
		add	sp,6
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
loc_601:
		mov	ax,ds:data_468e
		cmp	ax,1
		je	loc_602			; Jump if equal
		mov	ax,[bp-8]
		cmp	ax,ds:data_425e
		jne	loc_605			; Jump if not equal
		mov	ax,[bp-6]
		cmp	ax,ds:data_426e
		jne	loc_605			; Jump if not equal
loc_602:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		push	word ptr [bp-0Eh]	; PARAMETER_1
		call	sub_83
		add	sp,6
		test	ax,ax
		jnz	loc_603			; Jump if not zero
		mov	si,[bp-8]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-6]
		mov	byte ptr ds:data_438e[si],9
		mov	word ptr ds:data_468e,0
		jmp	short loc_604
loc_603:
		mov	word ptr ds:data_468e,1
loc_604:
		jmp	short loc_606
loc_605:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		push	word ptr [bp-0Eh]	; PARAMETER_1
		call	sub_111
		add	sp,4
loc_606:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,[bp-0Eh]
		mov	ds:data_441e[si],ax
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,[bp+6]
		mov	ds:data_466e[si],ax
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_ret_607		; Jump if not equal
		mov	ax,ds:data_430e
		cmp	ax,1
		jne	loc_ret_607		; Jump if not equal
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,7
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4

loc_ret_607:
		retn
sub_41		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_42		proc	near
		mov	ax,0FFF4h
		call	sub_153
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_427e[si]
		mov	[bp-6],ax
		mov	ax,ds:data_428e[si]
		mov	[bp-8],ax
		mov	bx,[bp-6]
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,ax
		mov	al,ds:data_406e[bx]
		mov	[bp-2],al
		mov	ax,ds:data_449e[si]
		cmp	ax,0
		jle	loc_609			; Jump if < or =
		cmp	byte ptr [bp-2],1
		jne	loc_608			; Jump if not equal
		mov	ax,3
		retn
loc_608:
		jmpn	loc_617
loc_609:
		cmp	byte ptr [bp-2],3
		je	loc_610			; Jump if equal
		cmp	byte ptr [bp-2],4
		jne	loc_611			; Jump if not equal
		mov	ax,ds:data_448e[si]
		cmp	ax,2
		jne	loc_611			; Jump if not equal
loc_610:
		jmp	short loc_617
loc_611:
		mov	ax,ds:data_448e[si]
		cmp	ax,2
		jge	loc_612			; Jump if > or =
		mov	ax,5
		retn
loc_612:
		mov	ax,[bp-8]
		cmp	ax,0Fh
		jge	loc_617			; Jump if > or =
		mov	al,ds:data_439e[bx]
		mov	[bp-1],al
		test	al,al
		jz	loc_613			; Jump if zero
		cmp	al,9
		jne	loc_614			; Jump if not equal
loc_613:
		mov	ax,5
		retn
loc_614:
		cmp	byte ptr [bp-1],1
		je	loc_615			; Jump if equal
		cmp	byte ptr [bp-1],2
		je	loc_615			; Jump if equal
		cmp	byte ptr [bp-1],8
		je	loc_615			; Jump if equal
		cmp	byte ptr [bp-1],3
		jne	loc_616			; Jump if not equal
loc_615:
		jmp	short loc_617
loc_616:
		mov	ax,5
		retn
loc_617:
		mov	ax,[bp-8]
		cmp	ax,ds:data_426e
		je	loc_618			; Jump if equal
		jmp	loc_632
loc_618:
		mov	ax,[bp-6]
		cmp	ax,ds:data_425e
		jne	loc_619			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_466e[si]
		retn
loc_619:
		mov	ax,[bp-6]
		cmp	ax,ds:data_425e
		jne	loc_620			; Jump if not equal
		jmpn	loc_628
loc_620:
		mov	ax,[bp-8]
		cmp	ax,0Fh
		jge	loc_621			; Jump if > or =
		mov	si,[bp-6]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ax
		mov	al,ds:data_407e[si]
		mov	[bp-1],al
		jmp	short loc_622
loc_621:
		mov	byte ptr [bp-1],2
loc_622:
		mov	si,[bp-6]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-8]
		mov	al,ds:data_406e[si]
		mov	[bp-2],al
		cmp	al,3
		je	loc_623			; Jump if equal
		cmp	al,4
		je	loc_623			; Jump if equal
		cmp	byte ptr [bp-1],5
		je	loc_626			; Jump if equal
		cmp	byte ptr [bp-1],0
		je	loc_626			; Jump if equal
loc_623:
		mov	ax,[bp-6]
		cmp	ax,ds:data_425e
		jge	loc_624			; Jump if > or =
		inc	word ptr [bp-6]
		jmp	short loc_625
loc_624:
		mov	ax,[bp-6]
		cmp	ax,ds:data_425e
		jle	loc_625			; Jump if < or =
		dec	word ptr [bp-6]
loc_625:
		jmp	short loc_627
loc_626:
		jmp	short loc_628
loc_627:
		jmp	short loc_619
loc_628:
		mov	ax,[bp-6]
		cmp	ax,ds:data_425e
		jne	loc_631			; Jump if not equal
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_427e[si]
		cmp	ax,ds:data_425e
		jge	loc_629			; Jump if > or =
		mov	word ptr [bp-0Ch],2
		jmp	short loc_630
loc_629:
		mov	word ptr [bp-0Ch],1
loc_630:
		mov	ax,[bp-0Ch]
		retn
loc_631:
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_427e[si]
		mov	[bp-6],ax
loc_632:
		push	word ptr [bp+4]
		call	sub_43
		pop	cx
		retn
sub_42		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_43		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	bx,[bp+4]
		shl	bx,1			; Shift w/zeros fill
		add	bx,data_427e
		mov	ax,[bx]
		mov	word ptr ds:[0A944h],ax
		mov	dx,ax
		mov	bx,[bp+4]
		shl	bx,1			; Shift w/zeros fill
		add	bx,data_428e
		mov	ax,[bx]
		mov	word ptr ds:[0A946h],ax
		mov	cx,ax
		mov	data_354,0FFh
		mov	word ptr ds:[0A942h],0
		mov	si,dx
		dec	si
		shl	si,1			; Shift w/zeros fill
		shl	si,1			; Shift w/zeros fill
		shl	si,1			; Shift w/zeros fill
		shl	si,1			; Shift w/zeros fill
		add	si,cx
		mov	di,si
		add	si,0E598h
		mov	bx,si
		add	di,data_406e
		inc	di
		mov	cx,di
loc_633:
		cmp	dx,0
		jle	loc_636			; Jump if < or =
		mov	al,[bx]
		cmp	al,1
		je	loc_636			; Jump if equal
		cmp	al,2
		je	loc_636			; Jump if equal
		cmp	al,3
		je	loc_634			; Jump if equal
		cmp	al,4
		je	loc_634			; Jump if equal
		mov	ax,word ptr ds:[0A946h]
		cmp	ax,0Fh
		je	loc_634			; Jump if equal
		cmp	ax,0Fh
		jge	loc_635			; Jump if > or =
		mov	al,[di]
		cmp	al,1
		je	loc_634			; Jump if equal
		cmp	al,2
		je	loc_634			; Jump if equal
		cmp	al,3
		jne	loc_635			; Jump if not equal
loc_634:
		dec	dx
		sub	bx,10h
		sub	di,10h
		jmp	short loc_633
loc_635:
		dec	dx
loc_636:
		mov	word ptr ds:[0A948h],dx
		mov	dx,word ptr ds:[0A944h]
		mov	bx,si
		add	bx,20h
		mov	di,cx
		add	di,20h
loc_637:
		cmp	dx,19h
		jge	loc_640			; Jump if > or =
		mov	al,[bx]
		cmp	al,1
		je	loc_640			; Jump if equal
		cmp	al,2
		je	loc_640			; Jump if equal
		cmp	al,3
		je	loc_638			; Jump if equal
		cmp	al,4
		je	loc_638			; Jump if equal
		mov	ax,word ptr ds:[0A946h]
		cmp	ax,0Fh
		je	loc_638			; Jump if equal
		cmp	ax,0Fh
		jge	loc_639			; Jump if > or =
		mov	al,[di]
		cmp	al,1
		je	loc_638			; Jump if equal
		cmp	al,2
		je	loc_638			; Jump if equal
		cmp	al,3
		jne	loc_639			; Jump if not equal
loc_638:
		inc	dx
		add	bx,10h
		add	di,10h
		jmp	short loc_637
loc_639:
		inc	dx
loc_640:
		mov	word ptr ds:[0A94Ah],dx
		mov	dx,word ptr ds:[0A944h]
		mov	word ptr ds:[0A940h],4
		mov	di,cx
		add	di,10h
		cmp	word ptr ds:[0A946h],0Fh
		jge	loc_641			; Jump if > or =
		mov	al,[di]
		cmp	al,1
		je	loc_641			; Jump if equal
		cmp	al,2
		je	loc_641			; Jump if equal
		push	dx			; PARAMETER_1
		call	sub_44
		add	sp,2
loc_641:
		mov	word ptr ds:[0A940h],3
		dec	di
		cmp	byte ptr [di],3
		jne	loc_642			; Jump if not equal
		push	dx			; PARAMETER_1
		call	sub_45
		add	sp,2
loc_642:
		mov	word ptr ds:[0A940h],1
		mov	si,dx
		mov	dx,word ptr ds:[0A948h]
		mov	cx,word ptr ds:[0A946h]
		mov	bx,dx
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		add	bx,0E1C6h
		add	bx,cx
		inc	bx
loc_643:
		cmp	dx,si
		jne	loc_644			; Jump if not equal
		cmp	word ptr ds:[0A940h],1
		jne	loc_648			; Jump if not equal
		cmp	si,word ptr ds:[0A94Ah]
		je	loc_648			; Jump if equal
		mov	word ptr ds:[0A940h],2
		mov	dx,word ptr ds:[0A94Ah]
		mov	bx,dx
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		add	bx,data_406e
		add	bx,cx
		inc	bx
loc_644:
		cmp	cx,0Fh
		jge	loc_645			; Jump if > or =
		mov	al,[bx]
		cmp	al,1
		je	loc_645			; Jump if equal
		cmp	al,2
		je	loc_645			; Jump if equal
		push	dx			; PARAMETER_1
		call	sub_44
		add	sp,2
loc_645:
		dec	bx
		cmp	byte ptr [bx],3
		jne	loc_646			; Jump if not equal
		push	dx			; PARAMETER_1
		call	sub_45
		add	sp,2
loc_646:
		cmp	word ptr ds:[0A940h],1
		jne	loc_647			; Jump if not equal
		inc	dx
		add	bx,11h
		jmp	short loc_643
loc_647:
		dec	dx
		sub	bx,0Fh
		jmp	short loc_643
loc_648:
		mov	ax,word ptr ds:[0A942h]
		retn
sub_43		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_44		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		push	ax
		push	bx
		push	cx
		push	dx
		push	si
		push	di
		mov	dx,word ptr ds:[0A946h]
loc_649:
		cmp	dx,0Fh
		jge	loc_654			; Jump if > or =
		mov	cx,[bp+PARAMETER_1]
		shl	cx,1			; Shift w/zeros fill
		shl	cx,1			; Shift w/zeros fill
		shl	cx,1			; Shift w/zeros fill
		shl	cx,1			; Shift w/zeros fill
		add	cx,0E1C6h
		mov	bx,cx
		inc	bx
		add	bx,dx
		mov	al,[bx]
		cmp	al,1
		je	loc_654			; Jump if equal
		cmp	al,2
		je	loc_654			; Jump if equal
		dec	bx
		cmp	byte ptr [bx],0
		je	loc_653			; Jump if equal
		cmp	word ptr [bp+PARAMETER_1],0
		jle	loc_651			; Jump if < or =
		sub	bx,0Fh
		mov	al,[bx]
		cmp	al,1
		je	loc_650			; Jump if equal
		cmp	al,3
		je	loc_650			; Jump if equal
		cmp	al,2
		je	loc_650			; Jump if equal
		dec	bx
		cmp	byte ptr [bx],4
		jne	loc_651			; Jump if not equal
loc_650:
		cmp	dx,ds:data_426e
		jl	loc_651			; Jump if <
		jmpn	loc_654
loc_651:
		cmp	word ptr [bp+PARAMETER_1],19h
		jge	loc_653			; Jump if > or =
		mov	bx,cx
		add	bx,11h
		add	bx,dx
		mov	al,[bx]
		cmp	al,1
		je	loc_652			; Jump if equal
		cmp	al,3
		je	loc_652			; Jump if equal
		cmp	al,2
		je	loc_652			; Jump if equal
		dec	bx
		cmp	byte ptr [bx],4
		jne	loc_653			; Jump if not equal
loc_652:
		cmp	dx,ds:data_426e
		jl	loc_653			; Jump if <
		jmpn	loc_654
loc_653:
		inc	dx
		jmp	short loc_649
loc_654:
		cmp	dx,ds:data_426e
		jne	loc_656			; Jump if not equal
		mov	ax,[bp+PARAMETER_1]
		sub	ax,word ptr ds:[0A944h]
		cmp	ax,0
		jge	loc_655			; Jump if > or =
		neg	ax
loc_655:
		jmpn	loc_659
loc_656:
		mov	ax,dx
		sub	ax,ds:data_426e
		cmp	dx,ds:data_426e
		jle	loc_657			; Jump if < or =
		add	ax,0C8h
		jmpn	loc_658
loc_657:
		neg	ax
		add	ax,64h
loc_658:
		mov	data_353,ax
loc_659:
		cmp	ax,data_354
		jge	loc_660			; Jump if > or =
		mov	data_354,ax
		mov	ax,word ptr ds:[0A940h]
		mov	word ptr ds:[0A942h],ax
loc_660:
		pop	di
		pop	si
		pop	dx
		pop	cx
		pop	bx
		pop	ax
		pop	bp
		retn
sub_44		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_45		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		push	ax
		push	bx
		push	cx
		push	dx
		push	si
		push	di
		mov	dx,word ptr ds:[0A946h]
loc_661:
		cmp	dx,0
		jle	loc_666			; Jump if < or =
		mov	cx,[bp+PARAMETER_1]
		shl	cx,1			; Shift w/zeros fill
		shl	cx,1			; Shift w/zeros fill
		shl	cx,1			; Shift w/zeros fill
		shl	cx,1			; Shift w/zeros fill
		add	cx,0E1C6h
		mov	bx,cx
		add	bx,dx
		cmp	byte ptr [bx],3
		jne	loc_666			; Jump if not equal
		dec	dx
		dec	bx
		cmp	word ptr [bp+PARAMETER_1],0
		jle	loc_663			; Jump if < or =
		sub	bx,11h
		mov	al,[bx]
		cmp	al,1
		je	loc_662			; Jump if equal
		cmp	al,2
		je	loc_662			; Jump if equal
		cmp	al,3
		je	loc_662			; Jump if equal
		inc	bx
		cmp	byte ptr [bx],4
		jne	loc_663			; Jump if not equal
loc_662:
		cmp	dx,ds:data_426e
		jg	loc_663			; Jump if >
		jmpn	loc_666
loc_663:
		cmp	word ptr [bp+PARAMETER_1],19h
		jge	loc_665			; Jump if > or =
		mov	bx,cx
		add	bx,0Fh
		add	bx,dx
		mov	al,[bx]
		cmp	al,1
		je	loc_664			; Jump if equal
		cmp	al,2
		je	loc_664			; Jump if equal
		cmp	al,3
		je	loc_664			; Jump if equal
		inc	bx
		cmp	byte ptr [bx],4
		jne	loc_665			; Jump if not equal
loc_664:
		cmp	dx,ds:data_426e
		jg	loc_665			; Jump if >
		jmpn	loc_666
loc_665:
		jmp	short loc_661
loc_666:
		cmp	dx,ds:data_426e
		jne	loc_668			; Jump if not equal
		mov	ax,[bp+PARAMETER_1]
		sub	ax,word ptr ds:[0A944h]
		cmp	ax,0
		jge	loc_667			; Jump if > or =
		neg	ax
loc_667:
		jmpn	loc_671
loc_668:
		mov	ax,dx
		sub	ax,ds:data_426e
		cmp	dx,ds:data_426e
		jle	loc_669			; Jump if < or =
		add	ax,0C8h
		jmpn	loc_670
loc_669:
		neg	ax
		add	ax,64h
loc_670:
		mov	data_353,ax
loc_671:
		cmp	ax,data_354
		jge	loc_672			; Jump if > or =
		mov	data_354,ax
		mov	ax,word ptr ds:[0A940h]
		mov	word ptr ds:[0A942h],ax
loc_672:
		pop	di
		pop	si
		pop	dx
		pop	cx
		pop	bx
		pop	ax
		pop	bp
		retn
sub_45		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_46		proc	near
		mov	ax,0FFFDh
		call	sub_153
		mov	ax,ds:data_430e
		cmp	ax,0
		jle	loc_673			; Jump if < or =
		call	sub_48
loc_673:
		inc	word ptr ds:data_475e
		mov	ax,ds:data_475e
		cmp	ax,19h
		jle	loc_674			; Jump if < or =
		mov	word ptr ds:data_475e,0
loc_674:
		mov	word ptr [bp-2],0
		jmp	short loc_676
loc_675:
		inc	word ptr [bp-2]
loc_676:
		mov	ax,[bp-2]
		cmp	ax,1Eh
		jge	loc_ret_680		; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		cmp	word ptr ds:data_450e[si],0
		je	loc_675			; Jump if equal
		dec	word ptr ds:data_450e[si]
		jnz	loc_677			; Jump if not zero
		push	word ptr [bp-2]
		call	sub_49
		pop	cx
		jmp	short loc_679
loc_677:
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_450e[si]
		cmp	ax,14h
		jne	loc_678			; Jump if not equal
		mov	ax,9309h
		push	ax
		push	word ptr ds:data_481e[si]
		push	word ptr ds:data_480e[si]
		call	sub_47
		add	sp,6
		jmp	short loc_679
loc_678:
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_450e[si]
		cmp	ax,0Ah
		jne	loc_679			; Jump if not equal
		mov	ax,932Ch
		push	ax
		push	word ptr ds:data_481e[si]
		push	word ptr ds:data_480e[si]
		call	sub_47
		add	sp,6
loc_679:
		jmp	short loc_675

loc_ret_680:
		retn
sub_46		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_47		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,[bp+6]
		mov	cx,1B8h
		imul	cx			; dx:ax = reg * ax
		add	ax,0A1h
		mov	[bp-2],ax
		mov	ax,[bp+4]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		add	[bp-2],ax
		test	word ptr [bp+6],1
		jz	loc_681			; Jump if zero
		add	word ptr [bp-2],1FD8h
loc_681:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr [bp-2]		; PARAMETER_2
		push	word ptr [bp+8]		; PARAMETER_1
		call	sub_80
		add	sp,6
		push	word ptr [bp-2]		; PARAMETER_2
		push	word ptr [bp+8]		; PARAMETER_1
		call	sub_111
		add	sp,4
		mov	ax,[bp-2]
		retn
sub_47		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_48		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	word ptr [bp-2],0
		jmp	short loc_683
loc_682:
		inc	word ptr [bp-2]
loc_683:
		mov	ax,[bp-2]
		cmp	ax,ds:data_430e
		jl	loc_684			; Jump if <
		jmp	loc_ret_691
loc_684:
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		cmp	word ptr ds:data_451e[si],0
		je	loc_682			; Jump if equal
		mov	word ptr ds:data_449e[si],7Fh
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		dec	word ptr ds:data_451e[si]
		jz	loc_685			; Jump if zero
		jmp	loc_688
loc_685:
		mov	ax,ds:data_427e[si]
		mov	cx,4
		shl	ax,cl			; Shift w/zeros fill
		add	ax,ds:data_428e[si]
		mov	bx,ax
		cmp	byte ptr ds:data_438e[bx],0
		je	loc_686			; Jump if equal
		inc	word ptr ds:data_451e[si]
		jmp	short loc_687
loc_686:
		mov	ax,ds:data_427e[si]
		shl	ax,cl			; Shift w/zeros fill
		add	ax,ds:data_428e[si]
		mov	bx,ax
		mov	byte ptr ds:data_438e[bx],8
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_80
		add	sp,6
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		mov	ax,9372h
		push	ax			; PARAMETER_1
		call	sub_81
		add	sp,6
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		mov	ax,8044h
		push	ax			; PARAMETER_1
		call	sub_111
		add	sp,4
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_449e[si],0
		mov	word ptr ds:data_467e,8
loc_687:
		jmp	short loc_690
loc_688:
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_451e[si]
		cmp	ax,13h
		jne	loc_689			; Jump if not equal
		mov	ax,934Fh
		push	ax
		push	word ptr ds:data_428e[si]
		push	word ptr ds:data_427e[si]
		call	sub_47
		add	sp,6
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_436e[si],ax
		jmp	short loc_690
loc_689:
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_451e[si]
		cmp	ax,0Ah
		jne	loc_690			; Jump if not equal
		mov	ax,9372h
		push	ax
		push	word ptr ds:data_428e[si]
		push	word ptr ds:data_427e[si]
		call	sub_47
		add	sp,6
loc_690:
		jmp	loc_682

loc_ret_691:
		retn
sub_48		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_49		proc	near
		mov	ax,0FFF5h
		call	sub_153
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_480e[si]
		mov	[bp-2],ax
		mov	ax,ds:data_481e[si]
		mov	[bp-4],ax
		mov	ax,7BAEh
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_47
		add	sp,6
		mov	si,[bp-2]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-4]
		mov	al,ds:data_438e[si]
		mov	[bp-9],al
		test	al,al
		jnz	loc_692			; Jump if not zero
		jmp	loc_709
loc_692:
		cmp	al,9
		jne	loc_693			; Jump if not equal
		mov	word ptr ds:data_468e,1
loc_693:
		cmp	al,8
		je	loc_694			; Jump if equal
		jmp	loc_707
loc_694:
		mov	al,1
		mov	byte ptr ds:data_406e[si],1
		mov	si,[bp-2]
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-4]
		mov	ds:data_438e[si],al
		mov	word ptr [bp-6],0
		jmp	short loc_696
loc_695:
		inc	word ptr [bp-6]
loc_696:
		mov	ax,[bp-6]
		cmp	ax,ds:data_430e
		jl	loc_697			; Jump if <
		jmp	loc_706
loc_697:
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	ax,ds:data_427e[si]
		cmp	ax,[bp-2]
		je	loc_698			; Jump if equal
		jmp	loc_705
loc_698:
		mov	ax,ds:data_428e[si]
		cmp	ax,[bp-4]
		je	loc_699			; Jump if equal
		jmp	loc_705
loc_699:
		mov	ax,ds:data_449e[si]
		cmp	ax,0
		jge	loc_700			; Jump if > or =
		dec	word ptr ds:data_431e
loc_700:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_436e[si]	; PARAMETER_2
		push	word ptr ds:data_441e[si]	; PARAMETER_1
		call	sub_81
		add	sp,6
		mov	word ptr [bp-8],1
loc_701:
		mov	si,ds:data_475e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-8]
		cmp	byte ptr ds:data_406e[si],0
		je	loc_703			; Jump if equal
		inc	word ptr ds:data_475e
		mov	ax,ds:data_475e
		cmp	ax,19h
		jle	loc_702			; Jump if < or =
		mov	word ptr ds:data_475e,0
		inc	word ptr [bp-8]
		mov	ax,[bp-8]
		cmp	ax,0Fh
		jle	loc_702			; Jump if < or =
		dec	word ptr [bp-8]
		jmp	short loc_703
loc_702:
		jmp	short loc_701
loc_703:
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_451e[si],14h
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_475e
		mov	ds:data_427e[si],ax
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ax,[bp-8]
		mov	ds:data_428e[si],ax
		mov	ax,2
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_448e[si],2
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_447e[si],ax
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_441e[si],8044h
		mov	si,[bp-6]

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_704:
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_449e[si],7Fh
		add	word ptr ds:data_453e,4Bh
loc_705:
		jmp	loc_695			; delay for I/O
loc_706:
		jmp	short loc_708
loc_707:
		cmp	byte ptr [bp-9],7
		jne	loc_708			; Jump if not equal
		dec	word ptr ds:data_431e
loc_708:
		jmp	short loc_ret_710
loc_709:
		mov	si,[bp-2]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp-4]
		mov	byte ptr ds:data_438e[si],1

loc_ret_710:
		retn
sub_49		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_50		proc	near
		mov	ax,0FFF8h
		call	sub_153
		mov	ax,ds:data_465e
		cmp	ax,6
		jne	loc_711			; Jump if not equal
		mov	ax,ds:data_425e
		dec	ax
		mov	[bp-2],ax
		jmp	short loc_712
loc_711:
		mov	ax,ds:data_425e
		inc	ax
		mov	[bp-2],ax
loc_712:
		mov	ax,ds:data_454e
		cmp	ax,0Ch
		je	loc_713			; Jump if equal
		jmp	loc_718
loc_713:
		mov	word ptr ds:data_468e,0
		mov	si,[bp-2]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_426e
		mov	byte ptr ds:data_439e[si],0
		push	word ptr ds:data_444e	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_444e	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_80
		add	sp,6
		push	word ptr ds:data_443e	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		mov	word ptr [bp-4],0
		jmp	short loc_715
loc_714:
		inc	word ptr [bp-4]
loc_715:
		mov	ax,[bp-4]
		cmp	ax,1Eh
		jge	loc_716			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		cmp	word ptr ds:data_450e[si],0
		je	loc_716			; Jump if equal
		jmp	short loc_714
loc_716:
		mov	ax,[bp-4]
		cmp	ax,1Eh
		jge	loc_ret_717		; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	ax,[bp-2]
		mov	ds:data_480e[si],ax
		mov	ax,ds:data_426e
		inc	ax
		mov	si,[bp-4]
		shl	si,1			; Shift w/zeros fill
		mov	ds:data_481e[si],ax
		mov	si,[bp-4]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_450e[si],0B4h

loc_ret_717:
		retn
loc_718:
		cmp	word ptr ds:data_454e,0
		jne	loc_720			; Jump if not equal
		mov	ax,ds:data_426e
		mov	cx,1B8h
		imul	cx			; dx:ax = reg * ax
		add	ax,0A1h
		mov	ds:data_443e,ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		add	ds:data_443e,ax
		mov	ax,ds:data_443e
		add	ax,1B8h
		mov	ds:data_444e,ax
		test	word ptr ds:data_426e,1
		jz	loc_719			; Jump if zero
		add	word ptr ds:data_443e,1FD8h
		jmp	short loc_720
loc_719:
		add	word ptr ds:data_444e,1FD8h
loc_720:
		mov	ax,ds:data_454e
		jmpn	loc_731

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721:
		mov	ax,ds:data_465e
		cmp	ax,6
		jne	loc_722			; Jump if not equal
		mov	word ptr [bp-6],93DBh
		jmp	short loc_723
loc_722:
		mov	word ptr [bp-6],9395h
loc_723:
		mov	word ptr [bp-8],9467h
		jmp	short loc_732

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724:
		mov	ax,ds:data_465e
		cmp	ax,6
		jne	loc_725			; Jump if not equal
		mov	word ptr [bp-6],93FEh
		jmp	short loc_726
loc_725:
		mov	word ptr [bp-6],93B8h
loc_726:
		mov	word ptr [bp-8],948Ah
		jmp	short loc_732

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727:
		mov	word ptr [bp-6],9421h
		mov	word ptr [bp-8],94ADh
		jmp	short loc_732

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728:
		mov	word ptr [bp-6],9444h
		mov	word ptr [bp-8],94D0h
		jmp	short loc_732

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_729:
		mov	word ptr [bp-6],7B8Bh
		mov	word ptr [bp-8],94F3h
		jmp	short loc_732

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_730:
		mov	word ptr [bp-6],7B8Bh
		mov	word ptr [bp-8],9516h
		jmp	short loc_732
		adc	di,[di]
		adc	di,[di]
			                        ; now data because: invalid prefix
		db	 2Eh, 3Dh
data_122	dw	offset loc_724
data_123	dw	offset loc_727
data_124	dw	offset loc_727
data_125	dw	offset loc_728
data_126	dw	offset loc_728
data_127	dw	offset loc_729
data_128	dw	offset loc_729
data_129	dw	offset loc_730
data_130	dw	offset loc_730
loc_731:
		cmp	ax,0Ch
		jae	loc_732			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[3D79h][bx]	;*12 entries
loc_732:
		call	sub_106
		test	ax,ax
		jnz	loc_733			; Jump if not zero
		jmp	short loc_732
loc_733:
		cmp	word ptr ds:data_454e,0
		je	loc_734			; Jump if equal
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr ds:data_443e	; PARAMETER_2
		push	word ptr ds:data_442e	; PARAMETER_1
		call	sub_81
		add	sp,6
loc_734:
		push	word ptr ds:data_443e	; PARAMETER_2
		push	word ptr [bp-6]		; PARAMETER_1
		call	sub_111
		add	sp,4
		push	word ptr ds:data_444e	; PARAMETER_2
		push	word ptr [bp-8]		; PARAMETER_1
		call	sub_79
		add	sp,4
		mov	ax,[bp-6]
		mov	ds:data_442e,ax
		mov	word ptr ds:data_467e,5
		inc	word ptr ds:data_454e
		retn
sub_50		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_51		proc	near
		mov	ax,0FFFAh
		call	sub_153
		cmp	word ptr ds:data_467e,0
		je	loc_735			; Jump if equal
		mov	ax,ds:data_467e
		cmp	ax,word ptr ds:[0A94Ch]
		je	loc_736			; Jump if equal
loc_735:
		mov	word ptr ds:[0A94Eh],0
loc_736:
		mov	ax,ds:data_467e
		mov	word ptr ds:[0A94Ch],ax
		jmp	loc_766

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_737:
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		je	loc_ret_738		; Jump if equal
		mov	ax,0
		push	ax			; PARAMETER_2
		push	word ptr ds:data_432e	; PARAMETER_1
		call	sub_117
		add	sp,4

loc_ret_738:
		retn

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_739:
		mov	ax,ds:data_432e
		mov	[bp-4],ax
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_740			; Jump if not equal
		sar	word ptr [bp-4],1	; Shift w/sign fill
loc_740:
		cmp	word ptr ds:[0A950h],0
		je	loc_741			; Jump if equal
		mov	si,ds:data_456e
		dec	word ptr ds:data_456e
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_254[si]
		mov	[bp-6],ax
		jmp	short loc_742
loc_741:
		mov	si,ds:data_456e
;*		add	si,0FFFCh
		db	 83h,0C6h,0FCh		;  Fixup - byte match
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_254[si]
		mov	[bp-6],ax
loc_742:
		mov	ax,1
		cmp	word ptr ds:[0A950h],0
		je	loc_743			; Jump if equal
		mov	ax,0
loc_743:
		mov	word ptr ds:[0A950h],ax
		jmp	loc_768

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_744:
		mov	si,word ptr ds:[0A94Eh]
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_255[si]
		mov	[bp-4],ax
		mov	bx,data_256[si]
		shl	bx,1			; Shift w/zeros fill
		mov	ax,data_254[bx]
		mov	[bp-6],ax
		mov	ax,word ptr ds:[0A94Eh]
		cmp	ax,5
		jl	loc_745			; Jump if <
		mov	word ptr ds:data_467e,0
loc_745:
		jmp	loc_768

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_746:
		mov	si,word ptr ds:[0A94Eh]
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_261[si]
		mov	[bp-4],ax
		mov	bx,data_262[si]
		shl	bx,1			; Shift w/zeros fill
		mov	ax,data_254[bx]
		mov	[bp-6],ax
		mov	ax,word ptr ds:[0A94Eh]
		cmp	ax,2
		jl	loc_747			; Jump if <
		mov	word ptr ds:data_467e,0
loc_747:
		jmp	loc_768

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_748:
		mov	si,word ptr ds:[0A94Eh]
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_263[si]
		mov	[bp-4],ax
		mov	bx,data_264[si]
		shl	bx,1			; Shift w/zeros fill
		mov	ax,data_254[bx]
		mov	[bp-6],ax
		mov	ax,word ptr ds:[0A94Eh]
		cmp	ax,2
		jl	loc_749			; Jump if <
		mov	word ptr ds:data_467e,0
loc_749:
		jmp	loc_768

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_750:
		mov	si,ds:data_454e
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_257[si]
		mov	[bp-4],ax
		mov	bx,data_258[si]
		shl	bx,1			; Shift w/zeros fill
		mov	ax,data_254[bx]
		mov	[bp-6],ax
		mov	ax,ds:data_454e
		cmp	ax,0Ch
		jne	loc_751			; Jump if not equal
		mov	word ptr ds:data_467e,0
loc_751:
		jmp	loc_768

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_752:
		mov	si,word ptr ds:[0A94Eh]
		shl	si,1			; Shift w/zeros fill
		mov	ax,data_265[si]
		mov	[bp-4],ax
		mov	bx,data_266[si]
		shl	bx,1			; Shift w/zeros fill
		mov	ax,data_254[bx]
		mov	[bp-6],ax
		mov	ax,word ptr ds:[0A94Eh]
		cmp	ax,3
		jl	loc_753			; Jump if <
		mov	word ptr ds:data_467e,0
loc_753:
		jmp	loc_768

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_754:
		cmp	word ptr ds:data_391e,0
		je	loc_757			; Jump if equal
		mov	word ptr [bp-2],0
		jmp	short loc_756
loc_755:
		inc	word ptr [bp-2]
loc_756:
		mov	ax,[bp-2]
		cmp	ax,18h
		jge	loc_757			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	si,data_260[si]
		shl	si,1			; Shift w/zeros fill
		push	data_254[si]		; PARAMETER_2
		mov	bx,[bp-2]
		shl	bx,1			; Shift w/zeros fill
		push	data_259[bx]		; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_755
loc_757:
		mov	word ptr ds:data_467e,0
		retn

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_758:
		cmp	word ptr ds:data_391e,0
		je	loc_764			; Jump if equal
		mov	word ptr [bp-2],0
		jmp	short loc_760
loc_759:
		inc	word ptr [bp-2]
loc_760:
		mov	ax,[bp-2]
		cmp	ax,0Ch
		jge	loc_761			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	si,data_268[si]
		shl	si,1			; Shift w/zeros fill
		push	data_254[si]		; PARAMETER_2
		mov	bx,[bp-2]
		shl	bx,1			; Shift w/zeros fill
		push	data_267[bx]		; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_759
loc_761:
		mov	ax,data_312
		mov	cx,2
		cwd				; Word to double word
		idiv	cx			; ax,dx rem=dx:ax/reg
		add	ax,4
		mov	[bp-4],ax
		mov	word ptr [bp-2],1
		jmp	short loc_763
loc_762:
		inc	word ptr [bp-2]
loc_763:
		mov	ax,[bp-2]
		cmp	ax,37h
		jge	loc_764			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		push	data_254[si]		; PARAMETER_2
		push	word ptr [bp-4]		; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_762
loc_764:
		mov	word ptr ds:data_467e,0
		retn

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_765:
		mov	ax,139Ch
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,0FAh
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		mov	word ptr ds:data_467e,0
		retn
		adc	byte ptr ds:[3E27h],bh
;*		jnz	loc_770			;*Jump if not zero
		db	 75h, 3Eh		;  Fixup - byte match
		mov	al,ds:data_395e
			                        ; now data because: invalid prefix
		db	 3Eh,0F6h, 3Eh
data_138	dw	offset loc_754
data_139	dw	offset loc_765
data_140	dw	offset loc_752
data_141	dw	offset loc_758
loc_766:
		cmp	ax,0Ah
		jae	loc_767			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[4018h][bx]	;*10 entries
loc_767:
		jmp	short loc_765
loc_768:
		cmp	word ptr ds:data_391e,0
		jne	loc_769			; Jump if not equal
		mov	word ptr [bp-6],0
loc_769:
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		je	loc_772			; Jump if equal
		push	word ptr [bp-6]		; PARAMETER_2
		push	word ptr [bp-4]		; PARAMETER_1
		call	sub_117
		add	sp,4
		mov	ax,ds:data_432e
		sub	ax,[bp-4]
		mov	[bp-2],ax
		cmp	ax,0
		jle	loc_771			; Jump if < or =
		mov	ax,0
		push	ax			; PARAMETER_2
		push	word ptr [bp-2]		; PARAMETER_1
		call	sub_117
		add	sp,4
loc_771:
		jmp	short loc_773
loc_772:
		push	word ptr [bp-6]		; PARAMETER_2
		mov	ax,[bp-4]
		mov	cx,2
		cwd				; Word to double word
		idiv	cx			; ax,dx rem=dx:ax/reg
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
loc_773:
		inc	word ptr ds:[0A94Eh]
		retn
sub_51		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_52		proc	near
		mov	ax,0
		call	sub_153
		mov	di,0
		jmp	short loc_775
loc_774:
		inc	di
loc_775:
		cmp	di,10h
		jge	loc_781			; Jump if > or =
		mov	si,0
		jmp	short loc_777
loc_776:
		inc	si
loc_777:
		cmp	si,1Ah
		jge	loc_780			; Jump if > or =
		mov	bx,si
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,di
		cmp	byte ptr ds:data_406e[bx],6
		jne	loc_779			; Jump if not equal
		mov	byte ptr ds:data_406e[bx],3
		cmp	byte ptr ds:data_438e[bx],8
		je	loc_778			; Jump if equal
		mov	byte ptr ds:data_438e[bx],3
loc_778:
		mov	ax,7BD1h
		push	ax
		push	di
		push	si
		call	sub_47
		add	sp,6
loc_779:
		jmp	short loc_776
loc_780:
		jmp	short loc_774
loc_781:
		mov	word ptr ds:data_462e,0
		retn
sub_52		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_53		proc	near
		mov	ax,0
		call	sub_153
		mov	word ptr ds:data_399e,0
		call	sub_104
		call	sub_105
		and	ax,3
		cmp	ax,3
		jne	loc_ret_782		; Jump if not equal
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,19h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		call	sub_105
		test	ax,3
		jnz	loc_ret_782		; Jump if not zero
		mov	word ptr ds:data_399e,1

loc_ret_782:
		retn
sub_53		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_54		proc	near
		mov	ax,0FFF8h
		call	sub_153
		mov	ax,data_312
		mov	cx,2
		cwd				; Word to double word
		idiv	cx			; ax,dx rem=dx:ax/reg
		mov	[bp-8],ax
loc_783:
		mov	word ptr [bp-6],0
loc_784:
		call	sub_96
		test	ax,ax
		jz	loc_785			; Jump if zero
		jmp	loc_803
loc_785:
		call	sub_20
		mov	[bp-6],ax
		test	ax,ax
		jz	loc_786			; Jump if zero
		jmp	loc_803
loc_786:
		push	word ptr ds:data_435e	; PARAMETER_2
		mov	ax,7B8Bh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		mov	word ptr [bp-2],0
		jmp	short loc_788
loc_787:
		inc	word ptr [bp-2]
loc_788:
		mov	ax,[bp-2]
		cmp	ax,[bp-8]
		jge	loc_794			; Jump if > or =
		call	sub_96
		test	ax,ax
		jnz	loc_792			; Jump if not zero
		call	sub_20
		mov	[bp-6],ax
		test	ax,ax
		jnz	loc_792			; Jump if not zero
		mov	word ptr [bp-4],0
		jmp	short loc_790
loc_789:
		inc	word ptr [bp-4]
loc_790:
		mov	ax,[bp-4]
		cmp	ax,190h
		jge	loc_791			; Jump if > or =
		jmp	short loc_789
loc_791:
		jmp	short loc_793
loc_792:
		jmp	short loc_803
loc_793:
		jmp	short loc_787
loc_794:
		push	word ptr ds:data_435e	; PARAMETER_2
		mov	ax,79A1h
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		mov	word ptr [bp-2],0
		jmp	short loc_796
loc_795:
		inc	word ptr [bp-2]
loc_796:
		mov	ax,[bp-2]
		cmp	ax,[bp-8]
		jge	loc_802			; Jump if > or =
		call	sub_96
		test	ax,ax
		jnz	loc_800			; Jump if not zero
		call	sub_20
		mov	[bp-6],ax
		test	ax,ax
		jnz	loc_800			; Jump if not zero
		mov	word ptr [bp-4],0
		jmp	short loc_798
loc_797:
		inc	word ptr [bp-4]
loc_798:
		mov	ax,[bp-4]
		cmp	ax,190h
		jge	loc_799			; Jump if > or =
		jmp	short loc_797
loc_799:
		jmp	short loc_801
loc_800:
		jmp	short loc_803
loc_801:
		jmp	short loc_795
loc_802:
		jmp	loc_784
loc_803:
		push	word ptr ds:data_435e	; PARAMETER_2
		mov	ax,79A1h
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		call	sub_96
		test	ax,ax
		jz	loc_804			; Jump if zero
		call	sub_20
		mov	[bp-6],ax
loc_804:
		mov	ax,[bp-6]
		cmp	ax,1Bh
		jne	loc_806			; Jump if not equal
		call	sub_19
		mov	ds:data_464e,ax
		test	ax,ax
		jnz	loc_ret_805		; Jump if not zero
		jmp	loc_783

loc_ret_805:
		retn
loc_806:
		mov	ax,0
		retn
sub_54		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_55		proc	near
		mov	ax,0
		call	sub_153
		mov	di,ds:data_426e
		inc	di
		mov	ax,[bp+4]
		cmp	ax,6
		jne	loc_809			; Jump if not equal
		mov	si,ds:data_425e
		dec	si
		mov	ax,ds:data_426e
		cmp	ax,0Fh
		jge	loc_808			; Jump if > or =
		mov	ax,ds:data_425e
		cmp	ax,0
		jle	loc_808			; Jump if < or =
		mov	bx,si
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		mov	ax,di
		dec	di
		add	bx,ax
		cmp	byte ptr ds:data_438e[bx],1
		jne	loc_808			; Jump if not equal
		mov	bx,si
		shl	bx,cl			; Shift w/zeros fill
		add	bx,di
		cmp	byte ptr ds:data_438e[bx],0
		je	loc_807			; Jump if equal
		cmp	byte ptr ds:data_438e[bx],6
		jne	loc_808			; Jump if not equal
loc_807:
		cmp	byte ptr ds:data_406e[bx],7
		je	loc_808			; Jump if equal
		mov	ax,1
		retn
loc_808:
		jmp	short loc_811
loc_809:
		mov	ax,[bp+4]
		cmp	ax,7
		jne	loc_811			; Jump if not equal
		mov	si,ds:data_425e
		inc	si
		mov	ax,ds:data_426e
		cmp	ax,0Fh
		jge	loc_811			; Jump if > or =
		mov	ax,ds:data_425e
		cmp	ax,19h
		jge	loc_811			; Jump if > or =
		mov	bx,si
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		mov	ax,di
		dec	di
		add	bx,ax
		cmp	byte ptr ds:data_438e[bx],1
		jne	loc_811			; Jump if not equal
		mov	bx,si
		shl	bx,cl			; Shift w/zeros fill
		add	bx,di
		cmp	byte ptr ds:data_438e[bx],0
		je	loc_810			; Jump if equal
		cmp	byte ptr ds:data_438e[bx],6
		jne	loc_811			; Jump if not equal
loc_810:
		cmp	byte ptr ds:data_406e[bx],7
		je	loc_811			; Jump if equal
		mov	ax,1
		retn
loc_811:
		mov	ax,0
		retn
sub_55		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_56		proc	near
;         Simulation segment register change due to sub entry point   ES now B800
		mov	ax,0
		call	sub_153
		mov	si,[bp+4]
		shl	si,1			; Shift w/zeros fill
		mov	si,ds:data_427e[si]
		mov	bx,[bp+4]
		shl	bx,1			; Shift w/zeros fill
		mov	di,ds:data_428e[bx]
		mov	ax,ds:data_449e[bx]
		cmp	ax,0
		jge	loc_ret_813		; Jump if > or =
		inc	word ptr ds:data_449e[bx]
		jnz	loc_ret_813		; Jump if not zero
		mov	bx,si
		mov	cx,4
		shl	bx,cl			; Shift w/zeros fill
		add	bx,di
		cmp	byte ptr ds:data_406e[bx],0
		jne	loc_812			; Jump if not equal
		mov	byte ptr ds:data_406e[bx],7
		mov	ax,7C5Dh
		push	ax
		push	di
		push	si
		call	sub_47
		add	sp,6
		jmp	short loc_ret_813
loc_812:
		mov	bx,[bp+4]
		shl	bx,1			; Shift w/zeros fill
		dec	word ptr ds:data_449e[bx]

loc_ret_813:
		retn
sub_56		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_57		proc	near
;         Simulation segment register change due to sub entry point   ES now 3BA9
		mov	ax,0
		call	sub_153
		mov	ax,ds:data_389e
		inc	ax
		push	ax
		push	word ptr ds:data_452e
		mov	ax,96ABh
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,8
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,96D6h
		push	ax
		call	sub_99
		add	sp,6
		cmp	word ptr ds:data_399e,0
		je	loc_814			; Jump if equal
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,96FFh
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_815
loc_814:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,9709h
		push	ax
		call	sub_99
		add	sp,6
loc_815:
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_818			; Jump if not equal
		cmp	word ptr ds:data_399e,0
		je	loc_816			; Jump if equal
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9713h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_817
loc_816:
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9722h
		push	ax
		call	sub_99
		add	sp,6
loc_817:
		jmp	short loc_ret_819
loc_818:
		mov	ax,ds:data_474e
		inc	ax
		push	ax
		mov	ax,9731h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6

loc_ret_819:
		retn
sub_57		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_58		proc	near
		mov	ax,0FFFAh
		call	sub_153
		call	sub_61
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,9742h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1Fh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9769h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1D11h
		push	ax			; PARAMETER_2
		mov	ax,7CA3h
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		mov	word ptr [bp-6],3D68h
		mov	word ptr [bp-2],1
		jmp	short loc_821
loc_820:
		inc	word ptr [bp-2]
loc_821:
		mov	ax,[bp-2]
		cmp	ax,0Ah
		jl	$+5			; Jump if <
		jmpn	loc_ret_824
		jmp	short loc_822
		mov	word ptr [bp-4],7BAEh
		jmp	short loc_823
		mov	word ptr [bp-4],7B45h
		jmp	short loc_823
		mov	word ptr [bp-4],7BD1h
		jmp	short loc_823
		mov	word ptr [bp-4],7BF4h
		jmp	short loc_823
		mov	word ptr [bp-4],7C17h
		jmp	short loc_823
		mov	word ptr [bp-4],7C3Ah
		jmp	short loc_823
		mov	word ptr [bp-4],7C5Dh
		jmp	short loc_823
		mov	word ptr [bp-4],7C80h
		jmp	short loc_823
		mov	word ptr [bp-4],79A1h
		jmp	short loc_823
		mov	ax,word ptr ds:[4144h]
		inc	sp
		dec	ax
		inc	sp
		dec	di
		inc	sp
		push	si
		inc	sp
		pop	bp
		inc	sp
			                        ; now data because: invalid for uP
		db	'dDkDrDyD'
loc_822:
		cmp	ax,0Ah
		jae	loc_823			; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[4480h][bx]	;*
loc_823:
		push	word ptr [bp-6]		; PARAMETER_2
		push	word ptr [bp-4]		; PARAMETER_1
		call	sub_79
		add	sp,4
		add	word ptr [bp-6],6
		jmpn	loc_820

loc_ret_824:
		retn
sub_58		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_59		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,1Ah
		push	ax
		mov	ax,9772h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,ds:data_388e
		inc	ax
		push	ax
		mov	ax,979Ch
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		cmp	word ptr ds:data_384e,0
		je	loc_825			; Jump if equal
		mov	ax,1Dh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,97BBh
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_ret_826
loc_825:
		mov	ax,1Dh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,97C7h
		push	ax
		call	sub_99
		add	sp,6

loc_ret_826:
		retn
sub_59		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_60		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	word ptr [bp-2],0
		jmp	short loc_828
loc_827:
		inc	word ptr [bp-2]
loc_828:
		mov	ax,[bp-2]
		cmp	ax,28h
		jge	loc_829			; Jump if > or =
		mov	si,ax
		mov	byte ptr ds:data_403e[si],20h	; ' '
		jmp	short loc_827
loc_829:
		mov	byte ptr ds:data_404e,0
		mov	ax,0
		push	ax
		push	word ptr [bp+4]
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		retn
sub_60		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_61		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,17h
		push	ax
		call	sub_60
		pop	cx
		mov	ax,18h
		push	ax
		call	sub_60
		pop	cx
		retn
sub_61		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_62		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,data_327
		cmp	ax,1
		je	loc_830			; Jump if equal
		mov	ax,0
		push	ax
		mov	ax,4
		push	ax
		call	sub_82
		add	sp,4
		jmp	short loc_831
loc_830:
		call	sub_137
loc_831:
		mov	ax,0Fh
		push	ax
		mov	ax,0B00h
		push	ax
		call	sub_82
		add	sp,4
		mov	ax,100h
		push	ax
		mov	ax,0B00h
		push	ax
		call	sub_82
		add	sp,4
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,0FAh
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		mov	byte ptr ds:data_379e,0Eh
		mov	ax,9
		push	ax
		mov	ax,0
		push	ax
		mov	ax,97D3h
		push	ax
		call	sub_99
		add	sp,6
		mov	byte ptr ds:data_379e,0Dh
		cmp	word ptr ds:data_479e,0
		je	loc_832			; Jump if equal
		mov	ax,0Fh
		push	ax
		mov	ax,1
		push	ax
		mov	ax,97EBh
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_833
loc_832:
		mov	ax,0Fh
		push	ax
		mov	ax,1
		push	ax
		mov	ax,0E8C8h
		push	ax
		call	sub_99
		add	sp,6
loc_833:
		mov	byte ptr ds:data_379e,0Eh
		mov	ax,0Ah
		push	ax
		mov	ax,2
		push	ax
		mov	ax,97F7h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0Ah
		push	ax
		mov	ax,3
		push	ax
		mov	ax,980Dh
		push	ax
		call	sub_99
		add	sp,6
		mov	byte ptr ds:data_379e,0Dh
		mov	word ptr [bp-2],0
		jmp	short loc_835
loc_834:
		inc	word ptr [bp-2]
loc_835:
		mov	ax,[bp-2]
		cmp	ax,0Ah
		jge	loc_836			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		push	word ptr ds:data_484e[si]
		push	word ptr ds:data_483e[si]
		push	word ptr ds:data_482e[si]
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		add	ax,0E8AAh
		push	ax
		mov	ax,[bp-2]
		inc	ax
		push	ax
		mov	ax,9825h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,0Eh
		mov	ax,6
		push	ax
		mov	ax,[bp-2]
		shl	ax,1			; Shift w/zeros fill
		add	ax,4
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_834
loc_836:
		mov	byte ptr ds:data_379e,0Fh
		retn
sub_62		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_63		proc	near
;         Simulation segment register change due to sub entry point   ES now 0000
		mov	ax,0FFF7h
		call	sub_153
		call	sub_65
		test	ax,ax
		jnz	loc_837			; Jump if not zero
		retn
loc_837:
		mov	word ptr [bp-2],0
		jmp	short loc_839
loc_838:
;         Simulation segment register change due to jump to label     ES now 3BA9
		inc	word ptr [bp-2]
loc_839:
		mov	ax,[bp-2]
		cmp	ax,0Ah
		jge	loc_841			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	ax,[bp+4]
		cmp	ax,ds:data_482e[si]
		jg	loc_841			; Jump if >
		cmp	ax,ds:data_482e[si]
		jne	loc_840			; Jump if not equal
		mov	ax,[bp+6]
		cmp	ax,ds:data_483e[si]
		jg	loc_841			; Jump if >
		cmp	ax,ds:data_483e[si]
		jne	loc_840			; Jump if not equal
		mov	ax,[bp+8]
		cmp	ax,ds:data_484e[si]
		jg	loc_841			; Jump if >
loc_840:
		jmp	short loc_838
loc_841:
		mov	ax,[bp-2]
		cmp	ax,0Ah
		jl	loc_842			; Jump if <
		mov	ax,0
		retn
loc_842:
		mov	word ptr [bp-4],9
		mov	word ptr [bp-6],8
		jmp	short loc_844
loc_843:
		dec	word ptr [bp-4]
		dec	word ptr [bp-6]
loc_844:
		mov	ax,[bp-4]
		cmp	ax,[bp-2]
		jle	loc_848			; Jump if < or =
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_483e[si]
		mov	bx,[bp-4]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_483e[bx],ax
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_484e[si]
		mov	bx,[bp-4]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_484e[bx],ax
		mov	si,[bp-6]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_482e[si]
		mov	bx,[bp-4]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_482e[bx],ax
		mov	word ptr [bp-8],0
		jmp	short loc_846
loc_845:
		inc	word ptr [bp-8]
loc_846:
		mov	ax,[bp-8]
		cmp	ax,3
		jge	loc_847			; Jump if > or =
		push	ax
		mov	ax,[bp-6]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	si,ax
		pop	ax
		add	si,ax
		mov	al,ds:data_485e[si]
		push	ax
		mov	ax,[bp-4]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	bx,ax
		add	bx,[bp-8]
		pop	ax
		mov	ds:data_485e[bx],al
		jmp	short loc_845
loc_847:
		jmp	short loc_843
loc_848:
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,[bp+6]
		mov	ds:data_483e[si],ax
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,[bp+8]
		mov	ds:data_484e[si],ax
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,[bp+4]
		mov	ds:data_482e[si],ax
		mov	word ptr [bp-8],0
		jmp	short loc_850
loc_849:
		inc	word ptr [bp-8]
loc_850:
		mov	ax,[bp-8]
		cmp	ax,3
		jge	loc_851			; Jump if > or =
		push	ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	si,ax
		pop	ax
		add	si,ax
		mov	byte ptr ds:data_485e[si],20h	; ' '
		jmp	short loc_849
loc_851:
		call	sub_62
		mov	ax,2
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9844h
		push	ax
		call	sub_99
		add	sp,6
		mov	byte ptr ds:data_379e,9
		mov	ax,0Dh
		push	ax
		mov	ax,[bp-2]
		shl	ax,1			; Shift w/zeros fill
		add	ax,4
		push	ax
		mov	ax,3
		push	ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		add	ax,0E8AAh
		push	ax
		call	sub_76
		add	sp,8
		call	sub_66
		mov	byte ptr ds:data_379e,0Fh
		call	sub_97
		retn
sub_63		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_64		proc	near
		mov	ax,0FFFBh
		call	sub_153
		call	sub_65
		test	ax,ax
		jnz	loc_852			; Jump if not zero
		retn
loc_852:
		call	sub_62
		mov	ax,1
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,986Ah
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	[bp-5],al
		cmp	al,59h			; 'Y'
		je	loc_853			; Jump if equal
		cmp	al,79h			; 'y'
		jne	loc_ret_860		; Jump if not equal
loc_853:
		mov	word ptr [bp-2],0
		jmp	short loc_855
loc_854:
		inc	word ptr [bp-2]
loc_855:
		mov	ax,[bp-2]
		cmp	ax,0Ah
		jge	loc_859			; Jump if > or =
		mov	word ptr [bp-4],0
		jmp	short loc_857
loc_856:
		inc	word ptr [bp-4]
loc_857:
		mov	ax,[bp-4]
		cmp	ax,3
		jge	loc_858			; Jump if > or =
		push	ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	si,ax
		pop	ax
		add	si,ax
		mov	byte ptr ds:data_485e[si],20h	; ' '
		jmp	short loc_856
loc_858:
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_482e[si],0
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_483e[si],0
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	word ptr ds:data_484e[si],0
		jmp	short loc_854
loc_859:
		call	sub_66

loc_ret_860:
		retn
sub_64		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_65		proc	near
		mov	ax,0FFFAh
		call	sub_153
		mov	ax,1
		push	ax
		mov	ax,9Dh
		push	ax
		mov	ax,0E366h
		push	ax
		mov	ax,2
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jz	loc_861			; Jump if zero
		call	sub_35
		test	ax,ax
		jnz	loc_862			; Jump if not zero
loc_861:
		mov	ax,0
		retn
loc_862:
		mov	word ptr [bp-6],0E366h
		mov	word ptr [bp-2],0
		jmp	short loc_864
loc_863:
		inc	word ptr [bp-2]
loc_864:
		mov	ax,[bp-2]
		cmp	ax,0Ah
		jge	loc_868			; Jump if > or =
		mov	si,[bp-6]
		add	word ptr [bp-6],2
		mov	ax,[si]
		mov	bx,[bp-2]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_482e[bx],ax
		mov	si,[bp-6]
		add	word ptr [bp-6],2
		mov	ax,[si]
		mov	bx,[bp-2]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_483e[bx],ax
		mov	si,[bp-6]
		add	word ptr [bp-6],2
		mov	ax,[si]
		mov	bx,[bp-2]
		shl	bx,1			; Shift w/zeros fill
		mov	ds:data_484e[bx],ax
		mov	word ptr [bp-4],0
		jmp	short loc_866
loc_865:
		inc	word ptr [bp-4]
loc_866:
		mov	ax,[bp-4]
		cmp	ax,3
		jge	loc_867			; Jump if > or =
		push	ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	si,ax
		pop	ax
		add	si,ax
		mov	al,ds:data_409e[si]
		push	ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	bx,ax
		add	bx,[bp-4]
		pop	ax
		mov	ds:data_485e[bx],al
		jmp	short loc_865
loc_867:
		jmp	short loc_863
loc_868:
		mov	al,ds:data_418e
		cbw				; Convrt byte to word
		mov	ds:data_479e,ax
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_869			; Jump if not equal
		mov	al,ds:data_414e
		cbw				; Convrt byte to word
		mov	ds:data_471e,ax
		mov	al,ds:data_415e
		cbw				; Convrt byte to word
		mov	ds:data_470e,ax
		mov	al,ds:data_416e
		cbw				; Convrt byte to word
		mov	ds:data_472e,ax
		mov	al,ds:data_417e
		cbw				; Convrt byte to word
		mov	ds:data_473e,ax
		mov	word ptr [bp-2],86h
		jmp	short loc_870
loc_869:
		mov	al,ds:data_410e
		cbw				; Convrt byte to word
		mov	ds:data_471e,ax
		mov	al,ds:data_411e
		cbw				; Convrt byte to word
		mov	ds:data_470e,ax
		mov	al,ds:data_412e
		cbw				; Convrt byte to word
		mov	ds:data_472e,ax
		mov	al,ds:data_413e
		cbw				; Convrt byte to word
		mov	ds:data_473e,ax
		mov	word ptr [bp-2],80h
loc_870:
		mov	word ptr [bp-4],0
		jmp	short loc_872
loc_871:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_872:
		mov	ax,[bp-4]
		cmp	ax,6
		jge	loc_873			; Jump if > or =
		mov	si,[bp-2]
		mov	al,ds:data_408e[si]
		mov	bx,[bp-4]
		mov	ds:data_477e[bx],al
		jmp	short loc_871
loc_873:
		mov	word ptr [bp-2],78h
		mov	word ptr [bp-4],0
		jmp	short loc_875
loc_874:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_875:
		mov	ax,[bp-4]
		cmp	ax,14h
		jge	loc_876			; Jump if > or =
		mov	si,[bp-2]
		mov	al,ds:data_408e[si]
		mov	bx,[bp-4]
		mov	ds:data_488e[bx],al
		jmp	short loc_874
loc_876:
		mov	word ptr [bp-2],64h
		mov	word ptr [bp-4],0
		jmp	short loc_878
loc_877:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_878:
		mov	ax,[bp-4]
		cmp	ax,0Bh
		jge	loc_879			; Jump if > or =
		mov	si,[bp-2]
		mov	al,ds:data_408e[si]
		mov	bx,[bp-4]
		mov	ds:data_486e[bx],al
		jmp	short loc_877
loc_879:
		mov	byte ptr ds:data_487e,0
		mov	ax,1
		retn
sub_65		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_66		proc	near
		mov	ax,0FFFAh
		call	sub_153
		mov	ax,1
		push	ax
		mov	ax,9Dh
		push	ax
		mov	ax,0E366h
		push	ax
		mov	ax,2
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_880			; Jump if not zero
		mov	ax,0
		retn
loc_880:
		call	sub_35
		test	ax,ax
		jnz	loc_881			; Jump if not zero
		mov	ax,0
		retn
loc_881:
		mov	word ptr [bp-6],0E366h
		mov	word ptr [bp-2],0
		jmp	short loc_883
loc_882:
		inc	word ptr [bp-2]
loc_883:
		mov	ax,[bp-2]
		cmp	ax,0Ah
		jge	loc_887			; Jump if > or =
		shl	ax,1			; Shift w/zeros fill
		mov	si,ax
		mov	ax,ds:data_482e[si]
		mov	bx,[bp-6]
		add	word ptr [bp-6],2
		mov	[bx],ax
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_483e[si]
		mov	bx,[bp-6]
		add	word ptr [bp-6],2
		mov	[bx],ax
		mov	si,[bp-2]
		shl	si,1			; Shift w/zeros fill
		mov	ax,ds:data_484e[si]
		mov	bx,[bp-6]
		add	word ptr [bp-6],2
		mov	[bx],ax
		mov	word ptr [bp-4],0
		jmp	short loc_885
loc_884:
		inc	word ptr [bp-4]
loc_885:
		mov	ax,[bp-4]
		cmp	ax,3
		jge	loc_886			; Jump if > or =
		push	ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	si,ax
		pop	ax
		add	si,ax
		mov	al,ds:data_485e[si]
		push	ax
		mov	ax,[bp-2]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		mov	bx,ax
		add	bx,[bp-4]
		pop	ax
		mov	ds:data_409e[bx],al
		jmp	short loc_884
loc_886:
		jmp	short loc_882
loc_887:
		mov	word ptr [bp-2],8Ch
		jmp	short loc_889
loc_888:
		inc	word ptr [bp-2]
loc_889:
		mov	ax,[bp-2]
		cmp	ax,1F5h
		jge	loc_890			; Jump if > or =
		mov	si,ax
		mov	byte ptr ds:data_408e[si],0
		jmp	short loc_888
loc_890:
		mov	ax,ds:data_479e
		mov	ds:data_418e,al
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_891			; Jump if not equal
		mov	ax,ds:data_471e
		mov	ds:data_414e,al
		mov	ax,ds:data_470e
		mov	ds:data_415e,al
		mov	ax,ds:data_472e
		mov	ds:data_416e,al
		mov	ax,ds:data_473e
		mov	ds:data_417e,al
		mov	word ptr [bp-2],86h
		jmp	short loc_892
loc_891:
		mov	ax,ds:data_471e
		mov	ds:data_410e,al
		mov	ax,ds:data_470e
		mov	ds:data_411e,al
		mov	ax,ds:data_472e
		mov	ds:data_412e,al
		mov	ax,ds:data_473e
		mov	ds:data_413e,al
		mov	word ptr [bp-2],80h
loc_892:
		mov	word ptr [bp-4],0
		jmp	short loc_894
loc_893:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_894:
		mov	ax,[bp-4]
		cmp	ax,6
		jge	loc_895			; Jump if > or =
		mov	si,ax
		mov	al,ds:data_477e[si]
		mov	bx,[bp-2]
		mov	ds:data_408e[bx],al
		jmp	short loc_893
loc_895:
		mov	word ptr [bp-2],78h
		mov	word ptr [bp-4],0
		jmp	short loc_897
loc_896:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_897:
		mov	ax,[bp-4]
		cmp	ax,14h
		jge	loc_898			; Jump if > or =
		mov	si,[bp-2]
		mov	al,ds:data_408e[si]
		mov	bx,[bp-4]
		mov	ds:data_488e[bx],al
		jmp	short loc_896
loc_898:
		mov	word ptr [bp-4],0
		mov	word ptr [bp-2],1F5h
		jmp	short loc_900
loc_899:
		inc	word ptr [bp-4]
		inc	word ptr [bp-2]
loc_900:
		mov	ax,[bp-2]
		cmp	ax,200h
		jge	loc_901			; Jump if > or =
		mov	si,[bp-4]
		mov	al,byte ptr data_236[si]	; ('LodeRunner')
		mov	bx,[bp-2]
		mov	ds:data_408e[bx],al
		jmp	short loc_899
loc_901:
		mov	ax,1
		push	ax
		mov	ax,9Dh
		push	ax
		mov	ax,0E366h
		push	ax
		mov	ax,3
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_902			; Jump if not zero
		mov	ax,0
		retn
loc_902:
		mov	ax,1
		retn
sub_66		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_67		proc	near
		mov	ax,0FFEEh
		call	sub_153
		call	sub_97
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,988Fh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_94
		cmp	ax,15h
		je	loc_903			; Jump if equal
		retn
loc_903:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,98B8h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,98E1h
		push	ax
		call	sub_99
		add	sp,6
loc_904:
		call	sub_108
		mov	[bp-2],ax
		and	ax,0FFh
		mov	[bp-6],ax
		mov	ax,[bp-2]
		and	ax,0FF00h
		xchg	ah,al
		sub	ah,ah
		mov	[bp-8],ax
		call	sub_105
		mov	[bp-4],ax
		call	sub_96
		test	ax,ax
		jz	loc_905			; Jump if zero
		call	sub_93
		cmp	ax,1Bh
		je	loc_906			; Jump if equal
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_905:
		mov	ax,[bp-4]
		and	ax,30h
		cmp	ax,30h
		je	loc_904			; Jump if equal
loc_906:
		mov	ax,[bp-6]
		mov	[bp-0Ch],ax
		mov	ax,[bp-8]
		mov	[bp-0Eh],ax
		mov	word ptr [bp-4],0Ah
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_907			; Jump if not equal
		mov	word ptr [bp-4],28h
loc_907:
		mov	ax,[bp-0Ch]
		cwd				; Word to double word
		idiv	word ptr [bp-4]		; ax,dxrem=dx:ax/data
		add	ax,2
		mov	[bp-10h],ax
		mov	ax,[bp-0Eh]
		cwd				; Word to double word
		idiv	word ptr [bp-4]		; ax,dxrem=dx:ax/data
		add	ax,2
		mov	[bp-12h],ax
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,990Ah
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9933h
		push	ax
		call	sub_99
		add	sp,6
loc_908:
		call	sub_96
		test	ax,ax
		jz	loc_909			; Jump if zero
		jmp	loc_920
loc_909:
		call	sub_108
		mov	[bp-2],ax
		and	ax,0FFh
		mov	[bp-6],ax
		mov	ax,[bp-2]
		and	ax,0FF00h
		xchg	ah,al
		sub	ah,ah
		mov	[bp-8],ax
		call	sub_105
		mov	[bp-4],ax
		and	ax,30h
		cmp	ax,30h
		je	loc_913			; Jump if equal
		mov	ax,[bp-0Ch]
		sub	ax,[bp-10h]
		mov	cx,[bp-6]
		cmp	cx,ax
		jge	loc_910			; Jump if > or =
		mov	ds:data_471e,cx
loc_910:
		mov	ax,[bp-0Ch]
		add	ax,[bp-10h]
		mov	cx,[bp-6]
		cmp	cx,ax
		jle	loc_911			; Jump if < or =
		mov	ds:data_470e,cx
loc_911:
		mov	ax,[bp-0Eh]
		sub	ax,[bp-12h]
		mov	cx,[bp-8]
		cmp	cx,ax
		jge	loc_912			; Jump if > or =
		mov	ds:data_472e,cx
loc_912:
		mov	ax,[bp-0Eh]
		add	ax,[bp-12h]
		mov	cx,[bp-8]
		cmp	cx,ax
		jle	loc_913			; Jump if < or =
		mov	ds:data_473e,cx
loc_913:
		mov	ax,[bp-6]
		cmp	ax,ds:data_471e
		jg	loc_914			; Jump if >
		mov	ax,1Dh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,995Ch
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_916
loc_914:
		mov	ax,[bp-6]
		cmp	ax,ds:data_470e
		jl	loc_915			; Jump if <
		mov	ax,1Dh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9962h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_916
loc_915:
		mov	ax,1Dh
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9968h
		push	ax
		call	sub_99
		add	sp,6
loc_916:
		mov	ax,[bp-8]
		cmp	ax,ds:data_472e
		jg	loc_917			; Jump if >
		mov	ax,23h
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,996Eh
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_919
loc_917:
		mov	ax,[bp-8]
		cmp	ax,ds:data_473e
		jl	loc_918			; Jump if <
		mov	ax,23h
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9973h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_919
loc_918:
		mov	ax,23h
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,9978h
		push	ax
		call	sub_99
		add	sp,6
loc_919:
		jmp	loc_908
loc_920:
		call	sub_93
		mov	[bp-0Ah],ax
		cmp	ax,1Bh
		je	loc_921			; Jump if equal
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_921:
		call	sub_97
		mov	ax,[bp-0Ah]
		cmp	ax,1Bh
		je	loc_922			; Jump if equal
		jmp	loc_908
loc_922:
		call	sub_66
		retn
sub_67		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_68		proc	near
		mov	ax,0FFECh
		call	sub_153
		cmp	data_298,0
		je	loc_923			; Jump if equal
		mov	ax,1
		push	ax			; PARAMETER_2
		mov	ax,997Dh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		jmp	short loc_924
loc_923:
		mov	ax,0Eh
		push	ax			; PARAMETER_2
		mov	ax,997Dh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
loc_924:
		mov	word ptr [bp-2],0
		jmp	short loc_926
loc_925:
		inc	word ptr [bp-2]
loc_926:
		mov	ax,[bp-2]
		cmp	ax,31h
		jl	loc_927			; Jump if <
		jmp	loc_934
loc_927:
		mov	word ptr [bp-4],0
		jmp	short loc_929
loc_928:
		inc	word ptr [bp-4]
loc_929:
		mov	ax,[bp-4]
		cmp	ax,0Dh
		jge	loc_930			; Jump if > or =
		push	ax
		mov	ax,[bp-2]
		mov	cx,0Dh
		imul	cx			; dx:ax = reg * ax
		mov	cx,ax
		add	cx,0Dh
		pop	ax
		sub	cx,ax
		mov	ax,cx
		inc	ax
		mov	[bp-6],ax
		mov	si,ax
		mov	al,byte ptr data_270+24Ah[si]	; ('1')
		mov	[bp-14h],al
		cbw				; Convrt byte to word
		and	ax,0Fh
		mov	cx,4
		shl	ax,cl			; Shift w/zeros fill
		push	ax
		mov	al,[bp-14h]
		cbw				; Convrt byte to word
		mov	dx,ax
		and	dx,0F0h
		sar	dx,cl			; Shift w/sign fill
		pop	ax
		add	ax,dx
		mov	di,[bp-4]
		mov	[bp+di-13h],al
		jmp	short loc_928
loc_930:
		mov	word ptr [bp-4],0
		jmp	short loc_932
loc_931:
		inc	word ptr [bp-4]
loc_932:
		mov	ax,[bp-4]
		cmp	ax,0Dh
		jge	loc_933			; Jump if > or =
		mov	si,ax
		mov	al,[bp+si-13h]
		push	ax
		mov	ax,[bp-2]
		mov	cx,0Dh
		imul	cx			; dx:ax = reg * ax
		mov	cx,ax
		add	cx,si
		mov	bx,cx
		pop	ax
		mov	data_272[bx],al
		jmp	short loc_931
loc_933:
		jmp	loc_925
loc_934:
		cmp	data_298,0
		je	loc_935			; Jump if equal
		mov	ax,0Eh
		push	ax			; PARAMETER_2
		mov	ax,997Dh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		jmp	short loc_936
loc_935:
		mov	ax,1
		push	ax			; PARAMETER_2
		mov	ax,997Dh
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
loc_936:
		mov	ax,1
		cmp	data_298,0
		je	loc_937			; Jump if equal
		mov	ax,0
loc_937:
		mov	data_298,ax
		jmp	short loc_ret_938
		retn
		mov	ax,0
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0000
		mov	ds:data_2e,ax
		mov	ds:data_3e,ax
		pop	ds

loc_ret_938:
;         Simulation segment register change due to instruction       DS now 997D
		retn
sub_68		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_69		proc	near
;         Simulation segment register change due to sub entry point   DS now 3BA9
		mov	ax,0FFA0h
		call	sub_153
		mov	byte ptr [bp-60h],1
		mov	byte ptr [bp-5Fh],50h	; 'P'
		mov	word ptr [bp-8],0
		mov	word ptr [bp-4],0FFFFh
		mov	word ptr [bp-6],2
		mov	si,0AAh
		mov	di,data_27e
		mov	word ptr [bp-2],2
		jmp	short loc_940
loc_939:
		inc	word ptr [bp-2]
loc_940:
		mov	ax,[bp-2]
		cmp	ax,52h
		jge	loc_941			; Jump if > or =
		lea	cx,[bp-60h]		; Load effective addr
		add	ax,cx
		mov	bx,ax
		mov	byte ptr ss:[bx],0
		jmp	short loc_939
loc_941:
		mov	ax,[bp-8]
		cmp	ax,28h
		jl	loc_942			; Jump if <
		jmp	loc_ret_955
loc_942:
		inc	word ptr [bp-4]
		mov	bx,[bp-4]
		mov	al,data_301[bx]
		cbw				; Convrt byte to word
		mov	[bp-0Ah],ax
		cmp	ax,di
		jl	loc_943			; Jump if <
		mov	al,data_299[di]
		cbw				; Convrt byte to word
		and	ax,si
		mov	bx,[bp-6]
		inc	word ptr [bp-6]
		lea	cx,[bp-60h]		; Load effective addr
		add	bx,cx
		mov	ss:[bx],al
		sub	[bp-0Ah],di
		mov	ax,[bp-0Ah]
		sar	ax,1			; Shift w/sign fill
		sar	ax,1			; Shift w/sign fill
		add	[bp-6],ax
		mov	ax,[bp-0Ah]
		and	ax,3
		mov	di,data_27e
		sub	di,ax
		mov	si,0
		jmp	short loc_944
loc_943:
		mov	al,data_299[di]
		cbw				; Convrt byte to word
		and	si,ax
		sub	di,[bp-0Ah]
loc_944:
		inc	word ptr [bp-4]
		mov	bx,[bp-4]
		mov	al,data_301[bx]
		cbw				; Convrt byte to word
		mov	[bp-0Ch],ax
		test	ax,ax
		jz	loc_949			; Jump if zero
		cmp	ax,di
		jl	loc_947			; Jump if <
		mov	al,data_300[di]
		cbw				; Convrt byte to word
		or	ax,si
		mov	bx,[bp-6]
		inc	word ptr [bp-6]
		lea	cx,[bp-60h]		; Load effective addr
		add	bx,cx
		mov	ss:[bx],al
		sub	[bp-0Ch],di
		mov	ax,[bp-0Ch]
		sar	ax,1			; Shift w/sign fill
		sar	ax,1			; Shift w/sign fill
		mov	[bp-2],ax
loc_945:
		mov	ax,[bp-2]
		dec	word ptr [bp-2]
		cmp	ax,0
		jle	loc_946			; Jump if < or =
		mov	bx,[bp-6]
		inc	word ptr [bp-6]
		lea	ax,[bp-60h]		; Load effective addr
		add	bx,ax
		mov	byte ptr ss:[bx],0AAh
		jmp	short loc_945
loc_946:
		mov	ax,[bp-0Ch]
		and	ax,3
		mov	di,data_27e
		sub	di,ax
		mov	si,0AAh
		jmp	short loc_948
loc_947:
		mov	al,data_300[di]
		cbw				; Convrt byte to word
		or	si,ax
		sub	di,[bp-0Ch]
loc_948:
		jmp	short loc_954
loc_949:
		mov	ax,[bp-8]
		add	ax,34h
		mov	[bp-2],ax
		mov	cx,28h
		imul	cx			; dx:ax = reg * ax
		mov	[bp-0Eh],ax
		test	word ptr [bp-2],1
		jz	loc_950			; Jump if zero
		add	word ptr [bp-0Eh],1FD8h
loc_950:
		push	word ptr [bp-0Eh]	; PARAMETER_2
		lea	ax,[bp-60h]		; Load effective addr
		push	ax			; PARAMETER_1
		call	sub_79
		add	sp,4
		inc	word ptr [bp-8]
		mov	word ptr [bp-6],2
		mov	word ptr [bp-2],2
		jmp	short loc_952
loc_951:
		inc	word ptr [bp-2]
loc_952:
		mov	ax,[bp-2]
		cmp	ax,52h
		jge	loc_953			; Jump if > or =
		lea	cx,[bp-60h]		; Load effective addr
		add	ax,cx
		mov	bx,ax
		mov	byte ptr ss:[bx],0
		jmp	short loc_951
loc_953:
		mov	di,4
		mov	si,0AAh
loc_954:
		jmp	loc_941

loc_ret_955:
		retn
sub_69		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_70		proc	near
		mov	ax,0FFFAh
		call	sub_153
loc_956:
		call	sub_96
		test	ax,ax
		jz	loc_957			; Jump if zero
		jmp	loc_ret_975
loc_957:
		cmp	word ptr ds:data_379e+1,0
		jne	loc_958			; Jump if not equal
		call	sub_78
loc_958:
		mov	si,ds:data_433e
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,ds:data_434e
		cmp	byte ptr ds:data_406e[si],0
		jne	loc_959			; Jump if not equal
		mov	ax,7B68h
		push	ax
		push	word ptr ds:data_434e
		push	word ptr ds:data_433e
		call	sub_16
		add	sp,6
		jmp	short loc_960
loc_959:
		mov	ax,7B8Bh
		push	ax
		push	word ptr ds:data_434e
		push	word ptr ds:data_433e
		call	sub_16
		add	sp,6
loc_960:
		mov	ax,data_312
		sar	ax,1			; Shift w/sign fill
		mov	[bp-6],ax
		mov	word ptr [bp-2],0
		jmp	short loc_962
loc_961:
		inc	word ptr [bp-2]
loc_962:
		mov	ax,[bp-2]
		cmp	ax,[bp-6]
		jge	loc_967			; Jump if > or =
		call	sub_96
		test	ax,ax
		jnz	loc_967			; Jump if not zero
		cmp	word ptr ds:data_379e+1,0
		jne	loc_963			; Jump if not equal
		call	sub_78
loc_963:
		mov	word ptr [bp-4],0
		jmp	short loc_965
loc_964:
		inc	word ptr [bp-4]
loc_965:
		mov	ax,[bp-4]
		cmp	ax,1F4h
		jge	loc_966			; Jump if > or =
		jmp	short loc_964
loc_966:
		jmp	short loc_961
loc_967:
		push	word ptr ds:data_434e
		push	word ptr ds:data_433e
		call	sub_74
		add	sp,4
		mov	word ptr [bp-2],0
		jmp	short loc_969
loc_968:
		inc	word ptr [bp-2]
loc_969:
		mov	ax,[bp-2]
		cmp	ax,[bp-6]
		jge	loc_974			; Jump if > or =
		call	sub_96
		test	ax,ax
		jnz	loc_974			; Jump if not zero
		cmp	word ptr ds:data_379e+1,0
		jne	loc_970			; Jump if not equal
		call	sub_78
loc_970:
		mov	word ptr [bp-4],0
		jmp	short loc_972
loc_971:
		inc	word ptr [bp-4]
loc_972:
		mov	ax,[bp-4]
		cmp	ax,1F4h
		jge	loc_973			; Jump if > or =
		jmp	short loc_971
loc_973:
		jmp	short loc_968
loc_974:
		jmp	loc_956

loc_ret_975:
		retn
sub_70		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_71		proc	near
		mov	ax,0FFFAh
		call	sub_153
		mov	ax,data_312
		sar	ax,1			; Shift w/sign fill
		mov	[bp-6],ax
		push	word ptr [bp+8]
		push	word ptr [bp+6]
		call	sub_100
		add	sp,4
loc_976:
		call	sub_96
		test	ax,ax
		jz	loc_977			; Jump if zero
		jmpn	loc_ret_990
loc_977:
		mov	ax,5Fh
		push	ax
		call	sub_98
		pop	cx
		mov	word ptr [bp-2],0
		jmp	short loc_979
loc_978:
		inc	word ptr [bp-2]
loc_979:
		mov	ax,[bp-2]
		cmp	ax,[bp-6]
		jge	loc_983			; Jump if > or =
		call	sub_96
		test	ax,ax
		jnz	loc_983			; Jump if not zero
		mov	word ptr [bp-4],0
		jmp	short loc_981
loc_980:
		inc	word ptr [bp-4]
loc_981:
		mov	ax,[bp-4]
		cmp	ax,12Ch
		jge	loc_982			; Jump if > or =
		jmp	short loc_980
loc_982:
		jmp	short loc_978
loc_983:
		mov	al,[bp+4]
		cbw				; Convrt byte to word
		push	ax
		call	sub_98
		pop	cx
		mov	word ptr [bp-2],0
		jmp	short loc_985
loc_984:
		inc	word ptr [bp-2]
loc_985:
		mov	ax,[bp-2]
		cmp	ax,[bp-6]
		jge	loc_989			; Jump if > or =
		call	sub_96
		test	ax,ax
		jnz	loc_989			; Jump if not zero
		mov	word ptr [bp-4],0
		jmp	short loc_987
loc_986:
		inc	word ptr [bp-4]
loc_987:
		mov	ax,[bp-4]
		cmp	ax,258h
		jge	loc_988			; Jump if > or =
		jmp	short loc_986
loc_988:
		jmp	short loc_984
loc_989:
		jmp	short loc_976

loc_ret_990:
		retn
sub_71		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_72		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	word ptr [bp-2],0
		jmp	short loc_992
loc_991:
		add	word ptr [bp-2],4
loc_992:
		mov	ax,[bp-2]
		cmp	ax,50h
		jge	loc_993			; Jump if > or =
		mov	ax,0A028h
		push	ax
		push	word ptr [bp-2]
		call	sub_114
		add	sp,4
		jmp	short loc_991
loc_993:
		mov	word ptr [bp-2],0
		jmp	short loc_995
loc_994:
		add	word ptr [bp-2],190h
loc_995:
		mov	ax,[bp-2]
		cmp	ax,1C20h
		jge	loc_996			; Jump if > or =
		mov	ax,0A01Ch
		push	ax
		push	word ptr [bp-2]
		call	sub_114
		add	sp,4
		mov	ax,0A01Ch
		push	ax
		mov	ax,[bp-2]
		add	ax,4Fh
		push	ax
		call	sub_114
		add	sp,4
		jmp	short loc_994
loc_996:
		mov	word ptr [bp-2],1C20h
		jmp	short loc_998
loc_997:
		add	word ptr [bp-2],4
loc_998:
		mov	ax,[bp-2]
		cmp	ax,1C70h
		jge	loc_ret_999		; Jump if > or =
		mov	ax,0A028h
		push	ax
		push	word ptr [bp-2]
		call	sub_114
		add	sp,4
		jmp	short loc_997

loc_ret_999:
		retn
sub_72		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_73		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	word ptr [bp-2],1CC0h
		jmp	short loc_1001
loc_1000:
		add	word ptr [bp-2],50h
loc_1001:
		mov	ax,[bp-2]
		cmp	ax,1F40h
		jge	loc_ret_1005		; Jump if > or =
		mov	word ptr [bp-4],0
		jmp	short loc_1003
loc_1002:
		inc	word ptr [bp-4]
loc_1003:
		mov	ax,[bp-4]
		cmp	ax,14h
		jge	loc_1004		; Jump if > or =
		mov	ax,0A028h
		push	ax
		push	word ptr [bp-2]
		call	sub_114
		add	sp,4
		add	word ptr [bp-2],4
		jmp	short loc_1002
loc_1004:
		jmp	short loc_1000

loc_ret_1005:
		retn
sub_73		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_74		proc	near
		mov	ax,0
		call	sub_153
		mov	si,[bp+4]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp+6]
		mov	al,ds:data_406e[si]
		cbw				; Convrt byte to word
		jmp	loc_1021

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1006:
;         Simulation segment register change due to indexed jmp/call  DS now 0000
		mov	ax,7B8Bh
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	$+13Fh

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1007:
		mov	ax,7BAEh
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	$+12Ch

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1008:
		mov	ax,7B45h
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	$+119h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1009:
		mov	ax,7BD1h
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	$+106h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1010:
		mov	ax,7BF4h
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	$+0F3h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1011:
		mov	ax,ds:data_6e
		cmp	ax,2
		je	loc_1012		; Jump if equal
		mov	ax,7C17h
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	short loc_1013
loc_1012:
		mov	ax,7BAEh
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
loc_1013:
		jmp	$+0C6h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1014:
		mov	ax,ds:data_6e
		cmp	ax,2
		je	loc_1015		; Jump if equal
		mov	ax,7C3Ah
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	short loc_1016
loc_1015:
		mov	ax,7B8Bh
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
loc_1016:
		jmp	$+99h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1017:
		mov	ax,7C5Dh
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	$+86h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1018:
		mov	ax,7C80h
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	short $+73h

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1019:
		mov	ax,79A1h
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_16
		add	sp,6
		jmp	short $+61h
loc_1020:
		cmp	word ptr ds:data_7e,0
		je	$+35h			; Jump if equal
		mov	si,[bp+4]
		mov	cx,4
		shl	si,cl			; Shift w/zeros fill
		add	si,[bp+6]
		mov	al,ds:data_10e[si]
		cbw				; Convrt byte to word
		push	ax
		mov	ax,0A03Ah
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		jmp	short $+39h
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short $+25h
		lds	dx,dword ptr [bp+si-28h]	; Load seg:offset ptr
		push	dx
		jmp	short $+54h
			                        ; now data because: instruction bad
		db	0FEh, 52h
data_150	dw	offset loc_1010
data_151	dw	offset loc_1011
data_152	dw	offset loc_1014
data_153	dw	offset loc_1017
data_154	dw	offset loc_1018
data_155	dw	offset loc_1019
loc_1021:
		cmp	ax,0Ah
		jae	loc_1022		; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[53F1h][bx]	;*10 entries
loc_1022:
		jmp	short loc_1020
sub_74		endp

		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_75		proc	near
;         Simulation segment register change due to sub entry point   DS now 3BA9
		mov	ax,0FFFEh
		call	sub_153
loc_1023:
		mov	ax,1
		test	ax,ax
		jz	loc_ret_1027		; Jump if zero
		call	sub_94
		mov	[bp-2],ax
		cmp	ax,1
		jne	loc_1024		; Jump if not equal
		mov	ax,0
		retn
loc_1024:
		mov	ax,[bp-2]
		cmp	ax,1Ch
		je	loc_1025		; Jump if equal
		cmp	ax,57h
		jne	loc_1026		; Jump if not equal
loc_1025:
		mov	ax,1
		retn
loc_1026:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		jmp	short loc_1023

loc_ret_1027:
		retn
sub_75		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_76		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	word ptr [bp-4],0
		push	word ptr [bp+0Ah]
		push	word ptr [bp+8]
		mov	si,[bp+4]
		mov	al,[si]
		cbw				; Convrt byte to word
		push	ax
		call	sub_71
		add	sp,6
loc_1028:
		call	sub_93
		mov	[bp-1],al
		cmp	al,0Dh
		jne	loc_1029		; Jump if not equal
		jmpn	loc_ret_1035
loc_1029:
		mov	ax,[bp-4]
		cmp	ax,[bp+6]
		jge	loc_1030		; Jump if > or =
		cmp	byte ptr [bp-1],20h	; ' '
		jl	loc_1030		; Jump if <
		cmp	byte ptr [bp-1],7Eh	; '~'
		jg	loc_1030		; Jump if >
		mov	al,[bp-1]
		cbw				; Convrt byte to word
		push	ax
		call	sub_98
		pop	cx
		mov	si,[bp-4]
		inc	word ptr [bp-4]
		add	si,[bp+4]
		mov	al,[bp-1]
		mov	[si],al
		jmp	short loc_1032
loc_1030:
		cmp	byte ptr [bp-1],8
		jne	loc_1031		; Jump if not equal
		mov	ax,[bp-4]
		cmp	ax,0
		jle	loc_1031		; Jump if < or =
		dec	word ptr [bp-4]
		jmp	short loc_1032
loc_1031:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_1032:
		mov	ax,[bp-4]
		cmp	ax,[bp+6]
		jl	loc_1033		; Jump if <
		mov	byte ptr [bp-2],20h	; ' '
		jmp	short loc_1034
loc_1033:
		add	ax,[bp+4]
		mov	si,ax
		mov	al,[si]
		mov	[bp-2],al
loc_1034:
		mov	ax,[bp+0Ah]
		add	ax,[bp-4]
		push	ax
		push	word ptr [bp+8]
		mov	al,[bp-2]
		cbw				; Convrt byte to word
		push	ax
		call	sub_71
		add	sp,6
		jmp	loc_1028

loc_ret_1035:
		retn
sub_76		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_77		proc	near
		push	ax
		push	ds
		mov	ax,40h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0040
		mov	al,ds:keybd_flags_1
		or	al,20h			; ' '
		mov	ds:keybd_flags_1,al
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		pop	ax
		retn
sub_77		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_78		proc	near
		push	ax
		push	ds
		mov	ax,40h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0040
		mov	al,ds:keybd_flags_1
		and	al,0DFh
		mov	ds:keybd_flags_1,al
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		pop	ax
		retn
sub_78		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_79		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6

		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	si,[bp+PARAMETER_1]
		mov	ax,[bp+PARAMETER_2]
		call	sub_110
;         Simulation segment register change due to return from sub   ES now B800
		mov	ax,[si]
		inc	si
		inc	si
		xor	cx,cx			; Zero register
		mov	cl,ah
loc_1036:
;         Simulation segment register change due to jump to label     ES now 3BA9
		mov	di,[bx]
		add	di,dx
		rep	movsb			; Rep when cx >0 Mov [si] to es:[di]
		dec	al
		jz	loc_1037		; Jump if zero
		mov	cl,ah
		add	bx,2
		jmp	short loc_1036
loc_1037:
		pop	es
		pop	di
		pop	si
		pop	bp
		retn
sub_79		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_80		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	si,[bp+PARAMETER_1]
		mov	ax,[bp+PARAMETER_2]
		call	sub_110
;         Simulation segment register change due to return from sub   ES now B800
		shr	ax,1			; Shift w/zeros fill
		sub	ax,4
		mov	bx,50h
		mul	bl			; ax = reg * al
		mov	di,[bp+PARAMETER_3]
		add	di,ax
		add	di,dx
		push	ds
		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		mov	ax,[si]
		inc	si
		inc	si
		xor	cx,cx			; Zero register
		mov	cl,ah
		sub	bx,cx
loc_1038:
		rep	movsb			; Rep when cx >0 Mov [si] to es:[di]
		dec	al
		jz	loc_1039		; Jump if zero
		mov	cl,ah
		add	di,bx
		jmp	short loc_1038
loc_1039:
		pop	es
		pop	di
		pop	si
		pop	bp
		retn
sub_80		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_81		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	si,[bp+PARAMETER_1]
		mov	ax,[bp+PARAMETER_2]
		mov	bp,[bp+PARAMETER_3]
		call	sub_110
;         Simulation segment register change due to return from sub   ES now B800
		shr	ax,1			; Shift w/zeros fill
		sub	ax,4
		mov	ch,50h			; 'P'
		mul	ch			; ax = reg * al
		add	bp,ax
		add	bp,dx
		mov	ax,[si]
		inc	si
		inc	si
		mov	cl,ah
		mov	ch,ah
loc_1040:
;         Simulation segment register change due to jump to label     ES now 3BA9
		mov	di,[bx]
		add	di,dx
loc_1041:
		mov	ah,es:[di]
		and	ah,[si]
		xor	ah,es:[di]
		or	ah,ds:[bp]
		mov	es:[di],ah
		inc	si
		inc	di
		inc	bp
		dec	ch
		jnz	loc_1041		; Jump if not zero
		dec	al
		jz	loc_1042		; Jump if zero
		add	bp,50h
		sub	bp,cx
		mov	ch,cl
		add	bx,2
		jmp	short loc_1040
loc_1042:
		pop	es
		pop	di
		pop	si
		pop	bp
		retn
sub_81		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_82		proc	near
		push	ax
		push	bx
		push	dx
		push	bp
		mov	bp,sp
		mov	ax,[bp+0Ah]
		mov	bx,[bp+0Ch]
		int	10h			; Video display   ah=functn 00h
						;  set display mode in al
		mov	dx,3D4h
		mov	ax,2
		out	dx,ax			; port 3D4h, CGA/EGA reg index
						;  al = 2, horz sync position
		inc	dx
		mov	ax,2Ch
		out	dx,ax			; port 3D5h, CGA/EGA indxd data
		pop	bp
		pop	dx
		pop	bx
		pop	ax
		retn
sub_82		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_83		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	si,[bp+PARAMETER_1]
		mov	ax,[bp+PARAMETER_2]
		mov	bp,[bp+PARAMETER_3]
		call	sub_110
;         Simulation segment register change due to return from sub   ES now B800
		shr	ax,1			; Shift w/zeros fill
		sub	ax,4
		mov	ch,50h			; 'P'
		mul	ch			; ax = reg * al
		add	bp,ax
		add	bp,dx
		mov	ax,[si]
		inc	si
		inc	si
		mov	cl,ah
		mov	ch,ah
		mov	byte ptr data_309,0
loc_1043:
;         Simulation segment register change due to jump to label     ES now 3BA9
		mov	di,[bx]
		add	di,dx
loc_1044:
		mov	ah,es:[di]
		xor	ah,ds:[bp]
		and	ah,[si]
		or	data_309,ah
		mov	ah,[si]
		or	es:[di],ah
		inc	si
		inc	di
		inc	bp
		dec	ch
		jnz	loc_1044		; Jump if not zero
		dec	al
		jz	loc_1045		; Jump if zero
		add	bp,50h
		sub	bp,cx
		mov	ch,cl
		add	bx,2
		jmp	short loc_1043
loc_1045:
		xor	ax,ax			; Zero register
		mov	al,data_309
		pop	es
		pop	di
		pop	si
		pop	bp
		retn
sub_83		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_84		proc	near
		mov	ax,0FFF4h
		call	sub_153
		mov	word ptr [bp-8],0
		mov	ax,[bp+4]
		cmp	ax,5
		jle	loc_1046		; Jump if < or =
		mov	word ptr [bp-8],1
		sub	word ptr [bp+4],6
loc_1046:
		mov	word ptr ds:data_424e,0
		mov	ax,2
		push	ax			; PARAMETER_2
		mov	ax,0A04Ch
		push	ax			; PARAMETER_1
		call	sub_147
		add	sp,4
		mov	[bp-2],ax
		cmp	ax,0FFFFh
		jne	loc_1047		; Jump if not equal
		cmp	word ptr ds:data_424e,0
		jne	loc_1047		; Jump if not equal
		mov	ax,data_340
		mov	ds:data_424e,ax
loc_1047:
		cmp	word ptr ds:data_424e,0
		je	loc_1048		; Jump if equal
		jmp	loc_1056
loc_1048:
		mov	ax,[bp+0Ah]
		mov	cx,9
		shl	ax,cl			; Shift w/zeros fill
		mov	[bp-4],ax
		mov	ax,[bp+8]
		mov	bx,200h
		imul	bx			; dx:ax = reg * ax
		mov	[bp-0Ah],dx
		mov	[bp-0Ch],ax
		mov	ax,[bp+4]
		cmp	ax,4
		jne	loc_1049		; Jump if not equal
		mov	ax,2
		push	ax			; PARAMETER_4
		mov	dx,0
		mov	ax,0
		push	dx			; PARAMETER_3
		push	ax			; PARAMETER_2
		push	word ptr [bp-2]		; PARAMETER_1
		call	sub_164
		add	sp,8
		jmp	short loc_1050
loc_1049:
		mov	ax,0
		push	ax			; PARAMETER_4
		push	word ptr [bp-0Ah]	; PARAMETER_3
		push	word ptr [bp-0Ch]	; PARAMETER_2
		push	word ptr [bp-2]		; PARAMETER_1
		call	sub_164
		add	sp,8
loc_1050:
		mov	ax,[bp+4]
		cmp	ax,2
		jne	loc_1052		; Jump if not equal
		push	word ptr [bp-4]
		push	word ptr [bp+6]
		push	word ptr [bp-2]
		call	sub_161
		add	sp,6
		cmp	ax,0FFFFh
		jne	loc_1051		; Jump if not equal
		mov	ax,data_340
		mov	ds:data_424e,ax
loc_1051:
		push	word ptr [bp-4]		; PARAMETER_2
		push	word ptr [bp+6]		; PARAMETER_1
		call	sub_90
		add	sp,4
		push	word ptr [bp-2]		; PARAMETER_1
		call	sub_163
		pop	cx
		jmp	short loc_1056
loc_1052:
		mov	ax,[bp+4]
		cmp	ax,3
		je	loc_1053		; Jump if equal
		cmp	ax,4
		jne	loc_1056		; Jump if not equal
loc_1053:
		push	word ptr [bp-4]		; PARAMETER_2
		push	word ptr [bp+6]		; PARAMETER_1
		call	sub_90
		add	sp,4
		push	word ptr [bp-4]
		push	word ptr [bp+6]
		push	word ptr [bp-2]
		call	sub_162
		add	sp,6
		mov	[bp-6],ax
		cmp	ax,0
		jg	loc_1055		; Jump if >
		cmp	word ptr [bp-6],0
		jne	loc_1054		; Jump if not equal
		mov	word ptr ds:data_424e,48h
loc_1054:
		cmp	word ptr ds:data_424e,0
		jne	loc_1055		; Jump if not equal
		mov	ax,data_340
		mov	ds:data_424e,ax
loc_1055:
		push	word ptr [bp-2]		; PARAMETER_1
		call	sub_163
		pop	cx
		push	word ptr [bp-4]		; PARAMETER_2
		push	word ptr [bp+6]		; PARAMETER_1
		call	sub_90
		add	sp,4
loc_1056:
		cmp	word ptr [bp-8],0
		jne	loc_1057		; Jump if not equal
		cmp	word ptr ds:data_424e,0
		je	loc_1057		; Jump if equal
		call	sub_86
		test	ax,ax
		jz	loc_1057		; Jump if zero
		jmp	loc_1046
loc_1057:
		mov	ax,1
		cmp	word ptr ds:data_424e,0
		je	loc_ret_1058		; Jump if equal
		mov	ax,0

loc_ret_1058:
		retn
sub_84		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_85		proc	near
		mov	ax,0FFE7h
		call	sub_153
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A058h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A081h
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr [bp-2],0
		jmp	short loc_1060
loc_1059:
		inc	word ptr [bp-2]
loc_1060:
		mov	ax,[bp-2]
		cmp	ax,3
		jge	loc_1061		; Jump if > or =
		mov	ax,1A2Dh
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,96h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,32h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_1059
loc_1061:
		mov	ax,2738h
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,1C2h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		call	sub_75
		test	ax,ax
		jnz	loc_1062		; Jump if not zero
		mov	ax,0
		retn
loc_1062:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A0AAh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A0D3h
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr [bp-2],0
		jmp	short loc_1064
loc_1063:
		inc	word ptr [bp-2]
loc_1064:
		mov	ax,[bp-2]
		cmp	ax,0Ch
		jge	loc_1065		; Jump if > or =
		mov	si,ax
		mov	byte ptr [bp+si-17h],0
		jmp	short loc_1063
loc_1065:
		mov	ax,1
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0Bh
		push	ax
		lea	ax,[bp-17h]		; Load effective addr
		push	ax
		call	sub_76
		add	sp,8
loc_1066:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A0FCh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A125h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,9Dh
		push	ax
		mov	ax,0E366h
		push	ax
		mov	ax,8
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_1067		; Jump if not zero
		jmp	loc_1072
loc_1067:
		mov	ax,0AA8Bh
		push	ax
		call	sub_87
		pop	cx
		test	ax,ax
		jz	loc_1068		; Jump if zero
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A14Eh
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A177h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	ax,0
		retn
loc_1068:
		push	ds
		pop	es
		mov	ax,0E3CAh
		mov	word ptr [bp-19h],0E3CAh
		push	ax			; PARAMETER_1
		call	sub_152
		pop	cx
		mov	[bp-2],ax
		cmp	ax,0
		jle	loc_1069		; Jump if < or =
		cmp	ax,0Bh
		jle	loc_1070		; Jump if < or =
loc_1069:
		mov	word ptr [bp-19h],0A1A0h
loc_1070:
		mov	ax,17h
		push	ax
		call	sub_60
		pop	cx
		push	word ptr [bp-19h]
		mov	ax,0A1ACh
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A1CBh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_75
		test	ax,ax
		jnz	loc_1071		; Jump if not zero
		mov	ax,0
		retn
loc_1071:
		jmp	short loc_1074
loc_1072:
		mov	ax,ds:data_424e
		cmp	ax,82h
		jne	loc_1074		; Jump if not equal
		call	sub_86
		test	ax,ax
		jz	loc_1073		; Jump if zero
		jmp	loc_1066
loc_1073:
		mov	ax,0
		retn
loc_1074:
		mov	dx,1
		mov	ax,4000h
		push	dx
		push	ax
		mov	ax,1
		push	ax
		call	sub_88
		add	sp,6
		test	ax,ax
		jnz	loc_1077		; Jump if not zero
		cmp	word ptr ds:data_424e,0
		je	loc_1076		; Jump if equal
		call	sub_86
		test	ax,ax
		jz	loc_1075		; Jump if zero
		jmp	loc_1066
loc_1075:
		mov	ax,0
		retn
loc_1076:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A1F5h
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr [bp-0Ah],0
		jmp	loc_1114
loc_1077:
		mov	word ptr ds:data_424e,0
		mov	ax,0A21Eh
		push	ax
		call	sub_146
		pop	cx
		mov	[bp-8],ax
		cmp	ax,0FFFFh
		jne	loc_1079		; Jump if not equal
		mov	ax,data_340
		mov	ds:data_424e,ax
		call	sub_86
		test	ax,ax
		jz	loc_1078		; Jump if zero
		jmp	loc_1066
loc_1078:
		mov	ax,0
		retn
loc_1079:
		push	word ptr [bp-8]		; PARAMETER_1
		call	sub_163
		pop	cx
		mov	word ptr [bp-6],0
		jmp	short loc_1081
loc_1080:
		inc	word ptr [bp-6]
loc_1081:
		mov	ax,[bp-6]
		cmp	ax,8
		jge	loc_1088		; Jump if > or =
		mov	cx,9
		shl	ax,cl			; Shift w/zeros fill
		mov	[bp-2],ax
		jmp	short loc_1083
loc_1082:
		inc	word ptr [bp-2]
loc_1083:
		mov	ax,[bp-6]
		mov	cx,9
		shl	ax,cl			; Shift w/zeros fill
		add	ax,1F5h
		mov	cx,[bp-2]
		cmp	cx,ax
		jge	loc_1084		; Jump if > or =
		mov	si,cx
		mov	byte ptr ds:data_392e[si],0
		jmp	short loc_1082
loc_1084:
		mov	ax,[bp-6]
		mov	cx,9
		shl	ax,cl			; Shift w/zeros fill
		add	ax,1F5h
		mov	[bp-2],ax
		mov	word ptr [bp-4],0
		jmp	short loc_1086
loc_1085:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_1086:
		mov	ax,[bp-4]
		cmp	ax,0Bh
		jge	loc_1087		; Jump if > or =
		mov	si,ax
		mov	al,byte ptr data_236[si]	; ('LodeRunner')
		mov	bx,[bp-2]
		mov	ds:data_392e[bx],al
		jmp	short loc_1085
loc_1087:
		jmp	short loc_1080
loc_1088:
		mov	word ptr [bp-2],0
		jmp	short loc_1090
loc_1089:
		add	word ptr [bp-2],8
loc_1090:
		mov	ax,[bp-2]
		cmp	ax,98h
		jge	loc_1092		; Jump if > or =
		mov	ax,8
		push	ax
		push	word ptr [bp-2]
		mov	ax,0AA8Bh
		push	ax
		mov	ax,4
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_1091		; Jump if not zero
		jmp	loc_1113
loc_1091:
		jmp	short loc_1089
loc_1092:
		mov	ax,2
		push	ax
		mov	ax,98h
		push	ax
		mov	ax,838Ch
		push	ax
		mov	ax,4
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_1093		; Jump if not zero
		jmp	loc_1113
loc_1093:
		mov	ax,3
		push	ax
		mov	ax,9Ah
		push	ax
		mov	ax,878Ch
		push	ax
		mov	ax,4
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jnz	loc_1094		; Jump if not zero
		jmp	loc_1113
loc_1094:
		mov	word ptr [bp-2],0
		jmp	short loc_1096
loc_1095:
		inc	word ptr [bp-2]
loc_1096:
		mov	ax,[bp-2]
		cmp	ax,200h
		jge	loc_1097		; Jump if > or =
		mov	si,ax
		mov	byte ptr ds:data_392e[si],0
		jmp	short loc_1095
loc_1097:
		mov	word ptr [bp-2],3Ch
		jmp	short loc_1099
loc_1098:
		inc	word ptr [bp-2]
loc_1099:
		mov	ax,[bp-2]
		cmp	ax,5Ah
		jge	loc_1100		; Jump if > or =
		mov	si,ax
		mov	byte ptr ds:data_392e[si],20h	; ' '
		jmp	short loc_1098
loc_1100:
		mov	word ptr [bp-2],64h
		mov	word ptr [bp-4],0
		jmp	short loc_1102
loc_1101:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_1102:
		mov	ax,[bp-4]
		cmp	ax,0Bh
		jge	loc_1103		; Jump if > or =
		mov	si,ax
		mov	al,[bp+si-17h]
		mov	bx,[bp-2]
		mov	ds:data_392e[bx],al
		jmp	short loc_1101
loc_1103:
		mov	word ptr [bp-2],78h
		mov	word ptr [bp-4],0
		jmp	short loc_1105
loc_1104:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_1105:
		mov	ax,[bp-4]
		cmp	ax,14h
		jge	loc_1106		; Jump if > or =
		mov	si,ax
		mov	al,ds:data_488e[si]
		mov	bx,[bp-2]
		mov	ds:data_392e[bx],al
		jmp	short loc_1104
loc_1106:
		mov	word ptr [bp-2],1F5h
		mov	word ptr [bp-4],0
		jmp	short loc_1108
loc_1107:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_1108:
		mov	ax,[bp-4]
		cmp	ax,0Bh
		jge	loc_1109		; Jump if > or =
		mov	si,ax
		mov	al,byte ptr data_236[si]	; ('LodeRunner')
		mov	bx,[bp-2]
		mov	ds:data_392e[bx],al
		jmp	short loc_1107
loc_1109:
		mov	ax,3
		push	ax
		mov	ax,9Dh
		push	ax
		mov	ax,0AA8Bh
		push	ax
		mov	ax,4
		push	ax
		call	sub_84
		add	sp,8
		test	ax,ax
		jz	loc_1113		; Jump if zero
		mov	word ptr [bp-2],1
		jmp	short loc_1111
loc_1110:
		inc	word ptr [bp-2]
loc_1111:
		mov	ax,[bp-2]
		cmp	ax,6
		jge	loc_1112		; Jump if > or =
		mov	cx,3E8h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,0FAh
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_1110
loc_1112:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A22Ah
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr [bp-0Ah],1
		jmp	short loc_1114
loc_1113:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,0A253h
		push	ax			; PARAMETER_1
		call	sub_165
		pop	cx
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A25Fh
		push	ax
		call	sub_99
		add	sp,6
		mov	word ptr [bp-0Ah],0
loc_1114:
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A288h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_93
		mov	ax,[bp-0Ah]
		retn
sub_85		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_86		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,0
		int	13h			; Disk  dl=drive a  ah=func 00h
						;  reset disk, al=return status
		sti				; Enable interrupts
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,ds:data_424e
		cmp	ax,80h
		jne	loc_1115		; Jump if not equal
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A2B1h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_1119
loc_1115:
		mov	ax,ds:data_424e
		cmp	ax,82h
		jne	loc_1116		; Jump if not equal
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A2DAh
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_1119
loc_1116:
		mov	ax,ds:data_424e
		cmp	ax,2
		jne	loc_1117		; Jump if not equal
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A303h
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_1119
loc_1117:
		mov	ax,ds:data_424e
		cmp	ax,5
		jne	loc_1118		; Jump if not equal
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A32Ch
		push	ax
		call	sub_99
		add	sp,6
		jmp	short loc_1119
loc_1118:
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A355h
		push	ax
		call	sub_99
		add	sp,6
loc_1119:
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A37Eh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_75
		test	ax,ax
		jz	loc_1123		; Jump if zero
		mov	ax,ds:data_381e
		cmp	ax,2
		jne	loc_1120		; Jump if not equal
		call	sub_73
		call	sub_21
		jmp	short loc_1122
loc_1120:
		mov	ax,ds:data_381e
		cmp	ax,4
		jne	loc_1121		; Jump if not equal
		call	sub_59
		jmp	short loc_1122
loc_1121:
		call	sub_61
loc_1122:
		mov	ax,1
		retn
loc_1123:
		mov	ax,0
		retn
sub_86		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_87		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,200h
		push	ax
		push	word ptr [bp+4]
		call	sub_89
		add	sp,4
		mov	[bp-2],ax
		push	ax			; PARAMETER_1
		call	sub_109
		pop	cx
		retn
sub_87		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_88		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	dl,[bp+4]
		mov	word ptr ds:data_424e,0
		mov	ah,36h
		int	21h			; DOS Services  ah=function 36h
						;  get drive info, drive dl,1=a:
						;   returns ax=sectors per clust
						;   bx=avail clust,cx=bytes/sect
						;   dx=clusters per drive
		cmp	ax,0FFFFh
		jne	loc_1124		; Jump if not equal
		mov	word ptr ds:data_424e,83h
		mov	ax,0
		int	13h			; Disk  dl=drive a  ah=func 00h
						;  reset disk, al=return status
		sti				; Enable interrupts
loc_1124:
		mov	word ptr ds:[0A954h],ax
		mov	word ptr ds:[0A956h],cx
		mov	word ptr ds:[0A958h],bx
		mov	ax,word ptr ds:[0A954h]
		sub	dx,dx
		mov	[bp-2],dx
		mov	[bp-4],ax
		mov	ax,word ptr ds:[0A956h]
		sub	dx,dx
		mov	bx,dx
		mov	cx,ax
		mov	dx,[bp-2]
		mov	ax,[bp-4]
		push	ax
		push	dx
		mul	bx			; dx:ax = reg * ax
		mov	bx,ax
		pop	ax
		mul	cx			; dx:ax = reg * ax
		add	bx,ax
		pop	ax
		mul	cx			; dx:ax = reg * ax
		add	dx,bx
		mov	[bp-2],dx
		mov	[bp-4],ax
		mov	ax,word ptr ds:[0A958h]
		sub	dx,dx
		mov	di,dx
		mov	si,ax
		mov	dx,[bp-2]
		mov	ax,[bp-4]
		push	ax
		push	dx
		mul	di			; dx:ax = reg * ax
		mov	di,ax
		pop	ax
		mul	si			; dx:ax = reg * ax
		add	di,ax
		pop	ax
		mul	si			; dx:ax = reg * ax
		add	dx,di
		mov	[bp-2],dx
		mov	[bp-4],ax
		cmp	dx,[bp+8]
		jl	loc_1125		; Jump if <
		jnz	loc_1126		; Jump if not zero
		cmp	ax,[bp+6]
		jae	loc_1126		; Jump if above or =
loc_1125:
		jmp	short loc_1127
loc_1126:
		cmp	word ptr ds:data_424e,0
		je	loc_1128		; Jump if equal
loc_1127:
		mov	ax,0
		jmp	short loc_ret_1129
loc_1128:
		mov	ax,1

loc_ret_1129:
		retn
sub_88		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_89		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		mov	ax,[bp+PARAMETER_1]
		dec	word ptr [bp+PARAMETER_2]
		mov	bx,ds
		and	bx,0FFFh
		mov	dx,ax
		add	dx,[bp+PARAMETER_2]
		mov	cl,4
		shr	dx,cl			; Shift w/zeros fill
		add	dx,bx
		and	dx,0F000h
		jz	loc_1130		; Jump if zero
		add	ax,[bp+PARAMETER_2]
		inc	ax
loc_1130:
		pop	bp
		retn
sub_89		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_90		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6

		push	bp
		mov	bp,sp
		push	si
		mov	cx,[bp+PARAMETER_2]
		shr	cx,1			; Shift w/zeros fill
		mov	bx,0B2E3h
		cld				; Clear direction
		mov	si,[bp+PARAMETER_1]

locloop_1131:
		xor	[si],bx
		ror	bx,1			; Rotate
		add	si,2
		loop	locloop_1131		; Loop if cx > 0

		pop	si
		pop	bp
		retn
sub_90		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_91		proc	near
		push	ds
		nop
		nop
		jmp	short loc_1132
		add	byte ptr ss:data_313+20h[bp],cl	; ('RBUND SOFTWARE')
		or	al,0
		mov	ds:data_28e,ax
loc_1132:
		mov	ax,0F000h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now F000
		mov	al,ds:data_505e
		mov	ah,ds:data_502e
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		retn
sub_91		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_92		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	word ptr [bp-2],11h
		mov	word ptr [bp-4],0
		jmp	short loc_1134
loc_1133:
		inc	word ptr [bp-2]
		inc	word ptr [bp-4]
loc_1134:
		mov	ax,[bp-2]
		cmp	ax,20h
		jge	loc_1135		; Jump if > or =
		mov	si,[bp-4]
		mov	al,data_311[si]
		mov	bx,[bp-2]
		mov	data_188[bx],al
		jmp	short loc_1133
loc_1135:
		mov	word ptr [bp-2],2
		jmp	short loc_1137
loc_1136:
		inc	word ptr [bp-2]
loc_1137:
		mov	ax,[bp-2]
		cmp	ax,0Ch
		jge	loc_1138		; Jump if > or =
		mov	si,ax
		mov	byte ptr data_303[si],0DDh
		jmp	short loc_1136
loc_1138:
		mov	word ptr [bp-2],2
		jmp	short loc_1140
loc_1139:
		inc	word ptr [bp-2]
loc_1140:
		mov	ax,[bp-2]
		cmp	ax,12h
		jge	loc_ret_1141		; Jump if > or =
		mov	si,ax
		mov	byte ptr data_305[si],0DDh
		jmp	short loc_1139

loc_ret_1141:
		retn
sub_92		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_93		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,0
		int	16h			; Keyboard i/o  ah=function 00h
						;  get keybd char in al, ah=scan
		and	ax,0FFh
		retn
sub_93		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_94		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,0
		int	16h			; Keyboard i/o  ah=function 00h
						;  get keybd char in al, ah=scan
		mov	al,ah
		and	ax,0FFh
		retn
sub_94		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_95		proc	near
;         Simulation segment register change due to sub entry point   ES now 0000
		mov	ax,0
		call	sub_153
		mov	ax,0
		int	16h			; Keyboard i/o  ah=function 00h
						;  get keybd char in al, ah=scan
		retn
sub_95		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_96		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,100h
		int	16h			; Keyboard i/o  ah=function 01h
						;  get status, if zf=0  al=char
		jnz	loc_1142		; Jump if not zero
		mov	ax,0
		jmp	short loc_ret_1143
loc_1142:
		mov	ax,0FFFFh

loc_ret_1143:
		retn
sub_96		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_97		proc	near
;         Simulation segment register change due to sub entry point   ES now 3BA9
		mov	ax,0
		call	sub_153
loc_1144:
		call	sub_96
		test	ax,ax
		jz	loc_ret_1145		; Jump if zero
		call	sub_93
		jmp	short loc_1144

loc_ret_1145:
		retn
sub_97		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_98		proc	near
		mov	ax,0
		call	sub_153
		mov	bl,ds:data_379e
;*		and	bx,3
		db	 81h,0E3h, 03h, 00h	;  Fixup - byte match
		mov	al,data_328[bx]
		mov	ah,al
		mov	data_329,ax
		mov	bx,ds:data_489e
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		shl	bx,1			; Shift w/zeros fill
		mov	ax,ds:data_490e
		shl	ax,1			; Shift w/zeros fill
		shl	ax,1			; Shift w/zeros fill
		shl	ax,1			; Shift w/zeros fill
		push	word ptr [bp+4]		; PARAMETER_3
		push	bx			; PARAMETER_2
		push	ax			; PARAMETER_1
		call	sub_139
		add	sp,6
		retn
sub_98		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_99		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	al,[bp+6]
		cbw				; Convrt byte to word
		mov	ds:data_489e,ax
		mov	al,[bp+8]
		cbw				; Convrt byte to word
		mov	ds:data_490e,ax
		mov	word ptr [bp-2],0
loc_1146:
		mov	ax,[bp-2]
		cmp	ax,2Eh
		jge	loc_ret_1147		; Jump if > or =
		add	ax,[bp+4]
		mov	si,ax
		cmp	byte ptr [si],0
		je	loc_ret_1147		; Jump if equal
		mov	bx,[bp-2]
		inc	word ptr [bp-2]
		add	bx,[bp+4]
		mov	al,[bx]
		cbw				; Convrt byte to word
		push	ax
		call	sub_98
		pop	cx
		inc	word ptr ds:data_490e
		jmp	short loc_1146

loc_ret_1147:
		retn
sub_99		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_100		proc	near
		mov	ax,0
		call	sub_153
		mov	al,[bp+4]
		cbw				; Convrt byte to word
		mov	ds:data_489e,ax
		mov	al,[bp+6]
		cbw				; Convrt byte to word
		mov	ds:data_490e,ax
		retn
sub_100		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_101		proc	near
		mov	ax,0FFFCh
		call	sub_153
		mov	ah,9
		mov	al,[bp+4]
		mov	bh,0
		mov	bl,ds:data_379e
		mov	cx,1
		int	10h			; Video display   ah=functn 09h
						;  set char al & attrib bl @curs
						;   cx=# of chars to replicate
		retn
sub_101		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_102		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	al,[bp+8]
		cbw				; Convrt byte to word
		push	ax
		mov	al,[bp+6]
		cbw				; Convrt byte to word
		push	ax
		call	sub_103
		add	sp,4
		mov	word ptr [bp-2],0
loc_1148:
		mov	si,[bp+4]
		add	si,[bp-2]
		cmp	byte ptr [si],0
		je	loc_ret_1149		; Jump if equal
		mov	bx,[bp-2]
		inc	word ptr [bp-2]
		add	bx,[bp+4]
		mov	al,[bx]
		cbw				; Convrt byte to word
		push	ax
		call	sub_101
		pop	cx
		inc	byte ptr [bp+8]
		mov	al,[bp+8]
		cbw				; Convrt byte to word
		push	ax
		mov	al,[bp+6]
		cbw				; Convrt byte to word
		push	ax
		call	sub_103
		add	sp,4
		jmp	short loc_1148

loc_ret_1149:
		retn
sub_102		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_103		proc	near
		mov	ax,0
		call	sub_153
		mov	dh,[bp+4]
		mov	dl,[bp+6]
		mov	bh,0
		mov	ah,2
		int	10h			; Video display   ah=functn 02h
						;  set cursor location in dx
		retn
sub_103		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_104		proc	near
		mov	dx,201h
		out	dx,al			; port 201h, start game 1-shots
		retn
sub_104		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_105		proc	near
;         Simulation segment register change due to sub entry point   ES now 0000
		mov	dx,201h
		xor	ax,ax			; Zero register
		in	al,dx			; port 201h, start game 1-shots
		retn
sub_105		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_106		proc	near
;         Simulation segment register change due to sub entry point   ES now 3BA9
		mov	dx,3DAh
		mov	bx,8
		cmp	data_327,1
		jne	loc_1150		; Jump if not equal
		mov	dx,3BAh
		mov	bx,80h
loc_1150:
		in	al,dx			; port 3BAh, MDA/EGA vid status
		cmp	data_327,1
		jne	loc_1151		; Jump if not equal
		neg	al
loc_1151:
		and	ax,bx
		retn
sub_106		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_107		proc	near
		push	si
		push	di
		push	ds
		mov	ax,0
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0000
		mov	di,ax
		mov	bx,7
		sti				; Enable interrupts
loc_1152:
		mov	si,ds:timer_low_
		inc	si
loc_1153:
		mov	ax,ds:timer_low_
		cmp	ax,si
		je	loc_1154		; Jump if equal
		sub	ax,si
		cmp	ax,2
		jl	loc_1153		; Jump if <
		jmp	short loc_1152
loc_1154:
		mov	cx,3

locloop_1155:
		mov	al,es:[si]
		loop	locloop_1155		; Loop if cx > 0

		mov	ax,ds:timer_low_
		inc	di
;*		cmp	di,0FFFFh
		db	 83h,0FFh,0FFh		;  Fixup - byte match
		jz	loc_1156		; Jump if zero
		sub	ax,si
		cmp	ax,bx
		jl	loc_1154		; Jump if <
loc_1156:
		mov	ax,di
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		mov	al,ah
		xor	ah,ah			; Zero register
		mov	byte ptr data_312,al
		mov	dx,ax
		nop
		mov	cl,2
		cmp	al,0A0h
		jb	loc_1157		; Jump if below
		sub	dl,20h			; ' '
		shr	dl,cl			; Shift w/zeros fill
		add	ax,dx
loc_1157:
		mov	dx,ax
		mov	bx,ax
		and	dx,0FF0h
		shr	dx,cl			; Shift w/zeros fill
		sub	bx,dx
		add	ax,bx
		shr	bx,cl			; Shift w/zeros fill
		push	ds
		pop	es
		cld				; Clear direction
		mov	cx,9
		mov	di,offset data_233

locloop_1158:
		stosw				; Store ax to es:[di]
		sub	ax,bx
		loop	locloop_1158		; Loop if cx > 0

		pop	di
		pop	si
		retn
sub_107		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_108		proc	near
		push	bx
		push	cx
		push	dx
		push	si
		push	di
		xor	si,si			; Zero register
		xor	di,di			; Zero register
		xor	bx,bx			; Zero register
		xor	ax,ax			; Zero register
		mov	cl,4
		mov	bl,byte ptr data_312
		shl	bx,cl			; Shift w/zeros fill
		xor	cx,cx			; Zero register
		mov	dx,201h
		out	dx,al			; port 201h, start game 1-shots
loc_1159:
		in	al,dx			; port 201h, start game 1-shots
		inc	cx
		cmp	cx,bx
		jge	loc_1164		; Jump if > or =
		cmp	di,0
		jne	loc_1160		; Jump if not equal
		test	al,2
		jnz	loc_1161		; Jump if not zero
		mov	di,cx
loc_1160:
		nop
		nop
		nop
loc_1161:
		cmp	si,0
		jne	loc_1162		; Jump if not equal
		test	al,1
		jnz	loc_1163		; Jump if not zero
		mov	si,cx
loc_1162:
		nop
		nop
		nop
loc_1163:
		test	al,3
		jnz	loc_1159		; Jump if not zero
loc_1164:
		mov	cl,4
		shl	si,cl			; Shift w/zeros fill
		shl	di,cl			; Shift w/zeros fill
		mov	bl,byte ptr data_312
		mov	ax,si
		div	bl			; al, ah rem = ax/reg
		mov	cl,al
		mov	ax,di
		div	bl			; al, ah rem = ax/reg
		mov	ch,al
		mov	ax,cx
		pop	di
		pop	si
		pop	dx
		pop	cx
		pop	bx
		retn
sub_108		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_109		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		push	es
		push	ds
		mov	di,7
loc_1165:
		mov	ax,206h
		mov	bx,data_506e
		mov	es,bx
;         Simulation segment register change due to instruction       ES now F800
		xor	bx,bx			; Zero register
		mov	ch,0Ah
		mov	cl,1
		mov	dx,0
		int	13h			; Disk  dl=drive a  ah=func 02h
						;  read sectors to memory es:bx
						;   al=#,ch=cyl,cl=sectr,dh=head
		sti				; Enable interrupts
		dec	di
		jz	loc_1168		; Jump if zero
		jc	loc_1165		; Jump if carry Set
		mov	di,4
loc_1166:
		mov	ax,201h
		mov	bx,[bp+PARAMETER_1]
		mov	ch,0Ah
		mov	cl,7
		mov	dx,0
		push	ds
		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		nop
		int	13h			; Disk  dl=drive a  ah=func 02h
						;  read sectors to memory es:bx
						;   al=#,ch=cyl,cl=sectr,dh=head
		sti				; Enable interrupts
		dec	di
		jz	loc_1168		; Jump if zero
		jc	loc_1166		; Jump if carry Set
		mov	di,4
loc_1167:
		mov	ax,201h
		mov	bx,[bp+PARAMETER_1]
		mov	ch,0Ah
		mov	cl,0F1h
		mov	dx,0
		int	13h			; Disk  dl=drive a  ah=func 02h
						;  read sectors to memory es:bx
						;   al=#,ch=cyl,cl=sectr,dh=head
		sti				; Enable interrupts
		dec	di
		jz	loc_1168		; Jump if zero
		jnc	loc_1167		; Jump if carry=0
		cmp	ah,10h
		jne	loc_1167		; Jump if not equal
		cld				; Clear direction
		mov	si,offset data_313	; ('LODE RUNNER COPYRIGHT 19')
		mov	cx,2Fh
		mov	di,[bp+PARAMETER_1]
		add	di,data_33e
		repe	cmpsb			; Rep zf=1+cx >0 Cmp [si] to es:[di]
		jz	loc_1169		; Jump if zero
loc_1168:
		xor	ax,ax			; Zero register
		int	13h			; Disk  dl=drive a  ah=func 00h
						;  reset disk, al=return status
		xor	ax,ax			; Zero register
		jz	loc_1170		; Jump if zero
loc_1169:
		mov	ax,1
loc_1170:
		pop	ds
		pop	es
		pop	bp
		retn
sub_109		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_110		proc	near
		mov	es,data_319
;         Simulation segment register change due to instruction       ES now B800
		mov	bx,ax
		shr	bh,1			; Shift w/zeros fill
		shr	bh,1			; Shift w/zeros fill
		shr	bh,1			; Shift w/zeros fill
		shr	bh,1			; Shift w/zeros fill
		shr	bh,1			; Shift w/zeros fill
		and	ax,1FFFh
		mov	bl,50h			; 'P'
		div	bl			; al, ah rem = ax/reg
		mov	dl,ah
		xor	dh,dh			; Zero register
		xor	ah,ah			; Zero register
		shl	ax,1			; Shift w/zeros fill
		add	al,bh
		shl	ax,1			; Shift w/zeros fill
		mov	bx,ax
		lea	bx,cs:[0A64Bh][bx]	; Load effective addr
		retn
sub_110		endp

;         Simulation segment register change due to reset to default  ES now 3BA9
		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	si,[bp+4]
		mov	ax,[bp+6]
		call	sub_110
;         Simulation segment register change due to return from sub   ES now B800
		mov	ax,[si]
		inc	si
		inc	si
		xor	cx,cx			; Zero register
		mov	cl,ah
		mov	ch,ah
loc_1171:
		mov	di,[bx]
		add	di,dx
loc_1172:
		mov	ah,[si]
		inc	si
		xor	es:[di],ah
		inc	di
		dec	cl
		jnz	loc_1172		; Jump if not zero
		dec	al
		jz	loc_1173		; Jump if zero
		mov	cl,ch
		add	bx,2
		jmp	short loc_1171
loc_1173:
		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		pop	di
		pop	si
		pop	bp
		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_111		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6

		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	si,[bp+PARAMETER_1]
		mov	ax,[bp+PARAMETER_2]
		call	sub_110
;         Simulation segment register change due to return from sub   ES now B800
		mov	ax,[si]
		inc	si
		inc	si
		xor	cx,cx			; Zero register
		mov	cl,ah
		mov	ch,ah
loc_1174:
		mov	di,[bx]
		add	di,dx
loc_1175:
		mov	ah,[si]
		inc	si
		or	es:[di],ah
		inc	di
		dec	cl
		jnz	loc_1175		; Jump if not zero
		dec	al
		jz	loc_1176		; Jump if zero
		mov	cl,ch
		add	bx,2
		jmp	short loc_1174
loc_1176:
		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		pop	di
		pop	si
		pop	bp
		retn
sub_111		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_112		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	si,[bp+PARAMETER_1]
		mov	ax,[bp+PARAMETER_2]
		call	sub_110
;         Simulation segment register change due to return from sub   ES now B800
		shr	ax,1			; Shift w/zeros fill
		sub	ax,4
		mov	cx,50h
		mul	cl			; ax = reg * al
		add	si,ax
		add	si,dx
		mov	ax,[bp+PARAMETER_3]
		mov	bp,cx
		mov	cl,ah
		sub	bp,cx
loc_1177:
		mov	di,[bx]
		add	di,dx
		rep	movsb			; Rep when cx >0 Mov [si] to es:[di]
		dec	al
		jz	loc_1178		; Jump if zero
		mov	cl,ah
		add	si,bp
		add	bx,2
		jmp	short loc_1177
loc_1178:
		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		pop	di
		pop	si
		pop	bp
		retn
sub_112		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_113		proc	near
		mov	ax,0FF5Eh
		call	sub_153
		mov	word ptr [bp-4],0
		jmp	short loc_1180
loc_1179:
		inc	word ptr [bp-4]
loc_1180:
		mov	ax,[bp-4]
		cmp	ax,10h
		jl	loc_1181		; Jump if <
		jmp	loc_1196
loc_1181:
		mov	word ptr [bp-2],0
		jmp	short loc_1183
loc_1182:
		inc	word ptr [bp-2]
loc_1183:
		mov	ax,[bp-2]
		cmp	ax,1Ah
		jl	loc_1184		; Jump if <
		jmp	loc_1195
loc_1184:
		mov	cx,4
		shl	ax,cl			; Shift w/zeros fill
		mov	si,ax
		add	si,[bp-4]
		mov	al,ds:data_406e[si]
		cbw				; Convrt byte to word
		jmp	loc_1193

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1185:
		mov	ax,7B8Bh
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmp	loc_1194

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1186:
		mov	ax,7BAEh
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmp	loc_1194

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1187:
		mov	ax,7B45h
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmpn	loc_1194

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1188:
		mov	ax,7BD1h
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmp	short loc_1194

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1189:
		mov	ax,7BF4h
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmp	short loc_1194

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1190:
		mov	ax,7C5Dh
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmp	short loc_1194

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1191:
		mov	ax,7C80h
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmp	short loc_1194

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1192:
		mov	ax,79A1h
		push	ax
		push	word ptr [bp-4]
		push	word ptr [bp-2]
		call	sub_116
		add	sp,6
		jmp	short loc_1194
			                        ; now data because: invalid for uP
		db	 63h, 62h
data_158	dw	offset loc_1186
data_159	dw	offset loc_1187
data_160	dw	offset loc_1188
data_161	dw	offset loc_1189
data_162	dw	offset loc_1186
data_163	dw	offset loc_1185
data_164	dw	offset loc_1190
data_165	dw	offset loc_1191
data_166	dw	offset loc_1192
loc_1193:
		cmp	ax,0Ah
		jae	loc_1194		; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[62F6h][bx]	;*10 entries
loc_1194:
		jmp	loc_1182
loc_1195:
		jmp	loc_1179
loc_1196:
		mov	word ptr [bp-2],2
		jmp	short loc_1198
loc_1197:
		inc	word ptr [bp-2]
loc_1198:
		mov	ax,[bp-2]
		cmp	ax,9Eh
		jge	loc_1199		; Jump if > or =
		mov	si,ax
		mov	byte ptr ss:data_499e[bp+si],0
		jmp	short loc_1197
loc_1199:
		mov	byte ptr ss:data_499e[bp],2
		mov	byte ptr ss:data_500e[bp],4Eh	; 'N'
		mov	ax,1
		cmp	word ptr ds:data_469e,0
		je	loc_1200		; Jump if equal
		mov	ax,0
loc_1200:
		cmp	ax,0
		nop
		nop
		jmp	loc_1207
		mov	word ptr [bp-4],0A1h
		jmp	short loc_1202
loc_1201:
		add	word ptr [bp-4],50h
loc_1202:
		mov	ax,[bp-4]
		cmp	ax,0E11h
		jg	loc_1203		; Jump if >
		lea	ax,cs:[0FF5Eh][bp]	; Load effective addr
		push	ax
		push	word ptr [bp-4]
		call	sub_114
		add	sp,4
		lea	ax,cs:[0FF5Eh][bp]	; Load effective addr
		push	ax
		mov	ax,1C72h
		sub	ax,[bp-4]
		push	ax
		call	sub_114
		add	sp,4
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,23h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_1201
loc_1203:
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,64h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		nop
		nop
		push	si
		push	ds
		push	cs
		pop	ds
		sub	ax,ax
		mov	bx,ax
		mov	cx,3100h
		mov	si,100h

locloop_1204:
		add	ax,[si]
		xor	bx,[si]
		inc	si
		inc	si
		loop	locloop_1204		; Loop if cx > 0

		cmp	ax,data_182
		jmp	short loc_1206
		cmp	bx,data_183
		jmp	short loc_1206
		mov	si,21FBh
		mov	bx,505h
		mov	cx,180h

locloop_1205:
		mov	word ptr [bx+si],0
		inc	bx
		inc	bx
		loop	locloop_1205		; Loop if cx > 0

loc_1206:
		pop	ds
		pop	si
loc_1207:
		mov	word ptr [bp-4],0E11h
		mov	ax,[bp-4]
		add	ax,50h
		mov	[bp-2],ax
		jmp	short loc_1209
loc_1208:
		sub	word ptr [bp-4],50h
		add	word ptr [bp-2],50h
loc_1209:
		mov	ax,[bp-4]
		cmp	ax,0A1h
		jl	loc_ret_1210		; Jump if <
		push	ax
		call	sub_115
		pop	cx
		push	word ptr [bp-2]
		call	sub_115
		pop	cx
		mov	ax,0
		push	ax			; PARAMETER_2
		mov	ax,ds:data_397e
		mov	cx,23h
		imul	cx			; dx:ax = reg * ax
		push	ax			; PARAMETER_1
		call	sub_117
		add	sp,4
		jmp	short loc_1208

loc_ret_1210:
		retn
sub_113		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_114		proc	near
		mov	ax,0
		call	sub_153
		push	word ptr [bp+4]		; PARAMETER_2
		push	word ptr [bp+6]		; PARAMETER_1
		call	sub_79
		add	sp,4
		retn
sub_114		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_115		proc	near
		mov	ax,0
		call	sub_153
		mov	ax,4E02h
		push	ax			; PARAMETER_3
		push	word ptr [bp+4]		; PARAMETER_2
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_1
		call	sub_112
		add	sp,6
		retn
sub_115		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_116		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,[bp+6]
		mov	cx,1B8h
		imul	cx			; dx:ax = reg * ax
		add	ax,0A1h
		mov	[bp-2],ax
		mov	ax,[bp+4]
		mov	cx,3
		imul	cx			; dx:ax = reg * ax
		add	[bp-2],ax
		test	word ptr [bp+6],1
		jz	loc_1211		; Jump if zero
		add	word ptr [bp-2],1FD8h
loc_1211:
		mov	ax,0AA8Bh
		push	ax			; PARAMETER_3
		push	word ptr [bp-2]		; PARAMETER_2
		push	word ptr [bp+8]		; PARAMETER_1
		call	sub_80
		add	sp,6
		retn
sub_116		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_117		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6

		push	bp
		mov	bp,sp
		push	si
		mov	si,[bp+PARAMETER_1]
		cmp	si,0
		jle	loc_1214		; Jump if < or =
		mov	bx,1
		test	word ptr [bp+PARAMETER_2],0FFFFh
		jz	loc_1212		; Jump if zero
		mov	bx,0
		mov	al,0B6h
		out	43h,al			; port 43h, 8253 timer control
		mov	ax,[bp+PARAMETER_2]
		out	42h,al			; port 42h, 8253 timer 2 spkr
		mov	al,ah
		out	42h,al			; port 42h, 8253 timer 2 spkr
		in	al,61h			; port 61h, 8255 port B, read
		mov	ah,al
		or	al,3
		out	61h,al			; port 61h, 8255 B - spkr, etc
		cli				; Disable interrupts
loc_1212:
		call	$-643Fh

locloop_1213:
		loop	locloop_1213		; Loop if cx > 0

		dec	si
		jnz	loc_1212		; Jump if not zero
		test	bx,1
		jnz	loc_1214		; Jump if not zero
		sti				; Enable interrupts
		mov	al,ah
		out	61h,al			; port 61h, 8255 B - spkr, etc
						;  al = 0, speaker off
loc_1214:
		pop	si
		pop	bp
		retn
sub_117		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_118		proc	near
		mov	ax,0
		call	sub_153
		mov	byte ptr ds:data_398e,0
		mov	word ptr ds:data_491e,0
		mov	word ptr ds:[0A95Ah],2
		mov	al,data_196
		cbw				; Convrt byte to word
		mov	word ptr ds:[0A95Eh],ax
		mov	al,data_197
		cbw				; Convrt byte to word
		mov	word ptr ds:[0A95Ch],ax
		mov	word ptr ds:data_396e,1
		call	sub_97
		retn
sub_118		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_119		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,0
		mov	word ptr ds:data_460e,0
		mov	ds:data_459e,ax
		mov	ds:data_461e,ax
		call	sub_96
		test	ax,ax
		jz	loc_1215		; Jump if zero
		call	sub_94
		mov	ds:data_398e,al
		mov	ax,0
		retn
loc_1215:
		cmp	word ptr ds:data_399e,0
		je	loc_1217		; Jump if equal
		call	sub_105
		mov	[bp-2],ax
		test	ax,10h
		jz	loc_1216		; Jump if zero
		test	word ptr [bp-2],20h
		jnz	loc_1217		; Jump if not zero
loc_1216:
		mov	byte ptr ds:data_398e,39h	; '9'
		mov	ax,0
		retn
loc_1217:
		mov	ax,word ptr ds:[0A95Eh]
		cmp	ax,0
		jg	loc_1218		; Jump if >
		mov	bx,word ptr ds:[0A95Ah]
		inc	word ptr ds:[0A95Ah]
		mov	al,data_196[bx]
		cbw				; Convrt byte to word
		mov	word ptr ds:[0A95Eh],ax
		mov	di,word ptr ds:[0A95Ah]
		inc	word ptr ds:[0A95Ah]
		mov	al,data_196[di]
		cbw				; Convrt byte to word
		mov	word ptr ds:[0A95Ch],ax
		cmp	word ptr ds:[0A95Eh],0
		jne	loc_1218		; Jump if not equal
		cmp	ax,0FFh
		jne	loc_1218		; Jump if not equal
		mov	ax,0
		retn
loc_1218:
		mov	si,word ptr ds:[0A95Ch]
		dec	word ptr ds:[0A95Eh]
		test	si,10h
		jz	loc_1219		; Jump if zero
		mov	word ptr ds:data_461e,1
		jmp	short loc_1220
loc_1219:
		test	si,20h
		jz	loc_1220		; Jump if zero
		mov	word ptr ds:data_461e,0FFFFh
loc_1220:
		test	si,8
		jz	loc_1221		; Jump if zero
		mov	word ptr ds:data_459e,0FFFFh
		jmp	short loc_1222
loc_1221:
		test	si,4
		jz	loc_1222		; Jump if zero
		mov	word ptr ds:data_459e,1
loc_1222:
		test	si,2
		jz	loc_1223		; Jump if zero
		mov	word ptr ds:data_460e,0FFFFh
		jmp	short loc_1224
loc_1223:
		test	si,1
		jz	loc_1224		; Jump if zero
		mov	word ptr ds:data_460e,1
loc_1224:
		mov	ax,1
		retn
sub_119		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_120		proc	near
		mov	ax,0FFFEh
		call	sub_153
		mov	ax,ds:data_389e
		mov	ds:data_491e,ax
		cmp	ax,3
		jge	loc_1227		; Jump if > or =
		mov	word ptr [bp-2],0
		jmp	short loc_1226
loc_1225:
		inc	word ptr [bp-2]
loc_1226:
		mov	ax,[bp-2]
		cmp	ax,200h
		jge	loc_1227		; Jump if > or =
		mov	si,ds:data_491e
		mov	cx,9
		shl	si,cl			; Shift w/zeros fill
		add	si,ax
		mov	al,data_198[si]
		mov	bx,[bp-2]
		mov	ds:data_408e[bx],al
		jmp	short loc_1225
loc_1227:
		mov	ax,ds:data_479e
		mov	ds:data_418e,al
		inc	word ptr ds:data_491e
		mov	ax,ds:data_491e
		retn
sub_120		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_121		proc	near
		mov	ax,0FFF7h
		call	sub_153
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0A484h
		push	ax
		call	sub_99
		add	sp,6
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A4ADh
		push	ax
		call	sub_99
		add	sp,6
		call	sub_94
		cmp	ax,1
		jne	loc_1228		; Jump if not equal
		mov	ax,0
		retn
loc_1228:
		mov	byte ptr [bp-8],54h	; 'T'
		cmp	word ptr ds:data_379e+1,0
		je	loc_1229		; Jump if equal
		mov	byte ptr [bp-8],59h	; 'Y'
loc_1229:
		mov	word ptr [bp-2],0
		call	sub_97
loc_1230:
		mov	ax,1
		test	ax,ax
		jnz	loc_1231		; Jump if not zero
		jmp	loc_ret_1261
loc_1231:
		mov	si,[bp-2]
		mov	al,ds:data_477e[si]
		cbw				; Convrt byte to word
		mov	si,ax
		mov	al,data_315[si]
		mov	[bp-9],al
		cbw				; Convrt byte to word
		push	ax
		mov	ax,[bp-2]
		mov	cx,0Bh
		imul	cx			; dx:ax = reg * ax
		add	ax,0A3E7h
		push	ax
		mov	ax,0A4D6h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,8
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		cmp	byte ptr [bp-9],20h	; ' '
		jne	loc_1232		; Jump if not equal
		mov	ax,16h
		push	ax
		mov	si,[bp-2]
		mov	al,ds:data_477e[si]
		cbw				; Convrt byte to word
		push	ax
		call	sub_122
		add	sp,4
loc_1232:
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A4F8h
		push	ax
		call	sub_99
		add	sp,6
loc_1233:
		call	sub_96
		test	ax,ax
		jnz	loc_1236		; Jump if not zero
		mov	ax,ds:data_377e
		cmp	ax,0FDh
		jne	loc_1234		; Jump if not equal
		call	sub_78
		jmp	short loc_1235
loc_1234:
		call	sub_77
loc_1235:
		jmp	short loc_1233
loc_1236:
		call	sub_95
		mov	[bp-6],ax
		and	ax,0FF00h
		xchg	ah,al
		sub	ah,ah
		mov	[bp-7],al
		test	word ptr [bp-6],0FFh
		jnz	loc_1243		; Jump if not zero
		cmp	word ptr ds:data_379e+1,0
		je	loc_1243		; Jump if equal
		cbw				; Convrt byte to word
		jmp	short loc_1242

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1237:
		mov	byte ptr [bp-7],2Ah	; '*'
		jmp	short loc_1243

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1238:
		mov	byte ptr [bp-7],36h	; '6'
		jmp	short loc_1243

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1239:
		mov	byte ptr [bp-7],38h	; '8'
		jmp	short loc_1243

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1240:
		mov	byte ptr [bp-7],1Dh
		jmp	short loc_1243

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1241:
		mov	byte ptr [bp-7],58h	; 'X'
		jmp	short loc_1243
		cmp	al,67h			; 'g'
		and	al,67h			; 'g'
			                        ; now data because: instruction bad
		db	 66h, 67h
data_171	dw	offset loc_1241
data_172	dw	offset loc_1238
data_173	dw	offset loc_1243
data_174	dw	offset loc_1239
data_175	dw	offset loc_1243
data_176	dw	offset loc_1243
data_177	dw	offset loc_1240
loc_1242:
		sub	ax,47h
		cmp	ax,0Ah
		jae	loc_1243		; Jump if above or =
		xchg	bx,ax
		shl	bx,1			; Shift w/zeros fill
		jmp	word ptr cs:[6742h][bx]	;*10 entries

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1243:
		cmp	byte ptr [bp-7],1
		jne	loc_1244		; Jump if not equal
		call	sub_66
		mov	ax,0
		retn
loc_1244:
		cmp	byte ptr [bp-7],1Ch
		je	loc_1245		; Jump if equal
		cmp	byte ptr [bp-7],57h	; 'W'
		jne	loc_1246		; Jump if not equal
loc_1245:
		inc	word ptr [bp-2]
		jmp	loc_1259
loc_1246:
		cmp	byte ptr [bp-7],0
		jg	loc_1247		; Jump if >
		jmp	loc_1258
loc_1247:
		mov	al,[bp-7]
		cmp	al,[bp-8]
		jl	loc_1248		; Jump if <
		jmp	loc_1258
loc_1248:
		cbw				; Convrt byte to word
		mov	si,ax
		mov	al,data_315[si]
		mov	[bp-9],al
		cmp	al,7
		jne	loc_1249		; Jump if not equal
		jmp	loc_1258
loc_1249:
		mov	word ptr [bp-4],0
		jmp	short loc_1251
loc_1250:
		inc	word ptr [bp-4]
loc_1251:
		mov	ax,[bp-4]
		cmp	ax,6
		jge	loc_1252		; Jump if > or =
		mov	si,ax
		mov	al,ds:data_477e[si]
		cmp	al,[bp-7]
		je	loc_1252		; Jump if equal
		jmp	short loc_1250
loc_1252:
		mov	ax,[bp-4]
		cmp	ax,6
		je	loc_1253		; Jump if equal
		cmp	ax,[bp-2]
		jne	loc_1254		; Jump if not equal
loc_1253:
		mov	si,[bp-2]
		mov	al,[bp-7]
		mov	ds:data_477e[si],al
		jmp	short loc_1257
loc_1254:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
		mov	ax,[bp-4]
		mov	cx,0Bh
		imul	cx			; dx:ax = reg * ax
		add	ax,0A3E7h
		push	ax
		mov	si,[bp-4]
		mov	al,ds:data_477e[si]
		cbw				; Convrt byte to word
		mov	si,ax
		mov	al,data_315[si]
		cbw				; Convrt byte to word
		push	ax

;ÄÄÄÄÄ Indexed Entry Point ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_1255:
		mov	ax,0A521h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_142
		add	sp,8
		mov	ax,0
		push	ax
		mov	ax,17h
		push	ax
		mov	ax,0E198h
		push	ax
		call	sub_99
		add	sp,6
		cmp	byte ptr [bp-9],20h	; ' '
		jne	loc_1256		; Jump if not equal
		mov	ax,1
		push	ax
		mov	al,[bp-7]
		cbw				; Convrt byte to word
		push	ax
		call	sub_122
		add	sp,4
loc_1256:
		mov	ax,0
		push	ax
		mov	ax,18h
		push	ax
		mov	ax,0A542h
		push	ax
		call	sub_99
		add	sp,6
		call	sub_94
loc_1257:
		jmp	short loc_1259
loc_1258:
		mov	ax,7
		push	ax
		call	sub_18
		pop	cx
loc_1259:
		mov	ax,[bp-2]
		cmp	ax,6
		jne	loc_1260		; Jump if not equal
		mov	word ptr [bp-2],0
loc_1260:
		jmp	loc_1230

loc_ret_1261:
		retn
sub_121		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_122		proc	near
		mov	ax,0FFF7h
		call	sub_153
		mov	al,[bp+4]
		cbw				; Convrt byte to word
		jmp	$+0F3h
sub_122		endp

		mov	word ptr [bp-2],0A56Bh
		jmp	loc_1262
		mov	word ptr [bp-2],0A571h
		jmp	loc_1262
		mov	word ptr [bp-2],0A577h
		jmp	loc_1262
		mov	word ptr [bp-2],0A57Dh
		jmp	loc_1262
		mov	word ptr [bp-2],0A583h
		jmp	loc_1262
		mov	word ptr [bp-2],0A589h
		jmp	loc_1262
		mov	word ptr [bp-2],0A58Fh
		jmp	loc_1262
		mov	word ptr [bp-2],0A595h
		jmp	loc_1262
		mov	word ptr [bp-2],0A59Bh
		jmp	loc_1262
		mov	word ptr [bp-2],0A5A1h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5A7h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5ADh
		jmp	loc_1262
		mov	word ptr [bp-2],0A5B3h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5B9h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5BFh
		jmp	loc_1262
		mov	word ptr [bp-2],0A5C5h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5CBh
		jmp	loc_1262
		mov	word ptr [bp-2],0A5D1h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5D7h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5DDh
		jmp	loc_1262
		mov	word ptr [bp-2],0A5E3h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5E9h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5EFh
		jmp	loc_1262
		mov	word ptr [bp-2],0A5F5h
		jmp	loc_1262
		mov	word ptr [bp-2],0A5FBh
		jmp	loc_1262
		mov	word ptr [bp-2],0A601h
		jmp	loc_1262
		mov	word ptr [bp-2],0A607h
		jmp	loc_1262
		mov	word ptr [bp-2],0A60Dh
		jmp	loc_1262
		mov	word ptr [bp-2],0A613h
		jmp	loc_1262
		mov	word ptr [bp-2],0A619h
		jmpn	loc_1262
		call	sub_148
		push	ds
		add	byte ptr ds:[7800h],cl
			                        ; now data because: invalid for uP
		db	 68h, 0Fh, 00h, 80h, 68h, 37h
		db	 00h, 88h, 68h, 39h, 00h, 90h
		db	 68h, 3Bh, 00h, 98h, 68h, 3Ch
		db	 00h,0A0h, 68h, 3Dh, 00h,0A8h
		db	 68h, 3Eh, 00h,0B0h, 68h, 3Fh
		db	 00h,0B8h, 68h, 40h, 00h,0C0h
		db	 68h, 41h, 00h,0C8h, 68h, 42h
		db	 00h,0D0h, 68h, 43h, 00h,0D8h
		db	 68h, 44h, 00h,0E0h, 68h, 47h
		db	 00h,0E8h, 68h, 48h, 00h,0F0h
		db	 68h, 49h, 00h,0F8h, 68h, 4Ah
		db	 00h, 00h, 69h, 4Bh, 00h, 08h
		db	 69h, 4Ch, 00h, 10h, 69h, 4Dh
		db	 00h, 18h
		db	'iN', 0
		db	' iO', 0
		db	'(iP', 0
		db	'0iQ', 0
		db	'8iR', 0
		db	'@iS', 0
		db	'HiU', 0
		db	'PiV', 0
		db	'XiX', 0
		db	'`i'
		db	0E7h, 69h
loc_1262:
		push	word ptr [bp+6]
		mov	ax,17h
		push	ax
		push	word ptr [bp-2]
		call	sub_99
		add	sp,6
		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_123		proc	near
		mov	ah,0Fh
		int	10h			; Video display   ah=functn 0Fh
						;  get state, al=mode, bh=page
						;   ah=columns on screen
		mov	data_324,al
		xor	ah,ah			; Zero register
		retn
sub_123		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_124		proc	near
;         Simulation segment register change due to sub entry point   ES now 0000
		in	al,dx			; port 3BAh, MDA/EGA vid status
		and	al,bl
		xchg	ah,al
		mov	cx,7530h

locloop_1263:
		in	al,dx			; port 3BAh, MDA/EGA vid status
		and	al,bl
		cmp	ah,al
		jne	loc_1264		; Jump if not equal
		loop	locloop_1263		; Loop if cx > 0

		stc				; Set carry flag
		retn
loc_1264:
		clc				; Clear carry flag
		retn
sub_124		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_125		proc	near
		call	sub_129
		jc	loc_1265		; Jump if carry Set
		retn

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_126:
loc_1265:
;         Simulation segment register change due to sub entry point   ES now 3BA9
		mov	dx,3BFh
		mov	al,0
		out	dx,al			; port 3BFh, Hercules config
		call	sub_127
		mov	ah,0
		mov	al,4
		int	10h			; Video display   ah=functn 00h
						;  set display mode in al
		push	es
		mov	es,data_319
;         Simulation segment register change due to instruction       ES now B800
		mov	di,data_501e
		mov	dx,di
		mov	cx,5Ah
		mov	bx,cx
		cld				; Clear direction
		mov	ax,55AAh
		rep	stosw			; Rep when cx >0 Store ax to es:[di]
		mov	di,dx
		mov	cx,bx
		repe	scasw			; Rep zf=1+cx >0 Scan es:[di] for ax
		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		jcxz	loc_1266		; Jump if cx=0
		stc				; Set carry flag
		retn
loc_1266:
		mov	data_327,0
		mov	ax,0
		mov	dx,2000h
		mov	cx,0C8h
		mov	bx,offset data_326

locloop_1267:
		mov	[bx],ax
		add	bx,2
		add	ax,50h
		xchg	dx,ax
		loop	locloop_1267		; Loop if cx > 0

		clc				; Clear carry flag
		retn
sub_125		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_127		proc	near
		push	ds
		mov	ax,40h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0040
		mov	al,ds:equip_bits
		and	al,0CFh
		or	al,20h			; ' '
		mov	ds:equip_bits,al
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		retn
sub_127		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_128		proc	near
;         Simulation segment register change due to sub entry point   ES now 0000
		push	ds
		mov	ax,40h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0040
		mov	al,ds:equip_bits
		and	al,0CFh
		or	al,30h			; '0'
		mov	ds:equip_bits,al
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		retn
sub_128		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_129		proc	near
		mov	dx,3BFh
		mov	al,3
		out	dx,al			; port 3BFh, Hercules config
		call	sub_128
		mov	dx,3BAh
		mov	bl,80h
		call	sub_124
		jnc	loc_1268		; Jump if carry=0
		stc				; Set carry flag
		retn
loc_1268:
		mov	data_327,1
		push	si
		push	di
		mov	cx,32h
		mov	bx,offset data_326
		mov	si,658h
		mov	di,2658h
		mov	ax,4658h
		mov	dx,6658h

locloop_1269:
		mov	[bx],si
		mov	[bx+2],di
		mov	[bx+4],ax
		mov	[bx+6],dx
		add	si,5Ah
		add	di,5Ah
		add	ax,5Ah
		add	dx,5Ah
		add	bx,8
		loop	locloop_1269		; Loop if cx > 0

		call	sub_137
		mov	si,0A63Fh
		call	sub_130
		mov	dx,3B8h
		mov	al,8Ah
		out	dx,al			; port 3B8h, MDA video control
		pop	di
		pop	si
		clc				; Clear carry flag
		retn
sub_129		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_130		proc	near
		mov	dx,3B4h
		mov	cx,0Ch
		xor	ah,ah			; Zero register

locloop_1270:
		mov	al,ah
		out	dx,al			; port 3B4h, MDA/EGA reg index
						;  al = 0, horiz char total
		inc	dx
		lodsb				; String [si] to al
		out	dx,al			; port 3B5h, MDA/EGA indxd data
		inc	ah
		dec	dx
		loop	locloop_1270		; Loop if cx > 0

		retn
sub_130		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_131		proc	near
;         Simulation segment register change due to sub entry point   ES now 3BA9
		push	ds
		mov	ax,0F000h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now F000
		cmp	word ptr ds:data_504e,4F43h
		jne	loc_1271		; Jump if not equal
		mov	ax,0F002h
		int	16h			; ??INT Non-standard interrupt
loc_1271:
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		int	11h			; Put equipment bits in ax
		mov	data_323,al
		mov	ah,19h
		int	21h			; DOS Services  ah=function 19h
						;  get default drive al  (0=a:)
		mov	data_320,al
		mov	dl,0
		mov	ah,0Eh
		nop
		nop
		call	sub_123
		call	sub_126
		jc	loc_1272		; Jump if carry Set
		cmp	byte ptr data_324,7
		jne	loc_1273		; Jump if not equal
		call	sub_128
		mov	ax,7
		int	10h			; Video display   ah=functn 00h
						;  set display mode in al
		mov	ax,7
		push	ax
		mov	ax,0Eh
		push	ax
		mov	ax,0A7FBh
		push	ax
		call	sub_102
		add	sp,6
		mov	ax,7
		push	ax
		mov	ax,0Fh
		push	ax
		mov	ax,0A836h
		push	ax
		call	sub_102
		add	sp,6
		call	sub_127
		mov	ax,4
		int	10h			; Video display   ah=functn 00h
						;  set display mode in al
		jmp	short loc_1273
loc_1272:
		call	sub_129
		jc	loc_1274		; Jump if carry Set
loc_1273:
		call	sub_135
		retn
loc_1274:
		call	sub_132
		xor	ax,ax			; Zero register
		retn
sub_131		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_132		proc	near
		call	sub_137
		mov	bl,data_323
		push	ds
		mov	ax,40h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0040
		mov	ds:equip_bits,bl
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		mov	ah,0
		mov	al,data_324
		int	10h			; Video display   ah=functn 00h
						;  set display mode in al
		mov	dl,data_320
		mov	ah,0Eh
		int	21h			; DOS Services  ah=function 0Eh
						;  set default drive dl  (0=a:)
		push	ds
		mov	ax,0F000h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now F000
		cmp	word ptr ds:data_504e,4F43h
		jne	loc_1275		; Jump if not equal
		mov	ax,0F008h
		int	16h			; ??INT Non-standard interrupt
loc_1275:
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		call	sub_133
		retn
sub_132		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_133		proc	near
		push	si
;*		lea	si,cs:[0A622h]		; Load effective addr
		db	 8Dh, 36h, 22h,0A6h	;  Fixup - byte match
		call	sub_134
;*		lea	si,cs:[0A62Bh]		; Load effective addr
		db	 8Dh, 36h, 2Bh,0A6h	;  Fixup - byte match
		call	sub_134
;*		lea	si,cs:[0A634h]		; Load effective addr
		db	 8Dh, 36h, 34h,0A6h	;  Fixup - byte match
		call	sub_134
		pop	si
		retn
sub_133		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_134		proc	near
		push	ds
		mov	ah,25h			; '%'
		mov	al,[si]
		mov	dx,[si+1]
		mov	ds,[si+3]
;         Simulation segment register change due to instruction       DS now 0000
		int	21h			; DOS Services  ah=function 25h
						;  set intrpt vector al to ds:dx
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		retn
sub_134		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_135		proc	near
		push	ds
		push	es
		push	si
;*		lea	si,cs:[0A622h]		; Load effective addr
		db	 8Dh, 36h, 22h,0A6h	;  Fixup - byte match
		call	sub_136
;*		lea	si,cs:[0A62Bh]		; Load effective addr
		db	 8Dh, 36h, 2Bh,0A6h	;  Fixup - byte match
		call	sub_136
;*		lea	si,cs:[0A634h]		; Load effective addr
		db	 8Dh, 36h, 34h,0A6h	;  Fixup - byte match
		call	sub_136
		push	cs
		pop	ds
		mov	dx,offset int_23h_entry
		mov	al,5
		mov	ah,25h
		int	21h			; DOS Services  ah=function 25h
						;  set intrpt vector al to ds:dx
		mov	dx,offset int_23h_entry
		mov	al,23h			; '#'
		mov	ah,25h
		int	21h			; DOS Services  ah=function 25h
						;  set intrpt vector al to ds:dx
		mov	dx,offset int_24h_entry
		mov	al,24h			; '$'
		mov	ah,25h
		int	21h			; DOS Services  ah=function 25h
						;  set intrpt vector al to ds:dx
		pop	si
		pop	es
		pop	ds
		retn

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_136:
		mov	al,[si]
		mov	ah,35h
		int	21h			; DOS Services  ah=function 35h
						;  get intrpt vector al in es:bx
		mov	[si+1],bx
		mov	[si+3],es
		retn
sub_135		endp


;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;
;                       External Entry Point
;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

int_24h_entry	proc	far
		push	bp
		mov	bp,sp
		push	ds
		mov	ax,[bp+16h]
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now 0000
		mov	ax,di
		xor	ah,ah			; Zero register
		cmp	ax,0
		je	loc_1276		; Jump if equal
		cmp	ax,2
		je	loc_1276		; Jump if equal
		mov	ax,3
loc_1276:
		add	ax,80h
		mov	ds:data_11e,ax
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		pop	bp
		sub	ax,ax
int_24h_entry	endp


;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;
;                       External Entry Point
;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

int_23h_entry	proc	far
		iret				; Interrupt return
int_23h_entry	endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_137		proc	near
		push	di
		push	es
		mov	es,data_319
;         Simulation segment register change due to instruction       ES now B800
		mov	cx,4000h
		mov	ax,0
		mov	di,ax
		cld				; Clear direction
		rep	stosw			; Rep when cx >0 Store ax to es:[di]
		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		pop	di
		retn
sub_137		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_138		proc	near
		mov	es,data_319
;         Simulation segment register change due to instruction       ES now B800
		shr	dx,1			; Shift w/zeros fill
		shr	dx,1			; Shift w/zeros fill
		shl	di,1			; Shift w/zeros fill
		lea	di,cs:[0A64Bh][di]	; Load effective addr
		retn
sub_138		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_139		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

;         Simulation segment register change due to sub entry point   ES now 3BA9
		push	bp
		mov	bp,sp
		push	si
		push	di
		push	es
		mov	dx,[bp+PARAMETER_1]
		mov	ax,[bp+PARAMETER_2]
		mov	cx,[bp+PARAMETER_3]
		mov	di,ax
		call	sub_138
;         Simulation segment register change due to return from sub   ES now B800
		mov	bx,di
		mov	si,cx
		shl	si,1			; Shift w/zeros fill
		shl	si,1			; Shift w/zeros fill
		shl	si,1			; Shift w/zeros fill
		add	si,data_503e
		cld				; Clear direction
		mov	cx,8

locloop_1277:
		mov	di,[bx]
		add	di,dx
		push	ds
		mov	ax,0F000h
		mov	ds,ax
;         Simulation segment register change due to instruction       DS now F000
		lodsb				; String [si] to al
		pop	ds
;         Simulation segment register change due to instruction       DS now 3BA9
		call	sub_140
		add	bx,2
		loop	locloop_1277		; Loop if cx > 0

		pop	es
;         Simulation segment register change due to instruction       ES now 3BA9
		pop	di
		pop	si
		pop	bp
		retn
sub_139		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_140		proc	near
;         Simulation segment register change due to sub entry point   ES now B800
		call	sub_141
		xchg	ah,al
		and	ax,data_329
		stosw				; Store ax to es:[di]
		retn
sub_140		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_141		proc	near
		push	bx
		mov	bx,offset data_330
		mov	ah,al
		shr	al,1			; Shift w/zeros fill
		shr	al,1			; Shift w/zeros fill
		shr	al,1			; Shift w/zeros fill
		shr	al,1			; Shift w/zeros fill
		xlat				; al=[al+[bx]] table
		xchg	ah,al
		and	al,0Fh
		xlat				; al=[al+[bx]] table
		pop	bx
		retn
sub_141		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_142		proc	near
;         Simulation segment register change due to sub entry point   ES now 3BA9
		mov	ax,0
		call	sub_153
		mov	ax,[bp+4]
		mov	word ptr ds:[0A962h],ax
		lea	ax,[bp+8]		; Load effective addr
		push	ax			; PARAMETER_3
		push	word ptr [bp+6]		; PARAMETER_2
		mov	ax,6CF2h
		push	ax			; PARAMETER_1
		call	sub_143
		add	sp,6
		mov	si,ax
		mov	bx,word ptr ds:[0A962h]
		mov	byte ptr [bx],0
		mov	ax,si
		retn
sub_142		endp

		mov	ax,0
		call	sub_153
		mov	ax,[bp+4]
		mov	si,word ptr ds:[0A962h]
		inc	word ptr ds:[0A962h]
		mov	[si],al
		cbw				; Convrt byte to word
		and	ax,0FFh
		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_143		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		add	sp,0FE5Ah
		push	di
		push	si
		mov	si,[bp+PARAMETER_1]
		mov	di,[bp+PARAMETER_2]
loc_1278:
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
		test	ax,ax
		jnz	loc_1279		; Jump if not zero
		jmp	loc_1322
loc_1279:
		cmp	ax,25h
		je	loc_1280		; Jump if equal
		jmp	loc_1320
loc_1280:
		mov	ax,[bp+PARAMETER_3]
		mov	[bp-14h],ax
		mov	byte ptr ss:data_498e[bp],0
		mov	word ptr [bp-4],1
		mov	word ptr [bp-6],20h
		mov	word ptr [bp-8],7FFFh
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
		cmp	ax,2Dh
		jne	loc_1281		; Jump if not equal
		mov	word ptr [bp-4],0
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
loc_1281:
		mov	ax,[bp-2]
		cmp	ax,30h
		jne	loc_1282		; Jump if not equal
		mov	word ptr [bp-6],30h
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
loc_1282:
		mov	ax,[bp-2]
		cmp	ax,2Ah
		jne	loc_1283		; Jump if not equal
		mov	bx,[bp+PARAMETER_3]
		add	word ptr [bp+PARAMETER_3],2
		mov	ax,[bx]
		mov	[bp-0Ah],ax
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
		jmp	short loc_1286
loc_1283:
		mov	word ptr [bp-0Ah],0
		jmp	short loc_1285
loc_1284:
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
loc_1285:
		mov	bx,[bp-2]
		test	byte ptr data_333[bx],4
		jz	loc_1286		; Jump if zero
		mov	ax,[bp-0Ah]
		mov	dx,ax
		shl	ax,1			; Shift w/zeros fill
		shl	ax,1			; Shift w/zeros fill
		add	ax,dx
		shl	ax,1			; Shift w/zeros fill
		add	ax,bx
		add	ax,0FFD0h
		mov	[bp-0Ah],ax
		jmp	short loc_1284
loc_1286:
		mov	ax,[bp-2]
		cmp	ax,2Eh
		jne	loc_1290		; Jump if not equal
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
		cmp	ax,2Ah
		jne	loc_1287		; Jump if not equal
		mov	bx,[bp+PARAMETER_3]
		add	word ptr [bp+PARAMETER_3],2
		mov	ax,[bx]
		mov	[bp-8],ax
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
		jmp	short loc_1290
loc_1287:
		mov	word ptr [bp-8],0
		jmp	short loc_1289
loc_1288:
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
loc_1289:
		mov	bx,[bp-2]
		test	byte ptr data_333[bx],4
		jz	loc_1290		; Jump if zero
		mov	ax,[bp-8]
		mov	dx,ax
		shl	ax,1			; Shift w/zeros fill
		shl	ax,1			; Shift w/zeros fill
		add	ax,dx
		shl	ax,1			; Shift w/zeros fill
		add	ax,bx
		add	ax,0FFD0h
		mov	[bp-8],ax
		jmp	short loc_1288
loc_1290:
		mov	ax,[bp-2]
		cmp	ax,6Ch
		jne	loc_1291		; Jump if not equal
		mov	bx,di
		inc	di
		mov	al,[bx]
		cbw				; Convrt byte to word
		mov	[bp-2],ax
		mov	bx,[bp+PARAMETER_3]
		add	word ptr [bp+PARAMETER_3],4
		mov	ax,[bx]
		mov	dx,[bx+2]
		mov	[bp-0Ch],dx
		mov	[bp-0Eh],ax
		jmp	short loc_1294
loc_1291:
		mov	ax,[bp-2]
		cmp	ax,64h
		jne	loc_1292		; Jump if not equal
		mov	bx,[bp+PARAMETER_3]
		add	word ptr [bp+PARAMETER_3],2
		mov	ax,[bx]
		cwd				; Word to double word
		mov	[bp-0Ch],dx
		mov	[bp-0Eh],ax
		jmp	short loc_1294
loc_1292:
		mov	ax,[bp-2]
		cmp	ax,73h
		jne	loc_1293		; Jump if not equal
		mov	bx,[bp+PARAMETER_3]
		add	word ptr [bp+PARAMETER_3],2
		mov	ax,[bx]
		mov	[bp-16h],ax
		jmp	short loc_1294
loc_1293:
		mov	bx,[bp+PARAMETER_3]
		add	word ptr [bp+PARAMETER_3],2
		mov	ax,[bx]
		sub	dx,dx
		mov	[bp-0Ch],dx
		mov	[bp-0Eh],ax
loc_1294:
		mov	ax,[bp-2]
		jmp	loc_1307
loc_1295:
		lea	ax,cs:[0FE68h][bp]	; Load effective addr
		push	ax			; PARAMETER_4
		mov	ax,8
		push	ax			; PARAMETER_3
		push	word ptr [bp-0Ch]	; PARAMETER_2
		push	word ptr [bp-0Eh]	; PARAMETER_1
		call	sub_145
		add	sp,8
		mov	[bp-16h],ax
		jmp	loc_1310
loc_1296:
		cmp	word ptr [bp-0Ch],0
		jg	loc_1297		; Jump if >
		jnz	loc_1298		; Jump if not zero
		cmp	word ptr [bp-0Eh],0
		jb	loc_1298		; Jump if below
loc_1297:
		jmp	short loc_1299
loc_1298:
		lea	ax,cs:[0FE68h][bp]	; Load effective addr
		push	ax			; PARAMETER_4
		mov	ax,0Ah
		push	ax			; PARAMETER_3
		mov	dx,[bp-0Ch]
		mov	ax,[bp-0Eh]
		neg	dx
		neg	ax
		sbb	dx,0
		push	dx			; PARAMETER_2
		push	ax			; PARAMETER_1
		call	sub_144
		add	sp,8
		mov	[bp-16h],ax
		dec	word ptr [bp-16h]
		mov	bx,[bp-16h]
		mov	byte ptr [bx],2Dh	; '-'
		jmp	short loc_1300
loc_1299:
		lea	ax,cs:[0FE68h][bp]	; Load effective addr
		push	ax			; PARAMETER_4
		mov	ax,0Ah
		push	ax			; PARAMETER_3
		push	word ptr [bp-0Ch]	; PARAMETER_2
		push	word ptr [bp-0Eh]	; PARAMETER_1
		call	sub_144
		add	sp,8
		mov	[bp-16h],ax
loc_1300:
		jmp	loc_1310
loc_1301:
		lea	ax,cs:[0FE68h][bp]	; Load effective addr
		push	ax			; PARAMETER_4
		mov	ax,0Ah
		push	ax			; PARAMETER_3
		push	word ptr [bp-0Ch]	; PARAMETER_2
		push	word ptr [bp-0Eh]	; PARAMETER_1
		call	sub_145
		add	sp,8
		mov	[bp-16h],ax
		jmp	short loc_1310
loc_1302:
		lea	ax,cs:[0FE68h][bp]	; Load effective addr
		push	ax			; PARAMETER_4
		mov	ax,10h
		push	ax			; PARAMETER_3
		push	word ptr [bp-0Ch]	; PARAMETER_2
		push	word ptr [bp-0Eh]	; PARAMETER_1
		call	sub_145
		add	sp,8
		mov	[bp-16h],ax
		jmp	short loc_1310
loc_1303:
		push	word ptr [bp-16h]	; PARAMETER_1
		call	sub_152
		pop	cx
		mov	[bp-10h],ax
		jmp	short loc_1311
loc_1304:
		mov	dx,[bp-0Ch]
		mov	ax,[bp-0Eh]
		mov	[bp-2],ax
		jmp	short loc_1306
loc_1305:
		mov	ax,[bp-14h]
		mov	[bp+PARAMETER_3],ax
loc_1306:
		mov	ax,[bp-2]
		lea	bx,ss:data_497e[bp]	; Load effective addr
		mov	[bp-16h],bx
		mov	[bx],al
		jmp	short loc_1310
loc_1307:
		cmp	ax,63h
		je	loc_1304		; Jump if equal
		cmp	ax,64h
		jne	loc_1308		; Jump if not equal
		jmp	loc_1296
loc_1308:
		cmp	ax,6Fh
		jne	loc_1309		; Jump if not equal
		jmp	loc_1295
loc_1309:
		cmp	ax,73h
		je	loc_1303		; Jump if equal
		cmp	ax,75h
		je	loc_1301		; Jump if equal
		cmp	ax,78h
		je	loc_1302		; Jump if equal
		jmp	short loc_1305
loc_1310:
		lea	ax,cs:[0FE68h][bp]	; Load effective addr
		sub	ax,[bp-16h]
		mov	[bp-10h],ax
loc_1311:
		mov	ax,[bp-10h]
		cmp	ax,[bp-8]
		jle	loc_1312		; Jump if < or =
		mov	ax,[bp-8]
		mov	[bp-10h],ax
loc_1312:
		cmp	word ptr [bp-4],0
		je	loc_1314		; Jump if equal
loc_1313:
		mov	ax,[bp-0Ah]
		dec	word ptr [bp-0Ah]
		cmp	ax,[bp-10h]
		jle	loc_1314		; Jump if < or =
		push	word ptr [bp-6]
		call	si			;*
		pop	cx
		jmp	short loc_1313
loc_1314:
		mov	word ptr [bp-12h],0
		jmp	short loc_1316
loc_1315:
		inc	word ptr [bp-12h]
loc_1316:
		mov	bx,[bp-16h]
		cmp	byte ptr [bx],0
		je	loc_1317		; Jump if equal
		mov	ax,[bp-12h]
		cmp	ax,[bp-8]
		jge	loc_1317		; Jump if > or =
		inc	word ptr [bp-16h]
		mov	al,[bx]
		cbw				; Convrt byte to word
		push	ax
		call	si			;*
		pop	cx
		jmp	short loc_1315
loc_1317:
		cmp	word ptr [bp-4],0
		jne	loc_1319		; Jump if not equal
loc_1318:
		mov	ax,[bp-0Ah]
		dec	word ptr [bp-0Ah]
		cmp	ax,[bp-10h]
		jle	loc_1319		; Jump if < or =
		mov	ax,20h
		push	ax
		call	si			;*
		pop	cx
		jmp	short loc_1318
loc_1319:
		jmp	short loc_1321
loc_1320:
		push	word ptr [bp-2]
		call	si			;*
		pop	cx
loc_1321:
		jmp	loc_1278
loc_1322:
		pop	si
		pop	di
		mov	sp,bp
		pop	bp
		retn
sub_143		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_144		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8
PARAMETER_4	=	0Ah			; bp+0Ah

		push	bp
		mov	bp,sp
		push	di
		push	si
		mov	si,[bp+PARAMETER_1]
		mov	di,[bp+PARAMETER_2]
loc_1323:
		mov	ax,[bp+PARAMETER_3]
		cwd				; Word to double word
		mov	bx,dx
		mov	cx,ax
		mov	dx,di
		mov	ax,si
		call	sub_150
		mov	bx,ax
		mov	al,byte ptr data_332[bx]	; ('0123456789abcdef')
		dec	word ptr [bp+PARAMETER_4]
		mov	bx,[bp+PARAMETER_4]
		mov	[bx],al
		mov	ax,[bp+PARAMETER_3]
		cwd				; Word to double word
		mov	bx,dx
		mov	cx,ax
		mov	dx,di
		mov	ax,si
		call	sub_149
		mov	di,dx
		mov	si,ax
		or	dx,ax
		jnz	loc_1323		; Jump if not zero
		mov	ax,[bp+PARAMETER_4]
		pop	si
		pop	di
		mov	sp,bp
		pop	bp
		retn
sub_144		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_145		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8
PARAMETER_4	=	0Ah			; bp+0Ah

		push	bp
		mov	bp,sp
;*		add	sp,0FFFEh
		db	 83h,0C4h,0FEh		;  Fixup - byte match
		push	di
		push	si
		mov	si,[bp+PARAMETER_3]
		mov	di,[bp+PARAMETER_4]
		cmp	word ptr [bp+PARAMETER_2],0
		jg	loc_1324		; Jump if >
		jnz	loc_1325		; Jump if not zero
		cmp	word ptr [bp+PARAMETER_1],0
		jb	loc_1325		; Jump if below
loc_1324:
		jmp	short loc_1326
loc_1325:
		mov	dx,[bp+PARAMETER_2]
		mov	ax,[bp+PARAMETER_1]
		and	ax,1
		mov	[bp-2],ax
		mov	dx,[bp+PARAMETER_2]
		mov	ax,[bp+PARAMETER_1]
		sar	dx,1			; Shift w/sign fill
		rcr	ax,1			; Rotate thru carry
		and	ax,0FFFFh
		and	dx,7FFFh
		mov	[bp+PARAMETER_2],dx
		mov	[bp+PARAMETER_1],ax
		push	dx
		push	ax
		mov	ax,si
		sar	ax,1			; Shift w/sign fill
		cwd				; Word to double word
		mov	bx,dx
		mov	cx,ax
		pop	ax
		pop	dx
		call	sub_150
		mov	bx,ax
		shl	bx,1			; Shift w/zeros fill
		add	bx,[bp-2]
		mov	al,byte ptr data_332[bx]	; ('0123456789abcdef')
		dec	di
		mov	[di],al
		mov	ax,si
		sar	ax,1			; Shift w/sign fill
		cwd				; Word to double word
		mov	bx,dx
		mov	cx,ax
		mov	dx,[bp+PARAMETER_2]
		mov	ax,[bp+PARAMETER_1]
		call	sub_149
		mov	[bp+PARAMETER_2],dx
		mov	[bp+PARAMETER_1],ax
loc_1326:
		push	di			; PARAMETER_4
		push	si			; PARAMETER_3
		push	word ptr [bp+PARAMETER_2]	; PARAMETER_2
		push	word ptr [bp+PARAMETER_1]	; PARAMETER_1
		call	sub_144
		add	sp,8
		pop	si
		pop	di
		mov	sp,bp
		pop	bp
		retn
sub_145		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_146		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6

		push	bp
		mov	bp,sp
		push	word ptr [bp+PARAMETER_2]
		mov	ax,301h
		push	ax			; PARAMETER_2
		push	word ptr [bp+PARAMETER_1]	; PARAMETER_1
		call	sub_147
		add	sp,6
		mov	sp,bp
		pop	bp
		retn
sub_146		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_147		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6

		push	bp
		mov	bp,sp
		push	di
		push	si
		mov	di,[bp+PARAMETER_2]
;*		and	di,3
		db	 81h,0E7h, 03h, 00h	;  Fixup - byte match
		or	di,3D00h
		test	word ptr [bp+PARAMETER_2],200h
		jz	loc_1327		; Jump if zero
		mov	di,3C00h
loc_1327:
		mov	ax,0
		push	ax			; PARAMETER_3
		push	word ptr [bp+PARAMETER_1]	; PARAMETER_2
		push	di			; PARAMETER_1
		call	sub_167
		add	sp,6
		mov	si,ax
		mov	ax,si
		cmp	ax,0FFFFh
		jne	loc_1329		; Jump if not equal
		test	word ptr [bp+PARAMETER_2],100h
		jz	loc_1328		; Jump if zero
		mov	ax,0
		push	ax			; PARAMETER_3
		push	word ptr [bp+PARAMETER_1]	; PARAMETER_2
		mov	ax,3Ch
		push	ax			; PARAMETER_1
		call	sub_167
		add	sp,6
		mov	si,ax
loc_1328:
		jmp	short loc_1331
loc_1329:
		test	word ptr [bp+PARAMETER_2],400h
		jz	loc_1331		; Jump if zero
		push	si			; PARAMETER_1
		call	sub_163
		pop	cx
		mov	data_340,13h
		mov	ax,0FFFFh
loc_1330:
		pop	si
		pop	di
		mov	sp,bp
		pop	bp
		retn
loc_1331:
		cmp	si,0
		jl	loc_1333		; Jump if <
		test	word ptr [bp+PARAMETER_2],800h
		jz	loc_1332		; Jump if zero
		mov	ax,2
		push	ax			; PARAMETER_4
		mov	dx,0
		mov	ax,0
		push	dx			; PARAMETER_3
		push	ax			; PARAMETER_2
		push	si			; PARAMETER_1
		call	sub_164
		add	sp,8
loc_1332:
		push	si			; PARAMETER_1
		call	sub_158
		pop	cx
		mov	data_347[si],al
loc_1333:
		mov	ax,si
		jmp	short loc_1330
sub_147		endp

		push	bp
		mov	bp,sp
		mov	ah,2Ah
		int	21h			; DOS Services  ah=function 2Ah
						;  get date, cx=year, dh=month
						;   dl=day, al=day-of-week 0=SUN
		sub	cx,7BCh
		mov	ax,cx
		mov	cl,9
		shl	ax,cl			; Shift w/zeros fill
		and	dh,0Fh
		and	dl,1Fh
		mov	cl,3
		shl	dl,cl			; Shift w/zeros fill
		shr	dx,cl			; Shift w/zeros fill
		or	ax,dx
		push	ax
		mov	ah,2Ch
		int	21h			; DOS Services  ah=function 2Ch
						;  get time, cx=hrs/min, dx=sec
		mov	ax,cx
		and	ah,1Fh
		and	al,3Fh			; '?'
		and	dh,3Fh			; '?'
		shr	dh,1			; Shift w/zeros fill
		shl	al,1			; Shift w/zeros fill
		shl	al,1			; Shift w/zeros fill
		mov	cl,3
		shl	ax,cl			; Shift w/zeros fill
		or	al,dh
		pop	dx
		mov	bx,[bp+4]
		test	bx,bx
		jz	loc_1334		; Jump if zero
		mov	es:[bx],ax
		mov	es:[bx+2],dx
loc_1334:
		pop	bp
		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_148		proc	near
		pop	bx
		mov	cx,cs:[bx]
		add	bx,2
		jcxz	loc_1336		; Jump if cx=0

locloop_1335:
		cmp	ax,cs:[bx]
		je	loc_1337		; Jump if equal
		add	bx,4
		loop	locloop_1335		; Loop if cx > 0

loc_1336:
		push	word ptr cs:[bx]
		retn
loc_1337:
		push	word ptr cs:[bx+2]
		retn
sub_148		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_149		proc	near
		push	di
		sub	di,di
		test	dx,dx
		jns	loc_1338		; Jump if not sign
		neg	dx
		neg	ax
		sbb	dx,0
		inc	di
loc_1338:
		test	bx,bx
		jns	loc_1339		; Jump if not sign
		neg	bx
		neg	cx
		sbb	bx,0
;*		xor	di,1
		db	 81h,0F7h, 01h, 00h	;  Fixup - byte match
loc_1339:
		call	sub_151
loc_1340:
		test	di,di
		jz	loc_1341		; Jump if zero
		neg	dx
		neg	ax
		sbb	dx,0
loc_1341:
		pop	di
		retn
sub_149		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_150		proc	near
		push	di
		mov	di,0
		test	dx,dx
		jns	loc_1342		; Jump if not sign
		neg	dx
		neg	ax
		sbb	dx,0
		inc	di
loc_1342:
		test	bx,bx
		jns	loc_1343		; Jump if not sign
		neg	bx
		neg	cx
		sbb	bx,0
loc_1343:
		call	sub_151
		mov	ax,cx
		mov	dx,bx
		jmp	short loc_1340
sub_150		endp

		call	sub_151
		mov	ax,cx
		mov	dx,bx
		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_151		proc	near
		test	bx,bx
		jnz	loc_1345		; Jump if not zero
		cmp	cx,dx
		ja	loc_1344		; Jump if above
		push	ax
		mov	ax,dx
		sub	dx,dx
		div	cx			; ax,dx rem=dx:ax/reg
		mov	bx,ax
		pop	ax
		div	cx			; ax,dx rem=dx:ax/reg
		mov	cx,dx
		mov	dx,bx
		sub	bx,bx
		retn
loc_1344:
		div	cx			; ax,dx rem=dx:ax/reg
		mov	cx,dx
		mov	dx,bx
		retn
loc_1345:
		push	bp
		push	di
		push	si
		mov	si,cx
		mov	di,bx
		sub	bx,bx
		sub	bp,bp
		mov	cx,20h

locloop_1346:
		shl	ax,1			; Shift w/zeros fill
		rcl	dx,1			; Rotate thru carry
		rcl	bp,1			; Rotate thru carry
		rcl	bx,1			; Rotate thru carry
		sub	bp,si
		sbb	bx,di
		js	loc_1349		; Jump if sign=1
loc_1347:
		inc	ax
		loop	locloop_1346		; Loop if cx > 0

		jmpn	loc_1350

locloop_1348:
		shl	ax,1			; Shift w/zeros fill
		rcl	dx,1			; Rotate thru carry
		rcl	bp,1			; Rotate thru carry
		rcl	bx,1			; Rotate thru carry
		add	bp,si
		adc	bx,di
		jns	loc_1347		; Jump if not sign
loc_1349:
		loop	locloop_1348		; Loop if cx > 0

		add	bp,si
		adc	bx,di
loc_1350:
		mov	cx,bp
		pop	si
		pop	di
		pop	bp
		retn
sub_151		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_152		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		cld				; Clear direction
		push	di
		mov	di,[bp+PARAMETER_1]
		mov	bx,di
		sub	ax,ax
		mov	cx,7FFFh
		repne	scasb			; Rep zf=0+cx >0 Scan es:[di] for al
		mov	ax,di
		sub	ax,bx
		dec	ax
		pop	di
		pop	bp
		retn
sub_152		endp

			                        ; now data because: invalid for uP
		db	0DCh, 72h

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_153		proc	near
		pop	bx
		push	bp
		mov	bp,sp
		add	sp,ax
		push	di
		push	si
		call	bx			;*
		pop	si
		pop	di
		mov	sp,bp
		pop	bp
		retn
sub_153		endp

		db	0, 0
data_179	dw	0			; segment storage

;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;
;                       External Entry Point
;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

real_start:
		call	sub_170
		test	bp,bp
		jnz	loc_1351		; Jump if not zero
		mov	bp,ds
loc_1351:
		mov	cs:data_179,ds
		mov	bx,ds:PSP_free_seg
		sub	bx,bp
		cmp	bx,1000h
		jbe	loc_1352		; Jump if below or =
		lea	bx,cs:[1000h][bp]	; Load effective addr
		mov	ax,es
		sub	bx,ax
		mov	ah,4Ah
		int	21h			; DOS Services  ah=function 4Ah
						;  change memory allocation
						;   bx=bytes/16, es=mem segment
		mov	bx,1000h
loc_1352:
		mov	es,bp
		mov	cl,4
		shl	bx,cl			; Shift w/zeros fill
		cli				; Disable interrupts
		mov	ss,bp
		mov	sp,bx
		sti				; Enable interrupts
		cld				; Clear direction
		mov	di,offset data_353
		mov	cx,0E8F0h
		sub	cx,di
		inc	cx
		shr	cx,1			; Shift w/zeros fill
		jcxz	loc_1353		; Jump if cx=0
		sub	ax,ax
		rep	stosw			; Rep when cx >0 Store ax to es:[di]
loc_1353:
		mov	es,ds:PSP_envirn_seg
;         Simulation segment register change due to instruction       ES now 0000
		sub	di,di
		mov	cx,7FFFh
loc_1354:
		mov	ah,es:[di]
		cmp	ah,3Dh			; '='
		je	loc_1356		; Jump if equal
		test	ah,ah
		jz	loc_1355		; Jump if zero
		repne	scasb			; Rep zf=0+cx >0 Scan es:[di] for al
		jz	loc_1354		; Jump if zero
loc_1355:
		mov	cl,ds:PSP_cmd_size
		sub	ch,ch
		mov	si,data_4e
		mov	ax,1
		jmp	short loc_1357
loc_1356:
		sub	ax,ax
		stosb				; Store al to es:[di]
		mov	si,di
		mov	di,es
		mov	ds,di
loc_1357:
;         Simulation segment register change due to instruction       DS now 0000
		push	ax
		mov	es,bp
;         Simulation segment register change due to instruction       ES now 3BA9
		mov	di,es:data_339
		push	di
		jcxz	loc_1359		; Jump if cx=0

locloop_1358:
		lodsb				; String [si] to al
		test	al,al
		jz	loc_1359		; Jump if zero
		stosb				; Store al to es:[di]
		loop	locloop_1358		; Loop if cx > 0

loc_1359:
		sub	al,al
		stosb				; Store al to es:[di]
		mov	ds,bp
;         Simulation segment register change due to instruction       DS now 3BA9
		inc	di
;*		and	di,0FFFEh
		db	 81h,0E7h,0FEh,0FFh	;  Fixup - byte match
		mov	data_339,di
		mov	data_343,di
		mov	ax,sp
		sub	ax,800h
		mov	data_344,ax
		mov	data_341,ds
		mov	data_342,cs
		call	sub_156
		jmp	short loc_1360

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_154		proc	near
		pop	ax
		pop	ax
loc_1360:
		mov	ah,4Ch
		int	21h			; DOS Services  ah=function 4Ch
						;  terminate with al=return code
			                        ; now data because: does not return
		db	 2Eh,0FFh, 2Eh,0D8h, 72h

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_155:
		push	bp
		mov	bp,sp
		mov	ax,0
		mov	sp,bp
		pop	bp
		retn
sub_154		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_156		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6

		push	bp
		mov	bp,sp
		push	di
		push	si
		mov	si,[bp+PARAMETER_1]
		mov	ax,0
		push	ax			; PARAMETER_1
		call	sub_158
		pop	cx
		mov	data_347,al
		mov	ax,1
		push	ax			; PARAMETER_1
		call	sub_158
		pop	cx
		mov	data_348,al
		mov	ax,2
		push	ax			; PARAMETER_1
		call	sub_158
		pop	cx
		mov	data_349,al
		mov	ax,[bp+PARAMETER_2]
		inc	ax
		shl	ax,1			; Shift w/zeros fill
		push	ax			; PARAMETER_1
		call	sub_168
		pop	cx
		mov	word ptr ds:[0A964h],ax
		mov	bx,ax
		mov	word ptr [bx],0A911h
		mov	di,[bp+PARAMETER_2]
		mov	word ptr ds:[0A966h],di
		shl	di,1			; Shift w/zeros fill
		add	di,word ptr ds:[0A964h]
loc_1361:
		cmp	byte ptr [si],20h	; ' '
		je	loc_1362		; Jump if equal
		cmp	byte ptr [si],9
		jne	loc_1363		; Jump if not equal
loc_1362:
		inc	si
		jmp	short loc_1361
loc_1363:
		cmp	byte ptr [si],0
		je	loc_1368		; Jump if equal
		mov	bx,di
		inc	di
		inc	di
		mov	[bx],si
		inc	word ptr ds:[0A966h]
		mov	ax,2
		push	ax			; PARAMETER_1
		call	sub_168
		pop	cx
		cmp	ax,0FFFFh
		jne	loc_1364		; Jump if not equal
		mov	ax,0Eh
		push	ax
		mov	ax,0A912h
		push	ax
		mov	ax,2
		push	ax
		call	sub_162
		add	sp,6
		mov	ax,0C8h
		push	ax
		call	sub_154
		pop	cx
loc_1364:
		inc	si
		cmp	byte ptr [si],0
		je	loc_1367		; Jump if equal
		cmp	byte ptr [si],20h	; ' '
		je	loc_1365		; Jump if equal
		cmp	byte ptr [si],9
		jne	loc_1366		; Jump if not equal
loc_1365:
		mov	bx,si
		inc	si
		mov	byte ptr [bx],0
		jmp	short loc_1367
loc_1366:
		jmp	short loc_1364
loc_1367:
		jmp	short loc_1361
loc_1368:
		mov	word ptr [di],0
		push	word ptr ds:[0A964h]
		push	word ptr ds:[0A966h]
		call	sub_1
		add	sp,4
		mov	ax,0
		push	ax			; PARAMETER_1
		call	sub_157
		pop	cx
		pop	si
		pop	di
		mov	sp,bp
		pop	bp
		retn
sub_156		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_157		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		call	word ptr data_345
		push	word ptr [bp+PARAMETER_1]
		call	sub_154
		pop	cx
		mov	sp,bp
		pop	bp
		retn
sub_157		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_158		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		mov	bx,[bp+PARAMETER_1]
		mov	ax,4400h
		int	21h			; DOS Services  ah=function 44h
						;  IOctl-0 get info dx, bx=handl
		jc	loc_1369		; Jump if carry Set
		test	dl,80h
		jz	loc_1369		; Jump if zero
		test	dl,3
		jz	loc_1369		; Jump if zero
		mov	ax,1
		pop	bp
		retn
loc_1369:
		sub	ax,ax
		pop	bp
		retn
sub_158		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_159		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		mov	ah,3Fh			; '?'
		mov	bx,[bp+PARAMETER_1]
		jmp	short loc_1372

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_160:
		push	bp
		mov	bp,sp
		mov	ah,40h			; '@'
		mov	bx,[bp+4]
		jmp	short loc_1372

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_161:
		push	bp
		mov	bp,sp
		mov	ah,3Fh			; '?'
		jmp	short loc_1370

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_162:
		push	bp
		mov	bp,sp
		mov	ah,40h			; '@'
loc_1370:
		mov	bx,[bp+4]
		cmp	byte ptr data_347[bx],0
		je	loc_1372		; Jump if equal
		pop	bp
		cmp	ah,3Fh			; '?'
		je	loc_1371		; Jump if equal
		jmp	word ptr data_351
loc_1371:
		jmp	word ptr data_350
loc_1372:
		mov	dx,[bp+6]
		mov	cx,[bp+8]
		int	21h			; DOS Services  ah=function 40h
						;  write file  bx=file handle
						;   cx=bytes from ds:dx buffer
		jnc	loc_1373		; Jump if carry=0
		mov	data_340,ax
		mov	ax,0FFFFh
loc_1373:
		pop	bp
		retn
sub_159		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_163		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		mov	ah,3Eh			; '>'
		mov	bx,[bp+PARAMETER_1]
		int	21h			; DOS Services  ah=function 3Eh
						;  close file, bx=file handle
		jnc	loc_1374		; Jump if carry=0
		mov	data_340,ax
		mov	ax,0FFFFh
		pop	bp
		retn
loc_1374:
		sub	ax,ax
		pop	bp
		retn
sub_163		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_164		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8
PARAMETER_4	=	0Ah			; bp+0Ah

		push	bp
		mov	bp,sp
		mov	ah,42h			; 'B'
		mov	al,[bp+PARAMETER_4]
		mov	dx,[bp+PARAMETER_2]
		mov	cx,[bp+PARAMETER_3]
		mov	bx,[bp+PARAMETER_1]
		int	21h			; DOS Services  ah=function 42h
						;  move file ptr, bx=file handle
						;   al=method, cx,dx=offset
		jnc	loc_1375		; Jump if carry=0
		mov	data_340,ax
		mov	ax,0FFFFh
		mov	dx,ax
loc_1375:
		pop	bp
		retn
sub_164		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_165		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		mov	ah,41h			; 'A'
		mov	dx,[bp+PARAMETER_1]
		int	21h			; DOS Services  ah=function 41h
						;  delete file, name @ ds:dx
		jnc	loc_1376		; Jump if carry=0
		mov	data_340,ax
		mov	ax,0FFFFh
		pop	bp
		retn
loc_1376:
		sub	ax,ax
		pop	bp
		retn
sub_165		endp

		push	bp
		mov	bp,sp
		push	di
		mov	ah,56h			; 'V'
		mov	dx,[bp+4]
		mov	di,[bp+6]
		int	21h			; DOS Services  ah=function 56h
						;  rename file @ds:dx to @es:di
		pop	di
		jnc	loc_1377		; Jump if carry=0
		mov	data_340,ax
		mov	ax,0FFFFh
		pop	bp
		retn
loc_1377:
		sub	ax,ax
		pop	bp
		retn
loc_1378:
		push	bp
		mov	bp,sp
		push	si
		mov	si,ds:data_492e
		test	si,si
		jnz	loc_1380		; Jump if not zero
		mov	ax,104h
		push	ax			; PARAMETER_3
		mov	ax,0A968h
		push	ax			; PARAMETER_2
		push	word ptr [bp+4]		; PARAMETER_1
		call	sub_159
		add	sp,6
		mov	si,ax
		test	si,si
		jz	loc_1379		; Jump if zero
		cmp	byte ptr ds:[0A967h][si],0Ah
		jne	loc_1379		; Jump if not equal
		dec	si
		mov	al,data_352
		mov	byte ptr ds:[0A967h][si],al
loc_1379:
		mov	word ptr ds:data_376e,0A968h
		mov	ds:data_492e,si
loc_1380:
		cmp	si,[bp+8]
		jle	loc_1381		; Jump if < or =
		mov	si,[bp+8]
loc_1381:
		test	si,si
		jz	loc_1382		; Jump if zero
		push	si			; PARAMETER_3
		push	word ptr [bp+6]		; PARAMETER_2
		push	word ptr ds:data_376e	; PARAMETER_1
		call	sub_166
		add	sp,6
loc_1382:
		add	ds:data_376e,si
		sub	ds:data_492e,si
		mov	ax,si
		pop	si
		mov	sp,bp
		pop	bp
		retn
loc_1383:
		push	bp
		mov	bp,sp
		push	di
		push	si
		mov	di,[bp+6]
		mov	si,[bp+8]
loc_1384:
		mov	ax,si
		dec	si
		test	ax,ax
		jz	loc_1386		; Jump if zero
		mov	bx,di
		inc	di
		cmp	byte ptr [bx],0Ah
		jne	loc_1385		; Jump if not equal
		mov	ax,di
		sub	ax,[bp+6]
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_160
		add	sp,6
		mov	ax,1
		push	ax
		mov	ax,0A93Ah
		push	ax
		push	word ptr [bp+4]
		call	sub_160
		add	sp,6
		mov	[bp+6],di
loc_1385:
		jmp	short loc_1384
loc_1386:
		cmp	di,[bp+6]
		je	loc_1387		; Jump if equal
		mov	ax,di
		sub	ax,[bp+6]
		push	ax
		push	word ptr [bp+6]
		push	word ptr [bp+4]
		call	sub_160
		add	sp,6
loc_1387:
		mov	ax,[bp+8]
		pop	si
		pop	di
		mov	sp,bp
		pop	bp
		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_166		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		pushf				; Push flags
		cld				; Clear direction
		push	si
		push	di
		mov	si,[bp+PARAMETER_1]
		mov	di,[bp+PARAMETER_2]
		mov	cx,[bp+PARAMETER_3]
		mov	ax,es
		mov	dx,ds
		cmp	ax,dx
		jne	loc_1389		; Jump if not equal
		cmp	di,si
		je	loc_1391		; Jump if equal
		jc	loc_1389		; Jump if carry Set
		std				; Set direction flag
		add	di,cx
		add	si,cx
		dec	di
		dec	si
		test	cl,1
		jz	loc_1388		; Jump if zero
		movsb				; Mov [si] to es:[di]
loc_1388:
		dec	di
		dec	si
		jmp	short loc_1390
loc_1389:
		test	cl,1
		jz	loc_1390		; Jump if zero
		movsb				; Mov [si] to es:[di]
loc_1390:
		shr	cx,1			; Shift w/zeros fill
		jz	loc_1391		; Jump if zero
		rep	movsw			; Rep when cx >0 Mov [si] to es:[di]
loc_1391:
		pop	di
		pop	si
		popf				; Pop flags
		pop	bp
		retn
sub_166		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_167		proc	near

PARAMETER_1	=	4			; bp+4
PARAMETER_2	=	6			; bp+6
PARAMETER_3	=	8			; bp+8

		push	bp
		mov	bp,sp
		mov	ax,[bp+PARAMETER_1]
		test	ah,ah
		jnz	loc_1392		; Jump if not zero
		xchg	ah,al
loc_1392:
		cmp	ah,0Ah
		jb	loc_1396		; Jump if below
		push	di
		push	es
		cmp	ah,47h			; 'G'
		jne	loc_1393		; Jump if not equal
		mov	dx,[bp+PARAMETER_3]
		mov	si,[bp+PARAMETER_2]
		jmp	short loc_1394
loc_1393:
		mov	cx,[bp+PARAMETER_3]
		mov	dx,[bp+PARAMETER_2]
loc_1394:
		int	21h			; DOS Services  ah=function 00h
						;  terminate, cs=progm seg prefx
		mov	dx,es
		pop	es
		jnc	loc_1395		; Jump if carry=0
		mov	data_340,ax
		mov	ax,0FFFFh
		mov	dx,ax
loc_1395:
		pop	di
		pop	bp
		retn
loc_1396:
		mov	dx,[bp+PARAMETER_2]
		int	21h			; ??INT Non-standard interrupt
		and	ax,0FFh
		pop	bp
		retn
sub_167		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_168		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		push	di
		mov	ax,[bp+PARAMETER_1]
		mov	di,data_339
		add	ax,di
		push	ax			; PARAMETER_1
		call	sub_169
		pop	cx
		jnz	loc_1397		; Jump if not zero
		mov	ax,di
loc_1397:
		pop	di
		test	ax,ax
		pop	bp
		retn
sub_168		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_169		proc	near

PARAMETER_1	=	4			; bp+4

		push	bp
		mov	bp,sp
		mov	ax,[bp+PARAMETER_1]
		cmp	ax,data_344
		jae	loc_1398		; Jump if above or =
		mov	bx,sp
		cmp	ax,bx
		jae	loc_1398		; Jump if above or =
		cmp	ax,data_343
		jb	loc_1398		; Jump if below
		mov	data_339,ax
		sub	ax,ax
		pop	bp
		retn
loc_1398:
		mov	data_340,0FFFCh
		mov	ax,0FFFFh
		test	ax,ax
		pop	bp
		retn
sub_169		endp

		push	bp
		mov	bp,sp
		mov	ax,sp
		sub	ax,[bp+4]
		mov	data_344,ax
		pop	bp
		retn
		or	al,3
		add	[di+40h],dx
		add	ax,5055h
		adc	al,0
		adc	al,50h			; 'P'
		push	bp
		add	ax,4151h
		inc	bp
		push	cx
		inc	ax
		add	ax,4051h
		add	ax,4151h
		inc	bp
		push	ax
		push	bp
		add	ax,14h
		adc	al,5
		push	bp
		push	ax
		add	[di+40h],dx
			                        ; now data because: string or bytes
		db	' Put Lode Runner Master disk in '
		db	'drive A ', 0
		db	'   If the original MASTER disk f'
		db	'ails    ', 0
		db	'  to run, return it to Broderbun'
		db	'd for   ', 0
		db	'  replacement.  COPIES WILL NOT '
		db	'WORK.   ', 0
		db	' <Esc> to exit, <Enter> to try a'
		db	'gain... ', 0
		db	'Lode Runner needs a graphics ada'
		db	'pter card to run correctly', 0
		db	'Thanks for '
data_181	dw	6874h			; Data table (indexed access)
		db	'e run.  See ya', 27h, ' Next Tim'
		db	'e.'
		db	0
		db	'BR0DERBUND SOFTWARE'
		db	0
		db	'Presents'
		db	0
		db	'created by'
		db	0
		db	'Doug Smith'
		db	0
		db	'Version for IBM by'
		db	0
		db	'Doug Greene'
		db	0
		db	'    1983 Doug Smith'
		db	0
		db	'  Press <keys> or buttons to pla'
		db	'y game  '
		db	0
		db	'       or <Esc> to other options'
		db	'        '
		db	0
		db	' P(lay, S(how or C(lear scores, '
		db	'V(ersion'
		db	0
		db	' E(dit boards, I(nit disk, Q(uit'
		db	' to DOS '
		db	0
		db	'Play level 1..150 (Esc exits): %'
		db	'd'
		db	0
		db	'<Any key> returns to demo mode'
		db	0
		db	'Version 3.0'
		db	0
data_182	dw	0DB04h
data_183	dw	71CEh
		db	 0Bh, 03h, 00h, 03h, 00h, 00h
		db	 0Fh,0C0h, 00h, 0Fh,0C0h, 00h
		db	 3Fh, 00h, 03h,0FFh,0C0h, 0Fh
		db	 3Ch, 3Ch, 00h, 3Ch, 00h, 00h
		db	 3Fh, 00h, 0Fh,0F3h,0C0h, 00h
		db	 03h,0C0h, 00h, 03h,0C0h, 0Bh
		db	 03h, 00h, 30h, 00h, 00h,0FCh
		db	 00h, 00h,0FCh, 00h, 00h,0F0h
		db	 00h, 03h,0F0h, 00h, 0Fh,0FCh
		db	 00h, 0Fh,0FFh,0C0h, 00h,0FCh
		db	 00h, 03h,0FCh, 00h, 0Fh,0C0h
		db	 00h, 03h,0C0h, 00h, 0Bh, 03h
		db	 00h, 03h, 00h, 00h, 0Fh,0C0h
		db	 00h, 0Fh,0C0h, 00h, 0Fh, 00h
		db	 00h,0FFh, 30h, 03h,0CFh,0F0h
		db	 00h, 0Fh, 00h, 00h, 3Fh,0C0h
		db	 00h,0F0h,0F0h, 03h,0C0h,0F0h
		db	 03h,0C0h, 00h, 0Bh, 03h, 00h
		db	 30h, 00h, 00h,0FCh, 00h, 00h
		db	0FCh, 00h, 03h,0F0h, 00h, 3Fh
		db	0F3h, 00h,0F3h,0C3h,0C0h, 03h
		db	0C0h, 00h, 03h,0F0h, 00h,0FFh
		db	 3Ch, 00h, 00h, 3Ch, 00h, 00h
		db	 3Ch, 00h, 0Bh, 03h, 00h, 03h
		db	 00h, 00h, 0Fh,0C0h, 00h, 0Fh
		db	0C0h, 00h, 0Fh, 00h, 00h, 3Fh
		db	 00h, 00h,0FFh,0C0h, 00h,0FFh
		db	0FCh, 00h, 0Fh,0C0h, 00h, 3Fh
		db	0C0h, 00h,0FCh, 00h, 00h, 3Ch
		db	 00h, 0Bh, 03h, 00h, 30h, 00h
		db	 00h,0FCh, 00h, 00h,0FCh, 00h
		db	 00h,0F0h, 00h, 0Fh,0F3h, 00h
		db	 3Ch,0FFh, 00h, 00h,0F0h, 00h
		db	 03h,0FCh, 00h, 0Fh, 0Fh, 00h
		db	 3Ch, 0Fh, 00h, 3Ch, 00h, 00h
		db	 0Bh, 03h, 00h,0C0h, 00h, 03h
		db	0F0h, 00h, 03h,0F0h, 00h, 00h
		db	0FCh, 00h, 03h,0FFh,0C0h, 3Ch
		db	 3Ch,0F0h, 00h, 3Ch, 00h, 00h
		db	0FCh, 00h, 03h,0CFh,0F0h, 03h
		db	0C0h, 00h, 03h,0C0h, 00h, 0Bh
		db	 03h, 00h, 0Ch, 00h, 00h, 3Fh
		db	 00h, 00h, 3Fh, 00h, 00h, 0Fh
		db	 00h, 00h, 0Fh,0C0h, 00h, 3Fh
		db	0F0h, 03h,0FFh,0F0h, 00h, 3Fh
		db	 00h, 00h, 3Fh,0C0h, 00h, 03h
		db	0F0h, 00h, 03h,0C0h, 0Bh, 03h
		db	 00h,0C0h, 00h, 03h,0F0h, 00h
		db	 03h,0F0h, 00h, 00h,0F0h, 00h
		db	 0Ch,0FFh, 00h, 0Fh,0F3h,0C0h
		db	 00h,0F0h, 00h, 03h,0FCh, 00h
		db	 0Fh, 0Fh, 00h, 0Fh, 03h,0C0h
		db	 00h, 03h,0C0h, 0Bh, 03h, 00h
		db	 0Ch, 00h, 00h, 3Fh, 00h, 00h
		db	 3Fh, 00h, 00h, 0Fh,0C0h, 00h
		db	 3Fh,0FCh, 03h,0C3h,0CFh, 00h
		db	 03h,0C0h, 00h, 0Fh,0C0h, 00h
		db	 3Ch,0FFh, 00h, 3Ch, 00h, 00h
		db	 3Ch, 00h, 0Bh, 03h, 00h,0C0h
		db	 00h, 03h,0F0h, 00h, 03h,0F0h
		db	 00h, 00h,0F0h, 00h, 00h,0FCh
		db	 00h, 03h,0FFh, 00h,0CFh,0FFh
		db	 00h, 03h,0F0h, 00h, 03h,0FCh
		db	 00h, 00h, 3Fh, 00h, 00h, 3Ch
		db	 00h, 0Bh, 03h, 00h, 0Ch, 00h
		db	 00h, 3Fh, 00h, 00h, 3Fh, 00h
		db	 00h, 0Fh, 00h, 00h,0CFh,0F0h
		db	 00h,0FFh, 3Ch, 00h, 0Fh, 00h
		db	 00h, 3Fh,0C0h, 00h,0F0h,0F0h
		db	 00h,0F0h, 3Ch, 00h, 00h, 3Ch
		db	 0Bh, 03h
		db	30 dup (55h)
		db	 00h, 00h, 00h, 0Bh, 03h,0FFh
		db	29 dup (0FFh)
		db	 00h, 00h, 00h, 0Bh, 03h, 00h
		db	32 dup (0)
		db	 0Bh, 03h, 55h, 54h, 15h, 55h
		db	 54h, 15h, 55h, 54h, 15h, 55h
		db	 54h, 15h, 00h, 00h, 00h, 54h
		db	 15h, 55h, 54h, 15h, 55h, 54h
		db	 15h, 55h, 54h, 15h, 55h, 54h
		db	 15h, 55h, 00h, 00h, 00h, 0Bh
		db	 03h, 3Ch, 00h, 3Ch, 3Ch, 00h
		db	 3Ch, 3Fh,0FFh,0FCh, 3Ch, 00h
		db	 3Ch, 3Ch, 00h, 3Ch, 3Ch, 00h
		db	 3Ch, 3Ch, 00h, 3Ch, 3Fh,0FFh
		db	0FCh, 3Ch, 00h, 3Ch, 3Ch, 00h
		db	 3Ch, 3Ch, 00h, 3Ch, 0Bh, 03h
		db	 00h, 00h, 00h,0FFh,0FFh,0FFh
		db	 00h
		db	26 dup (0)
		db	 0Bh, 03h, 55h, 55h, 55h, 55h
		db	 55h, 55h, 00h, 00h, 00h, 03h
		db	0FFh,0C0h, 00h, 3Ch, 00h, 00h
		db	 3Ch, 00h, 00h, 3Ch, 00h, 00h
		db	 3Ch, 00h, 55h, 55h, 55h, 55h
		db	 55h, 55h, 00h, 00h, 00h, 0Bh
		db	 03h, 3Ch, 00h, 00h, 3Ch, 00h
		db	 00h, 3Fh,0FFh,0FCh, 3Ch, 00h
		db	 3Ch, 00h, 00h, 3Ch, 00h, 00h
		db	 3Ch, 00h, 00h, 3Ch, 3Ch, 00h
		db	 3Ch, 3Fh,0FFh,0FCh, 3Ch, 00h
		db	 00h, 3Ch, 00h, 00h
data_188	db	0Bh			; Data table (indexed access)
		db	3, 0
		db	14 dup (0)
		db	 19h, 99h, 94h, 10h
data_190	db	0CCh
data_191	db	94h
		db	10h
data_192	db	0CCh
data_193	db	94h
		db	10h
data_194	db	0CCh
data_195	db	94h
		db	 19h, 99h, 94h, 00h, 00h, 00h
		db	 0Bh, 03h, 00h,0C0h, 00h, 02h
		db	0A0h, 00h, 02h,0A0h, 00h, 00h
		db	0A8h, 00h, 02h,0AAh, 80h, 28h
		db	 28h, 28h, 00h, 3Ch, 00h, 00h
		db	0FCh, 00h, 03h,0CFh,0FCh, 03h
		db	0C0h, 00h, 03h,0C0h, 00h, 0Dh
		db	 04h, 00h, 03h, 00h, 00h, 00h
		db	 0Fh,0C0h, 00h, 00h, 3Fh,0F0h
		db	 00h, 00h, 03h, 00h, 00h, 03h
		db	 03h, 03h, 00h, 0Fh, 03h, 03h
		db	0C0h, 3Fh,0FFh,0FFh,0F0h, 0Fh
		db	 03h, 03h,0C0h, 03h, 03h, 03h
		db	 00h, 00h, 03h, 00h, 00h, 00h
		db	 3Fh,0F0h, 00h, 00h, 0Fh,0C0h
		db	 00h, 00h, 03h, 00h, 00h, 0Bh
		db	 03h, 00h, 0Ch, 0Fh, 00h, 3Fh
		db	 0Fh, 00h, 3Fh, 3Ch,0F0h,0FFh
		db	0C0h,0F3h,0FCh, 00h, 3Fh, 3Fh
		db	 00h, 0Ch, 3Fh,0C0h, 00h,0F3h
		db	0C0h, 00h,0F0h, 00h, 00h,0F0h
		db	 00h, 00h,0F0h, 00h, 0Bh, 03h
		db	 00h, 0Ch, 00h,0F0h, 3Fh, 0Fh
		db	0F0h, 3Fh, 0Fh, 3Ch, 3Ch, 3Ch
		db	 0Fh,0FFh,0F0h, 00h, 3Ch, 00h
		db	 00h, 3Ch, 00h, 00h, 3Fh, 00h
		db	 00h,0F3h,0C0h, 00h,0F3h,0C0h
		db	 00h,0F3h,0C0h, 0Bh, 03h,0F0h
		db	 30h, 00h,0F0h,0FCh, 00h, 3Ch
		db	0FCh, 00h, 03h,0FFh, 0Fh, 00h
		db	 3Fh, 0Fh, 00h,0FCh,0FCh, 03h
		db	0FCh, 30h, 03h,0CFh, 00h, 00h
		db	 0Fh, 00h, 00h, 0Fh, 00h, 00h
		db	 0Fh, 00h, 0Bh, 03h,0F0h, 30h
		db	 0Fh,0F0h,0FCh, 0Fh, 3Ch,0FCh
		db	 3Ch, 0Fh,0FFh,0F0h, 00h, 3Ch
		db	 00h, 00h, 3Ch, 00h, 00h,0FCh
		db	 00h, 00h,0CFh, 00h, 03h,0CFh
		db	 00h, 03h,0CFh, 00h, 00h, 00h
		db	 00h, 0Bh, 03h, 00h, 0Ch, 0Fh
		db	 00h, 3Fh, 0Fh,0F0h, 3Fh, 0Ch
		db	0F0h, 3Ch, 30h, 30h,0FFh,0C0h
		db	 0Fh, 3Ch, 00h, 00h, 3Ch, 00h
		db	 00h, 3Fh, 00h, 00h,0F3h,0C0h
		db	 00h,0F3h,0C0h, 00h,0F0h, 00h
		db	 0Bh, 03h, 0Fh, 0Ch, 3Ch, 0Fh
		db	 3Fh, 3Ch, 03h, 3Fh, 30h, 03h
		db	0FFh,0F0h, 00h, 0Fh, 00h, 00h
		db	 0Fh, 00h, 00h,0FFh, 00h, 03h
		db	0C3h,0C0h, 03h,0C3h,0C0h, 03h
		db	0C3h,0C0h, 00h, 03h,0C0h, 0Bh
		db	 03h, 3Ch, 30h,0F0h, 3Ch,0FCh
		db	0F0h, 0Ch,0FCh,0C0h, 0Fh,0FFh
		db	0C0h, 00h,0F0h, 00h, 00h,0F0h
		db	 00h, 00h,0FFh, 00h, 03h,0C3h
		db	0C0h, 03h,0C3h,0C0h, 03h,0C3h
		db	0C0h, 03h,0C0h, 00h, 0Bh, 03h
		db	 03h,0C0h, 3Ch, 03h,0C0h, 3Ch
		db	 03h,0CFh, 3Ch, 00h,0CFh,0F0h
		db	 00h,0FFh, 00h, 00h, 3Ch, 00h
		db	 00h, 3Ch, 00h, 03h,0FCh, 00h
		db	 0Fh, 0Ch, 00h, 0Ch, 3Ch, 00h
		db	 0Ch,0F0h, 00h, 0Bh, 03h, 00h
		db	 3Ch, 00h, 00h, 3Ch, 00h, 03h
		db	0FCh, 00h, 03h,0F0h, 00h, 3Fh
		db	0C0h, 00h,0F3h,0C0h, 00h, 03h
		db	0C0h, 00h, 0Fh,0C0h, 00h, 3Ch
		db	0F0h, 00h, 3Ch,0F0h, 00h, 3Ch
		db	0F0h, 00h, 0Bh, 03h, 00h, 3Ch
		db	 00h, 00h, 3Fh,0C0h, 00h, 3Fh
		db	0C0h, 00h, 0Fh,0CFh, 00h, 03h
		db	0FCh, 00h, 03h,0C0h, 00h, 03h
		db	0C0h, 00h, 0Fh,0C0h, 00h, 3Ch
		db	0F0h, 00h, 3Ch,0F0h, 00h, 3Ch
		db	0F0h, 0Bh, 03h, 3Ch, 03h,0C0h
		db	 3Ch, 03h,0C0h, 3Ch,0F3h,0C0h
		db	 0Fh,0FFh, 00h, 0Fh,0F0h, 00h
		db	 03h,0C0h, 00h, 03h,0C0h, 00h
		db	 3Fh,0C0h, 00h,0F0h,0C0h, 00h
		db	0C3h,0C0h, 00h,0CFh, 00h, 00h
		db	 0Bh, 03h, 00h, 03h,0C0h, 00h
		db	 03h,0C0h, 00h, 3Fh,0C0h, 00h
		db	 3Fh, 00h, 03h,0FCh, 00h, 0Fh
		db	 3Ch, 00h, 00h, 3Ch, 00h, 00h
		db	0FCh, 00h, 03h,0CFh, 00h, 03h
		db	0CFh, 00h, 03h,0CFh, 00h, 0Bh
		db	 03h, 03h,0C0h, 00h, 03h,0FCh
		db	 00h, 03h,0FCh, 00h, 00h,0FCh
		db	0F0h, 00h, 3Fh,0C0h, 00h, 3Ch
		db	 00h, 00h, 3Ch, 00h, 00h,0FCh
		db	 00h, 03h,0CFh, 00h, 03h,0CFh
		db	 00h, 03h,0CFh, 00h, 0Bh, 03h
		db	 3Ch, 03h,0C0h, 3Ch, 03h,0C0h
		db	 3Ch,0F3h,0C0h, 0Fh,0F3h, 00h
		db	 00h,0FFh, 00h, 00h, 3Ch, 00h
		db	 00h, 3Ch, 00h, 00h, 3Fh,0C0h
		db	 00h, 30h,0F0h, 00h, 3Ch, 30h
		db	 00h, 0Fh, 30h, 0Bh, 03h, 00h
		db	 3Ch, 00h, 00h, 3Ch, 00h, 00h
		db	 3Fh,0C0h, 00h, 0Fh,0C0h, 00h
		db	 03h,0FCh, 00h, 03h,0CFh, 00h
		db	 03h,0C0h, 00h, 03h,0F0h, 00h
		db	 0Fh, 3Ch, 00h, 0Fh, 3Ch, 00h
		db	 0Fh, 3Ch, 0Bh, 03h, 00h, 3Ch
		db	 00h, 03h,0FCh, 00h, 03h,0FCh
		db	 00h,0F3h,0F0h, 00h, 3Fh,0C0h
		db	 00h, 03h,0C0h, 00h, 03h,0C0h
		db	 00h, 03h,0F0h, 00h, 0Fh, 3Ch
		db	 00h, 0Fh, 3Ch, 00h, 0Fh, 3Ch
		db	 00h, 0Bh, 03h, 03h,0C0h, 3Ch
		db	 03h,0C0h, 3Ch, 03h,0CFh, 3Ch
		db	 00h,0FFh,0F0h, 00h, 0Fh,0F0h
		db	 00h, 03h,0C0h, 00h, 03h,0C0h
		db	 00h, 03h,0FCh, 00h, 03h, 0Fh
		db	 00h, 03h,0C3h, 00h, 00h,0F3h
		db	 0Bh, 03h, 03h,0C0h, 00h, 03h
		db	0C0h, 00h, 03h,0FCh, 00h, 00h
		db	0FCh, 00h, 00h, 3Fh,0C0h, 00h
		db	 3Ch,0F0h, 00h, 3Ch, 00h, 00h
		db	 3Fh, 00h, 00h,0F3h,0C0h, 00h
		db	0F3h,0C0h, 00h,0F3h,0C0h, 0Bh
		db	 03h, 00h, 03h,0C0h, 00h, 3Fh
		db	0C0h, 00h, 3Fh,0C0h, 0Fh, 3Fh
		db	 00h, 03h,0FCh, 00h, 00h, 3Ch
		db	 00h, 00h, 3Ch, 00h, 00h, 3Fh
		db	 00h, 00h,0F3h,0C0h, 00h,0F3h
		db	0C0h, 00h,0F3h,0C0h, 0Bh, 03h
		db	 00h, 0Ch, 0Fh, 00h, 2Ah, 0Ah
		db	 00h, 2Ah, 28h,0A0h,0AAh, 80h
		db	0A2h,0A8h, 00h, 2Ah, 2Ah, 00h
		db	 0Ch, 3Fh,0C0h, 00h,0F3h,0C0h
		db	 00h,0F0h, 00h, 00h,0F0h, 00h
		db	 00h,0F0h, 00h, 0Bh, 03h, 00h
		db	 0Ch, 00h,0A0h, 2Ah, 0Ah,0A0h
		db	 2Ah, 0Ah, 28h, 28h, 28h, 0Ah
		db	0AAh,0A0h, 00h, 28h, 00h, 00h
		db	 3Ch, 00h, 00h, 3Fh, 00h, 00h
		db	0F3h,0C0h, 00h,0F3h,0C0h, 00h
		db	0F3h,0C0h, 0Bh, 03h,0F0h, 30h
		db	 00h,0A0h,0A8h, 00h, 28h,0A8h
		db	 00h, 02h,0AAh, 0Ah, 00h, 2Ah
		db	 0Ah, 00h,0A8h,0A8h, 03h,0FCh
		db	 30h, 03h,0CFh, 00h, 00h, 0Fh
		db	 00h, 00h, 0Fh, 00h, 00h, 0Fh
		db	 00h, 0Bh, 03h,0F0h, 30h, 0Fh
		db	0A0h,0A8h, 0Ah, 28h,0A8h, 28h
		db	 0Ah,0AAh,0A0h, 00h, 28h, 00h
		db	 00h, 28h, 00h, 00h,0FCh, 00h
		db	 00h,0CFh, 00h, 03h,0CFh, 00h
		db	 03h,0CFh, 00h, 00h, 00h, 00h
		db	 0Bh, 03h, 00h, 0Ch, 0Fh, 00h
		db	 2Ah, 0Ah,0A0h, 2Ah, 08h,0A0h
		db	 28h, 20h, 20h,0AAh, 80h, 0Ah
		db	 28h, 00h, 00h, 3Ch, 00h, 00h
		db	 3Fh, 00h, 00h,0F3h,0C0h, 00h
		db	0F3h,0C0h, 00h,0F0h, 00h, 0Bh
		db	 03h, 0Fh, 0Ch, 3Ch, 0Ah, 2Ah
		db	 28h, 02h, 2Ah, 20h, 02h,0AAh
		db	0A0h, 00h, 0Ah, 00h, 00h, 0Ah
		db	 00h, 00h,0FFh, 00h, 03h,0C3h
		db	0C0h, 03h,0C3h,0C0h, 03h,0C3h
		db	0C0h, 00h, 03h,0C0h, 0Bh, 03h
		db	 3Ch, 30h,0F0h, 28h,0A8h,0A0h
		db	 08h,0A8h, 80h, 0Ah,0AAh, 80h
		db	 00h,0A0h, 00h, 00h,0A0h, 00h
		db	 00h,0FFh, 00h, 03h,0C3h,0C0h
		db	 03h,0C3h,0C0h, 03h,0C3h,0C0h
		db	 03h,0C0h, 00h, 0Bh, 03h, 03h
		db	0C0h, 3Ch, 02h, 80h, 28h, 02h
		db	 8Ah, 28h, 00h, 8Ah,0A0h, 00h
		db	0AAh, 00h, 00h, 28h, 00h, 00h
		db	 3Ch, 00h, 03h,0FCh, 00h, 0Fh
		db	 0Ch, 00h, 0Ch, 3Ch, 00h, 0Ch
		db	0F0h, 00h, 0Bh, 03h, 00h, 3Ch
		db	 00h, 00h, 28h, 00h, 02h,0A8h
		db	 00h, 02h,0A0h, 00h, 2Ah, 80h
		db	 00h,0A2h, 80h, 00h, 03h,0C0h
		db	 00h, 0Fh,0C0h, 00h, 3Ch,0F0h
		db	 00h, 3Ch,0F0h, 00h, 3Ch,0F0h
		db	 00h, 0Bh, 03h, 00h, 3Ch, 00h
		db	 00h, 2Ah, 80h, 00h, 2Ah, 80h
		db	 00h, 0Ah, 8Ah, 00h, 02h,0A8h
		db	 00h, 02h, 80h, 00h, 03h,0C0h
		db	 00h, 0Fh,0C0h, 00h, 3Ch,0F0h
		db	 00h, 3Ch,0F0h, 00h, 3Ch,0F0h
		db	 0Bh, 03h, 3Ch, 03h,0C0h, 28h
		db	 02h, 80h, 28h,0A2h, 80h, 0Ah
		db	0AAh, 00h, 0Ah,0A0h, 00h, 02h
		db	 80h, 00h, 03h,0C0h, 00h, 3Fh
		db	0C0h, 00h,0F0h,0C0h, 00h,0C3h
		db	0C0h, 00h,0CFh, 00h, 00h, 0Bh
		db	 03h, 00h, 03h,0C0h, 00h, 02h
		db	 80h, 00h, 2Ah, 80h, 00h, 2Ah
		db	 00h, 02h,0A8h, 00h, 0Ah, 28h
		db	 00h, 00h, 3Ch, 00h, 00h,0FCh
		db	 00h, 03h,0CFh, 00h, 03h,0CFh
		db	 00h, 03h,0CFh, 00h, 0Bh, 03h
		db	 03h,0C0h, 00h, 02h,0A8h, 00h
		db	 02h,0A8h, 00h, 00h,0A8h,0A0h
		db	 00h, 2Ah, 80h, 00h, 28h, 00h
		db	 00h, 3Ch, 00h, 00h,0FCh, 00h
		db	 03h,0CFh, 00h, 03h,0CFh, 00h
		db	 03h,0CFh, 00h, 0Bh, 03h, 3Ch
		db	 03h,0C0h, 28h, 02h, 80h, 28h
		db	0A2h, 80h, 0Ah,0A2h, 00h, 00h
		db	0AAh, 00h, 00h, 28h, 00h, 00h
		db	 3Ch, 00h, 00h, 3Fh,0C0h, 00h
		db	 30h,0F0h, 00h, 3Ch, 30h, 00h
		db	 0Fh, 30h, 0Bh, 03h, 00h, 3Ch
		db	 00h, 00h, 28h, 00h, 00h, 2Ah
		db	 80h, 00h, 0Ah, 80h, 00h, 02h
		db	0A8h, 00h, 02h, 8Ah, 00h, 03h
		db	0C0h, 00h, 03h,0F0h, 00h, 0Fh
		db	 3Ch, 00h, 0Fh, 3Ch, 00h, 0Fh
		db	 3Ch, 0Bh, 03h, 00h, 3Ch, 00h
		db	 02h,0A8h, 00h, 02h,0A8h, 00h
		db	0A2h,0A0h, 00h, 2Ah, 80h, 00h
		db	 02h, 80h, 00h, 03h,0C0h, 00h
		db	 03h,0F0h, 00h, 0Fh, 3Ch, 00h
		db	 0Fh, 3Ch, 00h, 0Fh, 3Ch, 00h
		db	 0Bh, 03h, 03h,0C0h, 3Ch, 02h
		db	 80h, 28h, 02h, 8Ah, 28h, 00h
		db	0AAh,0A0h, 00h, 0Ah,0A0h, 00h
		db	 02h, 80h, 00h, 03h,0C0h, 00h
		db	 03h,0FCh, 00h, 03h, 0Fh, 00h
		db	 03h,0C3h, 00h, 00h,0F3h, 0Bh
		db	 03h, 03h,0C0h, 00h, 02h, 80h
		db	 00h, 02h,0A8h, 00h, 00h,0A8h
		db	 00h, 00h, 2Ah, 80h, 00h, 28h
		db	0A0h, 00h, 3Ch, 00h, 00h, 3Fh
		db	 00h, 00h,0F3h,0C0h, 00h,0F3h
		db	0C0h, 00h,0F3h,0C0h, 0Bh, 03h
		db	 00h, 03h,0C0h, 00h, 2Ah, 80h
		db	 00h, 2Ah, 80h, 0Ah, 2Ah, 00h
		db	 02h,0A8h, 00h, 00h, 28h, 00h
		db	 00h, 3Ch, 00h, 00h, 3Fh, 00h
		db	 00h,0F3h,0C0h, 00h,0F3h,0C0h
		db	 00h,0F3h,0C0h, 0Bh, 03h, 00h
		db	 03h, 00h, 00h, 0Ah, 80h, 00h
		db	 0Ah, 80h, 00h, 2Ah, 00h, 02h
		db	0AAh, 80h, 0Ah, 28h, 28h, 00h
		db	 3Ch, 00h, 00h, 3Fh, 00h, 0Fh
		db	0F3h,0C0h, 00h, 03h,0C0h, 00h
		db	 03h,0C0h, 0Bh, 03h, 00h, 30h
		db	 00h, 00h,0A8h, 00h, 00h,0A8h
		db	 00h, 00h,0A0h, 00h, 02h,0A0h
		db	 00h, 0Ah,0A8h, 00h, 0Fh,0FFh
		db	0C0h, 00h,0FCh, 00h, 03h,0FCh
		db	 00h, 0Fh,0C0h, 00h, 03h,0C0h
		db	 00h, 0Bh, 03h, 00h, 03h, 00h
		db	 00h, 0Ah, 80h, 00h, 0Ah, 80h
		db	 00h, 0Ah, 00h, 00h,0AAh, 20h
		db	 02h, 8Ah,0A0h, 00h, 0Fh, 00h
		db	 00h, 3Fh,0C0h, 00h,0F0h,0F0h
		db	 03h,0C0h,0F0h, 03h,0C0h, 00h
		db	 0Bh, 03h, 00h, 30h, 00h, 00h
		db	0A8h, 00h, 00h,0A8h, 00h, 02h
		db	0A0h, 00h, 2Ah,0A2h, 00h,0A2h
		db	 82h, 80h, 03h,0C0h, 00h, 03h
		db	0F0h, 00h,0FFh, 3Ch, 00h, 00h
		db	 3Ch, 00h, 00h, 3Ch, 00h, 0Bh
		db	 03h, 00h, 03h, 00h, 00h, 0Ah
		db	 80h, 00h, 0Ah, 80h, 00h, 0Ah
		db	 00h, 00h, 2Ah, 00h, 00h,0AAh
		db	 80h, 00h,0FFh,0FCh, 00h, 0Fh
		db	0C0h, 00h, 3Fh,0C0h, 00h,0FCh
		db	 00h, 00h, 3Ch, 00h, 0Bh, 03h
		db	 00h, 30h, 00h, 00h,0A8h, 00h
		db	 00h,0A8h, 00h, 00h,0A0h, 00h
		db	 0Ah,0A2h, 00h, 28h,0AAh, 00h
		db	 00h,0F0h, 00h, 03h,0FCh, 00h
		db	 0Fh, 0Fh, 00h, 3Ch, 0Fh, 00h
		db	 3Ch, 00h, 00h, 0Bh, 03h, 00h
		db	 0Ch, 00h, 00h, 2Ah, 00h, 00h
		db	 2Ah, 00h, 00h, 0Ah, 00h, 00h
		db	 0Ah, 80h, 00h, 2Ah,0A0h, 03h
		db	0FFh,0F0h, 00h, 3Fh, 00h, 00h
		db	 3Fh,0C0h, 00h, 03h,0F0h, 00h
		db	 03h,0C0h, 0Bh, 03h, 00h,0C0h
		db	 00h, 02h,0A0h, 00h, 02h,0A0h
		db	 00h, 00h,0A0h, 00h, 08h,0AAh
		db	 00h, 0Ah,0A2h, 80h, 00h,0F0h
		db	 00h, 03h,0FCh, 00h, 0Fh, 0Fh
		db	 00h, 0Fh, 03h,0C0h, 00h, 03h
		db	0C0h, 0Bh, 03h, 00h, 0Ch, 00h
		db	 00h, 2Ah, 00h, 00h, 2Ah, 00h
		db	 00h, 0Ah, 80h, 00h, 2Ah,0A8h
		db	 02h, 82h, 8Ah, 00h, 03h,0C0h
		db	 00h, 0Fh,0C0h, 00h, 3Ch,0FFh
		db	 00h, 3Ch, 00h, 00h, 3Ch, 00h
		db	 0Bh, 03h, 00h,0C0h, 00h, 02h
		db	0A0h, 00h, 02h,0A0h, 00h, 00h
		db	0A0h, 00h, 00h,0A8h, 00h, 02h
		db	0AAh, 00h,0CFh,0FFh, 00h, 03h
		db	0F0h, 00h, 03h,0FCh, 00h, 00h
		db	 3Fh, 00h, 00h, 3Ch, 00h, 0Bh
		db	 03h, 00h, 0Ch, 00h, 00h, 2Ah
		db	 00h, 00h, 2Ah, 00h, 00h, 0Ah
		db	 00h, 00h, 8Ah,0A0h, 00h,0AAh
		db	 28h, 00h, 0Fh, 00h, 00h, 3Fh
		db	0C0h, 00h,0F0h,0F0h, 00h,0F0h
		db	 3Ch, 00h, 00h
		db	3Ch
data_196	db	24h			; Data table (indexed access)
data_197	db	4
		db	 04h, 05h, 0Ah, 01h, 02h, 05h
		db	 07h, 04h, 06h, 05h, 15h, 04h
		db	 01h, 00h, 08h, 08h, 0Ch, 20h
		db	 16h, 00h, 15h, 08h, 09h, 0Ah
		db	 04h, 08h, 01h, 00h, 03h, 04h
		db	 01h, 24h, 07h, 20h, 02h, 00h
		db	 09h, 04h, 0Fh, 00h, 0Ah, 04h
		db	 02h, 00h, 28h, 08h, 07h, 28h
		db	 03h, 08h, 01h, 00h, 0Dh, 10h
		db	 0Bh, 00h, 02h, 08h, 05h, 00h
		db	 59h, 08h, 02h, 09h, 11h, 01h
		db	 6Eh, 05h, 01h, 00h, 0Fh, 08h
		db	 0Bh, 18h, 15h, 08h, 0Fh, 18h
		db	 24h, 08h, 01h, 28h, 01h, 20h
		db	 30h, 24h, 01h, 04h, 02h, 00h
		db	 12h, 08h, 01h, 28h, 01h, 20h
		db	 1Bh, 24h, 02h, 20h, 15h, 28h
		db	 11h, 08h, 01h, 00h, 0Eh, 04h
		db	 01h, 00h, 06h, 08h, 03h, 18h
		db	 03h, 10h, 05h, 14h, 59h, 04h
		db	 06h, 06h, 22h, 04h, 0Ah, 00h
		db	 08h, 10h, 20h, 00h, 19h, 04h
		db	 05h, 05h, 26h, 01h, 06h, 05h
		db	 19h, 04h, 01h, 01h, 11h, 08h
		db	 01h, 09h, 0Ah, 01h, 04h, 05h
		db	 09h, 04h, 04h, 05h, 02h, 01h
		db	 08h, 09h, 29h, 08h, 02h, 09h
		db	 07h, 01h, 02h, 09h, 3Dh, 08h
		db	 02h, 00h, 0Ah, 04h, 08h, 14h
		db	 19h, 04h, 01h, 00h, 25h, 02h
		db	 02h, 06h, 12h, 04h, 01h, 00h
		db	 09h, 09h, 09h, 01h, 05h, 05h
		db	 0Bh, 04h, 01h, 00h, 02h, 08h
		db	 03h, 18h, 01h, 08h, 06h, 00h
		db	 07h, 08h, 06h, 18h, 02h, 08h
		db	 44h, 00h, 3Bh, 04h, 13h, 05h
		db	 1Ah, 04h, 01h, 00h, 06h, 08h
		db	 08h, 01h, 3Bh, 04h, 01h, 00h
		db	 0Fh, 08h, 17h, 09h, 01h, 01h
		db	 04h, 05h, 16h, 04h, 05h, 05h
		db	 2Bh, 01h, 01h, 09h, 1Dh, 08h
		db	 04h, 0Ah, 01h, 02h, 07h, 04h
		db	 01h, 00h, 01h, 08h, 08h, 28h
		db	 2Eh, 08h, 02h, 18h, 05h, 10h
		db	 14h, 04h, 09h, 14h, 01h, 04h
		db	 17h, 00h, 26h, 04h, 01h, 00h
		db	 08h, 08h, 07h, 01h, 01h, 09h
		db	 0Ch, 08h, 02h, 0Ah, 0Ah, 02h
		db	 01h, 06h, 3Bh, 04h, 01h, 14h
		db	 08h, 10h, 01h, 18h, 0Ah, 08h
		db	 0Ch, 18h, 02h, 08h, 3Eh, 00h
		db	 2Eh, 04h, 08h, 05h, 1Dh, 01h
		db	 07h, 05h, 07h, 15h, 01h, 14h
		db	 03h, 10h, 05h, 18h, 0Ah, 08h
		db	 05h, 18h, 03h, 08h, 0Ch, 00h
		db	 09h, 08h, 0Ah, 20h, 01h, 00h
		db	 21h, 04h, 08h, 14h, 1Ah, 04h
		db	 03h, 00h, 07h, 08h, 01h, 28h
		db	 09h, 20h, 29h, 00h, 0Ch, 08h
		db	 02h, 09h, 27h, 01h, 05h, 00h
		db	 08h, 20h, 07h, 00h, 06h, 02h
		db	 01h, 00h, 15h, 08h, 14h, 04h
		db	 14h, 02h, 01h, 00h, 16h, 01h
		db	 0Eh, 05h, 02h, 04h, 19h, 00h
		db	 02h, 08h, 02h, 00h, 08h, 20h
		db	 3Ah, 00h, 0Ch, 08h, 02h, 0Ah
		db	 05h, 02h, 01h, 0Ah, 18h, 02h
		db	 06h, 0Ah, 11h, 08h, 03h, 18h
		db	 07h, 10h, 01h, 00h, 0Fh, 08h
		db	 0Bh, 28h, 01h, 08h, 3Ah, 00h
		db	 0Ah, 08h, 09h, 00h, 1Dh, 08h
		db	 02h, 00h, 08h, 04h, 02h, 00h
		db	 05h, 04h, 02h, 00h, 10h, 08h
		db	 01h, 18h, 05h, 10h, 07h, 14h
		db	 03h, 10h, 19h, 18h, 01h, 08h
		db	 13h, 00h, 15h, 04h, 33h, 05h
		db	 1Ch, 04h, 06h, 00h, 08h, 10h
		db	 0Ch, 08h, 06h, 18h, 02h, 08h
		db	 01h, 00h, 12h, 04h, 08h, 24h
		db	 01h, 04h, 03h, 00h, 1Ah, 08h
		db	 03h, 00h, 06h, 10h, 01h, 00h
		db	 14h, 04h, 02h, 00h, 08h, 08h
		db	 04h, 28h, 05h, 20h, 05h, 00h
		db	 0Ch, 04h, 02h, 14h, 08h, 10h
		db	 05h, 14h, 05h, 10h, 0Ch, 00h
		db	 01h, 08h, 0Ah, 0Ah, 0Ch, 18h
		db	 1Bh, 08h, 02h, 00h, 23h, 05h
		db	 04h, 01h, 11h, 00h, 0Bh, 02h
		db	 03h, 00h, 15h, 01h, 0Ch, 08h
		db	 0Ah, 00h, 16h, 08h, 0Bh, 00h
		db	 0Eh, 08h, 03h, 0Ah, 12h, 08h
		db	 06h, 0Ah, 04h, 08h, 03h, 28h
		db	 07h, 20h, 01h, 00h, 19h, 08h
		db	 04h, 0Ah, 10h, 02h, 01h, 06h
		db	 15h, 04h, 0Bh, 06h, 07h, 04h
		db	 07h, 06h, 0Fh, 04h, 07h, 05h
		db	 02h, 00h, 07h, 08h, 05h, 0Ah
		db	 03h, 08h, 02h, 00h, 01h, 04h
		db	 01h, 14h, 09h, 10h, 2Ah, 00h
		db	 0Ah, 04h, 35h, 05h, 01h, 04h
		db	 01h, 00h, 0Ah, 02h, 02h, 06h
		db	 05h, 04h, 04h, 14h, 07h, 10h
		db	 01h, 00h, 4Dh, 04h, 0Ah, 05h
		db	 04h, 01h, 02h, 09h, 11h, 08h
		db	 12h, 01h, 01h, 09h, 08h, 08h
		db	 06h, 0Ah, 35h, 08h, 01h, 09h
		db	 29h, 01h, 06h, 09h, 28h, 08h
		db	 05h, 0Ah, 24h, 08h, 07h, 09h
		db	 07h, 08h, 08h, 09h, 02h, 01h
		db	 04h, 05h, 07h, 04h, 08h, 06h
		db	 05h, 04h, 05h, 05h, 05h, 01h
		db	 27h, 04h, 02h, 00h, 10h, 08h
		db	 01h, 09h, 03h, 01h, 01h, 05h
		db	 0Ch, 04h, 01h, 05h, 04h, 01h
		db	 01h, 09h, 0Ch, 08h, 01h, 09h
		db	 04h, 01h, 02h, 05h, 0Bh, 04h
		db	 03h, 05h, 01h, 01h, 04h, 09h
		db	 0Bh, 08h, 02h, 01h, 03h, 05h
		db	 0Ch, 04h, 04h, 05h, 01h, 01h
		db	 0Eh, 08h, 02h, 01h, 03h, 05h
		db	 0Ch, 04h, 02h, 05h, 03h, 01h
		db	 01h, 09h, 0Dh, 08h, 01h, 01h
		db	 06h, 05h, 08h, 04h, 04h, 05h
		db	 02h, 01h, 01h, 09h, 05h, 08h
		db	 01h, 09h, 08h, 01h, 59h, 05h
		db	 01h, 01h, 01h, 00h, 1Fh, 08h
		db	 01h, 20h, 11h, 24h, 04h, 04h
		db	 09h, 24h, 0Eh, 04h, 13h, 00h
		db	 0Bh, 08h, 07h, 04h, 0Ch, 24h
		db	 04h, 04h, 14h, 24h, 0Bh, 04h
		db	 01h, 00h, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh, 00h,0FFh, 00h,0FFh
		db	 00h,0FFh
data_198	db	6			; Data table (indexed access)
		db	3, 3, 1, 1, 1, 1
		db	1, 0, 0, 0, 3, 3
		db	3, 3, 1, 0, 1, 0
		db	1, 1, 1, 7, 1, 0
		db	0, 0, 1, 0, 0, 0
		db	1, 0, 1, 0, 1, 1
		db	1, 0, 1, 0, 0, 0
		db	1, 0, 0, 0, 1, 0
		db	1, 0, 1, 1, 1, 7
		db	1, 0, 0, 0, 1, 0
		db	0, 0, 1, 0, 1, 0
		db	1, 1, 1, 1, 1, 0
		db	0, 8, 1, 0, 0, 0
		db	1, 0, 1, 0, 1, 1
		db	1, 1, 3, 3, 3, 3
		db	1, 0, 0, 0, 1, 7
		db	1, 0, 1, 1, 1, 3
		db	3, 0, 0, 0, 1, 0
		db	0, 0, 1, 0, 1, 0
		db	1, 1, 3, 3, 0, 0
		db	0, 0, 1, 0, 0, 7
		db	1, 0, 1, 0, 1, 3
		db	3, 0, 0, 0, 0, 0
		db	1, 0, 0, 0, 1, 0
		db	1, 0, 3, 3, 4, 0
		db	0, 0, 0, 7, 1, 0
		db	0, 0, 1, 0, 1, 0
		db	1, 0, 4, 0, 0, 0
		db	0, 0, 1, 0, 0, 0
		db	1, 7, 1, 0, 1, 0
		db	4, 0
		db	8 dup (3)
		db	1, 0, 1, 0, 1, 0
		db	4, 0, 1, 0, 0, 4
		db	0, 0, 0, 0, 1, 0
		db	1, 7, 1, 0, 4, 8
		db	1, 0, 0, 4, 0, 1
		db	0, 0, 1, 0, 1, 0
		db	1, 0, 4, 0, 1, 0
		db	0, 4, 7, 1, 0, 0
		db	1, 0, 1, 0, 1, 0
		db	3, 3, 1, 0, 0, 4
		db	0, 1, 0, 0, 1, 6
		db	3, 3, 1, 0, 0, 0
		db	2, 0, 0, 4, 0, 1
		db	0, 9, 1, 0, 0, 4
		db	0, 0, 0, 7, 2, 0
		db	0, 4, 0, 1, 0, 0
		db	1, 0, 0, 4, 0, 0
		db	0, 0, 1, 0, 0, 4
		db	0, 1, 0, 7, 1, 0
		db	0, 4, 0, 0, 0, 0
		db	1, 0, 0, 4, 7, 1
		db	0, 0, 1, 0, 0, 4
		db	0, 0, 0, 8, 1, 0
		db	0, 4, 0, 1, 0, 0
		db	1, 0, 0, 4, 0, 0
		db	0, 0, 1, 0, 0, 4
		db	0, 0, 0, 0, 1
		db	15 dup (3)
		db	 01h, 00h, 00h, 00h, 01h, 00h
		db	 00h, 00h, 01h, 00h, 00h, 00h
		db	 01h, 00h, 00h, 00h, 01h, 06h
		db	 06h, 06h, 01h, 00h, 00h, 00h
		db	 01h, 00h, 00h, 00h, 01h, 00h
		db	 00h, 00h, 01h, 00h, 00h, 07h
		db	 01h, 00h, 00h, 07h, 01h, 00h
		db	 00h, 07h, 01h, 00h, 00h, 00h
		db	 01h, 00h, 0Eh, 01h, 03h, 10h
		db	 0Eh, 0Dh, 06h, 04h, 0Ah, 14h
		db	 06h,0FFh,0FFh,0FFh,0FFh, 00h
		db	68 dup (0)
		db	'LodeRunner'
		db	0, 1, 6, 6, 6, 1
		db	1, 0, 3
		db	8 dup (3)
		db	1, 0, 1, 0, 6, 1
		db	0, 1, 0, 0, 0, 1
		db	1, 0, 1, 9, 1, 0
		db	6, 1, 0, 1, 0, 1
		db	0, 0, 0, 1, 1, 0
		db	1, 0, 1, 1, 0, 1
		db	0, 1, 0, 1, 0, 0
		db	0, 1, 1, 0, 1, 0
		db	6, 6, 6, 1, 0, 1
		db	0, 1, 0, 0, 0, 3
		db	3, 3, 1, 0, 1, 1
		db	1, 1, 7, 1, 0, 1
		db	0, 0, 0, 1, 1, 0
		db	1, 0, 1, 0, 0, 0
		db	4, 0, 8, 1, 0, 0
		db	0, 1, 1, 0, 1, 0
		db	1, 4, 1, 1, 4, 0
		db	0, 3, 3, 0, 1, 1
		db	1, 0, 1, 0, 1, 4
		db	7, 1, 4, 0, 0, 1
		db	1, 0, 0, 3, 3, 3
		db	3, 3, 1, 4, 0, 1
		db	1, 1, 0, 3, 1, 1
		db	0, 1, 1, 1, 1, 0
		db	1, 4, 0, 1, 1, 0
		db	0, 7, 1, 1, 0, 2
		db	1, 1, 1, 7, 1, 4
		db	0, 1, 1, 0, 0, 0
		db	1, 1, 0, 1, 1, 1
		db	1, 0, 1, 4
		db	8 dup (1)
		db	0, 2, 1, 1, 1, 1
		db	1, 4
		db	9 dup (3)
		db	1, 1, 1, 1, 1, 1
		db	0, 1
		db	7 dup (1)
		db	0, 2, 1, 1, 1, 1
		db	1, 0, 0, 1, 1, 1
		db	1, 1, 1, 1, 0, 1
		db	0, 1, 1, 1, 1, 0
		db	0, 1, 1, 1, 1, 1
		db	1, 1, 0, 2, 0, 0
		db	1, 1, 1, 0, 0, 1
		db	1, 0, 0, 0, 7, 1
		db	0, 1, 1, 0, 7, 1
		db	1, 0, 0, 1, 1, 1
		db	1, 1, 0, 1, 0, 1
		db	1, 1, 0, 0, 1, 0
		db	0, 7, 1, 1, 1, 1
		db	1, 1, 0, 2, 1, 1
		db	1, 0, 1, 0, 0, 0
		db	1, 1, 0, 0, 0, 0
		db	0, 1, 1, 1, 1, 8
		db	1, 0, 0, 1, 1, 1
		db	1, 1, 1, 1, 0, 2
		db	1, 1, 1, 0, 0, 0
		db	0, 3
		db	10 dup (3)
		db	 01h, 00h, 01h, 00h, 00h, 01h
		db	 01h, 01h, 01h, 01h, 01h, 01h
		db	 00h, 01h, 01h, 00h, 01h, 00h
		db	 01h, 00h, 08h, 01h, 00h, 00h
		db	 07h, 01h, 01h, 01h, 00h, 02h
		db	 02h, 00h, 01h, 00h, 01h, 00h
		db	 00h, 01h, 01h, 01h, 00h, 01h
		db	 00h, 07h, 00h, 01h, 01h, 00h
		db	 03h, 03h, 00h, 09h, 01h, 03h
		db	 01h, 0Fh, 14h, 0Fh, 06h, 06h
		db	 18h, 02h,0FFh,0FFh,0FFh,0FFh
		db	 00h
		db	68 dup (0)
		db	'LodeRunner'
		db	0, 0, 0
		db	14 dup (3)
		db	0, 8, 1, 0
		db	13 dup (0)
		db	7, 1, 0
		db	14 dup (0)
		db	8, 1
		db	14 dup (0)
		db	7, 1, 0
		db	26 dup (0)
		db	3, 3, 3, 3, 3, 0
		db	10 dup (0)
		db	1, 0, 0, 0, 1, 0
		db	9 dup (0)
		db	9, 1, 0, 0, 0, 1
		db	11 dup (0)
		db	1, 0, 0, 0, 1, 0
		db	10 dup (0)
		db	1, 0, 0, 0, 1, 0
		db	10 dup (0)
		db	1, 0, 0, 0, 6, 3
		db	7, 3, 7, 3, 7, 3
		db	7, 3, 7, 3, 1, 0
		db	0, 0, 3
		db	11 dup (3)
		db	1, 0, 0, 0, 1, 7
		db	3, 7, 3, 7, 3, 7
		db	3, 7, 3, 7, 1, 0
		db	0, 0, 1, 0
		db	10 dup (0)
		db	1, 0, 0, 0, 1, 0
		db	10 dup (0)
		db	1, 0, 0, 0, 1, 0
		db	10 dup (0)
		db	1, 0, 0, 0, 1, 0
		db	10 dup (0)
		db	1, 0, 0, 0, 3, 3
		db	3, 0
		db	8 dup (0)
		db	1, 0
		db	14 dup (0)
		db	1, 0
		db	14 dup (0)
		db	3, 0, 0, 7, 1, 0
		db	13 dup (0)
		db	8, 1
		db	13 dup (0)
		db	7, 1, 0
		db	13 dup (0)
		db	8, 1
		db	15 dup (0)
		db	14 dup (3)
		db	 00h, 0Fh, 01h, 04h, 07h, 0Eh
		db	 18h, 01h, 16h, 02h, 01h, 01h
		db	 03h, 02h,0FFh,0FFh, 00h
		db	68 dup (0)
		db	'LodeRunner', 0
		db	'&', 0
		db	'.', 0
		db	'D', 0
		db	'G', 0
		db	'I', 0
		db	'J', 0
		db	'K', 0
		db	'L', 0
		db	'M', 0
		db	'N', 0
		db	'*******************', 0
		db	'*    GAME OVER    *', 0
		db	'*******************', 0
		db	'>> Joystick MUST be setup before'
		db	' play <<', 0
		db	'%04d%04d', 0
		db	'  No player at this level.  Retu'
		db	'rning   ', 0
		db	'  to board 1. <ANY KEY> to conti'
		db	'nue...  ', 0
		db	'NO LEVEL 1 ON DISK. Enter editor'
		db	', make a', 0
		db	'level 1 board first. <ANY KEY> c'
		db	'ontinues', 0
		db	'   This game board has an error '
		db	'on it.   ', 0
		db	' <Esc> quits, <Enter> to try nex'
		db	't board. ', 0
		db	'Only one lode runner allowed per'
		db	' level', 0
		db	'Do you want to move him/her (Y/N'
		db	')?', 0
		db	'5 enemy allowed. You must remove'
		db	' one to', 0
		db	'place another.  <ANY KEY> to con'
		db	'tinue', 0
		db	'Maximun gold allowed is 255,', 0
		db	'<ANY KEY> to continue.', 0
data_233	dw	0A0h			; Data table (indexed access)
		db	 74h, 00h, 44h, 00h, 2Ch, 00h
data_234	dw	20h
		db	 1Ah, 00h, 14h, 00h, 0Eh, 00h
		db	 08h, 00h
		db	25h
		db	'03d', 0
		db	'%03d', 0
		db	' Joystick not connected or not w'
		db	'orking  ', 0
		db	'       <ANY KEY> to continue... '
		db	'        ', 0
		db	'%d', 0
		db	'%d', 0
		db	'SCORE %04d%04d', 0
		db	'MEN %03d', 0
		db	'LEVEL %03d', 0
data_236	db	'LodeRunner', 0		; Data table (indexed access)
		db	0
		db	'Play level 1-150 (Esc exits): %d'
		db	0
		db	'%d', 0
		db	'    ', 0
		db	'%d', 0
		db	'Max level is 150, <ANY KEY> to c'
		db	'ontinue ', 0
		db	'    ', 0
		db	'%d', 0
		db	'Save as level 1..150 (Esc exits)'
		db	': ', 0
		db	'You may insert any player disk f'
		db	'or save.', 0
		db	'Edit level 1..150 (Esc exits): ', 0
		db	'You may get boards from any play'
		db	'er disk', 0
		db	'Clear level 1..150 (Esc exits): '
		db	0
		db	'Xchange level (Esc exits): ', 0
		db	'with: ', 0
		db	'Current screen has not been save'
		db	'd.', 0
		db	'S(ave screen or <space> for NO s'
		db	'ave.', 0
		db	' You are not allowed to read or '
		db	'modify  ', 0
		db	' the master file.  <ANY KEY> con'
		db	'tinues. ', 0
		db	' This disk is not a Lode Runner '
		db	'disk.   ', 0
		db	' Try another one.  <ANY KEY> con'
		db	'tinues. ', 0
		db	 0Bh, 03h, 00h, 30h, 00h, 00h
		db	0FCh, 00h, 00h,0FCh, 00h, 00h
		db	0F0h, 00h, 0Fh,0FFh, 00h, 30h
		db	0F0h,0C0h, 00h,0F0h, 3Ch, 00h
		db	0FCh, 0Ah, 03h,0CFh, 02h, 03h
		db	0CFh, 00h, 03h,0CFh, 00h, 0Bh
		db	 03h, 00h, 0Ch, 00h, 00h, 3Fh
		db	 00h, 00h, 3Fh, 00h, 00h, 0Fh
		db	 00h, 00h,0FFh,0F0h, 03h, 0Fh
		db	 0Ch, 3Ch, 0Fh, 00h,0A0h, 3Fh
		db	 00h, 80h,0F3h,0C0h, 00h,0F3h
		db	0C0h, 00h,0F3h,0C0h
data_238	db	0			; Data table (indexed access)
		db	0, 0, 0, 1, 1, 1
		db	1, 1, 1, 2, 1, 1
		db	7 dup (2)
		db	3, 2
		db	7 dup (3)
		db	4, 3
		db	7 dup (4)
		db	 05h, 04h, 05h, 05h, 05h, 05h
		db	 05h, 0Bh, 03h
		db	24 dup (0)
		db	 50h, 00h, 05h, 50h, 00h, 05h
		db	 00h, 00h, 00h, 0Bh, 03h, 00h
		db	17 dup (0)
		db	 50h, 00h, 05h, 50h, 00h, 05h
		db	 50h, 00h, 05h, 50h, 00h, 05h
		db	 00h, 00h, 00h, 0Bh, 03h, 00h
		db	24 dup (0)
		db	0AAh, 00h, 0Ah,0AAh,0A0h, 00h
		db	 00h, 00h, 0Bh, 03h, 00h
		db	21 dup (0)
		db	0AAh, 00h, 0Ah,0AAh,0A0h, 0Ah
		db	0AAh,0A0h, 00h, 00h, 00h, 0Bh
		db	 03h, 00h
		db	12 dup (0)
		db	 40h, 00h, 00h, 04h, 00h, 04h
		db	 40h, 00h, 80h, 00h, 40h,0A8h
		db	 04h, 04h, 2Ah, 22h, 00h, 0Ah
		db	0A2h, 80h, 0Bh, 03h, 00h, 00h
		db	 00h, 00h, 40h, 00h, 00h, 00h
		db	 00h, 04h, 00h, 40h, 00h, 10h
		db	 00h, 00h, 00h, 40h, 01h, 04h
		db	 00h, 80h, 01h, 04h,0A8h, 10h
		db	 00h, 2Ah, 80h, 80h, 0Ah,0A8h
		db	 80h, 0Bh, 03h
		db	13 dup (0)
		db	 40h, 00h, 00h, 01h, 00h, 04h
		db	 40h, 00h, 00h, 00h, 42h, 01h
		db	 04h, 28h, 00h, 88h,0A8h, 02h
		db	 8Ah,0A0h, 0Bh, 03h, 00h, 00h
		db	 00h, 00h, 04h, 00h, 00h, 00h
		db	 00h, 04h, 00h, 40h, 00h, 10h
		db	 00h, 00h, 00h, 04h, 01h, 01h
		db	 00h, 10h, 00h, 12h, 00h, 10h
		db	 2Ah, 02h, 02h,0A8h, 02h, 2Ah
		db	0A0h, 0Bh, 03h, 00h, 00h, 00h
		db	 00h, 01h, 00h, 00h, 00h, 00h
		db	 04h, 10h, 00h, 00h, 00h, 40h
		db	 00h, 04h, 00h, 00h, 40h, 10h
		db	 00h, 01h, 00h, 01h, 00h
		db	7 dup (0)
		db	 0Bh, 03h
		db	7 dup (0)
		db	 40h, 00h, 00h, 00h, 00h, 00h
		db	 01h, 00h, 04h, 00h, 00h, 00h
		db	 10h
		db	13 dup (0)
		db	 0Bh, 03h, 5Fh,0AAh,0F5h, 55h
		db	0FFh, 15h, 55h, 54h, 15h, 55h
		db	 54h, 15h, 00h, 00h, 00h, 54h
		db	 15h, 55h, 54h, 15h, 55h, 54h
		db	 15h, 55h, 54h, 15h, 55h, 54h
		db	 15h, 55h, 00h, 00h, 00h, 0Bh
		db	 03h, 02h, 08h, 80h, 0Ah, 28h
		db	0A0h, 5Ah,0FFh,0A5h, 55h, 54h
		db	 15h, 00h, 00h, 00h, 54h, 15h
		db	 55h, 54h, 15h, 55h, 54h, 15h
		db	 55h, 54h, 15h, 55h, 54h, 15h
		db	 55h, 00h, 00h, 00h, 0Bh, 03h
		db	 00h, 00h, 00h, 02h, 08h, 00h
		db	 0Ah, 28h, 80h, 02h,0AAh, 00h
		db	 4Fh,0A8h,0F1h, 54h,0FFh, 55h
		db	 54h, 15h, 55h, 54h, 15h, 55h
		db	 54h, 15h, 55h, 54h, 15h, 55h
		db	 00h, 00h, 00h, 0Bh, 03h
		db	7 dup (0)
		db	 08h, 00h, 00h, 20h, 80h, 08h
		db	 28h, 80h, 4Ah,0A2h,0A1h, 53h
		db	0FFh,0C3h, 54h, 15h, 55h, 54h
		db	 15h, 55h, 54h, 15h, 55h, 00h
		db	 00h, 00h, 0Bh, 03h
		db	10 dup (0)
		db	 08h, 00h, 02h, 08h, 00h, 02h
		db	 88h, 80h, 02h, 2Ah, 00h, 4Ah
		db	 88h,0A1h, 53h,0FFh,0C5h, 54h
		db	 15h, 55h, 00h, 00h, 00h, 0Bh
		db	 03h, 00h
		db	18 dup (0)
		db	 22h, 00h, 00h, 22h, 80h, 40h
		db	0A2h, 01h, 52h, 28h, 85h, 00h
		db	 00h, 00h
data_254	dw	0			; Data table (indexed access)
		db	 5Ah, 34h, 6Ah, 31h,0A4h, 2Eh
		db	 06h, 2Ch, 8Dh, 29h, 38h, 27h
		db	 05h, 25h,0F1h, 22h,0FBh, 20h
		db	 21h, 1Fh, 61h, 1Dh,0BBh, 1Bh
		db	 2Dh, 1Ah,0B5h, 18h, 52h, 17h
		db	 03h, 16h,0C6h, 14h, 9Ch, 13h
		db	 82h, 12h, 78h, 11h, 7Dh, 10h
		db	 90h, 0Fh,0B0h, 0Eh,0DDh, 0Dh
		db	 16h, 0Dh, 5Ah, 0Ch,0A9h, 0Bh
		db	 01h, 0Bh, 6Fh, 08h,0CEh, 09h
		db	 41h, 09h,0BCh, 08h, 3Fh, 08h
		db	0C8h, 07h, 58h, 07h,0EFh, 06h
		db	 8Bh, 06h, 2Dh, 06h,0D4h, 05h
		db	 81h, 05h, 32h, 05h,0E7h, 04h
		db	0A1h, 04h, 5Eh, 04h, 1Fh, 04h
		db	0E4h, 03h,0ACh, 03h, 77h, 03h
		db	 46h, 03h, 17h, 03h,0EAh, 02h
		db	0C0h, 02h, 99h, 02h, 74h, 02h
data_255	dw	28h			; Data table (indexed access)
		db	 26h, 00h, 24h, 00h, 22h, 00h
		db	 20h, 00h, 1Eh, 00h
data_256	dw	25h			; Data table (indexed access)
		db	 26h, 00h, 24h, 00h, 25h, 00h
		db	 24h, 00h, 25h, 00h
data_257	dw	1Ah			; Data table (indexed access)
		db	 1Ah, 00h, 1Ah, 00h, 1Ah, 00h
		db	 1Ah, 00h, 1Ah, 00h, 1Ah, 00h
		db	 1Ah, 00h, 14h, 00h, 14h, 00h
		db	 0Eh, 00h, 0Eh, 00h, 08h, 00h
data_258	dw	2Ah			; Data table (indexed access)
		db	 2Ah, 00h, 2Ah, 00h, 2Ah, 00h
		db	 2Ah, 00h, 2Ah, 00h, 2Ah, 00h
		db	 2Ah, 00h, 28h, 00h, 28h, 00h
		db	 28h, 00h, 28h, 00h, 28h, 00h
data_259	dw	0Ah			; Data table (indexed access)
		db	 0Ah, 00h, 0Ch, 00h, 0Ch, 00h
		db	 0Eh, 00h, 0Eh, 00h, 10h, 00h
		db	 10h, 00h, 12h, 00h, 12h, 00h
		db	 14h, 00h, 14h, 00h, 16h, 00h
		db	 16h, 00h, 18h, 00h, 18h, 00h
		db	 1Ah, 00h, 1Ah, 00h, 1Ch, 00h
		db	 1Ch, 00h, 1Eh, 00h, 1Eh, 00h
		db	 20h, 00h, 20h, 00h
data_260	dw	13h			; Data table (indexed access)
		db	 13h, 00h, 15h, 00h, 15h, 00h
		db	 17h, 00h, 17h, 00h, 18h, 00h
		db	 18h, 00h, 1Ah, 00h, 1Ah, 00h
		db	 1Ch, 00h, 1Ch, 00h, 1Eh, 00h
		db	 1Eh, 00h, 1Fh, 00h, 1Fh, 00h
		db	 21h, 00h, 21h, 00h, 23h, 00h
		db	 23h, 00h, 24h, 00h, 24h, 00h
		db	 26h, 00h, 26h, 00h
data_261	dw	28h			; Data table (indexed access)
		db	 1Ah, 00h, 0Eh, 00h
data_262	dw	0Ah			; Data table (indexed access)
		db	 0Fh, 00h, 02h, 00h
data_263	dw	28h			; Data table (indexed access)
		db	 1Ah, 00h, 0Eh, 00h
data_264	dw	28h			; Data table (indexed access)
		db	 1Eh, 00h, 14h, 00h
data_265	dw	1Eh			; Data table (indexed access)
		db	 24h, 00h, 2Ah, 00h, 30h, 00h
data_266	dw	14h			; Data table (indexed access)
		db	 16h, 00h, 18h, 00h, 1Ah, 00h
data_267	dw	64h			; Data table (indexed access)
		db	 19h, 00h, 64h, 00h, 19h, 00h
		db	 64h, 00h, 19h, 00h,0C8h, 00h
		db	0C8h, 00h, 64h, 00h, 19h, 00h
		db	 58h, 02h,0C8h, 00h
data_268	dw	1Fh			; Data table (indexed access)
		db	 00h, 00h, 24h, 00h, 00h, 00h
		db	 28h, 00h, 00h, 00h, 2Bh, 00h
		db	 00h, 00h, 28h, 00h, 00h, 00h
		db	 2Bh, 00h, 00h, 00h
		db	20h
		db	'          S(ound  M(en=%03d  L(e'
		db	'vel=%03d ', 0
		db	'                X,Y(flip  A(bort'
		db	'  Q(uit ', 0
		db	'K(eyboard', 0
		db	'J(oystick', 0
		db	'J(oystk adjust', 0
		db	' K(eybrd setup', 0
		db	 1Bh, 1Ah
data_270	db	'(gamespeed=%d ', 0
		db	'   1  2  3  4  5  6  7  8  9   0'
		db	'>erase', 0
		db	'Esc>cmds', 0
		db	'S(ave G(et X(change C(lear ', 1Bh
		db	'%c scan level', 0
		db	'P(lay  Q(uit  Esc>edit  <%03d ', 0
		db	'NOT SAVED> ', 0
		db	'is saved>  ', 0
		db	'LODE RUNNER HIGH SCORES', 0
		db	'Master Disk', 0
		db	'Initials Level  Score', 0
		db	'-------- ----- --------', 0
		db	'%2d.    %.3s    %03d  %04d%04d', 0
		db	'Enter your initials, then hit <E'
		db	'nter>', 0
		db	' Confirm: clear these scores (Y/'
		db	'N)? ', 0
		db	' Do you want to adjust joystick '
		db	'(Y/N)?  ', 0
		db	' Move joystick to center positio'
		db	'n and   ', 0
		db	' press <BUTTON 1 or 2>  ( Esc to'
		db	' exit ) ', 0
		db	'Move joystick to each axis, hit '
		db	'button  ', 0
		db	'to set trigger (Esc exits):  sto'
		db	'p  stop ', 0
		db	'left ', 0
		db	'right', 0
		db	'stop ', 0
		db	' up ', 0
		db	'down', 0
		db	'stop', 0
		db	'1', 0Dh
data_272	db	0			; Data table (indexed access)
		db	 00h, 00h, 00h, 00h, 55h, 00h
		db	11 dup (0)
		db	55h
		db	11 dup (0)
		db	 55h, 55h, 55h
		db	7 dup (0)
		db	 50h, 00h, 00h, 55h, 55h, 55h
		db	 00h, 00h, 05h, 00h, 00h, 00h
		db	 05h, 55h, 50h, 00h, 00h, 55h
		db	 00h, 00h, 05h, 55h, 50h, 00h
		db	 00h, 05h, 55h, 55h, 00h, 00h
		db	 55h, 00h, 00h, 55h, 55h, 50h
		db	 00h, 00h
		db	11 dup (55h)
		db	 00h, 00h, 55h, 50h
		db	7 dup (55h)
		db	 05h, 55h, 00h, 00h, 55h, 00h
		db	 05h, 55h, 55h, 55h, 55h, 55h
		db	 50h, 00h, 55h, 00h, 00h, 55h
		db	 50h, 00h, 05h, 55h, 55h, 55h
		db	 50h, 00h, 05h, 55h, 00h, 00h
		db	 05h, 50h, 00h, 00h, 00h, 00h
		db	 00h, 00h, 00h, 05h, 50h, 00h
		db	 00h, 05h, 50h, 00h, 00h, 00h
		db	 00h, 00h, 00h, 00h, 05h, 50h
		db	 00h, 00h, 05h, 55h, 00h, 00h
		db	 00h, 00h, 00h, 00h, 00h, 55h
		db	 50h, 00h, 00h, 05h, 55h, 00h
		db	 00h, 00h, 00h, 00h, 00h, 00h
		db	 55h, 50h, 00h, 00h, 00h, 55h
		db	 00h, 00h, 00h, 00h, 00h, 00h
		db	 00h, 55h, 00h, 00h, 00h, 00h
		db	 55h, 00h, 00h, 00h, 00h, 00h
		db	 00h, 00h, 55h, 00h, 00h, 00h
		db	 00h, 55h, 50h, 00h, 00h, 00h
		db	 00h, 00h, 05h, 55h, 00h, 00h
		db	 00h, 00h, 55h, 50h, 00h, 00h
		db	 00h, 00h, 00h, 05h, 55h, 00h
		db	 00h, 00h, 00h, 05h, 50h, 00h
		db	 00h, 00h, 00h, 00h, 05h, 50h
		db	 00h, 00h, 00h, 00h, 05h, 50h
		db	 00h, 00h, 00h, 00h, 00h, 05h
		db	 50h, 00h, 00h, 00h, 00h, 05h
		db	 55h, 00h, 00h, 00h, 00h, 00h
		db	 55h, 50h, 00h, 00h, 05h, 00h
		db	 05h, 55h, 00h, 00h, 00h, 00h
		db	 00h, 55h, 50h, 00h, 00h, 05h
		db	 00h, 00h, 55h, 00h, 00h, 00h
		db	 00h, 00h, 55h, 00h, 00h, 05h
		db	 55h, 00h, 00h, 55h, 00h, 00h
		db	 00h, 00h, 00h, 05h, 00h, 00h
		db	 05h, 55h, 00h, 00h, 55h, 00h
		db	 00h, 00h, 00h, 00h, 05h, 55h
		db	 00h, 00h, 05h, 00h, 00h, 55h
		db	 00h, 00h, 00h, 00h, 00h, 00h
		db	 55h, 50h, 00h, 05h, 00h, 00h
		db	 05h
		db	'UUUUUPUUUU'
		db	 00h, 00h, 05h, 55h, 55h, 55h
		db	 55h, 55h, 50h, 05h, 55h, 55h
		db	 55h, 00h, 00h, 05h, 55h, 55h
		db	 55h, 55h, 55h, 50h, 00h
		db	 55h, 55h, 55h
		db	8 dup (0)
		db	 50h, 00h, 00h, 55h, 55h
		db	8 dup (0)
		db	55h
		db	12 dup (0)
		db	55h
		db	12 dup (0)
		db	 55h, 50h
		db	11 dup (0)
		db	 55h, 50h
		db	11 dup (0)
		db	 05h, 50h, 00h
		db	10 dup (0)
		db	 05h, 50h, 00h
		db	10 dup (0)
		db	 05h, 55h, 00h
		db	10 dup (0)
		db	 05h, 55h, 00h
		db	11 dup (0)
		db	55h
		db	12 dup (0)
		db	55h
		db	12 dup (0)
		db	 55h, 50h
		db	11 dup (0)
		db	 55h, 50h
		db	11 dup (0)
		db	 05h, 50h, 00h
		db	10 dup (0)
		db	 05h, 50h, 00h
		db	10 dup (0)
		db	 05h, 50h, 00h
		db	10 dup (0)
		db	 05h, 50h, 00h
		db	11 dup (0)
		db	 55h, 55h, 55h
		db	10 dup (0)
		db	 55h, 55h, 55h
		db	10 dup (0)
		db	 55h, 55h, 55h
data_298	dw	1
data_299	db	0			; Data table (indexed access)
		db	0FCh,0F0h,0C0h, 00h
data_300	db	0			; Data table (indexed access)
		db	 02h, 0Ah, 2Ah,0AAh
data_301	db	7			; Data table (indexed access)
		db	 0Eh, 3Ah, 0Eh, 2Bh, 1Bh, 05h
		db	 00h, 07h, 0Fh, 39h, 0Fh, 2Ah
		db	 1Ch, 04h, 00h, 09h, 0Dh, 3Bh
		db	 0Dh, 2Ch, 1Bh, 03h, 00h, 09h
		db	 0Dh, 3Bh, 0Dh, 2Ch, 1Ch, 02h
		db	 00h, 09h, 0Dh, 3Bh, 0Dh, 2Ch
		db	 1Ch, 02h, 00h, 09h, 0Dh, 3Bh
		db	 0Dh, 2Ch, 1Ch, 02h, 00h, 08h
		db	 0Dh, 3Ch, 0Dh, 2Bh, 1Dh, 02h
		db	 00h, 08h, 0Dh, 3Bh, 0Eh, 2Bh
		db	 1Dh, 02h, 00h, 08h, 0Dh, 11h
		db	 12h, 0Bh, 1Ah, 07h, 12h, 13h
		db	 0Eh, 03h, 0Bh, 05h, 0Dh, 02h
		db	 0Bh, 05h, 0Eh, 05h, 07h, 06h
		db	 0Eh, 05h, 07h, 0Bh, 12h, 04h
		db	 0Ch, 05h, 07h, 04h, 00h, 08h
		db	 0Dh, 0Fh, 16h, 07h, 1Ch, 05h
		db	 15h, 12h, 0Eh, 04h, 0Ah, 05h
		db	 0Eh, 02h, 0Ch, 03h, 0Fh, 03h
		db	 09h, 05h, 0Fh, 03h, 09h, 08h
		db	 16h, 02h, 0Dh, 03h, 08h, 04h
		db	 00h, 08h, 0Dh, 0Eh, 18h, 05h
		db	 1Dh, 04h, 17h, 10h, 0Fh, 04h
		db	 0Ah, 06h, 0Dh, 02h, 0Ch, 04h
		db	 0Fh, 01h, 0Bh, 05h, 0Fh, 01h
		db	 0Bh, 06h, 17h, 03h, 0Dh, 01h
		db	 08h, 04h, 00h, 07h, 0Dh, 0Eh
		db	 19h, 04h, 1Eh, 03h, 19h, 0Fh
		db	 0Fh, 04h, 0Ah, 07h, 0Ch, 02h
		db	 0Ch, 05h, 1Bh, 05h, 1Bh, 04h
		db	 19h, 03h, 15h, 05h, 00h, 07h
		db	 0Dh, 0Eh, 19h, 04h, 1Eh, 02h
		db	 1Ah, 0Fh, 0Eh, 05h, 09h, 08h
		db	 0Ch, 02h, 0Ch, 05h, 1Bh, 05h
		db	 1Bh, 03h, 1Ah, 03h, 15h, 05h
		db	 00h, 07h, 0Dh, 0Dh, 1Ah, 03h
		db	 1Fh, 02h, 1Ah, 0Fh, 0Eh, 04h
		db	 0Ah, 08h, 0Ch, 02h, 0Ch, 05h
		db	 1Bh, 05h, 1Bh, 03h, 1Ah, 03h
		db	 15h, 05h, 00h, 07h, 0Dh, 0Dh
		db	 1Ah, 03h, 1Eh, 02h, 1Bh, 0Fh
		db	 0Eh, 04h, 0Ah, 07h, 0Ch, 03h
		db	 0Ch, 05h, 1Bh, 05h, 1Bh, 03h
		db	 1Ah, 03h, 14h, 06h, 00h, 07h
		db	 0Dh, 0Dh, 1Ah, 03h, 1Eh, 02h
		db	 1Bh, 0Eh, 1Dh, 07h, 0Ch, 02h
		db	 0Ch, 05h, 1Ch, 04h, 1Ch, 02h
		db	 1Bh, 02h, 15h, 07h, 00h, 06h
		db	 0Dh, 0Eh, 1Ah, 02h, 1Fh, 02h
		db	 1Bh, 0Eh, 1Dh, 07h, 0Ch, 02h
		db	 0Ch, 05h, 1Bh, 05h, 1Bh, 03h
		db	 1Bh, 02h, 15h, 07h, 00h, 06h
		db	 0Dh, 0Dh, 1Bh, 02h, 1Fh, 02h
		db	 0Ch, 04h, 0Ah, 0Fh, 1Ch, 08h
		db	 0Ch, 02h, 0Ch, 05h, 1Bh, 05h
		db	 1Bh, 03h, 0Ch, 04h, 0Bh, 02h
		db	 14h, 07h, 00h, 06h, 0Dh, 0Dh
		db	 0Bh, 04h, 0Bh, 03h, 0Ch, 04h
		db	 0Fh, 02h, 0Ch, 04h, 0Ah, 0Fh
		db	 1Ch, 08h, 0Ch, 02h, 0Ch, 05h
		db	 0Ch, 02h, 0Dh, 05h, 0Ch, 02h
		db	 0Dh, 03h, 0Ch, 04h, 0Ah, 03h
		db	 0Eh, 0Dh, 00h, 06h, 0Dh, 0Dh
		db	 0Ah, 06h, 0Ah, 03h, 0Bh, 06h
		db	 0Dh, 02h, 0Dh, 04h, 0Ah, 0Fh
		db	 1Ch, 07h, 0Ch, 03h, 0Ch, 05h
		db	 0Ch, 02h, 0Dh, 05h, 0Ch, 02h
		db	 0Dh, 03h, 0Ch, 04h, 0Ah, 03h
		db	 0Dh, 0Eh, 00h, 06h, 0Dh, 0Dh
		db	 0Ah, 06h, 0Ah, 03h, 0Bh, 06h
		db	 0Dh, 02h, 1Bh, 0Eh, 1Ch, 08h
		db	 0Ch, 02h, 0Ch, 05h, 0Dh, 02h
		db	 0Dh, 04h, 0Dh, 02h, 0Dh, 02h
		db	 1Bh, 02h, 0Dh, 0Fh, 00h, 05h
		db	 0Dh, 0Dh, 0Ah, 07h, 0Ah, 02h
		db	 0Ch, 06h, 0Dh, 02h, 1Bh, 0Eh
		db	 1Bh, 09h, 0Ch, 02h, 0Ch, 05h
		db	 0Dh, 02h, 0Ch, 05h, 0Dh, 02h
		db	 0Ch, 03h, 1Bh, 02h, 0Ch, 10h
		db	 00h, 05h, 0Dh, 0Dh, 0Ah, 06h
		db	 0Bh, 02h, 0Bh, 07h, 0Dh, 02h
		db	 1Ah, 0Fh, 18h, 0Ch, 0Ch, 02h
		db	 0Ch, 05h, 0Ch, 03h, 0Ch, 05h
		db	 0Ch, 03h, 0Ch, 03h, 1Bh, 02h
		db	 0Ch, 10h, 00h, 05h, 0Dh, 0Dh
		db	 0Ah, 06h, 0Ah, 03h, 0Bh, 06h
		db	 0Eh, 02h, 1Ah, 0Fh, 19h, 0Bh
		db	 0Ch, 02h, 0Ch, 05h, 0Ch, 03h
		db	 0Ch, 05h, 0Ch, 03h, 0Ch, 03h
		db	 1Ah, 03h, 0Ch, 10h, 00h, 05h
		db	 0Dh, 0Dh, 0Ah, 06h, 0Ah, 03h
		db	 0Bh, 06h, 0Dh, 02h, 19h, 11h
		db	 19h, 0Ah, 0Ch, 03h, 0Ch, 05h
		db	 0Ch, 02h, 0Dh, 05h, 0Ch, 02h
		db	 0Dh, 03h, 19h, 04h, 0Ch, 10h
		db	 00h, 05h, 0Dh, 0Dh, 0Ah, 06h
		db	 0Ah, 03h, 0Bh, 06h, 0Dh, 02h
		db	 0Fh, 1Bh, 19h, 0Ah, 0Ch, 02h
		db	 0Ch, 05h, 0Dh, 02h, 0Dh, 04h
		db	 0Dh, 02h, 0Dh, 02h, 0Fh, 0Eh
		db	 0Dh, 10h, 00h, 04h, 0Dh, 0Eh
		db	 09h, 07h, 0Ah, 02h, 0Ch, 06h
		db	 0Dh, 02h, 0Eh, 1Bh, 1Bh, 09h
		db	 0Ch, 02h, 0Ch, 05h, 0Dh, 02h
		db	 0Ch, 05h, 0Dh, 02h, 0Ch, 03h
		db	 0Eh, 0Fh, 0Ch, 11h, 00h, 04h
		db	 0Dh, 0Dh, 0Ah, 06h, 0Bh, 02h
		db	 0Bh, 06h, 0Eh, 02h, 0Eh, 1Bh
		db	 0Eh, 02h, 0Bh, 09h, 0Ch, 02h
		db	 0Ch, 05h, 0Ch, 03h, 0Ch, 05h
		db	 0Ch, 03h, 0Ch, 03h, 0Eh, 0Fh
		db	 0Ch, 11h, 00h, 04h, 0Dh, 0Ah
		db	 01h, 02h, 0Ah, 06h, 0Ah, 03h
		db	 0Bh, 06h, 0Eh, 02h, 0Fh, 0Ah
		db	 01h, 0Fh, 0Eh, 02h, 0Bh, 09h
		db	 0Ch, 02h, 0Ch, 05h, 0Ch, 03h
		db	 0Ch, 05h, 0Ch, 03h, 0Ch, 03h
		db	 0Fh, 0Ah, 01h, 03h, 0Ch, 11h
		db	 00h, 04h, 0Dh, 09h, 02h, 02h
		db	 0Bh, 04h, 0Bh, 03h, 0Ch, 04h
		db	 0Eh, 02h, 11h, 08h, 02h, 0Fh
		db	 0Eh, 02h, 0Ch, 07h, 0Ch, 03h
		db	 0Ch, 05h, 0Ch, 02h, 0Dh, 05h
		db	 0Ch, 02h, 0Dh, 03h, 10h, 08h
		db	 02h, 03h, 0Ch, 11h, 00h, 04h
		db	 18h, 02h, 1Ah, 03h, 1Eh, 02h
		db	 1Bh, 0Eh, 0Fh, 03h, 0Fh, 03h
		db	 1Ah, 05h, 0Dh, 02h, 0Dh, 04h
		db	 0Dh, 02h, 0Dh, 02h, 1Bh, 02h
		db	 0Dh, 11h, 00h, 03h, 19h, 02h
		db	 1Ah, 02h, 1Fh, 02h, 1Bh, 0Eh
		db	 0Fh, 03h, 0Fh, 03h, 1Ah, 05h
		db	 0Dh, 02h, 0Ch, 05h, 0Dh, 02h
data_302	db	0Ch
		db	 03h, 1Bh, 02h, 0Ch, 12h, 00h
		db	 03h, 19h, 02h, 1Ah, 02h, 1Fh
		db	 02h, 1Ah, 0Fh, 0Eh, 04h, 0Fh
		db	 03h, 1Ah, 05h, 0Ch, 03h, 0Ch
		db	 05h, 0Ch, 03h, 0Ch, 03h, 1Bh
		db	 02h, 0Ch, 12h, 00h, 03h, 19h
		db	 02h, 19h, 03h, 1Fh, 02h, 1Ah
		db	 0Fh, 0Eh, 05h, 0Eh, 03h, 1Ah
		db	 05h, 0Ch, 03h, 0Ch, 05h, 0Ch
		db	 03h, 0Ch, 03h, 1Ah, 03h, 0Ch
		db	 12h, 00h, 03h, 19h, 02h, 19h
		db	 03h, 1Eh, 03h, 1Ah, 0Fh, 0Eh
		db	 05h, 0Eh, 02h, 1Bh, 05h, 0Ch
		db	 02h, 0Dh, 05h, 0Ch, 02h, 0Dh
		db	 03h, 1Ah, 03h, 0Bh, 13h, 00h
		db	 03h, 19h, 02h, 19h, 03h, 1Eh
		db	 03h, 19h, 0Fh, 0Fh, 05h, 0Dh
		db	 03h, 1Ah, 05h, 0Dh, 02h, 0Ch
		db	 05h, 0Dh, 02h, 0Ch, 05h, 19h
		db	 02h, 0Ch, 13h, 00h, 03h, 18h
		db	 03h, 18h, 04h, 10h, 01h, 0Dh
		db	 04h, 18h, 0Fh, 0Fh, 06h, 0Ch
		db	 03h, 1Ah, 05h, 0Dh, 02h, 0Ch
		db	 05h, 0Dh, 02h, 0Ch, 05h, 18h
		db	 03h, 0Ch, 13h, 00h, 04h, 17h
		db	 03h, 17h, 06h, 0Fh, 01h, 0Dh
		db	 04h, 17h, 10h, 0Fh, 06h, 0Ch
		db	 04h, 0Bh, 01h, 0Eh, 04h, 0Dh
		db	 02h, 0Dh, 04h, 0Dh, 02h, 0Dh
		db	 04h, 17h, 04h, 0Dh, 12h, 00h
		db	 04h, 16h, 05h, 15h, 08h, 0Dh
		db	 03h, 0Dh, 04h, 15h, 12h, 0Fh
		db	 06h, 0Bh, 04h, 0Ah, 03h, 0Eh
		db	 04h, 0Dh, 02h, 0Dh, 04h, 0Dh
		db	 02h, 0Dh, 04h, 15h, 05h, 0Eh
		db	 11h, 00h, 05h, 14h, 07h, 12h
		db	 0Bh, 0Ah, 06h, 0Dh, 05h, 11h
		db	 15h, 0Eh, 07h, 08h, 07h, 08h
		db	 05h, 0Dh, 05h, 0Ch, 03h, 0Ch
		db	 05h, 0Ch, 03h, 0Ch, 06h, 12h
		db	 07h, 0Dh, 11h, 00h
data_303	db	0Ah			; Data table (indexed access)
		db	 01h, 99h, 99h, 99h
		db	7 dup (99h)
data_305	db	4			; Data table (indexed access)
		db	 04h, 99h
		db	 99h, 99h, 99h, 99h, 99h, 99h
data_307	dw	9999h			; Data table (indexed access)
		db	7 dup (99h)
		db	'map token is: %x'
		db	0
data_309	db	0
		db	'LODERUN.DAT', 0
		db	' Place a FORMATTED DOS DISK in D'
		db	'rive A  ', 0
		db	' <Enter> to continue, <Esc> to e'
		db	'xit...  ', 0
		db	'  Enter up to 11 chars for a DAT'
		db	'A ID:   ', 0
		db	' ___________    <Enter> to conti'
		db	'nue...  ', 0
		db	' Initializing disk in drive A ta'
		db	'kes 20  ', 0
		db	' seconds.  Tones will sound when'
		db	' done.  ', 0
		db	' You are not allowed to initiali'
		db	'ze the  ', 0
		db	'  MASTER disk.  <ANY KEY> contin'
		db	'ues...  ', 0
		db	'** NO ID **', 0
		db	' Data with ID <%s> is on disk.', 0
		db	' <Enter> CLEARS old file, <Esc> '
		db	'KEEPS it.', 0
		db	'  Not enough room on disk to ini'
		db	't file. ', 0
		db	'LODERUN.DAT', 0
		db	'  Lode Runner data disk ready to'
		db	' use.   ', 0
		db	'LODERUN.DAT', 0
		db	' Unable to Init disk.  Try anoth'
		db	'er one. ', 0
		db	'        <ANY KEY> to continue...'
		db	'        ', 0
		db	' This diskette is write protecte'
		db	'd ...   ', 0
		db	' Drive door open or drive not wo'
		db	'rking...', 0
		db	'   Unable to find file LODERUN.D'
		db	'AT...   ', 0
		db	' Access denied.  Directory may b'
		db	'e full. ', 0
		db	' Unable to read/write/init this '
		db	'disk... ', 0
		db	' <Esc> to exit, <Enter> to try a'
		db	'gain... ', 0
data_311	db	1Dh			; Data table (indexed access)
		db	0DDh,0DCh, 1Ch,0BBh, 9Ch, 1Ch
		db	0BBh, 9Ch, 1Ch,0BBh, 9Ch, 1Dh
		db	0DDh,0DCh
data_312	dw	20h
data_313	db	'LODE RUNNER COPYRIGHT 1983 BRODE'
		db	'RBUND SOFTWARE', 0
		db	'MOVE RIGHT', 0
		db	'MOVE  LEFT', 0
		db	' MOVE  UP ', 0
		db	'MOVE  DOWN', 0
		db	'DIG  RIGHT', 0
		db	' DIG LEFT ', 0
data_315	db	7			; Data table (indexed access)
		db	7
		db	'1234567890-=  QWERTYUIOP[]'
		db	 07h, 19h
		db	'ASDFGHJKL;', 27h, '`'
		db	18h
		db	'\ZXCVBNM,./', 1Bh, ' '
		db	 1Ah, 20h, 07h
		db	10 dup (20h)
		db	7, 7
		db	13 dup (20h)
		db	 07h, 20h, 20h, 07h, 20h, 00h
		db	 00h
		db	20h
		db	'You may view or change the play '
		db	'action ', 0
		db	' keys; <ANY KEY> continues, <Esc'
		db	'> exits.', 0
		db	'Key to %s is <  %c  >; enter new'
		db	' ', 0
		db	'key, <Enter> for next key, <Esc>'
		db	' exits  ', 0
		db	'<  %c  > key is being used to %s'
		db	0
		db	'         <ANY KEY> to continue..'
		db	'.       ', 0
		db	' ', 1Bh, ' BS', 0
		db	' Tab ', 0
		db	'PrtSc', 0
		db	'Space', 0
		db	' F1  ', 0
		db	' F2  ', 0
		db	' F3  ', 0
		db	' F4  ', 0
		db	' F5  ', 0
		db	' F6  ', 0
		db	' F7  ', 0
		db	' F8  ', 0
		db	' F9  ', 0
		db	' F10 ', 0
		db	'7 num', 0
		db	'8 num', 0
		db	'9 num', 0
		db	'- num', 0
		db	'4 num', 0
		db	'5 num', 0
		db	'6 num', 0
		db	'+ num', 0
		db	'1 num', 0
		db	'2 num', 0
		db	'3 num', 0
		db	'0 num', 0
		db	' Del ', 0
		db	' Ins ', 0
		db	'. num', 0
		db	'HOME '
		db	0
data_319	dw	0B800h
data_320	db	0
		db	23h
		db	8 dup (0)
		db	5, 0, 0, 0, 0, 0
		db	0, 0, 0
		db	24h
		db	8 dup (0)
data_323	db	0
data_324	db	0
		db	 35h, 2Dh, 2Eh, 07h, 5Bh, 02h
		db	 57h, 57h, 02h, 03h
		db	0, 0
data_326	db	0
		db	399 dup (0)
data_327	dw	0
		db	0C0h, 30h, 0Ch, 03h, 3Fh,0CFh
		db	0F3h,0FCh
data_328	db	0			; Data table (indexed access)
		db	 55h,0AAh,0FFh
data_329	dw	0
data_330	db	0
		db	 03h, 0Ch, 0Fh, 30h, 33h, 3Ch
		db	 3Fh,0C0h,0C3h,0CCh,0CFh,0F0h
		db	0F3h,0FCh,0FFh
		db	'>>> Press the F1 key if you have'
		db	' a monochrome graphics <<<', 0
		db	'>>>  system and Lode Runner is n'
		db	'ot visible on screen.  <<<', 0
data_332	db	'0123456789abcdef', 0	; Data table (indexed access)
		db	0
data_333	db	20h			; Data table (indexed access)
		db	8 dup (20h)
		db	 30h, 30h, 30h, 30h, 30h, 20h
		db	17 dup (20h)
		db	90h
		db	'@@@@@@@@@@@@@@@', 0Ch, 0Ch, 0Ch, 0Ch
		db	0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, '@@'
		db	'@@@@@', 9, 9, 9, 9, 9, 9
		db	20 dup (1)
		db	 40h, 40h, 40h, 40h, 01h, 40h
		db	 0Ah, 0Ah, 0Ah, 0Ah, 0Ah, 0Ah
		db	 02h
		db	19 dup (2)
		db	 40h, 40h, 40h, 40h, 20h
data_339	dw	0E8F0h
data_340	dw	0
data_341	dw	0			; segment storage
data_342	dw	0			; segment storage
data_343	dw	0
data_344	dw	0
data_345	dw	offset sub_155
		db	0
		db	'Too many args.'
		db	0
data_347	db	0			; Data table (indexed access)
data_348	db	0
data_349	db	0
		db	17 dup (0)
data_350	dw	offset loc_1378
data_351	dw	offset loc_1383
data_352	db	0Ah
		db	 0Dh, 00h
data_353	dw	0
data_354	dw	0

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_170		proc	near
		mov	di,PSP_cmd_size
		mov	si,offset data_374
;*		mov	cx,di
		db	 89h,0F9h		;  Fixup - byte match
		cld				; Clear direction
		rep	movsb			; Rep when cx >0 Mov [si] to es:[di]
		call	sub_171
		mov	bp,0
		retn
sub_170		endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_171		proc	near
		mov	ax,40h
		mov	es,ax
;         Simulation segment register change due to instruction       ES now 0040
		mov	di,data_26e
		mov	bl,es:[di]
loc_1399:
		cmp	bl,es:[di]
		je	loc_1399		; Jump if equal
		mov	bl,es:[di]
		mov	ax,0FFE4h
		cwd				; Word to double word
		call	sub_172
		not	ax
		not	dx
		mov	cx,1400h
		div	cx			; ax,dx rem=dx:ax/reg
		mov	ds:data_34e,ax
		mov	ax,cs
		mov	es,ax
;         Simulation segment register change due to instruction       ES now 3BA9
		retn
sub_171		endp

		db	0, 0, 0
data_374	db	0
		db	 0Dh, 51h,0B9h, 08h, 00h,0E8h
		db	 07h, 00h, 59h,0B9h, 7Dh, 00h
		db	0C3h, 00h, 00h, 50h, 53h, 52h
		db	 57h, 06h,0B8h, 40h, 00h, 8Eh
		db	0C0h, 31h,0FFh, 26h, 8Ah, 1Dh

locloop_1400:
		mov	ax,cs:data_34e
;*		xor	dx,dx			; Zero register
		db	 31h,0D2h		;  Fixup - byte match
		call	sub_172
		loop	locloop_1400		; Loop if cx > 0

		pop	es
;         Simulation segment register change due to instruction       ES now 0000
		pop	di
		pop	dx
		pop	bx
		pop	ax
		retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_172		proc	near
loc_1401:
;         Simulation segment register change due to sub entry point   ES now 0040
		sub	ax,1
		sbb	dx,0
		jc	loc_ret_1402		; Jump if carry Set
		cmp	bl,es:[di]
		je	loc_1401		; Jump if equal

loc_ret_1402:
		retn
sub_172		endp

			                        ; now data because: string or bytes
		db	66 dup (0)

seg_a		ends



		end	start
