00000            prog         START   0    
                  . inicializiraj sklad
00000  4B20D6                 JSUB    stackinit    
                  . beri stevke do newline (\n = 10), nato evalviraj stevilo
00003  050001                 LDX     #1    . zacnemo z 1 za lazje preverjanje pogoja v loop_e
00006  DB2112    loop         RD      device    . FA.dev
00009  29000A                 COMP    #10    . newline
0000C  33200D                 JEQ     evaluate    
0000F  1D0030                 SUB     #48    . ASCII koda za 0
00012  5790011C              +STCH    stevke,X    
00016  2D0FFF                 TIX     #-1    . primerjava TIX tu nima pomena
00019  3F2FEA                 J       loop    
0001C  750000    evaluate     LDT     #0    
                  . S hrani potence st. deset
0001F  6D0001                 LDS     #1    
                  . zmanjsaj X za 1
00022  AC10                   RMO     X,A    
00024  1D0001                 SUB     #1    
00027  AC01                   RMO     A,X    
                  . nalozi stevko, pomnozi s S, shrani oz. pristej rez. v T
00029  53A0F0    loop_e       LDCH    stevke,X    
0002C  9840                   MULR    S,A    
0002E  9005                   ADDR    A,T    
                  . povecaj potenco
00030  AC40                   RMO     S,A    
00032  21000A                 MUL     #10    
00035  AC04                   RMO     A,S    
                  . zmanjsaj X
00037  AC10                   RMO     X,A    
00039  1D0001                 SUB     #1    
0003C  AC01                   RMO     A,X    
                  . ce je X = 0, si prebral vse stevke
0003E  290000                 COMP    #0    
00041  372FE5                 JGT     loop_e    
                  . ce je rezultat nic koncaj sicer izracunaj fakulteto in preberi naslednjo vrstico
00044  AC50                   RMO     T,A    
00046  290000                 COMP    #0    
00049  33200D                 JEQ     HALT    
0004C  4B2055                 JSUB    fakulteta_r    
                  . izpisi rezultat na standard output
0004F  B440                   CLEAR   S    
00051  4B2008                 JSUB    izpis    
00054  B400                   CLEAR   A    
00056  3F2FA7                 J       prog    
00059  3F2FFD    HALT         J       HALT    
0005C                         END     prog    
                  
0005C  050001    izpis        LDX     #1    
0005F  AC04      loop_i       RMO     A,S    . kopiraj stevilo v S
                  . pridobi stevko, z mod 10
00061  25000A                 DIV     #10    
00064  21000A                 MUL     #10    
00067  AC05                   RMO     A,T    . odstevanec gre v T
00069  AC40                   RMO     S,A    
0006B  9450                   SUBR    T,A    
0006D  57A0AD                 STCH    stevke_r,X    
00070  2D0FFF                 TIX     #-1    . primerjava nima pomena
00073  AC40                   RMO     S,A    
00075  25000A                 DIV     #10    
00078  290000                 COMP    #0    
0007B  372FE1                 JGT     loop_i    
                  . izpis iz pomnilnika
0007E  AC10                   RMO     X,A    
00080  1D0001                 SUB     #1    
00083  AC01                   RMO     A,X    
00085  53A095    loop_ii      LDCH    stevke_r,X    
00088  190030                 ADD     #48    . pretvori v ascii
0008B  DD0001                 WD      #1    
0008E  AC10                   RMO     X,A    
00090  1D0001                 SUB     #1    
00093  AC01                   RMO     A,X    
00095  290000                 COMP    #0    
00098  372FEA                 JGT     loop_ii    
                  . izpis newline
0009B  01000A                 LDA     #10    
0009E  DD0001                 WD      #1    
000A1  4F0000                 RSUB        
                  
000A4  16100121  fakulteta_r  +STL     @stackptr    . link reg. na sklad
000A8  4B2041                 JSUB    stackpush    
000AB  0E100121              +STA     @stackptr    . parameter na sklad
000AF  4B203A                 JSUB    stackpush    
                  
000B2  290001                 COMP    #1    . robni primer n = 1
000B5  33200C                 JEQ     exit    
000B8  1D0001                 SUB     #1    . pripravimo podproblem
000BB  290001                 COMP    #1    . zaustavitveni pogoj
000BE  332003                 JEQ     exit    . ce je z. p. izpolnjen RSUB, v A je vrednost podproblema
000C1  4B2FE0                 JSUB    fakulteta_r    
                  
000C4  AC03      exit         RMO     A,B    . premakni vrednost podroblema v B
000C6  4B2039                 JSUB    stackpop    
000C9  02100121              +LDA     @stackptr    . nalozi parameter klicujoce funkcije ("starša")
000CD  9830                   MULR    B,A    . pomnozi, shrani v A
000CF  4B2030                 JSUB    stackpop    
000D2  0A100121              +LDL     @stackptr    
000D6  4F0000                 RSUB        
                  
000D9  0F2042    stackinit    STA     oldvalue    
000DC  B400                   CLEAR   A    
000DE  012043                 LDA     #stack    
000E1  0F203D                 STA     stackptr    
000E4  B400                   CLEAR   A    
000E6  032035                 LDA     oldvalue    
000E9  4F0000                 RSUB        
                  
000EC  0F202F    stackpush    STA     oldvalue    
000EF  B400                   CLEAR   A    
000F1  03202D                 LDA     stackptr    
000F4  190003                 ADD     #3    
000F7  0F2027                 STA     stackptr    
000FA  B400                   CLEAR   A    
000FC  03201F                 LDA     oldvalue    
000FF  4F0000                 RSUB        
                  
00102  0F2019    stackpop     STA     oldvalue    
00105  B400                   CLEAR   A    
00107  032017                 LDA     stackptr    
0010A  1D0003                 SUB     #3    
0010D  0F2011                 STA     stackptr    
00110  B400                   CLEAR   A    
00112  032009                 LDA     oldvalue    
00115  4F0000                 RSUB        
                  
00118  000000    temp         WORD    0    
0011B  FA        device       BYTE    X'FA'    
0011C  64        stevke       BYTE    100    
0011D  64        stevke_r     BYTE    100    
                  
0011E  000000    oldvalue     WORD    0    
00121  000000    stackptr     WORD    0    
00124  00....00  stack        RESW    1000    
