所有網頁 圖片 影片 地圖 新聞 網誌搜尋 Gmail 更多 »
最近造訪的群組 | 說明 | 登入
Google 網上論壇首頁
群組資訊
成員: 100
語言: 中文 (繁體)
群組類別:
藝術文化
科技學術
電腦資訊
更多群組資訊 »
「forth chip 40C18 出現了!」 路人探頭一望    


The message 

「forth chip 40C18 出現了!」  let's try our best to see what's that.

... 40 顆 forth cpu 的 SEA-Forth chip 出來了,個人最近正在研究中,日昨寫出了它的assembler/disassembler 超簡單的, 任何人只要花一天的時間不到即可完成, 但要先嘹解其硬體構造才能 ....

 

Refer to the discussion thread for following updates.



2008/11/20

11:55
"可以用模擬器(simulator)跑喔! <===== interesting !
1. I followed holi's hyperlink and downloaded the 40c18sim1.exe that I guess is the simulator.
2. It looks like a Win32Forth executable. I run it . . . but two error box appear

Fig-1Fig-2

 

3. 我發現它還是有 run 起來,but something wrong

Fig-3


13:21
目前先到這裡,待 simulator works 以後再繼續探討 . . .
 
2008/11/22
11:38
Yahoo! Groups armForth : files holi has a lot of uploads > 40C18SIM2.EXE type H to start the simulator.

Download 40C18SIM2.EXE  run it , I got Fig-1, Fig-2 and then Fig-3 as well.

Type H, I got  
h
words' 0 u 0 u' 80 uuuu' 0 g 12 34 sbpr 0 gg show.<ds>.<rs>.instruction...?  ml holi  ok........

經網友 chang luke 點撥,原來這些都是可用的命令。

I try to type in ==> words'
  (   0     1  2318F )   16*
  (   0     2  220E7 )   2*:
  (   0     3  100E7 )   -1
  (   0     5   6003 )   1-
  (   0     6  39407 )   +:
  (   0     7   6005 )   negate
  (   0     8  260E7 )   not:
  (   0     9   6007 )   -
... snip .... 
  (   0    A5   6080 )   get+xcute.cmd
  (   0    A6   601E )   get+xcute.cxd
  (   0    AB   60A5 )   main
  (    0    2   )                main -;    \ AB
  (    1   11   )   T:  16*      2*
  (        11   )                2*
  (        11   )                2*
  (    2   11   )   T:  2*:      2*
  (         0   )                ;
  (    3    8   )   T:  -1       3FFFF #
  (         0   )                ;
  (    5    3   )   T:  1-       -1         \ 3
  (    6   1C   )   T:  +:       .
  (        14   )                +
  (         0   )                ;
  (    7    3   )   T:  negate   1-         \ 5 
... snip ....

ooop! 我猜是列出了 s40c18 的 words 了。好玩好玩。

再試試 ==> 0 u
  (    0    2   )                main -;    \ AB
  (    1   11   )   T:  16*      2*
  (        11   )                2*
  (        11   )                2*
  (    2   11   )   T:  2*:      2*
  (         0   )                ;
  (    3    8   )   T:  -1       3FFFF #
  (         0   )                ;
  (    5    3   )   T:  1-       -1         \ 3

這個結果與 words' 部分重複了,應該是 DOS debug 的 u command, disassembly 的作用。

0 u'   <=== verbose 版的 u ,  所以 something'  就是 something 的一個變化, 與數學界的習慣相同。
  (  0=40    40AB    2  0 15  C=3  )                              main -;               \ AB
  (  1=41   2318F   11 11 11 1C=7  )  T:  16*                     2*  2*  2*  .
  (  2=42   220E7   11  0 1C 1C=7  )  T:  2*:                     2*  ;  .  .
  (  3=43   100E7    8  0 1C 1C=7  )  T:  -1                      3FFFF #  ;  .  .
  (  4=44   3FFFF   ----- # -----  )
  (  5=45    6003    3  0  0  C=3  )  T:  1-                      -1                    \ 3
  (  6=46   39407   1C 14  0 1C=7  )  T:  +:                      .  +  ;  .
  (  7=47    6005    3  0  0 14=5  )  T:  negate                  1-                    \ 5
  (  8=48   260E7   13  0 1C 1C=7  )  T:  not:            begin   not  ;  .  .
  (  9=49    6007    3  0  0 1C=7  )  T:  -                       negate                \ 7
  (  A=4A   280E7   14  0 1C 1C=7  )                              +  ;  .  .
  (  B=4B   10309    8  3  1  4=1  )  T:  '0~f'->0~f              30 #  -               \ 9
  (  C=4C      30   ----- # -----  )

上列資料的線索,

寄件者: holi <holin...@yahoo.com.tw>
日期: Wed, 19 Nov 2008 07:03:34 -0800 (PST)
當地時間: 2008年11月19日(星期三) 下午11時03分
主旨: Re: forth chip 40C18 出現了!

提示兩句指引:

1. 這是真實的 forth cpu, 其指令

      dup drop and over xor not + 2/ 2* nop ret call jmp >r r> next

   都與一般 forth 語法指令的用法定義相同. 但if  -if 指令執行後 stack 不會被 drop 掉.
   ret 是用 ; (semicolon) 取代. 容易誤導???

2. T: T 就是 Tag(標籤), T: 是對 Target 下標籤之意. 它也是像組語裡頭的 label.所以它是
   完完全全的forth組語寫法. 其原先是在 venture forth 下發展的, 我則在win32forth42671
   下發展.

3. 我覺得有些觀念要當面討論才容易講清楚 .不是三言兩語可以說清楚的.


0 g  <==== Trace from 0
  0.0  12 34  0  0  0  0  0   0   12   34  main -;     A6   0   0   0   0   0   0  AC   A7 78
 AB.0  12 34  0  0  0  0  0   0   12   34  get+xcute.cmd6   0   0   0   0   0   0  AC   A7 79
 A5.0  12 34  0  0  0  0  0   0   12   34  cr           0   0   0   0   0   0  AC  A7   AC 80
 80.0  12 34  0  0  0  0  0   0   12   34   D #         0   0   0   0   0  AC  A7  AC   A6 81
 80.1  34  0  0  0  0  0  0  12   34    D  emit         0   0   0   0   0  AC  A7  AC   A6 82
 1D.0  34  0  0  0  0  0  0  12   34    D   drop        0   0   0   0  AC  A7  AC  A6   82 83
 1D.1  12 34  0  0  0  0  0   0   12   34   ;           0   0   0   0  AC  A7  AC  A6   82 84
 82.0  12 34  0  0  0  0  0   0   12   34   A #        A6   0   0   0   0  AC  A7  AC   A6 85
 82.1  34  0  0  0  0  0  0  12   34    A  emit -;     A6   0   0   0   0  AC  A7  AC   A6 86
 1D.0  34  0  0  0  0  0  0  12   34    A   drop       A6   0   0   0   0  AC  A7  AC   A6 87
 1D.1  12 34  0  0  0  0  0   0   12   34   ;          A6   0   0   0   0  AC  A7  AC   A6 88
 A6.0  12 34  0  0  0  0  0   0   12   34  key         AC  A6   0   0   0   0  AC  A7   AC 89
 1E.0  12 34  0  0  0  0  0   0   12   34   1B #       A6   0   0   0   0  AC  A7  AC   A7 90
 1E.1  34  0  0  0  0  0  0  12   34   1B   ;          A6   0   0   0   0  AC  A7  AC   A7 91
 A7.0  34  0  0  0  0  0  0  12   34   1B   F #        AC  A6   0   0   0   0  AC  A7   AC 92
 A7.1   0  0  0  0  0  0 12  34   1B    F   and        AC  A6   0   0   0   0  AC  A7   AC 93
 A7.2  34  0  0  0  0  0  0  12   34    B   84 #       AC  A6   0   0   0   0  AC  A7   AC 94
 A7.3   0  0  0  0  0  0 12  34    B   84              AC  A6   0   0   0   0  AC  A7   AC 95
 AA.0   0  0  0  0  0  0 12  34    B   84   +          AC  A6   0   0   0   0  AC  A7   AC 96
 AA.1  34  0  0  0  0  0  0  12   34   8F   push       AC  A6   0   0   0   0  AC  A7   AC 97
 AA.2  12 34  0  0  0  0  0   0   12   34   ;          A6   0   0   0   0  AC  A7  AC   8F 98
 8F.0  12 34  0  0  0  0  0   0   12   34   !a+        AC  A6   0   0   0   0  AC  A7   AC 99
 8F.1   0 12 34  0  0  0  0   0    0   12   ;          AC  A6   0   0   0   0  AC  A7   AC 100
 AC.0   0 12 34  0  0  0  0   0    0   12  main -;     A7  AC  A6   0   0   0   0  AC   A7 101
 AB.0   0 12 34  0  0  0  0   0    0   12 oket+xcute.cmd7  AC  A6   0   0   0   0  AC   A7 102
 ^     |<------ Data stack ------------>|              |<------- Return stack ---------->|
 |
 '------ IP

12 34 sbpr 0 gg show.<ds>.<rs>.instruction...?   <===  These commands are unknown to me so far.  -hcchen5600 2008/11/22 17:10
大致如此。

16:07
照前輩網友垂示,上網把遊戲道具抓下來,
 

 
這裡面什麼都有 ===> VentureForth-1.3.5-s40dl.zip , ( D:\Program Files\IntellaSys\VentureForth\docs\ license.rtf ,  license.txt ,  readme.rtf ,  S24_DataSheet.pdf ,  S40C18_7G_SpecUpdate.pdf ,  S40C18_DataSheet.pdf ,  VF_ProgrammersGuide.pdf ) 還包括一個 VentureForth v1.3.5 。

16:32
把 VentureForth run 起來 see 一下 cells , 就發現這家公司的慣例原來如此:

see cells                                    
403E1F   EBX 2 # SHL   C1E302    <==== code address , Assembly mnemonics , OP Codes  -hcchen5600 2008/11/22 16:25 
403E22   RET           C3 ok

這個方式很好,應該廣為採用。用 F-PC study 時,經常 dump 不停,還來來回回 sys debug,有這個好一點。最近不景氣比較有空閒,玩 forth 沒幾天,搞到一堆 forth !!  我自己做的 F Language, KsanaVM, F-PC, eforth , weforth, eforth32, ficl, henceForth, 這會兒又來了一個 VentureForth。

17:15
看資料吧! 先從 "D:\Program Files\IntellaSys\VentureForth\docs\readme.rtf"  開始 ,






blabla

} Title {
} Title {
paragraph
blabla

} Title {

 

版本: 
關於本網頁的最新 3 訊息 (總計 5 則) - 檢視所有討論主題
2008年11月20日,作者:holi
40c18sim2.f 是最新post 上 armforth的. 可以參考看看. single node only!
原廠的simulator最完整喔.
2008年11月20日,作者:chang luke
不用怕,看到甚麼就敲甚麼,
       如敲words' 看看會出現甚麼東西. 然後自己去體會.按任何一鍵會暫停,esc就會離開.
按 0  u  和  0  u'  看有何不同.
80 uuuu'  
0  g
ml
......
 
在forth 可以用see 去看指令之定義.
 
所以 ml 可以把它see 一 see 看看.
2008年11月20日,作者:hcchen (gmail)
H
words' 0 u 0 u' 80 uuuu' 0 g 12 34 sbpr 0 gg
show.<ds>.<rs>.instruction...? ml holi ok
然後呢?(不用擔心我會沒完沒了一直問下去,您只要平平地回答一句就很有價值了)
還有 2 則訊息 »
建立群組 - Google 網上論壇 - Google 首頁 - 服務條款 - 隱私權政策
©2009 Google