di2747l2.txt ;*********************************************************************************************** ; LISTING 2 - ON-THE-FLY MINIMUM/MAXIMUM DETERMINATION ; ; "Microcontroller selects minimum/maximum value," EDN, Sept 20, 2001, pg 100 ; ************************************************************************************************** 1 ********* MIN/MAX VALUE SELECTION VAR 2 ************** 2 *nolist 0000 3 $include "std-j1a.asm" 4 *list 5 ****************************************** 00C0 6 org RAM 00C0 7 DATA rmb 1 00C1 8 DATAmin rmb 1 00C2 9 DATAmax rmb 1 0300 10 org ROM 0300 [02] A6FF 11 init lda #$ff 0302 [04] B7C1 12 sta DATAmin 0304 [05] 3FC2 13 clr DATAmax 0306 [05] 3FC0 14 clr DATA 0308 [03] 5F 15 clrx 16 ******************************************** 0309 [03] B6C0 17 start lda DATA ;wait for DATA / 0 030B [03] 27FC 18 beq start 030D [03] B1C1 19 cmp DATAmin ; Data > DATAmin? 030F [03] 2402 20 bhs m0 0311 [04] B7C1 21 sta DATAmin 0313 [03] B1C2 22 m0 cmp DATAmax ; Data < DATAmax? 0315 [03] 23F2 23 bls start 0317 [04] B7C2 24 sta DATAmax 0319 [03] 20EE 25 bra start 26 ********************************************* 07FE 27 org VECTORS+6 07FE 0300 28 fdb init