344.362305 188.333206 M 1.299469 0 32 (w tight ) widthshow 2 FF 381.809235 188.333206 M 1.181335 0 32 (B) widthshow 387.679382 188.333206 M 1.181335 0 32 (.LO) widthshow 403.5495 188.333206 M 1.181335 0 32 (.C) widthshow 1 FF 412.999512 188.333206 M 1.299469 0 32 ( code can get.) widthshow 126 203.333176 M 0.685303 0 32 (The same e) widthshow 185.120987 203.333176 M 0.685303 0 32 (xample can be wr) widthshow 273.537659 203.333176 M 0.685303 0 32 (itten in a m) widthshow 329.284668 203.333176 M 0.685303 0 32 (uch more C-lik) widthshow 401.330536 203.333176 M 0.685303 0 32 (e style at a slight) widthshow 126 218.333145 M 5.160828 0 32 (perf) widthshow 144.623398 218.333145 M 5.160828 0 32 (or) widthshow 154.677048 218.333145 M 5.160828 0 32 (mance e) widthshow 201.693268 218.333145 M 5.160828 0 32 (xpense) widthshow 236.992462 218.333145 M 5.160828 0 32 (. The assemb) widthshow 313.732361 218.333145 M 5.160828 0 32 (ler code produced \(27 machine) widthshow 126 233.333115 M 1.15416 0 32 (instr) widthshow 146.943787 233.333115 M 1.15416 0 32 (uctions\) is sho) widthshow 219.38829 233.333115 M 1.15416 0 32 (wn interspersed with the source \(24 lines\). \(Note that) widthshow 126 248.333084 M -0.165375 0 32 (although ) widthshow 2 FF 171.088608 248.333084 M -0.150345 0 32 (B) widthshow 176.95874 248.333084 M -0.150345 0 32 (.LO) widthshow 192.828873 248.333084 M -0.150345 0 32 (.C) widthshow 1 FF 202.27887 248.333084 M -0.165375 0 32 ( copies single-line comments into the output, b) widthshow 427.116455 248.333084 M -0.165375 0 32 (ut the) widthshow 454.253326 248.333084 M -0.165375 0 32 (y ha) widthshow 474.658203 248.333084 M -0.165375 0 32 (v) widthshow 479.883545 248.333084 M -0.165375 0 32 (e) widthshow (been str) 126.0 263.333 T (ipped a) 165.908 263.333 T (w) 201.768 263.333 T (a) 209.545 263.333 T (y f) 215.332 263.333 T (or clar) 226.618 263.333 T (ity\).) 257.341 263.333 T 3 (Courier) 9 1 mymakefontmetric 3 FF (/* Ramtest.bc: Clear and test RAM in an inf) 90.0 287.0 T (inite loop. \(Set up for 16C71\) */) 322.2 287.0 T (const VARSTART__ = 0x0c, VAREND__ = 0x2f ) 90.0 298.0 T (// Def) 90.0 320.0 T (ine where RAM starts and ends; this information is used by the compiler) 122.4 320.0 T (// to allocate variables in appropriate places. This information is usually put) 90.0 331.0 T (// in a #include-d f) 90.0 342.0 T (ile.) 198.0 342.0 T (const STATUS = 0x03, Z_f) 90.0 353.0 T (lag = 2, PORTB = 0x06, TRISB = 0x06, FSR = 4) 219.6 353.0 T (// allocate a one-byte variable at FSR \(the indirection register\)) 90.0 375.0 T (int8 ptr@FSR // This defeats automatic allocation.) 90.0 386.0 T 4 (Courier-Bold) 9 1 mymakefontmetric 4 FF 135 407.999695 M -0.44989 0 (VARSTART__ EQU 0xc) ashow 135 418.999695 M -0.44989 0 (VAREND__ EQU 0x2f) ashow 135 429.999695 M -0.44989 0 (STATUS EQU 0x3) ashow 135 440.999695 M -0.44989 0 (Z_f) ashow 149.850311 440.999695 M -0.44989 0 (lag EQU 0x2) ashow 135 451.999695 M -0.44989 0 (PORTB EQU 0x6) ashow 135 462.999695 M -0.44989 0 (TRISB EQU 0x6) ashow 135 473.999695 M -0.44989 0 (FSR EQU 0x4) ashow 135 484.999695 M -0.44989 0 (ptr EQU 0x4) ashow 3 FF (#origin 0 // generate code at address zero \(RESET\)) 90.0 496.0 T (goto main // bootstrap to the main program) 90.0 507.0 T 4 FF 135 517.999695 M -0.44989 0 (ORG 0x0) ashow 135 528.999695 M -0.44989 0 ( goto main) ashow 3 FF (#origin 10 // place main at address 10 arbitrarily) 90.0 551.0 T 4 FF 135 561.999695 M -0.44989 0 ( ORG 0xa) ashow 3 FF (// This is a named-block, like the brace-delimited block) 90.0 584.0 T (// of C, except the name acts as a label which propagates) 90.0 595.0 T (// to the assembler code, allowing it to be referenced \(and located\).) 90.0 606.0 T (main {) 90.0 617.0 T ( *STATUS /= 5 // set bit 5 of STATUS reg to access page 1) 90.0 628.0 T ( *TRISB \\= 0 // clear bit 0 to make PORTB:0 an output) 90.0 639.0 T ( *STATUS \\= 5 // reset to access page 0) 90.0 650.0 T ( *PORTB = 0 // bit 0 low) 90.0 661.0 T 4 FF 135 671.999695 M -0.44989 0 ( bsf STATUS,5) ashow 1 G 193.5 54 225 54 NF 0 G 1 FF (B) 288.295 61.333 T (.LO) 295.412 61.333 T (.C) 312.705 61.333 T (release 1.0, v) 248.97 74.333 T (ersion 4.0) 314.729 74.333 T (High le) 224.99 87.333 T (v) 258.893 87.333 T (el language and compiler) 264.118 87.333 T 1 G 540 540 9 135 NF 0 G smat 547.333313 664.112976 translate 0 0 moveto 270 rotate (Doc#: BLOC-39312/BSPI) show rmat 1 G 238.5 684 135 9 NF 0 G (P) 278.087 691.333 T (age 1 of 2) 284.985 691.333 T grestore FMENDPAGE grestore showpage __NXsheetsavetoken restore %%PageTrailer %%Page: 2 2 %%PageBoundingBox: 0 0 612 792 %%PageFonts: (atend) %%BeginPageSetup %%PaperSize: Letter /__NXsheetsavetoken save def 0 0 translate gsave /__NXbasematrix matrix currentmatrix def grestore gsave 0 0 612 792 rectclip [1 0 0 -1 0 792] concat 0 0 translate %%EndPageSetup FMBEGINPAGE gsave 0 0 612 792 rectclip /landscape false def 0 0 612 792 CR 0 G 0 0 612 792 CR 0 (Courier-Bold) 9 1 mymakefontmetric 0 FF 135 78 M -0.44989 0 ( bcf TRISB,0) ashow 135 89 M -0.44989 0 ( bcf STATUS,5) ashow 135 100 M -0.44989 0 ( movlw 0x0) ashow 135 111 M -0.44989 0 ( movwf PORTB) ashow 1 (Courier) 9 1 mymakefontmetric 1 FF ( ptr=VAREND__ // clear RAM) 90.0 122.0 T 0 FF 135 133 M -0.44989 0 ( movlw VAREND__) ashow 135 144 M -0.44989 0 ( movwf ptr) ashow 90 155 M -0.44989 0 ( ) ashow 1 FF (do {) 109.8 155.0 T ( clear\(*0\)) 90.0 166.0 T ( // clearing location zero will actually clear the variable pointed to) 90.0 177.0 T ( // by ptr. Loop while ptr >= VARSTART__. Although we could) 90.0 188.0 T ( // perform a <= test, the following is faster.) 90.0 199.0 T ( } while\(eval\(--ptr - [VARSTART__ - 1]\), *STATUS ?! Z_f) 90.0 210.0 T (lag\)) 403.2 210.0 T 0 FF 135 221 M -0.44989 0 (DH1) ashow 135 232 M -0.44989 0 ( clrf 0x0) ashow 135 243 M -0.44989 0 (DT1) ashow 135 254 M -0.44989 0 ( decf ptr,1) ashow 135 265 M -0.44989 0 ( movf ptr,0) ashow 135 276 M -0.44989 0 ( addlw 0xf5) ashow 135 287 M -0.44989 0 ( btfss STATUS,2) ashow 135 298 M -0.44989 0 ( goto DH1) ashow 135 309 M -0.44989 0 (EN1) ashow 90 331 M -0.44989 0 ( ) ashow 1 FF (ptr=VAREND__;) 109.8 331.0 T ( ) 135.0 342.0 T 0 FF 156.599976 342 M -0.44989 0 (movlw VAREND__) ashow 135 353 M -0.44989 0 ( movwf ptr) ashow 90 364 M -0.44989 0 ( ) ashow 1 FF (do { // check RAM for non-zero elements) 109.8 364.0 T ( if\(eval\(*0\), *STATUS ?! Z_f) 90.0 375.0 T (lag\) {) 279.0 375.0 T ( *PORTB = 1 // bit 0 high) 90.0 386.0 T ( loop {} // trap execution inside an inf) 90.0 397.0 T (inite loop) 387.0 397.0 T ( }) 90.0 408.0 T ( } while\(eval\(--ptr - [VARSTART__ - 1]\), *STATUS ?! Z_f) 90.0 419.0 T (lag\)) 403.2 419.0 T 0 FF 135 430 M -0.44989 0 (DH2) ashow 135 441 M -0.44989 0 (IFT3) ashow 135 452 M -0.44989 0 ( movf 0x0,0) ashow 135 463 M -0.44989 0 ( btfsc STATUS,2) ashow 135 474 M -0.44989 0 ( goto EN3) ashow 135 485 M -0.44989 0 ( movlw 0x1) ashow 135 496 M -0.44989 0 ( movwf PORTB) ashow 135 507 M -0.44989 0 (LH4) ashow 135 518 M -0.44989 0 ( goto LH4) ashow 135 529 M -0.44989 0 (EN4) ashow 135 540 M -0.44989 0 (EN3) ashow 135 551 M -0.44989 0 (DT2) ashow 135 562 M -0.44989 0 ( decf ptr,1) ashow 135 573 M -0.44989 0 ( movf ptr,0) ashow 135 584 M -0.44989 0 ( addlw 0xf5) ashow 135 595 M -0.44989 0 ( btfss STATUS,2) ashow 135 606 M -0.44989 0 ( goto DH2) ashow 135 617 M -0.44989 0 (EN2) ashow 1 FF ( goto main // if test was successful, repeat) 90.0 628.0 T ( ) 135.0 639.0 T 0 FF 156.599976 639 M -0.44989 0 (goto main) ashow 1 FF (}) 90.0 650.0 T 0 FF 135 661 M -0.44989 0 (__end_main) ashow 135 672 M -0.44989 0 ( END) ashow 1 G 54 720 504 27 NF 0 G 2 (Optima-Bold) 11 1 mymakefontmetric 2 FF (Butter\337y Signal Pr) 80.532 727.333 T (ocessing Inc) 167.74 727.333 T 3 (Helvetica) 11 1 mymakefontmetric 3 FF (., 131 Bloor Street W) 226.425 727.333 T (est #200-154, T) 328.197 727.333 T (oronto) 403.923 727.333 T (, Ontar) 434.668 727.333 T (io) 468.46 727.333 T (, M5S 1R8. ) 476.579 727.333 T (Phone: \(416\) 929-5754. F) 195.46 741.333 T (AX: \(416\) 968-7492) 320.543 741.333 T 1 G 72 45 468 18 NF 0 G 3 FF (B) 288.295 52.333 T (.LO) 295.412 52.333 T (.C) 312.705 52.333 T 4 (Helvetica) 12 1 mymakefontmetric 4 FF (release 1.0, v) 415.572 52.333 T (ersion 4.0) 487.308 52.333 T 1 G 238.5 693 135 9 NF 0 G 3 FF (P) 278.087 700.333 T (age 2 of 2) 284.985 700.333 T grestore FMENDPAGE grestore showpage __NXsheetsavetoken restore %%PageTrailer %%Trailer %%BoundingBox:0 0 612 792