Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #56541 > unrolled thread
| Started by | Darin Murphy <murphy.darin@gmail.com> |
|---|---|
| First post | 2017-04-01 12:10 -0400 |
| Last post | 2017-04-08 01:37 -0400 |
| Articles | 20 on this page of 202 — 25 participants |
Back to article view | Back to comp.lang.forth
Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-01 12:10 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-01 17:06 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-01 16:37 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-01 19:21 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-01 17:16 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 01:26 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-02 12:51 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 18:50 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-02 19:18 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 21:29 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 22:01 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-02 21:46 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Julian Fondren <julian.fondren@gmail.com> - 2017-04-02 21:54 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-02 22:26 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-03 08:34 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-01 18:47 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 01:28 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? lehs <skydda.barnen@gmail.com> - 2017-04-02 04:02 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-02 12:39 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-02 15:44 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-07 20:56 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-08 01:16 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-07 21:38 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-07 16:42 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-08 12:41 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-01 17:31 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-01 22:03 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 01:39 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-01 22:56 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 12:32 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 12:45 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-02 22:03 -1000
Re: Is there a free version of Forth that uses the exact same wordsas "Starting Forth" on Forth Inc.'s site? "Robert L." <No_spamming@noWhere_7073.org> - 2017-04-13 20:31 +0000
Re: Is there a free version of Forth that uses the exact same wordsas "Starting Forth" on Forth Inc.'s site? "Robert L." <No_spamming@noWhere_7073.org> - 2017-04-13 20:35 +0000
Re: Is there a free version of Forth that uses the exact same wordsas "Starting Forth" on Forth Inc.'s site? "Robert L." <No_spamming@noWhere_7073.org> - 2017-04-13 20:37 +0000
Re: Is there a free version of Forth that uses the exact same wordsas "Starting Forth" on Forth Inc.'s site? lehs <skydda.barnen@gmail.com> - 2017-04-13 19:11 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-02 12:58 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-02 22:06 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-03 10:49 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-04 01:21 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Jan Coombs <jenfhaomndgfwutc@murmic.plus.com> - 2017-04-02 13:58 +0100
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 11:16 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-02 19:38 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-02 22:10 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-02 22:02 +0200
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-02 15:31 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 23:48 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 23:49 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-03 10:23 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-03 15:56 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-03 20:57 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-03 08:08 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-02 19:22 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-02 22:46 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Julian Fondren <julian.fondren@gmail.com> - 2017-04-02 20:38 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-03 07:07 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-03 00:17 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-03 07:41 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-07 20:23 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-03 00:15 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Julian Fondren <julian.fondren@gmail.com> - 2017-04-02 21:45 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? JUERGEN <epldfpga@aol.com> - 2017-04-04 02:08 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Mark Wills <markwills1970@gmail.com> - 2017-04-04 03:45 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? JUERGEN <epldfpga@aol.com> - 2017-04-04 06:25 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-07 20:19 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-08 17:33 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-08 18:45 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-10 19:03 +0000
Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-03 08:23 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? joel.rees@gmail.com - 2017-04-06 03:02 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-07 15:46 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-07 18:59 +0200
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-07 20:57 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-07 20:37 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-08 01:31 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-07 21:45 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-07 20:32 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-08 01:31 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-08 06:18 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? mhx@iae.nl - 2017-04-08 03:01 -0700
Starting Forth (was: Is there a free version ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-08 12:34 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-08 15:53 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-09 09:36 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-07 20:30 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Joel Rees <joel.rees@gmail.com> - 2017-04-08 17:51 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-09 01:22 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Joel Rees <joel.rees@gmail.com> - 2017-04-08 23:01 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-08 23:23 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Joel Rees <joel.rees@gmail.com> - 2017-04-09 17:11 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-09 18:18 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Joel Rees <joel.rees@gmail.com> - 2017-04-09 23:05 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-09 03:11 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-09 12:24 +0200
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-09 14:16 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-09 13:50 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-10 06:19 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-10 11:20 +0200
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-10 18:49 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-10 19:42 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-11 15:26 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-07 10:24 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-07 20:42 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-07 11:28 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? JUERGEN <epldfpga@aol.com> - 2017-04-09 07:32 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-08 14:30 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-08 16:53 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-09 14:44 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-09 08:19 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-10 00:26 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-09 21:39 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-10 07:47 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-09 21:51 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-10 09:18 +0300
Re: Is there a free version of Forth that uses the exact same words albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-10 11:41 +0200
Re: Is there a free version of Forth that uses the exact same words "Elizabeth D. Rather" <erather@forth.com> - 2017-04-10 07:57 -1000
Re: Is there a free version of Forth that uses the exact same words Paul Rubin <no.email@nospam.invalid> - 2017-04-10 12:27 -0700
Re: Is there a free version of Forth that uses the exact same words hughaguilar96@gmail.com - 2017-04-10 15:57 -0700
Re: Is there a free version of Forth that uses the exact same words stephen@mpeforth.com (Stephen Pelc) - 2017-04-11 13:24 +0000
Re: Is there a free version of Forth that uses the exact same words hughaguilar96@gmail.com - 2017-04-12 01:32 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-10 23:37 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-10 16:59 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-10 17:49 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-11 14:32 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Mark Wills <markwills1970@gmail.com> - 2017-04-11 12:09 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-11 12:18 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-11 15:54 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Mark Wills <markwills1970@gmail.com> - 2017-04-12 01:47 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-12 12:39 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Mark Wills <markwills1970@gmail.com> - 2017-04-11 02:33 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? mhx@iae.nl - 2017-04-11 04:12 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 03:14 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 16:02 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-11 14:24 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 03:09 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? lehs <skydda.barnen@gmail.com> - 2017-04-11 21:37 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 15:59 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? john <anon@example.com> - 2017-04-12 17:12 +0100
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-11 14:19 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 03:54 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-11 21:12 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-12 07:19 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-12 00:27 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-12 07:32 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-12 12:49 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-11 21:37 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Ron Aaron <rambamist@gmail.com> - 2017-04-12 07:53 +0300
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 16:25 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 16:27 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-12 12:52 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-12 12:53 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Mark Wills <markwills1970@gmail.com> - 2017-04-13 03:51 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-12 00:22 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Alex <alex@rivadpm.com> - 2017-04-13 15:59 +0100
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-13 13:07 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-12 03:58 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Mark Wills <markwills1970@gmail.com> - 2017-04-08 02:54 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Joel Rees <joel.rees@gmail.com> - 2017-04-08 18:29 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? JUERGEN <epldfpga@aol.com> - 2017-04-09 07:23 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-09 08:04 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? JUERGEN <epldfpga@aol.com> - 2017-04-09 23:23 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-10 10:00 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-10 09:21 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-10 10:49 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-10 10:26 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-11 03:10 -0400
Re: Is there a free version of Forth that uses the exact same wordsas "Starting Forth" on Forth Inc.'s site? "Robert L." <No_spamming@noWhere_7073.org> - 2017-04-13 20:55 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-07 12:41 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-07 20:48 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Julian Fondren <julian.fondren@gmail.com> - 2017-04-07 14:03 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-07 21:21 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-08 03:28 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Julian Fondren <julian.fondren@gmail.com> - 2017-04-08 02:39 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-07 12:45 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-08 00:26 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-07 14:38 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-08 01:20 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-07 16:17 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Alex <alex@rivadpm.com> - 2017-04-08 12:49 +0100
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murpy <murphy.darin@gmail.com> - 2017-04-09 01:01 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-09 10:06 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-09 19:37 +0200
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-09 16:09 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-09 17:26 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? minforth@arcor.de - 2017-04-09 22:32 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-09 22:44 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Darin Murphy <murphy.darin@gmail.com> - 2017-04-10 18:47 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Paul Rubin <no.email@nospam.invalid> - 2017-04-10 12:31 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? "Elizabeth D. Rather" <erather@forth.com> - 2017-04-10 10:18 -1000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? hughaguilar96@gmail.com - 2017-04-10 16:14 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Joel Rees <joel.rees@gmail.com> - 2017-04-10 18:11 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-11 03:21 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Joel Rees <joel.rees@gmail.com> - 2017-04-11 11:02 -0700
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-12 04:42 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-11 13:51 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-08 14:04 +0000
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-08 09:10 +0200
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-08 12:50 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-07 21:31 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? David Schultz <abuse@127.0.0.1> - 2017-04-07 20:50 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-07 22:04 -0400
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? David Schultz <abuse@127.0.0.1> - 2017-04-07 21:22 -0500
Re: Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site? rickman <gnuarm@gmail.com> - 2017-04-08 01:37 -0400
Page 4 of 11 — ← Prev page 1 2 3 [4] 5 6 … 11 Next page →
| From | Julian Fondren <julian.fondren@gmail.com> |
|---|---|
| Date | 2017-04-02 21:45 -0700 |
| Message-ID | <42dbf151-a64a-4582-83a1-5c07e302d2db@googlegroups.com> |
| In reply to | #56627 |
On Sunday, April 2, 2017 at 11:15:41 PM UTC-5, Darin Murphy wrote: > Thank you Julian for your honesty and suggestions. Would you give > me some examples of the names you would suggest being more > acceptable? My experiences have been with C-like abrievations, > which are even more cryptic then mine, so I am still learning > about how Forther's create them. The Forth ideal is a short English word: GET PUT PLACE DUMP TYPE No symbols, no dashes, not many syllables, and it's a real word from natural language. Forth's dictionary uniquely helps to support names like this, because you can define and use a short appropriate name even if it's already come up in earlier code. If you can't help it, names-like-this will do. They are at least clear. Wil Baden used a lot of Names-Like-This Forth has a number of mnemonic characters that you can use to shorten the length of words: >STACK push something to a stack LOCATION@ fetch something from a location SETTING! update the value of a setting .ARENA print the arena 0ARENA zero the arena -- so, initialize or reset it A pitfall open to all programmers in all languages is abbreviated names like yours. Aesthetics aside, it's hard to remember how the name was abbreviated (is it plyrsymbl or plyrssymbl , second s from 's?), and it can be hard to tell what the abbreviated name means (note your various comments that just expand the name of the variable). You may be comfortable with abbreviation until you come across someone else who follows this practice, who abbreviates differently from you. A pitfall open to Forth, somewhat encouraged by the mnemonics (anyway, that's how I fell into it), is going too far with symbols. I had words that consisted of nothing but symbols that basically encoded what the word did in its name. That was a dark period in my life. You can also use mnemonics within a program, like \ prefix ' <-- symbol. 'WORD is the symbol for that word char @ constant 'player char # constant 'wall char M constant 'monster bl constant 'empty \ prefix @ <-- location. @WORD is the location of that word variable @player variable @monster variable @current variable @last \ postfix [] <-- array, like in C :/ create screen[] 2000 cells allot You can also use wordlists and have a word that selects the nature of the next word, but that seems a little excessive... Aim for the ideal. Settle with acceptable forms. Avoid pitfalls. > The reason I used the numbers > mentioned instead of variables or constants was because the > program is small enough I didn't need to worry about keeping > track of them. if those numbers were going to be used more often > or being changed for different console resolutions (45x100, > 65x120, etc.,), then I would have created variables to hold them > near the top of the program so that other programmers would have > found them easy enough to change if needed. OK, I thought it might be something like that. I was more confused by the presence of the constants you had than by the lack of other constants for the other literals. Of literals for ASCII characters, I just wondered if you were aware that CHAR and [CHAR] are available.
[toc] | [prev] | [next] | [standalone]
| From | JUERGEN <epldfpga@aol.com> |
|---|---|
| Date | 2017-04-04 02:08 -0700 |
| Message-ID | <d3d3bc5c-31ca-4603-94e3-1890add4d65f@googlegroups.com> |
| In reply to | #56623 |
On Monday, April 3, 2017 at 3:46:37 AM UTC+1, Darin Murphy wrote:
> \ Okay Hugh here it is!
>
> \ tiny_arena01.fs
> \ Created by Darin Murphy
> \ Created on 02/24/17
>
> \ Currently the walls of the arena are finished and the player may
> move about the area using the arrow keys
> \ Loads and runs fine from my Raspberry Pi 3 B running gforth
> \ To load up if in linux type: gforth tiny-arena01.fs, then after
> gforth loads type: player-walking.
> \ Eventually it will have monsters spinkled over the arena and
> everytime the player fights one by ramming
> \ into it they will get a score and can die if the monster hurts
> them too much. Fights will be determined
> \ randomly. Had to stop working on it, until I can find a small
> and fast randomizer formula.
>
> 64 constant plyrsymbl \ "@" symbol of player
> 35 constant wallsymbl \ "#" symbol of wall
> 77 constant mnstrsymbl \ "M" symbol of monster
> 32 constant mptyspace \ " " empty space
>
> \ screen array which represents the console screen 80 x 25
> characters or 2000 cells
> variable scrnarry 1999 cells allot
>
> \ fill screen array with empty space " "
> : clear-screen ( -- ) 1999 0 do mptyspace scrnarry i cells + ! loop ;
>
> \ current positon of a mobile unit ( monster/player )
> variable curpos
> 0 curpos ! \ initialize it to 0 for safty
>
> \ previous position of a mobile unit ( monster/player )
> variable prevpos
> 0 prevpos ! \ initialize it to 0 for safty
>
> \ player's position
> variable plyrpos
> 10 80 * 40 + plyrpos ! \ starting position
>
> \ monster's position
> variable mnsterpos
>
> \ used for building room
> variable counter
> 0 counter !
>
> \ health points of player
> variable health
> 10 health !
>
> \ player's score for killing monsters
> variable score
> 0 score !
>
> \ screen array helper words
> : clear-prevpos ( position -- ) mptyspace scrnarry prevpos @ cells
> + ! ;
> : y1- ( -- n ) curpos @ 80 - ;
> : y1+ ( -- n ) curpos @ 80 + ;
> : x1- ( -- n ) curpos @ 1 - ;
> : x1+ ( -- n ) curpos @ 1 + ;
>
> \ copies current position to previous postion
> : curpos>prevpos ( -- ) curpos @ prevpos ! ;
>
> \ scans current position in screen array to determine whether
> mobile unit there is player
> \ or monster
> : get-moversymbl ( -- identity ) scrnarry curpos @ cells + @ ;
>
> \ checking position in screen array
> : look-forward ( -- n ) y1- cells scrnarry + @ ;
> : look-behind ( -- n ) y1+ cells scrnarry + @ ;
> : look-left ( -- n ) x1- cells scrnarry + @ ;
> : look-right ( -- n ) x1+ cells scrnarry + @ ;
>
> \ identifying if there is something/someone at a particular
> position and if so,
> \ who/what are they
> : clear? ( new position -- boolean flag ) mptyspace = ;
> : wall? ( new position -- boolean flag ) wallsymbl = ;
> : monster? ( new position -- boolean flag ) mnstrsymbl = ;
> : player? ( new position -- boolean flag ) plyrsymbl = ;
>
> \ goto postion in screen array
> : goto-position ( symbol -- ) scrnarry curpos @ cells + ! ;
>
> \ moving forward, backward, left, or right entails copying current
> postion to previous position
> \ updating curpos, updating screen array with new location, and
> \ finally removing previous position in screen array
> : move-forward ( -- ) get-moversymbl curpos>prevpos y1- curpos !
> goto-position clear-prevpos ;
>
> : move-backward ( -- ) get-moversymbl curpos>prevpos y1+ curpos
> ! goto-position clear-prevpos ;
>
> : move-left ( -- ) get-moversymbl curpos>prevpos x1- curpos !
> goto-position clear-prevpos ;
>
> : move-right ( -- ) get-moversymbl curpos>prevpos x1+ curpos !
> goto-position clear-prevpos ;
>
> \ before moving to new position, first determine if position is
> clear, if so move there
> : go-forward ( -- n ) look-forward dup clear? if drop
> move-forward else drop
> then ;
>
> : go-backward ( -- n ) look-behind dup clear? if drop
> move-backward else drop
> then ;
>
> : go-left ( -- n ) look-left dup clear? if drop move-left else drop
> then ;
>
> : go-right ( -- n ) look-right dup clear? if drop move-right else drop
> then ;
>
> \ initializing screen array before starting program
> clear-screen
>
> \ update screen from screen array
> : update-screen ( -- ) page 1999 0 do scrnarry i cells + @ emit loop ;
>
> \ Building a large room (takes up the whole screen) by encircling
> it with walls of #
> : north-wall ( -- ) 79 0 do wallsymbl scrnarry i cells + ! loop ;
>
> : estwst-walls ( -- ) 21 0 do counter @ 79 + counter ! wallsymbl
> scrnarry counter @ cells + !
> counter @ 1 + counter ! wallsymbl
> scrnarry counter @ cells + !
> loop 0 counter ! ;
>
> : south-wall ( -- ) 21 80 * counter @ + counter ! 80 0 do
> wallsymbl scrnarry counter @ i + cells + !
> loop 0
> counter ! ;
> : build-arena ( -- ) north-wall estwst-walls south-wall ;
>
> \ build arena, then add player to screen array at starting postion
> build-arena
> plyrpos @ curpos !
> plyrsymbl scrnarry curpos @ cells + !
>
> \ Main loop, which takes player's key input every turn, moves
> player accordingly, refreshes screen too
> \ if player presses the q key then the player wants to quit so the
> loop exits
> : player-walking ( -- ) begin update-screen ekey dup 113 = if
> drop page exit
> else
> dup k-up = if drop go-forward
> else
> dup k-down = if drop go-backward
> else
> dup k-left = if drop go-left
> else
> dup k-right = if drop go-right
> else drop
> then
> then then then then
> again ;
>
> \ Let me know if I need to document further or if I am able to
> factor things better. Take care now.
>
>
> ----Android NewsGroup Reader----
> http://usenet.sinaapp.com/
Darin, thanks for posting, threw it at VFX, and it seems there are some words undefined - or are they pre-defined in gforth?
k-up, k-down, k-left, k-right
: player-walking ( -- ) begin update-screen ekey dup 113 = if
drop page exit
else
dup k-up = if drop go-forward
else
dup k-down = if drop go-backward
else
dup k-left = if drop go-left
else
dup k-right = if drop go-right
else drop
then
then then then then
again ;
This would be an ideal example for the VFXTESTAPP project, visual, just using a small 16 x 16 ASCII field there, and people could try it without installation, just download the VFXtestapp.exe and run your code in 16 x 16 for starters and your original 80 x 25 version https://wiki.forth-ev.de/doku.php/en:projects:a-start-with-forth:start
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markwills1970@gmail.com> |
|---|---|
| Date | 2017-04-04 03:45 -0700 |
| Message-ID | <f7ac4e0a-fb67-43ef-9288-fa5a0191b6f7@googlegroups.com> |
| In reply to | #56688 |
On Tuesday, 4 April 2017 10:08:51 UTC+1, JUERGEN wrote: > On Monday, April 3, 2017 at 3:46:37 AM UTC+1, Darin Murphy wrote: > > \ Okay Hugh here it is! > > > > \ tiny_arena01.fs > > \ Created by Darin Murphy > > \ Created on 02/24/17 > > > > \ Currently the walls of the arena are finished and the player may > > move about the area using the arrow keys > > \ Loads and runs fine from my Raspberry Pi 3 B running gforth > > \ To load up if in linux type: gforth tiny-arena01.fs, then after > > gforth loads type: player-walking. > > \ Eventually it will have monsters spinkled over the arena and > > everytime the player fights one by ramming > > \ into it they will get a score and can die if the monster hurts > > them too much. Fights will be determined > > \ randomly. Had to stop working on it, until I can find a small > > and fast randomizer formula. > > > > 64 constant plyrsymbl \ "@" symbol of player > > 35 constant wallsymbl \ "#" symbol of wall > > 77 constant mnstrsymbl \ "M" symbol of monster > > 32 constant mptyspace \ " " empty space > > > > \ screen array which represents the console screen 80 x 25 > > characters or 2000 cells > > variable scrnarry 1999 cells allot > > > > \ fill screen array with empty space " " > > : clear-screen ( -- ) 1999 0 do mptyspace scrnarry i cells + ! loop ; > > > > \ current positon of a mobile unit ( monster/player ) > > variable curpos > > 0 curpos ! \ initialize it to 0 for safty > > > > \ previous position of a mobile unit ( monster/player ) > > variable prevpos > > 0 prevpos ! \ initialize it to 0 for safty > > > > \ player's position > > variable plyrpos > > 10 80 * 40 + plyrpos ! \ starting position > > > > \ monster's position > > variable mnsterpos > > > > \ used for building room > > variable counter > > 0 counter ! > > > > \ health points of player > > variable health > > 10 health ! > > > > \ player's score for killing monsters > > variable score > > 0 score ! > > > > \ screen array helper words > > : clear-prevpos ( position -- ) mptyspace scrnarry prevpos @ cells > > + ! ; > > : y1- ( -- n ) curpos @ 80 - ; > > : y1+ ( -- n ) curpos @ 80 + ; > > : x1- ( -- n ) curpos @ 1 - ; > > : x1+ ( -- n ) curpos @ 1 + ; > > > > \ copies current position to previous postion > > : curpos>prevpos ( -- ) curpos @ prevpos ! ; > > > > \ scans current position in screen array to determine whether > > mobile unit there is player > > \ or monster > > : get-moversymbl ( -- identity ) scrnarry curpos @ cells + @ ; > > > > \ checking position in screen array > > : look-forward ( -- n ) y1- cells scrnarry + @ ; > > : look-behind ( -- n ) y1+ cells scrnarry + @ ; > > : look-left ( -- n ) x1- cells scrnarry + @ ; > > : look-right ( -- n ) x1+ cells scrnarry + @ ; > > > > \ identifying if there is something/someone at a particular > > position and if so, > > \ who/what are they > > : clear? ( new position -- boolean flag ) mptyspace = ; > > : wall? ( new position -- boolean flag ) wallsymbl = ; > > : monster? ( new position -- boolean flag ) mnstrsymbl = ; > > : player? ( new position -- boolean flag ) plyrsymbl = ; > > > > \ goto postion in screen array > > : goto-position ( symbol -- ) scrnarry curpos @ cells + ! ; > > > > \ moving forward, backward, left, or right entails copying current > > postion to previous position > > \ updating curpos, updating screen array with new location, and > > \ finally removing previous position in screen array > > : move-forward ( -- ) get-moversymbl curpos>prevpos y1- curpos ! > > goto-position clear-prevpos ; > > > > : move-backward ( -- ) get-moversymbl curpos>prevpos y1+ curpos > > ! goto-position clear-prevpos ; > > > > : move-left ( -- ) get-moversymbl curpos>prevpos x1- curpos ! > > goto-position clear-prevpos ; > > > > : move-right ( -- ) get-moversymbl curpos>prevpos x1+ curpos ! > > goto-position clear-prevpos ; > > > > \ before moving to new position, first determine if position is > > clear, if so move there > > : go-forward ( -- n ) look-forward dup clear? if drop > > move-forward else drop > > then ; > > > > : go-backward ( -- n ) look-behind dup clear? if drop > > move-backward else drop > > then ; > > > > : go-left ( -- n ) look-left dup clear? if drop move-left else drop > > then ; > > > > : go-right ( -- n ) look-right dup clear? if drop move-right else drop > > then ; > > > > \ initializing screen array before starting program > > clear-screen > > > > \ update screen from screen array > > : update-screen ( -- ) page 1999 0 do scrnarry i cells + @ emit loop ; > > > > \ Building a large room (takes up the whole screen) by encircling > > it with walls of # > > : north-wall ( -- ) 79 0 do wallsymbl scrnarry i cells + ! loop ; > > > > : estwst-walls ( -- ) 21 0 do counter @ 79 + counter ! wallsymbl > > scrnarry counter @ cells + ! > > counter @ 1 + counter ! wallsymbl > > scrnarry counter @ cells + ! > > loop 0 counter ! ; > > > > : south-wall ( -- ) 21 80 * counter @ + counter ! 80 0 do > > wallsymbl scrnarry counter @ i + cells + ! > > loop 0 > > counter ! ; > > : build-arena ( -- ) north-wall estwst-walls south-wall ; > > > > \ build arena, then add player to screen array at starting postion > > build-arena > > plyrpos @ curpos ! > > plyrsymbl scrnarry curpos @ cells + ! > > > > \ Main loop, which takes player's key input every turn, moves > > player accordingly, refreshes screen too > > \ if player presses the q key then the player wants to quit so the > > loop exits > > : player-walking ( -- ) begin update-screen ekey dup 113 = if > > drop page exit > > else > > dup k-up = if drop go-forward > > else > > dup k-down = if drop go-backward > > else > > dup k-left = if drop go-left > > else > > dup k-right = if drop go-right > > else drop > > then > > then then then then > > again ; > > > > \ Let me know if I need to document further or if I am able to > > factor things better. Take care now. > > > > > > ----Android NewsGroup Reader---- > > http://usenet.sinaapp.com/ > > Darin, thanks for posting, threw it at VFX, and it seems there are some words undefined - or are they pre-defined in gforth? > > k-up, k-down, k-left, k-right > > : player-walking ( -- ) begin update-screen ekey dup 113 = if > drop page exit > else > dup k-up = if drop go-forward > else > dup k-down = if drop go-backward > else > dup k-left = if drop go-left > else > dup k-right = if drop go-right > else drop > then > then then then then > again ; > > This would be an ideal example for the VFXTESTAPP project, visual, just using a small 16 x 16 ASCII field there, and people could try it without installation, just download the VFXtestapp.exe and run your code in 16 x 16 for starters and your original 80 x 25 version https://wiki.forth-ev.de/doku.php/en:projects:a-start-with-forth:start Juergen If you want something to port, port this: http://turboforth.net/fun/darkstar.html :-)
[toc] | [prev] | [next] | [standalone]
| From | JUERGEN <epldfpga@aol.com> |
|---|---|
| Date | 2017-04-04 06:25 -0700 |
| Message-ID | <f1724fd6-1719-4395-8c2f-8c59f4d52765@googlegroups.com> |
| In reply to | #56692 |
On Tuesday, April 4, 2017 at 11:46:00 AM UTC+1, Mark Wills wrote: > On Tuesday, 4 April 2017 10:08:51 UTC+1, JUERGEN wrote: > > On Monday, April 3, 2017 at 3:46:37 AM UTC+1, Darin Murphy wrote: > > > \ Okay Hugh here it is! > > > > > > \ tiny_arena01.fs > > > \ Created by Darin Murphy > > > \ Created on 02/24/17 > > > > > > \ Currently the walls of the arena are finished and the player may > > > move about the area using the arrow keys > > > \ Loads and runs fine from my Raspberry Pi 3 B running gforth > > > \ To load up if in linux type: gforth tiny-arena01.fs, then after > > > gforth loads type: player-walking. > > > \ Eventually it will have monsters spinkled over the arena and > > > everytime the player fights one by ramming > > > \ into it they will get a score and can die if the monster hurts > > > them too much. Fights will be determined > > > \ randomly. Had to stop working on it, until I can find a small > > > and fast randomizer formula. > > > > > > 64 constant plyrsymbl \ "@" symbol of player > > > 35 constant wallsymbl \ "#" symbol of wall > > > 77 constant mnstrsymbl \ "M" symbol of monster > > > 32 constant mptyspace \ " " empty space > > > > > > \ screen array which represents the console screen 80 x 25 > > > characters or 2000 cells > > > variable scrnarry 1999 cells allot > > > > > > \ fill screen array with empty space " " > > > : clear-screen ( -- ) 1999 0 do mptyspace scrnarry i cells + ! loop ; > > > > > > \ current positon of a mobile unit ( monster/player ) > > > variable curpos > > > 0 curpos ! \ initialize it to 0 for safty > > > > > > \ previous position of a mobile unit ( monster/player ) > > > variable prevpos > > > 0 prevpos ! \ initialize it to 0 for safty > > > > > > \ player's position > > > variable plyrpos > > > 10 80 * 40 + plyrpos ! \ starting position > > > > > > \ monster's position > > > variable mnsterpos > > > > > > \ used for building room > > > variable counter > > > 0 counter ! > > > > > > \ health points of player > > > variable health > > > 10 health ! > > > > > > \ player's score for killing monsters > > > variable score > > > 0 score ! > > > > > > \ screen array helper words > > > : clear-prevpos ( position -- ) mptyspace scrnarry prevpos @ cells > > > + ! ; > > > : y1- ( -- n ) curpos @ 80 - ; > > > : y1+ ( -- n ) curpos @ 80 + ; > > > : x1- ( -- n ) curpos @ 1 - ; > > > : x1+ ( -- n ) curpos @ 1 + ; > > > > > > \ copies current position to previous postion > > > : curpos>prevpos ( -- ) curpos @ prevpos ! ; > > > > > > \ scans current position in screen array to determine whether > > > mobile unit there is player > > > \ or monster > > > : get-moversymbl ( -- identity ) scrnarry curpos @ cells + @ ; > > > > > > \ checking position in screen array > > > : look-forward ( -- n ) y1- cells scrnarry + @ ; > > > : look-behind ( -- n ) y1+ cells scrnarry + @ ; > > > : look-left ( -- n ) x1- cells scrnarry + @ ; > > > : look-right ( -- n ) x1+ cells scrnarry + @ ; > > > > > > \ identifying if there is something/someone at a particular > > > position and if so, > > > \ who/what are they > > > : clear? ( new position -- boolean flag ) mptyspace = ; > > > : wall? ( new position -- boolean flag ) wallsymbl = ; > > > : monster? ( new position -- boolean flag ) mnstrsymbl = ; > > > : player? ( new position -- boolean flag ) plyrsymbl = ; > > > > > > \ goto postion in screen array > > > : goto-position ( symbol -- ) scrnarry curpos @ cells + ! ; > > > > > > \ moving forward, backward, left, or right entails copying current > > > postion to previous position > > > \ updating curpos, updating screen array with new location, and > > > \ finally removing previous position in screen array > > > : move-forward ( -- ) get-moversymbl curpos>prevpos y1- curpos ! > > > goto-position clear-prevpos ; > > > > > > : move-backward ( -- ) get-moversymbl curpos>prevpos y1+ curpos > > > ! goto-position clear-prevpos ; > > > > > > : move-left ( -- ) get-moversymbl curpos>prevpos x1- curpos ! > > > goto-position clear-prevpos ; > > > > > > : move-right ( -- ) get-moversymbl curpos>prevpos x1+ curpos ! > > > goto-position clear-prevpos ; > > > > > > \ before moving to new position, first determine if position is > > > clear, if so move there > > > : go-forward ( -- n ) look-forward dup clear? if drop > > > move-forward else drop > > > then ; > > > > > > : go-backward ( -- n ) look-behind dup clear? if drop > > > move-backward else drop > > > then ; > > > > > > : go-left ( -- n ) look-left dup clear? if drop move-left else drop > > > then ; > > > > > > : go-right ( -- n ) look-right dup clear? if drop move-right else drop > > > then ; > > > > > > \ initializing screen array before starting program > > > clear-screen > > > > > > \ update screen from screen array > > > : update-screen ( -- ) page 1999 0 do scrnarry i cells + @ emit loop ; > > > > > > \ Building a large room (takes up the whole screen) by encircling > > > it with walls of # > > > : north-wall ( -- ) 79 0 do wallsymbl scrnarry i cells + ! loop ; > > > > > > : estwst-walls ( -- ) 21 0 do counter @ 79 + counter ! wallsymbl > > > scrnarry counter @ cells + ! > > > counter @ 1 + counter ! wallsymbl > > > scrnarry counter @ cells + ! > > > loop 0 counter ! ; > > > > > > : south-wall ( -- ) 21 80 * counter @ + counter ! 80 0 do > > > wallsymbl scrnarry counter @ i + cells + ! > > > loop 0 > > > counter ! ; > > > : build-arena ( -- ) north-wall estwst-walls south-wall ; > > > > > > \ build arena, then add player to screen array at starting postion > > > build-arena > > > plyrpos @ curpos ! > > > plyrsymbl scrnarry curpos @ cells + ! > > > > > > \ Main loop, which takes player's key input every turn, moves > > > player accordingly, refreshes screen too > > > \ if player presses the q key then the player wants to quit so the > > > loop exits > > > : player-walking ( -- ) begin update-screen ekey dup 113 = if > > > drop page exit > > > else > > > dup k-up = if drop go-forward > > > else > > > dup k-down = if drop go-backward > > > else > > > dup k-left = if drop go-left > > > else > > > dup k-right = if drop go-right > > > else drop > > > then > > > then then then then > > > again ; > > > > > > \ Let me know if I need to document further or if I am able to > > > factor things better. Take care now. > > > > > > > > > ----Android NewsGroup Reader---- > > > http://usenet.sinaapp.com/ > > > > Darin, thanks for posting, threw it at VFX, and it seems there are some words undefined - or are they pre-defined in gforth? > > > > k-up, k-down, k-left, k-right > > > > : player-walking ( -- ) begin update-screen ekey dup 113 = if > > drop page exit > > else > > dup k-up = if drop go-forward > > else > > dup k-down = if drop go-backward > > else > > dup k-left = if drop go-left > > else > > dup k-right = if drop go-right > > else drop > > then > > then then then then > > again ; > > > > This would be an ideal example for the VFXTESTAPP project, visual, just using a small 16 x 16 ASCII field there, and people could try it without installation, just download the VFXtestapp.exe and run your code in 16 x 16 for starters and your original 80 x 25 version https://wiki.forth-ev.de/doku.php/en:projects:a-start-with-forth:start > > Juergen > > If you want something to port, port this: > > http://turboforth.net/fun/darkstar.html > > :-) Thanks Mark, had a quick look; this is still beyond my level. EasyForth SNAKE and Darin's game is about right. There are many Forth Levels - I guess I am still at level 2 ...
[toc] | [prev] | [next] | [standalone]
| From | hughaguilar96@gmail.com |
|---|---|
| Date | 2017-04-07 20:19 -0700 |
| Message-ID | <efbd9805-686b-4a5a-a320-5247441172ce@googlegroups.com> |
| In reply to | #56623 |
On Sunday, April 2, 2017 at 7:46:37 PM UTC-7, Darin Murphy wrote:
> \ Okay Hugh here it is!
>
> \ tiny_arena01.fs
> \ Created by Darin Murphy
> \ Created on 02/24/17
>
> \ Currently the walls of the arena are finished and the player may
> move about the area using the arrow keys
> \ Loads and runs fine from my Raspberry Pi 3 B running gforth
> \ To load up if in linux type: gforth tiny-arena01.fs, then after
> gforth loads type: player-walking.
> \ Eventually it will have monsters spinkled over the arena and
> everytime the player fights one by ramming
> \ into it they will get a score and can die if the monster hurts
> them too much. Fights will be determined
> \ randomly. Had to stop working on it, until I can find a small
> and fast randomizer formula.
>
> 64 constant plyrsymbl \ "@" symbol of player
> 35 constant wallsymbl \ "#" symbol of wall
> 77 constant mnstrsymbl \ "M" symbol of monster
> 32 constant mptyspace \ " " empty space
>
> \ screen array which represents the console screen 80 x 25
> characters or 2000 cells
> variable scrnarry 1999 cells allot
>
> \ fill screen array with empty space " "
> : clear-screen ( -- ) 1999 0 do mptyspace scrnarry i cells + ! loop ;
>
> \ current positon of a mobile unit ( monster/player )
> variable curpos
> 0 curpos ! \ initialize it to 0 for safty
>
> \ previous position of a mobile unit ( monster/player )
> variable prevpos
> 0 prevpos ! \ initialize it to 0 for safty
>
> \ player's position
> variable plyrpos
> 10 80 * 40 + plyrpos ! \ starting position
>
> \ monster's position
> variable mnsterpos
>
> \ used for building room
> variable counter
> 0 counter !
>
> \ health points of player
> variable health
> 10 health !
>
> \ player's score for killing monsters
> variable score
> 0 score !
>
> \ screen array helper words
> : clear-prevpos ( position -- ) mptyspace scrnarry prevpos @ cells
> + ! ;
> : y1- ( -- n ) curpos @ 80 - ;
> : y1+ ( -- n ) curpos @ 80 + ;
> : x1- ( -- n ) curpos @ 1 - ;
> : x1+ ( -- n ) curpos @ 1 + ;
>
> \ copies current position to previous postion
> : curpos>prevpos ( -- ) curpos @ prevpos ! ;
>
> \ scans current position in screen array to determine whether
> mobile unit there is player
> \ or monster
> : get-moversymbl ( -- identity ) scrnarry curpos @ cells + @ ;
>
> \ checking position in screen array
> : look-forward ( -- n ) y1- cells scrnarry + @ ;
> : look-behind ( -- n ) y1+ cells scrnarry + @ ;
> : look-left ( -- n ) x1- cells scrnarry + @ ;
> : look-right ( -- n ) x1+ cells scrnarry + @ ;
>
> \ identifying if there is something/someone at a particular
> position and if so,
> \ who/what are they
> : clear? ( new position -- boolean flag ) mptyspace = ;
> : wall? ( new position -- boolean flag ) wallsymbl = ;
> : monster? ( new position -- boolean flag ) mnstrsymbl = ;
> : player? ( new position -- boolean flag ) plyrsymbl = ;
>
> \ goto postion in screen array
> : goto-position ( symbol -- ) scrnarry curpos @ cells + ! ;
>
> \ moving forward, backward, left, or right entails copying current
> postion to previous position
> \ updating curpos, updating screen array with new location, and
> \ finally removing previous position in screen array
> : move-forward ( -- ) get-moversymbl curpos>prevpos y1- curpos !
> goto-position clear-prevpos ;
>
> : move-backward ( -- ) get-moversymbl curpos>prevpos y1+ curpos
> ! goto-position clear-prevpos ;
>
> : move-left ( -- ) get-moversymbl curpos>prevpos x1- curpos !
> goto-position clear-prevpos ;
>
> : move-right ( -- ) get-moversymbl curpos>prevpos x1+ curpos !
> goto-position clear-prevpos ;
>
> \ before moving to new position, first determine if position is
> clear, if so move there
> : go-forward ( -- n ) look-forward dup clear? if drop
> move-forward else drop
> then ;
>
> : go-backward ( -- n ) look-behind dup clear? if drop
> move-backward else drop
> then ;
>
> : go-left ( -- n ) look-left dup clear? if drop move-left else drop
> then ;
>
> : go-right ( -- n ) look-right dup clear? if drop move-right else drop
> then ;
>
> \ initializing screen array before starting program
> clear-screen
>
> \ update screen from screen array
> : update-screen ( -- ) page 1999 0 do scrnarry i cells + @ emit loop ;
>
> \ Building a large room (takes up the whole screen) by encircling
> it with walls of #
> : north-wall ( -- ) 79 0 do wallsymbl scrnarry i cells + ! loop ;
>
> : estwst-walls ( -- ) 21 0 do counter @ 79 + counter ! wallsymbl
> scrnarry counter @ cells + !
> counter @ 1 + counter ! wallsymbl
> scrnarry counter @ cells + !
> loop 0 counter ! ;
>
> : south-wall ( -- ) 21 80 * counter @ + counter ! 80 0 do
> wallsymbl scrnarry counter @ i + cells + !
> loop 0
> counter ! ;
> : build-arena ( -- ) north-wall estwst-walls south-wall ;
>
> \ build arena, then add player to screen array at starting postion
> build-arena
> plyrpos @ curpos !
> plyrsymbl scrnarry curpos @ cells + !
>
> \ Main loop, which takes player's key input every turn, moves
> player accordingly, refreshes screen too
> \ if player presses the q key then the player wants to quit so the
> loop exits
> : player-walking ( -- ) begin update-screen ekey dup 113 = if
> drop page exit
> else
> dup k-up = if drop go-forward
> else
> dup k-down = if drop go-backward
> else
> dup k-left = if drop go-left
> else
> dup k-right = if drop go-right
> else drop
> then
> then then then then
> again ;
>
> \ Let me know if I need to document further or if I am able to
> factor things better. Take care now.
Well, I wrote my own game based on your game idea. The problem I saw in your code was that you weren't thinking in terms of general-purpose code-libraries --- most likely because "Starting Forth" doesn't discuss the subject --- no Forth Inc. book discusses the subject, and Elizabeth Rather is obsessively opposed to general-purpose code-libraries.
Anyway, the program is not difficult given the novice-package. Also, it is a good idea when writing any program to write a general-purpose code-libraries for the purpose of supporting your program. This allows you to write other similar programs in the future without needing any cut-and-paste coding, which is always bad. Also, doing it this way allows you to abstractify the essential aspects --- this usually clarifies the mind --- this is much better than having general concepts mixed in with application-specific concepts in a big muddle.
Pretty much every time that I write a program in VFX, I find a bug in VFX. This was no exception:
cr .( hello world) 0 0 at-xy .( goodbye!)
hello worldgoodbye! ok
AT-XY isn't working properly.
I got my game to work, but it behaves very weirdly. There are actually two images on the screen, one above the other, both playing the game --- the upper image appears to be one cycle behind the bottom image.
Whenever anything goes wrong with my programs, it is usually the fault of the compiler (VFX) --- I almost never make mistakes, and when I do I find them and fix them, which is called "debugging" --- if problems continue, then it is the compiler, not me.
I'll present the source-code here. Note that this requires the new novice-package because it uses <SWITCH and some other new stuff. I can email a copy to Darin or whoever wants it. Also, I really am going to release the novice-package upgrade soon --- I just get side-tracked with writing code, such as this game, or writing documentation.
Darin should focus on the last section of the code, which is the example game. The rest of the code is the general-purpose code-library I wrote to support games like this. Darin can skim over that code, which is likely above his head, and just learn how to use it without fully learning how it works. After he has used it, such as writing his own game, he can look at it more closely and figure out how it works.
---------------------------------------------------------------------------
\ ARENA.4TH --- derived from tiny-arena01.fs by Darin Murphy --- needs NOVICE.4TH included.
\ This file is a framework that can be used in any char-based game.
\ Put your game in another file.
\ We need to have TICKS defined, which is not ANS-Forth and can't be written in ANS-Forth.
marker arena.4th
VFX? 0= [if]
!!! TICKS is needed!
: ticks ( -- ms ) \ current time in milliseconds
...
;
[then]
\ ******
\ ****** This contains SCREEN which is the array representing the screen.
\ ******
0 \ kinds of elements in the game
enum empty
enum wall \ II
enum ball \ {} \ this could be a ball, such as in BreakOut
enum eyes \ oo \ this could represent the player
enum wide-eyes \ OO \ this could represent the player under duress
enum mouth \ <> \ this could represent a monster
enum horz-bar \ == \ this could represent a bar in a BreakOut game
enum brick \ ## \ this could represent a brick in a BreakOut game
enum treasure \ $$ \ this could represent a bag of money
enum vert-bar \ [] \ this could represent a bar in a Pong game
enum down-spike \ \/ \ this could fall from the top of the screen
enum up-spike \ /\ \ this could shoot up from the bottom of the screen
constant kind-limit
\ We need to have EMPTY and WALL --- the others can be changed --- more can be added if needed.
\ Make sure that LEFT-SYMBOLS and RITE-SYMBOLS are updated too.
\ The suggestions above for what the elements represent will vary from game to game.
\ For example, DOWN-SPIKE and UP-SPIKE could be food that the player needs to consume.
\ The elements are two characters wide (they have a left and a right part).
\ The typical screen width is somewhat over twice the height, so we want wide elements.
\ Otherwise the screen would appear to be stretched out horizontally.
create left-symbols \ must correspond to elements
bl c, \ empty
char I c, \ wall
char { c, \ ball
char o c, \ eyes
char O c, \ wide-eyes
char < c, \ mouth
char [ c, \ horz-bar
char # c, \ brick
char $ c, \ treasure
char = c, \ vert-bar
char \ c, \ down-spike
char / c, \ up-spike
create rite-symbols \ must correspond to elements
bl c, \ empty
char I c, \ wall
char } c, \ ball
char o c, \ eyes
char O c, \ wide-eyes
char > c, \ mouth
char ] c, \ horz-bar
char # c, \ brick
char $ c, \ treasure
char = c, \ vert-bar
char / c, \ down-spike
char \ c, \ up-spike
: check-element ( element -- element )
dup 0< abort" *** SYMBOL given negative element ***"
dup kind-limit >= abort" *** SYMBOL given too large element ***"
;
: symbol ( element -- rite-char left-char )
check-element
dup rite-symbols + c@
swap left-symbols + c@ ;
35 constant horz \ horizontal size of screen \ half of display screen
25 constant vert \ vertical size of screen
\ HORZ is half of the display screen because the elements are two chars wide.
\ HORZ should not be the full screen because the CR in <DISPLAY-SCREEN> would be redundant.
\ HORZ is less than the full screen so there is a margin on the right edge for data (score, clock, etc.).
horz 2 / constant cx
vert 2 / constant cy \ CX and CY are the center of the screen
c 0 horz vert ary screen \ 0 0 is the upper-left corner
-1 constant up
1 constant down
-1 constant left
1 constant rite
\ It is traditional in games that 0 0 is the upper-left corner, not the lower-left corner like in Cartesian coordinates.
\ UP and DOWN would seem to be backwards for somebody who is assuming the first quadrant in Cartesian coordinates.
: traverse-screen { 'element -- } \ 'ELEMENT ( col col-adr -- )
vert 0 do
<screen I -> \ -- row-adr
horz 0 do
I \ -- row-adr col
over I screen> \ -- row-adr col col-adr
'element execute \ -- row-adr
loop
drop \ --
loop ;
: <clear-screen> ( col col-adr -- )
empty swap c!
drop ;
: clear-screen ( -- ) \ fills SCREEN with EMPTY SYMBOL
['] <clear-screen> traverse-screen ;
: <display-screen> ( col col-adr -- )
c@ symbol emit emit \ -- col
horz 1- = if cr then
;
: display-screen ( -- ) \ displays SCREEN on the display screen
0 0 at-xy
['] <display-screen> traverse-screen ;
\ ******
\ ****** This contains ERASE-BOX and DRAW-BOX for drawing obstacles.
\ ******
: <draw-box> { width height lx uy kind | rx dy -- } \ KIND is typically WALL or EMPTY
lx width + 1 - to rx \ RX is right-X, LX is left-X
uy height + 1- to dy \ UY is upper-Y, DY is lower-Y
rx lx ?do
kind I uy screen c! \ up edge
kind I dy screen c! \ down edge
loop
dy uy ?do
kind lx I screen c! \ left edge
kind rx I screen c! \ right edge
loop
kind rx dy screen c! ; \ left-down corner was not done in the loops above
: erase-box ( width height lx uy -- ) \ LX UY is the upper-left corner
empty <draw-box> ;
: draw-box ( width height lx uy -- ) \ LX UY is the upper-left corner
wall <draw-box> ;
\ DRAW-BOX is typically done during initialization, so it doesn't have to be efficient.
\ The assumption is that boxes don't move around during the game.
\ If they do move, use ERASE-BOX to get rid of the old box, then DRAW-BOX to install the new box.
\ ******
\ ****** This contains PLAY-GAME that executes the user's code peiodically and exits on ESC.
\ ******
300 value cycle \ how many milliseconds per cycle
variable cycles \ how many full cycles have passed \ this needs to be initialized to 0
27 constant <esc> \ the ascii for the ESC key
: elapsed ( start-time -- time )
ticks swap - ;
: cycled? ( start-time -- flag )
elapsed cycle > ;
: cursor-beyond ( -- )
horz vert at-xy cr ;
: play-game ( 'cycle -- ) \ 'CYCLE ( char|false -- str|false )
ticks false \ -- 'cycle start-time char|false
begin dup <esc> <> while
rover execute \ -- 'cycle start-time str|false
display-screen \ -- 'cycle start-time str|false
?dup if
cursor-beyond count type
2drop exit then
dup cycled? abort" *** the 'CYCLE code took too long ***"
begin dup cycled? until
1 cycles +!
cycle + \ -- 'cycle new-start-time
key? if key else false then \ -- 'cycle new-start-time char|false
repeat
cursor-beyond ." ESCAPE"
3drop ;
\ PLAY-GAME calls 'CYCLE every CYCLE milliseconds giving it the most recent keypress.
\ PLAY-GAME exits if the ESC key is pressed, so ESC can't be part of the game user-interface.
\ If the key is held down, there is a delay, then it begins to repeat --- this is very clumsy.
\ It is best for the player to just tap the key rather than hold it down.
\ The direction indicated by the key will continue to be in effect until another key is tapped.
\ ******
\ ****** This contains OBJECT and some support code.
\ ******
list \ these are objects in the game, other than WALL or EMPTY
w field .kind \ kind of element displayed
w field .x
w field .y \ coordinates of location
w field .dx
w field .dy \ offset to move
constant object
\ An offset is one of: -1 0 1
: init-object ( x y kind node -- node )
init-list >r
r@ .kind !
r@ .y !
r@ .x !
0 r@ .dy !
0 r@ .dx !
r> ;
: new-object ( x y kind -- node )
object alloc
init-object ;
: kill-object ( node -- )
dealloc ;
: draw-object { node -- }
node .kind @
node .x @ node .y @ screen c! ;
: erase-object { node -- }
empty
node .x @ node .y @ screen c! ;
: collision? { nodeA nodeB -- flag }
nodeA .x @ nodeB .x @ <> if false exit then
nodeA .y @ nodeB .y @ <> if false exit then
true ;
\ ******
\ ****** This contains SEEK and MOVE-OBJECT and some support code.
\ ******
300 value severe \ how many full cycles pass before the monsters totally zero in on the player
\ if CYCLE is 100 then a SEVERE of 1000 would be 10 seconds
: tweak-offset ( offset -- new-offset ) \ randomly tweaks the offset
cycles @ severe bias < if
?dup if negate
else 1 rnd 2 * 1 - then
then ;
: seek { monster goal -- } \ sets the .DX .DY offsets for the monster
goal .x @ monster .x @ - sgn tweak-offset monster .dx !
goal .y @ monster .y @ - sgn tweak-offset monster .dy ! ;
\ When CYCLES is low (early in the game) the chance of it being < the RND value is high, so the monster changes direction.
\ As the game progresses, the chance decreases, so the monster is increasingly likely to stay aimed at the player.
\ When CYCLES reaches SEVERE the chance is zero, so the monster is totally focused on the player.
\ When changing direction, if the direction is -1 or 1 then the direction becomes opposite.
\ If the direction is zero then we randomly choose -1 or 1 as the new direction.
\ We need INIT-SEED called in the initialization, because TWEAK-OFFSET uses RND above.
: move-object { node -- } \ needs .DX .DY set, adjusts .X .Y \ doesn't move into WALL
node .x @ node .dx @ + \ -- x
node .y @ node .dy @ + \ -- x y
2dup screen c@ wall = if
2drop \ leave object unmoved if there is a WALL in front of it
else
node .y ! node .x ! \ move object, possibly running into another object
then ;
\ ******
\ ****** This is a small example game --- it is kept simple for educational purposes.
\ ****** The player has to run over all the treasures before the monsters run over him.
\ ****** The player is displayed eyes oo early in the game, then becomes wide-eyes OO as the monsters' aggression increases
\ ****** The monsters are mouths <> and the treasures are money-bags: $$
\ ****** Initially the monsters are biased to moving away from the player, but increasingly
\ ****** become biased to moving toward the player. At SEVERE full cycles they totally go after the player.
\ ****** Anybody writing a game should put it in another file, unless it is a direct upgrade of this game.
\ ******
variable treasures \ list of treasures
variable monsters \ list of monsters
variable player \ the player
: <guide-player> ( dx dy -- ) \ sets the .DX .DY offsets for the player
player @ .dy !
player @ .dx ! ;
<switch \ PLAY-GAME also uses the <ESC> key to escape
:noname drop 1 0 <guide-player> ; char l swof \ right
:noname drop -1 0 <guide-player> ; char k swof \ left
:noname drop 0 -1 <guide-player> ; char q swof \ up
:noname drop 0 1 <guide-player> ; char a swof \ down
:noname drop ; fast-switch> guide-player ( char|false -- )
: init-obstacles ( -- ) \ assumes CLEAR-SCREEN already done
horz vert 0 0 draw-box \ border
1 7 cx 2 - cy 3 - draw-box \ left rail
1 7 cx 2 + cy 3 - draw-box \ right rail
4 7 cx 11 - cy 7 - draw-box \ left box
4 7 cx 8 + cy 1 + draw-box \ right box
;
: init-treasures ( -- node )
0
cx cy treasure new-object link \ center treasure
cx 5 - cy 3 - treasure new-object link \ left treasure
cx 5 + cy 3 + treasure new-object link \ right treasure
;
: init-monsters ( -- node )
0
cx 5 - cy 7 - mouth new-object link \ upper-left monster
cx 5 - cy 7 + mouth new-object link \ upper-right monster
cx 5 - cy 3 + mouth new-object link \ middle-left monster
cx 5 + cy 3 - mouth new-object link \ middle-right monster
cx 5 + cy 7 - mouth new-object link \ lower-left monster
cx 5 + cy 7 + mouth new-object link \ lower-right monster
;
: init-player ( -- node )
1 1 eyes new-object ;
: init-game ( -- )
page
1 seed ! \ init-seed
0 cycles !
clear-screen
init-obstacles
init-treasures dup treasures ! ['] draw-object each
init-monsters dup monsters ! ['] draw-object each
init-player dup player ! draw-object
display-screen ;
: maybe-remove-treasure { node -- } \ NODE must be in the TREASURES list
node player @ collision? if
treasures @ node remove \ -- new-head node
dup erase-object kill-object \ -- new-head node
treasures ! then ;
: taken-all-treasure? ( -- flag )
treasures @ ['] maybe-remove-treasure each
treasures @ 0= ;
: <eaten-by-monster?> ( flag node -- new-flag ) \ NODE must be in the MONSTERS list
player @ collision? or ;
: eaten-by-monster? ( -- flag )
false
monsters @ ['] <eaten-by-monster?> each ;
: guide-monster ( node -- ) \ sets the .DX .DY offsets for the monster
player @ seek ;
: erase-movers ( -- ) \ the monsters and the player can move
monsters @ ['] erase-object each
player @ erase-object
;
: move-monsters ( -- )
monsters @ ['] guide-monster each
monsters @ ['] move-object each \ monsters can run into each other and occupy the same space
;
: move-player ( char|false -- )
guide-player
player @ move-object
;
: draw-all ( -- ) \ treasures, monsters and the player
treasures @ ['] draw-object each \ treasures first so a monster can overwrite it
monsters @ ['] draw-object each
player @ draw-object
;
\ DRAW-ALL redraws the treasures in case a monster over-wrote it previously.
\ The treasures are drawn first, so if a monster is there the monster will over-write it in the display.
: <main> ( char|false -- str|false )
cycles @ severe 4 / >= if \ the monsters are becoming increasingly aggressive
wide-eyes player @ .kind ! then
erase-movers \ -- char|false
move-monsters \ -- char|false
move-player \ --
draw-all \ --
taken-all-treasure? if c" WIN! :-D " exit then
eaten-by-monster? if c" LOSE :-( " exit then
false ;
\ Monsters can run into other monsters or the treasure and occupy the same space.
\ If a monster is on top of a treasure, the monster is displayed (because monsters are drawn after treasures).
\ Neither monsters nor the player can occupy the same space as a wall.
: main ( -- )
init-game
begin key? until \ don't begin game until player presses a key
['] <main> play-game
treasures @ ['] kill-object each
monsters @ ['] kill-object each
player @ kill-object ;
[toc] | [prev] | [next] | [standalone]
| From | Darin Murpy <murphy.darin@gmail.com> |
|---|---|
| Date | 2017-04-08 17:33 +0000 |
| Message-ID | <7a9GA.594382$0k4.526955@fx37.am4> |
| In reply to | #56841 |
hughaguilar96@gmail.com wrote: > Well, I wrote my own game based on your game idea. The problem I saw in your code was that you weren't thinking in terms of general-purpose code-libraries --- most likely because "Starting Forth" doesn't discuss the subject --- no Forth Inc. book discusses the subject, and Elizabeth Rather is obsessively opposed to general-purpose code-libraries. > > Anyway, the program is not difficult given the novice-package. Also, it is a good idea when writing any program to write a general-purpose code-libraries for the purpose of supporting your program. This allows you to write other similar programs in the future without needing any cut-and-paste coding, which is always bad. Also, doing it this way allows you to abstractify the essential aspects --- this usually clarifies the mind --- this is much better than having general concepts mixed in with application-specific concepts in a big muddle. > Hugh, all I can say is "WWWWwwwwwoooooooooooooooowwwwwwwwww!" That is impressive. Anyway, thanks for looking at my code and wow rewriting, to reflect a more "general library" interpretation. I downloaded and will be going over it, to see if I understand your interpretation, so I can learn from it. I really appreciate this Hugh. You done an amazing job in such a short time too! Wow that was cool! Take care now, Darin Murphy
[toc] | [prev] | [next] | [standalone]
| From | hughaguilar96@gmail.com |
|---|---|
| Date | 2017-04-08 18:45 -0700 |
| Message-ID | <f1a3e499-f2aa-4fc3-bb64-525a2cd7aeb1@googlegroups.com> |
| In reply to | #56875 |
On Saturday, April 8, 2017 at 10:34:00 AM UTC-7, Darin Murphy wrote: > hughaguilar96@gmail.com wrote: > > > Well, I wrote my own game based on your game idea. The problem I saw in your code was that you weren't thinking in terms of general-purpose code-libraries --- most likely because "Starting Forth" doesn't discuss the subject --- no Forth Inc. book discusses the subject, and Elizabeth Rather is obsessively opposed to general-purpose code-libraries. > > > > Anyway, the program is not difficult given the novice-package. Also, it is a good idea when writing any program to write a general-purpose code-libraries for the purpose of supporting your program. This allows you to write other similar programs in the future without needing any cut-and-paste coding, which is always bad. Also, doing it this way allows you to abstractify the essential aspects --- this usually clarifies the mind --- this is much better than having general concepts mixed in with application-specific concepts in a big muddle. > > > Hugh, all I can say is "WWWWwwwwwoooooooooooooooowwwwwwwwww!" That is > impressive. Anyway, thanks for looking at my code and wow rewriting, to > reflect a more "general library" interpretation. I downloaded and will > be going over it, to see if I understand your interpretation, so I can > learn from it. I really appreciate this Hugh. You done an amazing job > in such a short time too! Wow that was cool! Take care now, > > Darin Murphy Thanks for your accolades. :-) A video game such as this would have been easy on the Commodore-64, or even on the Commodore Vic-20. It doesn't work very well now: 1.) ANS-Forth made TICKS non-standard, presumably for the purpose of preventing common Forth programmers from writing games. The ANS-Forth committee was composed of Forth compiler-writers who wanted to prevent Forth programmers from writing commercial programs without paying for one of their compilers that would provide the needed features as non-standard and vendor-specific. 2.) AT-XY doesn't work in VFX (VFX does provide TICKS however). Most likely, Stephen Pelc purposely broke AT-XY in the evaluation version of VFX but provides a working version in the commercial version --- he would do this to encourage people to pay for the commercial version of VFX. 3.) KEY has too much lag. This isn't really VFX though, but is just the Windows OS. In the days of the Vic-20 and C64 it was reasonable to assume that every user had a joystick because the computers provided a joystick port and the joystick itself was quite inexpensive. That is not true anymore. All in all, a video game is a bad way to learn Forth programming because there is no support like in the Commodore-64 days. I'm thinking about writing another game. This would be a text adventure similar to Hammurabi but more complicated. The idea is that the player would be given a certain amount of foreign-aid money and would be put in charge of a fictional African country with the goal of improving the people's lives --- this would mostly be in regard to reducing death by starvation and disease, and raising the population level --- even given a huge budget, this is a much more difficult job than you might imagine!
[toc] | [prev] | [next] | [standalone]
| From | Darin Murphy <murphy.darin@gmail.com> |
|---|---|
| Date | 2017-04-10 19:03 +0000 |
| Message-ID | <zGQGA.304928$Fa7.190350@fx09.am4> |
| In reply to | #56886 |
hughaguilar96@gmail.com wrote: > > Thanks for your accolades. :-) > > A video game such as this would have been easy on the Commodore-64, or even on the Commodore Vic-20. It doesn't work very well now: > > 1.) ANS-Forth made TICKS non-standard, presumably for the purpose of preventing common Forth programmers from writing games. The ANS-Forth committee was composed of Forth compiler-writers who wanted to prevent Forth programmers from writing commercial programs without paying for one of their compilers that would provide the needed features as non-standard and vendor-specific. > > 2.) AT-XY doesn't work in VFX (VFX does provide TICKS however). Most likely, Stephen Pelc purposely broke AT-XY in the evaluation version of VFX but provides a working version in the commercial version --- he would do this to encourage people to pay for the commercial version of VFX. > > 3.) KEY has too much lag. This isn't really VFX though, but is just the Windows OS. In the days of the Vic-20 and C64 it was reasonable to assume that every user had a joystick because the computers provided a joystick port and the joystick itself was quite inexpensive. That is not true anymore. > > All in all, a video game is a bad way to learn Forth programming because there is no support like in the Commodore-64 days. I'm thinking about writing another game. This would be a text adventure similar to Hammurabi but more complicated. The idea is that the player would be given a certain amount of foreign-aid money and would be put in charge of a fictional African country with the goal of improving the people's lives --- this would mostly be in regard to reducing death by starvation and disease, and raising the population level --- even given a huge budget, this is a much more difficult job than you might imagine! Your welcome Hugh and I see your point about games being not well suited for learning Forth with due to what you had mentioned, but I think in games, so I don't mind the extra work. I was nearly finished with my BS in "Game and Simulation Programming" with DeVry, but ran out of student loans, this was in 2012. Anyway, I do believes game make great ways for newbies to learn the basics of programming like for instance Logo used drawing and Code.org uses javascript to make learning to program fun. I went there a little over a year ago and had a blast going through all of the courses for fun. I even have their cute little diplomas to prove it. LOL!!! Anyway, thanks again Hugh for all of your suggestions, advice and opinions. Take care now, Darin Murphy
[toc] | [prev] | [next] | [standalone]
| From | Darin Murphy <murphy.darin@gmail.com> |
|---|---|
| Date | 2017-04-03 08:23 -0700 |
| Message-ID | <12847378-cb92-442f-9b0a-b3ca46be9d45@googlegroups.com> |
| In reply to | #56541 |
Wow! Everytime I come here and I post a question it just blows my mind how many of you reply back with helpful answers, suggestions, advice, even with code examples. You all are just amazing! Thank you for taking the time out of your busy schedules, jobs, to help me become the best Forth programmer I can be. I really mean that! I am sure that if it wasn't for Anton, Rickman, Paul, Hugh and Mrs. Conklin, I'd still be tripping over how a "If Else Then" works. I know my code is pretty basic and newbie, but with all of your help and support, during my journey, I'll truly be a Forth programmer. Take care now, Darin Murphy
[toc] | [prev] | [next] | [standalone]
| From | joel.rees@gmail.com |
|---|---|
| Date | 2017-04-06 03:02 -0700 |
| Message-ID | <d8190c4e-960e-409f-a9d1-94f3ceea6476@googlegroups.com> |
| In reply to | #56541 |
On Sunday, April 2, 2017 at 1:10:44 AM UTC+9, Darin Murphy wrote: > Hey everybody! > > [...] > > Anyway, I've stumbled upon an issue with the book and was > wondering if someone knew where I can find a free forth that > works with my Raspberry Pi and uses all of the same exact words > as the ones in "Starting Forth" on Forth Inc.'s site? > [...] > -- > Darin Murphy I'm an outsider, and I'd noticed the issue about Starting Forth, myself. gforth does get about as close as possible, I think. And I was surprised that Anton didn't suggest some method of fixing the numeric parsing to accept the alternate flag characters for double-length integers. It shouldn't be too hard. (Maybe?) My impression is that Forth is not a language so much as a point of view and a willingness to manage your own symbol tables, and, as you can tell from the responses, it's a very individual point of view. (Lisp has the same kinds of problems.) This is why it's hard to get a truly standard Forth. Which means that not having a Forth that is completely compatible with the Starting Forth book may be an advantage. It gets you used to having to glue things together yourself. If you're looking for another free-as-in-software Forth that should run on your pi, -- and _iff_ you are willing to compile it yourself -- you might look at one of my little time-wasters. (I assume from your comments in the thread you would be comfortable with "cc -Wall -o executablename *.c", or with using make.) One of them, I call bif-c for reasons that are too arcane and personal to explain, although I mention them somewhere in the pseudo-documentation. I know it compiled on an embedded SH-3 platform about three years ago. (gcc) It's a near pre-'83 fig-Forth with some custom stuff I had to add for a couple of college classes I used it in back around '87. I wrote the original in M6809 assembler, and the original source is in the tarball. (The 6809 version is the one I passed the classes on.) I converted it to C somewhere around the beginning of the millennium when I had too much train riding time, or something, I don't remember exactly. It's buggy as a west Texas landfill, and I just punted on the DOES> stuff. And the issue of what is where seriously embarrasses me. You'll have to use grep to find things. But it does handle a lot of the Starting Forth code. I tried the double flags, and it doesn't recognize commas, but it does recognize hyphens and solidus as flags for double integers. And I'll warn you again, it does miss other things. With those caveats, you can get the source at: https://sourceforge.net/projects/bif-c/ Don't grab the so-called release from files, go to the code and get trunk for the latest (r52). In other words, hit the "download snapshot" link on this page: https://sourceforge.net/p/bif-c/code/HEAD/tree/ More recently, just for fun, I transcribed a very primitive early fig-Forth for 6800. It's available as part of my 6800 assembler stuff, also on sourceforge: https://sourceforge.net/projects/asm68c/ Again, if you try this, you'll want the snapshot. It is definitely missing stuff for Starting Forth, but you have the advantage of having fairly readable assembly language source to tinker with. But it is missing disk primitives. It runs rather well on Joe Allen's 6800 emulator, well enough that I have not bothered to write my own emulator: https://sourceforge.net/projects/exorsim/ You'll have to compile that, too, but I think it should run on the pi. If I could get his attention and get him to show me how to get into the disk emulation parts, or if I could take enough time to figure it out myself, I'd write some disk primitives. I was working on in-RAM emulation that sort-of worked (but provided no access to actual files), the last time I set it down.
[toc] | [prev] | [next] | [standalone]
| From | Darin Murpy <murphy.darin@gmail.com> |
|---|---|
| Date | 2017-04-07 15:46 +0000 |
| Message-ID | <lvOFA.923738$Pm3.240184@fx42.am4> |
| In reply to | #56778 |
Joel, thanks for taking the time to reply to my post! It's nice to meet you! joel.rees@gmail.com wrote: > On Sunday, April 2, 2017 at 1:10:44 AM UTC+9, Darin Murphy wrote: > I'm an outsider, and I'd noticed the issue about Starting Forth, myself. Outsider? Sounds like you've been in Forth for sometime. Wonder what a person has to do to become an insider (e.g., write their own forth, write forth libraries, burn an effigy of Bjarne Stroustrup, etc.,)? LOL!!! > gforth does get about as close as possible, I think. Yeah it's gotten me through and up to Chapter 10. Still going over it. I like taking my time and I have been busy being a caregiver too! > My impression is that Forth is not a language so much as a point of view and a willingness to manage your own symbol tables, and, as you can tell from the responses, it's a very individual point of view. (Lisp has the same kinds of problems.) This is why it's hard to get a truly standard Forth. I think Forth is really the first real Meta-Lanugage in that everything is a macro built upon primatives, which were built from either machine code, assembly, or C. > Which means that not having a Forth that is completely compatible with the Starting Forth book may be an advantage. It gets you used to having to glue things together yourself. I really don't buy that. I believe the reason Starting Forth doesn't match up in many ways any modern Forth has more to do with a larger problem I've observed in Software in general that is either free or outside the main stream. That is lack of desire to do the boring work. It's fun to build and tinker with your creations, but it's sooo boring to document and update your documents about said software, so they don't. Once I get enough experience programming in Forth and revisit Assembly, I'll write a forth that fits the "Starting Forth" book letter by letter just so that new comings can have their own text for Forth and the heck with the other Forths out there since they cannot given maintain their compatability with a book they endorse on their Forth webpages. > > If you're looking for another free-as-in-software Forth that should run on your pi, -- and _iff_ you are willing to compile it yourself -- you might look at one of my little time-wasters. Thanks I might do that after I'm finished with studying Forth and revisiting Assembly (It's been decades since I've work in Assembly, so it's going to be a bit!). Thanks again for your suggestions and advice! Take care now, Darin Murphy
[toc] | [prev] | [next] | [standalone]
| From | albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) |
|---|---|
| Date | 2017-04-07 18:59 +0200 |
| Message-ID | <oc8gi2$1q9$1@cherry.spenarnc.xs4all.nl> |
| In reply to | #56813 |
In article <lvOFA.923738$Pm3.240184@fx42.am4>, Darin Murpy <murphy.darin@gmail.com> wrote: >Joel, thanks for taking the time to reply to my post! It's nice to meet >you! > >joel.rees@gmail.com wrote: > >> On Sunday, April 2, 2017 at 1:10:44 AM UTC+9, Darin Murphy wrote: >> I'm an outsider, and I'd noticed the issue about Starting Forth, myself. > >Outsider? Sounds like you've been in Forth for sometime. Wonder what a >person has to do to become an insider (e.g., write their own forth, >write forth libraries, burn an effigy of Bjarne Stroustrup, etc.,)? >LOL!!! > > >> gforth does get about as close as possible, I think. > >Yeah it's gotten me through and up to Chapter 10. Still going over it. I >like taking my time and I have been busy being a caregiver too! > >> My impression is that Forth is not a language so much as a point of view and a willingness to manage your own symbol tables, and, as you can tell from the responses, it's a very individual point of view. (Lisp has the same kinds of problems.) This is why it's hard to get a truly standard Forth. > >I think Forth is really the first real Meta-Lanugage in that everything >is a macro built upon primatives, which were built from either >machine code, assembly, or C. > >> Which means that not having a Forth that is completely compatible with the Starting Forth book may be an advantage. It gets you used to having to glue things together yourself. > >I really don't buy that. I believe the reason Starting Forth doesn't >match up in many ways any modern Forth has more to do with a larger >problem I've observed in Software in general that is either free or >outside the main stream. That is lack of desire to do the boring work. >It's fun to build and tinker with your creations, but it's sooo boring >to document and update your documents about said software, so they >don't. Once I get enough experience programming in Forth and revisit >Assembly, I'll write a forth that fits the "Starting Forth" book letter >by letter just so that new comings can have their own text for Forth and >the heck with the other Forths out there since they cannot given >maintain their compatability with a book they endorse on their Forth >webpages. Well, no. Marcel Hendrix has done that boring work all right. He claims the new Starting Forth works on some Forth's because he *actually tested it there*. Because his work and those Forth's are based on the 94' standard, it is far from accidental that gForth is a good match. The authors of gForth go to great lengths to supply a standard compliant Forth too. Now writing a Forth that works 100% with the original Starting Forth is a waste of time, but everybody does as he pleases, of course. And I agree with the point you're responding to. You want to pamper the readers of the original Starting Forth like a mother that sees to it that no bacteria comes neir their child. The first time the child goes outside the house a bug kills him. Counterproductive. <SNIP> >Thanks again for your suggestions and advice! Take care now, > >Darin Murphy > -- Albert van der Horst, UTRECHT,THE NETHERLANDS Economic growth -- being exponential -- ultimately falters. albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst
[toc] | [prev] | [next] | [standalone]
| From | Darin Murpy <murphy.darin@gmail.com> |
|---|---|
| Date | 2017-04-07 20:57 +0000 |
| Message-ID | <o3TFA.815872$3B6.462633@fx40.am4> |
| In reply to | #56814 |
Albert van der Horst wrote: > Well, no. Marcel Hendrix has done that boring work all right. > He claims the new Starting Forth works on some Forth's because > he *actually tested it there*. Because his work and those Forth's are > based on the 94' standard, it is far from accidental that gForth > is a good match. The authors of gForth go to great lengths > to supply a standard compliant Forth too. > > Now writing a Forth that works 100% with the original Starting Forth > is a waste of time, but everybody does as he pleases, of course. > > And I agree with the point you're responding to. You want to pamper > the readers of the original Starting Forth like a mother that sees > to it that no bacteria comes neir their child. The first time the > child goes outside the house a bug kills him. Counterproductive. > > <SNIP> > >>Thanks again for your suggestions and advice! Take care now, >> >>Darin Murphy >> Thank you Albert for explaining your view in regards to having a 100% "Starting Forth" complaint Forth built for educational purposes. I would n't say I want to pamper or sterialize anyone from harnish of reality. I only understand from my own experiences that learning usually faster and easier if the documentation (i.e., tutorials, books, classes, etc.,) are both accurate and entertaining. Also after reviewing dozens of book reviews about "Starting Forth" from professionals in the field, students and hobbiest, I am not alone in this. Thanks again for taking the time to explain your own understandings. Take care now, Darin Murphy
[toc] | [prev] | [next] | [standalone]
| From | rickman <gnuarm@gmail.com> |
|---|---|
| Date | 2017-04-07 20:37 -0400 |
| Message-ID | <oc9b7d$qif$1@dont-email.me> |
| In reply to | #56821 |
On 4/7/2017 4:57 PM, Darin Murpy wrote: > Albert van der Horst wrote: > >> Well, no. Marcel Hendrix has done that boring work all right. >> He claims the new Starting Forth works on some Forth's because >> he *actually tested it there*. Because his work and those Forth's are >> based on the 94' standard, it is far from accidental that gForth >> is a good match. The authors of gForth go to great lengths >> to supply a standard compliant Forth too. >> >> Now writing a Forth that works 100% with the original Starting Forth >> is a waste of time, but everybody does as he pleases, of course. >> >> And I agree with the point you're responding to. You want to pamper >> the readers of the original Starting Forth like a mother that sees >> to it that no bacteria comes neir their child. The first time the >> child goes outside the house a bug kills him. Counterproductive. >> >> <SNIP> >> >>> Thanks again for your suggestions and advice! Take care now, >>> >>> Darin Murphy >>> > > Thank you Albert for explaining your view in regards to having a 100% > "Starting Forth" complaint Forth built for educational purposes. I would > n't say I want to pamper or sterialize anyone from harnish of reality. I > only understand from my own experiences that learning usually faster > and easier if the documentation (i.e., tutorials, books, classes, > etc.,) are both accurate and entertaining. Also after reviewing dozens > of book reviews about "Starting Forth" from professionals in the field, > students and hobbiest, I am not alone in this. Thanks again for taking > the time to explain your own understandings. I agree with you 100%. When learning a new topic of any sort, errors in the instructional material is often a fairly large pothole in the road. No only do you have to recognize it as a pothole rather than bad driving steering the car up onto the curb, you then have to go back to see what could have been done to avoid hitting the pothole and eventually find a way to drive around it. I thought I'd try running the code you are talking about and found a problem before I even got going. On installation, the readme file says, "To start the system, just say `gforth'". Well, I have said 'gforth' until I'm blue in the face and it doesn't run. I tried typing it into a command window and get "'gforth' is not recognized as an internal or external command, operable program or batch file." I guess I have to add the gforth installation directory to the command path... Ok, did that and now it complains, "gforth: cannot open image file gforth.fi in path .:/usr/local/lib/gforth/site-forth:/usr/local/share/gforth/site-forth:/usr/local/lib/gforth/0.7.0-20081226:/usr/local/share/gforth/0.7.0-20081226 for reading" I don't know what this means, so I will have to come back to this later. Certainly I could download a newer version. I didn't realize I had never installed gforth on this machine. I will need to come back to this when I have more time... :( -- Rick C
[toc] | [prev] | [next] | [standalone]
| From | Darin Murpy <murphy.darin@gmail.com> |
|---|---|
| Date | 2017-04-08 01:31 +0000 |
| Message-ID | <w3XFA.930654$Pm3.371050@fx42.am4> |
| In reply to | #56827 |
rickman wrote: > I agree with you 100%. When learning a new topic of any sort, errors in > the instructional material is often a fairly large pothole in the road. > No only do you have to recognize it as a pothole rather than bad driving > steering the car up onto the curb, you then have to go back to see what > could have been done to avoid hitting the pothole and eventually find a > way to drive around it. > > I thought I'd try running the code you are talking about and found a > problem before I even got going. On installation, the readme file says, > "To start the system, just say `gforth'". Well, I have said 'gforth' > until I'm blue in the face and it doesn't run. I tried typing it into a > command window and get "'gforth' is not recognized as an internal or > external command, operable program or batch file." I guess I have to > add the gforth installation directory to the command path... > > Ok, did that and now it complains, "gforth: cannot open image file > gforth.fi in path > .:/usr/local/lib/gforth/site-forth:/usr/local/share/gforth/site-forth:/usr/local/lib/gforth/0.7.0-20081226:/usr/local/share/gforth/0.7.0-20081226 > for reading" > > I don't know what this means, so I will have to come back to this later. > Certainly I could download a newer version. I didn't realize I had > never installed gforth on this machine. > > I will need to come back to this when I have more time... :( > Rick, sorry but I cannot tell whether you are making fun on what I said, trying to make a point, or if you are seriously having this much of an issue getting gforth installed on Linux. If it's the latter, I'm sorry, but I was able to get it working just by typing: sudo apt-get install gforth Then when it finished installing it, I open a terminal window and typed: gforth Which started up find. I've been using the Gforth manual with "Starting Forth" in tandem, so I can maximumize my understanding of the subject and try to understand how to avoid some of the pot holes, although it's as you said earlier, with out know what is a pot-hole and what is bad steering, it can make it frustrating trying to learn how to drive. Anyway thanks for pointing things out and if you were trying to joke LOL. Take care now, Darin Murphy
[toc] | [prev] | [next] | [standalone]
| From | rickman <gnuarm@gmail.com> |
|---|---|
| Date | 2017-04-07 21:45 -0400 |
| Message-ID | <oc9f68$3l6$1@dont-email.me> |
| In reply to | #56832 |
On 4/7/2017 9:31 PM, Darin Murpy wrote: > rickman wrote: > >> I agree with you 100%. When learning a new topic of any sort, errors in >> the instructional material is often a fairly large pothole in the road. >> No only do you have to recognize it as a pothole rather than bad driving >> steering the car up onto the curb, you then have to go back to see what >> could have been done to avoid hitting the pothole and eventually find a >> way to drive around it. >> >> I thought I'd try running the code you are talking about and found a >> problem before I even got going. On installation, the readme file says, >> "To start the system, just say `gforth'". Well, I have said 'gforth' >> until I'm blue in the face and it doesn't run. I tried typing it into a >> command window and get "'gforth' is not recognized as an internal or >> external command, operable program or batch file." I guess I have to >> add the gforth installation directory to the command path... >> >> Ok, did that and now it complains, "gforth: cannot open image file >> gforth.fi in path >> .:/usr/local/lib/gforth/site-forth:/usr/local/share/gforth/site-forth:/usr/local/lib/gforth/0.7.0-20081226:/usr/local/share/gforth/0.7.0-20081226 >> for reading" >> >> I don't know what this means, so I will have to come back to this later. >> Certainly I could download a newer version. I didn't realize I had >> never installed gforth on this machine. >> >> I will need to come back to this when I have more time... :( >> > > Rick, sorry but I cannot tell whether you are making fun on what I said, > trying to make a point, or if you are seriously having this much of an > issue getting gforth installed on Linux. If it's the latter, I'm sorry, > but I was able to get it working just by typing: > > sudo apt-get install gforth No, I'm not making fun of you. I'm using Windows. gForth will run under Windows and I believe I've done that, but it must have been on my last laptop. I normally use Win32Forth which is a nice package. I have used it professionally for a test fixture I developed to production test boards I sell. I got some help from Jos in the Yahoo group and it even copies some data to the Windows paste buffer to make pasting it into a spread sheet that much easier! > Then when it finished installing it, I open a terminal window and typed: > > gforth > > Which started up find. I've been using the Gforth manual with "Starting > Forth" in tandem, so I can maximumize my understanding of the subject > and try to understand how to avoid some of the pot holes, although it's > as you said earlier, with out know what is a pot-hole and what is bad > steering, it can make it frustrating trying to learn how to drive. > Anyway thanks for pointing things out and if you were trying to joke > LOL. Take care now, I have a raspberry pi which is not connected to anything at the moment. I've run gForth on that ok. But I don't feel like getting it up and running as that means I have to use Putty or something on the PC to talk to it. I did a small project on the TI Stellaris ARM launchpad this way a couple of years ago and it worked well. But I don't recall all the details of getting it set up and talking to it over the network. Still, I found the same issues with Win32Forth, but they aren't the fault of the Forth package. The book Starting Forth has never been brought up to modern usage 100%. Then there are a few examples they use that they *say* will not run on all systems verbatim. For the double numbers, just use a period instead of the slashes or hyphens and the number will be accepted. -- Rick C
[toc] | [prev] | [next] | [standalone]
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2017-04-07 20:32 -0700 |
| Message-ID | <87h91za80m.fsf@nightsong.com> |
| In reply to | #56835 |
rickman <gnuarm@gmail.com> writes: > No, I'm not making fun of you. I'm using Windows. gForth will run > under Windows and I believe I've done that, but it must have been on > my last laptop. I think this handles everything: https://www.complang.tuwien.ac.at/forth/gforth/gforth-0.7.0.exe
[toc] | [prev] | [next] | [standalone]
| From | rickman <gnuarm@gmail.com> |
|---|---|
| Date | 2017-04-08 01:31 -0400 |
| Message-ID | <oc9sdg$q8d$1@dont-email.me> |
| In reply to | #56844 |
On 4/7/2017 11:32 PM, Paul Rubin wrote: > rickman <gnuarm@gmail.com> writes: >> No, I'm not making fun of you. I'm using Windows. gForth will run >> under Windows and I believe I've done that, but it must have been on >> my last laptop. > > I think this handles everything: > > https://www.complang.tuwien.ac.at/forth/gforth/gforth-0.7.0.exe This is a bit odd. I downloaded this copy and it matches a copy I already have on my drive from 2009. I have a third copy from the same date in 2009, but a few minutes later and 1 MB smaller named, gforth-0.7.0-20081226.exe. This was the version I tried to install. Not sure what is different about this one, but I will try the other, just not tonight. Thanks for the link. -- Rick C
[toc] | [prev] | [next] | [standalone]
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Date | 2017-04-08 06:18 +0000 |
| Message-ID | <2017Apr8.081822@mips.complang.tuwien.ac.at> |
| In reply to | #56844 |
Paul Rubin <no.email@nospam.invalid> writes:
>I think this handles everything:
>
>https://www.complang.tuwien.ac.at/forth/gforth/gforth-0.7.0.exe
AFAIK this does not work on Windows 10, so on that you can use the
current snapshot:
https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/current/gforth64.exe
https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/current/gforth.exe
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2016: http://www.euroforth.org/ef16/
[toc] | [prev] | [next] | [standalone]
| From | mhx@iae.nl |
|---|---|
| Date | 2017-04-08 03:01 -0700 |
| Message-ID | <b1f6a51c-f120-4f90-8d7e-f7325d21d3eb@googlegroups.com> |
| In reply to | #56832 |
On Saturday, April 8, 2017 at 3:31:09 AM UTC+2, Darin Murphy wrote: As the transcriber of Starting Forth, please allow me to explain some aspects that have not been properly addressed yet. I also want to make some additional comments. It seems that 99% of the problems discussed in this thread can be solved by properly reading a section in the on-line version's Acknowledgements. I'll reproduce and annotate it here: "Starting Forth, First Edition is from 1981. These web pages were designed in 2003, when it became apparent that SF would never be re-issued by the copyright holder. A small supply of about 500 books was all that was left. When you can get hold of the original, do so." My 2003 transcription (home.iae.nl/users/mhx/sf.html) was illegal, or at least unsanctioned. I found it unacceptable that this refreshingly unconventional textbook, which had instantly converted me to a Forth addict when I was still at university, would become unavailable to next generations. It took me about a year to transcribe the text and adjust the code. I did not have access to the original artwork. Leo's original drawings were back-added by Forth Inc. when they eventually approved my transcription and setup their own SF pages at https://www.forth.com/starting-forth/ . We reached an agreement that is described in the "Copyright Notice" you find in the Acknowledgement section of the transcript. The two page sets contain the same text, but Marlin Ouverson has adjusted the look-and-feel of the Forth Inc. rendering by properly sabotaging the HTML standards :-) "In this transcript Forth code has been ANSified. The samples should run on, at least, iForth and SwiftForth. Where necessary, statements that were valid in 1981 have been exchanged with statements more appropriate for 2003 (when this tribute was written)." I guess this is the measure that causes the present confusion. *None of the code in the original SF (OSF) is ANS, because ANS Forth did not exist when OSF was written.* There is no way a modern Forth can run OSF examples unmodified, unless one first writes an emulator for OSF's Forth dialect (16-bit threaded code) in ANS Forth--a 64-bit optimizing compiler, most probably. Such an emulator would not teach the reader modern Forth. It'd only allow to recreate the experience of the original readers of OSF. This would be about as useful as writing a MIX emulator to try out the algorithms in Knuth's TAOCP. "Starting Forth is full of very difficult to reproduce graphics. These enormously enhance the text's mnemonic value, and are invaluable for a first-time Forth user. I have therefore added "substitute" graphic elements, roughly at the same spot where they are in the original. The original graphics are, of course, much better." Mrs. Rather does not like, and consistently never has liked, Leo's pictures. Although I respect her opinion, it is well-accepted that pictures work (https://www.mindtools.com/memory.html). With regards to silliness, e.g. "LaTeX: A Document Preparation System", uses pictures in a very serious text aimed at very serious people. "In this transcript I have assumed a 32-bit, byte-addressing Forth, with 8-bit characters. The address returned by WORD is assumed to be HERE. This allows the common trick of ALLOTing length of str CHARS after using WORD in order to compile string str to memory. Multitasking issues are ignored (e.g. no >TYPE, just TYPE). Division is symmetric, not floored, and two's complement is assumed throughout. Most Forths should not have problems with this. Chapter 7 exploits extended uses of number conversion. Some Forths are broken in this respect, but iForth and SwiftForth do support these neat features." At the time the ANS standard was developed, there were people that for various strategic reasons loved to point out why conventional Forth phrases would NOT work on OrangeCarrotHead Forth as released in 1947 for the big-endian 1's complement 55-bit IBM 321 mainframe. I did not want any of such if's and but's in the transcribed SF, and opted to show Forth code that should run on a "reasonable" Forth. I made sure that at least two existing Forths could run all the code of the new SF, and added warnings for code that was far left-field. It is great that no contributor here remembers anymore that in pre-ANS times it was *impossible* to take a snippet of published Forth and run it on one's own system. CFA, LFA, ', ['], signed division, 2+ for addressing, 1-based PICK, segmented 16-bit Forth, floating-point, blocks, non-standard words with standard names (OR, NOT) ... Then about that OCTAL thing in Chapter 8: "Your Forth system already has a number of variables defined; one is called BASE. BASE contains the number base that you're currently working in. In fact, the definition of HEX and DECIMAL (and OCTAL, if your system has it) are simply : DECIMAL 10 BASE ! ; : HEX 16 BASE ! ; : OCTAL 8 BASE ! ; What is there to be confused about? Doesn't gForth have BASE ? -marcel
[toc] | [prev] | [next] | [standalone]
Page 4 of 11 — ← Prev page 1 2 3 [4] 5 6 … 11 Next page →
Back to top | Article view | comp.lang.forth
csiph-web