Skip to content

Commit

Permalink
First commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Brown committed May 1, 2023
0 parents commit 58bfa35
Show file tree
Hide file tree
Showing 17 changed files with 2,147 additions and 0 deletions.
39 changes: 39 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Psion SIBO C SDK Compiled and Generated Files
**/*.APP
**/*.app
**/*.IMG
**/*.img
**/*.EXE
**/*.exe
**/*.RSC
**/*.rsc
**/*.RZC
**/*.rzc
#**/*.RSG
#**/*.rsg
**/*.SHD
**/*.shd

# Psion Debug/Symbol Files
**/*.DBD
**/*.dbd
**/*.SYM
**/*.sym

# Standard C Compilation Objects and Files
**/*.MAP
**/*.map
**/*.OBJ
**/*.obj

# Installation Path
INSTALL/**

# SSD Images
**/*.fat12
**/*.rom
**/*.ssd

# Pyramid Specifics
**/*.ZIP
**/*.zip
325 changes: 325 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

75 changes: 75 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Pyramid

Pyramid, a Patience Card Game for the Psion Series 3

©1993 J Cade Roux

Released under the GNU General Public License v2.

## Installation

To install Pyramid, copy `PYRAMID.APP` it to any directory (like `\APP\`) and
install it <Psion-I> from the system screen. Alternatively, rename it
`PYRAMID.IMG`, and copy it to the `\IMG\` directory, or any other directory
(such as a games alias) referenced by an alias of RunImg.

## Rules

This is the Pyramid patience card game. The tableau is in the form of
a pyramid with seven rows. The object of the game is to remove as many
cards from the pyramid as possible.

Only those cards which are not overlapped by other cards can be removed.
A pair of cards which total 13 in value, or a singleton King may be removed.

The face down pile is the hand which is turned up one card at a time onto
the talon pile, of which the top card may also be used to make a match.

The talon pile is not recycled. The Kings and pairs are discarded.

## Playing

The keys used to control Pyramid are as follows:

**Left** and **Right** arrow keys move the pointer to the card to be lifted
(the arrow point diagonally up from the left of the card). The **space
bar** is pressed, and the card is picked up (unless it is a King, in
which case it is immediately discarded). Then the card is moved to the
destination and the space bar is pressed to attempt to match the card.

If a match is made the two cards will be discarded.

**Return** draws a single card from the face down hand if the player is
currently not holding a card. **Escape** aborts a move before dropping.

The rules are simply as described above. Pressing the **space bar** when
on the face down pile flips a card onto the talon pile. The talon pile
may not be recycled.

## Compiling

Development tools used included:

On the PC:

- The **Psion SIBO SDK** with **TopSpeed C** compiler

On the Amiga:

- **DeluxePaint IV** - the only paint program I've ever used which is worth
running. Certainly light years ahead of Paintbrush - the only other
development tool I have used to make graphics for Psion games.

Pyramid was written completely with PLIB, HWIF, and WLIB functions,
and, as such, is not portable (even to older SIBO machines, unless you
want to rewrite all the HWIF sections) in any way.

It will run fine on later SIBO/EPOC16 machines, such as the Series 3a/c/mx and Siena.

## Problems/Bugs

Currently no undo other than cancelling the current move.

## Revisions

1.0a: Initial release
9 changes: 9 additions & 0 deletions src/PYRAMID.RSG
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#define RS_QUIT 1
#define RS_NEW_GAME 2
#define RS_NO 3
#define RS_YES 4
#define RH_MAIN 5
#define RT_MAIN 6
#define RH_RULES 7
#define RH_CONTROLS 8
#define RH_ABOUT 9
32 changes: 32 additions & 0 deletions src/games.pr
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#noedit
#abort on
#system epoc img
#set epocinit=iplib
#model small jpi

#declare_compiler rc=
'#split %%obj
#set obj = %%name.rsc
#set make=%%remake
#if %%make #then #run "RCOMP %%src" #endif'

#declare_compiler ms=
'#split %%obj
#set obj = %%name.shd
#set make=%%remake
#if %%make #then #run "MAKESHD %%src" #endif'

#pragma optimize(speed=>off)
#pragma debug(vid=>off)

#compile %prjname.rc
#compile %prjname.ms
#compile %prjname.c

#pragma link(hwif.lib)
#pragma link(utils\utils.lib)
#link %prjname

#file delete %prjname.exe
#file delete %prjname.app
#file move %prjname.img %prjname.app
52 changes: 52 additions & 0 deletions src/global.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/* global.h - some definitions required by both the .rs and the .c files
*/

/*
Pyramid, a Patience Game for the Psion Series 3
Version 1.0a
Copyright (C) 1993 J Cade Roux
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* See the file COPYING for the GNU General Public License.
* Mail: Cade Roux
* c/o Dubroca
* Box 513
* Boutte, LA 70039
* USA
*/

#ifndef BOOL
#define BOOL INT
#endif

#ifndef TRUE
#define TRUE 1
#endif

#ifndef FALSE
#define FALSE 0
#endif

#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif

#ifndef MAX
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif

#define VERSION_STRING "1.0a"

10 changes: 10 additions & 0 deletions src/mkgame.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@echo off
if "%1" == "" goto usage

tsc /m games /sprjname=%1
goto quit

:usage
echo "Usage MKGAME <GAMENAME>"

:quit
4 changes: 4 additions & 0 deletions src/pyramid.afl
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pyramid.pic
pyramid.rsc
pyramid.shd

Loading

0 comments on commit 58bfa35

Please sign in to comment.