home *** CD-ROM | disk | FTP | other *** search
- *************************
- * ╩Σ╚δ╚╬╥Γ╠⌡╝■ ╙├╙┌╣╠╗» *
- *************************
- para wjm
- set proc to szrytj
- priv ocr,ox,ohz,o,ozf,oi,oxgs,oxtj,x,oy,c,n,d,k,ojsgs,ojlh,obj
- obj=chr(160)
- ojlh=1
- ojsgs=space(73)
- c='╫╓╖√╨═'
- n='╩²╓╡╨═'
- d='╚╒╞┌╨═'
- x=19
- y=3
- oy=21
- ocr=1
- oi=1
- ox=1
- oxgs=1
- oxtj=1
- sele 10
- use &wjm..ozd alia j
- set color to w/1,,
- clear
- call hj with '00007924'
- @ 1,30 say '╟δ╩Σ╚δ╥╗╕÷╠⌡╝■▒φ┤∩╩╜'
- @ 2,1 say repl('⌐Ñ',39)
- @ 22,1 say repl('⌐Ñ',39)
- @ 23,1 say space(78)
- @ 23,2 say '╟δ╩Σ╚δ╠⌡╝■ ^End:═╦│÷ ╗╪│╡╝ⁿ:╤í╘±╫╓╢╬'
- do xskz
- do xszdcd
- set color to w+/r,0/w,
- @ oy,1 say '╠⌡╝■:'
- @ oy,6 say space(72)
- @ oy,6 say ojsgs
- sele 10
- do while .t.
- set color to w+/r,,
- @ oy,ox+5 say ''
- o=inkey(0)
- do case
- case o=19.and.ox>1
- ox=ox-1
- if asc(subs(ojsgs,ox,1))>160
- ox=ox-1
- endif
- loop
- case o=4.and.ox<72
- ox=iif(asc(subs(ojsgs,ox,1))>160,ox+2,ox+1)
- loop
- case o<127.and.o>31
- ozf=iif(asc(subs(ojsgs,ox,1))>160.and.ocr=1,chr(o)+' ',chr(o))
- if ocr=0
- if len(trim(ojsgs))+len(ozf)<=72
- ojsgs=left(stuf(ojsgs,ox,0,ozf),72)
- ox=iif(ox<72,ox+1,ox)
- @ oy,6 say ojsgs
- endif
- else
- ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
- @ oy,ox+5 say ozf
- ox=iif(ox<72,ox+1,ox)
- endif
- ohz=0
- case o>160.and.ox<72
- if ohz=0
- ozf=chr(o)
- ohz=1
- else
- ozf=ozf+chr(o)
- ozf=iif(ocr=1.and.subs(ojsgs,ox,1)<obj.and.subs(ojsgs,ox+1,1)>obj,ozf+' ',ozf)
- if ocr=0
- if len(trim(ojsgs))+len(ozf)<=72
- ojsgs=left(stuf(ojsgs,ox,0,ozf),72)
- @ oy,6 say ojsgs
- ox=iif(ox<72-1,ox+2,ox)
- endif
- else
- ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
- @ oy,ox+5 say ozf
- ox=iif(ox<72-1,ox+2,ox)
- endif
- ohz=0
- endif
- case o=22
- call hj with '02140916'
- ocr=iif(ocr=0,1,0)
- @ 15,4 say iif(ocr=0,'▓σ╚δ','╨▐╕─')
- case o=7
- ojsgs=iif(asc(subs(ojsgs,ox,1))<160,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+' ')
- @ oy,6 say ojsgs
- case o=127.and.ox>1
- ox=ox-1
- if asc(subs(ojsgs,ox,1))>160
- ox=ox-1
- endif
- ojsgs=iif(asc(subs(ojsgs,ox,1))<160,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+' ')
- @ oy,6 say ojsgs
- case o=13
- keyb chr(24)
- sele 10
- ozdm0=iif(gzq='A',trim(╫╓╢╬├√),gzq+'->'+trim(╫╓╢╬├√))
- if len(trim(ojsgs))+len(ozdm0)<71
- ojsgs=left(stuf(ojsgs,ox,0,ozdm0),72)
- @ oy,6 say ojsgs
- ox=ox+len(ozdm0)
- ox=iif(ox>72,72,ox)
- endif
- case o=9
- if oy=18
- oxgs=ox
- ox=oxtj
- set color to 0/w,,
- @ oy,6 say ojsgs
- oy=20
- ogs=ojsgs
- ojsgs=otj
- set color to w+/r,,
- @ oy,6 say ojsgs
- else
- oxtj=ox
- ox=oxgs
- set color to 0/w,,
- @ oy,6 say ojsgs
- oy=18
- otj=ojsgs
- ojsgs=ogs
- set color to w+/r,,
- @ oy,6 say ojsgs
- endif
- case o=-9
- sele 2
- repl zd with a->╫╓╢╬├√,gzq with a->gzq
- set color to 0/2,,
- @ 11,18 say gzq+'->'+zd
- sele 10
- case o=23
- ok=27
- do zryy
- sele 1
- set filt to &ojsgs
- exit
- case o=24.and. oi<10
- sele 10
- set color to 0/3,,
- do xszdgd
- if recn()<recc()
- skip
- oi=oi+1
- endif
- set color to w+/r,,
- do xszdgd
- case o=5.and.oi>1
- sele 10
- set color to 0/3,,
- do xszdgd
- if recn()>1
- skip -1
- oi=oi-1
- endif
- set color to w+/r,,
- do xszdgd
- case o=3.and.ojlh+9<recc()
- goto ojlh
- skip 10
- ojlh=recn()
- do xszdcd
- case o=18.and.ojlh>10
- goto ojlh
- skip -10
- ojlh=recn()
- do xszdcd
- endcase
- enddo
- @ 23,1 say space(78)
- set color to 7/1,1/7,
- return
-
- *******************************
- * ╧╘╩╛╫╓╢╬▓╦╡Ñ *
- *******************************
- proc xszdcd
- priv oi0,ol,c,n,d
- c='╫╓╖√╨═'
- n='╩²╓╡╨═'
- d='╚╒╞┌╨═'
- if eof()
- return
- endif
- set color to 0/3,,
- oi0=y+3
- @ oi0,x+1 clear to oi0+9,x+39
- ol=recn()
- do while oi0<y+13.and..not.eof()
- @ oi0,x+2 say xz pict '@z'
- @ oi0,x+5 say gzq+'->'
- @ oi0,x+10 say ╫╓╢╬├√
- ozdlx=╫╓╢╬└α╨═
- @ oi0,x+21 say &ozdlx
- @ oi0,x+30 say ╫╓╢╬│ñ╢╚ pict '@z'
- @ oi0,x+35 say ╫╓╢╬╨í╩² pict '@z'
- oi0=oi0+1
- if .not.eof()
- skip
- endif
- enddo
- goto ol
- oi=1
- set color to w+/r,,
- do xszdgd
- return
- *********************
- * ╧╘╩╛╫╓╢╬╣Γ┤° *
- *********************
- proc xszdgd
- @ oi+5,x+4 say space(36)
- @ oi+5,x+5 say gzq+'->'
- @ oi+5,x+10 say ╫╓╢╬├√
- ozdlx=╫╓╢╬└α╨═
- @ oi+5,x+21 say &ozdlx
- @ oi+5,x+30 say ╫╓╢╬│ñ╢╚ pict '@z'
- @ oi+5,x+35 say ╫╓╢╬╨í╩² pict '@z'
- return
- *******************************
- * ╧╘╩╛╫╓╢╬▓╦╡Ñ┐≥╫╙ *
- *******************************
- proc xskz
- priv x,y
- x=19
- y=3
- do owind with y,x,y+13,x+41,'0/3,,'
- set color to ,w+/r,
- @ y+1,x+2 say '╣ñ╫≈╟° ╫╓╢╬├√│╞ └α ╨═ │ñ╢╚ ╨í╩²'
- @ y+2,x+1 say repl('⌐ñ',20)
- return
- ************
- * ╫╘╚╗╙∩╤╘ *
- ************
- proc zryy
- priv zh,zrm(8,2),o,om
- om=8
- dime zrm(8,2)
- zrm(1,1)='['
- zrm(2,1)=']'
- zrm(3,1)='╢°╟╥'
- zrm(4,1)='╗≥╒▀'
- zrm(5,1)='▓╗╡╚╙┌'
- zrm(6,1)='╡╚╙┌'
- zrm(7,1)='╨í╙┌'
- zrm(8,1)='┤≤╙┌'
- zrm(1,2)=[ctod(']
- zrm(2,2)=[')]
- zrm(3,2)='.and.'
- zrm(4,2)='.or.'
- zrm(5,2)='#'
- zrm(6,2)='='
- zrm(7,2)='<'
- zrm(8,2)='>'
- o=1
- do while o<=om
- do while .t.
- zh=at(zrm(o,1),ojsgs)
- if zh>0
- ojsgs=stuf(ojsgs,zh,len(zrm(o,1)),zrm(o,2))
- else
- exit
- endif
- enddo
- o=o+1
- enddo
- return