home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a057 / 6.img / YQMIS30B.EXE / OSJLRW.MBK < prev    next >
Encoding:
Text File  |  1994-05-14  |  21.9 KB  |  1,344 lines

  1. priv ozdlx,ofw,ozdxh,╝╞╩²╞≈
  2. wjm=left(sys(16),len(sys(16))-4)
  3. sele 1
  4. goto bott
  5. ╝╞╩²╞≈=recn()
  6. do xs
  7. sele 10
  8. goto oszd
  9. set color to w+/1,0/w,
  10. do while .t.
  11.    ozdxh=recn()
  12.    ozdlx=╫╓╢╬└α╨═
  13.    ozdm=trim(╫╓╢╬├√)
  14.    ogzq=╟°
  15.    ojg=╕─
  16.    oh=╨╨+2
  17.    ol=┴╨+2
  18.    ocd=┤╩╡Σ
  19.    if ozdlx='N'
  20.      if ╔╧╧▐=0.AND.╧┬╧▐=0
  21.         ofw=' '
  22.      else
  23.        ofw='rang '+ltrim(str(╧┬╧▐,19,2))+','+ltrim(str(╔╧╧▐,19,2))
  24.      endif
  25.    else
  26.      ofw=' '
  27.    endif
  28.    sele 1
  29.    if ogzq='A'.and..not.ojg
  30.      do while .t.
  31.       @ oh,ol get &ozdm &ofw
  32.       if ocd
  33.          clea get
  34.          ozdmc=ozdm
  35.          do odm
  36.       else
  37.          read
  38.       endif
  39.      if ozdxh=1
  40.        owy=.f.
  41.        do wyxjc with &ozdm
  42.        if owy
  43.          exit
  44.        endif
  45.      else
  46.        exit
  47.      endif
  48.     @ 1,60 say '╡▒╟░╩²╛▌╓╪╕┤!!'
  49.     ?? repl(chr(7),12)
  50.     @ 1,60 say '              '
  51.     enddo
  52.       ok=read()
  53.       if ok>255
  54.          goto recn()
  55.          do js
  56.       endif
  57.       ok=mod(ok,256)
  58.       @ oh,ol say &ozdm
  59.    endif
  60.    sele 10
  61.    do case
  62.    case ok=4.or.ok=0.or.ok=2
  63.      do xqyd
  64.    case ok=1.or.ok=5.or.ok=15
  65.      do xhyd
  66.    case ok=6
  67.      do xqyj
  68.    case ok=7
  69.      do xhyj
  70.    case ok=35
  71.      do xhyp
  72.    case ok=33
  73.         do cd
  74.      if ok=99
  75.         sele 10
  76.         use &wjm..brw alia j
  77.         do otybb
  78.         set proc to &wjm
  79.         exit
  80.      endif
  81.    case ok=14.or.ok=12
  82.         do smggp with '┤µ┼╠═╦│÷  ╖┼╞·═╦│÷',10,31
  83.         set color to ,0/w,
  84.         @ 10,31 prom '┤µ┼╠═╦│÷'
  85.         @ 10,41 prom '╖┼╞·═╦│÷'
  86.         menu to ok
  87.         sele 8
  88.         use
  89.         sele 1
  90.         if ok=1
  91.            pack
  92.            use &aqwj alia a
  93.            appe from olswj.ls
  94.         endif
  95.         use
  96.         dele file olswj.ls
  97.         close proc
  98.         close data
  99.         return
  100.    case ok=34
  101.         sele 1
  102.      do brow
  103.         exit
  104.    case ok=36.and.sys(13)='READY'
  105.         call hbk with '03022177V'
  106.    othe
  107.         if recn()<omzd
  108.            skip
  109.         endif
  110.         if eof()
  111.            goto oszd
  112.            sele 1
  113.            if .not.eof()
  114.               skip
  115.            endif
  116.            if eof()
  117.               goto top
  118.            endif
  119.            do xs
  120.         endif
  121.    endcase
  122.    sele 10
  123. enddo
  124. enddo
  125. return
  126.  
  127. ****************
  128. * ╧╘╩╛╦∙╙╨╫╓╢╬ *
  129. ****************
  130. proc xs
  131. priv ozdm,ogzq,oh,ol
  132. sele 1
  133. set color to w+/1,,
  134. do xsjlh
  135. if dele()
  136.    set color to r+/1,,
  137. else
  138.    set color to w+/1,,
  139. endif
  140. sele 10
  141. goto oszd
  142. do while recn()<=omzd
  143.    ozdm=trim(╫╓╢╬├√)
  144.    ogzq=╟°
  145.    oh=╨╨+2
  146.    ol=┴╨+2
  147.    sele 1
  148.    @ oh,ol say &ogzq.->&ozdm
  149.    sele 10
  150.    skip
  151. enddo
  152. goto oszd
  153. ok=5
  154. return
  155.  
  156. ****************
  157. * ╫╖╝╙╝╟┬╝     *
  158. ****************
  159. proc zj
  160. priv ok,olsbl(128)
  161. dime OLSBL(128)
  162. sele 1
  163. if ofz
  164.    goto bott
  165.    scat to olsbl
  166. endif
  167. if oj
  168.    appe blan
  169.    if ofz
  170.       gath from olsbl
  171.    endif
  172.    @ 1,29 say recc() pict '@B 99999999'
  173. else
  174.    set color to w+/1,,
  175.    @ 21,30 say '╩╟╖±╫╖╝╙╨┬╡─╝╟┬╝?(Y/N)'
  176.    ok=chr(abs(inkey(0)))
  177.    @ 21,30 say '                      '
  178.    if ok$'Yy'
  179.       oj=.t.
  180.       appe blan
  181.       ╝╞╩²╞≈=recn()
  182.       if ofz
  183.          gath from olsbl
  184.       endif
  185.       @ 1,29 say recc() pict '@B 99999999'
  186.    else
  187.       goto bott
  188.    endif
  189. endif
  190. return
  191.  
  192. ****************
  193. *   ┬╝╚δ▓╦╡Ñ   *
  194. ****************
  195. proc cd
  196. priv o,tx(7),tx0(7),ojl10
  197. dime tx(7),tx0(7)
  198. sele 1
  199. @ oh,ol get &ozdm
  200. clear get
  201. tx(1)='╝╟┬╝▓┘╫≈'
  202. tx0(1)='╓╕╒δ╥╞╢»╡╜╬─╝■┐¬═╖╗≥╬─╝■╬▓▓┐,╗≥╓╕╢¿╝╟┬╝.╥╘╝░╝╟┬╝╕┤╓╞╡─╔Φ╢¿,▓σ╚δ╝╟┬╝'
  203. tx(2)='╫╓╢╬╧▐╓╞'
  204. tx0(2)='╓╕╢¿╡▒╟░╫╓╢╬╩Σ╚δ╖╢╬º╡─╔╧╧▐║═╧┬╧▐'
  205. tx(3)='╔╛│²╝╟┬╝'
  206. tx0(3)='╔╛│²╡▒╟░╝╟┬╝ú¿╢╘╡▒╟░╝╟┬╝╫÷╔╛│²▒Ω╝╟ú¼═╦│÷╩▒╫÷╬∩└φ╔╛│²ú⌐'
  207. tx(4)='╜√╕─╫╓╢╬'
  208. tx0(4)='╜√╓╣╨▐╕─╡▒╟░╫╓╢╬ú¼╣Γ▒Ω╜½╫╘╢»╠°╣²╡▒╟░╫╓╢╬'
  209. tx(5)='╝ñ╗ε╫╓╢╬'
  210. tx0(5)='╘╩╨φ╨▐╕─╦∙╙╨╡─╫╓╢╬'
  211. tx(6)='┤≥╙í▒¿▒φ'
  212. tx0(6)='┤≥╙í╡▒╟░┬╝╚δ╡─╝╟┬╝,┤≥╙í╫╓╢╬┐╔╙╔╙├╗º╚╬╥Γ╤í╘±'
  213. tx(7)='┤≥╙í┐¿╞¼'
  214. tx0(7)='░┤╞┴─╗╕±╩╜┤≥╙í╡▒╟░╝╟┬╝╡─┐¿╞¼'
  215. o=0
  216. do menu with 7
  217. set color to w+/1,,
  218. do case
  219. case o=1
  220.      sele 1
  221.      tx(1)='╬─╝■┐¬═╖'
  222.      tx0(1)='╜½╓╕╒δ╥╞╡╜╩²╛▌┐Γ╡─╡┌╥╗▒╩╝╟┬╝'
  223.      tx(2)='╬─╝■╬▓▓┐'
  224.      tx0(2)='╜½╓╕╒δ╥╞╡╜╩²╛▌┐Γ╡─╫ε║≤╥╗▒╩╝╟┬╝'
  225.      tx(3)='╓╕╢¿╝╟┬╝'
  226.      tx0(3)='╜½╓╕╒δ╥╞╡╜╓╕╢¿╡─╝╟┬╝'
  227.      tx(4)='╝╟┬╝╕┤╓╞'
  228.      tx0(4)='╫╖╝╙╨┬╝╟┬╝╩▒ú¼╩╟╖±╫╘╢»╜½╔╧╥╗▒╩╝╟┬╝╕┤╓╞╡╜╨┬╫╖╝╙╡─╝╟┬╝╓╨╡─┐¬╣╪'
  229.      tx(5)='▓σ╚δ╝╟┬╝'
  230.      tx0(5)='╘┌╡▒╟░╝╟┬╝┤ª▓σ╚δ╥╗▒╩┐╒░╫╝╟┬╝'
  231.      tx(6)='┤·┬δ╖╜╩╜'
  232.      tx0(6)='╔Φ╢¿╡▒╟░╫╓╢╬╩╟╖±▓╔╙├┤·┬δ╖╜╩╜'
  233.      tx(7)='╣½╩╜╝╞╦π'
  234.      tx0(7)='╬¬╡▒╟░╫╓╢╬╜¿┴ó╥╗╕÷╝╞╦π╣½╩╜ú¼┬╝╚δ╩▒ú¼╕├╫╓╢╬╙╔╣½╩╜╫╘╢»╕│╓╡'
  235.      do menu with 7
  236.      set color to w+/1,,
  237.      @ 1,53 say space(26)
  238.      @ 21,0 say space(80)
  239.      call hj with '00007924'
  240.      do case
  241.      case o=1
  242.           goto top
  243.      case o=2
  244.           goto bott
  245.      case o=3
  246.           o=recn()
  247.           @ 1,53 say '╝╟┬╝║┼:' get o rang 1,recc() pict '@B'
  248.           read
  249.           @ 1,53 say space(26)
  250.           goto o
  251.      case o=4
  252.           ofz=iif(ofz,.f.,.t.)
  253.      case o=5
  254.           inse befor blan
  255.           do xs
  256.           sele 1
  257.           set color to w+/1,,
  258.           @ 1,29 say recc() pict '@B 99999999'
  259.      case o=6
  260.           sele 10
  261.           if ╫╓╢╬└α╨═='C'
  262.          repl ┤╩╡Σ with iif(┤╩╡Σ,.f.,.t.)
  263.          oa=1
  264.              sele 1
  265.              set color to w+/1,,
  266.              @ oh,ol say &ozdm
  267.           endif
  268.      case o=7
  269.           do gs
  270.      endcase
  271.      sele 10
  272.      ojl10=recn()
  273.      do xs
  274.      sele 10
  275.      if ojl10>0.and.ojl10<=recc()
  276.         goto ojl10
  277.      endif
  278.      sele 1
  279. case o=2.and.ozdlx='N'
  280.      set color to w/1,,
  281.      @ 21,1 say space(78)
  282.      do while .t.
  283.      sele 10
  284.      @ 21,2 say '╩²╛▌╧┬╧▐:' get ╧┬╧▐
  285.      @ 21,32 say '╩²╛▌╔╧╧▐:' get ╔╧╧▐
  286.      read
  287.      if ╧┬╧▐>╔╧╧▐
  288.         @ 23,1 say space(78)
  289.         @ 23,26 say '╩Σ╚δ┤φ╬≤,╧┬╧▐▓╗─▄┤≤╙┌╔╧╧▐!!!' 
  290.         ?? repl(chr(7),20)
  291.         @ 23,25 say '╓╕╢¿╩²╓╡╨═╫╓╢╬╡─╩²╓╡╔╧╧▐║═╧┬╧▐'
  292.      else
  293.         exit
  294.      endif
  295.      enddo
  296.      @ 21,1 say space(78)
  297. case o=3
  298.      sele 1
  299.      if dele()
  300.         reca
  301.       else
  302.         dele
  303.       endif
  304.       do xs
  305. case o=4
  306.      sele 10
  307.      repl ╕─ with .t.
  308.      oa=1
  309.      sele 1
  310.      set color to w+/1,,
  311.      @ oh,ol say &ozdm
  312.      ok=5
  313. case o=5
  314.      sele 10
  315.      ol0=recn()
  316.      repl ╕─ with .f. all
  317.      goto ol0
  318. case o=6
  319.      ok=99
  320. case o=7.and.sys(13)='READY'
  321.      call hbk with '03022177V'
  322. endcase
  323. set color to w+/1,1/7,
  324. return
  325.  
  326. ****************
  327. *   ┤·┬δ╠µ╗╗   *
  328. ****************
  329. proc odm
  330. set exact on
  331. odm='        '
  332. set color to w+/r,,
  333. @ 21,1 say '╩Σ╚δ┤·┬δ:'get odm pict '!!!!!!!!'
  334. read
  335. if odm='        '
  336.    @ 21,1 say space(78)
  337.    set color to w+/1,,
  338.    retu
  339. endif
  340. sele 9
  341. seek ozdmc+odm
  342. if found()
  343.    sele 1
  344.    repl &ozdm with i->nr
  345. else
  346. set exact off
  347.    seek ozdmc
  348.    if found()
  349.      do dmgd
  350.    else
  351.       appe blan
  352.       repl zd with ozdm,dm with odm
  353.       @ 21,20 say '─┌╚▌:' get nr
  354.       read
  355.       sele 1
  356.       repl &ozdm with i->nr
  357.    endif
  358. endif
  359. @ 21,1 say space(78)
  360. set color to w+/1,,
  361. sele 1
  362. set exac off
  363. return
  364. ****************
  365. *   ┤·┬δ╣÷╢»   *
  366. ****************
  367. proc dmgd
  368. set color to w/1,,
  369. @ 23,1 say space(78)
  370. @ 23,13 say 'íⁿí²╝ⁿ:╖¡╢»┤·┬δ▒φ  ╗╪│╡╝ⁿ:╤í╘±╡▒╟░┤·┬δ  PgDn:╠ε╨┤╨┬┤·┬δ'
  371. set color to 7/1,1/7,
  372. priv ok,ol
  373. ol=recn()
  374. set color to w+/r,,
  375. @ 21,1 say '╩Σ╚δ┤·┬δ:'
  376. do while .t.
  377. @ 21,11 say odm pict '!!!!!!!!'
  378. @ 21,20 say '─┌╚▌:' get nr
  379. clear get
  380. ok=inkey(0)
  381. do case
  382. case ok=24
  383. skip
  384. if eof()
  385. goto ol
  386. endif
  387. if zd<>ozdm
  388. goto ol
  389. endif
  390. case ok=5
  391. skip -1
  392. if bof()
  393. goto ol
  394. endif
  395. if zd<>ozdm
  396. goto ol
  397. endif
  398. case ok=13
  399. sele 1
  400. repl &ozdm with i->nr
  401. exit
  402. case ok=3
  403. appe blan
  404. repl zd with ozdm,dm with odm
  405. @ 21,20 say '─┌╚▌:' get nr
  406. read
  407. sele 1
  408. repl &ozdm with i->nr
  409. exit
  410. endcase
  411. enddo
  412. set color to w/1,,
  413. @ 23,1 say space(78)
  414. @ 23,6 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ ^PgDn:╗╗╞┴ F1:┤≥╙í'
  415. set color to 7/1,1/7,
  416. return
  417. ****************
  418. *   ╣½╩╜╝╞╦π   *
  419. ****************
  420. proc js
  421. priv o,ozdm,ojs,ol,oh,oxs
  422. set color to w+/1,0/w,
  423. sele 10
  424. o=recn()
  425. goto top
  426. do while .not.eof()
  427. ozdm=trim(╫╓╢╬├√)
  428. ojs=trim(╦π)
  429. oh=╨╨+2
  430. ol=┴╨+2
  431. oxs=recn()>=oszd.and.recn()<=omzd
  432. sele 1
  433. if len(ojs)>0
  434. repl &ozdm with &ojs
  435. if oxs
  436. @ oh,ol say &ozdm
  437. endif
  438. endif
  439. sele 10
  440. skip
  441. enddo
  442. sele 10
  443. goto o
  444. sele 1
  445. return
  446.  
  447. ****************
  448. *   ╩Σ╚δ╣½╩╜   *
  449. ****************
  450. proc gs
  451. priv ox,o,ocr,osq,ozf,ohz,ozdm,ol,obj,ojsgs
  452. set color to 0/3,,
  453. @ 23,1 say space(78)
  454. @ 23,18 say '^End:═╦│÷ íⁿí²:╥╞╢»╫╓╢╬╣Γ▒Ω ╗╪│╡╝ⁿ:╤í╘±╫╓╢╬'
  455. set color to w+/r,,
  456. obj=chr(160)
  457. ohz=0
  458. ozf=''
  459. ocr=1
  460. ox=1
  461. sele 10
  462. ol=recn()
  463. ozdm=trim(╫╓╢╬├√)
  464. @ 1,40 say '╜ß╣√╫╓╢╬:'+ozdm
  465. @ 1,60 say '╨▐╕─'
  466. ojsgs=╦π
  467. set color to 0/w,,
  468. @ 21,1 say space(78)
  469. @ 21,1 say ojsgs
  470. sele 2
  471. do while .t.
  472. set color to 0/w,,
  473. @ 21,ox say ''
  474. o=inkey(0)
  475. do case
  476. case o=19.and.ox>1
  477. ox=ox-1
  478. if subs(ojsgs,ox,1)>obj
  479. ox=ox-1
  480. endif
  481. loop
  482. case o=4.and.ox<78
  483. ox=iif(subs(ojsgs,ox,1)>obj,ox+2,ox+1)
  484. loop
  485. case o<127.and.o>31
  486. ozf=iif(subs(ojsgs,ox,1)>obj.and.ocr=1,chr(o)+' ',chr(o))
  487. if ocr=0
  488. if len(trim(ojsgs))+len(ozf)<79
  489. ojsgs=left(stuf(ojsgs,ox,0,ozf),78)
  490. ox=iif(ox<78,ox+1,ox)
  491. @ 21,1 say ojsgs
  492. endif
  493. else
  494. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  495. @ 21,ox say ozf
  496. ox=iif(ox<78,ox+1,ox)
  497. endif
  498. ohz=0
  499. case o>160.and.ox<78
  500. if ohz=0
  501. ozf=chr(o)
  502. ohz=1
  503. else
  504. ozf=ozf+chr(o)
  505. ozf=iif(ocr=1.and.subs(ojsgs,ox,1)<obj.and.subs(ojsgs,ox+1,1)>obj,ozf+' ',ozf)
  506. if ocr=0
  507. if len(trim(ojsgs))+len(ozf)<79
  508. ojsgs=left(stuf(ojsgs,ox,0,ozf),78)
  509. @ 21,1 say ojsgs
  510. ox=iif(ox<77,ox+2,ox)
  511. endif
  512. else
  513. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  514. @ 21,ox say ozf
  515. ox=iif(ox<77,ox+2,ox)
  516. endif
  517. ohz=0
  518. endif
  519. case o=22
  520. ocr=iif(ocr=0,1,0)
  521. @ 1,60 say iif(ocr=0,'▓σ╚δ','╨▐╕─')
  522. case o=7
  523. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  524. @ 21,1 say ojsgs
  525. case o=127.and.ox>1
  526. ox=ox-1
  527. if subs(ojsgs,ox,1)>obj
  528. ox=ox-1
  529. endif
  530. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  531. @ 21,1 say ojsgs
  532. case o=13
  533. keyb chr(24)
  534. sele 10
  535. ozdm0=iif(╟°='A',trim(╫╓╢╬├√),╟°+'->'+trim(╫╓╢╬├√))
  536. if len(trim(ojsgs))+len(ozdm0)<79
  537. ojsgs=left(stuf(ojsgs,ox,0,ozdm0),78)
  538. @ 21,1 say ojsgs
  539. ox=ox+len(ozdm0)
  540. ox=iif(ox>78,78,ox)
  541. endif
  542. case o=23
  543. sele 10
  544. goto ol
  545. repl ╦π with ojsgs
  546. exit
  547. case o=24
  548. sele 10
  549. set color to w+/1,,
  550. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  551. if .not.eof()
  552. skip
  553. endif
  554. if eof()
  555. goto top
  556. endif
  557. set color to w+/r,,
  558. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  559. case o=5
  560. sele 10
  561. set color to w+/1,,
  562. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  563. if .not.bof()
  564. skip -1
  565. endif
  566. if bof()
  567. goto bott
  568. endif
  569. set color to w+/r,,
  570. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  571. endcase
  572. enddo
  573. set color to w+/1,,
  574. @ 1,40 say space(39)
  575. @ 21,1 say space(78)
  576. set color to w/1,,
  577. @ 23,1 say space(78)
  578. @ 23,6 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ ^PgDn:╗╗╞┴ F1:┤≥╙í'
  579. set color to 7/1,1/7,
  580. return
  581.  
  582. ************
  583. * ╡τ╫╙▒¿▒φ *
  584. ************
  585. proc brow
  586. set date ansi
  587. set safe off
  588. set color to ,0/3,
  589. priv ozdszd,wzd,ozdmm(20),ozd0,zhzd,ozdczd,ozdx(20),zds,y,y0,sjl,wybz
  590. priv ozdsd,ozdsdc,ozdszd,ozj,y1,objfx
  591. objfx=.t.
  592. dime ozdmm(20),ozdx(20)
  593. if file('&wjm..bro')
  594. rest from &wjm..bro addi
  595. else
  596. ozdszd=1
  597. ozdsdc=0
  598. ozdsd=0
  599. ozdszd=1
  600. ozd0=0
  601. zds=1
  602. endif
  603. ozj=.f.
  604. wybz=.f.
  605. sele 1
  606. sjl=recn()
  607. y=6
  608. zds=1
  609. zhzd=0
  610. sele 9
  611. use &wjm..brw alia i
  612. zhzd=recc()
  613. goto top
  614. do while .not.eof()
  615. zdsmcd=len(trim(╫╓╢╬╦╡├≈))
  616. do case
  617. case zdsmcd<=╫╓╢╬│ñ╢╚
  618. repl sm2 with space(int((╫╓╢╬│ñ╢╚-zdsmcd)/2))+trim(╫╓╢╬╦╡├≈)
  619. case zdsmcd<=╫╓╢╬│ñ╢╚*2
  620. zd1cd=int(zdsmcd/2)+mod(int(zdsmcd/2),2)
  621. zd2cd=zdsmcd-zd1cd
  622. repl sm1 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+left(╫╓╢╬╦╡├≈,zd1cd)
  623. repl sm3 with space(int((╫╓╢╬│ñ╢╚-zd2cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd+1,zd2cd)
  624. othe
  625. zdsmcd=iif(zdsmcd>╫╓╢╬│ñ╢╚*3,╫╓╢╬│ñ╢╚*3,zdsmcd)
  626. zd1cd=int(zdsmcd/3)+mod(int(zdsmcd/3),2)
  627. zd3cd=zdsmcd-(zd1cd*2)
  628. repl sm1 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+left(╫╓╢╬╦╡├≈,zd1cd)
  629. repl sm2 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd+1,zd1cd)
  630. repl sm3 with space(int((╫╓╢╬│ñ╢╚-zd3cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd*2+1,zd3cd)
  631. endcase
  632. skip
  633. enddo
  634. load hbk
  635. set color to w/1,,
  636. clear
  637. @ 24,0 say ''
  638. call hbk with '00002479Z'
  639. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  640. sele 1
  641. @ 1,col() say recc() pict '@B'
  642. @ 2,1 say repl('⌐Ñ',39)
  643. @ 22,1 say repl('⌐Ñ',39)
  644. @ 23,2 say 'PgUp/PgDn:╟░║≤╖¡╥│  ^PgUp/^PgDn:╫≤╙╥╖¡╥│  ^Home:╣ñ╛▀▓╦╡Ñ  Esc:═╦│÷'
  645. do dqysd
  646. do dqy
  647. **************
  648. * ╓≈  ╤¡  ╗╖ *
  649. **************
  650. on key=21 do p4
  651. goto top
  652. do xsdqy
  653. do xsjlh
  654. zdmc=ozdmm(zds)
  655. y=6
  656. do while .t.
  657. do while .t.
  658. set color to 0/3,0/3,
  659. @ y,ozdx(zds)-1 say ' '
  660. @ y,ozdx(zds) get &zdmc
  661. @ y,col() say ' '
  662. read
  663. if zds=1
  664.    owy=.f.
  665.    do wyxjc with &ozdm
  666.    if owy
  667.       exit
  668.    else
  669.     set color to 7+/1,,
  670.     @ 1,60 say '╡▒╟░╩²╛▌╓╪╕┤!!'
  671.     ?? repl(chr(7),12)
  672.     @ 1,60 say '              '
  673.    endif
  674. else
  675.    exit
  676. endif
  677. ?? chr(7)
  678. enddo
  679.  
  680. ok=mod(read(),256)
  681. set color to w/1,,
  682. @ y,ozdx(zds)-1 say ' '
  683. @ y,ozdx(zds) say &zdmc pict '@z'
  684. yhx=str(col(),2)
  685. @ y,col() say ' '
  686. @ 24,0 say ''
  687. call hbk with str(y,2)+str(ozdx(zds)-1,2)+yhx+'03a'
  688. call hbk with str(y,2)+yhx+str(y,2)+'03p'
  689. do case
  690. case ok=0.or.ok=2
  691. do zyzd
  692. case ok=1.or.ok=3
  693. do yyzd
  694. case ok=4
  695. do syyh
  696. case ok=5
  697. do xyyh
  698. case ok=15
  699. if objfx
  700. do yyzd
  701. else
  702. do xyyh
  703. endif
  704. case ok=6.and.sjl>1
  705. do sfyy
  706. case ok=7.and..not.wybz
  707. do xfyy
  708. case ok=34.and.ozdszd>1
  709. do zyck
  710. case ok=35.and.ozd0<zhzd
  711. do yyck
  712. case ok=33
  713. do gjcd
  714. case ok=12.or.ok=14
  715. save to &wjm..bro all like ozd*
  716. return
  717. endcase
  718. enddo
  719. return
  720. ************
  721. * ╙╥╥╞╫╓╢╬ *
  722. ************
  723. proc yyzd
  724. if zds<ozd0
  725. zds=zds+1
  726. zdmc=ozdmm(zds)
  727. else
  728. zds=1
  729. zdmc=ozdmm(zds)
  730. do xyyh
  731. endif
  732. return
  733. ************
  734. * ╫≤╥╞╫╓╢╬ *
  735. ************
  736. proc zyzd
  737. if zds>1
  738. zds=zds-1
  739. zdmc=ozdmm(zds)
  740. endif
  741. return
  742. ************
  743. * ╙╥╥╞┤░┐┌ *
  744. ************
  745. proc yyck
  746. ozdszd=ozdszd+1
  747. @ 3,ozdsdc+2 clear to 21,77
  748. ojl=recn()
  749. y0=y
  750. do dqy
  751. do xsdqy
  752. goto ojl
  753. y=y0
  754. do zyzd
  755. zdmc=ozdmm(zds)
  756. return
  757. ************
  758. * ╫≤╥╞┤░┐┌ *
  759. ************
  760. proc zyck
  761. ozdszd=ozdszd-1
  762. @ 3,ozdsdc+2 clear to 21,77
  763. y0=y
  764. ojl=recn()
  765. do dqy
  766. do xsdqy
  767. goto ojl
  768. y=y0
  769. do yyzd
  770. zdmc=ozdmm(zds)
  771. return
  772.  
  773. ************
  774. * ╧┬╖¡╥╗╥│ *
  775. ************
  776. proc xfyy
  777. goto sjl
  778. skip 16
  779. if eof()
  780. wybz=.t.
  781. skip -16
  782. endif
  783. sjl=recn()
  784. do xsdqy
  785. zdmc=ozdmm(zds)
  786. y=6
  787. do xsjlh
  788. return
  789.  
  790. ************
  791. * ╔╧╖¡╥╗╥│ *
  792. ************
  793. proc sfyy
  794. goto sjl
  795. skip -16
  796. if bof()
  797. goto top
  798. endif
  799. sjl=recn()
  800. do xsdqy
  801. y=6
  802. wybz=.f.
  803. zdmc=ozdmm(zds)
  804. do xsjlh
  805. ozj=.f.
  806. return
  807.  
  808. ************
  809. * ╧┬╥╞╥╗╨╨ *
  810. ************
  811. proc xyyh
  812. if y<21
  813. skip
  814. if eof()
  815. do zjjl
  816. if ozj
  817. y=y+1
  818. endif
  819. else
  820. y=y+1
  821. endif
  822. else
  823. skip
  824. if eof()
  825. do zjjl
  826. if ozj
  827. sjl=sjl+1
  828. do xsdh
  829. endif
  830. else
  831. sjl=sjl+1
  832. do xsdh
  833. endif
  834. endif
  835. do xsjlh
  836. return
  837. ************
  838. * ╔╧╥╞╥╗╨╨ *
  839. ************
  840. proc syyh
  841. if y>6
  842. y=y-1
  843. skip -1
  844. else
  845. skip -1
  846. if bof()
  847. goto top
  848. else
  849. sjl=recn()
  850. do xssh
  851. endif
  852. endif
  853. do xsjlh
  854. ozj=.f.
  855. return
  856. **************
  857. * ╧╘╩╛╡▒╟░╥│ *
  858. **************
  859. proc xsdqy
  860. priv ojl
  861. sele 1
  862. goto sjl
  863. y=6
  864. do while y<22
  865. do xsyh with y
  866. @ 24,0 say ''
  867. call hbk with str(y,2)+'027703A'
  868. sele 1
  869. if .not.eof()
  870. skip
  871. endif
  872. y=y+1
  873. enddo
  874. sele 1
  875. goto sjl
  876. zd0=1
  877. zdmc=ozdmm(zds)
  878. return
  879. ************
  880. * ╧╘╩╛╥╗╨╨ *
  881. ************
  882. proc xsyh
  883. para y
  884. priv zd0
  885. zd0=1
  886. @ y,2 say ''
  887. sele 1
  888. do while zd0<=ozd0
  889. ozd=ozdmm(zd0)
  890. @ y,ozdx(zd0) say &ozd pict '@z'
  891. zd0=zd0+1
  892. enddo
  893. return
  894. ************
  895. * ╧╘╩╛╡╫╨╨ *
  896. ************
  897. proc xsdh
  898. priv zd0
  899. call hbk with '06022177T'
  900. zd0=1
  901. @ 21,2 say ''
  902. sele 1
  903. do while zd0<=ozd0
  904. ozd=ozdmm(zd0)
  905. @ 21,ozdx(zd0) say &ozd pict '@z'
  906. yhx=str(col(),2)
  907. @ 24,0 say ''
  908. call hbk with '21'+yhx+'2103p'
  909. zd0=zd0+1
  910. enddo
  911. call hbk with '21772103p'
  912. call hbk with '21027703a'
  913. return
  914. ************
  915. * ╧╘╩╛╩╫╨╨ *
  916. ************
  917. proc xssh
  918. priv zd0
  919. call hbk with '06022177U'
  920. zd0=1
  921. @ 6,2 say ''
  922. sele 1
  923. do while zd0<=ozd0
  924. ozd=ozdmm(zd0)
  925. @ 6,ozdx(zd0) say &ozd pict '@Z'
  926. yhx=str(col(),2)
  927. @ 24,0 say ''
  928. call hbk with '06'+yhx+'0603p'
  929. zd0=zd0+1
  930. enddo
  931. call hbk with '06770603p'
  932. call hbk with '06027703a'
  933. return
  934. *************
  935. * ▓╦╡Ñ╧╘╩╛ *
  936. ************
  937. proc cdxs
  938. para cdx
  939. priv oi
  940. set color to w/1,,
  941. @ 1,1 clear to 1,78
  942. set color to 0/w,,
  943. @ 1,5 say space(cdx*10)
  944. @ 24,0 say ''
  945. call hbk with '010501'+str(cdx*10+4,2)+'f'
  946. oi=1
  947. do while oi<=cdx
  948. @ 1,oi*10-4 say tx(oi)
  949. @ 24,0 say ''
  950. call hbk with '01'+str(oi*10-5,2)+'01'+str(oi*10+4,2)+'D'
  951. oi=oi+1
  952. enddo
  953. return
  954. **************
  955. * ╧╘╩╛╝╟┬╝║┼ *
  956. **************
  957. proc xsjlh
  958. sele 1
  959. set color to w/1,,
  960. @ 1,9 say recn() pict '@b'
  961. @ 1,46 say iif(dele(),'╔╛│²','    ')
  962. return
  963.  
  964. ************
  965. * ╣ñ╛▀▓╦╡Ñ *
  966. ************
  967. proc gjcd
  968. set esca off
  969. priv tx(7),tx0(7),o,oi,ok,y0
  970. set safe off
  971. oi=1
  972. dime tx(7),tx0(7)
  973. tx(1)='╬─╝■╢Ñ▓┐'
  974. tx0(1)='╜½╝╟┬╝╥╞╡╜╡┌╥╗▒╩╝╟┬╝'
  975. tx(2)='╬─╝■╬▓▓┐'
  976. tx0(2)='╜½╝╟┬╝╥╞╡╜╫ε║≤╥╗▒╩╝╟┬╝'
  977. tx(3)='╓╕╢¿╝╟┬╝'
  978. tx0(3)='╜½╝╟┬╝╥╞╡╜╓╕╢¿╡─╝╟┬╝'
  979. tx(4)='╔╛│²╥╗╨╨'
  980. tx0(4)='╔╛│²╣Γ▒Ω╦∙╘┌╨╨╡─╝╟┬╝ú¿╓╗╩╟╫÷╔╛│²▒Ω╝╟ú¼═╦│÷╩▒╫÷╬∩└φ╔╛│²ú⌐'
  981. tx(5)='▓σ╚δ╥╗╨╨'
  982. tx0(5)='╘┌╣Γ▒Ω╦∙╘┌╨╨╡─╟░├µ▓σ╚δ╥╗▒╩╝╟┬╝'
  983. tx(6)='╫╓╢╬╦°╢¿'
  984. tx0(6)='╙├╗º┐╔╓╕╢¿╘┌╞┴─╗║ß╧≥╥╞╢»╩▒,╞┴─╗╫≤▒▀╣╠╢¿▓╗╢»╡─╫╓╢╬╕÷╩²'
  985. tx(7)='▒α╝¡╖╜╧≥'
  986. tx0(7)='╓╕╢¿╥╗╕÷╫╓╢╬╩Σ╚δ═Ω▒╧╩▒,╣Γ▒Ω╥╞╢»╡─╖╜╧≥ú¿╫▌╧≥╗≥║ß╧≥ú⌐'
  987. @ 24,79 SAY ''
  988. set color to 0/3,0/3,
  989. @ y,ozdx(zds)-1 say ' '
  990. @ y,ozdx(zds) get &zdmc
  991. @ y,col() say ' '
  992. clear get
  993. o=0
  994. do menu with 7
  995. @ 23,2 say 'PgUp/PgDn:╟░║≤╖¡╥│  ^PgUp/^PgDn:╫≤╙╥╖¡╥│  ^Home:╣ñ╛▀▓╦╡Ñ  Esc:═╦│÷'
  996. if o>0
  997. o=str(o,1)
  998. do p&o
  999. endif
  1000. set color to w/1,,
  1001. @ 1,1 say space(78)
  1002. call hbk with '00017801A'
  1003. call hbk with '02017801B'
  1004. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  1005. sele 1
  1006. @ 1,col() say recc() pict '@b'
  1007. do xsjlh
  1008. return
  1009.  
  1010. ************
  1011. * ╬─╝■╢Ñ▓┐ *
  1012. ************
  1013. proc p1
  1014. sele 1
  1015. goto top
  1016. sjl=recn()
  1017. set color to w/1,,
  1018. do xsdqy
  1019. y=6
  1020. return
  1021. ************
  1022. * ╬─╝■╬▓▓┐ *
  1023. ************
  1024. proc p2
  1025. sele 1
  1026. goto bott
  1027. skip -15
  1028. if bof()
  1029. goto top
  1030. endif
  1031. sjl=recn()
  1032. set color to w/1,,
  1033. do xsdqy
  1034. y=6
  1035. return
  1036. ************
  1037. * ▒α╝¡╖╜╧≥ *
  1038. ************
  1039. proc p7
  1040. objfx=iif(objfx,.f.,.t.)
  1041. return
  1042. ************
  1043. * ╓╕╢¿╝╟┬╝ *
  1044. ************
  1045. proc p3
  1046. set color to w/1,0/3,
  1047. @ 1,55 say '╓╕╢¿╝╟┬╝:' get sjl pict '9999999999' rang 1,recc()
  1048. read
  1049. set color to w/1,,
  1050. do xsdqy
  1051. y=6
  1052. return
  1053. ************
  1054. * ╔╛│²╥╗╨╨ *
  1055. ************
  1056. proc p4
  1057. sele 1
  1058. if dele()
  1059. reca
  1060. else
  1061. dele
  1062. endif
  1063. set color to w/1,,
  1064. @ 1,46 say iif(dele(),'╔╛│²','    ')
  1065. return
  1066. ************
  1067. * ▓σ╚δ╥╗╨╨ *
  1068. ************
  1069. proc p5
  1070. priv y0
  1071. sele 1
  1072. inse blan befo
  1073. set color to w/1,,
  1074. y0=y
  1075. do xsdqy
  1076. skip y0-6
  1077. y=y0
  1078. return
  1079. ************
  1080. * ╫╓╢╬╦°╢¿ *
  1081. ************
  1082. proc p6
  1083. set color to w/1,0/3,
  1084. @ 1,55 say '╦°╢¿╫╓╢╬╩²:' get ozdsd pict '9999999999'
  1085. read
  1086. if ozdsd<1.or.ozdsd>ozd0-1
  1087. ozdsd=0
  1088. endif
  1089. sele 9
  1090. loca for ozdmm(ozdsd+1)=╫╓╢╬├√
  1091. ozdszd=recn()
  1092. ozdsdc=ozdx(ozdsd+1)-3
  1093. return
  1094. **************
  1095. * ╝╞╦π╡▒╟░╥│ *
  1096. **************
  1097. proc dqy
  1098. sele 9
  1099. ozdzcd=ozdsdc
  1100. goto ozdszd
  1101. wzd=ozdszd
  1102. ozd0=ozdsd
  1103. set color to 3/1,,
  1104. do while wzd<=zhzd
  1105. if ozdzcd+╫╓╢╬│ñ╢╚+2<78
  1106. ozd0=ozd0+1
  1107. ozdx(ozd0)=ozdzcd+3
  1108. @3,ozdx(ozd0) say trim(sm1)
  1109. @4,ozdx(ozd0) say trim(sm2)
  1110. @5,ozdx(ozd0) say trim(sm3)
  1111. ozdzcd=ozdzcd+╫╓╢╬│ñ╢╚+2
  1112. ozdmm(ozd0)=╫╓╢╬├√
  1113. wzd=recn()
  1114. @ 24,0 say ''
  1115. if ozdzcd<76
  1116. call hbk with '03'+str(ozdzcd+1,2)+'2103p'
  1117. endif
  1118. else
  1119. exit
  1120. endif
  1121. skip
  1122. if eof()
  1123. exit
  1124. endif
  1125. enddo
  1126. call hbk with '03012103p'
  1127. call hbk with '03772103p'
  1128. call hbk with '05027703a'
  1129. call hbk with '03027703b'
  1130. call hbk with '21027703a'
  1131. set color to w/1,,
  1132. return
  1133. ************
  1134. * ╝╞╦π╦°╢¿ *
  1135. ************
  1136. proc dqysd
  1137. priv sd
  1138. set color to 3/1,,
  1139. sd=1
  1140. sele 9
  1141. do while sd<=ozdsd
  1142. loca for ozdmm(sd)=trim(╫╓╢╬├√)
  1143. @3,ozdx(sd) say trim(sm1)
  1144. @4,ozdx(sd) say trim(sm2)
  1145. @5,ozdx(sd) say trim(sm3)
  1146. @ 24,0 say ''
  1147. call hbk with '03'+str(ozdx(sd+1)-2,2)+'2103p'
  1148. sd=sd+1
  1149. enddo
  1150. return
  1151. ************
  1152. * ╫╖╝╙╝╟┬╝ *
  1153. ************
  1154. proc zjjl
  1155. priv ok,olsbl(128)
  1156. dime OLSBL(128)
  1157. sele 1
  1158. if ofz
  1159. goto bott
  1160. scat to olsbl
  1161. endif
  1162. if .not.ozj
  1163. @ 1,56 say '╩╟╖±╫╖╝╙╨┬╝╟┬╝?(Y/N)'
  1164. ok=abs(inkey(0))
  1165. @ 1,56 say '                    '
  1166. ozj=chr(ok)$'Yy'
  1167. endif
  1168. if ozj
  1169. appe blan
  1170. ╝╞╩²╞≈=recn()
  1171. if ofz
  1172. gath from olsbl
  1173. endif
  1174. else
  1175. goto bott
  1176. *if y<21
  1177. *y=y-1
  1178. *endif
  1179. endif
  1180. sele 1
  1181. @ 1,29 say recc() pict '@b'
  1182. return
  1183. ************
  1184. * ═¿╙├▓╦╡Ñ *
  1185. ************
  1186. proc menu
  1187. para cdx
  1188. do cdxs with cdx
  1189. oi=1
  1190. do while .t.
  1191. set color to w+/3,,
  1192. @ 1,oi*10-5 say ' '+tx(oi)+' '
  1193. set color to 6+/1,,
  1194. @ 23,1 say space(78)
  1195. @ 23,(80-len(tx0(oi)))/2 say tx0(oi)
  1196. @ 24,0 say ''
  1197. call hbk with '01'+str(oi*10-5,2)+'01'+str(oi*10+4,2)+'C'
  1198. OK=INKEY(0)
  1199. set color to 0/w,,
  1200. @ 1,oi*10-5 say ' '+tx(oi)+' '
  1201. @ 24,0 say ''
  1202. call hbk with '01'+str(oi*10-5,2)+'01'+str(oi*10+4,2)+'D'
  1203. do case
  1204. case ok=19.or.ok=5
  1205. oi=iif(oi>1,oi-1,cdx)
  1206. case ok=4.or.ok=24
  1207. oi=iif(oi<cdx,oi+1,1)
  1208. case ok=13
  1209. o=oi
  1210. exit
  1211. case ok=27
  1212. o=0
  1213. exit
  1214. endcase
  1215. enddo
  1216. set color to w/1,,
  1217. @ 1,1 say space(78)
  1218. call hbk with '00017801A'
  1219. call hbk with '02017801B'
  1220. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  1221. sele 1
  1222. @ 1,col() say recc() pict '@b'
  1223. do xsjlh
  1224. set color to w/1,,
  1225. @ 23,1 say space(78)
  1226. @ 23,10 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ ^PgDn:╗╗╞┴'
  1227. set color to 7/1,1/7,
  1228. return
  1229. **************
  1230. * ╬¿╥╗╨╘╝∞▓Θ *
  1231. **************
  1232. proc wyxjc
  1233. para ojczd
  1234. priv ol
  1235. sele 8
  1236. seek ojczd
  1237. if found().and.recc()>0
  1238. owy=.f.
  1239. sele 1
  1240. return
  1241. endif
  1242. sele 1
  1243. ol=recn()
  1244. goto top
  1245. loca for &owyzd=ojczd
  1246. if recn()=ol
  1247. cont
  1248. else
  1249. owy=.f.
  1250. goto ol
  1251. return
  1252. endif
  1253. if found()
  1254. owy=.f.
  1255. goto ol
  1256. return
  1257. endif
  1258. owy=.t.
  1259. goto ol
  1260. return
  1261. ********************
  1262. * ╧≥╟░╥╞╢»╥╗╕÷╫╓╢╬ *
  1263. ********************
  1264. proc xqyd
  1265. if recn()>oszd
  1266. skip -1
  1267. else
  1268. do xqyp
  1269. endif
  1270. return
  1271. ********************
  1272. * ╧≥║≤╥╞╢»╥╗╕÷╫╓╢╬ *
  1273. ********************
  1274. proc xhyd
  1275. if recn()<omzd
  1276. skip 1
  1277. else
  1278. do xhyp
  1279. endif
  1280. return
  1281. ********************
  1282. * ╧≥╟░╖¡╥╗╞┴       *
  1283. ********************
  1284. proc xqyp
  1285. if oym>1
  1286. oym=oym-1
  1287. oym0=ltrim(str(oym,2))
  1288. do pg&oym0
  1289. sele 1
  1290. do xs
  1291. else
  1292. do xqyj
  1293. endif
  1294. return
  1295. ********************
  1296. * ╧≥║≤╖¡╥╗╞┴       *
  1297. ********************
  1298. proc xhyp
  1299. if oym<ozym
  1300. oym=oym+1
  1301. oym0=ltrim(str(oym,2))
  1302. do pg&oym0
  1303. sele 1
  1304. do xs
  1305. else
  1306. oym=1
  1307. oym0='1'
  1308. do pg&oym0
  1309. sele 1
  1310. skip 1
  1311. if eof()
  1312. do zj
  1313. endif
  1314. do xs
  1315. endif
  1316. return
  1317. ****************
  1318. * ╧≥╟░╥╗▒╩╝╟┬╝ *
  1319. ****************
  1320. proc xqyj
  1321. oj=.f.
  1322. sele 1
  1323. if .not.bof()
  1324. skip -1
  1325. endif
  1326. if bof()
  1327. goto top
  1328. endif
  1329. do xs
  1330. return
  1331. ****************
  1332. * ╧≥║≤╥╗▒╩╝╟┬╝ *
  1333. ****************
  1334. proc xhyj
  1335. sele 1
  1336. if .not.eof()
  1337. skip
  1338. endif
  1339. if eof()
  1340. do zj
  1341. endif
  1342. do xs
  1343. return
  1344.