; BUBBLE SORT TO DISPLAY ; .org 0000h LD SP, 0080h ; ADDED FOR TESTING PURPOSES. LOOP: LD IX, 0040h ; FIRST LINE, MIDDLE. LD DE, 64 ; LINE INCREMENT. LD B, 15 ; NUMBER OF LINES. LD C, 0 ; CHANGE FLAG. LOOP1: LD A, (IX +0) ; GET ENTRY. CP (IX +64) ; TEST NEXT. JP Z, NOSWAP ; GO IF EQUAL. JP C, NOSWAP ; GO IF NEXT LARGER. LD C, (IX +64) ; GET NEXT TO C. LD (IX +64), A ; STORE CURRENT. LD (IX +0), C ; STORE NEXT. LD HL, 0 ; DELAY. LOOPD: INC HL BIT 7, H ; TEST FOR COUNTDOWN. JP Z, LOOPD ; GO FOR DELAY. LD C, 1 ; SET CHANGE FLAG. NOSWAP: ADD IX, DE ; POINT TO NEXT LINE. DJNZ LOOP1 ; GO IF CHANGE. 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