	opt	 l-
* decl.s
        include  OpenDos.i

        move.l   #12345678,d2 	        ;Testzahl
  	lea      buffer,a0              ;Ergebnis-Puffer
	bsr	 decl
	jsr	_LVOOutput(a6)		;Hole Output-Handle
	move.l	d0,d1			;Ausgabe-Handle
	move.l	#buffer,d2    		;Address Text
	move.l	#10,d3			;Laenge Text
	jsr	_LVOWrite(a6)		;Funktion "Schreiben"
        move.l  a6,a1                   ;DOS-Lib-Basis
	move.l  _SysBase,a6		;Basis Exec
        jsr     _LVOCloseLibrary(a6)	;Funktion "Schliessen"
fini	rts				;Return zum CLI

* Konvertiere d2.l -> Dec-String ab (a0)
decl	clr.b	d3			;0 = positive Zahl
	tst.l	d2			;Zahl positiv
	bpl	plus			;wenn so
	neg.l	d2			;sonst wandeln
	move.b	#1,d3 			;markiert negative Zahl			
plus	moveq	#7,d0			;8 Digits konnvertieren
	lea	buffer+1,a0		;+1 f. Platz f. Vorzeichen
	lea	pwrof10,a1		;Tabelle
next	moveq	#'0',d1			;Fange mit Digit '0' an
dec	addq	#1,d1			;Digit + 1
	sub.l	(a1),d2			;noch drin?
	bcc.s	dec			;wenn so
	subq	#1,d1			;korrigiere Digit
	add.l	(a1),d2			;den auch
	move.b	d1,(a0)+		;Digiit -> Buffer
	lea	4(a1),a1		;next power_10
	dbra	d0,next			;for 8 Digits
	lea	buffer,a0		;Nun 0-Unterdr. u. Vorz.
rep	move.b	#' ',(a0)+		;fuehrende Nullen
	cmp.b	#'0',(a0)		;  durch Blanks
	beq	rep			;    ersetzen
	tst.b	d3			;war Zahl negativ?
	beq	done			;wenn nicht
	move.b  #'-',-1(a0)		;sonst - vorsetzen
done	rts

pwrof10	dc.l	10000000
	dc.l	1000000
	dc.l	100000
	dc.l	10000
	dc.l	1000
	dc.l	100
	dc.l	10
	dc.l	1

dosname	 dc.b	'dos.library',0
	 cnop	0,2
buffer   ds.b   9
	 dc.b	10	;tricky LF
       


