\ 本程式是 顯示 倚天中文系統的 13502個漢字 \ \ 張燕南 使用 Win32Forth v4.2 寫于 臺灣.基隆 2001/12/16 DEFER 換行 ' _CR IS 換行 DEFER 清除螢幕 ' _CLS IS 清除螢幕 DEFER 鍵入 ' KEY IS 鍵入 DEFER 值棄 ' DROP IS 值棄 : 進入輪迴 ?COMP COMPILE _BEGIN if drop swap count rot Create-file 0 <> if s" 開檔失敗!" 顯示錯誤訊息 then else rot rot 2drop then ; : 開舊檔 ( 檔名存放位置 檔名長度 檔案屬性 --- 檔頭序號 ) open-file 0 <> if s" 開舊檔失敗!" 顯示錯誤訊息 then ; : 關檔 ( 檔頭序號 --- ) close-file 0 <> if s" 關檔失敗!" 顯示錯誤訊息 then ; : 檔案大小? ( 檔頭序號 --- 低32爻 高32爻 ) file-size 0 <> if s" 檔案操作有誤!" 顯示錯誤訊息 bye then ; : 讀檔 ( 存放位置 長度 檔頭序號 --- 此次讀入的長度 ) read-file 0 <> if s" 讀檔失敗!" 顯示錯誤訊息 bye then ; : 寫檔 ( 起始位置 長度 檔頭序號 --- ) write-file 0 <> if s" 寫檔失敗!" 顯示錯誤訊息 bye then ; : 移動檔案指標 ( 低32爻位移值 高32爻位移值 檔頭序號 --- ) reposition-file 0 <> if s" 移動失敗!" 顯示錯誤訊息 bye then ; 0 value 檔案檔頭 Create 檔案緩衝區 256 allot Create 輸入字串 4 allot : 字型顯示 ( n --- ) 8 0 do dup 0x80 and 0x80 = if ascii * emit else 32 emit then 1 lshift loop drop ; : ET5-中文字型顯示 清除螢幕 換行 ." 輸入中文字 : " 輸入字串 2 expect hex 換行 輸入字串 c@ 0 <# # # #> type 輸入字串 1 + c@ 0 <# # # #> type 換行 s" stdfont.15" r/w 開檔 to 檔案檔頭 \ BIG-5 ---> 輸入字串 輸入字串 c@ 0xa4 - 157 * 輸入字串 1 + c@ dup 0xa0 > if 0x7f + 0xa1 - 0x40 - else 0x40 - then + \ [DSP] ---> ET code dup 5402 >= if 408 - then 30 um* 檔案檔頭 移動檔案指標 檔案緩衝區 30 檔案檔頭 讀檔 drop 換行 15 0 do 檔案緩衝區 i 2 * + c@ 字型顯示 檔案緩衝區 i 2 * 1 + + c@ 字型顯示 換行 loop 檔案檔頭 關檔 decimal ; ( 以上 定義 可以崁入符式系統,程式寫作就像一篇中文作文,如下所示 ) : 示範 清除螢幕 換行 ." 本程式 是 顯示倚天中文系統的 13502 個漢字! " 換行 換行 ." !!! 請注意 目錄內 要有 倚天中文系統的 stdfont.15 檔案 !!! " 換行 換行 ." 請按任一鍵 ... " 鍵入 值棄 進入輪迴 ET5-中文字型顯示 換行 ." 按 Q 鍵 則 結束! 按任一鍵,繼續 ... " 鍵入 ascii Q = 如果為真,則脫離輪迴 換行 換行 ; 示範