DataMuseum.dk

Presents historical artifacts from the history of:

Jet Computer Jet80

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Jet Computer Jet80

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦ba7b49dce⟧ TextFile

    Length: 3200 (0xc80)
    Types: TextFile
    Names: »EXPFCT.SRC«

Derivation

└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80)
    └─ ⟦this⟧ »EXPFCT.SRC« 

TextFile

;   intrinsic function for e to the x
;
	NAME EXPFCT
	ENTRY EXPFCT,L133
	EXT ABS,FPSQR,TRUNC
	INCLUDE DEFLT.SRC
	INCLUDE FCTMAC.SRC
;
;
;
L118	EQU	FPSQR
L115	EQU	ABS
L129	EQU	TRUNC
;
;
; function exp( x: real ):real;
; const	yc = 0.34657359;
; 	a0 = 12.015017;
; 	a1 = -601.80427;
; 	b1 = 60.090191;
; 	log2e = 1.442695;
; var	t1, ty, tn: real;
; 	t2, i: integer;
; begin
L133:
expfct:
FC2285
	ENTR	D,2,16
;     t1 := x * log2e;
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	LXI	B,8
	DADD	B
	LXI	B,4
	LDIR
	LXI	H,348
	LXI	D,21789
	PUSH	H
	PUSH	D
	MULT	D,-4
	LXI	H,3
	DADD	S
	XCHG
	PUSH	IX
	POP	H
	XCHG
	LXI	B,4
	LDDR
	POP	H
	POP	H
;     t2 := trunc( t1 );
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	DCX	H
	DCX	H
	DCX	H
	LXI	B,4
	LDIR
	CALL	L129
	MOV	-14(IX),D
	MOV	-15(IX),E
;     tn := 1.0;
	LXI	H,320
	MOV	D,A
	MOV	E,A
	PUSH	H
	PUSH	D
	LXI	H,3
	DADD	S
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-4
	DADD	B
	XCHG
	LXI	B,4
	LDDR
	POP	H
	POP	H
;     for i := 1 to abs( t2 ) do tn := tn + tn;
	MOV	-12(IX),A
	MVI	-13(IX),1
	PUSH	IX
	POP	H
	LXI	B,-12
	DADD	B
	PUSH	H
	MOV	L,-15(IX)
	MOV	H,-14(IX)
	CALL	L115
	XTHL
FC2348
	MOV	D,M
	DCX	H
	MOV	E,M
	XTHL
	PUSH	H
	GE	D,0
	JNC	FC2349
	inr	-4(x)	;multiply by 2 by incrementing the exponent
	POP	H
	XTHL
	INR	M
	INX	H
	JRNZ	FC2369
	INR	M
	JV	FC2370
FC2369
	JMP	FC2348
FC2349
	POP	D
FC2370
	POP	D
;     if t2 < 0 then tn := 1.0 / tn;
	MOV	L,-15(IX)
	MOV	H,-14(IX)
	MOV	D,A
	MOV	E,A
	LESS	D,0
	JNC	FC2372
	LXI	H,320
	MOV	D,A
	MOV	E,A
	PUSH	H
	PUSH	D
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-7
	DADD	B
	LXI	B,4
	LDIR
	FDVD	D,-4
	LXI	H,3
	DADD	S
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-4
	DADD	B
	XCHG
	LXI	B,4
	LDDR
	POP	H
	POP	H
FC2372
;     ty := (t1 - t2) * yc;
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	DCX	H
	DCX	H
	DCX	H
	LXI	B,4
	LDIR
	MOV	L,-15(IX)
	MOV	H,-14(IX)
	PUSH	H
	CVTF	B
	DSUB	D,-4
	LXI	H,-168
	LXI	D,-18165
	PUSH	H
	PUSH	D
	MULT	D,-4
	LXI	H,3
	DADD	S
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-8
	DADD	B
	XCHG
	LXI	B,4
	LDDR
	POP	H
	POP	H
;     exp := tn * sqr( 1.0 + 2.0 * ty / (a0 - ty + (a1 / (b1 + sqr( ty ) ) ) ) );
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-7
	DADD	B
	LXI	B,4
	LDIR
	LXI	H,320
	MOV	D,A
	MOV	E,A
	PUSH	H
	PUSH	D
	LXI	H,576
	MOV	D,A
	MOV	E,A
	PUSH	H
	PUSH	D
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-11
	DADD	B
	LXI	B,4
	LDIR
	MULT	D,-4
	LXI	H,1120
	LXI	D,7873
	PUSH	H
	PUSH	D
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-11
	DADD	B
	LXI	B,4
	LDIR
	DSUB	D,-4
	LXI	H,2763
	LXI	D,14780
	PUSH	H
	PUSH	D
	LXI	H,1656
	LXI	D,11821
	PUSH	H
	PUSH	D
	LXI	H,-4
	DADD	S
	SPHL
	XCHG
	PUSH	IX
	POP	H
	LXI	B,-11
	DADD	B
	LXI	B,4
	LDIR
	CALL	L118
	DADD	D,-4
	FDVD	D,-4
	DADD	D,-4
	FDVD	D,-4
	DADD	D,-4
	CALL	L118
	MULT	D,-4
	LXI	H,3
	DADD	S
	XCHG
	PUSH	IX
	POP	H
	LXI	B,15
	DADD	B
	XCHG
	LXI	B,4
	LDDR
	POP	H
	POP	H
; end;
	EXIT	D,4
;
«eof»