Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Commodore » Commodore 8-bit » SuperForth 64
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
SuperForth 64 [message #204371] Tue, 02 March 2010 15:59 Go to next message
christianlott1 is currently offline  christianlott1
Messages: 1852
Registered: January 2012
Karma: 0
Senior Member
Heard a little about this but can't find a link to the program
anywhere.

Anyone have this?

Thanks
Re: SuperForth 64 [message #204373 is a reply to message #204371] Tue, 02 March 2010 17:03 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

On Mar 2, 3:59 pm, christianlott1 <christianlo...@yahoo.com> wrote:
> Heard a little about this but can't find a link to the program
> anywhere.
>
> Anyone have this?
>
> Thanks

Don't have it, its a Forth-79 in a cartridge. Centsible Software used
to have it, looking at their site it looks like they've gone under
five or more years back, missing links and last (c) in their site is
2003.

Several fig-Forth and Forth-79 soft versions are available, though
they often use REL files to store blocks, which can be tricky in
emulators.

I think that VolksForth was updated to the Forth-94 standard (the
formal language standard that went through ANS and ISO ... the
previous "standards" were more informal efforts).

If you are looking for an image of a cartridge based Forth, google for
64Forth, which was a fig-Forth by Tom Zimmer, who was probably the
most prolific implementer of 6502 based fig-Forth's for late 70's,
early 80's home computer systems.

Of course, fig-Forth is dead slow on the 6502 because its indirect
threaded, and direct threaded is much faster, while subroutine
threaded is faster again. SO the fastest C64 Forth was the subroutine
threaded Blazin' Forth.
Re: SuperForth 64 [message #204376 is a reply to message #204373] Tue, 02 March 2010 21:09 Go to previous messageGo to next message
christianlott1 is currently offline  christianlott1
Messages: 1852
Registered: January 2012
Karma: 0
Senior Member
On Mar 2, 4:03 pm, BruceMcF <agil...@netscape.net> wrote:
> SO the  fastest C64 Forth was the subroutine
> threaded Blazin' Forth.

ok. Thanks for this :)
Re: SuperForth 64 [message #204379 is a reply to message #204371] Tue, 02 March 2010 22:24 Go to previous messageGo to next message
Mr. X is currently offline  Mr. X
Messages: 58
Registered: September 2003
Karma: 0
Member
"christianlott1" <christianlott1@yahoo.com> wrote in message
news:c69d5edd-17dc-475b-abfa-a0b3ffbb696c@g28g2000prb.googlegroups.com...
> Heard a little about this but can't find a link to the program
> anywhere.
>
> Anyone have this?

The most comprehensive list of languages for Commdores (including Forths) is
at:

Commodore Languages List Compiled by Dan Fandrich

http://www.npsnet.com/danf/cbm/languages.html


X
Re: SuperForth 64 [message #204380 is a reply to message #204376] Tue, 02 March 2010 23:32 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

On Mar 2, 9:09 pm, christianlott1 <christianlo...@yahoo.com> wrote:
> On Mar 2, 4:03 pm, BruceMcF <agil...@netscape.net> wrote:
>
>> SO the  fastest C64 Forth was the subroutine
>> threaded Blazin' Forth.
>
> ok. Thanks for this :)

I got several of these from the Taygeta Forth archives, but they seem
to be down, and Volksforth is harder to find since that is the German
forth interest group that did that one.

A 64forth.zip and a Volks*.zip can be found at:

http://groups.google.com/group/niclos-for-forth-94/files
Re: SuperForth 64 [message #204392 is a reply to message #204380] Wed, 03 March 2010 09:00 Go to previous messageGo to next message
christianlott1 is currently offline  christianlott1
Messages: 1852
Registered: January 2012
Karma: 0
Senior Member
On Mar 2, 10:32 pm, BruceMcF <agil...@netscape.net> wrote:
> On Mar 2, 9:09 pm, christianlott1 <christianlo...@yahoo.com> wrote:
>
>> On Mar 2, 4:03 pm, BruceMcF <agil...@netscape.net> wrote:
>
>>> SO the  fastest C64 Forth was the subroutine
>>> threaded Blazin' Forth.
>
>> ok. Thanks for this :)
>
> I got several of these from the Taygeta Forth archives, but they seem
> to be down, and Volksforth is harder to find since that is the German
> forth interest group that did that one.
>
> A 64forth.zip and a Volks*.zip can be found at:
>
> http://groups.google.com/group/niclos-for-forth-94/files

hforthx.cpm would not download as it has 0 bytes.

Thanks :) Much appreciated.
Re: SuperForth 64 [message #204393 is a reply to message #204380] Wed, 03 March 2010 09:20 Go to previous messageGo to next message
christianlott1 is currently offline  christianlott1
Messages: 1852
Registered: January 2012
Karma: 0
Senior Member
On Mar 2, 10:32 pm, BruceMcF <agil...@netscape.net> wrote:

> I got several of these from the Taygeta Forth archives,

ftp://ftp.taygeta.com/pub/Forth/compilers/native/misc/commod ore64/
Re: SuperForth 64 [message #204394 is a reply to message #204393] Wed, 03 March 2010 10:41 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

On Mar 3, 9:20 am, christianlott1 <christianlo...@yahoo.com> wrote:
> On Mar 2, 10:32 pm, BruceMcF <agil...@netscape.net> wrote:

>> I got several of these from the Taygeta Forth archives,

> ftp://ftp.taygeta.com/pub/Forth/compilers/native/misc/commod ore64/

Yes, it was not coming through in html yesterday, which were the links
I was using. ("used to work five or more years ago" applies to a
number of things from the 80's).
Re: SuperForth 64 [message #204395 is a reply to message #204392] Wed, 03 March 2010 10:47 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

On Mar 3, 9:00 am, christianlott1 <christianlo...@yahoo.com> wrote:
> hforthx.cpm would not download as it has 0 bytes.

Good thing, too, it was buggy.

Thx, have to remember to erase that file (extending hForth for CP/M
went into the backburner ... when I get back into it, I'll probably
use Camel for CP/M instead, and give it BLOCK files ... I need more
experience with programming CP/M files in their own style before
implementing the Forth-94 FILE wordset).
Re: SuperForth 64 [message #204396 is a reply to message #204373] Wed, 03 March 2010 10:58 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

On Mar 2, 5:03 pm, BruceMcF <agil...@netscape.net> wrote:
> SO the  fastest C64 Forth was the subroutine
> threaded Blazin' Forth.

Blazin' Forth is also at taygeta, thanks for the ftp address.

Only problem with a subroutine threaded forth is it compiled bigger
programs. If compact execution is wanted, a bit threaded interpreter
may be a good combination of speed and code size.

It would be built with primitives that end with "JMP NEXT", and "IP"
and "W" as two zero-page vectors (if Basic vectors are reset to run
Basic in a Box at $8000 and the Forth in $0800 to $7FFF, that would be
W=$FB and IP=$FD).

NEXT:
CLC
LDA IP
ADC #2
STA IP
BCC NEXT1
INC IP+1
NEXT1:
LDY #1
LDA (IP),Y
BEQ EXIT
BMI ENTER
STA W+1
DEY
LDA (IP),Y
STA W
JMP (W)
ENTER:
AND #$7F
STA W+1
DEY
LDA (IP),Y
Re: SuperForth 64 [message #204397 is a reply to message #204396] Wed, 03 March 2010 11:08 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

Oops, hit the wrong key

On Mar 3, 10:58 am, BruceMcF <agil...@netscape.net> wrote:

NEXT:
 CLC
 LDA IP
 ADC #2
 STA IP
 BCC START
 INC IP+1
START:
 LDY #1
 LDA (IP),Y
 BEQ EXIT
 BMI ENTER
 STA W+1
 DEY
 LDA (IP),Y
 STA W
 JMP (W)
ENTER:
AND #$7F
STA W+1
DEY
LDA (IP),Y
TAY
LDA IP+1
PHA
PDA IP
PHA
STY IP
LDA W+1
STA IP+1
JMP START
EXIT:
CLC
PLA
ADC #2
STA IP
PLA
ADC #0
STA IP+1
JMP START

As a first start, the data stack can be X-indexed on the stack page,
starting at the top of the area the C64 uses and building up. 128
bytes is plenty for data stack and 64 bytes is plenty for return
stack, so the stack page has ample space for a single-tasking Forth.

If upgrading to a pre-emptive multi-tasking Forth, you'd switch the
data stack to two pages elsewhere in RAM, high bytes in one, low bytes
in the other. That gives four independent 128 byte data stacks just by
switching X in the task switch. A page for USER variables and
independent PAD, and you have one background task available for a
scheduler, and two background tasks available for interupt-driven I/
O.
Re: SuperForth 64 [message #204400 is a reply to message #204397] Wed, 03 March 2010 17:13 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

On Mar 3, 11:08 am, BruceMcF <agil...@netscape.net> wrote:

I just noticed that it can be made relocatable (though of course the
dictionary would not be without the "compile it again at a different
location and find the words that are offset" trick):

NEXT:
  CLC
  LDA IP
  ADC #2
  STA IP
  BCC START
  INC IP+1
START:
  LDY #1
  LDA (IP),Y
  BEQ EXIT
  BMI ENTER
  STA W+1
  DEY
  LDA (IP),Y
  STA W
  JMP (W)
ENTER:
 AND #$7F
 STA W+1
 DEY
 LDA (IP),Y
 TAY
 LDA IP+1
 PHA
 PDA IP
 PHA
 STY IP
 LDA W+1
 STA IP+1
BPL START
BRK
EXIT:
 CLC
 PLA
 ADC #2
 STA IP
 PLA
 ADC #0
 STA IP+1
BPL START
BRK

.... since if the top bit is not clear, in this implementation its
outside of the Forth dictionary and up in the memory for running
BASIC, I/O, the Kernal, the memory heap, the Block buffer, etc (RAM
under Kernal for graphics, RAM under BASIC rom for ALLOCATE, and
remember when launching into BASIC that nothing in ALLOCATED memory
can be passed..
Re: SuperForth 64 [message #204401 is a reply to message #204400] Wed, 03 March 2010 17:27 Go to previous messageGo to next message
christianlott1 is currently offline  christianlott1
Messages: 1852
Registered: January 2012
Karma: 0
Senior Member
I guess I should plug Jim Lawless' blog for bringing this to my
attention:

http://jimlawless.wordpress.com/
Re: SuperForth 64 [message #204465 is a reply to message #204401] Sat, 06 March 2010 14:53 Go to previous messageGo to next message
christianlott1 is currently offline  christianlott1
Messages: 1852
Registered: January 2012
Karma: 0
Senior Member
Bruce wrote: "Of course, fig-Forth is dead slow on the 6502 because
its indirect
threaded, and direct threaded is much faster, while subroutine
threaded is faster again. SO the fastest C64 Forth was the subroutine
threaded Blazin' Forth. "

Reminds me of this paper on implementing Scheme:

Three Implementation Models for Scheme by. R. Kent Dybvig
http://www.ai.cs.kobe-u.ac.jp/~kawamura/pukiwikiplus/index.p hp?plugin=attach&refer=scheme&openfile=ThreeImplemen tationModelsforScheme.pdf

"The first is a heap-based model used in some form in most Scheme
implementations to date; the second is a new stack-based model that is
considerably
more efficient than the heap-based model at executing most programs;
and
the third is a new string-based model intended for use in a multiple-
processor implementation of Scheme."
Re: SuperForth 64 [message #204468 is a reply to message #204465] Sat, 06 March 2010 17:17 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: BruceMcF

On Mar 6, 2:53 pm, christianlott1 <christianlo...@yahoo.com> wrote:
> the third is a new string-based model intended for use in a multiple-
> processor implementation of Scheme."

A string based model! But don't all the 11-dimensional arrays chew up
boatloads of RAM?

http://en.wikipedia.org/wiki/String_theory

IOW, I know what heap based and stack based mean (a language does not
have to be a variant of Forth to benefit from having data stack and
return address stack separated ... indeed, one approach to getting C
to run more rapidly is to have return addresses on the return stack,
and and heap data either contained or pointed to in a dedicated X-
indexed page in memory, with the ZP treated like a very large register
bank) ... but string based mode, no idear.
Re: SuperForth 64 [message #363959 is a reply to message #204371] Wed, 21 February 2018 12:05 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: jwt0bos

On Tuesday, March 2, 2010 at 3:59:15 PM UTC-5, s1 wrote:
> Heard a little about this but can't find a link to the program
> anywhere.
>
> Anyone have this?
>
> Thanks

Disk: http://csdb.dk/release/?id=131992
DOCs: http://www.vintagevolts.com/pages/docs/
Re: SuperForth 64 [message #363960 is a reply to message #204371] Wed, 21 February 2018 12:07 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: jwt0bos

On Tuesday, March 2, 2010 at 3:59:15 PM UTC-5, s1 wrote:
> Heard a little about this but can't find a link to the program
> anywhere.
>
> Anyone have this?
>
> Thanks

I still have my binder and original disks - I wanted to make a game. Still might do it.
Re: SuperForth 64 [message #364093 is a reply to message #363960] Thu, 22 February 2018 08:46 Go to previous message
Anonymous
Karma:
Originally posted by: nospam.Janis.Kracht

>> Anyone have this?

> I still have my binder and original disks - I wanted to make a game. Still
> might do it.

Same here.. but I used C to write the games I did .. math games explaining
string theory (The String Game)..Set Theory was something my kids were learning
in school. :)

First I wrote a C64 version for their school:
http://www.filegate.net/cbm/6-misc/string-game.prg

Then a few years later I wrote a version for the PC:

https://archive.org/details/StringGameTheSW1987InvisibleLigh tSoftStr
ategyEducational

Take care,
Janis
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Official FAQ comp.binaries.cbm (semimonthly posting)
Next Topic: Original PET Keyboard for Cost of Shipping
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Apr 25 12:15:18 EDT 2024

Total time taken to generate the page: 0.05249 seconds