title Routine zum LINEAREN SORTIEREN fuer CP/M name ('LINEAR') maclib base80 ; File : LINEAR.MAC ; ===== Externe Referenzen ==== ext curline,ass1,ass2,ass3,cmpxdm ext ptr.1,ptr.2 entry LINEAR ; Sortieren der Elemente ; Routine fuehrt den Linear Sort Algorithmus aus ; basierend auf einem Artikel in MC 1'81 ; LINEAR: ld hl,2 ; Index setzen ld (ptr.1),hl next: ld hl,(ptr.1) call ass1 ; Aktuelles Element laden ld hl,(ptr.1) dec hl ld (ptr.2),hl inner: ld hl,(ptr.2) call cmpxdm ; Zeilen vergleichen jr z,skip jr c,skip ld hl,(ptr.2) push hl call ass3 pop hl dec hl ld (ptr.2),hl ld a,l ; Test ob fertig or h jr nz,inner skip: ld hl,(ptr.2) inc hl call ass2 ; Wert zuruecksetzen ld hl,(ptr.1) inc hl ; Durchlauf ld (ptr.1),hl ld de,(curline) inc de or a sbc hl,de jr c,next ret end