\ noForth -- an 30 maart 2021 \ jeroen : BBLSORT ( -- ) \ sorts array with n cells using bubblesort 1 medlen do \ put 1 on top of n & start outer do i 1+ 1 ?do \ start innner loop i 1- 2* tmpary + @ dup \ get value from 1st address & dup i 2* tmpary + @ \ get value from 2nd address swap over > if i 1- 2* tmpary + ! \ store 1st value at 2nd i 2* tmpary + ! \ store 2nd value at 1st else 2drop then loop -1 +loop ; \ an \ Met 2@ en 2! : BUBBEL ( lijstadres aantalcellen -- ) for dup i for dup 2@ < \ x1 > x2 ? if dup dup 2@ swap rot 2! then cell+ next drop next drop ; \ Zonder 2@ en 2! : SORTEER ( lijstadres aantalcellen -- ) for dup @ over \ ladr x1 adr i for \ ladr x1 adr ) >r r@ cell+ @ \ volgende element 2dup < if swap then \ grootste kleinste r@ ! \ kleinste naar lijst r> cell+ next ! \ het laatste element staat nu zeker goed next drop ; create LIJST 8 cells allot lijst 8 over ! cell+ 7 over ! cell+ 6 over ! cell+ 5 over ! cell+ -4 over ! cell+ 3 over ! cell+ 2 over ! cell+ 1 swap ! lijst 8 sorteer \ -------- voor noForth risc-v create SORT ( lijst #cellen -- ) chere >r v: also assembler chere cell+ , ( adr -- adr ) \ rangschik celpaar op adr. sun tos ) .mov moon 4 tos x) .mov sun moon >? if, tos ) moon .mov 4 tos x) sun .mov then, next v: previous does> drop for dup i for [ r> compile, ] cell+ next drop next drop ; \ -------- voor noForth msp430 create SORT ( lijst #cellen -- ) chere >r v: also assembler chere cell+ , ( adr -- adr ) \ rangschik celpaar op adr. tos ) sun mov 2 tos x) moon mov sun moon cmp >? if, moon tos ) mov sun 2 tos x) mov then, next v: previous does> drop for dup i for [ r> , ] cell+ next drop next drop ; \ <><>