	.386p
	ifndef	??version
?debug	macro
	endm
publicdll macro	name
	public	name
	endm
	endif
	?debug	V 300h
	?debug	S "..\SOURCE\FOOL.C"
	?debug	C E9ADA02D31102E2E5C534F555243455C464F4F4C2E43
	?debug	C E94019CA181F443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C535444494F2E48
	?debug	C E94019CA181F443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C5F444546532E48
	?debug	C E94019CA1820443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C5F4E46494C452E48
	?debug	C E94019CA181F443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C5F4E554C4C2E48
	?debug	C E94019CA181D443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C444F532E48
	?debug	C E94019CA1820443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C5354444C49422E48
	?debug	C E94019CA181F443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C434F4E494F2E48
	?debug	C E94019CA181D443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C4D454D2E48
	?debug	C E94019CA181E443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C54494D452E48
	?debug	C E94019CA181E443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C4D4154482E48
	?debug	C E94019CA181F443A5C4445565C424F524C414E44435C494E434C55+
	?debug	C 44455C414C4C4F432E48
FOOL_TEXT	segment byte public use16 'CODE'
FOOL_TEXT	ends
	assume	cs:FOOL_TEXT,ds:FOOL_DATA
FOOL_DATA	segment word public use16 'FAR_DATA'
d@	label	byte
d@w	label	word
b@	label	byte
b@w	label	word
_VideoBuf	label	dword
	db	0
	db	0
	db	0
	db	160
_KEY_UP	label	word
	db	72
	db	0
_KEY_DOWN	label	word
	db	80
	db	0
_KEY_LEFT	label	word
	db	75
	db	0
_KEY_RIGHT	label	word
	db	77
	db	0
_KEY_ESC	label	word
	db	1
	db	0
_KEY_CTRL	label	word
	db	29
	db	0
_GameScore	label	word
	db	0
	db	0
	db	0
	db	0
_fly_pic	label	byte
	db	16
	db	0
	db	16
	db	0
	db	0
	db	0
	db	0
	db	29
	db	25
	db	0
	db	0
	db	0
	db	0
	db	25
	db	29
	db	196
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	25
	db	25
	db	0
	db	0
	db	0
	db	0
	db	25
	db	0
	db	196
	db	0
	db	0
	db	0
	db	0
	db	112
	db	112
	db	0
	db	25
	db	196
	db	40
	db	40
	db	29
	db	112
	db	112
	db	40
	db	112
	db	0
	db	112
	db	112
	db	112
	db	40
	db	40
	db	112
	db	112
	db	40
	db	40
	db	25
	db	25
	db	112
	db	40
	db	40
	db	112
	db	112
	db	112
	db	112
	db	112
	db	112
	db	40
	db	112
	db	25
	db	40
	db	40
	db	112
	db	112
	db	112
	db	40
	db	40
	db	25
	db	40
	db	112
	db	112
	db	0
	db	0
	db	112
	db	112
	db	25
	db	40
	db	40
	db	40
	db	112
	db	40
	db	40
	db	40
	db	25
	db	40
	db	112
	db	0
	db	0
	db	0
	db	0
	db	112
	db	25
	db	40
	db	112
	db	40
	db	112
	db	112
	db	112
	db	40
	db	25
	db	112
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	29
	db	112
	db	0
	db	40
	db	0
	db	112
	db	0
	db	112
	db	29
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	29
	db	112
	db	0
	db	40
	db	54
	db	112
	db	0
	db	112
	db	29
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	29
	db	0
	db	0
	db	40
	db	54
	db	112
	db	0
	db	0
	db	29
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	40
	db	112
	db	25
	db	112
	db	112
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	40
	db	112
	db	25
	db	112
	db	112
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	40
	db	112
	db	112
	db	112
	db	112
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	40
	db	112
	db	112
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	40
	db	25
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	112
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
	db	0
FOOL_DATA	ends
FOOL_TEXT	segment byte public use16 'CODE'
	?debug	C E801102E2E5C534F555243455C464F4F4C2E43AD+
	?debug	C A02D31
	?debug	L 49
	assume	cs:FOOL_TEXT
_copyright	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 54
	pop	ds
	pop	bp
	ret	
	?debug	E
	?debug	E
_copyright	endp
	?debug	L 59
	assume	cs:FOOL_TEXT
_main	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 61
	call	far ptr _game_init
	or	ax,ax
	jne	short @2@86
	jmp	short @2@114
@2@86:
	?debug	L 63
	call	far ptr _GameStart
	?debug	L 64
	call	far ptr _game_restore
	?debug	L 65
	push	cs
	call	near ptr _copyright
@2@114:
	?debug	L 66
	pop	ds
	pop	bp
	ret	
	?debug	E
	?debug	E
_main	endp
	?debug	L 68
	assume	cs:FOOL_TEXT
_game_init	proc	far
	?debug	B
	enter	20,0
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 72
	push	large 00000D480h
	call	far ptr _farmalloc
	add	sp,4
	mov	word ptr _MemBuf+2,dx
	mov	word ptr _MemBuf,ax
	?debug	L 73
	cmp	dword ptr _MemBuf,large 0
	jne	short @3@58
@3@58:
	?debug	L 76
	push	00000D480h
	push	0
	push	word ptr _MemBuf+2
	push	word ptr _MemBuf
	call	far ptr _memset
	add	sp,8
	?debug	L 77
	push	0
	push	0
	call	far ptr _time
	add	sp,4
	push	ax
	call	far ptr _srand
	pop	cx
	?debug	L 78
	mov	dword ptr [bp-4],large 0
	jmp	short @3@142
@3@86:
	mov	bx,word ptr [bp-4]
	mov	byte ptr _keys[bx],0
	inc	dword ptr [bp-4]
@3@142:
	cmp	dword ptr [bp-4],large 128
	jl	short @3@86
	?debug	L 79
	mov	dword ptr [bp-4],large 0
	jmp	short @3@282
@3@198:
	?debug	L 80
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 320
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	mov	bx,word ptr [bp-4]
	imul	bx,bx,6
	mov	word ptr _Stars[bx],ax
	?debug	L 81
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 250
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	add	ax,-20
	mov	bx,word ptr [bp-4]
	imul	bx,bx,6
	mov	word ptr _Stars[bx+2],ax
	?debug	L 82
	mov	bx,word ptr [bp-4]
	imul	bx,bx,6
	mov	word ptr _Stars[bx+4],1
	?debug	L 83
	cmp	dword ptr [bp-4],large 26
	jge	short @3@254
	mov	bx,word ptr [bp-4]
	imul	bx,bx,6
	inc	word ptr _Stars[bx+4]
@3@254:
	?debug	L 79
	inc	dword ptr [bp-4]
@3@282:
	cmp	dword ptr [bp-4],large 80
	jl	short @3@198
	?debug	L 85
	mov	dword ptr [bp-4],large 0
	jmp	short @3@394
@3@338:
	mov	bx,word ptr [bp-4]
	imul	bx,bx,12
	mov	word ptr _Objs[bx],0
	inc	dword ptr [bp-4]
@3@394:
	cmp	dword ptr [bp-4],large 30
	jl	short @3@338
	?debug	L 88
	push	9
	call	far ptr _getvect
	pop	cx
	mov	word ptr _OldInt9+2,dx
	mov	word ptr _OldInt9,ax
	?debug	L 89
	db	250
	?debug	L 90
	push	seg _NewInt9
	push	offset _NewInt9
	push	9
	call	far ptr _setvect
	add	sp,6
	?debug	L 91
	db	251
	?debug	L 94
	mov	word ptr [bp-20],19
	?debug	L 95
	push	ss
	lea	ax,word ptr [bp-20]
	push	ax
	push	ss
	lea	ax,word ptr [bp-20]
	push	ax
	push	16
	call	far ptr _int86
	add	sp,10
	?debug	L 96
	mov	ax,1
	jmp	short @3@450
@3@450:
	?debug	L 97
	pop	ds
	leave	
	ret	
	?debug	C E318045245475310001F01
	?debug	C E31908574F52445245475310001E04
	?debug	C E31A08425954455245475308001E0D
	?debug	C E604726567731802ECFF0001690602FCFF00
	?debug	E
	?debug	E
_game_init	endp
	?debug	L 99
	assume	cs:FOOL_TEXT
_game_restore	proc	far
	?debug	B
	enter	16,0
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 103
	db	250
	?debug	L 104
	push	word ptr _OldInt9+2
	push	word ptr _OldInt9
	push	9
	call	far ptr _setvect
	add	sp,6
	?debug	L 105
	db	251
	?debug	L 107
	mov	word ptr [bp-16],3
	?debug	L 108
	push	ss
	lea	ax,word ptr [bp-16]
	push	ax
	push	ss
	lea	ax,word ptr [bp-16]
	push	ax
	push	16
	call	far ptr _int86
	add	sp,10
	?debug	L 109
	push	word ptr _MemBuf+2
	push	word ptr _MemBuf
	call	far ptr _farfree
	add	sp,4
	?debug	L 110
	xor	ax,ax
	jmp	short @4@58
@4@58:
	?debug	L 111
	pop	ds
	leave	
	ret	
	?debug	C E604726567731802F0FF00
	?debug	E
	?debug	E
_game_restore	endp
	?debug	L 114
	assume	cs:FOOL_TEXT
_NewInt9	proc	far
	?debug	B
	push	ax
	push	bx
	push	cx
	push	dx
	push	es
	push	ds
	push	si
	push	di
	push	bp
	mov	bp,FOOL_DATA
	mov	ds,bp
	mov	bp,sp
	?debug	B
	?debug	L 117
	mov	dx,96
	in	al,dx
	mov	cl,al
	?debug	L 118
	cmp	cl,128
	jae	short @5@86
	mov	al,cl
	mov	ah,0
	mov	bx,ax
	mov	byte ptr _keys[bx],1
	jmp	short @5@114
@5@86:
	?debug	L 119
	mov	al,cl
	mov	ah,0
	and	ax,127
	mov	bx,ax
	mov	byte ptr _keys[bx],0
@5@114:
	?debug	L 120
	mov	dx,97
	in	al,dx
	mov	cl,al
	or	cl,128
	mov	dx,97
	mov	al,cl
	out	dx,al
	?debug	L 121
	mov	al,cl
	and	al,127
	mov	dx,97
	out	dx,al
	?debug	L 122
	mov	dx,32
	mov	al,32
	out	dx,al
	?debug	L 123
	pop	bp
	pop	di
	pop	si
	pop	ds
	pop	es
	pop	dx
	pop	cx
	pop	bx
	pop	ax
	iret	
	?debug	C E6036B657908040100
	?debug	E
	?debug	E
_NewInt9	endp
	?debug	L 126
	assume	cs:FOOL_TEXT
_pixel	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	si
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	C E60163020A0A000001790A0A08000001780A0A06+
	?debug	C 0000
	mov	si,word ptr [bp+6]
	mov	cx,word ptr [bp+8]
	?debug	B
	?debug	L 128
	cmp	si,320
	jae	short @6@86
	cmp	cx,169
	jbe	short @6@114
@6@86:
	jmp	short @6@142
@6@114:
	?debug	L 129
	mov	ax,cx
	shl	ax,8
	mov	dx,cx
	shl	dx,6
	add	ax,dx
	add	ax,si
	les	bx,dword ptr _MemBuf
	add	bx,ax
	mov	al,byte ptr [bp+10]
	mov	byte ptr es:[bx],al
@6@142:
	?debug	L 130
	pop	ds
	pop	si
	pop	bp
	ret	
	?debug	C E601780A0C060001790A0C01000163020A0A0000
	?debug	E
	?debug	E
_pixel	endp
	?debug	L 133
	assume	cs:FOOL_TEXT
_show	proc	far
	?debug	B
	enter	2,0
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 135
	mov	word ptr [bp-2],4800
	?debug	L 136
	push	00000D480h
	push	word ptr _MemBuf+2
	push	word ptr _MemBuf
	mov	ax,word ptr _VideoBuf
	add	ax,word ptr [bp-2]
	push	word ptr _VideoBuf+2
	push	ax
	call	far ptr _memcpy
	add	sp,10
	?debug	L 137
	pop	ds
	leave	
	ret	
	?debug	C E6066F66667365740402FEFF00
	?debug	E
	?debug	E
_show	endp
	?debug	L 140
	assume	cs:FOOL_TEXT
_clear	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 142
	push	00000D480h
	push	0
	push	word ptr _MemBuf+2
	push	word ptr _MemBuf
	call	far ptr _memset
	add	sp,8
	?debug	L 143
	pop	ds
	pop	bp
	ret	
	?debug	E
	?debug	E
_clear	endp
	?debug	L 148
	assume	cs:FOOL_TEXT
_putimage	proc	far
	?debug	B
	enter	4,0
	push	si
	push	di
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	C E31B000400160200
	?debug	C E6046D6F6465040A0E000001621B0A0A00000179+
	?debug	C 040A0800000178040A060000
	?debug	B
	?debug	L 151
	les	bx,dword ptr [bp+10]
	mov	al,byte ptr es:[bx]
	cbw	
	les	bx,dword ptr [bp+10]
	push	ax
	mov	al,byte ptr es:[bx+1]
	cbw	
	shl	ax,8
	pop	dx
	add	dx,ax
	mov	word ptr [bp-2],dx
	?debug	L 152
	les	bx,dword ptr [bp+10]
	mov	al,byte ptr es:[bx+2]
	cbw	
	les	bx,dword ptr [bp+10]
	push	ax
	mov	al,byte ptr es:[bx+3]
	cbw	
	shl	ax,8
	pop	dx
	add	dx,ax
	mov	word ptr [bp-4],dx
	?debug	L 153
	mov	ax,word ptr [bp-2]
	cwd	
	sub	ax,dx
	sar	ax,1
	sub	word ptr [bp+6],ax
	mov	ax,word ptr [bp-4]
	cwd	
	sub	ax,dx
	sar	ax,1
	sub	word ptr [bp+8],ax
	?debug	L 154
	xor	di,di
	mov	ax,word ptr [bp+12]
	mov	dx,word ptr [bp+10]
	add	dx,4
	mov	word ptr [bp+12],ax
	mov	word ptr [bp+10],dx
	jmp	short @9@338
@9@58:
	xor	si,si
	jmp	short @9@282
@9@86:
	?debug	L 155
	les	bx,dword ptr [bp+10]
	cmp	byte ptr es:[bx],0
	je	short @9@170
	cmp	word ptr [bp+14],0
	jne	short @9@170
	les	bx,dword ptr [bp+10]
	mov	al,byte ptr es:[bx]
	push	ax
	mov	ax,word ptr [bp+8]
	add	ax,di
	push	ax
	mov	ax,word ptr [bp+6]
	add	ax,si
	push	ax
	push	cs
	call	near ptr _pixel
	add	sp,6
@9@170:
	?debug	L 156
	les	bx,dword ptr [bp+10]
	cmp	byte ptr es:[bx],0
	je	short @9@254
	cmp	word ptr [bp+14],0
	je	short @9@254
	les	bx,dword ptr [bp+10]
	mov	al,byte ptr es:[bx]
	push	ax
	mov	ax,word ptr [bp+8]
	add	ax,word ptr [bp-4]
	sub	ax,di
	dec	ax
	push	ax
	mov	ax,word ptr [bp+6]
	add	ax,si
	push	ax
	push	cs
	call	near ptr _pixel
	add	sp,6
@9@254:
	?debug	L 154
	inc	si
	inc	word ptr [bp+10]
@9@282:
	cmp	si,word ptr [bp-2]
	jl	short @9@86
	inc	di
@9@338:
	cmp	di,word ptr [bp-4]
	jl	short @9@58
	?debug	L 158
	pop	ds
	pop	di
	pop	si
	leave	
	ret	
	?debug	C E6016A04040700016904040600037769640402FC+
	?debug	C FF00036C656E0402FEFF000178040A0600000179+
	?debug	C 040A08000001621B0A0A0000046D6F6465040A0E+
	?debug	C 0000
	?debug	E
	?debug	E
_putimage	endp
	?debug	L 160
	assume	cs:FOOL_TEXT
_drawfire	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	si
	push	di
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	C E60179040A0800000178040A060000
	mov	di,word ptr [bp+6]
	?debug	B
	?debug	L 162
	mov	si,-6
	jmp	short @10@114
@10@58:
	push	9
	mov	ax,word ptr [bp+8]
	add	ax,si
	push	ax
	mov	ax,di
	add	ax,-5
	push	ax
	push	cs
	call	near ptr _pixel
	add	sp,6
	push	9
	mov	ax,word ptr [bp+8]
	add	ax,si
	push	ax
	mov	ax,di
	add	ax,3
	push	ax
	push	cs
	call	near ptr _pixel
	add	sp,6
	inc	si
@10@114:
	cmp	si,6
	jl	short @10@58
	?debug	L 163
	pop	ds
	pop	di
	pop	si
	pop	bp
	ret	
	?debug	C E60169040406000178040C07000179040A080000
	?debug	E
	?debug	E
_drawfire	endp
FOOL_TEXT	ends
FOOL_DATA	segment word public use16 'FAR_DATA'
_Sound	label	word
	db	0
	db	0
_fly_x	label	word
	db	160
	db	0
_fly_y	label	word
	db	112
	db	0
_fly_flag	label	word
	db	1
	db	0
_fire_flag	label	word
	db	1
	db	0
FOOL_DATA	ends
FOOL_TEXT	segment byte public use16 'CODE'
	?debug	L 171
	assume	cs:FOOL_TEXT
_AllocObj	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 172
	xor	dx,dx
	jmp	short @11@86
@11@58:
	?debug	L 173
	inc	dx
@11@86:
	cmp	dx,30
	jge	short @11@142
	mov	bx,dx
	imul	bx,bx,12
	cmp	word ptr _Objs[bx],0
	jne	short @11@58
@11@142:
	?debug	L 174
	cmp	dx,30
	jl	short @11@198
	mov	dx,29
@11@198:
	?debug	L 175
	mov	ax,dx
	jmp	short @11@226
@11@226:
	?debug	L 176
	pop	ds
	pop	bp
	ret	
	?debug	C E6016904040200
	?debug	E
	?debug	E
_AllocObj	endp
	?debug	L 178
	assume	cs:FOOL_TEXT
_CheckHit	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	C E60172040A0E0000027932040A0C000002783204+
	?debug	C 0A0A0000027931040A080000027831040A060000
	mov	bx,word ptr [bp+14]
	?debug	B
	?debug	L 180
	mov	ax,word ptr [bp+6]
	sub	ax,word ptr [bp+10]
	cwd	
	xor	ax,dx
	sub	ax,dx
	cmp	ax,bx
	jg	short @12@142
	mov	ax,word ptr [bp+8]
	sub	ax,word ptr [bp+12]
	cwd	
	xor	ax,dx
	sub	ax,dx
	cmp	ax,bx
	jg	short @12@142
	mov	ax,1
@12@114:
	jmp	short @12@170
@12@142:
	?debug	L 181
	xor	ax,ax
	jmp	short @12@114
@12@170:
	?debug	L 182
	pop	ds
	pop	bp
	ret	
	?debug	C E6027831040A060000027931040A080000027832+
	?debug	C 040A0A0000027932040A0C00000172040C0300
	?debug	E
	?debug	E
_CheckHit	endp
	?debug	L 184
	assume	cs:FOOL_TEXT
_fclock	proc	far
	?debug	B
	enter	4,0
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 187
	db	250
	mov	dx,67
	mov	al,0
	out	dx,al
	mov	dx,64
	in	al,dx
	mov	ah,0
	movsx	eax,ax
	mov	dword ptr [bp-4],eax
	?debug	L 188
	mov	dx,64
	in	al,dx
	mov	ah,0
	shl	ax,8
	movsx	eax,ax
	add	dword ptr [bp-4],eax
	mov	eax,large 00000FFFFh
	xor	eax,dword ptr [bp-4]
	mov	dword ptr [bp-4],eax
	db	251
	?debug	L 189
	call	far ptr _clock
	push	dx
	push	ax
	pop	eax
	shl	eax,16
	add	eax,dword ptr [bp-4]
	shld	edx,eax,16
	jmp	short @13@58
@13@58:
	?debug	L 190
	pop	ds
	leave	
	ret	
	?debug	C E601740C02FCFF00
	?debug	E
	?debug	E
_fclock	endp
	?debug	L 192
	assume	cs:FOOL_TEXT
_GameStart	proc	far
	?debug	B
	enter	4,0
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 194
	mov	dword ptr [bp-4],large 0
	?debug	L 195
	mov	dword ptr _timepass,large 0
	jmp	short @14@254
@14@58:
	jmp	short @14@86
@14@86:
	?debug	L 198
	push	cs
	call	near ptr _fclock
	push	dx
	push	ax
	pop	eax
	sub	eax,dword ptr [bp-4]
	cmp	eax,large 00000AFC8h
	jbe	short @14@86
	push	cs
	call	near ptr _fclock
	push	dx
	push	ax
	pop	eax
	mov	dword ptr [bp-4],eax
	?debug	L 199
	push	cs
	call	near ptr _clear
	?debug	L 200
	inc	dword ptr _timepass
	?debug	L 201
	call	far ptr _control
	?debug	L 202
	call	far ptr _drivers
	?debug	L 203
	push	cs
	call	near ptr _show
	?debug	L 204
	dec	word ptr _Sound
	jg	short @14@170
	call	far ptr _nosound
@14@170:
	?debug	L 205
	test	dword ptr _timepass,large 3
	jne	short @14@254
	?debug	L 206
	mov	bx,word ptr _KEY_ESC
	cmp	byte ptr _keys[bx],0
	je	short @14@254
	mov	word ptr _GameOver,1
@14@254:
	?debug	L 196
	cmp	word ptr _GameOver,0
	je	short @14@58
	?debug	L 208
	push	105
	call	far ptr _sound
	pop	cx
	push	700
	call	far ptr _delay
	pop	cx
	call	far ptr _nosound
	?debug	L 209
	mov	al,1
	jmp	short @14@310
@14@310:
	?debug	L 210
	pop	ds
	leave	
	ret	
	?debug	C E60573746172740C02FCFF00
	?debug	E
	?debug	E
_GameStart	endp
	?debug	L 218
	assume	cs:FOOL_TEXT
_control	proc	far
	?debug	B
	enter	6,0
	push	si
	push	di
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 223
	xor	si,si
	jmp	@15@254
@15@58:
	?debug	L 224
	mov	bx,si
	imul	bx,bx,6
	mov	ax,word ptr _Stars[bx+4]
	mov	bx,si
	imul	bx,bx,6
	add	word ptr _Stars[bx+2],ax
	?debug	L 225
	mov	bx,si
	imul	bx,bx,6
	cmp	word ptr _Stars[bx+2],169
	jle	short @15@114
	?debug	L 226
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 320
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	mov	bx,si
	imul	bx,bx,6
	mov	word ptr _Stars[bx],ax
	?debug	L 227
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 60
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	neg	ax
	mov	bx,si
	imul	bx,bx,6
	mov	word ptr _Stars[bx+2],ax
@15@114:
	?debug	L 229
	mov	bx,si
	imul	bx,bx,6
	cmp	word ptr _Stars[bx+4],1
	jne	short @15@170
	push	23
	jmp	short @15@198
@15@170:
	?debug	L 230
	push	28
@15@198:
	mov	bx,si
	imul	bx,bx,6
	push	word ptr _Stars[bx+2]
	mov	bx,si
	imul	bx,bx,6
	push	word ptr _Stars[bx]
	push	cs
	call	near ptr _pixel
	add	sp,6
	?debug	L 223
	inc	si
@15@254:
	cmp	si,80
	jge short	@@11
	jmp	@15@58
@@11:
	?debug	L 234
	xor	si,si
	jmp	@15@1626
@15@310:
	?debug	L 235
	mov	bx,si
	imul	bx,bx,12
	mov	ax,word ptr _Objs[bx+8]
	mov	word ptr [bp-4],ax
	mov	bx,si
	imul	bx,bx,12
	mov	di,word ptr _Objs[bx+10]
	mov	word ptr [bp-6],1
	?debug	L 236
	mov	bx,si
	imul	bx,bx,12
	mov	ax,word ptr _Objs[bx]
	cmp	ax,1
	je	short @15@450
	cmp	ax,2
	jne short	@@12
	jmp	@15@1262
@@12:
	jmp	@15@1570
@15@450:
	?debug	L 239
	mov	bx,si
	imul	bx,bx,12
	cmp	word ptr _Objs[bx+4],0
	je short	@@13
	jmp	@15@1066
@@13:
	?debug	L 240
	mov	bx,si
	imul	bx,bx,12
	mov	ax,word ptr _Objs[bx+2]
	or	ax,ax
	je	short @15@618
	cmp	ax,1
	je	short @15@702
	cmp	ax,2
	je	short @15@898
	jmp	short @15@898
@15@618:
	?debug	L 241
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 30
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	or	ax,ax
	jne	short @15@674
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx+2],1
@15@674:
	jmp	short @15@982
@15@702:
	?debug	L 242
	mov	ax,word ptr [bp-4]
	cmp	ax,word ptr _fly_x
	jge	short @15@758
	inc	word ptr [bp-4]
@15@758:
	mov	ax,word ptr [bp-4]
	cmp	ax,word ptr _fly_x
	jle	short @15@814
	dec	word ptr [bp-4]
@15@814:
	?debug	L 243
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 40
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	or	ax,ax
	jne	short @15@870
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx+2],2
@15@870:
	jmp	short @15@982
@15@898:
	?debug	L 245
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 3
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	or	ax,ax
	jne	short @15@954
	add	di,3
@15@954:
	?debug	L 246
	jmp	short @15@982
@15@982:
	?debug	L 248
	push	15
	push	word ptr _fly_y
	push	word ptr _fly_x
	push	di
	push	word ptr [bp-4]
	push	cs
	call	near ptr _CheckHit
	add	sp,10
	or	ax,ax
	je	short @15@1038
	mov	word ptr _fly_flag,0
@15@1038:
	?debug	L 249
	push	0
	push	ds
	push	offset _fly_pic
	push	di
	push	word ptr [bp-4]
	push	cs
	call	near ptr _putimage
	add	sp,10
	?debug	L 250
	jmp	short @15@1178
@15@1066:
	?debug	L 251
	mov	bx,si
	imul	bx,bx,12
	test	word ptr _Objs[bx+4],3
	jne	short @15@1122
	push	0
	push	ds
	push	offset _fly_pic
	push	di
	push	word ptr [bp-4]
	push	cs
	call	near ptr _putimage
	add	sp,10
@15@1122:
	?debug	L 252
	mov	bx,si
	imul	bx,bx,12
	inc	word ptr _Objs[bx+4]
	mov	ax,word ptr _Objs[bx+4]
	cmp	ax,50
	jle	short @15@1178
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx],0
@15@1178:
	?debug	L 254
	inc	di
	cmp	di,169
	jle	short @15@1234
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx],0
@15@1234:
	?debug	L 255
	jmp	@15@1570
@15@1262:
	?debug	L 257
	sub	di,4
	cmp	di,-20
	jge	short @15@1318
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx],0
@15@1318:
	push	di
	push	word ptr [bp-4]
	push	cs
	call	near ptr _drawfire
	add	sp,4
	?debug	L 258
	mov	word ptr [bp-2],0
	jmp	short @15@1514
@15@1346:
	?debug	L 259
	?debug	L 260
	mov	bx,word ptr [bp-2]
	imul	bx,bx,12
	cmp	word ptr _Objs[bx],1
	jne	short @15@1486
	push	15
	mov	bx,word ptr [bp-2]
	imul	bx,bx,12
	push	word ptr _Objs[bx+10]
	mov	bx,word ptr [bp-2]
	imul	bx,bx,12
	push	word ptr _Objs[bx+8]
	push	di
	push	word ptr [bp-4]
	push	cs
	call	near ptr _CheckHit
	add	sp,10
	or	ax,ax
	je	short @15@1486
	mov	bx,word ptr [bp-2]
	imul	bx,bx,12
	cmp	word ptr _Objs[bx+4],0
	jne	short @15@1486
	cmp	word ptr [bp-6],0
	je	short @15@1486
	?debug	L 262
	mov	bx,word ptr [bp-2]
	imul	bx,bx,12
	mov	word ptr _Objs[bx+4],1
	mov	word ptr [bp-6],0
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx],0
	?debug	L 263
	push	220
	call	far ptr _sound
	pop	cx
	mov	word ptr _Sound,10
	add	dword ptr _GameScore,large 10
@15@1486:
	?debug	L 258
	inc	word ptr [bp-2]
@15@1514:
	cmp	word ptr [bp-2],30
	jge short	@@14
	jmp	@15@1346
@@14:
	?debug	L 265
	jmp	short @15@1570
@15@1570:
	?debug	L 267
	mov	bx,si
	imul	bx,bx,12
	mov	ax,word ptr [bp-4]
	mov	word ptr _Objs[bx+8],ax
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx+10],di
	?debug	L 234
	inc	si
@15@1626:
	cmp	si,30
	jge short	@@15
	jmp	@15@310
@@15:
	?debug	L 271
	mov	bx,word ptr _KEY_UP
	cmp	byte ptr _keys[bx],0
	je	short @15@1738
	dec	word ptr _fly_y
	jge	short @15@1738
	mov	word ptr _fly_y,0
@15@1738:
	?debug	L 272
	mov	bx,word ptr _KEY_DOWN
	cmp	byte ptr _keys[bx],0
	je	short @15@1822
	inc	word ptr _fly_y
	mov	ax,word ptr _fly_y
	cmp	ax,169
	jle	short @15@1822
	mov	word ptr _fly_y,169
@15@1822:
	?debug	L 273
	mov	bx,word ptr _KEY_LEFT
	cmp	byte ptr _keys[bx],0
	je	short @15@1906
	dec	word ptr _fly_x
	jge	short @15@1906
	mov	word ptr _fly_x,0
@15@1906:
	?debug	L 274
	mov	bx,word ptr _KEY_RIGHT
	cmp	byte ptr _keys[bx],0
	je	short @15@1990
	inc	word ptr _fly_x
	mov	ax,word ptr _fly_x
	cmp	ax,319
	jle	short @15@1990
	mov	word ptr _fly_x,319
@15@1990:
	?debug	L 275
	mov	bx,word ptr _KEY_CTRL
	cmp	byte ptr _keys[bx],0
	je	short @15@2074
	cmp	word ptr _fire_flag,0
	je	short @15@2074
	?debug	L 276
	push	cs
	call	near ptr _AllocObj
	mov	si,ax
	?debug	L 277
	mov	bx,si
	imul	bx,bx,12
	mov	ax,word ptr _fly_x
	mov	word ptr _Objs[bx+8],ax
	mov	bx,si
	imul	bx,bx,12
	mov	ax,word ptr _fly_y
	add	ax,-10
	mov	word ptr _Objs[bx+10],ax
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx],2
	mov	word ptr _fire_flag,0
@15@2074:
	?debug	L 279
	mov	bx,word ptr _KEY_CTRL
	mov	al,byte ptr _keys[bx]
	cbw	
	or	ax,ax
	jne	short @15@2130
	mov	word ptr _fire_flag,1
@15@2130:
	?debug	L 280
	push	1
	push	ds
	push	offset _fly_pic
	push	word ptr _fly_y
	push	word ptr _fly_x
	push	cs
	call	near ptr _putimage
	add	sp,10
	?debug	L 281
	cmp	word ptr _fly_flag,0
	jne	short @15@2186
	mov	word ptr _GameOver,1
@15@2186:
	?debug	L 282
	pop	ds
	pop	di
	pop	si
	leave	
	ret	
	?debug	C E6026F6B0402FAFF0001790404070001780402FC+
	?debug	C FF00016A0402FEFF00016904040600
	?debug	E
	?debug	E
_control	endp
	?debug	L 285
	assume	cs:FOOL_TEXT
_drivers	proc	far
	?debug	B
	push	bp
	mov	bp,sp
	push	si
	push	ds
	mov	ax,FOOL_DATA
	mov	ds,ax
	?debug	B
	?debug	L 287
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 30
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	or	ax,ax
	je short	@@16
	jmp	@16@114
@@16:
	?debug	B
	?debug	L 288
	push	cs
	call	near ptr _AllocObj
	mov	si,ax
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 320
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx+8],ax
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 20
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	neg	ax
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx+10],ax
	?debug	L 289
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx],1
	mov	bx,si
	imul	bx,bx,12
	xor	ax,ax
	mov	word ptr _Objs[bx+4],ax
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx+2],ax
	?debug	L 290
	call	far ptr _rand
	movsx	eax,ax
	imul	eax,large 20
	mov	ebx,large 000008000h
	cdq	
	idiv	ebx
	or	ax,ax
	jne	short @16@114
	mov	bx,si
	imul	bx,bx,12
	mov	word ptr _Objs[bx+2],2
@16@114:
	?debug	C E6016904040600
	?debug	E
	?debug	L 292
	pop	ds
	pop	si
	pop	bp
	ret	
	?debug	E
	?debug	E
_drivers	endp
FOOL_TEXT	ends
FOOL_DATA	segment word public use16 'FAR_DATA'
_GameOver	label	word
	db	2 dup (0)
_timepass	label	word
	db	4 dup (0)
_Objs	label	word
	db	360 dup (0)
_Stars	label	word
	db	480 dup (0)
_OldInt9	label	dword
	db	4 dup (0)
_keys	label	byte
	db	128 dup (0)
_MemBuf	label	dword
	db	4 dup (0)
	?debug	C E9
	?debug	C FA00000000
s@	label	byte
FOOL_DATA	ends
FOOL_TEXT	segment byte public use16 'CODE'
FOOL_TEXT	ends
	public	_fclock
	public	_CheckHit
	public	_AllocObj
	public	_control
	public	_drivers
	public	_fire_flag
	public	_fly_flag
	public	_fly_y
	public	_fly_x
	public	_Sound
	public	_GameOver
	public	_timepass
	public	_drawfire
	public	_putimage
	public	_clear
	public	_show
	public	_pixel
	public	_main
	public	_game_restore
	public	_game_init
	public	_copyright
	public	_fly_pic
	public	_GameScore
	public	_Objs
	public	_Stars
	public	_GameStart
	public	_NewInt9
	public	_OldInt9
	public	_KEY_CTRL
	public	_KEY_ESC
	public	_KEY_RIGHT
	public	_KEY_LEFT
	public	_KEY_DOWN
	public	_KEY_UP
	public	_keys
	public	_MemBuf
	public	_VideoBuf
	extrn	_farmalloc:far
	extrn	_farfree:far
	extrn	_clock:far
	extrn	_time:far
	extrn	_memset:far
	extrn	_memcpy:far
	extrn	_srand:far
	extrn	_rand:far
	extrn	_setvect:far
	extrn	_getvect:far
	extrn	_sound:far
	extrn	_nosound:far
	extrn	_int86:far
	extrn	_delay:far
_s@	equ	s@
	?debug	C EA010D
	?debug	C E31C000000230C0400
	?debug	C EC075F66636C6F636B1C1800
	?debug	C E31D00000023040400
	?debug	C EC095F436865636B4869741D1800
	?debug	C E31E00000023040400
	?debug	C EC095F416C6C6F634F626A1E1800
	?debug	C E31F00000023010400
	?debug	C EC085F636F6E74726F6C1F1800
	?debug	C E32000000023010400
	?debug	C EC085F64726976657273201800
	?debug	C EC0A5F666972655F666C6167040000
	?debug	C EC095F666C795F666C6167040000
	?debug	C EC065F666C795F79040000
	?debug	C EC065F666C795F78040000
	?debug	C EC065F536F756E64040000
	?debug	C EC095F47616D654F766572040000
	?debug	C EC095F74696D65706173730C0000
	?debug	C E32100000023010400
	?debug	C EC095F6472617766697265211800
	?debug	C E32200000023010400
	?debug	C EC095F707574696D616765221800
	?debug	C E32300000023010400
	?debug	C EC065F636C656172231800
	?debug	C E32400000023010400
	?debug	C EC055F73686F77241800
	?debug	C E32500000023010400
	?debug	C EC065F706978656C251800
	?debug	C E32600000023010400
	?debug	C EC055F6D61696E261800
	?debug	C E32700000023040400
	?debug	C EC0D5F67616D655F726573746F7265271800
	?debug	C E32800000023040400
	?debug	C EC0A5F67616D655F696E6974281800
	?debug	C E32900000023010400
	?debug	C EC0A5F636F70797269676874291800
	?debug	C E32A0004011A08
	?debug	C EC085F666C795F7069632A0000
	?debug	C EC0A5F47616D6553636F7265060000
	?debug	C E32C04544F626A0C001E16
	?debug	C E32B0068011A2C
	?debug	C EC055F4F626A732B0000
	?debug	C E32E0654537461727306001E1D
	?debug	C E32D00E0011A2E
	?debug	C EC065F53746172732D0000
	?debug	C E32F00000023020400
	?debug	C EC0A5F47616D6553746172742F1800
	?debug	C E33000000023010700
	?debug	C EC085F4E6577496E7439309800
	?debug	C E33200000023010700
	?debug	C E331000400163200
	?debug	C EC085F4F6C64496E7439310000
	?debug	C EC095F4B45595F4354524C040000
	?debug	C EC085F4B45595F455343040000
	?debug	C EC0A5F4B45595F5249474854040000
	?debug	C EC095F4B45595F4C454654040000
	?debug	C EC095F4B45595F444F574E040000
	?debug	C EC075F4B45595F5550040000
	?debug	C E3330080001A02
	?debug	C EC055F6B657973330000
	?debug	C EC075F4D656D4275661B0000
	?debug	C EC095F566964656F4275661B0000
	?debug	C E335000400160100
	?debug	C E33400000023350400
	?debug	C EB0A5F6661726D616C6C6F633400
	?debug	C E33600000023010400
	?debug	C EB085F666172667265653600
	?debug	C E33700000023060400
	?debug	C EB065F636C6F636B3700
	?debug	C E33800000023060400
	?debug	C EB055F74696D653800
	?debug	C E33900000023350400
	?debug	C EB075F6D656D7365743900
	?debug	C E33A00000023350400
	?debug	C EB075F6D656D6370793A00
	?debug	C E33B00000023010400
	?debug	C EB065F7372616E643B00
	?debug	C E33C00000023040400
	?debug	C EB055F72616E643C00
	?debug	C E33D00000023010400
	?debug	C EB085F736574766563743D00
	?debug	C E34000000023010700
	?debug	C E33F000400164000
	?debug	C E33E000000233F0400
	?debug	C EB085F676574766563743E00
	?debug	C E34100000023010400
	?debug	C EB065F736F756E644100
	?debug	C E34200000023010400
	?debug	C EB085F6E6F736F756E644200
	?debug	C E34300000023040400
	?debug	C EB065F696E7438364300
	?debug	C E34400000023010400
	?debug	C EB065F64656C61794400
	?debug	C E605756C6F6E670C060007636C6F636B5F740606+
	?debug	C 000674696D655F7406060009707472646966665F+
	?debug	C 740606000777636861725F740206000666706F73+
	?debug	C 5F740606000673697A655F740A060004544F626A+
	?debug	C 2C0700065453746172732E070004524547531807+
	?debug	C 000842595445524547531A070008574F52445245+
	?debug	C 4753190700
	?debug	C E2000178190001681AC010000000
	?debug	C E2000261780A000262780A000263780A00026478+
	?debug	C 0A000273690A000264690A000563666C61670A00+
	?debug	C 05666C6167730AC010000000
	?debug	C E20002616C0800026168080002626C0800026268+
	?debug	C 080002636C0800026368080002646C0800026468+
	?debug	C 08C008000000
	?debug	C E200046D6F646504000474797065040005696E64+
	?debug	C 65780400046E657874040001780400017904C00C+
	?debug	C 000000
	?debug	C E2000178040001790400017604C006000000
	end
