.title float Minimal floating point package for C .enabl lc,gbl .list meb,bex ; ; Note: standard PDP-11 calling sequence -- C usage is ; ; call(&fadd, 3, &dst, &src1, &src2); ; call(&fsub, 3, &dst, &src1, &src2); ; call(&fmul, 3, &dst, &src1, &src2); ; call(&fdiv, 3, &dst, &src1, &src2); ; int = call(&ffix, 1, &src); ; call(&ffloat, 2, &dst, &int); ; call(&fsin, 2, &dst, &src); ; call(&fcos, 2, &dst, &src); ; ; Note: sin and cos presuppose the Fortran IV-Plus support library. ; .macro oper op setd ldd @4(r5),r0 op @6(r5),r0 std r0,@2(r5) rts pc .endm oper .psect .data. argbuf: .word 1 argloc: .word 0 .psect .prog. fadd:: oper addd fsub:: oper subd fmul:: oper muld fdiv:: oper divd ffloat:: setd seti ldcid @4(r5),r0 std r0,@2(r5) rts pc ffix:: setd seti ldd @2(r5),r0 stcdi r0,r0 rts pc fsin:: setd ldd @4(r5),r0 call $$dsin std r0,@2(r5) rts pc fcos:: setd ldd @4(r5),r0 call $$dcos std r0,@2(r5) rts pc .end