請教各位前輩有關eForth=>51SE22D.ASM
您要留言的群組是
Usenet 群組 。在此群組留言,網際網路上的任何使用者將可以看到您的電郵地址。
您的回覆郵件尚未寄出。
您已成功留言
寄件人:
小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++;
}
}
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
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 <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:
> 您好!
> 關於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
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
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:
> 前輩您好:
> 謝謝您的抬愛!! > 沒問題.....
> 小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:
> > 您好! > > 關於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
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
"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:
> 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:
> > 前輩您好:
> > 謝謝您的抬愛!! > > 沒問題.....
> > 小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:
> > > 您好! > > > 關於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
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
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:
> 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:
> > 前輩您好:
> > 謝謝您的抬愛!!
> > 沒問題.....
> > 小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:
> > > 您好!
> > > 關於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
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
"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:
> \ 發 表 人:燕南
> \ 公告日期: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:
> > 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:
> > > 前輩您好:
> > > 謝謝您的抬愛!! > > > 沒問題.....
> > > 小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:
> > > > 您好! > > > > 關於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; //
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
松涛 <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:
> Hi Chang Luke 您好,
> 謝謝您的解說,已可以進入EF51了,接下來可以好好學了。
> 謝謝!!!
> On 9月26日, 下午10時27分, chang luke <holin... @yahoo.com.tw> wrote:
> > \ 發 表 人:燕南 > > \ 公告日期: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:
> > > 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:
> > > > 前輩您好:
> > > > 謝謝您的抬愛!! > > > > 沒問題.....
> > > > 小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:
> > > > > 您好! > > > > > 關於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
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
小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:
> 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:
> > 前輩您好:
> > 謝謝您的抬愛!! > > 沒問題.....
> > 小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:
> > > 您好! > > > 關於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
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
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:
> 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:
> > 前輩您好:
> > 謝謝您的抬愛!!
> > 沒問題.....
> > 小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:
> > > 您好!
> > > 關於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
...
閱讀更多 »
您沒有留言所需的權限。
寄件人:
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這樣需求的記憶體架構.
> 目前打算去電子街買麵柀板,電子零件及線材回來組一個eForth51的Core_Kernel Board,
> xram => 64KB
> 再把 丁陳 老師 eForth51(ASM 小P已作一些修改) Port 上去 > 然後,把 以前所寫的商業等級的Firmware韌體C code 框架 轉寫 eForth code
> 這樣應該會有助於 eForth 的推廣...
您沒有留言所需的權限。
寄件人:
小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:
> hi,
> eForth51開發板製作了如何?如否,我願題供幾塊借你開發使用如何?這塊電路板也是我當年為了發展eForth51所設計開發出來的.現今市售板
> 少有能配合eForth51這樣需求的記憶體架構.
> > 目前打算去電子街買麵柀板,電子零件及線材回來組一個eForth51的Core_Kernel Board, > > xram => 64KB
> > 再把 丁陳 老師 eForth51(ASM 小P已作一些修改) Port 上去 > > 然後,把 以前所寫的商業等級的Firmware韌體C code 框架 轉寫 eForth code
> > 這樣應該會有助於 eForth 的推廣...- 隱藏被引用文字 -
> - 顯示被引用文字 -
您沒有留言所需的權限。
寄件人:
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 前輩 :
> 不好意思,因為工作的關係以及準備明年的國考 > 所以,一直抽不出時間到電子街買麵柀板,電子零件及線材回來組一個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:
> > hi, > > eForth51開發板製作了如何?如否,我願題供幾塊借你開發使用如何?這塊電路板也是我當年為了發展eForth51所設計開發出來的.現今市售板 > > 少有能配合eForth51這樣需求的記憶體架構.
> > > 目前打算去電子街買麵柀板,電子零件及線材回來組一個eForth51的Core_Kernel Board, > > > xram => 64KB
> > > 再把 丁陳 老師 eForth51(ASM 小P已作一些修改) Port 上去 > > > 然後,把 以前所寫的商業等級的Firmware韌體C code 框架 轉寫 eForth code
> > > 這樣應該會有助於 eForth 的推廣...- 隱藏被引用文字 -
> > - 顯示被引用文字 -- 隱藏被引用文字 -
> - 顯示被引用文字 -
您沒有留言所需的權限。
寄件人:
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:
> 近日將塵封已久的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 前輩 :
> > 不好意思,因為工作的關係以及準備明年的國考 > > 所以,一直抽不出時間到電子街買麵柀板,電子零件及線材回來組一個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:
> > > hi, > > > eForth51開發板製作了如何?如否,我願題供幾塊借你開發使用如何?這塊電路板也是我當年為了發展eForth51所設計開發出來的.現今市售板 > > > 少有能配合eForth51這樣需求的記憶體架構.
> > > > 目前打算去電子街買麵柀板,電子零件及線材回來組一個eForth51的Core_Kernel Board, > > > > xram => 64KB
> > > > 再把 丁陳 老師 eForth51(ASM 小P已作一些修改) Port 上去 > > > > 然後,把 以前所寫的商業等級的Firmware韌體C code 框架 轉寫 eForth code
> > > > 這樣應該會有助於 eForth 的推廣...- 隱藏被引用文字 -
> > > - 顯示被引用文字 -- 隱藏被引用文字 -
> > - 顯示被引用文字 -- 隱藏被引用文字 -
> - 顯示被引用文字 -
您沒有留言所需的權限。
寄件人:
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/
您沒有留言所需的權限。