Repository navigation
Releases: tedwardd/picogopher
Releases · tedwardd/picogopher
Release list
v1.3.1
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/lastSelectableindices after menu parse - Use minimum-scroll when navigating to first/last selectable so header/footer info stays initially hidden
- Preserve manual
pageStartadjustments inDisplayMenuby only recalculating whenselectedIndexis off-screen - Reset
pageStarton new menu load to prevent stale values
v1.3 - Text Rendering Fix
Summary
- Fix underscore/descender rendering:
LINE_HEIGHTwas 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_PAGEadjusted 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
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
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
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
Gkey - 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.