Pico Logo—A fun language for learning

Release 7

Another release of refactoring, this time I improve recursion depth.

I added more looping primitives: for, do.while, while, do.until, until, forever.

This release also introduces list processing (primitives: apply, foreach, map, filter, find, crossmap). To support these primitives, lambdas and anonymous procedures to the interpreter.

For example, to calculate the distance between two points in any number of dimensions, we can use map and apply together with lambda expressions:

What’s Changed

  • Move to a CPS Interpreter
  • List processing and looping primitives

Blair, I have no Logo experience. In the manual’s intro it says “We are assuming that you have had some experience with Logo” Where can I get up to speed?….thx….Brian

If you are an experienced programmer you will be able to use the manual to get started.

Otherwise, there are many many books to get started. Which is best is probably based on the style of learning you are most comfortable with.

This book is one that I think is good to start with:

If you are looking for a book with deeper explanations, this book might be better:

1 Like

Release 8

This release has many memory and recursion improvements that improves stability. WiFi and networking support is available for the Pico 2W (and compatible devices).

I am currently working my way through Advanced Logo: A Language for Learning by Michael Friendly.

What’s Changed

  • Core improvements
  • WiFi and network connections
  • Enhance memory management and stack usage in CPS calls
  • Add WiFi MAC address support

3 Likes

Release 9

I am still working my way through the book, Advanced Logo: A Language for Learning. This release corrects bugs I have found.

It also introduces syntax highlighting in the editor:

This release ships with a default theme plus eight other editor themes (popular VS Code themes). You can create your own theme as well.


4 Likes

that editor looks sexy!

1 Like

I just wanted to say thanks for developing Picologo. I have been using it quite a bit these last two weeks in my spare time. I especially like the editor. When I had my TI-99/4a in the eighties I really wanted to try out TI Logo, so it’s great to be able to play with Logo on my PicoCalc. I have found the guide a great help too.

1 Like

Thank you so much for the feedback! I am happy you are having fun!

Out of curiosity, which Pico board are you using?

1 Like

I am using a Pico 2 W board

1 Like

Release 10

It has been about 7 months from the last release. It may seem like an abandoned project, but it you were following along on GitHub, it was active during this time. Pico Logo is mature now, with the addition of functionality, apps and games that stress tested the interpreter. I am listing some highlights below, but also take a look at the README.

Highlights

Games!

  • Asteroids — Vector graphics for the small screen and rich sound gives the feel of the arcade.
  • The Snake Temple — A fun text game ported from RAX’s Oric BASIC 10-liner.
  • Battlezone — A port of the 1980 vector tank game, in 3D, simplified for Pico Logo.
  • Berzerk — Defeat the robots and Evil Otto, complete with sound and voice.
  • Dungeons of Daggorath — one of the first real-time, first-person perspective role-playing video games, ported to PicoCalc.

Editor

  • Full vi mode: modal editing, :m/:t, :g/:v, . repeat, counts, procedures as the edit unit
  • Incremental search/replace, block-cursor fixes, PSRAM edit buffer, hardware scrolling

Networking / storage

  • HTTP client + PSRAM blob heap, TLS support
  • JSON primitives: json.get, json.object/array/make
  • Internal LittleFS filesystem + FAT32 SD support, multi-board backup/restore
  • HTTP server (mDNS, turtle control, file transfer), styled file server
  • Long words via PSRAM blobs

Language / core

  • Multi-sprite turtle model: tell/ask/each/who, costumes, collisions, when demons
  • say — formant speech synthesizer
  • Sound design and refinements
  • Global hash-index lookup, atom-storage reclamation, word-table reporting
  • Vertical-bar word quoting, pick/reverse/shuffle, rerandom, sort, equal?
  • hw. family (temp sensor, LED, battery→hw.battery)
  • .bootsel, pensize, write, cleardemons

Bug fixes — a long run of numbered fixes, see docs/bugs.md

Infra / housekeeping

  • Pico SDK 2.3.0, Ninja generator for host/tests presets
  • Several dependabot bumps in /grammar (undici, picomatch, fast-uri, js-yaml)

6 Likes