annotate docs/lyx/dbg.lyx~ @ 42:792da050d8c4 tip

more dox
author james <jb302@eecs.qmul.ac.uk>
date Tue, 22 Apr 2014 14:25:14 +0100
parents a9bf262f557b
children
rev   line source
jb302@39 1 #LyX 2.0 created this file. For more info see http://www.lyx.org/
jb302@39 2 \lyxformat 413
jb302@39 3 \begin_document
jb302@39 4 \begin_header
jb302@39 5 \textclass article
jb302@39 6 \use_default_options true
jb302@39 7 \maintain_unincluded_children false
jb302@39 8 \language english
jb302@39 9 \language_package default
jb302@39 10 \inputencoding auto
jb302@39 11 \fontencoding global
jb302@39 12 \font_roman default
jb302@39 13 \font_sans default
jb302@39 14 \font_typewriter default
jb302@39 15 \font_default_family default
jb302@39 16 \use_non_tex_fonts false
jb302@39 17 \font_sc false
jb302@39 18 \font_osf false
jb302@39 19 \font_sf_scale 100
jb302@39 20 \font_tt_scale 100
jb302@39 21
jb302@39 22 \graphics default
jb302@39 23 \default_output_format default
jb302@39 24 \output_sync 0
jb302@39 25 \bibtex_command default
jb302@39 26 \index_command default
jb302@39 27 \paperfontsize default
jb302@39 28 \use_hyperref false
jb302@39 29 \papersize default
jb302@39 30 \use_geometry false
jb302@39 31 \use_amsmath 1
jb302@39 32 \use_esint 1
jb302@39 33 \use_mhchem 1
jb302@39 34 \use_mathdots 1
jb302@39 35 \cite_engine basic
jb302@39 36 \use_bibtopic false
jb302@39 37 \use_indices false
jb302@39 38 \paperorientation portrait
jb302@39 39 \suppress_date false
jb302@39 40 \use_refstyle 1
jb302@39 41 \index Index
jb302@39 42 \shortcut idx
jb302@39 43 \color #008000
jb302@39 44 \end_index
jb302@39 45 \secnumdepth 3
jb302@39 46 \tocdepth 3
jb302@39 47 \paragraph_separation indent
jb302@39 48 \paragraph_indentation default
jb302@39 49 \quotes_language english
jb302@39 50 \papercolumns 1
jb302@39 51 \papersides 1
jb302@39 52 \paperpagestyle default
jb302@39 53 \tracking_changes false
jb302@39 54 \output_changes false
jb302@39 55 \html_math_output 0
jb302@39 56 \html_css_as_file 0
jb302@39 57 \html_be_strict false
jb302@39 58 \end_header
jb302@39 59
jb302@39 60 \begin_body
jb302@39 61
jb302@39 62 \begin_layout Part
jb302@39 63 The Debugger
jb302@39 64 \end_layout
jb302@39 65
jb302@39 66 \begin_layout Section
jb302@39 67 Design
jb302@39 68 \end_layout
jb302@39 69
jb302@39 70 \begin_layout Standard
jb302@39 71 The debugger is designed to issue commands to and receive data from an instant
jb302@39 72 of the emulator running either as a process or on a micro-controller.
jb302@39 73 \end_layout
jb302@39 74
jb302@39 75 \begin_layout Standard
jb302@39 76 \begin_inset ERT
jb302@39 77 status open
jb302@39 78
jb302@39 79 \begin_layout Plain Layout
jb302@39 80
jb302@39 81
jb302@39 82 \backslash
jb302@39 83 bigskip
jb302@39 84 \end_layout
jb302@39 85
jb302@39 86 \end_inset
jb302@39 87
jb302@39 88
jb302@39 89 \end_layout
jb302@39 90
jb302@39 91 \begin_layout Standard
jb302@39 92 \begin_inset Graphics
jb302@39 93 filename /home/jmz/qm/ede/docs/img/dbg/debugger_overview.svg
jb302@39 94 display false
jb302@39 95
jb302@39 96 \end_inset
jb302@39 97
jb302@39 98
jb302@39 99 \end_layout
jb302@39 100
jb302@39 101 \begin_layout Standard
jb302@39 102 \begin_inset ERT
jb302@39 103 status open
jb302@39 104
jb302@39 105 \begin_layout Plain Layout
jb302@39 106
jb302@39 107
jb302@39 108 \backslash
jb302@39 109 bigskip
jb302@39 110 \end_layout
jb302@39 111
jb302@39 112 \end_inset
jb302@39 113
jb302@39 114
jb302@39 115 \end_layout
jb302@39 116
jb302@39 117 \begin_layout Standard
jb302@39 118 The debugger will implement the protocol described under the Emulator Design
jb302@39 119 section of this report.
jb302@39 120 \end_layout
jb302@39 121
jb302@39 122 \begin_layout Standard
jb302@39 123 \begin_inset Newpage pagebreak
jb302@39 124 \end_inset
jb302@39 125
jb302@39 126
jb302@39 127 \end_layout
jb302@39 128
jb302@39 129 \begin_layout Section
jb302@39 130 Implementation
jb302@39 131 \end_layout
jb302@39 132
jb302@39 133 \begin_layout Subsection
jb302@39 134 dbg.py
jb302@39 135 \end_layout
jb302@39 136
jb302@39 137 \begin_layout Standard
jb302@39 138 The debugger has been implemented as a Python class with the following functions
jb302@39 139 \end_layout
jb302@39 140
jb302@39 141 \begin_layout Standard
jb302@39 142 \begin_inset ERT
jb302@39 143 status open
jb302@39 144
jb302@39 145 \begin_layout Plain Layout
jb302@39 146
jb302@39 147
jb302@39 148 \backslash
jb302@39 149 bigskip
jb302@39 150 \end_layout
jb302@39 151
jb302@39 152 \end_inset
jb302@39 153
jb302@39 154
jb302@39 155 \end_layout
jb302@39 156
jb302@39 157 \begin_layout Standard
jb302@39 158 \begin_inset Tabular
jb302@39 159 <lyxtabular version="3" rows="17" columns="3">
jb302@39 160 <features tabularvalignment="middle">
jb302@39 161 <column alignment="center" valignment="top" width="0">
jb302@39 162 <column alignment="left" valignment="top" width="2cm">
jb302@39 163 <column alignment="center" valignment="top" width="7cm">
jb302@39 164 <row>
jb302@39 165 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@39 166 \begin_inset Text
jb302@39 167
jb302@39 168 \begin_layout Plain Layout
jb302@39 169 Function
jb302@39 170 \end_layout
jb302@39 171
jb302@39 172 \end_inset
jb302@39 173 </cell>
jb302@39 174 <cell multicolumn="1" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@39 175 \begin_inset Text
jb302@39 176
jb302@39 177 \begin_layout Plain Layout
jb302@39 178 Arguments
jb302@39 179 \end_layout
jb302@39 180
jb302@39 181 \end_inset
jb302@39 182 </cell>
jb302@39 183 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@39 184 \begin_inset Text
jb302@39 185
jb302@39 186 \begin_layout Plain Layout
jb302@39 187 Description
jb302@39 188 \end_layout
jb302@39 189
jb302@39 190 \end_inset
jb302@39 191 </cell>
jb302@39 192 </row>
jb302@39 193 <row>
jb302@39 194 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 195 \begin_inset Text
jb302@39 196
jb302@39 197 \begin_layout Plain Layout
jb302@39 198 snd
jb302@39 199 \end_layout
jb302@39 200
jb302@39 201 \end_inset
jb302@39 202 </cell>
jb302@39 203 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 204 \begin_inset Text
jb302@39 205
jb302@39 206 \begin_layout Plain Layout
jb302@39 207 byte
jb302@39 208 \end_layout
jb302@39 209
jb302@39 210 \end_inset
jb302@39 211 </cell>
jb302@39 212 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 213 \begin_inset Text
jb302@39 214
jb302@39 215 \begin_layout Plain Layout
jb302@39 216 send a byte to the emulator via a serial or file buffer
jb302@39 217 \end_layout
jb302@39 218
jb302@39 219 \end_inset
jb302@39 220 </cell>
jb302@39 221 </row>
jb302@39 222 <row>
jb302@39 223 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 224 \begin_inset Text
jb302@39 225
jb302@39 226 \begin_layout Plain Layout
jb302@39 227 rcv
jb302@39 228 \end_layout
jb302@39 229
jb302@39 230 \end_inset
jb302@39 231 </cell>
jb302@39 232 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 233 \begin_inset Text
jb302@39 234
jb302@39 235 \begin_layout Plain Layout
jb302@39 236 length
jb302@39 237 \end_layout
jb302@39 238
jb302@39 239 \end_inset
jb302@39 240 </cell>
jb302@39 241 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 242 \begin_inset Text
jb302@39 243
jb302@39 244 \begin_layout Plain Layout
jb302@39 245 receive length number of bytes from a serial or file buffer
jb302@39 246 \end_layout
jb302@39 247
jb302@39 248 \end_inset
jb302@39 249 </cell>
jb302@39 250 </row>
jb302@39 251 <row>
jb302@39 252 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 253 \begin_inset Text
jb302@39 254
jb302@39 255 \begin_layout Plain Layout
jb302@39 256 step
jb302@39 257 \end_layout
jb302@39 258
jb302@39 259 \end_inset
jb302@39 260 </cell>
jb302@39 261 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 262 \begin_inset Text
jb302@39 263
jb302@39 264 \begin_layout Plain Layout
jb302@39 265 -
jb302@39 266 \end_layout
jb302@39 267
jb302@39 268 \end_inset
jb302@39 269 </cell>
jb302@39 270 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 271 \begin_inset Text
jb302@39 272
jb302@39 273 \begin_layout Plain Layout
jb302@39 274 Execute instruction at PC
jb302@39 275 \end_layout
jb302@39 276
jb302@39 277 \end_inset
jb302@39 278 </cell>
jb302@39 279 </row>
jb302@39 280 <row>
jb302@39 281 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 282 \begin_inset Text
jb302@39 283
jb302@39 284 \begin_layout Plain Layout
jb302@39 285 run
jb302@39 286 \end_layout
jb302@39 287
jb302@39 288 \end_inset
jb302@39 289 </cell>
jb302@39 290 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 291 \begin_inset Text
jb302@39 292
jb302@39 293 \begin_layout Plain Layout
jb302@39 294 -
jb302@39 295 \end_layout
jb302@39 296
jb302@39 297 \end_inset
jb302@39 298 </cell>
jb302@39 299 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 300 \begin_inset Text
jb302@39 301
jb302@39 302 \begin_layout Plain Layout
jb302@39 303 Execute instructions from PC until a break point is reached
jb302@39 304 \end_layout
jb302@39 305
jb302@39 306 \end_inset
jb302@39 307 </cell>
jb302@39 308 </row>
jb302@39 309 <row>
jb302@39 310 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 311 \begin_inset Text
jb302@39 312
jb302@39 313 \begin_layout Plain Layout
jb302@39 314 set_reg
jb302@39 315 \end_layout
jb302@39 316
jb302@39 317 \end_inset
jb302@39 318 </cell>
jb302@39 319 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 320 \begin_inset Text
jb302@39 321
jb302@39 322 \begin_layout Plain Layout
jb302@39 323 register address, value
jb302@39 324 \end_layout
jb302@39 325
jb302@39 326 \end_inset
jb302@39 327 </cell>
jb302@39 328 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 329 \begin_inset Text
jb302@39 330
jb302@39 331 \begin_layout Plain Layout
jb302@39 332 Set a register (register address between 0 and 16 as described under Memory
jb302@39 333 Design in the Emulator Design section)
jb302@39 334 \end_layout
jb302@39 335
jb302@39 336 \end_inset
jb302@39 337 </cell>
jb302@39 338 </row>
jb302@39 339 <row>
jb302@39 340 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 341 \begin_inset Text
jb302@39 342
jb302@39 343 \begin_layout Plain Layout
jb302@39 344 get_reg
jb302@39 345 \end_layout
jb302@39 346
jb302@39 347 \end_inset
jb302@39 348 </cell>
jb302@39 349 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 350 \begin_inset Text
jb302@39 351
jb302@39 352 \begin_layout Plain Layout
jb302@39 353 register address
jb302@39 354 \end_layout
jb302@39 355
jb302@39 356 \end_inset
jb302@39 357 </cell>
jb302@39 358 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 359 \begin_inset Text
jb302@39 360
jb302@39 361 \begin_layout Plain Layout
jb302@39 362 Get the value of a register
jb302@39 363 \end_layout
jb302@39 364
jb302@39 365 \end_inset
jb302@39 366 </cell>
jb302@39 367 </row>
jb302@39 368 <row>
jb302@39 369 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 370 \begin_inset Text
jb302@39 371
jb302@39 372 \begin_layout Plain Layout
jb302@39 373 set_flag
jb302@39 374 \end_layout
jb302@39 375
jb302@39 376 \end_inset
jb302@39 377 </cell>
jb302@39 378 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 379 \begin_inset Text
jb302@39 380
jb302@39 381 \begin_layout Plain Layout
jb302@39 382 flag bit, 0 or 1
jb302@39 383 \end_layout
jb302@39 384
jb302@39 385 \end_inset
jb302@39 386 </cell>
jb302@39 387 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 388 \begin_inset Text
jb302@39 389
jb302@39 390 \begin_layout Plain Layout
jb302@39 391 Turn a flag bit on or off.
jb302@39 392 LSB = 0, MSB =7
jb302@39 393 \end_layout
jb302@39 394
jb302@39 395 \end_inset
jb302@39 396 </cell>
jb302@39 397 </row>
jb302@39 398 <row>
jb302@39 399 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 400 \begin_inset Text
jb302@39 401
jb302@39 402 \begin_layout Plain Layout
jb302@39 403 get_flag
jb302@39 404 \end_layout
jb302@39 405
jb302@39 406 \end_inset
jb302@39 407 </cell>
jb302@39 408 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 409 \begin_inset Text
jb302@39 410
jb302@39 411 \begin_layout Plain Layout
jb302@39 412 flag bit
jb302@39 413 \end_layout
jb302@39 414
jb302@39 415 \end_inset
jb302@39 416 </cell>
jb302@39 417 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 418 \begin_inset Text
jb302@39 419
jb302@39 420 \begin_layout Plain Layout
jb302@39 421 Get the value of a flag bit
jb302@39 422 \end_layout
jb302@39 423
jb302@39 424 \end_inset
jb302@39 425 </cell>
jb302@39 426 </row>
jb302@39 427 <row>
jb302@39 428 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 429 \begin_inset Text
jb302@39 430
jb302@39 431 \begin_layout Plain Layout
jb302@39 432 set_block
jb302@39 433 \end_layout
jb302@39 434
jb302@39 435 \end_inset
jb302@39 436 </cell>
jb302@39 437 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 438 \begin_inset Text
jb302@39 439
jb302@39 440 \begin_layout Plain Layout
jb302@39 441 address high, address low, length high, length low, [byte array]
jb302@39 442 \end_layout
jb302@39 443
jb302@39 444 \end_inset
jb302@39 445 </cell>
jb302@39 446 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 447 \begin_inset Text
jb302@39 448
jb302@39 449 \begin_layout Plain Layout
jb302@39 450 Set a block of memory of arbitrary length with the bytes in the byte array
jb302@39 451 \end_layout
jb302@39 452
jb302@39 453 \end_inset
jb302@39 454 </cell>
jb302@39 455 </row>
jb302@39 456 <row>
jb302@39 457 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 458 \begin_inset Text
jb302@39 459
jb302@39 460 \begin_layout Plain Layout
jb302@39 461 get_block
jb302@39 462 \end_layout
jb302@39 463
jb302@39 464 \end_inset
jb302@39 465 </cell>
jb302@39 466 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 467 \begin_inset Text
jb302@39 468
jb302@39 469 \begin_layout Plain Layout
jb302@39 470 address high, address low, length high, length low
jb302@39 471 \end_layout
jb302@39 472
jb302@39 473 \end_inset
jb302@39 474 </cell>
jb302@39 475 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 476 \begin_inset Text
jb302@39 477
jb302@39 478 \begin_layout Plain Layout
jb302@39 479 Read a block of memory of arbitrary length
jb302@39 480 \end_layout
jb302@39 481
jb302@39 482 \end_inset
jb302@39 483 </cell>
jb302@39 484 </row>
jb302@39 485 <row>
jb302@39 486 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 487 \begin_inset Text
jb302@39 488
jb302@39 489 \begin_layout Plain Layout
jb302@39 490 get_a
jb302@39 491 \end_layout
jb302@39 492
jb302@39 493 \end_inset
jb302@39 494 </cell>
jb302@39 495 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 496 \begin_inset Text
jb302@39 497
jb302@39 498 \begin_layout Plain Layout
jb302@39 499 -
jb302@39 500 \end_layout
jb302@39 501
jb302@39 502 \end_inset
jb302@39 503 </cell>
jb302@39 504 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 505 \begin_inset Text
jb302@39 506
jb302@39 507 \begin_layout Plain Layout
jb302@39 508 Get value of A
jb302@39 509 \end_layout
jb302@39 510
jb302@39 511 \end_inset
jb302@39 512 </cell>
jb302@39 513 </row>
jb302@39 514 <row>
jb302@39 515 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 516 \begin_inset Text
jb302@39 517
jb302@39 518 \begin_layout Plain Layout
jb302@39 519 get_flags
jb302@39 520 \end_layout
jb302@39 521
jb302@39 522 \end_inset
jb302@39 523 </cell>
jb302@39 524 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 525 \begin_inset Text
jb302@39 526
jb302@39 527 \begin_layout Plain Layout
jb302@39 528 -
jb302@39 529 \end_layout
jb302@39 530
jb302@39 531 \end_inset
jb302@39 532 </cell>
jb302@39 533 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 534 \begin_inset Text
jb302@39 535
jb302@39 536 \begin_layout Plain Layout
jb302@39 537 Get value of flags
jb302@39 538 \end_layout
jb302@39 539
jb302@39 540 \end_inset
jb302@39 541 </cell>
jb302@39 542 </row>
jb302@39 543 <row>
jb302@39 544 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 545 \begin_inset Text
jb302@39 546
jb302@39 547 \begin_layout Plain Layout
jb302@39 548 get_ir
jb302@39 549 \end_layout
jb302@39 550
jb302@39 551 \end_inset
jb302@39 552 </cell>
jb302@39 553 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 554 \begin_inset Text
jb302@39 555
jb302@39 556 \begin_layout Plain Layout
jb302@39 557 -
jb302@39 558 \end_layout
jb302@39 559
jb302@39 560 \end_inset
jb302@39 561 </cell>
jb302@39 562 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 563 \begin_inset Text
jb302@39 564
jb302@39 565 \begin_layout Plain Layout
jb302@39 566 Get Value of IR
jb302@39 567 \end_layout
jb302@39 568
jb302@39 569 \end_inset
jb302@39 570 </cell>
jb302@39 571 </row>
jb302@39 572 <row>
jb302@39 573 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 574 \begin_inset Text
jb302@39 575
jb302@39 576 \begin_layout Plain Layout
jb302@39 577 run_len
jb302@39 578 \end_layout
jb302@39 579
jb302@39 580 \end_inset
jb302@39 581 </cell>
jb302@39 582 <cell multirow="3" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 583 \begin_inset Text
jb302@39 584
jb302@39 585 \begin_layout Plain Layout
jb302@39 586 length high, length low
jb302@39 587 \end_layout
jb302@39 588
jb302@39 589 \end_inset
jb302@39 590 </cell>
jb302@39 591 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 592 \begin_inset Text
jb302@39 593
jb302@39 594 \begin_layout Plain Layout
jb302@39 595 Run for length number of instruction
jb302@39 596 \end_layout
jb302@39 597
jb302@39 598 \end_inset
jb302@39 599 </cell>
jb302@39 600 </row>
jb302@39 601 <row>
jb302@39 602 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 603 \begin_inset Text
jb302@39 604
jb302@39 605 \begin_layout Plain Layout
jb302@39 606 free_run
jb302@39 607 \end_layout
jb302@39 608
jb302@39 609 \end_inset
jb302@39 610 </cell>
jb302@39 611 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
jb302@39 612 \begin_inset Text
jb302@39 613
jb302@39 614 \begin_layout Plain Layout
jb302@39 615 -
jb302@39 616 \end_layout
jb302@39 617
jb302@39 618 \end_inset
jb302@39 619 </cell>
jb302@39 620 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@39 621 \begin_inset Text
jb302@39 622
jb302@39 623 \begin_layout Plain Layout
jb302@39 624 Run forever - Bypass controller
jb302@39 625 \end_layout
jb302@39 626
jb302@39 627 \end_inset
jb302@39 628 </cell>
jb302@39 629 </row>
jb302@39 630 <row>
jb302@39 631 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@39 632 \begin_inset Text
jb302@39 633
jb302@39 634 \begin_layout Plain Layout
jb302@39 635 set_bp
jb302@39 636 \end_layout
jb302@39 637
jb302@39 638 \end_inset
jb302@39 639 </cell>
jb302@39 640 <cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@39 641 \begin_inset Text
jb302@39 642
jb302@39 643 \begin_layout Plain Layout
jb302@39 644 break point index, address high, address low
jb302@39 645 \end_layout
jb302@39 646
jb302@39 647 \end_inset
jb302@39 648 </cell>
jb302@39 649 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@39 650 \begin_inset Text
jb302@39 651
jb302@39 652 \begin_layout Plain Layout
jb302@39 653 Set 1 of 8 possible break points
jb302@39 654 \end_layout
jb302@39 655
jb302@39 656 \end_inset
jb302@39 657 </cell>
jb302@39 658 </row>
jb302@39 659 </lyxtabular>
jb302@39 660
jb302@39 661 \end_inset
jb302@39 662
jb302@39 663
jb302@39 664 \end_layout
jb302@39 665
jb302@39 666 \begin_layout Standard
jb302@40 667 The class also has the attribute 'Emu' which can be set to point the debugger
jb302@40 668 at either an emulator process or a serial port.
jb302@39 669 \end_layout
jb302@39 670
jb302@39 671 \begin_layout Standard
jb302@39 672 \begin_inset Newpage pagebreak
jb302@39 673 \end_inset
jb302@39 674
jb302@39 675
jb302@39 676 \end_layout
jb302@39 677
jb302@39 678 \begin_layout Standard
jb302@39 679 The rcv function needs to check that the emulator's output buffer is the
jb302@39 680 correct length before returning the data to the user.
jb302@39 681 Below is a pseudo-code representation of how this is achieved.
jb302@39 682 \end_layout
jb302@39 683
jb302@39 684 \begin_layout Standard
jb302@39 685 \begin_inset listings
jb302@39 686 lstparams "basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4"
jb302@39 687 inline false
jb302@39 688 status open
jb302@39 689
jb302@39 690 \begin_layout Plain Layout
jb302@39 691
jb302@39 692 rcv ( length ):
jb302@39 693 \end_layout
jb302@39 694
jb302@39 695 \begin_layout Plain Layout
jb302@39 696
jb302@39 697 while output buffer size != length:
jb302@39 698 \end_layout
jb302@39 699
jb302@39 700 \begin_layout Plain Layout
jb302@39 701
jb302@39 702 wait
jb302@39 703 \end_layout
jb302@39 704
jb302@39 705 \begin_layout Plain Layout
jb302@39 706
jb302@39 707 return output buffer
jb302@39 708 \end_layout
jb302@39 709
jb302@39 710 \end_inset
jb302@39 711
jb302@39 712
jb302@39 713 \end_layout
jb302@39 714
jb302@39 715 \begin_layout Subsection
jb302@39 716 cli.py
jb302@39 717 \end_layout
jb302@39 718
jb302@40 719 \begin_layout Standard
jb302@40 720 This file offers the user a text based interface to the debug class.
jb302@40 721 It implements the following commands:
jb302@40 722 \end_layout
jb302@40 723
jb302@40 724 \begin_layout Standard
jb302@40 725 \begin_inset ERT
jb302@40 726 status open
jb302@40 727
jb302@40 728 \begin_layout Plain Layout
jb302@40 729
jb302@40 730
jb302@40 731 \backslash
jb302@40 732 bigskip
jb302@40 733 \end_layout
jb302@40 734
jb302@40 735 \end_inset
jb302@40 736
jb302@40 737
jb302@40 738 \end_layout
jb302@40 739
jb302@40 740 \begin_layout Standard
jb302@40 741 \begin_inset Tabular
jb302@40 742 <lyxtabular version="3" rows="16" columns="2">
jb302@40 743 <features tabularvalignment="middle">
jb302@40 744 <column alignment="center" valignment="top" width="0">
jb302@40 745 <column alignment="left" valignment="top" width="2cm">
jb302@40 746 <row>
jb302@40 747 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@40 748 \begin_inset Text
jb302@40 749
jb302@40 750 \begin_layout Plain Layout
jb302@40 751 Command
jb302@40 752 \end_layout
jb302@40 753
jb302@40 754 \end_inset
jb302@40 755 </cell>
jb302@40 756 <cell multicolumn="1" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@40 757 \begin_inset Text
jb302@40 758
jb302@40 759 \begin_layout Plain Layout
jb302@40 760 Function
jb302@40 761 \end_layout
jb302@40 762
jb302@40 763 \end_inset
jb302@40 764 </cell>
jb302@40 765 </row>
jb302@40 766 <row>
jb302@40 767 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 768 \begin_inset Text
jb302@40 769
jb302@40 770 \begin_layout Plain Layout
jb302@40 771 step
jb302@40 772 \end_layout
jb302@40 773
jb302@40 774 \end_inset
jb302@40 775 </cell>
jb302@40 776 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 777 \begin_inset Text
jb302@40 778
jb302@40 779 \begin_layout Plain Layout
jb302@40 780 step
jb302@40 781 \end_layout
jb302@40 782
jb302@40 783 \end_inset
jb302@40 784 </cell>
jb302@40 785 </row>
jb302@40 786 <row>
jb302@40 787 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 788 \begin_inset Text
jb302@40 789
jb302@40 790 \begin_layout Plain Layout
jb302@40 791 run
jb302@40 792 \end_layout
jb302@40 793
jb302@40 794 \end_inset
jb302@40 795 </cell>
jb302@40 796 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 797 \begin_inset Text
jb302@40 798
jb302@40 799 \begin_layout Plain Layout
jb302@40 800 run
jb302@40 801 \end_layout
jb302@40 802
jb302@40 803 \end_inset
jb302@40 804 </cell>
jb302@40 805 </row>
jb302@40 806 <row>
jb302@40 807 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 808 \begin_inset Text
jb302@40 809
jb302@40 810 \begin_layout Plain Layout
jb302@40 811 sr
jb302@40 812 \end_layout
jb302@40 813
jb302@40 814 \end_inset
jb302@40 815 </cell>
jb302@40 816 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 817 \begin_inset Text
jb302@40 818
jb302@40 819 \begin_layout Plain Layout
jb302@40 820 set_reg
jb302@40 821 \end_layout
jb302@40 822
jb302@40 823 \end_inset
jb302@40 824 </cell>
jb302@40 825 </row>
jb302@40 826 <row>
jb302@40 827 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 828 \begin_inset Text
jb302@40 829
jb302@40 830 \begin_layout Plain Layout
jb302@40 831 gr
jb302@40 832 \end_layout
jb302@40 833
jb302@40 834 \end_inset
jb302@40 835 </cell>
jb302@40 836 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 837 \begin_inset Text
jb302@40 838
jb302@40 839 \begin_layout Plain Layout
jb302@40 840 get_reg
jb302@40 841 \end_layout
jb302@40 842
jb302@40 843 \end_inset
jb302@40 844 </cell>
jb302@40 845 </row>
jb302@40 846 <row>
jb302@40 847 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 848 \begin_inset Text
jb302@40 849
jb302@40 850 \begin_layout Plain Layout
jb302@40 851 sf
jb302@40 852 \end_layout
jb302@40 853
jb302@40 854 \end_inset
jb302@40 855 </cell>
jb302@40 856 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 857 \begin_inset Text
jb302@40 858
jb302@40 859 \begin_layout Plain Layout
jb302@40 860 set_flag
jb302@40 861 \end_layout
jb302@40 862
jb302@40 863 \end_inset
jb302@40 864 </cell>
jb302@40 865 </row>
jb302@40 866 <row>
jb302@40 867 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 868 \begin_inset Text
jb302@40 869
jb302@40 870 \begin_layout Plain Layout
jb302@40 871 gr
jb302@40 872 \end_layout
jb302@40 873
jb302@40 874 \end_inset
jb302@40 875 </cell>
jb302@40 876 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 877 \begin_inset Text
jb302@40 878
jb302@40 879 \begin_layout Plain Layout
jb302@40 880 get_flag
jb302@40 881 \end_layout
jb302@40 882
jb302@40 883 \end_inset
jb302@40 884 </cell>
jb302@40 885 </row>
jb302@40 886 <row>
jb302@40 887 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 888 \begin_inset Text
jb302@40 889
jb302@40 890 \begin_layout Plain Layout
jb302@40 891 sb
jb302@40 892 \end_layout
jb302@40 893
jb302@40 894 \end_inset
jb302@40 895 </cell>
jb302@40 896 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 897 \begin_inset Text
jb302@40 898
jb302@40 899 \begin_layout Plain Layout
jb302@40 900 set_block
jb302@40 901 \end_layout
jb302@40 902
jb302@40 903 \end_inset
jb302@40 904 </cell>
jb302@40 905 </row>
jb302@40 906 <row>
jb302@40 907 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 908 \begin_inset Text
jb302@40 909
jb302@40 910 \begin_layout Plain Layout
jb302@40 911 gb
jb302@40 912 \end_layout
jb302@40 913
jb302@40 914 \end_inset
jb302@40 915 </cell>
jb302@40 916 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 917 \begin_inset Text
jb302@40 918
jb302@40 919 \begin_layout Plain Layout
jb302@40 920 get_block
jb302@40 921 \end_layout
jb302@40 922
jb302@40 923 \end_inset
jb302@40 924 </cell>
jb302@40 925 </row>
jb302@40 926 <row>
jb302@40 927 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 928 \begin_inset Text
jb302@40 929
jb302@40 930 \begin_layout Plain Layout
jb302@40 931 ga
jb302@40 932 \end_layout
jb302@40 933
jb302@40 934 \end_inset
jb302@40 935 </cell>
jb302@40 936 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 937 \begin_inset Text
jb302@40 938
jb302@40 939 \begin_layout Plain Layout
jb302@40 940 get_a
jb302@40 941 \end_layout
jb302@40 942
jb302@40 943 \end_inset
jb302@40 944 </cell>
jb302@40 945 </row>
jb302@40 946 <row>
jb302@40 947 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 948 \begin_inset Text
jb302@40 949
jb302@40 950 \begin_layout Plain Layout
jb302@40 951 gf
jb302@40 952 \end_layout
jb302@40 953
jb302@40 954 \end_inset
jb302@40 955 </cell>
jb302@40 956 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 957 \begin_inset Text
jb302@40 958
jb302@40 959 \begin_layout Plain Layout
jb302@40 960 get_flags
jb302@40 961 \end_layout
jb302@40 962
jb302@40 963 \end_inset
jb302@40 964 </cell>
jb302@40 965 </row>
jb302@40 966 <row>
jb302@40 967 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 968 \begin_inset Text
jb302@40 969
jb302@40 970 \begin_layout Plain Layout
jb302@40 971 gir
jb302@40 972 \end_layout
jb302@40 973
jb302@40 974 \end_inset
jb302@40 975 </cell>
jb302@40 976 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 977 \begin_inset Text
jb302@40 978
jb302@40 979 \begin_layout Plain Layout
jb302@40 980 get_ir
jb302@40 981 \end_layout
jb302@40 982
jb302@40 983 \end_inset
jb302@40 984 </cell>
jb302@40 985 </row>
jb302@40 986 <row>
jb302@40 987 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 988 \begin_inset Text
jb302@40 989
jb302@40 990 \begin_layout Plain Layout
jb302@40 991 runl
jb302@40 992 \end_layout
jb302@40 993
jb302@40 994 \end_inset
jb302@40 995 </cell>
jb302@40 996 <cell multirow="3" alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 997 \begin_inset Text
jb302@40 998
jb302@40 999 \begin_layout Plain Layout
jb302@40 1000 run_length
jb302@40 1001 \end_layout
jb302@40 1002
jb302@40 1003 \end_inset
jb302@40 1004 </cell>
jb302@40 1005 </row>
jb302@40 1006 <row>
jb302@40 1007 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1008 \begin_inset Text
jb302@40 1009
jb302@40 1010 \begin_layout Plain Layout
jb302@40 1011 frun
jb302@40 1012 \end_layout
jb302@40 1013
jb302@40 1014 \end_inset
jb302@40 1015 </cell>
jb302@40 1016 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1017 \begin_inset Text
jb302@40 1018
jb302@40 1019 \begin_layout Plain Layout
jb302@40 1020 free_run
jb302@40 1021 \end_layout
jb302@40 1022
jb302@40 1023 \end_inset
jb302@40 1024 </cell>
jb302@40 1025 </row>
jb302@40 1026 <row>
jb302@40 1027 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1028 \begin_inset Text
jb302@40 1029
jb302@40 1030 \begin_layout Plain Layout
jb302@40 1031 sbp
jb302@40 1032 \end_layout
jb302@40 1033
jb302@40 1034 \end_inset
jb302@40 1035 </cell>
jb302@40 1036 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1037 \begin_inset Text
jb302@40 1038
jb302@40 1039 \begin_layout Plain Layout
jb302@40 1040 set_bp
jb302@40 1041 \end_layout
jb302@40 1042
jb302@40 1043 \end_inset
jb302@40 1044 </cell>
jb302@40 1045 </row>
jb302@40 1046 <row>
jb302@40 1047 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@40 1048 \begin_inset Text
jb302@40 1049
jb302@40 1050 \begin_layout Plain Layout
jb302@40 1051 exc
jb302@40 1052 \end_layout
jb302@40 1053
jb302@40 1054 \end_inset
jb302@40 1055 </cell>
jb302@40 1056 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1057 \begin_inset Text
jb302@40 1058
jb302@40 1059 \begin_layout Plain Layout
jb302@40 1060 exc
jb302@40 1061 \end_layout
jb302@40 1062
jb302@40 1063 \end_inset
jb302@40 1064 </cell>
jb302@40 1065 </row>
jb302@40 1066 </lyxtabular>
jb302@40 1067
jb302@40 1068 \end_inset
jb302@40 1069
jb302@40 1070
jb302@40 1071 \end_layout
jb302@40 1072
jb302@40 1073 \begin_layout Standard
jb302@40 1074 \begin_inset ERT
jb302@40 1075 status open
jb302@40 1076
jb302@40 1077 \begin_layout Plain Layout
jb302@40 1078
jb302@40 1079
jb302@40 1080 \backslash
jb302@40 1081 bigskip
jb302@40 1082 \end_layout
jb302@40 1083
jb302@40 1084 \end_inset
jb302@40 1085
jb302@40 1086
jb302@40 1087 \end_layout
jb302@40 1088
jb302@40 1089 \begin_layout Standard
jb302@40 1090 Commands are issued at a terminal followed by any arguments separated by
jb302@40 1091 a space.
jb302@40 1092 The exc function enables the interpreter mode described in the EDE Use
jb302@40 1093 Cases section above.
jb302@40 1094 \end_layout
jb302@40 1095
jb302@40 1096 \begin_layout Standard
jb302@40 1097 \begin_inset Newpage pagebreak
jb302@40 1098 \end_inset
jb302@40 1099
jb302@40 1100
jb302@40 1101 \end_layout
jb302@40 1102
jb302@40 1103 \begin_layout Standard
jb302@40 1104 Symbols are defined which map parts of the emulators memory to the encoding
jb302@40 1105 used in the control functions.
jb302@41 1106 Tables are provided below.
jb302@40 1107 \end_layout
jb302@40 1108
jb302@40 1109 \begin_layout Standard
jb302@40 1110 \begin_inset ERT
jb302@40 1111 status open
jb302@40 1112
jb302@40 1113 \begin_layout Plain Layout
jb302@40 1114
jb302@40 1115
jb302@40 1116 \backslash
jb302@40 1117 bigskip
jb302@40 1118 \end_layout
jb302@40 1119
jb302@40 1120 \end_inset
jb302@40 1121
jb302@40 1122
jb302@40 1123 \end_layout
jb302@40 1124
jb302@40 1125 \begin_layout Standard
jb302@40 1126 \begin_inset Tabular
jb302@40 1127 <lyxtabular version="3" rows="17" columns="2">
jb302@40 1128 <features tabularvalignment="middle">
jb302@40 1129 <column alignment="center" valignment="top" width="0">
jb302@40 1130 <column alignment="center" valignment="top" width="0">
jb302@40 1131 <row>
jb302@40 1132 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@40 1133 \begin_inset Text
jb302@40 1134
jb302@40 1135 \begin_layout Plain Layout
jb302@40 1136 Register
jb302@40 1137 \end_layout
jb302@40 1138
jb302@40 1139 \end_inset
jb302@40 1140 </cell>
jb302@40 1141 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1142 \begin_inset Text
jb302@40 1143
jb302@40 1144 \begin_layout Plain Layout
jb302@40 1145 Encoding
jb302@40 1146 \end_layout
jb302@40 1147
jb302@40 1148 \end_inset
jb302@40 1149 </cell>
jb302@40 1150 </row>
jb302@40 1151 <row>
jb302@40 1152 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1153 \begin_inset Text
jb302@40 1154
jb302@40 1155 \begin_layout Plain Layout
jb302@40 1156 R0_0
jb302@40 1157 \end_layout
jb302@40 1158
jb302@40 1159 \end_inset
jb302@40 1160 </cell>
jb302@40 1161 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1162 \begin_inset Text
jb302@40 1163
jb302@40 1164 \begin_layout Plain Layout
jb302@40 1165 0
jb302@40 1166 \end_layout
jb302@40 1167
jb302@40 1168 \end_inset
jb302@40 1169 </cell>
jb302@40 1170 </row>
jb302@40 1171 <row>
jb302@40 1172 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1173 \begin_inset Text
jb302@40 1174
jb302@40 1175 \begin_layout Plain Layout
jb302@40 1176 R1_0
jb302@40 1177 \end_layout
jb302@40 1178
jb302@40 1179 \end_inset
jb302@40 1180 </cell>
jb302@40 1181 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1182 \begin_inset Text
jb302@40 1183
jb302@40 1184 \begin_layout Plain Layout
jb302@40 1185 1
jb302@40 1186 \end_layout
jb302@40 1187
jb302@40 1188 \end_inset
jb302@40 1189 </cell>
jb302@40 1190 </row>
jb302@40 1191 <row>
jb302@40 1192 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1193 \begin_inset Text
jb302@40 1194
jb302@40 1195 \begin_layout Plain Layout
jb302@40 1196 R2_0
jb302@40 1197 \end_layout
jb302@40 1198
jb302@40 1199 \end_inset
jb302@40 1200 </cell>
jb302@40 1201 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1202 \begin_inset Text
jb302@40 1203
jb302@40 1204 \begin_layout Plain Layout
jb302@40 1205 2
jb302@40 1206 \end_layout
jb302@40 1207
jb302@40 1208 \end_inset
jb302@40 1209 </cell>
jb302@40 1210 </row>
jb302@40 1211 <row>
jb302@40 1212 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1213 \begin_inset Text
jb302@40 1214
jb302@40 1215 \begin_layout Plain Layout
jb302@40 1216 R3_0
jb302@40 1217 \end_layout
jb302@40 1218
jb302@40 1219 \end_inset
jb302@40 1220 </cell>
jb302@40 1221 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1222 \begin_inset Text
jb302@40 1223
jb302@40 1224 \begin_layout Plain Layout
jb302@40 1225 3
jb302@40 1226 \end_layout
jb302@40 1227
jb302@40 1228 \end_inset
jb302@40 1229 </cell>
jb302@40 1230 </row>
jb302@40 1231 <row>
jb302@40 1232 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1233 \begin_inset Text
jb302@40 1234
jb302@40 1235 \begin_layout Plain Layout
jb302@40 1236 DPH
jb302@40 1237 \end_layout
jb302@40 1238
jb302@40 1239 \end_inset
jb302@40 1240 </cell>
jb302@40 1241 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1242 \begin_inset Text
jb302@40 1243
jb302@40 1244 \begin_layout Plain Layout
jb302@40 1245 4
jb302@40 1246 \end_layout
jb302@40 1247
jb302@40 1248 \end_inset
jb302@40 1249 </cell>
jb302@40 1250 </row>
jb302@40 1251 <row>
jb302@40 1252 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1253 \begin_inset Text
jb302@40 1254
jb302@40 1255 \begin_layout Plain Layout
jb302@40 1256 SPH
jb302@40 1257 \end_layout
jb302@40 1258
jb302@40 1259 \end_inset
jb302@40 1260 </cell>
jb302@40 1261 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1262 \begin_inset Text
jb302@40 1263
jb302@40 1264 \begin_layout Plain Layout
jb302@40 1265 5
jb302@40 1266 \end_layout
jb302@40 1267
jb302@40 1268 \end_inset
jb302@40 1269 </cell>
jb302@40 1270 </row>
jb302@40 1271 <row>
jb302@40 1272 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1273 \begin_inset Text
jb302@40 1274
jb302@40 1275 \begin_layout Plain Layout
jb302@40 1276 PCH
jb302@40 1277 \end_layout
jb302@40 1278
jb302@40 1279 \end_inset
jb302@40 1280 </cell>
jb302@40 1281 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1282 \begin_inset Text
jb302@40 1283
jb302@40 1284 \begin_layout Plain Layout
jb302@40 1285 6
jb302@40 1286 \end_layout
jb302@40 1287
jb302@40 1288 \end_inset
jb302@40 1289 </cell>
jb302@40 1290 </row>
jb302@40 1291 <row>
jb302@40 1292 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1293 \begin_inset Text
jb302@40 1294
jb302@40 1295 \begin_layout Plain Layout
jb302@40 1296 TMPH
jb302@40 1297 \end_layout
jb302@40 1298
jb302@40 1299 \end_inset
jb302@40 1300 </cell>
jb302@40 1301 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1302 \begin_inset Text
jb302@40 1303
jb302@40 1304 \begin_layout Plain Layout
jb302@40 1305 7
jb302@40 1306 \end_layout
jb302@40 1307
jb302@40 1308 \end_inset
jb302@40 1309 </cell>
jb302@40 1310 </row>
jb302@40 1311 <row>
jb302@40 1312 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1313 \begin_inset Text
jb302@40 1314
jb302@40 1315 \begin_layout Plain Layout
jb302@40 1316 R0_1
jb302@40 1317 \end_layout
jb302@40 1318
jb302@40 1319 \end_inset
jb302@40 1320 </cell>
jb302@40 1321 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1322 \begin_inset Text
jb302@40 1323
jb302@40 1324 \begin_layout Plain Layout
jb302@40 1325 8
jb302@40 1326 \end_layout
jb302@40 1327
jb302@40 1328 \end_inset
jb302@40 1329 </cell>
jb302@40 1330 </row>
jb302@40 1331 <row>
jb302@40 1332 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1333 \begin_inset Text
jb302@40 1334
jb302@40 1335 \begin_layout Plain Layout
jb302@40 1336 R1_1
jb302@40 1337 \end_layout
jb302@40 1338
jb302@40 1339 \end_inset
jb302@40 1340 </cell>
jb302@40 1341 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1342 \begin_inset Text
jb302@40 1343
jb302@40 1344 \begin_layout Plain Layout
jb302@40 1345 9
jb302@40 1346 \end_layout
jb302@40 1347
jb302@40 1348 \end_inset
jb302@40 1349 </cell>
jb302@40 1350 </row>
jb302@40 1351 <row>
jb302@40 1352 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1353 \begin_inset Text
jb302@40 1354
jb302@40 1355 \begin_layout Plain Layout
jb302@40 1356 R2_1
jb302@40 1357 \end_layout
jb302@40 1358
jb302@40 1359 \end_inset
jb302@40 1360 </cell>
jb302@40 1361 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1362 \begin_inset Text
jb302@40 1363
jb302@40 1364 \begin_layout Plain Layout
jb302@40 1365 10
jb302@40 1366 \end_layout
jb302@40 1367
jb302@40 1368 \end_inset
jb302@40 1369 </cell>
jb302@40 1370 </row>
jb302@40 1371 <row>
jb302@40 1372 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1373 \begin_inset Text
jb302@40 1374
jb302@40 1375 \begin_layout Plain Layout
jb302@40 1376 R3_1
jb302@40 1377 \end_layout
jb302@40 1378
jb302@40 1379 \end_inset
jb302@40 1380 </cell>
jb302@40 1381 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1382 \begin_inset Text
jb302@40 1383
jb302@40 1384 \begin_layout Plain Layout
jb302@40 1385 11
jb302@40 1386 \end_layout
jb302@40 1387
jb302@40 1388 \end_inset
jb302@40 1389 </cell>
jb302@40 1390 </row>
jb302@40 1391 <row>
jb302@40 1392 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1393 \begin_inset Text
jb302@40 1394
jb302@40 1395 \begin_layout Plain Layout
jb302@40 1396 DPL
jb302@40 1397 \end_layout
jb302@40 1398
jb302@40 1399 \end_inset
jb302@40 1400 </cell>
jb302@40 1401 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1402 \begin_inset Text
jb302@40 1403
jb302@40 1404 \begin_layout Plain Layout
jb302@40 1405 12
jb302@40 1406 \end_layout
jb302@40 1407
jb302@40 1408 \end_inset
jb302@40 1409 </cell>
jb302@40 1410 </row>
jb302@40 1411 <row>
jb302@40 1412 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1413 \begin_inset Text
jb302@40 1414
jb302@40 1415 \begin_layout Plain Layout
jb302@40 1416 SPL
jb302@40 1417 \end_layout
jb302@40 1418
jb302@40 1419 \end_inset
jb302@40 1420 </cell>
jb302@40 1421 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1422 \begin_inset Text
jb302@40 1423
jb302@40 1424 \begin_layout Plain Layout
jb302@40 1425 13
jb302@40 1426 \end_layout
jb302@40 1427
jb302@40 1428 \end_inset
jb302@40 1429 </cell>
jb302@40 1430 </row>
jb302@40 1431 <row>
jb302@40 1432 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1433 \begin_inset Text
jb302@40 1434
jb302@40 1435 \begin_layout Plain Layout
jb302@40 1436 PCL
jb302@40 1437 \end_layout
jb302@40 1438
jb302@40 1439 \end_inset
jb302@40 1440 </cell>
jb302@40 1441 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1442 \begin_inset Text
jb302@40 1443
jb302@40 1444 \begin_layout Plain Layout
jb302@40 1445 14
jb302@40 1446 \end_layout
jb302@40 1447
jb302@40 1448 \end_inset
jb302@40 1449 </cell>
jb302@40 1450 </row>
jb302@40 1451 <row>
jb302@40 1452 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@40 1453 \begin_inset Text
jb302@40 1454
jb302@40 1455 \begin_layout Plain Layout
jb302@40 1456 TMPL
jb302@40 1457 \end_layout
jb302@40 1458
jb302@40 1459 \end_inset
jb302@40 1460 </cell>
jb302@40 1461 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1462 \begin_inset Text
jb302@40 1463
jb302@40 1464 \begin_layout Plain Layout
jb302@40 1465 15
jb302@40 1466 \end_layout
jb302@40 1467
jb302@40 1468 \end_inset
jb302@40 1469 </cell>
jb302@40 1470 </row>
jb302@40 1471 </lyxtabular>
jb302@40 1472
jb302@40 1473 \end_inset
jb302@40 1474
jb302@40 1475
jb302@40 1476 \begin_inset Tabular
jb302@40 1477 <lyxtabular version="3" rows="9" columns="2">
jb302@40 1478 <features tabularvalignment="middle">
jb302@40 1479 <column alignment="center" valignment="top" width="0">
jb302@40 1480 <column alignment="center" valignment="top" width="0">
jb302@40 1481 <row>
jb302@40 1482 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@40 1483 \begin_inset Text
jb302@40 1484
jb302@40 1485 \begin_layout Plain Layout
jb302@40 1486 Flag
jb302@40 1487 \end_layout
jb302@40 1488
jb302@40 1489 \end_inset
jb302@40 1490 </cell>
jb302@40 1491 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1492 \begin_inset Text
jb302@40 1493
jb302@40 1494 \begin_layout Plain Layout
jb302@40 1495 Encoding
jb302@40 1496 \end_layout
jb302@40 1497
jb302@40 1498 \end_inset
jb302@40 1499 </cell>
jb302@40 1500 </row>
jb302@40 1501 <row>
jb302@40 1502 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1503 \begin_inset Text
jb302@40 1504
jb302@40 1505 \begin_layout Plain Layout
jb302@40 1506 BS
jb302@40 1507 \end_layout
jb302@40 1508
jb302@40 1509 \end_inset
jb302@40 1510 </cell>
jb302@40 1511 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1512 \begin_inset Text
jb302@40 1513
jb302@40 1514 \begin_layout Plain Layout
jb302@40 1515 0
jb302@40 1516 \end_layout
jb302@40 1517
jb302@40 1518 \end_inset
jb302@40 1519 </cell>
jb302@40 1520 </row>
jb302@40 1521 <row>
jb302@40 1522 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1523 \begin_inset Text
jb302@40 1524
jb302@40 1525 \begin_layout Plain Layout
jb302@40 1526 IE
jb302@40 1527 \end_layout
jb302@40 1528
jb302@40 1529 \end_inset
jb302@40 1530 </cell>
jb302@40 1531 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1532 \begin_inset Text
jb302@40 1533
jb302@40 1534 \begin_layout Plain Layout
jb302@40 1535 1
jb302@40 1536 \end_layout
jb302@40 1537
jb302@40 1538 \end_inset
jb302@40 1539 </cell>
jb302@40 1540 </row>
jb302@40 1541 <row>
jb302@40 1542 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1543 \begin_inset Text
jb302@40 1544
jb302@40 1545 \begin_layout Plain Layout
jb302@40 1546 OV
jb302@40 1547 \end_layout
jb302@40 1548
jb302@40 1549 \end_inset
jb302@40 1550 </cell>
jb302@40 1551 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1552 \begin_inset Text
jb302@40 1553
jb302@40 1554 \begin_layout Plain Layout
jb302@40 1555 2
jb302@40 1556 \end_layout
jb302@40 1557
jb302@40 1558 \end_inset
jb302@40 1559 </cell>
jb302@40 1560 </row>
jb302@40 1561 <row>
jb302@40 1562 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1563 \begin_inset Text
jb302@40 1564
jb302@40 1565 \begin_layout Plain Layout
jb302@40 1566 S
jb302@40 1567 \end_layout
jb302@40 1568
jb302@40 1569 \end_inset
jb302@40 1570 </cell>
jb302@40 1571 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1572 \begin_inset Text
jb302@40 1573
jb302@40 1574 \begin_layout Plain Layout
jb302@40 1575 3
jb302@40 1576 \end_layout
jb302@40 1577
jb302@40 1578 \end_inset
jb302@40 1579 </cell>
jb302@40 1580 </row>
jb302@40 1581 <row>
jb302@40 1582 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1583 \begin_inset Text
jb302@40 1584
jb302@40 1585 \begin_layout Plain Layout
jb302@40 1586 P
jb302@40 1587 \end_layout
jb302@40 1588
jb302@40 1589 \end_inset
jb302@40 1590 </cell>
jb302@40 1591 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1592 \begin_inset Text
jb302@40 1593
jb302@40 1594 \begin_layout Plain Layout
jb302@40 1595 4
jb302@40 1596 \end_layout
jb302@40 1597
jb302@40 1598 \end_inset
jb302@40 1599 </cell>
jb302@40 1600 </row>
jb302@40 1601 <row>
jb302@40 1602 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1603 \begin_inset Text
jb302@40 1604
jb302@40 1605 \begin_layout Plain Layout
jb302@40 1606 AC
jb302@40 1607 \end_layout
jb302@40 1608
jb302@40 1609 \end_inset
jb302@40 1610 </cell>
jb302@40 1611 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1612 \begin_inset Text
jb302@40 1613
jb302@40 1614 \begin_layout Plain Layout
jb302@40 1615 5
jb302@40 1616 \end_layout
jb302@40 1617
jb302@40 1618 \end_inset
jb302@40 1619 </cell>
jb302@40 1620 </row>
jb302@40 1621 <row>
jb302@40 1622 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
jb302@40 1623 \begin_inset Text
jb302@40 1624
jb302@40 1625 \begin_layout Plain Layout
jb302@40 1626 Z
jb302@40 1627 \end_layout
jb302@40 1628
jb302@40 1629 \end_inset
jb302@40 1630 </cell>
jb302@40 1631 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1632 \begin_inset Text
jb302@40 1633
jb302@40 1634 \begin_layout Plain Layout
jb302@40 1635 6
jb302@40 1636 \end_layout
jb302@40 1637
jb302@40 1638 \end_inset
jb302@40 1639 </cell>
jb302@40 1640 </row>
jb302@40 1641 <row>
jb302@40 1642 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
jb302@40 1643 \begin_inset Text
jb302@40 1644
jb302@40 1645 \begin_layout Plain Layout
jb302@40 1646 C
jb302@40 1647 \end_layout
jb302@40 1648
jb302@40 1649 \end_inset
jb302@40 1650 </cell>
jb302@40 1651 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
jb302@40 1652 \begin_inset Text
jb302@40 1653
jb302@40 1654 \begin_layout Plain Layout
jb302@40 1655 7
jb302@40 1656 \end_layout
jb302@40 1657
jb302@40 1658 \end_inset
jb302@40 1659 </cell>
jb302@40 1660 </row>
jb302@40 1661 </lyxtabular>
jb302@40 1662
jb302@40 1663 \end_inset
jb302@40 1664
jb302@40 1665
jb302@40 1666 \end_layout
jb302@40 1667
jb302@39 1668 \begin_layout Section
jb302@39 1669 Debugger Testing
jb302@39 1670 \end_layout
jb302@39 1671
jb302@42 1672 \begin_layout Standard
jb302@42 1673 The debugger was tested with an automated test method using python scripting.
jb302@42 1674 The script uses the debug controller class to fill all of the emulators
jb302@42 1675 memory structures with known values.
jb302@42 1676 It then requests these values back and compares the results, if the values
jb302@42 1677 are not the same the test fails.
jb302@42 1678 The test then steps through the emulators entire memory space, and then
jb302@42 1679 checks the program counter to see if it has reached the end.
jb302@42 1680 The test files and results can be found in the Supporting Material.
jb302@42 1681 \end_layout
jb302@42 1682
jb302@39 1683 \end_body
jb302@39 1684 \end_document