#=============== # Vstupni bod #=============== ?reg 21 # X: hodnota "__holdrand" # Y: pozadovany pocet pseudonahodnych cisel x==0? # if(__holdrand == 0) inc x # __holdrand = 1; sto 0 x<>y cf 10 # radit vzetupne x>=0? # opravdu? gto 4 # ano sf 10 # ne, setupne chs lbl 4 dec x # (pro porovnani) x>0? # zadan pocet < 1 ? gto 5 # ne clx # (potlaceni "stack-lift") 4 # ano, misto toho 5 lbl 5 inc x # (puvodni/spravna hodnota) sto z # Z: pozadovany pocet x<>y lbl 0 clx # X: 0 --> index registru 0 xeq 9 # X: pseudonahodne cislo sto @y # ulozit dsz y # jeste? gto 0 # ano, dalsi # # ne, hotovo rcl z # X: pozadovany pocet ipush 1 sto .0 # schovat xeq 2 # vypis vsech vygenerovanych hodnot rcl .0 dec x sgn x<=0? # je neco k serazeni? rtn # ne rcl .0 1 # X: 1 --> index (adresa) zacatku seznamu # # Y: pozadovany pocet xeq 10 # seradit rcl .0 # X: pozadovany pocet pop xeq 2 # vypis vsech serazenych hodnot rtn #==================== # Zobrazeni hodnot #==================== # X: index/adresa posledniho prvku v seznamu lbl 2 x<>y lbl 3 clx # (potlaceni "stack-lift") rcl @y # ulozena hodnota pse # zobrazit dsz y # jeste? gto 3 # ano, dalsi rtn # ne, hotovo