Skip to content

Releases: tedwardd/picogopher

v1.3.1

Choose a tag to compare

@tedwardd tedwardd released this 12 Feb 13:53

Edge-scrolling past first/last selectable link

When at the first or last selectable link, pressing Up/Down now scrolls the view to reveal non-selectable info text (headers, footers) that may be hidden off-screen. The cursor stays on the current link while the page shifts to show the hidden content in a single jump.

Changes

  • Track firstSelectable/lastSelectable indices after menu parse
  • Use minimum-scroll when navigating to first/last selectable so header/footer info stays initially hidden
  • Preserve manual pageStart adjustments in DisplayMenu by only recalculating when selectedIndex is off-screen
  • Reset pageStart on new menu load to prevent stale values

v1.3 - Text Rendering Fix

Choose a tag to compare

@tedwardd tedwardd released this 11 Feb 20:10

Summary

  • Fix underscore/descender rendering: LINE_HEIGHT was 10px but the default PicoMite Font #1 is 8x12px. The 2-pixel overlap caused each line to erase the bottom rows of the line above, making underscores (_) invisible and corrupting descenders. Now correctly set to 12px.
  • Widen info line display: Removed the 8-character dead prefix (6-space type indicator + 2-space cursor) from informational menu items, giving them the full 40-character display width. ASCII art banners (e.g. hngopher.com) now render correctly instead of being truncated.
  • LINES_PER_PAGE adjusted from 25 to 21 to match the corrected line height.

Upgrade

Replace gopher.bas on your PicoMite device. No other changes needed.

v1.2 - Flicker-Free Scrolling

Choose a tag to compare

@tedwardd tedwardd released this 11 Feb 16:22

What's New

Flicker-Free Scrolling & Navigation

  • Replaced CLS-based full redraws with in-place line overwriting using space-padded strings -- eliminates the visible blank frame that caused screen flicker
  • Added UpdateMenuCursor() for lightweight 2-line differential updates when moving Up/Down within the visible page, making cursor navigation near-instant
  • Applied flicker-free rendering across all scrollable screens: menu, text viewer, bookmarks, and recently visited

Technical Details

  • New blankLine$ global (42-char space string) used for efficient line padding
  • All display routines (DisplayMenu, DisplayTextPage, ShowBookmarks, ShowRecent) now overwrite every line slot to full width, blanking unused positions
  • HandleInput() checks whether Up/Down movement stays within the visible [pageStart, pageEnd] range; if so, only 2 lines are repainted instead of 25+

Full Changelog: v1.1...v1.2

PicoGopher v1.1

Choose a tag to compare

@tedwardd tedwardd released this 11 Feb 16:01

PicoGopher v1.1

What's New

Error Recovery

  • Connection and request failures now show an interactive error screen
  • Options: Retry, Back, ^ Home, Go to address
  • No more raw error codes or frozen 3-second pauses

Search History

  • Recent search queries are remembered (up to 5)
  • When using Gopher search (type 7), previous queries are shown
  • Type a number to reuse a past query, or enter a new one

Recently Visited Pages

  • Press R to view a list of recently visited pages (up to 10)
  • Navigate the list and press Enter to revisit any page

Help Menu

  • Press ? for a full-screen key binding reference
  • Status bar simplified to essentials: ^=Home B=Back G=Go Q=Quit ?=Help

Text & Display Improvements (from v1.0 post-release)

  • Word wrapping for text files (no more truncated lines)
  • Horizontal scrolling for gophermap menus via Left/Right arrows
  • Menu display strings stored at 80 chars (up from 40)

Memory

~52 KB heap usage (of ~100-160 KB available on Pico 2W).

Full Key Bindings

Key Action
Up/Down Navigate menu items
Left/Right Horizontal scroll
Enter Select item
B Go back
^ Go to home server
G Go to address
A Add bookmark
ESC View bookmarks
R Recently visited
? Help
Q Quit

PicoGopher v1.0

Choose a tag to compare

@tedwardd tedwardd released this 11 Feb 15:32

PicoGopher v1.0

A lightweight Gopher protocol browser written in mmBASIC for the Raspberry Pi Pico 2W running PicoMite firmware.

Features

  • Gopher Protocol: Full RFC 1436 compatible menu browsing (types 0, 1, 3, 7, i)
  • Menu Navigation: Up/Down arrow keys with Left/Right horizontal scrolling for long lines
  • Text Viewer: Word-wrapped text display with line and page scrolling
  • Bookmarks: Save, load, and navigate bookmarks (stored in bookmarks.txt)
  • History Stack: Back button navigation with overflow handling
  • Search: Gopher type 7 search server support
  • Custom Addresses: Navigate to any Gopher address via G key
  • Memory Optimized: ~49KB heap usage with LENGTH-constrained string arrays

Hardware Requirements

  • Raspberry Pi Pico 2W
  • PicoMite firmware with WebMite support
  • Graphics LCD display (~320x320)
  • QWERTY keyboard
  • WiFi connectivity

Getting Started

See QUICK_START.md for a 5-minute setup guide.