echo START 0
start 	.LDCH txt
	.JSUB char
	.JSUB nl
	.LDA #txt
	.JSUB string
	.JSUB nl

	LDCH #12
	JSUB num

halt  J halt

.char
char	STB regB
	STT regT
	.STL regL
        STS regS .shranimo registre

	WD #1
  .obnovimo registre
	LDB regB
        LDT regT
	.LDL regL 
        LDS regS

	RSUB

.nl
nl      STB regB
	STT regT
        STS regS .shranimo registre

	LDCH newline
	WD #1
	LDX #1
	LDCH newline, X
	WD #1

	 .obnovimo registre
	LDB regB
        LDT regT 
        LDS regS

	RSUB

.string
string  STA regA
	STB regB
	STT regT
	.STL regL
        STS regS .shranimo registre

loop	LDB #1
	CLEAR A .da lahko comparamo z 0
	LDCH @regA
	COMP #0
	WD #1
	.add +1 to regA
	LDA regA
	ADD #1
	STA regA
	JGT loop	

        LDA regA  .obnovimo registre
	LDB regB
        LDT regT 
	.LDL regL
        LDS regS

	RSUB
.izpiše število zapisano v A na std izhod
num	STA regA
	STB regB
	STT regT
	STL regL
        STS regS .shranimo registre

	LDX #4 .X steje stevke, 4 je zadnji index arraya velikosti 5
	LDS #10 .za množenje/deljenje
	LDT #0x30 .za pretvorbo v ascii

loop2	RMO A, B 
	DIVR S, B .B = B/10
	MULR S, B .B= B*10
	SUBR B, A .A = ostanek
	ADDR T, A .pretvorimo A v ascii
	STCH digs, X .shranimo ascii ostanek

	.zmanjšamo X in primerjamo z #5
	RMO X, A
	SUB #1
	RMO A, X
	LDA #0
	COMPR X, A

	RMO B, A .premaknemo kar je še potrebno izračunati v A
	DIVR S, A .A je sedaj naslednja števka

	JEQ loop2
	JGT loop2

	.kličemo string za izpis
	LDA #digs
	JSUB string
	JSUB nl

        LDA regA  .obnovimo registre
	LDB regB
        LDT regT 
	LDL regL
        LDS regS

	RSUB


.digits za num
digs 	RESB 5 .0 bo prazna za lazje izpisovanje
	BYTE 0 .konec števke

.txt
txt	BYTE C'hi'
	BYTE 0

.constante
newline BYTE 0x0D
	BYTE 0x0A

.registri
regA     RESW  1
regB     RESW  1
regT     RESW  1
regS     RESW  1
regL     RESW  1


 END start