	.386p
	ifndef	??version
?debug	macro
	endm
publicdll macro	name
	public	name
	endm
	endif
	?debug	V 300h
	?debug	S "DEMOKEY.CPP"
	?debug	C E9877135320B44454D4F4B45592E435050
	?debug	C E9235C334719433A5C424333315C494E434C554445325C53594D42+
	?debug	C 4F4C2E48
	?debug	C E972A3413919433A5C424333315C494E434C554445325C4249544D+
	?debug	C 41502E48
	?debug	C E91A56CA3417433A5C424333315C494E434C554445325C49434F4E+
	?debug	C 2E48
	?debug	C E9D271443916433A5C424333315C494E434C554445325C4749462E+
	?debug	C 48
	?debug	C E996A48B4219433A5C424333315C494E434C554445325C4D454D4F+
	?debug	C 52592E48
	?debug	C E94019CA1818433A5C424333315C494E434C5544455C5354444C49+
	?debug	C 422E48
	?debug	C E94019CA1817433A5C424333315C494E434C5544455C5F44454653+
	?debug	C 2E48
	?debug	C E94019CA1815433A5C424333315C494E434C5544455C444F532E48
	?debug	C E94019CA1817433A5C424333315C494E434C5544455C535444494F+
	?debug	C 2E48
	?debug	C E94019CA1818433A5C424333315C494E434C5544455C5F4E46494C+
	?debug	C 452E48
	?debug	C E94019CA1817433A5C424333315C494E434C5544455C434F4E494F+
	?debug	C 2E48
	?debug	C E94019CA181B433A5C424333315C494E434C5544455C5359535C5C+
	?debug	C 535441542E48
	?debug	C E98881753917433A5C424333315C494E434C554445325C4A504547+
	?debug	C 2E48
	?debug	C E9E94C7C4F1A433A5C424333315C494E434C554445325C50524956+
	?debug	C 4154452E48
	?debug	C E9E258824F1A433A5C424333315C494E434C554445325C4D594652+
	?debug	C 414D452E48
	?debug	C E94019CA1818433A5C424333315C494E434C5544455C5354444C49+
	?debug	C 422E48
	?debug	C E94019CA1817433A5C424333315C494E434C5544455C535444494F+
	?debug	C 2E48
	?debug	C E94019CA1816433A5C424333315C494E434C5544455C42494F532E+
	?debug	C 48
	?debug	C E94019CA1814433A5C424333315C494E434C5544455C494F2E48
	?debug	C E94019CA1817433A5C424333315C494E434C5544455C434F4E494F+
	?debug	C 2E48
	?debug	C E94019CA181A433A5C424333315C494E434C5544455C4752415048+
	?debug	C 4943532E48
	?debug	C E94019CA1817433A5C424333315C494E434C5544455C414C4C4F43+
	?debug	C 2E48
	?debug	C E94019CA1815433A5C424333315C494E434C5544455C4449522E48
	?debug	C E94019CA1818433A5C424333315C494E434C5544455C535452494E+
	?debug	C 472E48
	?debug	C E94019CA1815433A5C424333315C494E434C5544455C444F532E48
	?debug	C E94019CA1816433A5C424333315C494E434C5544455C54494D452E+
	?debug	C 48
	?debug	C E94019CA1816433A5C424333315C494E434C5544455C4D4154482E+
	?debug	C 48
	?debug	C E94019CA1818433A5C424333315C494E434C5544455C4D414C4C4F+
	?debug	C 432E48
	?debug	C E94019CA1817433A5C424333315C494E434C5544455C414C4C4F43+
	?debug	C 2E48
	?debug	C E9235C334719433A5C424333315C494E434C554445325C53594D42+
	?debug	C 4F4C2E48
	?debug	C E97762234018433A5C424333315C494E434C554445325C4D4F5553+
	?debug	C 452E48
	?debug	C E996A48B4219433A5C424333315C494E434C554445325C4D454D4F+
	?debug	C 52592E48
	?debug	C E93851453A17433A5C424333315C494E434C554445325C464F4E54+
	?debug	C 2E48
	?debug	C E9654661411B433A5C424333315C494E434C554445325C48474C47+
	?debug	C 505249542E48
	?debug	C E996A48B4219433A5C424333315C494E434C554445325C4D454D4F+
	?debug	C 52592E48
	?debug	C E9BC5039391B433A5C424333315C494E434C554445325C52454749+
	?debug	C 535445522E48
	?debug	C E9235C334719433A5C424333315C494E434C554445325C53594D42+
	?debug	C 4F4C2E48
	?debug	C E9D353E23A1A433A5C424333315C494E434C554445325C4C495354+
	?debug	C 494E472E48
	?debug	C E9D353E23A1A433A5C424333315C494E434C554445325C4C495354+
	?debug	C 494E472E48
	?debug	C E9D4A5D9401B433A5C424333315C494E434C554445325C53564741+
	?debug	C 5F4445562E48
	?debug	C E98950FD3E17433A5C424333315C494E434C554445325C56424533+
	?debug	C 2E48
	?debug	C E9235C334719433A5C424333315C494E434C554445325C53594D42+
	?debug	C 4F4C2E48
	?debug	C E9DA89FB4619433A5C424333315C494E434C554445325C4B45524E+
	?debug	C 454C2E48
	?debug	C E94019CA1816433A5C424333315C494E434C5544455C54494D452E+
	?debug	C 48
	?debug	C E9C76B384F18433A5C424333315C494E434C554445325C47524150+
	?debug	C 482E48
	?debug	C E9F8B829451A433A5C424333315C494E434C554445325C534F434B+
	?debug	C 4554332E48
	?debug	C E9235C334719433A5C424333315C494E434C554445325C53594D42+
	?debug	C 4F4C2E48
	?debug	C E996A48B4219433A5C424333315C494E434C554445325C4D454D4F+
	?debug	C 52592E48
	?debug	C E9A454E23A1A433A5C424333315C494E434C554445325C534F434B+
	?debug	C 4554352E48
	?debug	C E92DAB29451A433A5C424333315C494E434C554445325C534F434B+
	?debug	C 4554342E48
	?debug	C E9F8B829451A433A5C424333315C494E434C554445325C534F434B+
	?debug	C 4554332E48
	?debug	C E92258714F1A433A5C424333315C494E434C554445325C4E45574D+
	?debug	C 4154482E48
	?debug	C E9A8548B4319433A5C424333315C494E434C554445325C53504C49+
	?debug	C 4E452E48
	?debug	C E91D51E23A19433A5C424333315C494E434C554445325C57495A41+
	?debug	C 52442E48
DEMOKEY_TEXT	segment byte public use16 'CODE'
DEMOKEY_TEXT	ends
DGROUP	group	_DATA,_BSS
	assume	cs:DEMOKEY_TEXT,ds:DGROUP
_DATA	segment word public use16 'DATA'
d@	label	byte
d@w	label	word
_DATA	ends
_BSS	segment word public use16 'BSS'
b@	label	byte
b@w	label	word
_BSS	ends
DEMOKEY_TEXT	segment byte public use16 'CODE'
	assume	cs:DEMOKEY_TEXT
@VirtualKeyboardDemo$qn7CObject	proc	far
	enter	44,0
	push	large 0
	call	far ptr @CDialog@$bctr$qv
	add	sp,4
	mov	word ptr [bp-2],dx
	mov	word ptr [bp-4],ax
	push	ds
	push	offset DGROUP:s@+1
	push	large 001680280h
	push	large 0
	push	dx
	push	ax
	call	far ptr @CWindow@CreateWindow$qiiiinxzc
	add	sp,16
	push	dword ptr [bp-4]
	call	far ptr @CWindow@Center$qv
	add	sp,4
	push	large 0
	push	dword ptr [bp-4]
	call	far ptr @@CWindow@SetTimeFc$qnqn7CObject$v
	add	sp,8
	push	large 0
	push	dword ptr [bp-4]
	call	far ptr @@CWindow@SetDrawFc$qnqn7CObject$v
	add	sp,8
	push	large 0
	push	dword ptr [bp-4]
	call	far ptr @@CWindow@SetHelpFc$qnqn7CObject$v
	add	sp,8
	push	large 0
	push	dword ptr [bp-4]
	call	far ptr @@CWindow@SetKeyboardFc$qnqn7CObject$i
	add	sp,8
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CCloseButton@$bctr$qn7CObject
	add	sp,8
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CEdit@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-6],dx
	mov	word ptr [bp-8],ax
	push	large 0
	push	large 0001500FAh
	push	large 00021003Ch
	push	dx
	push	ax
	call	far ptr @CObject@CreateObject$qiiiinxzc
	add	sp,16
	push	2001
	push	dword ptr [bp-8]
	call	far ptr @@CObject@SetID$qui
	add	sp,6
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CEdit@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-10],dx
	mov	word ptr [bp-12],ax
	push	large 0
	push	large 0001500FAh
	push	large 00021017Ch
	push	dx
	push	ax
	call	far ptr @CObject@CreateObject$qiiiinxzc
	add	sp,16
	push	2002
	push	dword ptr [bp-12]
	call	far ptr @@CObject@SetID$qui
	add	sp,6
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CLabel@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-14],dx
	mov	word ptr [bp-16],ax
	push	ds
	push	offset DGROUP:s@+20
	push	large 0000C001Fh
	push	large 000210005h
	push	dx
	push	ax
	call	far ptr @CObject@CreateObject$qiiiinxzc
	add	sp,16
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CLabel@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-18],dx
	mov	word ptr [bp-20],ax
	push	ds
	push	offset DGROUP:s@+26
	push	large 0000C001Fh
	push	large 000210145h
	push	dx
	push	ax
	call	far ptr @CObject@CreateObject$qiiiinxzc
	add	sp,16
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CComboBox@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-22],dx
	mov	word ptr [bp-24],ax
	push	large 0
	push	large 000180096h
	push	large 0003C0005h
	push	dx
	push	ax
	call	far ptr @CComboBox@CreateCombo$qiiiinxzc
	add	sp,16
	push	large 3
	push	dword ptr [bp-24]
	call	far ptr @CComboBox@SetCount$qul
	add	sp,8
	push	ds
	push	offset DGROUP:s@+32
	push	large 0
	push	dword ptr [bp-24]
	call	far ptr @CComboBox@SetSel$qulnzc
	add	sp,12
	push	ds
	push	offset DGROUP:s@+37
	push	large 1
	push	dword ptr [bp-24]
	call	far ptr @CComboBox@SetSel$qulnzc
	add	sp,12
	push	ds
	push	offset DGROUP:s@+42
	push	large 2
	push	dword ptr [bp-24]
	call	far ptr @CComboBox@SetSel$qulnzc
	add	sp,12
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CKeyboardCtrl@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-26],dx
	mov	word ptr [bp-28],ax
	push	large 0
	push	large 000640064h
	push	large 000780003h
	push	dx
	push	ax
	call	far ptr @CKeyboardCtrl@CreateObject$qiiiinxzc
	add	sp,16
	push	large 000010000h
	push	dword ptr [bp-28]
	call	far ptr @CKeyboardCtrl@SetAttrib$qii
	add	sp,8
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CKeyboardCtrl@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-30],dx
	mov	word ptr [bp-32],ax
	push	large 0
	push	large 000640064h
	push	large 000A00003h
	push	dx
	push	ax
	call	far ptr @CKeyboardCtrl@CreateObject$qiiiinxzc
	add	sp,16
	push	large 000020000h
	push	dword ptr [bp-32]
	call	far ptr @CKeyboardCtrl@SetAttrib$qii
	add	sp,8
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CKeyboardCtrl@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-34],dx
	mov	word ptr [bp-36],ax
	push	large 0
	push	large 000640064h
	push	large 000DC0003h
	push	dx
	push	ax
	call	far ptr @CKeyboardCtrl@CreateObject$qiiiinxzc
	add	sp,16
	push	large 000040000h
	push	dword ptr [bp-36]
	call	far ptr @CKeyboardCtrl@SetAttrib$qii
	add	sp,8
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CKeyboardCtrl@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-38],dx
	mov	word ptr [bp-40],ax
	push	large 0
	push	large 000640064h
	push	large 000F00143h
	push	dx
	push	ax
	call	far ptr @CKeyboardCtrl@CreateObject$qiiiinxzc
	add	sp,16
	push	large 000030000h
	push	dword ptr [bp-40]
	call	far ptr @CKeyboardCtrl@SetAttrib$qii
	add	sp,8
	push	dword ptr [bp-4]
	push	large 0
	call	far ptr @CKeyboardCtrl@$bctr$qn7CObject
	add	sp,8
	mov	word ptr [bp-42],dx
	mov	word ptr [bp-44],ax
	push	large 0
	push	large 000640064h
	push	large 000780143h
	push	dx
	push	ax
	call	far ptr @CKeyboardCtrl@CreateObject$qiiiinxzc
	add	sp,16
	push	large 000050000h
	push	dword ptr [bp-44]
	call	far ptr @CKeyboardCtrl@SetAttrib$qii
	add	sp,8
	push	large 1
	push	dword ptr [bp-4]
	call	far ptr @CWindow@ShowWindow$qul
	add	sp,8
	push	dword ptr [bp-4]
	call	far ptr @CDialog@DoModal$qv
	add	sp,4
	cmp	dword ptr [bp-4],large 0
	je	short @1@86
	push	3
	push	dword ptr [bp-4]
	les	bx,dword ptr [bp-4]
	mov	bx,word ptr es:[bx]
	call	dword ptr [bx+44]
	add	sp,6
	jmp	short @1@86
@1@86:
	leave	
	ret	
@VirtualKeyboardDemo$qn7CObject	endp
DEMOKEY_TEXT	ends
DEMOKEY_TEXT	segment byte public use16 'CODE'
@CWindow@SetTimeFc$qnqn7CObject$v	segment	virtual
	assume	cs:@CWindow@SetTimeFc$qnqn7CObject$v
@@CWindow@SetTimeFc$qnqn7CObject$v	proc	far
	push	bp
	mov	bp,sp
	les	bx,dword ptr [bp+6]
	mov	eax,dword ptr [bp+10]
	mov	dword ptr es:[bx+288],eax
	pop	bp
	ret	
@@CWindow@SetTimeFc$qnqn7CObject$v	endp
@CWindow@SetTimeFc$qnqn7CObject$v	ends
DEMOKEY_TEXT	ends
DEMOKEY_TEXT	segment byte public use16 'CODE'
@CWindow@SetDrawFc$qnqn7CObject$v	segment	virtual
	assume	cs:@CWindow@SetDrawFc$qnqn7CObject$v
@@CWindow@SetDrawFc$qnqn7CObject$v	proc	far
	push	bp
	mov	bp,sp
	les	bx,dword ptr [bp+6]
	mov	eax,dword ptr [bp+10]
	mov	dword ptr es:[bx+276],eax
	pop	bp
	ret	
@@CWindow@SetDrawFc$qnqn7CObject$v	endp
@CWindow@SetDrawFc$qnqn7CObject$v	ends
DEMOKEY_TEXT	ends
DEMOKEY_TEXT	segment byte public use16 'CODE'
@CWindow@SetHelpFc$qnqn7CObject$v	segment	virtual
	assume	cs:@CWindow@SetHelpFc$qnqn7CObject$v
@@CWindow@SetHelpFc$qnqn7CObject$v	proc	far
	push	bp
	mov	bp,sp
	les	bx,dword ptr [bp+6]
	mov	eax,dword ptr [bp+10]
	mov	dword ptr es:[bx+268],eax
	pop	bp
	ret	
@@CWindow@SetHelpFc$qnqn7CObject$v	endp
@CWindow@SetHelpFc$qnqn7CObject$v	ends
DEMOKEY_TEXT	ends
DEMOKEY_TEXT	segment byte public use16 'CODE'
@CWindow@SetKeyboardFc$qnqn7CObject$i	segment	virtual
	assume	cs:@CWindow@SetKeyboardFc$qnqn7CObject$i
@@CWindow@SetKeyboardFc$qnqn7CObject$i	proc	far
	push	bp
	mov	bp,sp
	les	bx,dword ptr [bp+6]
	mov	eax,dword ptr [bp+10]
	mov	dword ptr es:[bx+272],eax
	pop	bp
	ret	
@@CWindow@SetKeyboardFc$qnqn7CObject$i	endp
@CWindow@SetKeyboardFc$qnqn7CObject$i	ends
DEMOKEY_TEXT	ends
DEMOKEY_TEXT	segment byte public use16 'CODE'
@CObject@SetID$qui	segment	virtual
	assume	cs:@CObject@SetID$qui
@@CObject@SetID$qui	proc	far
	push	bp
	mov	bp,sp
	les	bx,dword ptr [bp+6]
	mov	ax,word ptr [bp+10]
	mov	word ptr es:[bx+38],ax
	pop	bp
	ret	
@@CObject@SetID$qui	endp
	?debug	C E9
	?debug	C FA00000000
@CObject@SetID$qui	ends
DEMOKEY_TEXT	ends
_DATA	segment word public use16 'DATA'
s@	label	byte
	db	0
	db	180
	db	165
	db	195
	db	254
	db	198
	db	193
	db	208
	db	233
	db	196
	db	226
	db	188
	db	252
	db	197
	db	204
	db	209
	db	221
	db	202
	db	190
	db	0
	db	'Key1:'
	db	0
	db	'Key2:'
	db	0
	db	208
	db	161
	db	195
	db	196
	db	0
	db	208
	db	161
	db	187
	db	168
	db	0
	db	208
	db	161
	db	190
	db	184
	db	0
_DATA	ends
DEMOKEY_TEXT	segment byte public use16 'CODE'
DEMOKEY_TEXT	ends
	public	@VirtualKeyboardDemo$qn7CObject
	extrn	@CKeyboardCtrl@$bctr$qn7CObject:far
	extrn	@CKeyboardCtrl@CreateObject$qiiiinxzc:far
	extrn	@CKeyboardCtrl@SetAttrib$qii:far
	extrn	@CComboBox@$bctr$qn7CObject:far
	extrn	@CComboBox@CreateCombo$qiiiinxzc:far
	extrn	@CComboBox@SetSel$qulnzc:far
	extrn	@CComboBox@SetCount$qul:far
	extrn	@CEdit@$bctr$qn7CObject:far
	extrn	@CCloseButton@$bctr$qn7CObject:far
	extrn	@CDialog@$bctr$qv:far
	extrn	@CDialog@DoModal$qv:far
	extrn	@CWindow@ShowWindow$qul:far
	extrn	@CWindow@Center$qv:far
	extrn	@CWindow@CreateWindow$qiiiinxzc:far
	extrn	@CLabel@$bctr$qn7CObject:far
	extrn	@CObject@CreateObject$qiiiinxzc:far
_pokeb	equ	pokeb
_poke	equ	poke
_peekb	equ	peekb
_peek	equ	peek
_atoi	equ	atoi
_abs	equ	abs
_s@	equ	s@
	end
