HP 40gs HP 39gs_40gs_Mastering The Graphing Calculator_English_E_F2224-90010.p - Page 279

Dispxy, Plot Setup, Getkey, Prompt

Page 279 highlights

The DISPXY command is a hugely useful command to programmers. It appears in the Prompt section of the MATH menu. It allows you to place a string of text at any position on the screen using two different fonts and has the syntax: DISPXY ;;;: For example, suppose M=2 & C=3. Then the command will display the text "y=2x+3" using font number 1 (small) at the top (Ymax), left (Xmin) of the screen. Positions are given in terms of the current screen coordinates as defined in the PLOT SETUP view. The next line places a label on the y axis (offset slightly) to mark the y-intercept. A check is then done to see if an x-intercept exists and, if it does, a label is placed to mark it. Any labels off the edge of the screen will be ignored by the calculator so you don't need to check for that in the program. This is a very nice feature of the HP. Many calculators have problems with objects plotted off the screen, particularly if they start on the screen and end off the edge. The HP does not and this simplifies your programming task considerably at times. Finally the line itself is drawn. Even though part of the line extends off the screen there is no problem - the excess is clipped by the calculator. The next section of code below waits until the user presses a key (GETKEY) and stores the key's code into the variable K. A CASE statement is then used to check for the use of the arrow keys. Notice the lack of colons (:) after each END in the CASE statement. Normally every command ends in a colon but the code within a CASE statement is one of the few times where this is not true. If the left or right arrows have been pressed (keys 34.1 or 36.1) then the line is 'twisted' by changing the value of M. If the up or down arrows have been pressed (keys 25.1 or 35.1) then the line is raised or lowered by changing the value of C. See the manual for more information on the GETKEY and CASE commands and on the meanings of the key values. 279

  • 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

The
DISPXY
command is a hugely useful command to programmers.
It appears in the
Prompt
section of the
MATH
menu.
It allows you to place a string of text at any position on the screen using two different fonts and
has the syntax:
DISPXY <x-position>;<y-position>;<font#>;<object>:
For example, suppose
M=2
&
C=3
. Then the command
will display the text “y=2x+3” using font number 1 (small) at the top (Ymax), left (Xmin) of the screen.
Positions are given in terms of the current screen coordinates as defined in the
PLOT SETUP
view.
The next line places a label on the y axis (offset slightly) to mark the y-intercept.
A check is then done to see if
an x-intercept exists and, if it does, a label is placed to mark it.
Any labels off the edge of the screen will be
ignored by the calculator so you don’t need to check for that in the program.
This is a very nice feature of the
HP. Many calculators have problems with objects plotted off the screen, particularly if they start on the screen
and end off the edge. The HP does not and this simplifies your programming task considerably at times.
Finally the line itself is drawn.
Even though part of the line extends off the screen there is no problem - the
excess is clipped by the calculator.
The next section of code below waits until the user presses a key (
GETKEY
) and stores the key’s code into the
variable
K
.
A
CASE
statement is then used to check for the use of the arrow keys.
Notice the lack of colons (:) after each
END
in the
CASE
statement. Normally every command ends in a colon but the code within a
CASE
statement is one of the few times where this is not true.
If the left or right arrows have been pressed (keys 34.1 or 36.1) then the line is ‘twisted’ by changing the
value of
M
. If the up or down arrows have been pressed (keys 25.1 or 35.1) then the line is raised or
lowered by changing the value of
C
. See the manual for more information on the
GETKEY
and
CASE
commands and on the meanings of the key values.
279