所有網頁 圖片 影片 地圖 新聞 網誌搜尋 Gmail 更多 »
最近造訪的群組 | 說明 | 登入
Google 網上論壇首頁
請教各位前輩有關eForth=>51SE22D.ASM
目前本群組有太多主題設為優先顯示。要優先顯示這個主題,請將其他主題的這個選項取消。
在處理您的要求時發生錯誤。請再試一次。
標幟
  15 個訊息 - 全部摺疊  -  將全文翻譯為 已翻譯 (查看所有原文)
您要留言的群組是 Usenet 群組。在此群組留言,網際網路上的任何使用者將可以看到您的電郵地址。
您的回覆郵件尚未寄出。
您已成功留言
 
寄件人:
收件人:
副本:
後續追蹤對象:
新增副本 | 新增後續追蹤對象 | 編輯主旨
主旨:
驗證:
為了確認,請輸入您在以下圖片中看到的字元,或輸入您按下存取圖示時所聽到的號碼。 注意聽並輸入您聽到的號碼
 
小P  
檢視個人資料   翻譯為 已翻譯 (查看原文)
 更多選項 9月22日, 上午11時31分
寄件人: 小P <p...@cht.com.tw>
日期: Mon, 21 Sep 2009 20:31:18 -0700 (PDT)
當地時間: 2009年9月22日(星期二) 上午11時31分
主旨: 請教各位前輩有關eForth=>51SE22D.ASM

51SE22D.ASM

第一問:  rom code area  how to switch to  xram code area

COPY:   MOV     R2,#20H
        MOV     R3,A
        MOV     DPTR,#0
COPY1:  CLR     A
        MOVC    A,@A+DPTR
        MOVX    @DPTR,A
        INC     DPTR

        DJNZ    R3,COPY1        ;to get simulator to run properly,
        DJNZ    R2,COPY1        ;copy 2000H byte of code to data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sorce code 只看出來 move rom to xram
but , 如何做 軟硬體的搭配及切換呢???(因為沒有電路圖)

memory
        LJMP    COLD1

=======================================
=======================================

第二問 : 51 的中断功能是實務所在,請問在 eForth之中,如何使用!?

;       CHANGE THE FOLLOWING MACHINE DEPENDENT WORDS
;; Main entry points and COLD start data

        ORG     BM                      ;Power up
location******

        DB      02H,1,0                 ;Jump to cold start
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0

在寫Real_Time即時韌體時,Timer的中断對小P來說太重要了~~~~~~
如下所示

//==================== ( INERNAL RAM ON MSC-51_CHIP )
========================
/
*========================================================================== ==
the define of bit_var in bit_data_area 20fh ~ 2fh ( tatol = 128 bits)

=========================================================================== =*/
//------------------------------------------------------------------------- ----
unsigned char bdata        ttr1  = 0; // _at_ 0x20;
sbit                       ttr1_0=ttr1^0;
sbit                       ttr1_1=ttr1^1;
sbit                       ttr1_2=ttr1^2;
sbit                       ttr1_3=ttr1^3;
sbit                       ttr1_4=ttr1^4;
sbit                       ttr1_5=ttr1^5;
sbit                       ttr1_6=ttr1^6;
sbit                       ttr1_7=ttr1^7;

unsigned char bdata        ttr2  = 0; //_at_ 0x21;
sbit                       ttr2_0=ttr2^0;
sbit                       ttr2_1=ttr2^1;
sbit                       ttr2_2=ttr2^2;
sbit                       ttr2_3=ttr2^3;
sbit                       ttr2_4=ttr2^4;
sbit                       ttr2_5=ttr2^5;
sbit                       ttr2_6=ttr2^6;
sbit                       ttr2_7=ttr2^7;

unsigned char bdata        evr1  = 0; //_at_ 0x22;
sbit                       evr1_0=evr1^0;
sbit                       evr1_1=evr1^1;
sbit                       evr1_2=evr1^2;
sbit                       evr1_3=evr1^3;
sbit                       evr1_4=evr1^4;
sbit                       evr1_5=evr1^5;
sbit                       evr1_6=evr1^6;
sbit                       evr1_7=evr1^7;

unsigned char bdata        evr2   = 0; //_at_ 0x23;             TIMING
sbit                       evr2_0 = evr2^0;                     //      0.5 ms
sbit                       evr2_1 = evr2^1;                     //        1 ms
sbit                       evr2_2 = evr2^2;                     //        2 ms
sbit                       evr2_3 = evr2^3;                     //        4 ms
sbit                       evr2_4 = evr2^4;                     //        8 ms
sbit                       evr2_5 = evr2^5;                     //       16 ms
sbit                       evr2_6 = evr2^6;                     //       32 ms
sbit                       evr2_7 = evr2^7;                     //       64 ms

unsigned char bdata        evr3   = 0; //_at_ 0x24;
sbit                       evr3_0 = evr3^0;
sbit                       evr3_1 = evr3^1;
sbit                       evr3_2 = evr3^2;
sbit                       evr3_3 = evr3^3;
sbit                       evr3_4 = evr3^4;
sbit                       evr3_5 = evr3^5;
sbit                       evr3_6 = evr3^6;
sbit                       evr3_7 = evr3^7;

unsigned char bdata        evr4   = 0; //_at_ 0x25;             TIMING
sbit                       evr4_0 = evr4^0;                     //       128 ms
sbit                       evr4_1 = evr4^1;                     //       256 ms
sbit                       evr4_2 = evr4^2;                     //   512 ms
sbit                       evr4_3 = evr4^3;                     //  1024 ms
sbit                       evr4_4 = evr4^4;                     //  2048 ms
sbit                       evr4_5 = evr4^5;                     //   256 ms***
sbit                       evr4_6 = evr4^6;                     //   256 ms***
sbit                       evr4_7 = evr4^7;                     //   256 ms***

unsigned char bdata        evr5   = 0; //_at_ 0x26;
sbit                       evr5_0 = evr5^0;                     // every step is 100ms
sbit                       evr5_1 = evr5^1;
sbit                       evr5_2 = evr5^2;
sbit                       evr5_3 = evr5^3;
sbit                       evr5_4 = evr5^4;
sbit                       evr5_5 = evr5^5;
sbit                       evr5_6 = evr5^6;
sbit                       evr5_7 = evr5^7;

unsigned char bdata        wrk1   = 0;  //_at_ 0x27
sbit                       wrk1_0 = wrk1^0;
sbit                       wrk1_1 = wrk1^1;
sbit                       wrk1_2 = wrk1^2;
sbit                       wrk1_3 = wrk1^3;
sbit                       wrk1_4 = wrk1^4;
sbit                       wrk1_5 = wrk1^5;
sbit                       wrk1_6 = wrk1^6;
sbit                       wrk1_7 = wrk1^7;

/
*========================================================================== ==
the define of function

=========================================================================== =*/
//------------------------------------------------------------------------- ----
//------------------------------------------------------------------------- ----

void apart_time (void)  interrupt TF0_VECTOR  using bank_1      {

  TH0 = 0x0fe;
  TL0 = TL0 + 0x32;

  ttr1++;

//===================================================== ( ttr1 )
===============
//------------------ 0.25ms ------------------
  if (ttr1_0)
     {
      if (!evr1_0)
        {
          evr1_0=1;
          evr2_0=1;
        }
     }
  else
      evr1_0=0;

//------------------ 0.5ms ------------------
  if (ttr1_1)
     {
      if (!evr1_1)
        {
          evr1_1=1;
          evr2_1=1;
        }
     }
  else
      evr1_1=0;

//------------------ 1ms ------------------
  if (ttr1_2)
     {
      if (!evr1_2)
        {
          evr1_2=1;
          evr2_2=1;
        }
     }
  else
      evr1_2=0;

//------------------  2ms------------------
  if (ttr1_3)
     {
      if (!evr1_3)
        {
          evr1_3=1;
          evr2_3=1;

                  if    (--counter == 0)
                        {
                                counter = 25;

                                timer_100ms++;          // every step is 100ms

                                if (timer_100ms & 0x02)     evr5_0 = 1;
                        }

        }
     }
  else
      evr1_3=0;

//------------------ 4ms ------------------
  if (ttr1_4)
     {
      if (!evr1_4)
        {
          evr1_4=1;
          evr2_4=1;
        }
     }
  else

          evr1_4=0;

//------------------ 8ms ------------------
  if (ttr1_5)
     {
      if (!evr1_5)
                                {
          evr1_5=1;
          evr2_5=1;

                                }
     }
  else
      evr1_5=0;

//------------------ 16ms ------------------
  if (ttr1_6)
     {
      if (!evr1_6)
        {
          evr1_6=1;
          evr2_6=1;

                                P3_7 = 1;                                       // make the P1 -> input_prot
                                std1_buf = P3_7;                                // the scan of std0 & std1  every 16ms

                                if      (std1_buf == std1_tmp)
                                        {
                                        std1_det = std1_buf;
                                        //--------------------------------------------------------
                                        // To get DTMF

                                                if      (std1_det)
                                                {
                                                        TOE = 1;
                                                        dtmf_buffer = (P1 & 0x0f);
                                                        _nop_ ();
                                                        TOE = 0;
                                                        Send_Flag = 1;
                                                }
                                                else
                                                {
                                                        //D_first = 0;
                                                        //Mute_Flag = 1;
                                                }
                                        }
                                        else
                                        std1_tmp = std1_buf;

        }
     }
  else
      evr1_6=0;

//------------------ 32ms ------------------
  if (ttr1_7)
     {
      if (!evr1_7)
        {
          evr1_7=1;
          evr2_7=1;
        }
     }
  else

      evr1_7=0;

//===================================================== ( ttr2 )
===============
//------------------ 64ms ------------------
  if (ttr2_0)
     {
      if (!evr3_0)
        {
          evr3_0=1;
          evr4_0=1;
        }
     }
  else
      evr3_0=0;

//------------------ 128ms ------------------
  if (ttr2_1)
     {
      if (!evr3_1)
        {
          evr3_1=1;
          evr4_1=1;
        }
     }
  else
            evr3_1=0;

//------------------ 256ms ------------------
  if (ttr2_2)
     {
      if (!evr3_2)
        {
          evr3_2=1;
          evr4_2=1;
        }
     }
  else
      evr3_2=0;

//------------------ 512ms ------------------
  if (ttr2_3)
     {
      if (!evr3_3)
        {
          evr3_3=1;
          evr4_3=1;
        }
     }
  else
      evr3_3=0;

//------------------ 1024ms ------------------
  if (ttr2_4)
     {
      if (!evr3_4)
        {
          evr3_4=1;
          evr4_4=1;
        }
     }
  else
      evr3_4=0;

//------------------ 2048ms ------------------
  if (ttr2_5)
     {
      if (!evr3_5)
        {
          evr3_5=1;
          evr4_5=1;
        }
     }
  else
      evr3_5=0;

//------------------ 4096ms ------------------
  if (ttr2_6)
     {
      if (!evr3_6)
        {
          evr3_6=1;
          evr4_6=1;
        }
     }
  else
      evr3_6=0;

//------------------ 8192ms ------------------
  if (ttr2_7)
     {
      if (!evr3_7)
        {
          evr3_7=1;
                      evr4_7=1;
        }
     }
  else
      evr3_7=0;

if (ttr1 == 0)
        {
                ttr2++;

        }

...

閱讀更多 »


    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
討論主旨已變更為 "RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM" 由 chang luke 著作
chang luke  
檢視個人資料  
 更多選項 9月22日, 下午4時20分
寄件人: chang luke <holin...@yahoo.com.tw>
日期: Tue, 22 Sep 2009 16:20:06 +0800 (CST)
當地時間: 2009年9月22日(星期二) 下午4時20分
主旨: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM

您好!
     關於51eForth---我過去花了相當大的心力下去,作出發展系統,洗了百片pcb,裝上了socket及部分ic等零件, 寫出了compiler/aseembler/disassembler/decompiler/simulator.... 還設計了電路板可以掛64k-byte rom, 64k-byte ram 以及 兩個8255 i/o  及isa card slot.有完整的電路圖.當年設計是為了配合教學而設計的.至今仍覺功能強大無它可比.
    有興趣否?一起來研究研究.

--- 09/9/22 (二),小P <p...@cht.com.tw> 寫道:

寄件者: 小P <p...@cht.com.tw>
主旨: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
收件者: "符式協會" <figtaiwan@googlegroups.com>
日期: 2009年9月22日,二,上午11:31

51SE22D.ASM

第一問:  rom code area  how to switch to  xram code area

COPY:   MOV     R2,#20H
        MOV     R3,A
        MOV     DPTR,#0
COPY1:  CLR     A
        MOVC    A,@A+DPTR
        MOVX    @DPTR,A
        INC     DPTR

        DJNZ    R3,COPY1        ;to get simulator to run properly,
        DJNZ    R2,COPY1        ;copy 2000H byte of code to data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sorce code 只看出來 move rom to xram
but , 如何做 軟硬體的搭配及切換呢???(因為沒有電路圖)

memory
        LJMP    COLD1

=======================================
=======================================

第二問 : 51 的中断功能是實務所在,請問在 eForth之中,如何使用!?

;    CHANGE THE FOLLOWING MACHINE DEPENDENT WORDS
;; Main entry points and COLD start data

        ORG     BM                      ;Power up
location******

        DB      02H,1,0                 ;Jump to cold start
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
        DB      32H,0,0,0,0,0,0,0       ;Return from interrupt
    DB    32H,0,0,0,0

在寫Real_Time即時韌體時,Timer的中断對小P來說太重要了~~~~~~
如下所示

//==================== ( INERNAL RAM ON MSC-51_CHIP )
========================
/
*========================================================================== ==
the define of bit_var in bit_data_area 20fh ~ 2fh ( tatol = 128 bits)

=========================================================================== =*/
//------------------------------------------------------------------------- ----
unsigned char bdata        ttr1  = 0; // _at_ 0x20;
sbit                       ttr1_0=ttr1^0;
sbit                       ttr1_1=ttr1^1;
sbit                       ttr1_2=ttr1^2;
sbit                       ttr1_3=ttr1^3;
sbit                       ttr1_4=ttr1^4;
sbit                       ttr1_5=ttr1^5;
sbit                       ttr1_6=ttr1^6;
sbit                       ttr1_7=ttr1^7;

unsigned char bdata        ttr2  = 0; //_at_ 0x21;
sbit                       ttr2_0=ttr2^0;
sbit                       ttr2_1=ttr2^1;
sbit                       ttr2_2=ttr2^2;
sbit                       ttr2_3=ttr2^3;
sbit                       ttr2_4=ttr2^4;
sbit                       ttr2_5=ttr2^5;
sbit                       ttr2_6=ttr2^6;
sbit                       ttr2_7=ttr2^7;

unsigned char bdata        evr1  = 0; //_at_ 0x22;
sbit                       evr1_0=evr1^0;
sbit                       evr1_1=evr1^1;
sbit                       evr1_2=evr1^2;
sbit                       evr1_3=evr1^3;
sbit                       evr1_4=evr1^4;
sbit                       evr1_5=evr1^5;
sbit                       evr1_6=evr1^6;
sbit                       evr1_7=evr1^7;

unsigned char bdata        evr2   = 0; //_at_ 0x23;        TIMING
sbit                       evr2_0 = evr2^0;            //    0.5 ms
sbit                       evr2_1 = evr2^1;            //      1 ms
sbit                       evr2_2 = evr2^2;            //      2 ms
sbit                       evr2_3 = evr2^3;            //      4 ms
sbit                       evr2_4 = evr2^4;            //      8 ms
sbit                       evr2_5 = evr2^5;            //     16 ms
sbit                       evr2_6 = evr2^6;            //     32 ms
sbit                       evr2_7 = evr2^7;            //     64 ms

unsigned char bdata        evr3   = 0; //_at_ 0x24;
sbit                       evr3_0 = evr3^0;
sbit                       evr3_1 = evr3^1;
sbit                       evr3_2 = evr3^2;
sbit                       evr3_3 = evr3^3;
sbit                       evr3_4 = evr3^4;
sbit                       evr3_5 = evr3^5;
sbit                       evr3_6 = evr3^6;
sbit                       evr3_7 = evr3^7;

unsigned char bdata        evr4   = 0; //_at_ 0x25;        TIMING
sbit                       evr4_0 = evr4^0;            //     128 ms
sbit                       evr4_1 = evr4^1;            //     256 ms
sbit                       evr4_2 = evr4^2;            //   512 ms
sbit                       evr4_3 = evr4^3;            //  1024 ms
sbit                       evr4_4 = evr4^4;            //  2048 ms
sbit                       evr4_5 = evr4^5;            //   256 ms***
sbit                       evr4_6 = evr4^6;            //   256 ms***
sbit                       evr4_7 = evr4^7;            //   256 ms***

unsigned char bdata        evr5   = 0; //_at_ 0x26;
sbit                       evr5_0 = evr5^0;            // every step is 100ms
sbit                       evr5_1 = evr5^1;
sbit                       evr5_2 = evr5^2;
sbit                       evr5_3 = evr5^3;
sbit                       evr5_4 = evr5^4;
sbit                       evr5_5 = evr5^5;
sbit                       evr5_6 = evr5^6;
sbit                       evr5_7 = evr5^7;

unsigned char bdata        wrk1   = 0;  //_at_ 0x27
sbit                       wrk1_0 = wrk1^0;
sbit                       wrk1_1 = wrk1^1;
sbit                       wrk1_2 = wrk1^2;
sbit                       wrk1_3 = wrk1^3;
sbit                       wrk1_4 = wrk1^4;
sbit                       wrk1_5 = wrk1^5;
sbit                       wrk1_6 = wrk1^6;
sbit                       wrk1_7 = wrk1^7;

/
*========================================================================== ==
the define of function

=========================================================================== =*/
//------------------------------------------------------------------------- ----
//------------------------------------------------------------------------- ----

void apart_time (void)  interrupt TF0_VECTOR  using bank_1    {

  TH0 = 0x0fe;
  TL0 = TL0 + 0x32;

  ttr1++;

//===================================================== ( ttr1 )
===============
//------------------ 0.25ms ------------------
  if (ttr1_0)
     {
      if (!evr1_0)
        {
          evr1_0=1;
          evr2_0=1;
        }
     }
  else
      evr1_0=0;

//------------------ 0.5ms ------------------
  if (ttr1_1)
     {
      if (!evr1_1)
        {
          evr1_1=1;
          evr2_1=1;
        }
     }
  else
      evr1_1=0;

//------------------ 1ms ------------------
  if (ttr1_2)
     {
      if (!evr1_2)
        {
          evr1_2=1;
          evr2_2=1;
        }
     }
  else
      evr1_2=0;

//------------------  2ms------------------
  if (ttr1_3)
     {
      if (!evr1_3)
        {
          evr1_3=1;
          evr2_3=1;

          if    (--counter == 0)
            {
                counter = 25;

                timer_100ms++;        // every step is 100ms

                if (timer_100ms & 0x02)    evr5_0 = 1;
            }

        }
     }
  else
      evr1_3=0;

//------------------ 4ms ------------------
  if (ttr1_4)
     {
      if (!evr1_4)
        {
          evr1_4=1;
          evr2_4=1;
        }
     }
  else

      evr1_4=0;

//------------------ 8ms ------------------
  if (ttr1_5)
     {
      if (!evr1_5)
                {
          evr1_5=1;
          evr2_5=1;

                }
     }
  else
      evr1_5=0;
...

閱讀更多 »


    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
小P  
檢視個人資料  
 更多選項 9月22日, 下午5時34分
寄件人: 小P <p...@cht.com.tw>
日期: Tue, 22 Sep 2009 02:34:54 -0700 (PDT)
當地時間: 2009年9月22日(星期二) 下午5時34分
主旨: Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
前輩您好:

謝謝您的抬愛!!
沒問題.....

小P 的經歷

(一)
純日資公司的Soft_House
以日系為主的uCOM(如NEC,SAMY等等) 撰寫 汽車音響的主控程式

(二)
健身器材公司的 consle & 上下控程式

(三)
通信產品公司的控制程式...如 trunk , pbx , pstn 監控, Smart Speed Dialer等等

(四)
95年考進中滑店......以至於今

小P 是個  慣C  &   assember

數位科技人的眼裡

SPEED

一個即時數位系統之架構,整體一定有硬有軟

但是, 兩者之間的比例如何配置呢!?

((( 基本原則 )))

Hardware硬體最快=>但是成本最高

Software軟體最慢=>但是成本最省

那麼折中的最佳方式為何呢???

即是((( 韌體 )))

Firmware韌體靈活=>但是功力最深

=======================================

pc_base &  os_base 的環境是令人愉快的

anything just under system_call  & library_call

It's so easy......在外面補習,補一補就會了.......

但是

single_chip &  none_os_base

progaram usually must be stand_alone => becase of no operating system
for usage

coding man alway have to drive many chips => but no library for call

It's so hard......在外面沒得補,就算有補習班開課,也只是點到唯止而已......

舉個例子....
一般菜鳥在使用 8051 時......

遇到人機互動介面的時候,只會用 waite busy
整個 51的cpu資源,都被一個User 完全霸佔....老闆的心會淌血的

一個 51 只能對付一個User....

但是,在小P被老闆百般壓榨之下....
小P的一個 51 可以 共時即時對付16 User

1顆 當 16顆 用

在顯示的部,8255對我來說是個奢侈品

16段 米字型LED  X 16個 =>可顯示英文,數字及少許符號
&
8*8 ARRY_LED  X  4個 =>可顯示中文字及圖形

只用了一個串列PORT
&
6 個 74LS164

公司的利潤就是這樣壓榨小P所賺取的

MONEY CAN TALKS => 金錢萬能(無奈)
NO MONEY , NO TALK => 小P更無奈

On 9月22日, 下午4時20分, chang luke <holin...@yahoo.com.tw> wrote:

...

閱讀更多 »


    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
holi  
檢視個人資料  
 更多選項 9月24日, 上午10時18分
寄件人: holi <holin...@yahoo.com.tw>
日期: Wed, 23 Sep 2009 19:18:45 -0700 (PDT)
當地時間: 2009年9月24日(星期四) 上午10時18分
主旨: Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
hi.   大P,
在figtaiwan.org網址內"文獻及下載"區有holinepu分享的檔案 hh238.f. 將它下載到win32forth
(win32forth 4.2.671版) 的directory內.然後進入
win32forth
fload hh51w238.f
在此有3個選擇
1.   simple eforth51 system
2.   full eforth51 system
3.   tetherred forth51 system.
==========================
完成後按   H
以後善用  SEE something.     及 H  即可窺其全貌.
==========================
注意:  首先要擴展win32forth system memory .  方法如下
sys  ( under dos )
win32for fload  meta    setsize  bye
fkernel  fload  extend  bye

\******************************************************************
On 9月22日, 下午5時34分, 小P <p...@cht.com.tw> wrote:

...

閱讀更多 »


    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
lu.albert  
檢視個人資料  
 更多選項 9月26日, 下午4時29分
寄件人: "lu.albert" <lu.alb...@gmail.com>
日期: Sat, 26 Sep 2009 01:29:39 -0700 (PDT)
當地時間: 2009年9月26日(星期六) 下午4時29分
主旨: Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
Hi holi,
   您好。
   我是不小心用google尋到這裡的,看到您的介紹,下載了Win32forth 4.2.671 和hh51w238.f,
   試了一下,出現"Error: InitializeWinIo Couldn't find procedure",無法看到您所提到的3個選
項。
    我使用的是winxp,不知為何會出現這個訊息?

   謝謝!!!

On 9月24日, 上午10時18分, holi <holin...@yahoo.com.tw> wrote:

...

閱讀更多 »


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
討論主旨已變更為 "RE: [符式協會:578] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM" 由 chang luke 著作
chang luke  
檢視個人資料  
 更多選項 9月26日, 下午10時27分
寄件人: chang luke <holin...@yahoo.com.tw>
日期: Sat, 26 Sep 2009 22:27:50 +0800 (CST)
當地時間: 2009年9月26日(星期六) 下午10時27分
主旨: RE: [符式協會:578] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM

\ 發  表  人:燕南
\ 公告日期:2003-11-28 11:37:15
\ 硬體界面
\ For Win98/Me/NT/XP 請 copy WinIo.dll, WinIo.sys, WINIO.VXD 至 Win32forth.exe 所在目錄
\ 上述的 WinIO 檔案, 請至 http://www.internals.com/下

thanks for your attention!    
 
請先加上如上 燕南 所提的檔案
 
如還有問題再提出來戶動討論
 
註:  進入eForth51  simulation  打
EF51
WORDS   ( 大寫喔 )

may Forth be with you!

--- 09/9/26 (六),lu.albert <lu.alb...@gmail.com> 寫道:

寄件者: lu.albert <lu.alb...@gmail.com>
主旨: [符式協會:578] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
收件者: "符式協會" <figtaiwan@googlegroups.com>
日期: 2009年9月26日,六,下午4:29

Hi holi,
   您好。
   我是不小心用google尋到這裡的,看到您的介紹,下載了Win32forth 4.2.671 和hh51w238.f,
   試了一下,出現"Error: InitializeWinIo Couldn't find procedure",無法看到您所提到的3個選
項。
    我使用的是winxp,不知為何會出現這個訊息?

   謝謝!!!

On 9月24日, 上午10時18分, holi <holin...@yahoo.com.tw> wrote:

...

閱讀更多 »


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
lu.albert  
檢視個人資料  
 更多選項 9月27日, 上午6時44分
寄件人: "lu.albert" <lu.alb...@gmail.com>
日期: Sat, 26 Sep 2009 15:44:53 -0700 (PDT)
當地時間: 2009年9月27日(星期日) 上午6時44分
主旨: Re: RE: [符式協會:578] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
Hi Chang Luke 您好,
   謝謝您的解說,已可以進入EF51了,接下來可以好好學了。

   謝謝!!!

On 9月26日, 下午10時27分, chang luke <holin...@yahoo.com.tw> wrote:

...

閱讀更多 »


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
松涛  
檢視個人資料  
 更多選項 9月29日, 下午8時40分
寄件人: 松涛 <idisbluefl...@gmail.com>
日期: Tue, 29 Sep 2009 05:40:33 -0700 (PDT)
當地時間: 2009年9月29日(星期二) 下午8時40分
主旨: Re: RE: [符式協會:578] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
我也对这个很感兴趣。一直想往8051的chip上灌forth。
十一到了,有时间好好学习了。

On 9月27日, 上午6时44分, "lu.albert" <lu.alb...@gmail.com> wrote:

...

閱讀更多 »


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
討論主旨已變更為 "RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM" 由 小P 著作
小P  
檢視個人資料  
 更多選項 9月30日, 下午4時48分
寄件人: 小P <p...@cht.com.tw>
日期: Wed, 30 Sep 2009 01:48:02 -0700 (PDT)
當地時間: 2009年9月30日(星期三) 下午4時48分
主旨: Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
hi,

Holi  大大

謝謝您的無私指導...

Linux LPIC-Level-1 昨日已通過認證考試(反正中滑店出的錢,不考白不考)

目前打算去電子街買麵柀板,電子零件及線材回來組一個eForth51的Core_Kernel Board,
xram => 64KB

再把 丁陳 老師 eForth51(ASM 小P已作一些修改) Port 上去
然後,把 以前所寫的商業等級的Firmware韌體C code 框架 轉寫 eForth code

這樣應該會有助於 eForth 的推廣...

現在 PC_base 的環境,已不可以同日而語了
1.Main Memory 跟吃水一樣,1G,2G,4G,8G....永無止境
2.Operating system 癡肥無比
3.pc上的程式設計者,謂口早以被養大了
4.GUI IDE 速食文化般及龐然大物恐龍等級的開發工具

有大學生甚至把 Assembly 甩得遠遠地...

被慣壞的pc上的程式設計者,聽到Forth,嗤之以鼻...

沉潛的Firmware韌體,卻是如獲至寶...

神兵利器...Forth

((( Forth is  ghost in chips )))

On 9月24日, 上午10時18分, holi <holin...@yahoo.com.tw> wrote:

...

閱讀更多 »


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
討論主旨已變更為 "RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM" 由 chang luke 著作
chang luke  
檢視個人資料  
 更多選項 10月1日, 上午1時37分
寄件人: chang luke <holin...@yahoo.com.tw>
日期: Thu, 1 Oct 2009 01:37:41 +0800 (CST)
當地時間: 2009年10月1日(星期四) 上午1時37分
主旨: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM

   感謝褒獎,好話令人心爽.
看似吃過大餐後,覺得小菜也不錯吧. ha  ha
其實我只能作作這小菜而已,只求能得個掌聲霸了.
 
assembly 這一塊一直都不被看得起, 因為太低階.
也沒有商業利益,所以不會有大公司願意花心思,將它做得更人性化.
加上傳統的語法限制,當然寫不出好東西來.明明簡單不過的指令稿得奇奇怪怪的.
又限制一大堆極不人性的規定.身為自由人的我無法忍受那種的束縛只好自起爐灶
但很辛苦.
在傳統forth裡,這一部分也是沒有好到哪裡,甚至awful.
所幸forth提供一個非常好的平台,可以讓我們盡心揮傻.所以多年來我寫出了不下十種的
assemler/disassembler/.....一直至今未逮.很辛苦勒.
all in all, thanks for your support and encouragement.
 
 

--- 09/9/30 (三),小P <p...@cht.com.tw> 寫道:

寄件者: 小P <p...@cht.com.tw>
主旨: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
收件者: "符式協會" <figtaiwan@googlegroups.com>
日期: 2009年9月30日,三,下午4:48

hi,

Holi  大大

謝謝您的無私指導...

Linux LPIC-Level-1 昨日已通過認證考試(反正中滑店出的錢,不考白不考)

目前打算去電子街買麵柀板,電子零件及線材回來組一個eForth51的Core_Kernel Board,
xram => 64KB

再把 丁陳 老師 eForth51(ASM 小P已作一些修改) Port 上去
然後,把 以前所寫的商業等級的Firmware韌體C code 框架 轉寫 eForth code

這樣應該會有助於 eForth 的推廣...

現在 PC_base 的環境,已不可以同日而語了
1.Main Memory 跟吃水一樣,1G,2G,4G,8G....永無止境
2.Operating system 癡肥無比
3.pc上的程式設計者,謂口早以被養大了
4.GUI IDE 速食文化般及龐然大物恐龍等級的開發工具

有大學生甚至把 Assembly 甩得遠遠地...

被慣壞的pc上的程式設計者,聽到Forth,嗤之以鼻...

沉潛的Firmware韌體,卻是如獲至寶...

神兵利器...Forth

((( Forth is  ghost in chips )))

On 9月24日, 上午10時18分, holi <holin...@yahoo.com.tw> wrote:

...

閱讀更多 »


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
holi  
檢視個人資料  
 更多選項 11月3日, 上午9時07分
寄件人: holi <holin...@yahoo.com.tw>
日期: Mon, 2 Nov 2009 17:07:40 -0800 (PST)
當地時間: 2009年11月3日(星期二) 上午9時07分
主旨: Re: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
hi,
eForth51開發板製作了如何?如否,我願題供幾塊借你開發使用如何?這塊電路板也是我當年為了發展eForth51所設計開發出來的.現今市售板
少有能配合eForth51這樣需求的記憶體架構.


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
小P  
檢視個人資料  
 更多選項 11月3日, 上午11時38分
寄件人: 小P <p...@cht.com.tw>
日期: Mon, 2 Nov 2009 19:38:35 -0800 (PST)
當地時間: 2009年11月3日(星期二) 上午11時38分
主旨: Re: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM

holi 前輩 :

不好意思,因為工作的關係以及準備明年的國考
所以,一直抽不出時間到電子街買麵柀板,電子零件及線材回來組一個eForth51的Core_Kernel Board

很高興! 前輩願意提供現成的板子....感激不盡~~~

小P 是否可以直接向前輩認購2~3塊板子

小P 的聯絡 e-Mail : p...@cht.com.tw

非常感謝!!!

~~~~~~~~~ 以 上 ~~~~~~~~~

On 11月3日, 上午9時07分, holi <holin...@yahoo.com.tw> wrote:


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
holi  
檢視個人資料  
 更多選項 11月7日, 下午10時22分
寄件人: holi <holin...@yahoo.com.tw>
日期: Sat, 7 Nov 2009 06:22:29 -0800 (PST)
當地時間: 2009年11月7日(星期六) 下午10時22分
主旨: Re: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
近日將塵封已久的eForth51發展板重新以清水洗過並高速脫水後才啟動,幸好還能動作. 先以 tetherred Forth 測試基本功能,還
好ok.透過 pc <---rs232 ---> 8051 可以順意地測試硬體的各部分功能,足證 tetherred Forth 之基本硬體功
能完全.
 如G'  p1.0=1    G'  r90=a  ...等這麼底層的功能.
之後 裝上32k ram (62256) 和內含eForth51 full system ( 含 eForth51 及assembler/
disassembler/decompiler 等) 的
32k eprom(27256) 也能跑. 操作法與模擬的一樣. 在模擬執行  EF51 時加入以下一段程式,燒入 rom ,即可在
eForth51發展板上
工作.

( 01B5  E4         )                A=0        \                 CLR_A
( 01B6  53  83  7F )        83  7F  Dn#        \         83  7F
ANL_D,#
( 01B9  93         )                A<(A+DP)   \
MOVC_A,@A+DPTR
( 01BA  43  83  80 )        83  80  Do#        \         83  80
ORL_D,#
( 01BD  F0         )                (DP)<A     \
MOVX_@DPTR,A
( 01BE  A3         )                DP+        \
INC_DPTR
( 01BF  DA  F4     )      01B5   2  R-?        \       01B5   2
DJNZ_R,D
( 01C1  DB  F2     )      01B5   3  R-?        \       01B5   3
DJNZ_R,D
( 01C3  22         )                RET        \                 RET

under EF51  加入
HERE   1B5 ORG    53E4 , 7F83 , 4393 , 8083 , A3F0 , F4DA , F2DB ,
C222 ,
ORG

現今對 forth 還感興趣的相信不多, 但個人有信心此二系統絕不輸給其他用 assembler 寫出的東西. interactive 功能絕
非其它能比.  believe me, my God!

或許有機會時show 給有興趣者一看,體會.體會.

On 11月3日, 上午11時38分, 小P <p...@cht.com.tw> wrote:


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
holi  
檢視個人資料  
 更多選項 11月18日, 上午11時04分
寄件人: holi <holin...@yahoo.com.tw>
日期: Tue, 17 Nov 2009 19:04:23 -0800 (PST)
當地時間: 2009年11月18日(星期三) 上午11時04分
主旨: Re: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
在HH51W238.F模擬 full eForth51 下,paste以下的程式到系統內,然後執行
16.bit.tetherred.Forth 指令.
即可將eForth51變成可以類似tetherred.Forth 的執行模式.

\ 16.bit.tetherred.Forth.under.eForth51

DEFER  command.table   20 ALLOT  \ 8*3=24=18h

: get.command  ( - n)   0  BEGIN  DROP  KEY  DF  AND  41 -  DUP 8  U<
UNTIL  ;   \ 'A'=41 ;  'a'=61.

: execute.command  ( n -)  3 * [ ' command.table ] LITERAL +
EXECUTE  ;

\ 16.bit.tetherred.Forth.under.eForth51   BEGIN   get.command
execute.command
: 16.bit.tetherred.Forth  BEGIN   get.command   execute.command
CR .S  AGAIN ;

: '0'~'F'>0~F  ( n - n1 -1 | n 0 )   \ DIGIT
  >R  R@  30  39  BETWEEN  IF   R>  30 -  -1 [ RET ]  THEN
      R@  41  46  BETWEEN  IF   R>  37 -  -1 [ RET ]  THEN  R> 0 ;

: enter.number    ( - n)    0
  BEGIN   KEY  DUP  0D  =
     IF   DROP  [  RET  ]
     THEN   '0'~'F'>0~F
     IF   SWAP  10 *  +
     ELSE DROP
     THEN
  AGAIN ;

: help  ( -)  CR  ." tricky Forth" ;

: go.name  ( -)   '  EXECUTE  ;  \ to be designed ???

  HERE   ' command.table  ORG
                        RET   NOP   NOP       \ A
                      ' EXECUTE       LJMP    \ B
                      ' .S            LJMP    \ C
                      ' DUP           LJMP    \ D
                      ' enter.number  LJMP    \ E
                      ' .S            LJMP    \ F
                      '  go.name      LJMP    \ G
                      '  help         LJMP    \ H
  ORG

On 11月7日, 下午10時22分, holi <holin...@yahoo.com.tw> wrote:


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
討論主旨已變更為 "RE: [符式協會:655] Re: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM" 由 chang luke 著作
chang luke  
檢視個人資料  
 更多選項 11月18日, 下午10時07分
寄件人: chang luke <holin...@yahoo.com.tw>
日期: Wed, 18 Nov 2009 22:07:33 +0800 (CST)
當地時間: 2009年11月18日(星期三) 下午10時07分
主旨: RE: [符式協會:655] Re: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM

在真實的 eForth51 發展板也試過可以執行此一 tetherred Forth 程式,惟輸入程式是用一行一行 paste 進去的.此一問題從windows出現後就存在著,以至於後來就放著不用.直到最近同好興起eForth51之議題後再度將冰封的發展板動起來,發覺有好多有意 義的功能.如用i/o控制下的單色卡可接vga螢幕以顯示文字或圖形,燒錄eprom,外存ram,rom/ram合併/独立,ram模擬rom......真 是無它可比.(自己ㄅ自己).
也藉此請有人開示如何解決eForth在發展時的一些問題.如 load file , assembler , small memory size cpu ( especialy 8 bit core ), ....
關於 tetherred Forth 我是在 RAM TECHNOLOGY 發現有此作法,有興趣者可以上網參考.

--- 09/11/18 (三),holi <holin...@yahoo.com.tw> 寫道:

寄件者: holi <holin...@yahoo.com.tw>
主旨: [符式協會:655] Re: RE: [符式協會:592] Re: RE: [符式協會:566] 請教各位前輩有關eForth=>51SE22D.ASM
收件者: "符式協會" <figtaiwan@googlegroups.com>
日期: 2009年11月18日,三,上午11:04

在HH51W238.F模擬 full eForth51 下,paste以下的程式到系統內,然後執行
16.bit.tetherred.Forth 指令.
即可將eForth51變成可以類似tetherred.Forth 的執行模式.

\ 16.bit.tetherred.Forth.under.eForth51

DEFER  command.table   20 ALLOT  \ 8*3=24=18h

: get.command  ( - n)   0  BEGIN  DROP  KEY  DF  AND  41 -  DUP 8  U<
UNTIL  ;   \ 'A'=41 ;  'a'=61.

: execute.command  ( n -)  3 * [ ' command.table ] LITERAL +
EXECUTE  ;

 
: 16.bit.tetherred.Forth  BEGIN   get.command   execute.command
CR .S  AGAIN ;

: '0'~'F'>0~F  ( n - n1 -1 | n 0 )   \ DIGIT
  >R  R@  30  39  BETWEEN  IF   R>  30 -  -1 [ RET ]  THEN
      R@  41  46  BETWEEN  IF   R>  37 -  -1 [ RET ]  THEN  R> 0 ;

: enter.number    ( - n)    0
  BEGIN   KEY  DUP  0D  =
     IF   DROP  [  RET  ]
     THEN   '0'~'F'>0~F
     IF   SWAP  10 *  +
     ELSE DROP
     THEN
  AGAIN ;

: help  ( -)  CR  ." tricky Forth" ;

: go.name  ( -)   '  EXECUTE  ;  \ to be designed ???

  HERE   ' command.table  ORG
                        RET   NOP   NOP       \ A
                      ' EXECUTE       LJMP    \ B
                      ' .S            LJMP    \ C
                      ' DUP           LJMP    \ D
                      ' enter.number  LJMP    \ E
                      ' .S            LJMP    \ F
                      '  go.name      LJMP    \ G
                      '  help         LJMP    \ H
  ORG

 

___________________________________________________
 您的生活即時通 - 溝通、娛樂、生活、工作一次搞定!
 http://messenger.yahoo.com.tw/


    回覆    回覆作者    轉寄  
您必須先登入才能張貼訊息。
若要張貼訊息,您必須先加入此群組
請在留言之前更新您訂閱設定網頁上的暱稱。
您沒有留言所需的權限。
無其他留言
« 返回討論主題 « 較新的主題     較舊的主題 »

建立群組 - Google 網上論壇 - Google 首頁 - 服務條款 - 隱私權政策
©2009 Google