The Museum of HP Calculators


Wari for the HP-41C/CV/CX

This program is Copyright © HP and is used here by permission. It was originally printed in the Games Solution Book. This program was entered and uploaded by Tony Duell. The documentation was entered by Dave Hicks. The Barcode for this program was provided by Brian Ward.

This program is supplied without representation or warranty of any kind. Tony Duell, Hewlett Packard and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.

Overview

Wari* is a board game which has been played for at least several centuries in various forms throughout Africa. The game is played on a board containing (generally) twelve small pits or bins, and two large pits. Forty-eight beads, seeds, or other counters are moved and captured according to certain rules.

The Wari board shown here is set up to begin a game.

Each player in turn removes all the counters from one bin on his side and distributes them one-at-a-time into successive bins moving counterclockwise, skipping the two bins which are for storing captured counters. If the last counter drops into an opponent's hole containing one or two counters, the contents of that hole are captured and placed in the player's scoring pit. Counters in an unbroken sequence of two- and three-counter bins on the opponent's side clockwise from the captured bin are also captured. If a bin contains twelve counters or more, that bin is skipped when the counters from that bin are distributed.

The above rules are implemented in the calculator program. Special rules, such as prohibiting moves which remove all of the opponent's counters, were deemed to be variations of the basic game and were not programmed. It is possible to come to a situation where a few counters will circulate forever. In this case each player claims the counters on his side.

To make a play on the calculator Wari board, the player specifies the bin he wants to move by keying in a number from 1 to 6 and then pushing either [A] or [B] (for player A or B). The machine then moves the counters from the specified bin according to the rules. To play against the calculator, signal to the calculator to move by pressing [C]. The calculator will then move player B's counters.

When one of the sites of the board is displayed, as designated by leading A or B, it is as if you moved around to that side of the board. In other words, bin 1 for either players side is always to the left and counterclockwise always to the right. If you are looking at side A, [R/S] will get you side B. If you are looking at side B, [R/S] will get you the score. If you are looking at the score, [R/S] will get you side A.

*Also known as Man-Kalah, Awari, and many other names.

Note: Requires 1 Memory Module on HP-41C

Instructions

Step

Instructions

Input Data/Units

Keys

Output Data/Units

1

Enter program

     

2

Initialize

 

[XEQ] WARI 

SEED? 

3

Key in number between 0 and 1

seed 

[R/S]

A 4,4,4,4,4,4

 4

To see the other side of the board and/or the score, press [R/S]. This can be done as often as desired.

 

[R/S]

A (board) or B (board) or A= or B=

Players A, B or the 41C moving B's counters can move in any order with anyone starting the game.

 

 

 

      Player A

bin #

[A]

A (board)

      Player A

bin #

[B]

A (board)

      HP-41C (moving for B)  

[C]

A (board)

6

Go to step 4 or 5 as desired.  

 

 

7

To start a new game press [E] and go to step 4 or 5 as desired.

 

[E]

A 4,4,4,4,4,4

Example

   Keystrokes:          Display:
[XEQ] [ALPHA] 
SIZE [ALPHA] 018
[XEQ] [ALPHA] 
WARI [ALPHA]            SEED?
.9977663333 [R/S]       A 4,4,4,4,4,4
[R/S]                   B 4,4,4,4,4,4
[R/S]                   A=0, B=0
[C]                     A 5,5,4,4,4,4
[R/S]                   B 4,4,4,0,5,5
6 [A]                   A 5,5,4,4,4,0
[R/S]                   B 5,5,5,1,5,5
[C]                     A 6,6,4,4,4,0
[R/S]                   B 5,5,0,2,6,6
2 [A]                   A 6,0,5,5,5,1
[R/S]                   B 6,6,0,2,6,6
[C]                     A 7,1,6,6,6,0
[R/S]                   B 6,6,0,2,6,0
[R/S]                   A=0, B=2
.                          .
.                          .
.                          .


How to get this Program to your Calculator (via HP-IL, disk, wand, and fingers)
Download Binary (.raw) program for disk or PC HP-IL Card download
Download Hexadecimal (.dat) program for Serial Port download
Display the Program Barcode (.pdf) for printing and scanning

Program Listing

LINE  KEYS
 01 LBL "WARI"
 02 SF 27
 03 CF 29
 04 FIX 00
 05 "SEED?"
 06 PROMPT
 07 STO 00
 08 LBL E
 09 1.012
 10 CLRG
 11 4
 12 LBL 06
 13 STO IND Y
 14 ISG Y
 15 GTO 06
 16 GTO 50
 17 LBL C
 18 CF 05
 19 0
 20 STO 17
 21 STO 15
 22 2
 23 XEQ 51
 24 CF 06
 25 X=0?
 26 SF 06
 27 CF 07
 28 7.012
 29 STO 16
 30 LBL 05
 31 RCL 16
 32 INT
 33 RCL IND 16
 34 X=0?
 35 GTO 00
 36 RCL X
 37 12
 38 /
 39 INT
 40 STO T
 41 +
 42 +
 43 12
 44 MOD
 45 X=0?
 46 X<> L
 47 7
 48 X<=Y?
 49 GTO 00
 50 X<>Y
 51 R^
 52 CHS
 53 RCL IND Y
 54 X<=Y?
 55 GTO 00
 56 X<>Y
 57 3
 58 +
 59 X<=Y?
 60 GTO 00
 61 SF 07
 62 RCL Z
 63 RCL 17
 64 X>Y?
 65 GTO 00
 66 X#Y?
 67 GTO 01
 68 FS? 06
 69 GTO 00
 70 LBL 01
 71 RDN
 72 STO 17
 73 RCL 16
 74 STO 15
 75 LBL 00
 76 ISG 16
 77 GTO 05
 78 FC?C 07
 79 GTO 00
 80 RCL 15
 81 INT
 82 GTO A
 83 LBL 00
 84 6
 85 STO 16
 86 0
 87 STO 15
 88 LBL 04
 89 RCL 16
 90 RCL IND 16
 91 X=0?
 92 GTO 00
 93 RCL X
 94 12
 95 /
 96 INT
 97 X>0?
 98 GTO 00
 99 RDN
100 +
101 12
102 MOD
103 X=0?
104 LASTX
105 7
106 X>Y?
107 GTO 00
108 RCL IND Y
109 X=0?
110 GTO 00
111 3
112 X<=Y?
113 GTO 00
114 SF 07
115 R^
116 RCL 15
117 X<=Y?
118 X<>Y
119 STO 15
120 LBL 00
121 DSE 16
122 GTO 04
123 FC?C 07
124 GTO 00
125 RCL 15
126 GTO A
127 LBL 00
128 6
129 XEQ 51
130 1
131 +
132 STO 15
133 STO 16
134 LBL 03
135 6
136 +
137 RCL IND X
138 X#0?
139 GTO 00
140 RCL 15
141 1
142 -
143 6
144 MOD
145 X=0?
146 LASTX
147 RCL 16
148 X=Y?
149 GTO 01
150 RDN
151 STO 15
152 GTO 03
153 LBL 01
154 SF 05
155 "NO MOVE"
156 AVIEW
157 STOP
158 GTO 50
159 LBL 00
160 RCL 15
161 LBL B
162 6
163 +
164 CF 05
165 LBL A
166 STO 15
167 STO 17
168 RCL IND 15
169 X=0?
170 GTO 50
171 STO 16
172 ST- IND 15
173 LBL 08
174 RCL 17
175 1
176 +
177 12
178 MOD
179 X=0?
180 LASTX
181 STO 17
182 RCL 15
183 X=Y?
184 GTO 08
185 1
186 ST+ IND 17
187 DSE 16
188 GTO 08
189 LBL 07
190 RCL 17
191 7
192 FS? 05
193 GTO 01
194 X<=Y?
195 GTO 50
196 GTO 00
197 LBL 01
198 X>Y?
199 GTO 50
200 LBL 00
201 RCL IND 17
202 2
203 X>Y?
204 GTO 50
205 RDN
206 4
207 X<=Y?
208 GTO 50
209 RDN
210 FS? 05
211 ST+ 13
212 FC? 05
213 ST+ 14
214 ST- IND 17
215 RCL 17
216 1
217 -
218 12
219 MOD
220 X=0?
221 LASTX
222 STO 17
223 GTO 07
224 LBL 50
225 SF 05
226 "A "
227 1.006
228 XEQ 00
229 PROMPT
230 "B "
231 7.012
232 XEQ 00
233 PROMPT
234 "A="
235 ARCL 13
236 "|-,   B="
237 ARCL 14
238 PROMPT
239 GTO 50
240 LBL 09
241 "|-,"
242 LBL 00
243 ARCL IND X
244 ISG X
245 GTO 09
246 RTN
247 LBL 51
248 RCL 00
249 9821
250 *
251 .211327
252 +
253 FRC
254 STO 00
255 *
256 INT
257 RTN
258 END

Go back to the HP-41 software library
Go back to the general software library
Go back to the main exhibit hall