HP 33s hp 33s_user's manual_English_E_HDPM20PIE56.pdf - Page 195

FLAGS Menu, Menu Key, Description, Annunciators for Set Flags, Using Flags

Page 195 highlights

Annunciators for Set Flags Flags 0, 1, 2, 3 and 4 have annunciators in the display that turn on when the corresponding flag is set. The presence or absence of 0, 1, 2, 3 or 4 lets you know at any time whether any of these five flags is set or not. However, there is no such indication for the status of flags 5 through 11. The statuses of these flags can be determined by executing the FS? instruction from the keyboard. (See "Using Flags" below.) Using Flags Pressing | y displays the FLAGS menu After selecting the function you want, you will be prompted for the flag number (0-11). For example, press | y { } 0 to set flag 0; press | y { }  0 to set flag 10; press | y { }  1 to set flag 11. FLAGS Menu Menu Key { } n {} n { @} n Description Set flag. Sets flag n. Clear flag. Clears flag n. Is flag set? Tests the status of flag n. A flag test is a conditional test that affects program execution just as the comparison tests do. The FS? n instruction tests whether the given flag is set. If it is, then the next line in the program is executed. If it is not, then the next line is skipped. This is the "Do if True" rule, illustrated under "Conditional Instructions" earlier in this chapter. If you test a flag from the keyboard, the calculator will display "& " or "". It is good practice in a program to make sure that any conditions you will be testing start out in a known state. Current flag settings depend on how they have been left by earlier programs that have been run. You should not assume that any given flag is clear, for instance, and that it will be set only if something in the program sets it. You should make sure of this by clearing the flag before the condition arises that might set it. See the example below. Programming Techniques 13-11

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387

Programming Techniques
13–11
Annunciators for Set Flags
Flags 0, 1, 2, 3 and 4 have annunciators in the display that turn on when the
corresponding flag is set. The presence or absence of
0
,
1
,
2
,
3
or
4
lets you
know at any time whether any of these five flags is set or not. However, there is no
such indication for the status of flags 5 through 11. The statuses of these flags can
be determined by executing the FS
?
instruction from the keyboard. (See "Using
Flags" below.)
Using Flags
Pressing
displays the FLAGS menu: {
} {
} {
}
After selecting the function you want, you will be prompted for the flag number
(0–11). For example, press
{
} 0 to set flag 0; press
{
}
0 to set flag 10; press
{
}
1 to set flag 11.
FLAGS Menu
Menu Key
Description
{
}
n
Set flag
. Sets flag
n
.
{
}
n
Clear flag
. Clears flag
n
.
{
}
n
Is flag set
?
Tests the status of flag
n
.
A flag test is a conditional test that affects program execution just as the
comparison tests do. The FS
?
n
instruction tests whether the given flag is set. If it is,
then the next line in the program is executed. If it is not, then the next line is
skipped. This is the "Do if True" rule, illustrated under "Conditional Instructions"
earlier in this chapter.
If you test a flag from the keyboard, the calculator will display "
" or "
".
It is good practice in a program to make sure that any conditions you will be
testing start out in a known state. Current flag settings depend on how they have
been left by earlier programs that have been run. You should not
assume
that any
given flag is clear, for instance, and that it will be set only if something in the
program sets it. You should make
sure
of this by clearing the flag before the
condition arises that might set it. See the example below.