This is what started happening yesterday morning. I had a program working, but when I expanded it to handle more sprites, I started getting compiler complaints such as "Local Subroutines Not Supported" and "unexpected end of file. Expecting RETURN and EXPECTING ENDSUB" The return and endsub were there. 
I got rid of the subs except for the dialog handler and had everything else in the main program. That had seemed to help my mouse routine, but when I did that I got the "Microsoft has detected a problem with..." error. Could someone explain what the meanings of the information details in that error are? 
I attempted increasing the stack areas in the compile, to no avail. Is there a maximum amount that I can increase the stacks by?
One problem might be a shortage of RAM. I'm running XP pro on only 256Mb of RAM at 2.0 Ghz. What would my overhead look like with this system?
I just bought the computer in December from our local Library at a sale, so they strip them down a bit. It might be a bit before I can upgrade, but I do have an older machine running M.E. at 400Mhz with 512Mb RAM. I haven't loaded EBasic there yet, but intend to.rem symbol handles
def S_0,S_1,S_2,S_3,S_4,S_5,S_6,S_7,S_8,S_9,S_absequl,S_alpha,S_ardwn : pointer
def S_arlft,S_arrt,S_arup, S_arupdwn,S_asterik,S_asymequ,S_b,S_beta : pointer
def S_c,S_chi,S_colon,S_comma,S_complimt,S_curlop,S_d,S_degrees,S_Delta : pointer
def S_disjset,S_disun,S_divop,S_e,S_elmtof,S_epsil,S_equl,S_eta,S_f,S_fslash : pointer
def S_g,S_gamma,S_gequl,S_gthn,S_h,S_i,S_imprset,S_inf,S_intg,S_intsect,S_iota : pointer
def S_j,S_ji,S_k,S_kappa,S_l,S_la,S_lalpha,S_lambda,S_lb,S_lbeta,S_lbox,S_lbrac,S_lc : pointer
def S_lchi,S_ld,S_ldelta,S_le,S_lepsil,S_lequl,S_leta,S_lf,S_lg,S_lgamma,S_lh,S_li,S_liota : pointer
def S_lj,S_lji,S_lk,S_lkappa,S_ll,S_llambda,S_lm,S_lmu,S_ln,S_lnu,S_lo,S_lomega,S_lomicron : pointer
def S_lpar,S_lphi,S_lpi,S_lpsi,S_lq,S_lr,S_lrho,S_ls,S_lsigma,S_lt,S_ltau,S_ltheta,S_lthn : pointer
def S_lu,S_lupsil,S_lv,S_lw,S_lwi,S_lx,S_lxi,S_ly,S_lyi,S_lz,S_lzeta,S_m,S_minus,S_mu,S_n : pointer
def S_nequl,S_noelmtof,S_notof,S_nu,S_o,S_omega,S_omicron,S_p,S_pardir,S_perc,S_phi,S_pi : pointer
def S_pipe,S_plkconst,S_plus,S_point,S_propset,S_propsubset,S_propto,S_psi,S_q,S_r,S_rbox : pointer
def S_rbrac,S_releq,S_rho,S_rpar,S_s,S_sigma,S_sqart,S_subset,S_t,S_tau,S_theta,S_times : pointer
def S_tridot,S_u,S_union1,S_upsil,S_v,S_w,S_wi,S_x,S_xi,S_y,S_yi,S_z,S_zeta : pointer
rem mouse variables
def screenx,screeny,mpick : int
REM define a window variable
DEF Workspace1 as WINDOW
mpick=1
REM other system variables
DEF speed,run : INT
rem def filename,ln,printer:string
DEF d1 : DIALOG
def frame : uint
rem run=1
rem speed=0
REM open the window
OPENWINDOW Workspace1,0,0,1000,720,@MINBOX|@MAXBOX|@SIZE|@VSCROLL|@NOAUTODRAW,0,"SciMeta - 1a : Parent",&main
BEGINMENU Workspace1
	MENUTITLE "&Menu"
	MENUITEM "&Exit",0,1
	MENUITEM "&Basic Keys",0,2
	ENDMENU
IF(ATTACHSCREEN(Workspace1,1000,720,1) < 0) 
	MESSAGEBOX Workspace1,"Couldn't create DirectX window","Error"
	CLOSEWINDOW Workspace1
	END
ENDIF
CREATEDIALOG d1,560,10,390,150,0x80C80080,0,"Numbers & Operators",&dhandler1
CONTROL d1,@BUTTON,"",6,4,34,34,@CTLBTNBITMAP,1
CONTROL d1,@BUTTON,"",44,4,34,34,@CTLBTNBITMAP,2
CONTROL d1,@BUTTON,"",78,4,34,34,@CTLBTNBITMAP,3
CONTROL d1,@BUTTON,"",112,4,34,34,@CTLBTNBITMAP,4
CONTROL d1,@BUTTON,"",146,4,34,34,@CTLBTNBITMAP,5
CONTROL d1,@BUTTON,"",180,4,34,34,@CTLBTNBITMAP,6
CONTROL d1,@BUTTON,"",214,4,34,34,@CTLBTNBITMAP,7
CONTROL d1,@BUTTON,"",248,4,34,34,@CTLBTNBITMAP,8
CONTROL d1,@BUTTON,"",282,4,34,34,@CTLBTNBITMAP,9
CONTROL d1,@BUTTON,"",318,4,34,34,@CTLBTNBITMAP,10
CONTROL d1,@BUTTON,"",352,4,34,34,@CTLBTNBITMAP,11
CONTROL d1,@BUTTON,"",6,38,34,34,@CTLBTNBITMAP,12
CONTROL d1,@BUTTON,"",44,38,34,34,@CTLBTNBITMAP,13
CONTROL d1,@BUTTON,"",78,38,34,34,@CTLBTNBITMAP,14
CONTROL d1,@BUTTON,"",112,38,34,34,@CTLBTNBITMAP,15
CONTROL d1,@BUTTON,"",146,38,34,34,@CTLBTNBITMAP,16
CONTROL d1,@BUTTON,"",180,38,34,34,@CTLBTNBITMAP,17
CONTROL d1,@BUTTON,"",214,38,34,34,@CTLBTNBITMAP,18
CONTROL d1,@BUTTON,"",248,38,34,34,@CTLBTNBITMAP,19
CONTROL d1,@BUTTON,"",282,38,34,34,@CTLBTNBITMAP,20
CONTROL d1,@BUTTON,"",318,38,34,34,@CTLBTNBITMAP,21
CONTROL d1,@BUTTON,"",352,38,34,34,@CTLBTNBITMAP,22
CONTROL d1,@BUTTON,"",6,72,34,34,@CTLBTNBITMAP,23
CONTROL d1,@BUTTON,"",44,72,34,34,@CTLBTNBITMAP,24
CONTROL d1,@BUTTON,"",78,72,34,34,@CTLBTNBITMAP,25
CONTROL d1,@BUTTON,"",112,72,34,34,@CTLBTNBITMAP,26
CONTROL d1,@BUTTON,"",146,72,34,34,@CTLBTNBITMAP,27
CONTROL d1,@BUTTON,"",180,72,34,34,@CTLBTNBITMAP,28
CONTROL d1,@BUTTON,"",214,72,34,34,@CTLBTNBITMAP,29
CONTROL d1,@BUTTON,"",248,72,34,34,@CTLBTNBITMAP,30
CONTROL d1,@BUTTON,"",282,72,34,34,@CTLBTNBITMAP,31
CONTROL d1,@BUTTON,"",318,72,34,34,@CTLBTNBITMAP,32
CONTROL d1,@BUTTON,"",352,72,34,34,@CTLBTNBITMAP,33
CONTROL d1,@BUTTON,"",6,106,34,34,@CTLBTNBITMAP,34
CONTROL d1,@BUTTON,"",44,106,34,34,@CTLBTNBITMAP,35
CONTROL d1,@BUTTON,"",78,106,34,34,@CTLBTNBITMAP,36
CONTROL d1,@BUTTON,"",112,106,34,34,@CTLBTNBITMAP,37
CONTROL d1,@BUTTON,"",146,106,34,34,@CTLBTNBITMAP,38
CONTROL d1,@BUTTON,"",180,106,34,34,@CTLBTNBITMAP,39
CONTROL d1,@BUTTON,"",214,106,34,34,@CTLBTNBITMAP,40
CONTROL d1,@BUTTON,"",248,106,34,34,@CTLBTNBITMAP,41
CONTROL d1,@BUTTON,"",282,106,34,34,@CTLBTNBITMAP,42
CONTROL d1,@BUTTON,"",318,106,34,34,@CTLBTNBITMAP,43
CONTROL d1,@BUTTON,"",352,106,34,34,@CTLBTNBITMAP,44
WAITUNTIL run = 0
END
SUB main
S_0 = LOADSPRITE("0.jpg") 
S_1=LOADSPRITE("1.jpg")
S_2=LOADSPRITE("2.jpg")
S_3=LOADSPRITE("3.jpg")
S_4=LOADSPRITE("4.jpg")
S_5=LOADSPRITE("5.jpg")
S_6=LOADSPRITE("6.jpg")
S_7=LOADSPRITE("7.jpg")
S_8=LOADSPRITE("8.jpg")
S_9=LOADSPRITE("9.jpg")
S_absequl=LOADSPRITE("absequl.jpg")
rem S_alpha=LOADSPRITE("alpha.jpg")
S_ardwn=LOADSPRITE("ardwn.jpg")
S_arlft=LOADSPRITE("arlft.jpg")
S_arrt=LOADSPRITE("arrt.jpg")
S_arup=LOADSPRITE("arup.jpg")
S_arupdwn=LOADSPRITE("arupdwn.jpg")
rem S_asterik=LOADSPRITE("asterik.jpg")
S_asymequ=LOADSPRITE("asymequ.jpg")
rem S_b=LOADSPRITE("b.jpg")
rem S_beta=LOADSPRITE("beta.jpg")
rem S_c=LOADSPRITE("c.jpg")
rem S_chi=LOADSPRITE("chi.jpg")
rem S_colon=LOADSPRITE("colon.jpg")
S_comma=LOADSPRITE("comma.jpg")
rem S_complimt=LOADSPRITE("complimt.jpg")
rem S_curlop=LOADSPRITE("curlop.jpg")
rem S_d=LOADSPRITE("d.jpg")
S_degrees=LOADSPRITE("degrees.jpg")
S_Delta=LOADSPRITE("Delta.jpg")
S_disjset=LOADSPRITE("disjset.jpg")
S_disun=LOADSPRITE("disun.jpg")
rem S_divop=LOADSPRITE("divop.jpg")
rem S_e=LOADSPRITE("e.jpg")
S_elmtof=LOADSPRITE("elmtof.jpg")
rem S_epsil=LOADSPRITE("epsil.jpg")
S_equl=LOADSPRITE("equl.jpg")
rem S_eta=LOADSPRITE("eta.jpg")
S_f=LOADSPRITE("f.jpg")
S_fslash=LOADSPRITE("fslash.jpg")
rem S_g=LOADSPRITE("g.jpg")
rem S_gamma=LOADSPRITE("gamma.jpg")
S_gequl=LOADSPRITE("gequl.jpg")
S_gthn=LOADSPRITE("gthn.jpg")
rem S_h=LOADSPRITE("h.jpg")
rem S_i=LOADSPRITE("i.jpg")
S_imprset=LOADSPRITE("imprset.jpg")
S_inf=LOADSPRITE("inf.jpg")
S_intg=LOADSPRITE("intg.jpg")
S_intsect=LOADSPRITE("intsect.jpg")
rem S_iota=LOADSPRITE("iota.jpg")
rem S_j=LOADSPRITE("j.jpg")
rem S_ji=LOADSPRITE("ji.jpg")
rem S_k=LOADSPRITE("k.jpg")
rem S_kappa=LOADSPRITE("kappa.jpg")
rem S_l=LOADSPRITE("l.jpg")
rem S_la=LOADSPRITE("la.jpg")
rem S_lalpha=LOADSPRITE("lalpha.jpg")
rem S_lambda=LOADSPRITE("lambda.jpg")
rem S_lb=LOADSPRITE("lb.jpg")
rem S_lbeta=LOADSPRITE("lbeta.jpg")
S_lbox=LOADSPRITE("lbox.jpg")
S_lbrac=LOADSPRITE("lbrac.jpg")
rem S_lc=LOADSPRITE("lc.jpg")
rem S_lchi=LOADSPRITE("lchi.jpg")
rem S_ld=LOADSPRITE("ld.jpg")
rem S_ldelta=LOADSPRITE("ldelta.jpg")
rem S_le=LOADSPRITE("le.jpg")
rem S_lepsil=LOADSPRITE("lepsil.jpg")
rem S_lequl=LOADSPRITE("lequl.jpg")
rem S_leta=LOADSPRITE("leta.jpg")
rem S_lf=LOADSPRITE("lf.jpg")
rem S_lg=LOADSPRITE("lg.jpg")
rem S_lgamma=LOADSPRITE("lgamma.jpg")
rem S_lh=LOADSPRITE("lh.jpg")
rem S_li=LOADSPRITE("li.jpg")
rem S_liota=LOADSPRITE("liota.jpg")
rem S_lj=LOADSPRITE("lj.jpg")
rem S_lji=LOADSPRITE("lji.jpg")
rem S_lk=LOADSPRITE("lk.jpg")
rem S_lkappa=LOADSPRITE("lkappa.jpg")
rem S_ll=LOADSPRITE("ll.jpg")
rem S_llambda=LOADSPRITE("llambda.jpg")
rem S_lm=LOADSPRITE("lm.jpg")
rem S_lmu=LOADSPRITE("lmu.jpg")
rem S_ln=LOADSPRITE("ln.jpg")
rem S_lnu=LOADSPRITE("lnu.jpg")
rem S_lo=LOADSPRITE("lo.jpg")
rem S_lomega=LOADSPRITE("lomega.jpg")
rem S_lomicron=LOADSPRITE("lomicron.jpg")
S_lpar=LOADSPRITE("lpar.jpg")
rem S_lphi=LOADSPRITE("lphi.jpg")
rem S_lpi=LOADSPRITE("lpi.jpg")
rem S_lpsi=LOADSPRITE("lpsi.jpg")
rem S_lq=LOADSPRITE("lq.jpg")
rem S_lr=LOADSPRITE("lr.jpg")
rem S_lrho=LOADSPRITE("lrho.jpg")
rem S_ls=LOADSPRITE("ls.jpg")
rem S_lsigma=LOADSPRITE("lsigma.jpg")
rem S_lt=LOADSPRITE("lt.jpg")
rem S_ltau=LOADSPRITE("ltau.jpg")
rem S_ltheta=LOADSPRITE("ltheta.jpg")
S_lthn=LOADSPRITE("lthn.jpg")
rem S_lu=LOADSPRITE("lu.jpg")
rem S_lupsil=LOADSPRITE("lupsil.jpg")
rem S_lv=LOADSPRITE("lv.jpg")
rem S_lw=LOADSPRITE("lw.jpg")
rem S_lwi=LOADSPRITE("lwi.jpg")
rem S_lx=LOADSPRITE("lx.jpg")
rem S_lxi=LOADSPRITE("lxi.jpg")
rem S_ly=LOADSPRITE("ly.jpg")
rem S_lyi=LOADSPRITE("lyi.jpg")
rem S_lz=LOADSPRITE("lz.jpg")
rem S_lzeta=LOADSPRITE("lzeta.jpg")
rem S_m=LOADSPRITE("m.jpg")
S_minus=LOADSPRITE("minus.jpg")
rem S_mu=LOADSPRITE("mu.jpg")
rem S_n=LOADSPRITE("n.jpg")
S_nequl=LOADSPRITE("nequl.jpg")
S_noelmtof=LOADSPRITE("noelmtof.jpg")
rem S_notof=LOADSPRITE("notof.jpg")
rem S_nu=LOADSPRITE("nu.jpg")
rem S_o=LOADSPRITE("o.jpg")
rem S_omega=LOADSPRITE("omega.jpg")
rem S_omicron=LOADSPRITE("omicron.jpg")
rem S_p=LOADSPRITE("p.jpg")
rem S_pardir=LOADSPRITE("pardir.jpg")
rem S_perc=LOADSPRITE("perc.jpg")
rem S_phi=LOADSPRITE("phi.jpg")
S_pi=LOADSPRITE("pi.jpg")
S_pipe=LOADSPRITE("pipe.jpg")
S_plkconst=LOADSPRITE("plkconst.jpg")
S_plus=LOADSPRITE("plus.jpg")
S_point=LOADSPRITE("point.jpg")
rem S_propset=LOADSPRITE("propset.jpg")
S_propsubset=LOADSPRITE("propsubset.jpg")
rem S_propto=LOADSPRITE("propto.jpg")
rem S_psi=LOADSPRITE("psi.jpg")
rem S_q=LOADSPRITE("q.jpg")
rem S_r=LOADSPRITE("r.jpg")
S_rbox=LOADSPRITE("rbox.jpg")
S_rbrac=LOADSPRITE("rbrac.jpg")
S_releq=LOADSPRITE("releq.jpg")
rem S_rho=LOADSPRITE("rho.jpg")
S_rpar=LOADSPRITE("rpar.jpg")
rem S_s=LOADSPRITE("s.jpg")
S_sigma=LOADSPRITE("sigma.jpg")
S_sqart=LOADSPRITE("sqart.jpg")
rem S_subset=LOADSPRITE("subset.jpg")
rem S_t=LOADSPRITE("t.jpg")
rem S_tau=LOADSPRITE("tau.jpg")
rem S_theta=LOADSPRITE("theta.jpg")
S_times=LOADSPRITE("times.jpg")
rem S_tridot=LOADSPRITE("tridot.jpg")
rem S_u=LOADSPRITE("u.jpg")
rem S_union1=LOADSPRITE("union1.jpg")
rem S_upsil=LOADSPRITE("upsil.jpg")
rem S_v=LOADSPRITE("v.jpg")
rem S_w=LOADSPRITE("w.jpg")
rem S_wi=LOADSPRITE("wi.jpg")
rem S_x=LOADSPRITE("x.jpg")
rem S_xi=LOADSPRITE("xi.jpg")
rem S_y=LOADSPRITE("y.jpg")
rem S_yi=LOADSPRITE("yi.jpg")
rem S_z=LOADSPRITE("z.jpg")
rem S_zeta=LOADSPRITE("zeta.jpg")
FILLSCREEN RGB(255,255,255)
SELECT @CLASS
    CASE @IDCLOSEWINDOW
				GOTO endall
	CASE @IDMENUPICK
        SELECT @MENUNUM
            CASE 1: ' user selected Print
				GOTO endall
			CASE 2:
		SHOWDIALOG d1,Workspace1
		ENDSELECT
	CASE @IDLBUTTONDN 
				screenx = MOUSEX
				screeny = MOUSEY
screeny = screeny - 30
			SELECT mpick
				CASE 101
					SPRITEDRAWMODE S_1, @TRANS
					SPRITEMASKCOLOR S_1,rgb(255,255,255)
					MOVESPRITE S_1,screenx,screeny
					DRAWSPRITE S_1
					FLIP
				CASE 102
					SPRITEDRAWMODE S_2, @TRANS
					SPRITEMASKCOLOR S_2,rgb(255,255,255)
					MOVESPRITE S_2,screenx,screeny
					DRAWSPRITE S_2
					FLIP
				CASE 103
					SPRITEDRAWMODE S_3, @TRANS
					SPRITEMASKCOLOR S_3,rgb(255,255,255)
					MOVESPRITE S_3,screenx,screeny
					DRAWSPRITE S_3
					FLIP
				CASE 104
					SPRITEDRAWMODE S_4, @TRANS
					SPRITEMASKCOLOR S_4,rgb(255,255,255)
					MOVESPRITE S_4,screenx,screeny
					DRAWSPRITE S_4
					FLIP
				CASE 105
					SPRITEDRAWMODE S_5, @TRANS
					SPRITEMASKCOLOR S_5,rgb(255,255,255)
					MOVESPRITE S_5,screenx,screeny
					DRAWSPRITE S_5
					FLIP
				CASE 106
					SPRITEDRAWMODE S_6, @TRANS
					SPRITEMASKCOLOR S_6,rgb(255,255,255)
					MOVESPRITE S_6,screenx,screeny
					DRAWSPRITE S_6
					FLIP
				CASE 107
					SPRITEDRAWMODE S_7, @TRANS
					SPRITEMASKCOLOR S_7,rgb(255,255,255)
					MOVESPRITE S_7,screenx,screeny
					DRAWSPRITE S_7
					FLIP
				CASE 108
					SPRITEDRAWMODE S_8, @TRANS
					SPRITEMASKCOLOR S_8,rgb(255,255,255)
					MOVESPRITE S_8,screenx,screeny
					DRAWSPRITE S_8
					FLIP
				CASE 109
					SPRITEDRAWMODE S_9, @TRANS
					SPRITEMASKCOLOR S_9,rgb(255,255,255)
					MOVESPRITE S_9,screenx,screeny
					DRAWSPRITE S_9
					FLIP
				CASE 110
					SPRITEDRAWMODE S_0, @TRANS
					SPRITEMASKCOLOR S_0,rgb(255,255,255)
					MOVESPRITE S_0,screenx,screeny
					DRAWSPRITE S_0
					FLIP
				CASE 111
					SPRITEDRAWMODE S_fslash, @TRANS
					SPRITEMASKCOLOR S_fslash,rgb(255,255,255)
					MOVESPRITE S_fslash,screenx,screeny
					DRAWSPRITE S_fslash
					FLIP
				CASE 112
					SPRITEDRAWMODE S_equl, @TRANS
					SPRITEMASKCOLOR S_equl,rgb(255,255,255)
					MOVESPRITE S_equl,screenx,screeny
					DRAWSPRITE S_equl
					FLIP
				CASE 113
					SPRITEDRAWMODE S_nequl, @TRANS
					SPRITEMASKCOLOR S_nequl,rgb(255,255,255)
					MOVESPRITE S_nequl,screenx,screeny
					DRAWSPRITE S_nequl
					FLIP
				CASE 114
					SPRITEDRAWMODE S_releq, @TRANS
					SPRITEMASKCOLOR S_releq,rgb(255,255,255)
					MOVESPRITE S_releq,screenx,screeny
					DRAWSPRITE S_releq
					FLIP
				CASE 115
					SPRITEDRAWMODE S_absequl, @TRANS
					SPRITEMASKCOLOR S_absequl,rgb(255,255,255)
					MOVESPRITE S_absequl,screenx,screeny
					DRAWSPRITE S_absequl
					FLIP
				CASE 116
					SPRITEDRAWMODE S_asymequ, @TRANS
					SPRITEMASKCOLOR S_asymequ,rgb(255,255,255)
					MOVESPRITE S_asymequ,screenx,screeny
					DRAWSPRITE S_asymequ
					FLIP
				CASE 117
					SPRITEDRAWMODE S_gthn, @TRANS
					SPRITEMASKCOLOR S_gthn,rgb(255,255,255)
					MOVESPRITE S_gthn,screenx,screeny
					DRAWSPRITE S_gthn
					FLIP
				CASE 118
					SPRITEDRAWMODE S_lthn, @TRANS
					SPRITEMASKCOLOR S_lthn,rgb(255,255,255)
					MOVESPRITE S_lthn,screenx,screeny
					DRAWSPRITE S_lthn
					FLIP
				CASE 119
					SPRITEDRAWMODE S_inf, @TRANS
					SPRITEMASKCOLOR S_inf,rgb(255,255,255)
					MOVESPRITE S_inf,screenx,screeny
					DRAWSPRITE S_inf
					FLIP
				CASE 120
					SPRITEDRAWMODE S_pipe, @TRANS
					SPRITEMASKCOLOR S_pipe,rgb(255,255,255)
					MOVESPRITE S_pipe,screenx,screeny
					DRAWSPRITE S_pipe
					FLIP
				CASE 121
					SPRITEDRAWMODE S_degrees, @TRANS
					SPRITEMASKCOLOR S_degrees,rgb(255,255,255)
					MOVESPRITE S_degrees,screenx,screeny
					DRAWSPRITE S_degrees
					FLIP
				CASE 122
					SPRITEDRAWMODE S_times, @TRANS
					SPRITEMASKCOLOR S_times,rgb(255,255,255)
					MOVESPRITE S_times,screenx,screeny
					DRAWSPRITE S_times
					FLIP
				CASE 123
					SPRITEDRAWMODE S_lpar, @TRANS
					SPRITEMASKCOLOR S_lpar,rgb(255,255,255)
					MOVESPRITE S_lpar,screenx,screeny
					DRAWSPRITE S_lpar
					FLIP
				CASE 124
					SPRITEDRAWMODE S_rpar, @TRANS
					SPRITEMASKCOLOR S_rpar,rgb(255,255,255)
					MOVESPRITE S_rpar,screenx,screeny
					DRAWSPRITE S_rpar
					FLIP
				CASE 125
					SPRITEDRAWMODE S_lbox, @TRANS
					SPRITEMASKCOLOR S_lbox,rgb(255,255,255)
					MOVESPRITE S_lbox,screenx,screeny
					DRAWSPRITE S_lbox
					FLIP
				CASE 126
					SPRITEDRAWMODE S_rbox, @TRANS
					SPRITEMASKCOLOR S_rbox,rgb(255,255,255)
					MOVESPRITE S_rbox,screenx,screeny
					DRAWSPRITE S_rbox
					FLIP
				CASE 127
					SPRITEDRAWMODE S_lbrac, @TRANS
					SPRITEMASKCOLOR S_lbrac,rgb(255,255,255)
					MOVESPRITE S_lbrac,screenx,screeny
					DRAWSPRITE S_lbrac
					FLIP
				CASE 128
					SPRITEDRAWMODE S_rbrac, @TRANS
					SPRITEMASKCOLOR S_rbrac,rgb(255,255,255)
					MOVESPRITE S_rbrac,screenx,screeny
					DRAWSPRITE S_rbrac
					FLIP
				CASE 129
					SPRITEDRAWMODE S_sigma, @TRANS
					SPRITEMASKCOLOR S_sigma,rgb(255,255,255)
					MOVESPRITE S_sigma,screenx,screeny
					DRAWSPRITE S_sigma
					FLIP
				CASE 130
					SPRITEDRAWMODE S_intg, @TRANS
					SPRITEMASKCOLOR S_intg,rgb(255,255,255)
					MOVESPRITE S_intg,screenx,screeny
					DRAWSPRITE S_intg
					FLIP
				CASE 131
					SPRITEDRAWMODE S_point, @TRANS
					SPRITEMASKCOLOR S_point,rgb(255,255,255)
					MOVESPRITE S_point,screenx,screeny
					DRAWSPRITE S_point
					FLIP
				CASE 132
					SPRITEDRAWMODE S_comma, @TRANS
					SPRITEMASKCOLOR S_comma,rgb(255,255,255)
					MOVESPRITE S_comma,screenx,screeny
					DRAWSPRITE S_comma
					FLIP
				CASE 133
					SPRITEDRAWMODE S_plus, @TRANS
					SPRITEMASKCOLOR S_plus,rgb(255,255,255)
					MOVESPRITE S_plus,screenx,screeny
					DRAWSPRITE S_plus
					FLIP
				CASE 134
					SPRITEDRAWMODE S_pi, @TRANS
					SPRITEMASKCOLOR S_pi,rgb(255,255,255)
					MOVESPRITE S_pi,screenx,screeny
					DRAWSPRITE S_pi
					FLIP
				CASE 135
					SPRITEDRAWMODE S_sqart, @TRANS
					SPRITEMASKCOLOR S_sqart,rgb(255,255,255)
					MOVESPRITE S_sqart,screenx,screeny
					DRAWSPRITE S_sqart
					FLIP
				CASE 136
					SPRITEDRAWMODE S_plkconst, @TRANS
					SPRITEMASKCOLOR S_plkconst,rgb(255,255,255)
					MOVESPRITE S_plkconst,screenx,screeny
					DRAWSPRITE S_plkconst
					FLIP
				CASE 137
					SPRITEDRAWMODE S_Delta, @TRANS
					SPRITEMASKCOLOR S_Delta,rgb(255,255,255)
					MOVESPRITE S_Delta,screenx,screeny
					DRAWSPRITE S_Delta
					FLIP
				CASE 138
					SPRITEDRAWMODE S_imprset, @TRANS
					SPRITEMASKCOLOR S_imprset,rgb(255,255,255)
					MOVESPRITE S_imprset,screenx,screeny
					DRAWSPRITE S_imprset
					FLIP
				CASE 139
					SPRITEDRAWMODE S_elmtof, @TRANS
					SPRITEMASKCOLOR S_elmtof,rgb(255,255,255)
					MOVESPRITE S_elmtof,screenx,screeny
					DRAWSPRITE S_elmtof
					FLIP
				CASE 140
					SPRITEDRAWMODE S_disjset, @TRANS
					SPRITEMASKCOLOR S_disjset,rgb(255,255,255)
					MOVESPRITE S_disjset,screenx,screeny
					DRAWSPRITE S_disjset
					FLIP
				CASE 141
					SPRITEDRAWMODE S_intsect, @TRANS
					SPRITEMASKCOLOR S_intsect,rgb(255,255,255)
					MOVESPRITE S_intsect,screenx,screeny
					DRAWSPRITE S_intsect
					FLIP
				CASE 142
					SPRITEDRAWMODE S_propsubset, @TRANS
					SPRITEMASKCOLOR S_propsubset,rgb(255,255,255)
					MOVESPRITE S_propsubset,screenx,screeny
					DRAWSPRITE S_propsubset
					FLIP
				CASE 143
					SPRITEDRAWMODE S_noelmtof, @TRANS
					SPRITEMASKCOLOR S_noelmtof,rgb(255,255,255)
					MOVESPRITE S_noelmtof,screenx,screeny
					DRAWSPRITE S_noelmtof
					FLIP
				CASE 144
					SPRITEDRAWMODE S_minus, @TRANS
					SPRITEMASKCOLOR S_minus,rgb(255,255,255)
					MOVESPRITE S_minus,screenx,screeny
					DRAWSPRITE S_minus
					FLIP
			ENDSELECT
	ENDSELECT
LABEL endall
FREESPRITE S_0 
FREESPRITE S_1
FREESPRITE S_2
FREESPRITE S_3
FREESPRITE S_4
FREESPRITE S_5
FREESPRITE S_6
FREESPRITE S_7
FREESPRITE S_8
FREESPRITE S_9
FREESPRITE S_absequl
FREESPRITE S_alpha
FREESPRITE S_ardwn
FREESPRITE S_arlft
FREESPRITE S_arrt
FREESPRITE S_arup
FREESPRITE S_arupdwn
FREESPRITE S_asterik
FREESPRITE S_asymequ
FREESPRITE S_b
FREESPRITE S_beta
FREESPRITE S_c
FREESPRITE S_chi
FREESPRITE S_colon
FREESPRITE S_comma
FREESPRITE S_complimt
FREESPRITE S_curlop
FREESPRITE S_d
FREESPRITE S_degrees
FREESPRITE S_Delta
FREESPRITE S_disjset
FREESPRITE S_disun
FREESPRITE S_divop
FREESPRITE S_e
FREESPRITE S_elmtof
FREESPRITE S_epsil
FREESPRITE S_equl
FREESPRITE S_eta
FREESPRITE S_f
FREESPRITE S_fslash
FREESPRITE S_g
FREESPRITE S_gamma
FREESPRITE S_gequl
FREESPRITE S_gthn
FREESPRITE S_h
FREESPRITE S_i
FREESPRITE S_imprset
FREESPRITE S_inf
FREESPRITE S_intg
FREESPRITE S_intsect
FREESPRITE S_iota
FREESPRITE S_j
FREESPRITE S_ji
FREESPRITE S_k
FREESPRITE S_kappa
FREESPRITE S_l
FREESPRITE S_la
FREESPRITE S_lalpha
FREESPRITE S_lambda
FREESPRITE S_lb
FREESPRITE S_lbeta
FREESPRITE S_lbox
FREESPRITE S_lbrac
FREESPRITE S_lc
FREESPRITE S_lchi
FREESPRITE S_ld
FREESPRITE S_ldelta
FREESPRITE S_le
FREESPRITE S_lepsil
FREESPRITE S_lequl
FREESPRITE S_leta
FREESPRITE S_lf
FREESPRITE S_lg
FREESPRITE S_lgamma
FREESPRITE S_lh
FREESPRITE S_li
FREESPRITE S_liota
FREESPRITE S_lj
FREESPRITE S_lji
FREESPRITE S_lk
FREESPRITE S_lkappa
FREESPRITE S_ll
FREESPRITE S_llambda
FREESPRITE S_lm
FREESPRITE S_lmu
FREESPRITE S_ln
FREESPRITE S_lnu
FREESPRITE S_lo
FREESPRITE S_lomega
FREESPRITE S_lomicron
FREESPRITE S_lpar
FREESPRITE S_lphi
FREESPRITE S_lpi
FREESPRITE S_lpsi
FREESPRITE S_lq
FREESPRITE S_lr
FREESPRITE S_lrho
FREESPRITE S_ls
FREESPRITE S_lsigma
FREESPRITE S_lt
FREESPRITE S_ltau
FREESPRITE S_ltheta
FREESPRITE S_lthn
FREESPRITE S_lu
FREESPRITE S_lupsil
FREESPRITE S_lv
FREESPRITE S_lw
FREESPRITE S_lwi
FREESPRITE S_lx
FREESPRITE S_lxi
FREESPRITE S_ly
FREESPRITE S_lyi
FREESPRITE S_lz
FREESPRITE S_lzeta
FREESPRITE S_m
FREESPRITE S_minus
FREESPRITE S_mu
FREESPRITE S_n
FREESPRITE S_nequl
FREESPRITE S_noelmtof
FREESPRITE S_notof
FREESPRITE S_nu
FREESPRITE S_o
FREESPRITE S_omega
FREESPRITE S_omicron
FREESPRITE S_p
FREESPRITE S_pardir
FREESPRITE S_perc
FREESPRITE S_phi
FREESPRITE S_pi
FREESPRITE S_pipe
FREESPRITE S_plkconst
FREESPRITE S_plus
FREESPRITE S_point
FREESPRITE S_propset
FREESPRITE S_propsubset
FREESPRITE S_propto
FREESPRITE S_psi
FREESPRITE S_q
FREESPRITE S_r
FREESPRITE S_rbox
FREESPRITE S_rbrac
FREESPRITE S_releq
FREESPRITE S_rho
FREESPRITE S_rpar
FREESPRITE S_s
FREESPRITE S_sigma
FREESPRITE S_sqart
FREESPRITE S_subset
FREESPRITE S_t
FREESPRITE S_tau
FREESPRITE S_theta
FREESPRITE S_times
FREESPRITE S_tridot
FREESPRITE S_u
FREESPRITE S_union1
FREESPRITE S_upsil
FREESPRITE S_v
FREESPRITE S_w
FREESPRITE S_wi
FREESPRITE S_x
FREESPRITE S_xi
FREESPRITE S_y
FREESPRITE S_yi
FREESPRITE S_z
FREESPRITE S_zeta
run=0
				CLOSESCREEN
                CLOSEWINDOW Workspace1
rem run=0
RETURN 
ENDSUB
SUB dhandler1
frame=0
SETFONT BACKBUFFER,"Ariel", 50, 700, @SFITALIC
SELECT @MESSAGE
 	CASE @IDCONTROL
        SELECT @CONTROLID
             CASE 1
				mpick=101
 
			CASE 2
				mpick = 102
			CASE 3
				mpick = 103
			CASE 4
				mpick = 104
			CASE 5
				mpick = 105
			CASE 6
				mpick = 106
			CASE 7
				mpick = 107
			CASE 8
				mpick = 108
			CASE 9
				mpick = 109
			CASE 10
				mpick = 110
			CASE 11
				mpick = 111
 			CASE 12
				mpick = 112
			CASE 13
				mpick = 113
			CASE 14
				mpick = 114
			CASE 15
				mpick = 115
			CASE 16
				mpick = 116
			CASE 17
				mpick = 117
			CASE 18
				mpick = 118
			CASE 19
				mpick = 119
			CASE 20
				mpick = 120
			CASE 21
				mpick = 121
			CASE 22
				mpick = 122
			CASE 23
				mpick = 123
			CASE 24
				mpick = 124
			CASE 25
				mpick = 125
			CASE 26
				mpick = 126
			CASE 27
				mpick = 127
			CASE 28
				mpick = 128
			CASE 29
				mpick = 129
			CASE 30
				mpick = 130
			CASE 31
				mpick = 131
			CASE 32
				mpick = 132
			CASE 33
				mpick = 133
			CASE 34
				mpick = 134
			CASE 35
				mpick = 135
			CASE 36
				mpick = 136
			CASE 37
				mpick = 137
			CASE 38
				mpick = 138
			CASE 39
				mpick = 139
			CASE 40
				mpick = 140
			CASE 41
				mpick = 141
			CASE 42
				mpick = 142
			CASE 43
				mpick = 143
			CASE 44
				mpick = 144
        ENDSELECT
	CASE @IDINITDIALOG
				setcontroltext d1,1, GETSTARTPATH +"1.bmp"
				setcontroltext d1,2, GETSTARTPATH +"2.bmp"
				setcontroltext d1,3, GETSTARTPATH + "3.bmp"
				setcontroltext d1,4, GETSTARTPATH +"4.bmp"
				setcontroltext d1,5, GETSTARTPATH +"5.bmp"
				setcontroltext d1,6, GETSTARTPATH +"6.bmp"
				setcontroltext d1,7, GETSTARTPATH +"7.bmp"
				setcontroltext d1,8, GETSTARTPATH +"8.bmp"
				setcontroltext d1,9, GETSTARTPATH +"9.bmp"
				setcontroltext d1,10, GETSTARTPATH +"0.bmp"
				setcontroltext d1,11, GETSTARTPATH +"fslash.bmp"
				setcontroltext d1,12, GETSTARTPATH +"equl.bmp"
				setcontroltext d1,13, GETSTARTPATH + "nequl.bmp"
				setcontroltext d1,14, GETSTARTPATH +"releq.bmp"
				setcontroltext d1,15, GETSTARTPATH +"absequl.bmp"
				setcontroltext d1,16, GETSTARTPATH +"asymequ.bmp"
				setcontroltext d1,17, GETSTARTPATH +"gthn.bmp"
				setcontroltext d1,18, GETSTARTPATH +"lthn.bmp"
				setcontroltext d1,19, GETSTARTPATH +"inf.bmp"
				setcontroltext d1,20, GETSTARTPATH +"pipe.bmp"
				setcontroltext d1,21, GETSTARTPATH +"degrees.bmp"
				setcontroltext d1,22, GETSTARTPATH +"times.bmp"
				setcontroltext d1,23, GETSTARTPATH + "lpar.bmp"
				setcontroltext d1,24, GETSTARTPATH +"rpar.bmp"
				setcontroltext d1,25, GETSTARTPATH +"lbox.bmp"
				setcontroltext d1,26, GETSTARTPATH +"rbox.bmp"
				setcontroltext d1,27, GETSTARTPATH +"lbrac.bmp"
				setcontroltext d1,28, GETSTARTPATH +"rbrac.bmp"
				setcontroltext d1,29, GETSTARTPATH +"sigma.bmp"
				setcontroltext d1,30, GETSTARTPATH +"intg.bmp"
				setcontroltext d1,31, GETSTARTPATH +"point.bmp"
				setcontroltext d1,32, GETSTARTPATH +"comma.bmp"
				setcontroltext d1,33, GETSTARTPATH +"plus.bmp"
				setcontroltext d1,34, GETSTARTPATH +"pi.bmp"
				setcontroltext d1,35, GETSTARTPATH +"sqart.bmp"
				setcontroltext d1,36, GETSTARTPATH +"plkconst.bmp"
				setcontroltext d1,37, GETSTARTPATH +"Delta.bmp"
				setcontroltext d1,38, GETSTARTPATH +"imprset.bmp"
				setcontroltext d1,39, GETSTARTPATH +"elmtof.bmp"
				setcontroltext d1,40, GETSTARTPATH +"disjset.bmp"
				setcontroltext d1,41, GETSTARTPATH +"intsect.bmp"
				setcontroltext d1,42, GETSTARTPATH +"propsubset.bmp"
				setcontroltext d1,43, GETSTARTPATH +"noelmtof.bmp"
				setcontroltext d1,44, GETSTARTPATH +"minus.bmp"
	CASE @IDCLOSEWINDOW
	CLOSEDIALOG d1
ENDSELECT
RETURN
ENDSUB
That was one version that worked some...
rem sprite pointers
def S_0,S_1,S_2,S_3,S_4,S_5,S_6,S_7,S_8,S_9,S_fslash : pointer
rem mouse variables
def screenx,screeny,mpick : int
rem define window
DEF Workspace1 as WINDOW
rem intitialize mpick variable
mpick=1
REM other system variables
DEF speed,run : INT
rem def filename,ln,printer:string
rem define di dialog and frame variable
DEF d1 : DIALOG
def frame : uint
 run=1
 speed=0
REM open the window
OPENWINDOW Workspace1,0,0,1000,720,@MINBOX|@MAXBOX|@SIZE|@VSCROLL|@NOAUTODRAW,0,"SciMeta - 1a : Parent",&main
BEGINMENU Workspace1
	MENUTITLE "&Menu"
	MENUITEM "&Exit",0,1
	MENUITEM "&Basic Keys",0,2
	ENDMENU
rem attach the screen
IF(ATTACHSCREEN(Workspace1,1000,720,1) < 0) 
	MESSAGEBOX Workspace1,"Couldn't create DirectX window","Error"
	CLOSEWINDOW Workspace1
	END
ENDIF
rem make the dialog for the basic symbol keys
CREATEDIALOG d1,560,10,390,50,0x80C80080,0,"Numbers & Operators",&dhandler1
CONTROL d1,@BUTTON,"",6,4,34,34,@CTLBTNBITMAP,1
CONTROL d1,@BUTTON,"",44,4,34,34,@CTLBTNBITMAP,2
CONTROL d1,@BUTTON,"",78,4,34,34,@CTLBTNBITMAP,3
CONTROL d1,@BUTTON,"",112,4,34,34,@CTLBTNBITMAP,4
CONTROL d1,@BUTTON,"",146,4,34,34,@CTLBTNBITMAP,5
CONTROL d1,@BUTTON,"",180,4,34,34,@CTLBTNBITMAP,6
CONTROL d1,@BUTTON,"",214,4,34,34,@CTLBTNBITMAP,7
CONTROL d1,@BUTTON,"",248,4,34,34,@CTLBTNBITMAP,8
CONTROL d1,@BUTTON,"",282,4,34,34,@CTLBTNBITMAP,9
CONTROL d1,@BUTTON,"",318,4,34,34,@CTLBTNBITMAP,10
CONTROL d1,@BUTTON,"",352,4,34,34,@CTLBTNBITMAP,11
WAITUNTIL run = 0
END
SUB main
S_0 = LOADSPRITE("0.jpg") 
S_1=LOADSPRITE("1.jpg")
S_2=LOADSPRITE("2.jpg")
S_3=LOADSPRITE("3.jpg")
S_4=LOADSPRITE("4.jpg")
S_5=LOADSPRITE("5.jpg")
S_6=LOADSPRITE("6.jpg")
S_7=LOADSPRITE("7.jpg")
S_8=LOADSPRITE("8.jpg")
S_9=LOADSPRITE("9.jpg")
S_fslash=LOADSPRITE("fslash.jpg")
rem FILLSCREEN RGB(255,255,255)
SELECT @CLASS
    CASE @IDCLOSEWINDOW
				GOTO endall
	CASE @IDMENUPICK
        SELECT @MENUNUM
            CASE 1: ' user selected Print
				GOTO endall
			CASE 2:
		SHOWDIALOG d1,Workspace1
		ENDSELECT
	CASE @IDLBUTTONDN 
				screenx = MOUSEX
				screeny = MOUSEY
screeny = screeny - 30
			SELECT mpick
				CASE 101
					SPRITEDRAWMODE S_1, @TRANS
					SPRITEMASKCOLOR S_1,rgb(255,255,255)
					MOVESPRITE S_1,screenx,screeny
					DRAWSPRITE S_1
					FLIP
				CASE 102
					SPRITEDRAWMODE S_2, @TRANS
					SPRITEMASKCOLOR S_2,rgb(255,255,255)
					MOVESPRITE S_2,screenx,screeny
					DRAWSPRITE S_2
					FLIP
				CASE 103
					SPRITEDRAWMODE S_3, @TRANS
					SPRITEMASKCOLOR S_3,rgb(255,255,255)
					MOVESPRITE S_3,screenx,screeny
					DRAWSPRITE S_3
					FLIP
				CASE 104
					SPRITEDRAWMODE S_4, @TRANS
					SPRITEMASKCOLOR S_4,rgb(255,255,255)
					MOVESPRITE S_4,screenx,screeny
					DRAWSPRITE S_4
					FLIP
				CASE 105
					SPRITEDRAWMODE S_5, @TRANS
					SPRITEMASKCOLOR S_5,rgb(255,255,255)
					MOVESPRITE S_5,screenx,screeny
					DRAWSPRITE S_5
					FLIP
				CASE 106
					SPRITEDRAWMODE S_6, @TRANS
					SPRITEMASKCOLOR S_6,rgb(255,255,255)
					MOVESPRITE S_6,screenx,screeny
					DRAWSPRITE S_6
					FLIP
				CASE 107
					SPRITEDRAWMODE S_7, @TRANS
					SPRITEMASKCOLOR S_7,rgb(255,255,255)
					MOVESPRITE S_7,screenx,screeny
					DRAWSPRITE S_7
					FLIP
				CASE 108
					SPRITEDRAWMODE S_8, @TRANS
					SPRITEMASKCOLOR S_8,rgb(255,255,255)
					MOVESPRITE S_8,screenx,screeny
					DRAWSPRITE S_8
					FLIP
				CASE 109
					SPRITEDRAWMODE S_9, @TRANS
					SPRITEMASKCOLOR S_9,rgb(255,255,255)
					MOVESPRITE S_9,screenx,screeny
					DRAWSPRITE S_9
					FLIP
				CASE 110
					SPRITEDRAWMODE S_0, @TRANS
					SPRITEMASKCOLOR S_0,rgb(255,255,255)
					MOVESPRITE S_0,screenx,screeny
					DRAWSPRITE S_0
					FLIP
				CASE 111
					SPRITEDRAWMODE S_fslash, @TRANS
					SPRITEMASKCOLOR S_fslash,rgb(255,255,255)
					MOVESPRITE S_fslash,screenx,screeny
					DRAWSPRITE S_fslash
					FLIP
			ENDSELECT
	ENDSELECT
LABEL endall
FREESPRITE S_0 
FREESPRITE S_1
FREESPRITE S_2
FREESPRITE S_3
FREESPRITE S_4
FREESPRITE S_5
FREESPRITE S_6
FREESPRITE S_7
FREESPRITE S_8
FREESPRITE S_9
FREESPRITE S_fslash
run=0
				CLOSESCREEN
                CLOSEWINDOW Workspace1
rem run=0
RETURN 
ENDSUB
SUB dhandler1
frame=0
SETFONT BACKBUFFER,"Ariel", 50, 700, @SFITALIC
SELECT @MESSAGE
 	CASE @IDCONTROL
        SELECT @CONTROLID
             CASE 1
				mpick=101
 
			CASE 2
				mpick = 102
			CASE 3
				mpick = 103
			CASE 4
				mpick = 104
			CASE 5
				mpick = 105
			CASE 6
				mpick = 106
			CASE 7
				mpick = 107
			CASE 8
				mpick = 108
			CASE 9
				mpick = 109
			CASE 10
				mpick = 110
			CASE 11
				mpick = 111
        ENDSELECT
	CASE @IDINITDIALOG
				setcontroltext d1,1, GETSTARTPATH +"1.bmp"
				setcontroltext d1,2, GETSTARTPATH +"2.bmp"
				setcontroltext d1,3, GETSTARTPATH + "3.bmp"
				setcontroltext d1,4, GETSTARTPATH +"4.bmp"
				setcontroltext d1,5, GETSTARTPATH +"5.bmp"
				setcontroltext d1,6, GETSTARTPATH +"6.bmp"
				setcontroltext d1,7, GETSTARTPATH +"7.bmp"
				setcontroltext d1,8, GETSTARTPATH +"8.bmp"
				setcontroltext d1,9, GETSTARTPATH +"9.bmp"
				setcontroltext d1,10, GETSTARTPATH +"0.bmp"
				setcontroltext d1,11, GETSTARTPATH +"fslash.bmp"
	CASE @IDCLOSEWINDOW
	CLOSEDIALOG d1
ENDSELECT
RETURN
ENDSUB
This one gets the message of the topic...
I'll zip all the files and bring it back tomorrow for upload. (My machine isn't connected to the net for a few good reasons, but I use the library for free and it does rather well. It's just a bit inconvenient and I have a time limit. )
Thankyou
Dr. C.
			
			
			
				Hi Doc
After few mumbo-jumbo with freespite function i gues what i do wrong.
Belive or not this is my first DX example written in EBasic  :)
This work for me:
rem sprite pointers
def S_0,S_1,S_2,S_3,S_4,S_5,S_6,S_7,S_8,S_9,S_fslash : uint
speed=0
rem mouse variables
def screenx,screeny,mpick : int
rem define window
DEF Workspace1:WINDOW
rem intitialize mpick variable
mpick=1
REM other system variables
DEF run : INT
rem def filename,ln,printer:string
rem define di dialog and frame variable
DEF d1 : DIALOG
def frame : uint
 run=1
 'speed=0
REM open the window --------------------------------------------------------------------------------------
OPENWINDOW Workspace1,0,0,1000,720,@MINBOX|@MAXBOX|@SIZE|@NOAUTODRAW,0,"SciMeta - 1a : Parent",&main
BEGINMENU Workspace1
	MENUTITLE "&Menu"
	MENUITEM "&Exit",0,1
	MENUITEM "&Basic Keys",0,2
ENDMENU
rem attach the screen
IF(ATTACHSCREEN(Workspace1,1000,720,FALSE) < 0) 
	MESSAGEBOX 0,"Couldn't create DirectX window","Error"
	CLOSEWINDOW Workspace1
	END
ENDIF
'load sprite
S_0 = LOADSPRITE(GETSTARTPATH+"0.bmp")
'dialog
CREATEDIALOG d1,560,10,390,50,0x80C80080,0,"Numbers & Operators",&dhandler1
CONTROL d1,@BUTTON,"",6,4,34,34,@CTLBTNBITMAP,1
CONTROL d1,@BUTTON,"",44,4,34,34,@CTLBTNBITMAP,2
CONTROL d1,@BUTTON,"",78,4,34,34,@CTLBTNBITMAP,3
CONTROL d1,@BUTTON,"",112,4,34,34,@CTLBTNBITMAP,4
CONTROL d1,@BUTTON,"",146,4,34,34,@CTLBTNBITMAP,5
CONTROL d1,@BUTTON,"",180,4,34,34,@CTLBTNBITMAP,6
CONTROL d1,@BUTTON,"",214,4,34,34,@CTLBTNBITMAP,7
CONTROL d1,@BUTTON,"",248,4,34,34,@CTLBTNBITMAP,8
CONTROL d1,@BUTTON,"",282,4,34,34,@CTLBTNBITMAP,9
CONTROL d1,@BUTTON,"",318,4,34,34,@CTLBTNBITMAP,10
CONTROL d1,@BUTTON,"",352,4,34,34,@CTLBTNBITMAP,11
'-------------------------------------------------------------
'S_1=LOADSPRITE("1.jpg")
'S_3=LOADSPRITE("3.jpg")
'S_4=LOADSPRITE("4.jpg")
'S_5=LOADSPRITE("5.jpg")
'S_6=LOADSPRITE("6.jpg")
'S_7=LOADSPRITE("7.jpg")
'S_8=LOADSPRITE("8.jpg")
'S_9=LOADSPRITE("9.jpg")
'S_fslash=LOADSPRITE("fslash.jpg")
'-----------------------------------------------------------------------
WAITUNTIL run = 0
'there is catch- you must test if sprite is loaded then freesprite
IF S_0<>0 then FREESPRITE S_0 
CLOSESCREEN
CLOSEWINDOW Workspace1
IF d1<>0 then Closewindow d1
END
'-----------------------------------------------------------------------
SUB main
rem FILLSCREEN RGB(255,255,255)
SELECT @CLASS
    CASE @IDCLOSEWINDOW		
		'FREESPRITE S_0 
		'FREESPRITE S_1
		'FREESPRITE S_2
		'FREESPRITE S_3
		'FREESPRITE S_4
		'FREESPRITE S_5
		'FREESPRITE S_6
		'FREESPRITE S_7
		'FREESPRITE S_8
		'FREESPRITE S_9
		'FREESPRITE S_fslash
		
		run=0
        'CLOSEWINDOW Workspace1
	CASE @IDMENUPICK
    SELECT @MENUNUM
            CASE 1: ' user selected Print
				run=0
			CASE 2:
			SHOWDIALOG d1
	ENDSELECT
	CASE @IDLBUTTONDN 
				screenx = MOUSEX
				screeny = MOUSEY
				screeny = screeny - 30
		SELECT mpick
				CASE 101
					SPRITEDRAWMODE S_1, @TRANS
					SPRITEMASKCOLOR S_1,rgb(255,255,255)
					MOVESPRITE S_1,screenx,screeny
					DRAWSPRITE S_1
					FLIP
				CASE 102
					SPRITEDRAWMODE S_2, @TRANS
					SPRITEMASKCOLOR S_2,rgb(255,255,255)
					MOVESPRITE S_2,screenx,screeny
					DRAWSPRITE S_2
					speed=FLIP
				CASE 103
					SPRITEDRAWMODE S_3, @TRANS
					SPRITEMASKCOLOR S_3,rgb(255,255,255)
					MOVESPRITE S_3,screenx,screeny
					DRAWSPRITE S_3
					FLIP
				CASE 104
					SPRITEDRAWMODE S_4, @TRANS
					SPRITEMASKCOLOR S_4,rgb(255,255,255)
					MOVESPRITE S_4,screenx,screeny
					DRAWSPRITE S_4
					FLIP
				CASE 105
					SPRITEDRAWMODE S_5, @TRANS
					SPRITEMASKCOLOR S_5,rgb(255,255,255)
					MOVESPRITE S_5,screenx,screeny
					DRAWSPRITE S_5
					FLIP
				CASE 106
					SPRITEDRAWMODE S_6, @TRANS
					SPRITEMASKCOLOR S_6,rgb(255,255,255)
					MOVESPRITE S_6,screenx,screeny
					DRAWSPRITE S_6
					FLIP
				CASE 107
					SPRITEDRAWMODE S_7, @TRANS
					SPRITEMASKCOLOR S_7,rgb(255,255,255)
					MOVESPRITE S_7,screenx,screeny
					DRAWSPRITE S_7
					FLIP
				CASE 108
					SPRITEDRAWMODE S_8, @TRANS
					SPRITEMASKCOLOR S_8,rgb(255,255,255)
					MOVESPRITE S_8,screenx,screeny
					DRAWSPRITE S_8
					FLIP
				CASE 109
					SPRITEDRAWMODE S_9, @TRANS
					SPRITEMASKCOLOR S_9,rgb(255,255,255)
					MOVESPRITE S_9,screenx,screeny
					DRAWSPRITE S_9
					FLIP
				CASE 110
					SPRITEDRAWMODE S_0, @TRANS
					SPRITEMASKCOLOR S_0,rgb(255,255,255)
					MOVESPRITE S_0,screenx,screeny
					DRAWSPRITE S_0
					FLIP
				CASE 111
					SPRITEDRAWMODE S_fslash, @TRANS
					SPRITEMASKCOLOR S_fslash,rgb(255,255,255)
					MOVESPRITE S_fslash,screenx,screeny
					DRAWSPRITE S_fslash
					FLIP
			ENDSELECT
ENDSELECT
RETURN 
ENDSUB
SUB dhandler1
'frame=0
'SETFONT BACKBUFFER,"Ariel", 50, 700, @SFITALIC
SELECT @MESSAGE
 	CASE @IDCONTROL
        SELECT @CONTROLID
             CASE 1
				mpick=101
 
			CASE 2
				mpick = 102
			CASE 3
				mpick = 103
			CASE 4
				mpick = 104
			CASE 5
				mpick = 105
			CASE 6
				mpick = 106
			CASE 7
				mpick = 107
			CASE 8
				mpick = 108
			CASE 9
				mpick = 109
			CASE 10
				mpick = 110
			CASE 11
				mpick = 111
        ENDSELECT
	CASE @IDINITDIALOG
				setcontroltext d1,1, GETSTARTPATH +"1.bmp"
				setcontroltext d1,2, GETSTARTPATH +"2.bmp"
				setcontroltext d1,3, GETSTARTPATH + "3.bmp"
				setcontroltext d1,4, GETSTARTPATH +"4.bmp"
				setcontroltext d1,5, GETSTARTPATH +"5.bmp"
				setcontroltext d1,6, GETSTARTPATH +"6.bmp"
				setcontroltext d1,7, GETSTARTPATH +"7.bmp"
				setcontroltext d1,8, GETSTARTPATH +"8.bmp"
				setcontroltext d1,9, GETSTARTPATH +"9.bmp"
				setcontroltext d1,10, GETSTARTPATH +"0.bmp"
				setcontroltext d1,11, GETSTARTPATH +"fslash.bmp"
	CASE @IDCLOSEWINDOW
	CLOSEDIALOG d1
ENDSELECT
RETURN
ENDSUB