Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ( Š®­á®«ì­ë© ¢¢®¤-¢ë¢®¤.
  2. )
  3. : NMNM 0 IF THEN ;
  4. : ACCEPT0 ( c-addr +n1 -- +n2 ) \ 94
  5. \ ‚¢¥á⨠áâப㠬 ªá¨¬ «ì­®© ¤«¨­ë ¤® +n1 ᨬ¢®«®¢.
  6. \ ˆáª«îç¨â¥«ì­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ +n1 0 ¨«¨ ¡®«ìè¥ 32767.
  7. \ Žâ®¡à ¦ âì ᨬ¢®«ë ¯® ¬¥à¥ ¢¢®¤ .
  8. \ ‚¢®¤ ¯à¥à뢠¥âáï, ª®£¤  ¯®«ã祭 ᨬ¢®« "ª®­¥æ áâப¨".
  9. \ ¨ç¥£® ­¥ ¤®¡ ¢«ï¥âáï ¢ áâபã.
  10. \ +n2 - ¤«¨­  áâப¨, § ¯¨á ­­®© ¯®  ¤à¥áã c-addr.
  11.    OVER + 1- OVER      \ SA EA A
  12.  NMNM
  13.    BEGIN KEY          \ SA EA A C
  14. \ ." {"   DUP H. ." }"
  15.      DUP 10 = OVER 13 = OR 0=
  16.    WHILE
  17.        DUP 0x1B = IF  DROP DUP C@ EMIT   ELSE
  18.        DUP   8  = IF  EMIT BL EMIT 8 EMIT
  19.                      2- >R OVER 1- R> UMAX ELSE
  20.        DUP   9  = IF  DROP DUP 8 BLANK
  21.                      >R OVER R>    \ SA EA SA A
  22.                      SWAP OVER -   \ SA EA SA A-SA
  23.                      8 / 1+ 8 * +  ELSE    DUP EMIT  OVER C!
  24.                 THEN THEN
  25.                 THEN 1+ OVER UMIN \ SA EA A
  26.    REPEAT \ HEX CR DEPTH .SN
  27.                      \ SA EA A C
  28.    DROP NIP - NEGATE  ;
  29.  
  30. VECT ACCEPT
  31.  
  32. ' ACCEPT0 TO ACCEPT
  33.  
  34. : TYPE_M ( c-addr1 u --- )
  35. \ Output the string starting at c-addr and length u to the terminal.
  36.   OVER + SWAP BEGIN 2DUP - WHILE DUP C@ EMIT_N CHAR+ REPEAT
  37. CC_LINES
  38. 2DROP
  39.  
  40. ;
  41.  
  42. : _TYPE ( c-addr1 u --- )
  43. \ Output the string starting at c-addr and length u to the terminal.
  44. 2DUP SCR_BUF AT-XY? 80 * + +  SWAP CMOVE
  45. SCR_TYPE
  46. ;
  47.  
  48. \ : ZTYPE ( ADDR -- )
  49. \  DUP >R LZTYPE DROP RDROP ;
  50.  
  51. : _CR ( -- ) \ 94
  52. \ ¥à¥¢®¤ áâப¨.
  53. 13 EMIT
  54. ;
  55.  
  56. VECT CR ' _CR TO CR
  57.  
  58. : _EMIT ( x -- ) \ 94
  59. \ …᫨ x - ¨§®¡à ¦ ¥¬ë© ᨬ¢®«, ¢ë¢¥á⨠¥£® ­  ¤¨á¯«¥©.
  60. \  DUP SCR_BUF AT-XY? 80 * + + C!
  61.  DUP 0xD = IF DROP SCR_CR EXIT THEN
  62.  DUP 0x8 = IF DROP 0x00800000
  63.   &AT-XY        W@ 0xD * 0x15 + 16 LSHIFT 0xB OR
  64.   &AT-XY 2+     W@      0x6 * 16 LSHIFT 6       OR
  65.    13 SYS4 DROP
  66.   AT-XY? >R 1- R> AT-XY
  67.  EXIT THEN
  68.   >R RP@ 1 _TYPE RDROP
  69. ;
  70.  
  71.  
  72. : SWITCH_CHAR ( c1 -- c2 )
  73.   DUP   [CHAR] a    [CHAR] z 1+  WITHIN
  74.   OVER  [CHAR] A    [CHAR] Z 1+  WITHIN OR
  75.   IF   32 XOR  THEN
  76. ;
  77.  
  78.  
  79. : KEY_M DR_CUR BEGIN 0 ?KEY UNTIL CL_CUR SWITCH_CHAR ;
  80.  
  81. : _KEY
  82.   CORSOR_DROW
  83.   BEGIN KEY? UNTIL &KEY C@ &KEY 0! SWITCH_CHAR
  84.  ;
  85.  
  86. : PAGE
  87.  draw_window
  88.  SCR_BUF SCR_WIDTH SCR_HEIGHT * BLANK
  89.  0 0 AT-XY
  90.  DRAW_LINS
  91. ;
  92.