The programs generate consecutively concentric magic squares. There is one program, ODD, for odd order squares, (n = 1, 3, 5, 7, ... ), and one program, EVEN, for even order squares, (n = 4, 6, 8, ... ).
The programs are designed to compute one cell number at a time, given the row and column. A (row, column) is entered to calculate any cell number or, optionally, the square can be stepped through, computing one cell at a time, by repeatedly pressing the R/S button.
Warning: The validity of user input, (n, row, column), is not checked by the programs.
HP41C requires 1 memory module for program EVEN.
ODD EVEN ----------------------- ------------------------- DATA REGISTERS FLAGS DATA REGISTERS FLAGS ------------------- ----------- ------------------- ------------ 00 n 00 used 00 n 00 used 01 (n+1)/2 01 user 01 (n+1)/2 01 user 02 (n²+1)/2 02 user 02 (n²+1)/2 02 user 03 rrel or crel 03 rrel or crel 03 used 04 crel or rrel 04 *(see below) 04 used 05 row 05 row 06 column 29 cleared 06 column 29 cleared 07 n+1 * EVEN dreg 04: crel+rrel, crel-2rel, ±rrel, ±crel, 2crel, 2rrel, or 0 For ODD: rrel = row - (n+1)/2, crel = column - (n+1)/2. For EVEN: rrel = |row - (n+1)/2|, crel = |column - (n+1)/2|.
Note: Flags 01 and 02 can also be keyed as [∑+] and [1/x], for example, [CF][∑+] is equivalent to [CF][0][1].
INPUT OUTPUT --------------------------- ------------------ [CF][0][1] [CF][0][2] [XEQ][ALPHA]EVEN[ALPHA] N=? 4 [R/S] ROW=? 1 [R/S] COLUMN=? 1 [R/S] 1,1=15 [R/S] 1,2=4 [R/S] 1,3=1 [R/S] 1,4=14 [R/S] 2,1=6 [R/S] 2,2=9 [R/S] 2,3=12 [R/S] 2,4=7 [R/S] 3,1=10 [R/S] 3,2=5 [R/S] 3,3=8 [R/S] 3,4=11 [R/S] 4,1=3 [R/S] 4,2=16 [R/S] 4,3=13 [R/S] 4,4=2 [R/S] SQUARE END [R/S] N=?
INPUT OUTPUT --------------------------- ------------------ [SF][0][1] [SF][0][2] [XEQ][ALPHA]ODD[ALPHA] N=? 5 [R/S] ROW=? 1 [R/S] COLUMN=? 1 [R/S] 1,1=9 [R/S] ROW=? 1 [R/S] COLUMN=? 5 [R/S] 1,5=7 [R/S] ROW=? 5 [R/S] COLUMN=? 5 [R/S] 5,5=-9 [R/S] ROW=? 5 [R/S] COLUMN=? 1 [R/S] 5,1=-7 [R/S] ROW=? 3 [R/S] COLUMN=? 3 [R/S] 3,3=0 ...
STEP KEY ENTRY COMMENTS STEP KEY ENTRY COMMENTS ---- ---------- -------------- ---- ---------- -------------- 01 LBL "ODD" 71 LBL F ENE to ESE,WNW to WSW 02 "N=?" 72 RCL 04 03 PROMPT 73 X<> 03 04 FIX 0 74 STO 04 05 CF 29 75 X>0? 06 STO 00 n 76 GTO c ESE,WSW 07 STO 01 77 0 08 X² 78 GTO d ENE,WNW,W,E 09 STO 02 79 LBL a NNW,SSW,NE,SW 10 1 80 -1 11 ST+ 01 81 GTO d 12 ST+ 02 82 LBL b NNE,SSE,NW,SE 13 2 83 1 14 ST/ 01 (n+1)/2 84 GTO d 15 ST/ 02 (n²+1)/2 85 LBL c ESE,WSW,N,S 16 LBL 00 input row,col 86 2 17 "ROW=?" 87 FS?C 00 18 PROMPT 88 GTO d 19 "COLUMN=?" 89 SF 00 20 PROMPT 90 LBL d 2x² + 2y + c 21 LBL 01 calculate 91 RCL 03 22 CF 00 92 X² 23 STO 06 col 93 RCL 04 24 RCL 01 94 + 25 - 95 ENTER↑ 26 STO 04 crel 96 + 27 X<>Y 97 + 28 STO 05 row 98 FS? 00 29 RCL 01 99 CHS 30 - 100 FS? 02 31 STO 03 rrel 101 GTO 02 display bones 32 X=Y? 102 RCL 02 33 GTO A NW-SE 103 + add (n²+1)/2 34 X>Y? 104 LBL 02 35 SF 00 below NW-SE 105 CLA 36 X<>Y 106 ARCL 05 37 X=0? 107 "," 38 GTO c N-S 108 ARCL 06 39 X>0? 109 "
=" 40 GTO B E side 110 ARCL X 41 FS? 00 111 AVIEW row,col=number 42 GTO C WNW to SSW 112 RTN 43 GTO a NNW 113 FS? 01 44 LBL A NW-SE 114 GTO 00 input row,col 45 0 115 RCL 00 46 X<> 04 116 RCL 06 47 X=0? 117 1 48 GTO d center 118 + 49 X>0? 119 X>Y? 50 SF 00 SE 120 GTO 03 51 GTO b NW,SE 121 RCL 05 52 LBL B E side 122 X<>Y 53 FS?C 00 123 GTO 01 calc row,col+1 54 GTO b SSE 124 LBL 03 55 LBL C not NNW or SSE 125 RCL 00 56 + 126 RCL 05 57 X=0? 127 1 58 GTO D NE,SW 128 + 59 X>0? 129 X>Y? 60 GTO E below NE-SW 130 GTO 04 61 FS? 00 131 1 62 GTO F WNW to WSW 132 GTO 01 calc row+1,1 63 SF 00 133 LBL 04 64 GTO b NNE 134 "SQUARE END" 65 LBL D NE,SW 135 AVIEW 66 STO 04 136 END 67 GTO a NE,SW 68 LBL E below NE-SW 69 FS? 00 70 GTO a SSW
STEP KEY ENTRY COMMENTS STEP KEY ENTRY COMMENTS ---- ---------- -------------- ---- ---------- -------------- 01 LBL "EVEN" 151 STO 04 02 "N=?" 152 GTO 09 NE-SW 03 PROMPT 153 LBL 07 below NE-SW 04 FIX 0 154 FS? 00 05 FS? 02 155 GTO B SSW 06 FIX 1 156 LBL 08 WNW,ENE,WSW,ESE 07 CF 29 157 RCL 03 08 STO 00 n 158 X<> 04 09 STO 01 159 STO 03 10 STO 07 160 RCL 05 11 X² 161 RCL 01 12 STO 02 162 X≤Y? 13 1 163 GTO F WSW,ESE 14 ST+ 01 164 RCL 03 15 ST+ 02 165 1.5 16 ST+ 07 n+1 166 X≠Y? 17 2 167 GTO 02 not 4 border 18 ST/ 01 (n+1)/2 168 -1.5 19 ST/ 02 (n²+1)/2 169 FS? 00 20 LBL 00 input row,col 170 -2.5 21 "ROW=?" 171 GTO 03 4 border 22 PROMPT 172 LBL 02 WNW,ENE: not 4 23 "COLUMN=?" 173 RCL 04 24 PROMPT 174 .5 25 LBL 01 175 X=Y? 26 CF 00 176 GTO b W-N,E-N 27 CF 03 177 2.5 28 CF 04 178 RCL 04 29 STO 06 179 X=Y? 30 RCL 01 180 GTO e 31 - 181 3.5 32 ABS 182 X=Y? 33 STO 04 crel 183 GTO e 34 RDN 184 RCL 04 35 STO 05 185 XEQ H cond. SF 03 36 RCL 01 186 GTO 10 rest of WNW,ENE 37 - 187 LBL b W-N,E-N 38 ABS 188 RCL 03 39 STO 03 rrel 189 XEQ H cond. SF 03 40 RCL 05 190 RCL 03 41 RCL 06 191 CHS 42 X=Y? 192 STO 04 -crel 43 GTO A NW-SE 193 GTO 10 W-N,E-N 44 X≤Y? 194 LBL F WSW,ESE 45 SF 00 below NW-SE 195 RCL 03 46 RCL 01 196 1.5 47 X≤Y? 197 X≠Y? 48 GTO 04 E side 198 GTO 02 not 4 border 49 FS? 00 199 2.5 50 GTO 05 not NNW 200 FS? 00 51 LBL B NNW,SSW 201 1.5 52 RCL 03 202 GTO 03 4 border 53 1.5 203 LBL 02 WSW,ESE: not 4 54 X≠Y? 204 RCL 04 55 GTO 02 205 .5 56 -4.5 206 X=Y? 57 FS? 00 207 GTO c W-S,E-S 58 7.5 208 RCL 04 59 GTO 03 4 border 209 1.5 60 LBL 02 NNW,SSW: not 4 210 X=Y? 61 RCL 04 211 SF 03 62 XEQ H cond. SF 03 212 SF 04 63 RCL 03 213 XEQ e 64 ENTER↑ 214 -1 65 + 215 ST* 04 66 RCL 04 216 GTO 10 WSW,ESE: not 4 67 - 217 LBL c W-S,E-S 68 STO 04 2rrel-crel 218 RCL 03 69 GTO 10 NNW,SSW: not 4 219 XEQ E 70 LBL H | cond. SF 03 220 X=0? 71 XEQ E | 221 GTO d even W-S,E-S 72 X=0? | 222 RCL 03 73 SF 03 | 223 STO 04 crel 74 RTN | 224 3.5 75 LBL E | (INT)x MOD 2 225 X=Y? 76 INT | 226 SF 03 77 2 | 227 GTO 10 odd W-S,E-S 78 MOD | 228 LBL d 79 RTN | 229 RCL 03 80 LBL A NW-SE 230 ENTER↑ 81 RCL 01 231 + 82 X<>Y 232 CHS 83 X>Y? 233 STO 04 -2crel or -2rrel 84 SF 03 SE 234 LBL 09 85 RCL 03 235 0 86 1.5 236 GTO 14 87 X=Y? 237 LBL e 88 SF 04 238 RCL 03 89 0 239 RCL 04 90 FS? 04 240 + 91 -2 241 FS? 04 92 STO 04 242 XEQ H cond. SF 03 93 GTO 09 NW-SE 243 FS? 04 94 LBL 04 E side 244 RTN 95 FS? 00 245 XEQ E 96 GTO C SSE 246 X≠0 97 LBL 05 not(NNW,SSE,NW-SE) 247 SF 03 98 RCL 05 248 LBL 10 99 RCL 06 249 .5 100 + 250 LBL 14 2x² - y + c 101 RCL 07 251 RCL 03 102 X=Y? 252 X² 103 GTO D NE-SW 253 ENTER↑ 104 X≤Y? 254 + 105 GTO 07 below NE-SW 255 RCL 04 106 FS? 00 256 - 107 GTO 08 WNW,WSW 257 + 108 LBL C NNE,SSE 258 FS? 03 109 FC? 00 259 CHS 110 GTO 02 260 FS? 00 111 RCL 03 261 CHS 112 1.5 262 LBL 03 4x4 border 113 X≠Y? 263 FS? 02 114 GTO 02 264 GTO 15 bones 115 4.5 265 RCL 02 116 GTO 03 4 border 266 + add (n²+1)/2 117 LBL 02 other NNE,SSE 267 LBL 15 118 RCL 04 268 CLA 119 .5 269 ARCL 05 120 X=Y? 270 "," 121 GTO a N-E,S-E 271 ARCL 06 122 RCL 04 272 "
=" 123 XEQ E 273 ARCL X 124 X≠0 274 AVIEW row,col=number 125 SF 03 275 RTN 126 RCL 03 276 FS? 01 127 RCL 04 277 GTO 00 input row,col 128 + 278 RCL 00 129 CHS 279 RCL 06 130 STO 04 -(rrel+crel) 280 1 131 GTO 09 not (N-E,S-E) 281 + 132 LBL a N-E,S-E 282 X>Y? 133 SF 03 283 GTO 16 134 RCL 03 284 RCL 05 135 XEQ E 285 X<>Y 136 X≠0 286 GTO 01 calc row,col+1 137 GTO d rrel even 287 LBL 16 138 RCL 03 288 RCL 00 139 RCL 04 289 RCL 05 140 - 290 1 141 STO 04 rrel-crel 291 + 142 GTO 09 rrel odd 292 X>Y? 143 LBL D NE-SW 293 GTO 17 144 RCL 03 294 1 145 .5 295 GTO 01 calc row+1,1 146 X=Y? 296 LBL 17 147 SF 04 297 "SQUARE END" 148 -1 298 AVIEW 149 FS? 04 299 END 150 -3