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


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

Is there a free version of Forth that uses the exact same words as "Starting Forth" on Forth Inc.'s site?

Started byDarin Murphy <murphy.darin@gmail.com>
First post2017-04-01 12:10 -0400
Last post2017-04-08 01:37 -0400
Articles 20 on this page of 202 — 25 participants

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


Contents

  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 →


#56630

FromJulian Fondren <julian.fondren@gmail.com>
Date2017-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]


#56688

FromJUERGEN <epldfpga@aol.com>
Date2017-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]


#56692

FromMark Wills <markwills1970@gmail.com>
Date2017-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]


#56703

FromJUERGEN <epldfpga@aol.com>
Date2017-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]


#56841

Fromhughaguilar96@gmail.com
Date2017-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]


#56875

FromDarin Murpy <murphy.darin@gmail.com>
Date2017-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]


#56886

Fromhughaguilar96@gmail.com
Date2017-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]


#57012

FromDarin Murphy <murphy.darin@gmail.com>
Date2017-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]


#56665

FromDarin Murphy <murphy.darin@gmail.com>
Date2017-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]


#56778

Fromjoel.rees@gmail.com
Date2017-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]


#56813

FromDarin Murpy <murphy.darin@gmail.com>
Date2017-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]


#56814

Fromalbert@cherry.spenarnc.xs4all.nl (Albert van der Horst)
Date2017-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]


#56821

FromDarin Murpy <murphy.darin@gmail.com>
Date2017-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]


#56827

Fromrickman <gnuarm@gmail.com>
Date2017-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]


#56832

FromDarin Murpy <murphy.darin@gmail.com>
Date2017-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]


#56835

Fromrickman <gnuarm@gmail.com>
Date2017-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]


#56844

FromPaul Rubin <no.email@nospam.invalid>
Date2017-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]


#56848

Fromrickman <gnuarm@gmail.com>
Date2017-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]


#56850

Fromanton@mips.complang.tuwien.ac.at (Anton Ertl)
Date2017-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]


#56857

Frommhx@iae.nl
Date2017-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