> 上善若水===> Forth ===>無形,無不形
> 這是 小P的 第一支 Forth Code
> 不知道如何???
> 看起來是不是很像C (因慣C)
> 其實還可以改進,
> 如 靜態 及 動態 的 正確率,錯誤率,終止速度及瞬間速率...等等.
> 有一問...
> eForth for x86 , 如何突破64kB space的限制呢???
> <P.S.>
> 小P的主力不在PC_base 而是在 single_chip_base (uCOM 微控制器)
> On 9月14日, 上午10時49分, 小P <p...@cht.com.tw> wrote:
> > 最近比較忙!
> > 所以最終回~
> > Mini_TypeWriter_2.2 最終開發!!!
> > ==>TypeWriter 鍵盤輸入打字練習
> > 如附加檔案 : Mini_TypeWriter_2_2.zip (內容如下)
> > 檔案已上傳 : 符式協會 首頁 最下方的檔案區
> > (一) 已經完成Compile ,可以直接使用該可執行檔
> > 說明檔 : Mini_TypeWriter 2.0使用說明書.doc
> > 執行檔 : TYPER.EXE
> > (二) 未尚完成Compile , 留給使用者自行 Make file執行檔
> > 說明檔 : ReadMe.txt (Show you How_To Make file 執行檔)
> > 源始碼 : TYPER.txt (Open Source_Code by 小P Coding )
> > eForth : 86EF202.EXE ( C. H. Ting丁陳漢蓀 博士)
> > (三) (嵌入式 Forth系統C. H. Ting丁陳漢蓀 博士)
> > 以下內容全部節錄摘要自丁陳漢蓀 博士 之【作品集】 易符學苑
> > 先看=>內容簡短 : eforth_符式語言摘要簡介.doc
> > 後看=>內容詳細 : 嵌入式 Forth系統.doc
> > Mini_TypeWriter2.2 => Open Source Code (公開源碼)
> > ( =================================================================== )
> > ( = The Top of <<< Mini_TypeWriter ver2.2 >>> Program in eForth
> > = )
> > ( =================================================================== )
> > CR CR CR
> > .( |
> > =========================================================================== -|
> > | The first APP by PDH with eForth just for
> > practice |
> > | Name of APP : <<< Mini_TypeWriter ver2.2>>> |
> > | Up_Date : '09 08 31 in Office of CHT
> > [ver_2.2] |
> > | Up_Date : '09 08 07 in My STUDY_ROOM
> > [ver_2.0] |
> > | First_Date : '09 08 04 in Office of CHT
> > [ver_1.0] |
> > | Programer : PDH => Perng Der-Huang lives in Taiwan & works
> > for CHT |
> > | My Title [LP] : [LP] => Little PDH <<< Little Perng Der-Huang>>> |
> > |
> > =========================================================================== -| )
> > CR CR CR
> > : DELAY_TIME ( -- ) ; ( 100000 FOR 10000 FOR NEXT NEXT ; )
> > DELAY_TIME DELAY_TIME DELAY_TIME
> > CR CR
> > .( COMPILING THE SOURCE CODE OF FORTH AP FOR TypeWriter version_2.2 )
> > CR
> > DELAY_TIME
> > CR
> > .( START......... )
> > CR CR
> > ( =================================================================== )
> > ( = The Declare & Define of constants <<< Mini_TypeWriter ver2.2>>>= )
> > ( =================================================================== )
> > : CHAR ( -- c ) BL PARSE DROP C@ ;
> > : CTRL ( -- c ) CHAR $001F AND ;
> > : CHARS ( +n c -- ) SWAP 0 MAX FOR AFT DUP EMIT THEN NEXT DROP ;
> > : BEEP ( -- ) 7 EMIT ;
> > : _HOME ( -- c ) 18176 ;
> > : _ESC ( -- c ) 27 ;
> > : TUREE ( -- ) -1 ;
> > : FALSE ( -- ) 0 ;
> > : [_ ( -- ) [ CHAR [ ] LITERAL EMIT SPACE ;
> > : _] ( -- ) [ CHAR ] ] LITERAL SPACE EMIT ;
> > : ?_ ( -- ) [ CHAR < ] LITERAL EMIT SPACE ;
> > : _? ( -- ) [ CHAR > ] LITERAL SPACE EMIT ;
> > : _A ( -- c ) [ CHAR A ] LITERAL ;
> > : _Y ( -- c ) [ CHAR Y ] LITERAL ;
> > : _N ( -- c ) [ CHAR N ] LITERAL ;
> > : _^ ( -- c ) [ CHAR ^ ] LITERAL ;
> > : _* ( -- c ) [ CHAR * ] LITERAL ;
> > ( =================================================================== )
> > ( = The Declare & Define of Function_key < Mini_TypeWriter ver2.2 >
> > = )
> > ( =================================================================== )
> > : _F1 ( -- C ) 15104 ;
> > : _F2 ( -- C ) 15360 ;
> > : _F3 ( -- C ) 15616 ;
> > : _F4 ( -- C ) 15872 ;
> > : _F5 ( -- C ) 16128 ;
> > : _F6 ( -- C ) 16384 ;
> > : _F7 ( -- C ) 16640 ;
> > : _F8 ( -- C ) 16896 ;
> > : _F9 ( -- C ) 17152 ;
> > : _F10 ( -- C ) 17408 ;
> > DELAY_TIME
> > CR CR
> > .( COMPILING THE SOURCE CODE ........... CONSTANTS...OK! )
> > CR CR
> > ( =================================================================== )
> > ( = The Declare & Define of Variables < Mini_TypeWriter ver2.2 >
> > = )
> > ( =================================================================== )
> > ( VARIABLE COUNTER <== Now Not To Use )
> > ( VARIABLE ERROR <== Now Not To Use )
> > VARIABLE NUMBER
> > VARIABLE NUMBER_TEMP
> > CREATE NUMBER_TABLE 94 ALLOT
> > VARIABLE NUMBER_TABLE_HEAD NUMBER_TABLE
> > NUMBER_TABLE_HEAD !
> > VARIABLE NUMBER_TABLE_TAIL NUMBER_TABLE 94 +
> > NUMBER_TABLE_TAIL !
> > VARIABLE NUMBER_TABLE_INDEX NUMBER_TABLE
> > NUMBER_TABLE_INDEX !
> > CREATE HAND_NUMBER_TABLE 47 ALLOT
> > HAND_NUMBER_TABLE
> > ( LEFT_HAND_NUMBER_TABLE )
> > CHAR 1 OVER C! 1+
> > CHAR Q OVER C! 1+
> > CHAR A OVER C! 1+
> > CHAR Z OVER C! 1+
> > CHAR 2 OVER C! 1+
> > CHAR W OVER C! 1+
> > CHAR S OVER C! 1+
> > CHAR X OVER C! 1+
> > CHAR 3 OVER C! 1+
> > CHAR E OVER C! 1+
> > CHAR D OVER C! 1+
> > CHAR C OVER C! 1+
> > CHAR 4 OVER C! 1+
> > CHAR R OVER C! 1+
> > CHAR F OVER C! 1+
> > CHAR V OVER C! 1+
> > CHAR 5 OVER C! 1+
> > CHAR T OVER C! 1+
> > CHAR G OVER C! 1+
> > CHAR B OVER C! 1+
> > ( ------------------------------------------ )
> > ( LEFT_HAND_NUMBER_TABLE )
> > CHAR 6 OVER C! 1+
> > CHAR Y OVER C! 1+
> > CHAR H OVER C! 1+
> > CHAR N OVER C! 1+
> > CHAR 7 OVER C! 1+
> > CHAR U OVER C! 1+
> > CHAR J OVER C! 1+
> > CHAR M OVER C! 1+
> > CHAR 8 OVER C! 1+
> > CHAR I OVER C! 1+
> > CHAR K OVER C! 1+
> > CHAR , OVER C! 1+
> > CHAR 9 OVER C! 1+
> > CHAR O OVER C! 1+
> > CHAR L OVER C! 1+
> > CHAR . OVER C! 1+
> > CHAR 0 OVER C! 1+
> > CHAR P OVER C! 1+
> > CHAR ; OVER C! 1+
> > CHAR / OVER C! 1+
> > CHAR - OVER C! 1+
> > CHAR [ OVER C! 1+
> > CHAR ' OVER C! 1+
> > CHAR = OVER C! 1+
> > CHAR ] OVER C! 1+
> > CHAR \ OVER C! 1+
> > BL OVER C! DROP
> > VARIABLE SLIDE_WINDOWN_RANGE
> > VARIABLE FLAG_ERROR
> > VARIABLE FLAG_MAIN_SCREEN
> > VARIABLE FILTER_SELECTOR
> > VARIABLE FLAG_HAND_CHANGE
> > VARIABLE RND ( seed )
> > HERE RND ! ( initialize seed <== FIRST VALUE FOR RND FORM
> > HERE[CP] )
> > DELAY_TIME
> > CR CR
> > .( COMPILING THE SOURCE CODE ........... VARIABLES...OK! )
> > CR CR
> > ( =================================================================== )
> > ( = The Declare & Define of Strings < Mini_TypeWriter ver2.2 >
> > = )
> > ( =================================================================== )
> > : SHOW_AHEAD_STRING ( -- ) SPACE ." ===> " ;
> > : SHOW_RIGHT_STRING ( -- )
> > SPACE
> > ." <=== -VVV-RIGHT-VVV- ((( = You are so Good !!! = )))"
> > ;
> > : SHOW_ERROR_MARK ( -- )
> > CR
> > SPACE
> > 3 _* CHARS
> > 10 SPACES
> > 3 _^ CHARS
> > ;
> > : SHOW_ERROR_STRING ( -- )
> > SPACE
> > ." <=== -!!!-ERROR-!!!- <<< = Please Key_In Again = >>> "
> > SHOW_ERROR_MARK
> > ;
> > : SHOW_STAR_BAR ( -- )
> > CR CR CR
> > CR 7 SPACES ." ==============<<<<<< PDH ==> Perng Der-Huang>>>>>>==============="
> > CR 7
> > SPACES ." ! !"
> > CR 7 SPACES ." ! !!! JUST GO AGAIN !!! Coding by LP
> > ( Little PDH ) !"
> > CR 7
> > SPACES ." ! !"
> > CR 7 SPACES ." =====<<<<<< Now , LP lives in Taiwan & works for CHT>>>>>>======="
> > CR CR CR
> > ;
> > DELAY_TIME
> > CR CR
> > .( COMPILING THE SOURCE CODE ........... STRINGS...OK! )
> > CR CR
> > ( =================================================================== )
> > ( = The Declare & Define of Tool_Words < Mini_TypeWriter ver2.2 >
> > = )
> > ( =================================================================== )
> > : RANDOM ( -- n, a random number within 0 to 65536 )
> > RND @ 31421 * ( RND*31421 )
> > 6927 + ( RND*31421+6926 )
> > DUP RND !
> > ;
> > : CHOOSE ( n1 -- n2, a random number within 0 to n1 )
...