Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #15979 > unrolled thread

Nice little Forth article

Started byMark Wills <forthfreak@gmail.com>
First post2012-10-06 11:42 -0700
Last post2012-10-18 09:15 -0700
Articles 11 on this page of 31 — 16 participants

Back to article view | Back to comp.lang.forth


Contents

  Nice little Forth article Mark Wills <forthfreak@gmail.com> - 2012-10-06 11:42 -0700
    Re: Nice little Forth article "Elizabeth D. Rather" <erather@forth.com> - 2012-10-06 10:23 -1000
    Re: Nice little Forth article "Rod Pemberton" <do_not_have@notemailnotz.cmm> - 2012-10-06 17:56 -0400
      Re: Nice little Forth article "Elizabeth D. Rather" <erather@forth.com> - 2012-10-06 12:41 -1000
        Re: Nice little Forth article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-10-06 18:10 -0700
      Re: Nice little Forth article Mark Wills <forthfreak@gmail.com> - 2012-10-06 23:54 -0700
        Re: Nice little Forth article "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-10-07 19:14 -0400
        Re: Nice little Forth article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-10-10 19:19 -0700
    Re: Nice little Forth article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-10-06 20:30 -0700
      Re: Nice little Forth article "Bill Leary" <Bill_Leary@msn.com> - 2012-10-07 17:26 -0400
        Re: Nice little Forth article "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-10-07 20:02 -0400
          Re: Nice little Forth article "Bill Leary" <Bill_Leary@msn.com> - 2012-10-09 08:35 -0400
        Re: Nice little Forth article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-10-10 19:27 -0700
          Re: Nice little Forth article "Bill Leary" <Bill_Leary@msn.com> - 2012-10-11 08:28 -0400
            Re: Nice little Forth article "Elizabeth D. Rather" <erather@forth.com> - 2012-10-11 08:06 -1000
            Re: Nice little Forth article "Ed" <invalid@nospam.com> - 2012-10-14 16:17 +1000
              Re: Nice little Forth article Anonymous <nobody@remailer.paranoici.org> - 2012-10-14 13:41 +0000
                Re: Nice little Forth article Howerd <howerdo@yahoo.co.uk> - 2012-10-14 09:51 -0700
                  Re: Nice little Forth article Mark Wills <markrobertwills@yahoo.co.uk> - 2012-10-14 10:41 -0700
                    Re: Nice little Forth article Bernd Paysan <bernd.paysan@gmx.de> - 2012-10-14 22:28 +0200
                      Re: Nice little Forth article Paul Rubin <no.email@nospam.invalid> - 2012-10-14 13:39 -0700
                  Re: Nice little Forth article Bernd Paysan <bernd.paysan@gmx.de> - 2012-10-14 19:42 +0200
                    Re: Nice little Forth article rickman <gnuarm@gmail.com> - 2012-10-14 20:02 -0400
                    Re: Nice little Forth article Sara Cruz <iluv2hugg@gmail.com> - 2012-10-17 19:45 -0700
                      Re: Nice little Forth article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-10-17 20:20 -0700
                      Re: Nice little Forth article Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-18 11:39 -0500
                      Re: Nice little Forth article Bernd Paysan <bernd.paysan@gmx.de> - 2012-10-18 18:53 +0200
                        Re: Nice little Forth article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-10-19 18:58 -0700
                          Re: Nice little Forth article rickman <gnuarm@gmail.com> - 2012-10-20 18:08 -0400
    Re: Nice little Forth article "Ed" <invalid@nospam.com> - 2012-10-10 08:23 +1000
      Re: Nice little Forth article Brad Eckert <hwfwguy@gmail.com> - 2012-10-18 09:15 -0700

Page 2 of 2 — ← Prev page 1 [2]


#16270

FromPaul Rubin <no.email@nospam.invalid>
Date2012-10-14 13:39 -0700
Message-ID<7xwqysyehz.fsf@ruckus.brouhaha.com>
In reply to#16269
Bernd Paysan <bernd.paysan@gmx.de> writes:
> Whenever Intel's designer were free to design something that wasn't 
> backward compatible, from i432 over i860 to IA64, they produced 
> something hellish complicated and/or difficult to program.  

People told me good things about the i960, though I never programmed it
myself.  It was rather popular in embedded systems in areas where ARMs
etc. are now used today.

[toc] | [prev] | [next] | [standalone]


#16268

FromBernd Paysan <bernd.paysan@gmx.de>
Date2012-10-14 19:42 +0200
Message-ID<20479957.yqWjtDkqp6@sunwukong.fritz.box>
In reply to#16265
Howerd wrote:
> I have been using 8051's since the early 80's and I have grown to love
> them. I think that the way the address space is divided into external,
> internal and bits is just about right for the types of applications
> that 8051's are targeted at.

I don't really see a point why you expose something trivial like an 
address decoder to the user and have different instructions (with 
different encodings and even different pointer registers) for the 
different parts of the address space.

At the time I wrote the b16, I was working on a project where our 
customer had insisted on an 8051 as embedded CPU - the reason was legacy 
code which they didn't use later... and familiarity with the device, 
which was the same rubbish, as they outsourced the programming of the 
new firmware...

I had written some test programs with the 8051, and it made me thick.  
It was a major motivator to write something better.

> Likewise the 80x86 family, while limited
> by having to be backward compatible back to 8 bits, is very good at
> producing compact programs.

It was only source-code backward compatible.  Anything would have done.  
IMHO, the main reason why x86 was a success is that it was a "plan B", 
and they had only two people sitting together for three weeks to design 
the ISA.  They didn't have enough resources to screw up completely.  The 
386 extension wasn't too bad, it made the ISA more regular; though the 
incredible amount of stupid and unusable bloat with the 286 segmentation 
did have to go in.  And the x64 extension, which finally gave us a sane 
number of registers, wasn't even made by them.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

[toc] | [prev] | [next] | [standalone]


#16275

Fromrickman <gnuarm@gmail.com>
Date2012-10-14 20:02 -0400
Message-ID<k5fjqi$g24$1@dont-email.me>
In reply to#16268
On 10/14/2012 1:42 PM, Bernd Paysan wrote:
> Howerd wrote:
> It was only source-code backward compatible.  Anything would have done.

I believe you mean at the assembly language source level.  That was/is a 
big deal to many!


> IMHO, the main reason why x86 was a success is that it was a "plan B",
> and they had only two people sitting together for three weeks to design
> the ISA.  They didn't have enough resources to screw up completely.

At the top of my gnuarm.com web page (not designed by me) is the quote,

"Steve is one of the brightest guys I've ever worked with - brilliant; 
but when we decided to do a microprocessor on our own, I made two great 
decisions - I gave them [Steve Furber and Sophie Wilson] two things 
which National, Intel and Motorola had never given their design teams: 
the first was no money; the second was no people. The only way they 
could do it was to keep it really simple." -- Hermann Hauser

This is about the ARM.  Limited resources is not an impediment to a good 
design, nor is it a guarantee.

The x86 is the success that everyone loves to hate.  I'm fairly 
agnostic, but I avoid PICs and the 8051, not because they are terrible, 
but because I want to learn other things than the oddities of using them.

Rick

[toc] | [prev] | [next] | [standalone]


#16420

FromSara Cruz <iluv2hugg@gmail.com>
Date2012-10-17 19:45 -0700
Message-ID<38eec495-fbc2-4a21-8768-c7564ccc0ff7@pz10g2000pbb.googlegroups.com>
In reply to#16268
On Oct 14, 10:42 am, Bernd Paysan <bernd.pay...@gmx.de> wrote:
> Howerd wrote:
> > I have been using 8051's since the early 80's and I have grown to love
> > them. I think that the way the address space is divided into external,
> > internal and bits is just about right for the types of applications
> > that 8051's are targeted at.
>
> I don't really see a point why you expose something trivial like an
> address decoder to the user and have different instructions (with
> different encodings and even different pointer registers) for the
> different parts of the address space.

Because it significantly reduces code size.

Other processors, such as the 6805 and 6808 etc., are designed to
address 64K of memory. If you only have a small amount of memory
however, then you waste a lot of memory and time messing around with
16-bit (2-byte) addresses when an 8-bit (1-byte) address would do.

The clever thing about the 8051 is that it could address more than 256
memory locations, using only 1-byte addresses --- this was because the
addressing mode determined which memory bank was being used.

I agree with Howerd that the 8051 was an awesome design "for the types
of applications that 8051's are targeted at." When you are programming
in assembly language, and you have a chip with a small amount of on-
chip memory, then the 8051 was (actually, is) a good design. The 8051
only became a problem when it got drafted into tasks that were too big
for it, such as supporting high-level languages and large memories.

[toc] | [prev] | [next] | [standalone]


#16421

FromHugh Aguilar <hughaguilar96@yahoo.com>
Date2012-10-17 20:20 -0700
Message-ID<14b4657f-35ad-46cd-92bb-8d54e1e73119@ro10g2000pbc.googlegroups.com>
In reply to#16420
On Oct 17, 7:45 pm, Sara Cruz <iluv2h...@gmail.com> wrote:
> On Oct 14, 10:42 am, Bernd Paysan <bernd.pay...@gmx.de> wrote:
>
> > Howerd wrote:
> > > I have been using 8051's since the early 80's and I have grown to love
> > > them. I think that the way the address space is divided into external,
> > > internal and bits is just about right for the types of applications
> > > that 8051's are targeted at.
>
> > I don't really see a point why you expose something trivial like an
> > address decoder to the user and have different instructions (with
> > different encodings and even different pointer registers) for the
> > different parts of the address space.
>
> Because it significantly reduces code size.
>
> Other processors, such as the 6805 and 6808 etc., are designed to
> address 64K of memory. If you only have a small amount of memory
> however, then you waste a lot of memory and time messing around with
> 16-bit (2-byte) addresses when an 8-bit (1-byte) address would do.
>
> The clever thing about the 8051 is that it could address more than 256
> memory locations, using only 1-byte addresses --- this was because the
> addressing mode determined which memory bank was being used.
>
> I agree with Howerd that the 8051 was an awesome design "for the types
> of applications that 8051's are targeted at." When you are programming
> in assembly language, and you have a chip with a small amount of on-
> chip memory, then the 8051 was (actually, is) a good design. The 8051
> only became a problem when it got drafted into tasks that were too big
> for it, such as supporting high-level languages and large memories.

This message is not "Sara Cruz" (whoever that is), but are actually me
--- Hugh Aguilar

I'm at a library using a public computer. Apparently the last person
on the computer logged in and checked the box to stay logged in (the
one that says *don't* check this if on a shared computer). I posted
this message not realizing that I had never logged in under my own
name.

Oops!

[toc] | [prev] | [next] | [standalone]


#16432

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2012-10-18 11:39 -0500
Message-ID<HtOdncOKIJJWrR3NnZ2dnUVZ8q6dnZ2d@supernews.com>
In reply to#16420
Sara Cruz <iluv2hugg@gmail.com> wrote:
> I agree with Howerd that the 8051 was an awesome design "for the types
> of applications that 8051's are targeted at." When you are programming
> in assembly language, and you have a chip with a small amount of on-
> chip memory, then the 8051 was (actually, is) a good design. The 8051
> only became a problem when it got drafted into tasks that were too big
> for it, such as supporting high-level languages and large memories.

The 8051 is a fine Forth target though, and threaded code can make for
very small code sizes; this make the difference betwwen a progarm that
fits and one that doesn't if you only have a small ROM.

Andrew.

[toc] | [prev] | [next] | [standalone]


#16436

FromBernd Paysan <bernd.paysan@gmx.de>
Date2012-10-18 18:53 +0200
Message-ID<1932346.WIXcKGQscI@sunwukong.fritz.box>
In reply to#16420
Sara Cruz wrote:
> Other processors, such as the 6805 and 6808 etc., are designed to
> address 64K of memory. If you only have a small amount of memory
> however, then you waste a lot of memory and time messing around with
> 16-bit (2-byte) addresses when an 8-bit (1-byte) address would do.

The 6502 had its famous zero-page.  And the b16 has bytes and words as 
literals, so if you like to keep addresses short, you use the byte 
literals (effectively also a zero-page - the memory mapping schemes I 
have used had a fast and small SRAM mapped to 0-FF).  The benefit you 
get from that is that you

a) have a compact encoding for frequently used addresses and
b) you don't have to special-case these addresses, there is only one 
uniform address space.

> The clever thing about the 8051 is that it could address more than 256
> memory locations, using only 1-byte addresses --- this was because the
> addressing mode determined which memory bank was being used.

When I started at Mikron, we had a legacy PIC16 program, which had to 
use bank switching, due to the limits of the PIC16.  The PIC17 program, 
which had longer addresses, but no bank switching, was considerably 
smaller.  Bank switching is not a good idea.

> I agree with Howerd that the 8051 was an awesome design "for the types
> of applications that 8051's are targeted at." When you are programming
> in assembly language, and you have a chip with a small amount of on-
> chip memory, then the 8051 was (actually, is) a good design. The 8051
> only became a problem when it got drafted into tasks that were too big
> for it, such as supporting high-level languages and large memories.

Oh yes, with "large memories", you mean everything beyond 128 Bytes of 
RAM.  The 8051 architecture pretty much matched what was internal (the 
4k ROM+128b RAM); often the 8048 (which couldn't extend the memory) was 
good enough for these tasks, and therefore still remained very popular.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

[toc] | [prev] | [next] | [standalone]


#16511

FromHugh Aguilar <hughaguilar96@yahoo.com>
Date2012-10-19 18:58 -0700
Message-ID<7c185a7d-f619-499f-bfcf-ddc5992e9409@v19g2000pbt.googlegroups.com>
In reply to#16436
On Oct 18, 9:53 am, Bernd Paysan <bernd.pay...@gmx.de> wrote:
> When I started at Mikron, we had a legacy PIC16 program, which had to
> use bank switching, due to the limits of the PIC16.  The PIC17 program,
> which had longer addresses, but no bank switching, was considerably
> smaller.  Bank switching is not a good idea.

I've programmed the PIC16. In my experience, bank-switching works fine
so long as each data structure fits entirely within a bank. If you
have a data-structure, such as array, that requires more than one bank
then the whole thing can be a big mess. The PIC16 banks were typically
plenty big, whereas the PIC14 banks were almost always too small.

The 8086 was another good design. We got to exceed the 64K limitation
of the Z80 etc., but we still got to use 16-bit registers and 16-bit
pointers (unlike with the 68000 in which we had 32-bit registers and
pointers, but a 16-bit data bus). I think that the 8086 would have
been improved if it had had more segment registers --- having only ES
to play with was too limiting --- but it was still pretty good. It was
quite rare for any data-structure, such as an array, to be larger than
64K.

Of course, none of this matters now --- we have 64-bit registers and
gigabytes of memory. Even with micro-controllers, we have 16-bit
registers and now longer have to mess with 8-bit registers at all. We
even have 32-bit micro-controllers, which I never predicted would be
seen.

[toc] | [prev] | [next] | [standalone]


#16522

Fromrickman <gnuarm@gmail.com>
Date2012-10-20 18:08 -0400
Message-ID<k5v7e1$jha$1@dont-email.me>
In reply to#16511
On 10/19/2012 9:58 PM, Hugh Aguilar wrote:
>
> The 8086 was another good design. We got to exceed the 64K limitation
> of the Z80 etc., but we still got to use 16-bit registers and 16-bit
> pointers (unlike with the 68000 in which we had 32-bit registers and
> pointers, but a 16-bit data bus). I think that the 8086 would have
> been improved if it had had more segment registers --- having only ES
> to play with was too limiting --- but it was still pretty good. It was
> quite rare for any data-structure, such as an array, to be larger than
> 64K.

How were 32 bit registers limiting?  You don't need to use the full 32 
bits.  Memory transfers could be done in 8, 16 or 32 bit sizes so you 
don't waste bandwidth on the bus.  I've never met anyone before who said 
the x86 architecture was better than the MC68000.


> Of course, none of this matters now --- we have 64-bit registers and
> gigabytes of memory. Even with micro-controllers, we have 16-bit
> registers and now longer have to mess with 8-bit registers at all. We
> even have 32-bit micro-controllers, which I never predicted would be
> seen.

I remember the first time I realized that we would someday actually have 
a single chip RAM with 1 billion bits!  I was actually in awe thinking 
about that.  They even could predict when that would be!!!  I still 
can't understand how we continually need more and more of the stuff.

You can have more food than you can eat, more money than you know how to 
spend and more women than are good for your soul, but you can never have 
too many friends, no one ever lives long enough and you will never have 
enough RAM in your computer!

Rick

[toc] | [prev] | [next] | [standalone]


#16151

From"Ed" <invalid@nospam.com>
Date2012-10-10 08:23 +1000
Message-ID<k53ep1$8ub$1@speranza.aioe.org>
In reply to#15979
Mark Wills wrote:
> http://toddbot.blogspot.com/2012/04/why-forth-still-matters-in-this.html
>
> Thanks to JohnnyBritish.

It is a nice article but ...

There was a vendor A.M. Research that specialized in low-cost Forth
systems for exactly such applications.  That vendor is no longer in
business.  If "forth-still-matters" would such vendors not only exist but
thrive?





[toc] | [prev] | [next] | [standalone]


#16430

FromBrad Eckert <hwfwguy@gmail.com>
Date2012-10-18 09:15 -0700
Message-ID<7b6e77b7-db34-48bb-a70c-a5cf64740a8d@googlegroups.com>
In reply to#16151
On Tuesday, October 9, 2012 3:23:49 PM UTC-7, Ed wrote:
> There was a vendor A.M. Research that specialized in low-cost Forth
> systems for exactly such applications.  That vendor is no longer in
> business.  If "forth-still-matters" would such vendors not only exist but
> thrive?

Forth vendors survive by using Forth to write applications. Selling tools doesn't pay the bills because the market is too small. Improvements to the tools happen mostly because the vendors are using them to do real jobs. 

The problem is that most people are lazy. They eat junk food instead of healthy because everyone else does it. Why would choice of programming language deviate from the prevailing psychology? The cultures we are born into, because of the way power structures are set up, teach us from a young age to follow the herd.

Forth has persisted as long as it has, in spite of being the industry's red headed stepchild, because its technical merits.

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | comp.lang.forth


csiph-web