This program is Copyright © 2007 by Jean-Marc Baillard and is used here by permission.
This program is supplied without representation or warranty of any kind. Jean-Marc Baillard 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.
-This program allows you to play Blackjack against your HP-41
-The calculator is always the bank.
-Place your bet in X-register and XEQ "BLJ"
-The HP-41 deals 2 cards for you and 1 for itself.
-If you have 21 points with these 2 cards, you win 1.5 times
your bet ( unless the HP-41 has also 21 points in 2 cards ), otherwise:
-Press the SIGMA+ key to double your bet ( line 74 ): in
this case, you receive one card only.
-Press ENTER^ to hit ( line 65 ): you can receive
as many cards as you want ( provided your points do not exceed 21 - otherwise,
you lose )
-Press any other key to stand.
-If you have no Blackjack and if your total does not exceed 21,
the HP-41 deals cards for itself until its total exceeds 16
-Then, the 2 hands are compared and your new cash is displayed.
-Place another bet and R/S to continue the game
or simply press R/S without any digit entry to place the same
bet.
-Ace = 1 or 11 points
-2 = 2 , 3 = 3 , ....... , 9 = 9 points
-T = J = Q = K = 10 points
-So the possible Blackjacks are AT AJ AQ AK
Notes:
-"Split" and "Insurance" are not covered by this program.
-A deck of an infinite number of one-suit cards is used.
( In other words, the probability of each card = 1/13 )
-The GETKEY function of the X-functions module is used.
Program Listing
Data Registers:
• R00 = random numbers
( Registers R00 & R01 are to be initialized before executing
"BLJ" )
• R01 = your cash
R02 thru R09: temp
Flags: F22 F29
Subroutines: /
01 LBL "BLJ"
02 FS?C 22
03 STO 09
04 21
05 STO 02
06 STO 03
07 CLA
08 ASTO 04
09 ASTO 05
10 2
11 STO 06
12 CLX
13 STO 07
14 STO 08
15 FIX 0
16 CF 29
17 XEQ 05
18 XEQ 06
19 XEQ 05
20 RCL 07
21 *
22 X#Y?
23 GTO 02
24 CHS
25 STO 02
26 1.5
27 STO 06
28 GTO 04
29 LBL 01
30 RCL 00
31 R-D
32 FRC
33 STO 00
34 9
35 +
36 10^X
37 13
38 MOD
39 X=0?
40 LASTX
41 CLA
42 ARCL X
43 LASTX
44 X=Y?
45 "K"
46 DSE X
47 X=Y?
48 "Q"
49 DSE X
50 X=Y?
51 "J"
52 DSE X
53 X=Y?
54 "T"
55 X<Y?
56 X<>Y
57 SIGN
58 X=Y?
59 "A"
60 X<>Y
61 ASTO Z
62 CLA
63 RTN
64 LBL 02
65 41
66 GETKEY
67 X#Y?
68 GTO 03
69 XEQ 05
70 CLX
71 X<Y?
72 GTO 02
73 LBL 03
74 11
75 X#Y?
76 DSE 06
77 X=Y?
78 XEQ 05
79 RCL 02
80 10
81 RCL 07
82 *
83 X>Y?
84 CLX
85 -
86 X<0?
87 21
88 STO 02
89 LBL 04
90 XEQ 06
91 RCL 08
92 *
93 X#Y?
94 GTO 09
95 CHS
96 STO 03
97 GTO 10
98 LBL 05
99 XEQ 01
100 ST- 02
101 X=Y?
102 STO 07
103 ARCL 04
104 ARCL Z
105 ASTO 04
106 RCL 02
107 GTO 07
108 LBL 06
109 XEQ 01
110 ST- 03
111 X=Y?
112 STO 08
113 ARCL 05
114 ARCL Z
115 ASTO 05
116 RCL 03
117 LBL 07
118 " "
one space
119 ARCL 04
120 "~/"
append /
121 ARCL 05
122 AVIEW
123 10
124 RTN
125 LBL 08
126 XEQ 06
127 LBL 09
128 RCL 08
129 *
130 X>Y?
131 CLX
132 -
133 21
134 RCL 02
135 X#Y?
136 X<0?
137 GTO 10
138 4
139 R^
140 X>Y?
141 GTO 08
142 X<0?
143 R^
144 STO 03
145 LBL 10
146 RCL 03
147 RCL 02
148 -
149 X#0?
150 SIGN
151 RCL 06
152 *
153 RCL 09
154 *
155 ST+ 01
156 RCL 01
157 " "
2 spaces
158 X>0?
159 "~+"
append +
160 ARCL 01
161 "~ $"
append space $
162 FIX 4
163 SF 29
164 AVIEW
165 END
( 251 bytes / SIZE 010 )
Example: 7 STO 00 CLX STO 01
-Place you bet, for instance 12000$ , in X-register
12000 XEQ "BLJ"
" 6/"
" 6/5"
" 62/5"
-Press ENTER^ to hit
" 62A/5"
-You have 19 points,
so you stand: press any key
except ENTER^ and SIGMA+
" 62A/5K"
the HP-41 continues until its points exceed 16
" 62A/5KK" Busted!
HP-41 exceeds 21: you win
" +12000 $"
-----------------------------------------------------------------------------------------------------
-Simply press R/S for the same bet "
5/"
" 5/3"
" 56/3"
-Press the SIGMA+ key
to double your bet
" 56A/3"
" 56A/3J"
" 56A/3JA"
" 56A/3JA9"
Busted again: you win 24000 $ and your cash is:
" +36000 $"
Remarks:
-Do not store PI in register R00, the "random" numbers wouldn't be randomized at all...
-The display is very minimalist!
-You could for example:
add " TIE-PUSH"
X=Y? AVIEW after line 147
add " BLACKJACK"
AVIEW after line 96 and after line 27
-One register only is used to store each hand so the HP-41 will not
display all the cards if you ( or the HP-41 ) have more than 6 cards.
-To overcome this limitation:
add ARCL 11 after line 121
add ARCL 10 after line 119
replace line 113 to 115 by
ARCL 05 ARCL 11 ARCL Z ASTO 05 ASHF ASTO
11
----------- 103 to 105 by
ARCL 04 ARCL 10 ARCL Z ASTO 04 ASHF ASTO
10
add ASTO 10 ASTO 11
after line 09
Go back to the HP-41 software library
Go back to the general software library
Go
back to the main exhibit hall