;
                ; Programmodul 'XICALC' zur Aufbereitung von Daten
                ; fuer die anschliessende Berechnung von sin(x) / cos(x)
                ;
                ; IN	reg de : Winkel x
                ;
                ; OUT	var x1bog : Winkel in Bogenmass
                ;	var x2bog : x1bog^2
                ;	var x4bog : x1bog^4
                ;	var x6bog : x1bog^6
                ;	var x8bog : x1bog^8
                ;
                ; REG	a,f,b,c,d,e,h,l
                ;
                
                	extrn	multi
                
 2000           ram	equ	2000h		; Festlegung des Variablenblocks
 2000           x1bog	equ	ram		;   im RAM
 2002           x2bog	equ	x1bog + 2
 2004           x4bog	equ	x2bog + 2
 2006           x6bog	equ	x4bog + 2
 2008           x8bog	equ	x6bog + 2
 C910           pi2	equ	51472		; Konstante pi2 := PI * 2^14
                
 0000 7A       		ld	a,d		; Reduktion des Winkels x auf
 0001 E63F     		and	00111111b	; 0 <- x < 90  [Grad]
 0003 57       		ld	d,a
                
 0004 0110C9   		ld	bc,pi2		; Umrechnung von x [Grad]
 0007 CD0000  		call	multi		;    in x1bog [Bogenmass]
 000A CB14     		rl	h		; Division <de>:=<dehl>/2^14
 000C CB13     		rl	e
 000E CB12     		rl	d
 0010 CB14     		rl	h
 0012 CB13     		rl	e
 0014 CB12     		rl	d
 0016 ED530020 		ld	(x1bog),de	; Ergebnis in x1lbog abspeichern
                
 001A 42       		ld	b,d		; x1bog quadrieren
 001B 4B       		ld	c,e
 001C CD0000  		call	multi
 001F ED530220 		ld	(x2bog),de	; Ergebnis in x2bog abspeichern
                
 0023 42       		ld	b,d		; x2bog quadrieren
 0024 4B       		ld	c,e
 0025 CD0000  		call	multi
 0028 CB14     		rl	h		; Division <de>:=<dehl>/2^15
 002A CB13     		rl	e
 002C CB12     		rl	d
 002E ED530420 		ld	(x4bog),de	; Ergebnis in x4bog abspeichern
                
 0032 CD0000  		call	multi		; x2bog * x4bog berechnen
 0035 CB14     		rl	h		; Division <de>:=<dehl >/2^15
 0037 CB13     		rl	e
 0039 CB12     		rl	d
 003B ED530620 		ld	(x6bog),de	; Ergebnis in x6bog abspeichern
                
 003F CD0000  		call	multi		; x2bog * x6bog berechnen
 0042 ED530820 		ld	(x8bog),de	; Ergebnis in x8bog abspeichern
                				; alle xibog vorbereitet
                
 0046 C9       		ret
Bild 4. XICALC bereitet vor
[Hier als Z80-Quelldatei]