home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 1B / DATAFILE_PDCD1B.iso / _pocketbk / pocketbook / 004 / charset_zi / CHARSET.OPL next >
Text File  |  1992-05-18  |  7KB  |  366 lines

  1. REM +-----------------------+
  2. REM Author                 Jon Simpson   
  3. REM Title      ASCII Character Set
  4. REM Date              24th April 1992
  5. REM Version                            1.01
  6. REM @CIX                        jsimpsonb
  7. REM +-----------------------+
  8.  
  9. PROC CharSet%:
  10.  
  11. GLOBAL hk$(14), route$(14,6)
  12.  
  13. GLOBAL maxrow%, strow%, maxcol%, maxchr%
  14. GLOBAL xorigin%, yorigin%, wspace%, hspace%
  15. GLOBAL xhdr%, yhdr%, hdrtyp%, lptop%, chct%
  16. GLOBAL cposx%, cposy%
  17. LOCAL  lc%, ky%, mkey%
  18.  
  19. LOADM "Utils"
  20. gTMODE 3
  21.  
  22. Header:
  23. InitVals:
  24. mkey%=290
  25. CLS
  26.  
  27. gAT xorigin%-1, yorigin%-yhdr%-1
  28. gBOX gWIDTH-xorigin%-6, gHEIGHT-(2*yhdr%)+1
  29. gUPDATE OFF
  30. DecHdr:
  31. AddRowD:
  32. HighCur:
  33. gUPDATE
  34.  
  35. WHILE 1<2
  36.   ky%=GET
  37.   IF ky%=mkey%
  38.    ky%=GetMenu%:
  39.   ENDIF
  40.   
  41.   IF ky%
  42.    lc% = LOC( hk$, CHR$( ky% ))
  43.    IF lc%
  44.     @(route$( lc% )):
  45.     gUPDATE
  46.    ENDIF
  47.   ENDIF
  48. ENDWH
  49.  
  50. ENDP
  51.  
  52. PROC Header:
  53.  AT 15,3
  54.  PRINT "ASCII TABLE"
  55.  AddAuth:
  56. ENDP
  57.  
  58. PROC GetMenu%:
  59.  mINIT
  60.  mCARD "Control","Hexidecimal",%H,"Decimal",%D,"Expand",%E,"Exit",%X
  61.  RETURN MENU
  62. ENDP
  63.  
  64. PROC InitVals:
  65.  maxrow%=7    : strow%=0        : maxcol%=16 
  66.  xorigin%=21 : yorigin%=18
  67.  wspace%=13  : hspace%=9
  68.  xhdr%=0        : yhdr%=8
  69.  hdrtyp%=0    : maxchr%=880
  70.  cposx%=0      : cposy%=0
  71.  
  72.  chct%=(maxrow%-1) * maxcol%
  73.  lptop%=maxchr% - chct%
  74.  
  75.  hk$ = ""
  76.  hk$ = hk$+"D" : route$( 1 ) = "DecHdr"
  77.  hk$ = hk$+"H" : route$( 2 ) = "HexHdr"
  78.  hk$ = hk$+"X" : route$( 3 ) = "Exit"
  79.  hk$ = hk$+CHR$( 256 ) : route$( 4 ) = "CurUp"
  80.  hk$ = hk$+CHR$( 257 ) : route$( 5 ) = "CurDwn"
  81.  hk$ = hk$+CHR$( 259 ) : route$( 6 ) = "CurLft"
  82.  hk$ = hk$+CHR$( 258 ) : route$( 7 ) = "CurRht"
  83.  hk$ = hk$+CHR$( 260 ) : route$( 8 ) = "CurTop"
  84.  hk$ = hk$+CHR$( 261 ) : route$( 9 ) = "CurBot"
  85.  hk$ = hk$+CHR$( 262 ) : route$( 10) = "CurStr"
  86.  hk$ = hk$+CHR$( 263 ) : route$( 11) = "CurEnd"
  87.  hk$ = hk$+CHR$( 291 ) : route$( 12) = "Help"
  88.  hk$ = hk$+" " : route$( 13 ) = "ShowVl"
  89.  hk$ = hk$+"E" : route$( 14 ) = "Expand"
  90.  
  91. ENDP
  92.  
  93. PROC HighCur:
  94.    gSTYLE 4
  95.    DeHighC:
  96.    ShowVl:
  97.    gSTYLE 0
  98. ENDP
  99.  
  100. PROC DeHighC:
  101.    gAT xorigin%+1+(cposx%*wspace%),yorigin%+(cposy%*hspace%)
  102.    gPRINT CHR$( strow%+(cposy%*maxcol%)+cposx%)
  103. ENDP
  104.  
  105. PROC AddRowD:
  106. LOCAL lc%,lc2%
  107.  
  108.  lc2%=0
  109.  WHILE lc2%<maxrow%
  110.   lc%=0
  111.   WHILE lc%<maxcol%  
  112.    gAT xorigin%+1+(lc%*wspace%),yorigin%+(lc2%*hspace%)
  113.    gPRINT CHR$( strow%+(lc2%*maxcol%)+lc%)+"  "
  114.    lc% = Inc%:( lc% )
  115.   ENDWH
  116.   lc2% = Inc%:( lc2% )
  117.  ENDWH
  118. ENDP
  119.  
  120. PROC ClrHdr:
  121. LOCAL lc%
  122.  gAT xhdr%,yhdr%
  123.  gPRINT REPT$(" ",gWIDTH/gTWIDTH(" "))
  124.  ClrHdrD:
  125. ENDP
  126.  
  127. PROC ClrHdrD:
  128. LOCAL lc%
  129.  
  130.  lc%=0
  131.  WHILE lc%<maxrow%
  132.   gAT xhdr%,yorigin%+(lc%*hspace%)
  133.   gPRINT "      "
  134.   lc% = Inc%:( lc% ) 
  135.  ENDWH
  136. ENDP
  137.  
  138. PROC NewRows:
  139.  ClrHdrD:
  140.  IF hdrtyp%=0
  141.   RowHdrD:
  142.  ELSE
  143.   RowHdrH:
  144.  ENDIF
  145.  AddRowD:
  146. ENDP
  147.  
  148. PROC DecHdr:
  149. LOCAL lc%
  150.  
  151.  ClrHdr:
  152.  lc%=0
  153.  WHILE lc%<maxcol%
  154.   gAT xorigin%+(lc%*wspace%),yhdr%
  155.   gPRINT lc%
  156.   lc%= Inc%:( lc% )
  157.  ENDWH
  158.  RowHdrD:
  159.  hdrtyp%=0
  160. ENDP
  161.  
  162. PROC RowHdrD:
  163. LOCAL lc%
  164.  
  165.  lc%=0
  166.  WHILE lc%<maxrow%
  167.   gAT xhdr%,yorigin%+(lc%*hspace%)
  168.   gPRINT strow%+(lc%*maxcol%)
  169.   lc% = Inc%:( lc% ) 
  170.  ENDWH
  171. ENDP
  172.  
  173.  
  174. PROC HexHdr:
  175. LOCAL lc%
  176.  
  177.  ClrHdr: 
  178.  lc%=0
  179.  WHILE lc%<maxcol%
  180.   gAT xorigin%+(lc%*wspace%),yhdr%
  181.   gPRINT HEX$(lc%)
  182.   lc%= Inc%:( lc% )
  183.  ENDWH
  184.  RowHdrH:
  185.  hdrtyp%=1
  186. ENDP
  187.  
  188. PROC RowHdrH:
  189. LOCAL lc%
  190.  
  191. lc%=0
  192. WHILE lc%<maxrow%
  193.  gAT xhdr%,yorigin%+(lc%*hspace%)
  194.  gPRINT HEX$(strow%+(lc%*maxcol%))
  195.  lc% = Inc%:( lc% )
  196. ENDWH
  197. ENDP
  198.  
  199. PROC Exit:
  200.  STOP
  201. ENDP
  202.  
  203. PROC CurUp:
  204.  DeHighC:
  205.  IF cposy% > 0 
  206.   cposy% = Dec%:( cposy% )
  207.  ELSE
  208.   IF strow% > chct%
  209.    strow%=strow% - chct%
  210.   ELSE
  211.    IF strow% > 0
  212.     strow%=strow%-maxcol%
  213.    ELSE
  214.     strow%=lptop%     : REM wrap to last page
  215.    ENDIF
  216.   ENDIF
  217.   NewRows:
  218.  ENDIF
  219.  HighCur:
  220. ENDP
  221.  
  222. PROC CurDwn:
  223.  DeHighC:
  224.  IF cposy% < maxrow%-1
  225.   cposy% = Inc%:( cposy% )
  226.  ELSE
  227.   IF strow% < lptop%
  228.    strow%=strow%+chct%
  229.   ELSE
  230.    strow%=0
  231.   ENDIF
  232.   NewRows:
  233.  ENDIF
  234.  HighCur:
  235. ENDP
  236.  
  237. PROC CurLft:
  238.  DeHighC:
  239.  IF cposx% > 0
  240.   cposx%=Dec%:( cposx% )
  241.  ENDIF
  242.  HighCur:
  243. ENDP
  244.  
  245. PROC CurRht:
  246.  DeHighC:
  247.  IF cposx% < maxcol%-1
  248.   cposx%=Inc%:( cposx% )
  249.  ENDIF
  250.  HighCur:
  251. ENDP
  252.  
  253. PROC CurTop:
  254.  DeHighC:
  255.  cposx%=0 : cposy%=0
  256.  strow% =0
  257.  NewRows:
  258.  HighCur:
  259. ENDP
  260.  
  261. PROC CurBot:
  262.  DeHighC:
  263.  cposx%=0 : cposy%=maxrow%-1
  264.  strow% = lptop%
  265.  NewRows:
  266.  HighCur:
  267. ENDP
  268.  
  269. PROC CurStr:
  270.  DeHighC:
  271.  cposx%=0
  272.  HighCur:
  273. ENDP
  274.  
  275. PROC CurEnd:
  276.  DeHighC:
  277.  cposx%=maxcol%-1
  278.  HighCur:
  279. ENDP
  280.  
  281. PROC Help:
  282. LOCAL temp%
  283.  dINIT "Control Keys"
  284.  dTEXT "",CHR$(24)+"  Line/page up       "+CHR$(25)+"  Line/page down ",2
  285.  dTEXT "",CHR$(27)+"  Character left    "+CHR$(26)+"  Character right",2
  286.  dTEXT ""," --- * ---",2
  287.  dTEXT "",CHR$(770)+CHR$(24)+" First page          "+ CHR$(770)+CHR$(25)+" Last page          ",2
  288.  dTEXT "",CHR$(770)+CHR$(27)+" Left column        "+ CHR$(770)+CHR$(26)+" Right column     ",2
  289.  dTEXT "","[SPACE]  Repeats last information",2
  290.  temp%=DIALOG
  291. ENDP
  292.  
  293. PROC ShowVl:
  294. LOCAL num%
  295.   num%=strow%+cposx%+(cposy%*maxcol%)
  296.   GIPRINT "Dec "+GEN$( num%,3)+" Hex "+HEX$( num% ) + " Chr "  + CHR$( num% )
  297. ENDP
  298.  
  299. PROC Expand:
  300.  
  301. LOCAL skey$(4,4), ckey$(10,5),chk$(10)
  302. LOCAL windid%, ww%, wh%, wx%, wy%
  303. LOCAL sskey%
  304. LOCAL k%,m%,ty%,sk%,lc%
  305.  
  306. skey$(1)="Shft" :  skey$(2)="Ctrl"
  307. skey$(3)="Psin" : skey$(4)="Caps"
  308. chk$=""
  309. chk$=chk$+CHR$( 27 ) : ckey$( 1 )="Esc"
  310. chk$=chk$+CHR$(  9  ) : ckey$( 2 )="Tab"
  311. chk$=chk$+CHR$(290) : ckey$( 3 )="Menu"
  312. chk$=chk$+CHR$(  8  ) : ckey$( 4 )="Del"
  313. chk$=chk$+CHR$( 13 ) : ckey$( 5 )="Enter"
  314. chk$=chk$+CHR$(256) : ckey$( 6 )="CurUp"
  315. chk$=chk$+CHR$(257) : ckey$( 7 )="CurDn"
  316. chk$=chk$+CHR$(259) : ckey$( 8 )="CurLf"
  317. chk$=chk$+CHR$(258) : ckey$( 9 )="CurRg"
  318. chk$=chk$+CHR$(291) : ckey$(10)="Help"
  319.  
  320. ww%=gWIDTH
  321. wh%=14
  322. wx%=0
  323. wy%= gHEIGHT-wh%
  324. ty%=10
  325. sskey%=(ww%/2)+20
  326.  
  327. windid%=gCREATE( wx%, wy%, ww%, wh% ,1 )
  328. gUSE windid%
  329. gORDER windid%,1
  330. gTMODE 3
  331. gBORDER 1
  332.  
  333. gAT 2,ty%
  334. gPRINT "Ky "
  335. WHILE k%<>632
  336.  k%=GET : m%=KMOD
  337.  IF k%<>0
  338.   gAT 17,ty%
  339.   gPRINT CHR$( k% );" ";k%;"Dec ";HEX$( k% );"Hex         "
  340.   lc% = LOC( chk$,CHR$( k% ))
  341.   gAT 105,ty% 
  342.   gPRINT REPT$( " ",12)
  343.   gAT 105,ty% 
  344.   IF lc% <> 0
  345.    gPRINT ckey$( lc% )
  346.   ENDIF
  347.  ENDIF
  348.  sk%=2 : lc%=1
  349.  WHILE sk% < 32
  350.   IF m% AND sk%
  351.    gSTYLE 4
  352.   ELSE
  353.    gSTYLE 0
  354.   ENDIF
  355.   gAT sskey%+((lc%-1)*4*gTWIDTH("W")),ty%
  356.   gPRINT skey$( lc% ) 
  357.   sk% = sk% * 2
  358.   lc% = Inc%:( lc% )
  359.  ENDWH
  360.  gSTYLE 0
  361. ENDWH
  362. gCLOSE windid%
  363.  
  364. ENDP
  365.  
  366.