Nucleus tools

The 'nucleus' of the Xtal system is a set of subroutines in the file aa.r which perform all of the system control functions. These functions are used frequently in all Xtal software and a good knowledge of them is essential for a program developer. The subroutines are named as AAnn where nn are sequence numbers. They are grouped into the following broad classifications:

General system control and line input/output AA00-AA09
Binary file input/output AA10-AA19
Master archive file input/output AA20-AA29
General file and move facilities AA50-AA59
Machine-specific time/date/Boolean routines AA70-AA74

The nucleus routines are either called internally or by non-nucleus routines. Reference by external software usuall involves the use of system 'convenience' Xtal macros. Here is a list of the nucleus subroutines supplied with Xtal3.2 with their macro names.

Routine Function Macro name
AA00 Calculation scheduler (Main program) -
AA01 Read and process line data as characters readline:
AA02 Convert char. data from AA01 to field data dcodefld:
AA03 Convert field data to character data (format) ncodefld:
AA04 Write and paginate line data as characters writeline:
AA05 Process, identify and strip an atom label label:
AA06 Error reporting and system exit iquit:
AA07 System common initialisation initcom:
AA08 Program initialisation and timing initprg:
AA09 Compare char string with table of char strings compchar:
AA10 Copy complete bdf from one name to another copybdf:
AA11 Write specific packets of a bdf writepkt:
AA12 Read and write specific packets of a bdf readwpkt:
AA13 Copy specific logical records from one bdf to another copyfile:
AA14 Sequential binary file device handler rewindbdf:
AA15 Read and construct directory packets of bdf indexpkt:
AA50 Open all files open*:
AA51 Move strings of real words movereal:
AA52 Move single packed word movpakwd:
AA53 Compare single packed word compakwd:
AA54 Read a single line of characters linein:
AA55 Move char string to char string movechar:
AA56 Move char string to real string movector:
AA57 Move real string to char string movertoc:
AA58 Convert case of char string upcase: / locase:
AA70 Get compute time in real seconds getcpus:
AA71 Get clock time as string 'hh:mm:ss' gettime:
AA72 Get date as numerical day, month and year getdate:
AA73 Pack integer into real word intpak:
AA74 Unpack integer from real word intunpak:

Here is a developers guide on how to use the system nucleus functions.