; BUBBLE SORT ; .org 0000h LD SP, 0080h ; ADDED FOR TESTING PURPOSES. LOOP: LD IX, TABLE ; TABLE START. LD B, 9 ; NUMBER OF LINES. LD C, 0 ; CHANGE FLAG. LOOP1: LD A, (IX +0) ; GET ENTRY. CP (IX +1) ; TEST NEXT. JP Z, NOSWAP ; GO IF EQUAL. JP C, NOSWAP ; GO IF NEXT LARGER. LD C, (IX +1) ; GET NEXT TO C. LD (IX +1), A ; STORE CURRENT. LD (IX +0), C ; STORE NEXT. LD C, 1 ; SET CHANGE FLAG. NOSWAP: INC IX ; POINT TO NEXT. DJNZ LOOP1 ; DECREMENT LINE COUNT. BIT 0, c ; TEST CHANGE. JP NZ, LOOP ; GO IF CHANGE. ;LOOP2 JP LOOP2 ; DONE HERE. HALT .org 0040H TABLE: .DB 9,1,8,0,7,2,6,3,5,4 ; TABLE: .DB 'A','J','B','I','C','H','D','G','E','F' .END