|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 1408 (0x580) Types: TextFile Names: »TRAN9511.SRC«
└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80) └─ ⟦this⟧ »TRAN9511.SRC«
MODULE TRAN9511; EXTERNAL PROCEDURE @ERR(AN_ERROR:BOOLEAN; ERRNUM:INTEGER); EXTERNAL PROCEDURE @AMD(FUNC:INTEGER;VAR ARG:REAL;VAR STATUS:INTEGER); æTHE PROCEDURE @AMD,INTERFACES TO THE AMD9511 ARITHMETIC PROCESSING UNIT (APU). THE FIRST ARGUMENT IS THE FUNCTION CODE (AND IS STRAIGHT FROM THE AM9511 LITERATURE). THE SECOND IS THE ADDRESS OF ARG, A REAL VARIABLE, THE FUNTION ARGUMENT IS IN ARG, AND THE RESULT IS RETURNED IN ARG. THE THIRD ARGUMENT IS THE ADDRESS WHERE THE APU STATUS IS RETURNED.å FUNCTION SIN(ARG:REAL):REAL; æSINE FUNCTIONå VAR STATUS:INTEGER; BEGIN @AMD($02,ARG,STATUS); SIN:=ARG; END; FUNCTION COS(ARG:REAL):REAL; æCOSINE FUNCTIONå VAR STATUS:INTEGER; BEGIN @AMD($03,ARG,STATUS); COS:=ARG; END; FUNCTION EXP(ARG:REAL):REAL; æE TO THE X FUNCTIONå VAR STATUS:INTEGER; BEGIN @AMD($0A,ARG,STATUS); IF (STATUS & $1E) = $18 THEN BEGIN @ERR(TRUE,7); (* TRANCENDENTAL OUT OF RANGE *) END; EXP:=ARG; END; FUNCTION LN(ARG:REAL):REAL; æNATURAL LOGARITHM FUNCTIONå VAR STATUS:INTEGER; BEGIN @AMD($09,ARG,STATUS); IF (STATUS & $1E) = $8 THEN BEGIN @ERR(TRUE,7); END; LN:=ARG; END; FUNCTION ARCTAN(ARG:REAL):REAL; æINVERSE TANGENT FUNCTIONå VAR STATUS:INTEGER; BEGIN @AMD($07,ARG,STATUS); ARCTAN:=ARG; END; MODEND. «eof»