> ## Content Index
> Fetch the complete content index at: https://mfitzp.ghost.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# SAM PD Snow demo
- URL: https://mfitzp.ghost.io/sam-pd-snow-demo/
- Published: 1996-01-01T00:00:00.000Z
- Updated: 2026-09-02T07:08:59.000Z
- Author: Martin Fitzpatrick
- Tags: SAM Coupé, Retrocomputing, #Import 2024-03-14 08:20, #Import 2026-08-24 14:26

This small demo was written in SAM C as an advert for the SAM PD / F9 Software library from Derek Morgan -- where I released all my games.

The demo has a Christmas theme with a snowman & trees with falling snow. The snow lands and rolls off the tops of things in the scene, collecting in neat little piles in the gaps. If you leave it running eventually the screen will fill up (aside from the unreachable areas under the words).

🎶

The music is a rendition of **Jingle Bells* by Rik Moore.

![A fine dusting](https://storage.ghost.io/c/50/3e/503e92e5-9187-4058-a6fd-d37b3deb22ec/content/images/2026/09/start.png)

The starting screen

![A fine dusting](https://storage.ghost.io/c/50/3e/503e92e5-9187-4058-a6fd-d37b3deb22ec/content/images/2026/09/dusting-1.png)

A fine dusting

![Starting to fill up, the gaps in the top of the letters fill up](https://storage.ghost.io/c/50/3e/503e92e5-9187-4058-a6fd-d37b3deb22ec/content/images/2026/09/filling.png)

Starting to fill up, the gaps in the top of the letters fill up

![The end stage, entire screen filled](https://storage.ghost.io/c/50/3e/503e92e5-9187-4058-a6fd-d37b3deb22ec/content/images/2026/09/complete.png)

The end stage, entire screen filled

## Implementation

The way this is written is a little *strange*. Rather than detect directly the filled pixels on the screen, it uses an internal bitmap with 1 for filled pixels and 0 for empty, which must be generated an loaded in as a separate data file. This is 4x smaller than a normal SCREEN$ file (4bpp=16 colors) but still a bit of a waste of space.

This was needed though as *for some reason* reading the pixel value of the screen was causing crashes and I couldn't find a solution. The bit map was generated in BASIC.

Thinking back I'm a bit surprised I didn't modify this into a FRED menu at some point.