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

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