[HN Gopher] The Mouse Programming Language on CP/M
       ___________________________________________________________________
        
       The Mouse Programming Language on CP/M
        
       Author : harryvederci
       Score  : 57 points
       Date   : 2024-08-30 13:13 UTC (3 days ago)
        
 (HTM) web link (techtinkering.com)
 (TXT) w3m dump (techtinkering.com)
        
       | actionfromafar wrote:
       | This is a cool little language, seemingly deserving ports to
       | other CPUs than Z80.
        
       | zabzonk wrote:
       | don't see why you would you would use this over FORTH, which is
       | IMHO much more readable and widely available on CP/M - or you can
       | easily write your own.
        
         | flohofwoe wrote:
         | Maybe the implementation is smaller than a typical FORTH?
         | 
         | For instance the FORTH implementation I'm somewhat familiar
         | with (on the KC85 8-bit home computer) was an 8 KByte ROM
         | module, which was packed to the brim - and it wasn't a
         | luxurious FORTH by any means. This Mouse compiler seems to fit
         | into 2 KBytes.
        
           | _a_a_a_ wrote:
           | Can't remember but have read you can bootstrap a forth
           | interpreter from an amazingly low number of bytes. Maybe more
           | of theoretical interest than practical but still.
        
         | MarkusQ wrote:
         | IIRC they were roughly contemporaneous (forth was around
         | longer, but mostly as something Chuck played with and most
         | people didn't learn about until much later). In those days you
         | couldn't just google for alternatives or hop on something like
         | HN to see what other people were working on. So you wound up
         | with all sorts of local variants on the same idea, and it was
         | only years later (if ever) that people learned that they were
         | working on similar ideas, unless 1) somebody published, 2)
         | hallway chatter at a conference, 3) somebody knew somebody who
         | knew somebody and you found out serendipitously. Very different
         | vibe.
        
       | whartung wrote:
       | I actually own the book for this language. Found it in an obscure
       | corner of the local technical bookstore. It was not placed with
       | all of the other computer books.
       | 
       | Just picked it up because of my fascination with programming
       | languages.
        
       | pgris2 wrote:
       | Honestly, a port to a modern architecture, with more standard
       | looking characters (like using # for comments instead of ~ and \n
       | for newline instead of ! ) would be pretty interesting... It's
       | amazing what that people used to be able to do with such
       | limitations. 2k! I can barely make a CRUD app fit in 2G
        
         | 082349872349872 wrote:
         | That 2k would've cost ~$130 in early 1975, roughly $750 in 2024
         | dollars.
         | 
         | We have the EEs to thank for making the price of bloat
         | inconsequential.
         | 
         | https://jcmit.net/memoryprice.htm
         | 
         | https://www.minneapolisfed.org/about-us/monetary-policy/infl...
        
       | hggh wrote:
       | (2020)
        
       | IamDaedalus wrote:
       | oh cool mouse! I wrote a very small interpreter (incomplete) for
       | a build what you want capstone project. almost everyone wrote a
       | website or some web app but I chose to write this in C and it was
       | one of the projects I had a lot of fun on I'll actually go back
       | and complete it
        
       | mikewarot wrote:
       | It _seems_ like forth, with a lot of chopping to get the size
       | down, and greatly simplify parsing.
       | 
       | However... it doesn't have stack manipulation, a dictionary, or
       | the ability to handle strings in any fashion.
       | 
       | It's a cute little language, you can solve a lot of problems with
       | it, but it's not the Forth you're looking for. ;-)
        
       | ChuckMcM wrote:
       | Nice! Takes me down memory lane when my very first computer was a
       | "Digital Group" Z-80 system I built from a kit with 10K of RAM!
       | (8K memory board + 2K on the CPU board). Mouse was a faster and
       | more compact than Tiny BASIC. It was also slightly less brain
       | bending than Forth :-). I'll have to put it on my emulated IMSAI
       | 8080.
       | 
       | It is fun to note the number of models of small languages that
       | emerged from the early days of computing which would all fit in
       | the L1 cache of a current processor. But they could also be used
       | as an interesting way of doing GPU/APU macros. When I worked at
       | Intel I implemented a simple interpreter like this to drive the
       | compute element of the 82786 graphics chip that Intel had
       | produced. As that 'engine' didn't have much stack support my
       | interpreter was more like Mouse than Forth. It let me write
       | simple exerciser tests for the chip like "fill a window region
       | with a pattern" or "do cookie cutter blits between two regions."
       | 
       | I also find it fun when students learn a language like this and
       | suddenly internalize the difference between "programming" and
       | "computation". We joke you can write Fortran in any language but
       | that joke is funny for me because it expressed the difference
       | between someone who was programming by 'pattern matching' and
       | people who were programming by 'expressing computation through
       | language elements.' (yeah it sounds kind of snooty but it isn't,
       | it is the difference between algorithms which can be expressed in
       | any language vs using the statements of known programming
       | language to similarly express that algorihm in a different
       | language). The more ways you learn to express something I feel
       | like the better you understand what is part of the algorithm vs
       | what is part of the language syntax.
        
       ___________________________________________________________________
       (page generated 2024-09-02 23:01 UTC)