Version: 1.4.0
Date: 2017/11/22

This directory contains a C runtime library for the TI-990 computer. 
The components must be built and linked using the asm990 assembler and lnk990
linker in conjunction with the GNU C compiler with the TI-990 backend.
The floating point routines use the 990/12 hardware instructions.

Prerequisites:

GCC - 3.4.6 with the ti990.tar.gz applied (gcc-3.4.6-ti990-12.tar.gz).
asm990 - 2.4.4
lnk990 - 2.3.1

For random libraries:

lnked990 - 1.3.4
utils - 1.3.8

Minimum versions shown.

To build:

   $ make
   $ sudo make install

To build, and generate source and listings from the C files:

   $ make sources
   $ make
   $ sudo make install

To make random libraries, for lnked990 LIBRARY/SEARCH commands:

   $ make random

Operational notes:

1. The seek/tell functions only operate on relative record (random) files.
   Operation against a non-random file will return an EPERM status.


Miscellaneous files are:

   include/        - Standard headers
   libdnsci.a      - DNOS SCI library
   libdxsci.a      - DX10 SCI library
   Makefile        - Makes it
   math/           - libm.a sources
   README.txt      - This file
   softlib/        - libsoft.a sources (software floating point)
   tests/          - Test programs
   txdir/          - TX990/TXDS directory routines.
   xcct_dx10.prc   - DX10 SCI proc (default link mode)
   xcct_dnos.prc   - DNOS SCI proc (default link mode)
   xcctos_dx10.prc - DX10 SCI proc to execute program in OS mode
   xcctos_dnos.prc - DX10 SCI proc to execute program in OS mode

The SCI procs, xcct_dx10.prc and xcctos_dx10.prc, are used to execute the
resultant C programs under DX10. Use xcct_dnos.prc or xcctos_dnos.prc for DNOS.

The xcct_dx10.prc or xcct_dnos.prc passes arguments, stack and heap values to
the C program through the TCA and the program is linked with the crt0sci.o
module.

The xcctos_dx10.prc or xcctos_dnos.prc passes the stack and heap values through
the BID parameters and the program is linked with the crt0os.o module.
The module will prompt the user for program arguments.


The assembler files are:

   crt0os.s	- C startup for generic OS.
   crt0sa.s	- C startup for standalone mode.
   crt0sci.s	- C startup for DNOS/DX10 SCI.
   crt0tx.s	- C startup for TX990/TXDS.
   crte.s	- Last module in standalone mode.
   cvtflt.s	- Numeric floating point conversion routines.
   cvtint.s	- Numeric integer conversion routines.
   dirtime.s	- Convert directory timestamps to GETDATE SVC format.
   fritp.s	- Floating point stub for 990/12 mode.
   heapstk.s	- Default heap and stack sizes for standalone mode.
   localtime.s	- System time routines: localtime().
   longjmp.s    - Nonlocal jump to a saved context.
   rand.s	- Random number functions.
   setjmp.s	- Save context for a nonlocal jump.
   time.s	- System time routines: time().
   year2day.s	- System time routines: Common routine for time and localtime.


The GCC math routines, see GCC documentation for details:

   adddf3.s
   addsf3.s
   addsi3.s
   ashlsi3.s
   divdf3.s
   divsf3.s
   divsi3.s
   eqdf2.s
   eqsf2.s
   extendsfdf.s
   fixdfsi.s
   floatsidf.s
   gedf2.s
   gesf2.s
   gtdf2.s
   gtsf2.s
   ledf2.s
   lesf2.s
   ltdf2.s
   ltsf2.s
   modsi3.s
   muldf3.s
   mulsf3.s
   mulsi3.s
   nedf2.s
   negdf2.s
   negsf2.s
   nesf2.s
   subdf3.s
   subsf3.s
   subsi3.s
   truncdfsf.s
   udvmdhi3.s
   udvmdsi3.s


The C source files are:

   access.c
   atoi.c
   bcmp.c
   bcopy.c
   bzero.c
   calloc.c
   chartab.c
   clearerr.c
   close.c
   closedir.c
   creat.c
   ctime.c
   errlist.c
   fclose.c
   fcntl.c
   fdopen.c
   feof.c
   ferror.c
   fflush.c
   fgetc.c
   fgets.c
   fileno.c
   flushall.c
   fopen.c
   fprintf.c
   fputc.c
   fputs.c
   fread.c
   free.c
   freopen.c
   fseek.c
   ftell.c
   fwrite.c
   getc.c
   getchar.c
   getenv.c
   getpid.c
   gets.c
   gmtime.c
   gtty.c
   isalnum.c
   isalpha.c
   isascii.c
   isblank.c
   iscntrl.c
   isdigit.c
   isgraph.c
   islower.c
   isprint.c
   ispunct.c
   isspace.c
   isupper.c
   isxdigit.c
   lseek.c
   malloc.c
   maperr.c
   memchr.c
   memcmp.c
   memcpy.c
   memrchr.c
   memset.c
   mkdir.c
   mktemp.c
   open.c
   opendir.c
   perror.c
   printf.c
   putc.c
   putchar.c
   puts.c
   readbuffer.c
   read.c
   readdir.c
   rename.c
   rewinddir.c
   seekdir.c
   setpath.c
   sleep.c
   sprintf.c
   stat.c
   strcat.c
   strchr.c
   strcmp.c
   strcpy.c
   strerror.c
   strlen.c
   strncat.c
   strncmp.c
   strncpy.c
   strrchr.c
   stty.c
   telldir.c
   tmpfile.c
   tolower.c
   toupper.c
   unlink.c
   vsprintf.c
   writebuffer.c
   write.c
