;	Version history has been removed from the source members and located
;	here.
;	--------------------------------------------------------------------

;   VERSION 3.11
    
;   1] Added 2 more items to General Ledger 
;       Franked Dividends
;       Asset History
;   2] Keep fixing bugs wherever they are as they come up
    
;	VERSION 3.10

;	**************************************************************************
;	Installed WINE on Linux. Installed X64DBG on WINE and it's awesome
;	far better than windbg and will happily work with languageONE. 
;	As languageONE is a windows console apllication it works perfectly on WINE
;	Soo. New environment for the WINDOWS version of languageONE.
;	No more dual booting or Virtualising
;	This was oppurtune as the reWriter has been rewritten (see below)
;	**************************************************************************

;	reWrote the reWriter - will now Tokenise the input and manipulate that.
;
;	1a] ??? (DID YOU) Mandate the use of brackets for Subroutine/Function parameters
;	1b] Mandate the use of Begin/end RAW for all except the simplest of %define/%assign
;			%define c_Size c_NoOfRecords * ( c_RecordSize + 9 ) -> being an example
;
;	2] Removed the Keyword processing (in the reWriter) for TABLES to 
;		simplify the code. Only moving IN and OUT of a TABLE (like ARRAYS)
;		and the use of IF/_IF/_OR/_AND/BEGIN_TEST/WHEN/_WHEN/
;		DISPLAY/DISPLAY_AT/CURSOR
;	3] Converting NASM macros to NASM macros does not make sense. languageONE.ASM
;		is supposed to make the assembler invisible. It was removed
;	4] Remove any attempt to "Compile" anything (@Words_Copy/pad). Pretty convoluted
;		code and in the end I don't think the executable would be any faster
;
;	a] (LINUX) Corrected small error STDIO/Accept_At_Process
;	b] V1.14 as an application was a bit buggy. Fixed a few of them
;	c] (LINUX/WINDOWS) V3.06 introduced a bug in COMMON/DAYSFROMDATE. Corrected it.
;	d] (LINUX/WINDOWS) COMMON/DATE routines would not return the slashes for dates. Corrected it.
;	e] (WINDOWS) returning Command Line was stuffed. Fixed it.
; f] (WINDOWS) weird bug in V3.10 where MASM mistook a variable for a constant


;	VERSION 3.09
;
;	1] Commented all reference to DEBUG (no longer necessary)
;	2] LMACROS.CPY StringToRecord/RecordToString - needed to default to 1 (start position) when field
;				is not qualified
;	3] COMMON.LIB - RUN_INTERACTIVE/RUN_BATCH replaced w_RecordBuffer with w_Command. w_RecordBuffer
;				could at anytime be filled with junk.
;	4]	n =+ 1 is not working so have changed all to n = n + 1 and will fix in restructure of reWriter

;	VERSION 3.08 - Lazarus/FreePascal version of General Ledger

;	*** NOTE That @fltk was restructured for this version but then I
;			went on to do the rewrite for Lazarus-FP
;
;	a]	WINDOWS:-TABLES.LIB was updated for V3.06 but I had missed some of the code from Linux/Quicksort.
;			It has been corrected n this version but still remains under the V3.06 moniker
;
;	b]	WINDOWS:-V1.19 was updated as the field holding the filehandle (i_fileHandle) was too small
;			went from 9(12) to 9(18). Also applied this to the Linux version to keep them insync
;	c]	Cut/Paste Error in V3.07 in B02_Process -> exit.sub B01_Process
;	d]	LMACROS.CPY/BEGIN_RAW + END_RAW was incrementing _STOP:
;			You can't do that in .data or .bss 
;			removed the code as BEGIN & END RAW are only to tell the reWriter not to change anything
;	e]	WINDOWS:-FILES FILESCOPY tested byteCount as a qword, should have been dword

;	1]	Reconfigured langaugeONE directory structure and began using @lazarus-fp and SUBLIME TEXT
;			Originally I had rejigged JEDIT but JEDIT seems to be quite buggy on Windows with the
;			new Dark Mode I had setup for Linux.
;			
;			This led to the build macros being altered to suit the new structure and how things work
;			in SUBLIME TEXT
;
;	2]	Removed previous attempt to save and restore registers for FLTK (and now LAZARUS).
;			It now saves everything (rax->r15) on entry and restores them on exit. Functions setup for
;			direct access from another program move in the parameters in accordance with the OS's ABI
;			and they do not save RAX as this is what is returned.
;
;	3]	Had to rename STOP (the debug field) to _STOP	 as lazarus-fp seemed to use a field with that name
;

;	VERSION 3.07 - FLTK General Ledger continued
;
;	a]	Small error in the reWriter were tabs occured instead of spaces
;			ie IF\tabI = J
;	b]	Small error in TABLES.Sort where Start Position was incorrect


;	VERSION 3.06 - FLTK General Ledger/Reconfigure

;	1]	Reconfigured langaugeONE directory structure and began using Project Viewer
;			in Jedit. This led to the build macros being altered to suit the new structure
;	2]	Learnt while trying out WINDBG that I just need "watch (int)STOP" to stop
;			the debugger so I have reconsidered the begug flag so that "inc qword[STOP]" starts
;			each macro (no real overhead) and the debug flag is used to display messages when
;			entering and exiting a SUB/FUNCTION
;			NOTE:- While learning WINDBGX I managed to get it to act like VisualStudio using
;				F10/F11 so the watch STOP is not necessary. Left the code there anyway.
;				In actual fact in some program F10/F11 failed so the watch STOP is a good fallback
;	3]	Introduced ALIAS's for data fields (1 Alias per field).
;			@InsertNumber {n_Alias,n_RealName},0,'9'
;			@Insertword {w_Alias,w_RealName},11,'Hello World'
;			This was introduced because of line length problems with MASM but seems like a 
;			good feature anyway. 
;	4]	Introduced the @BEGIN_RAW/@END_RAW macros and moded the reWriter to suit
;			This marks raw code the reWriter and helps when the reWriter does not do the
;			conversion to MASM as well as it could
;
;	a]	Removed DEBUG from Arrays_if cuz it calls IF anyway
;	b]	Added an _UBOUND to TABLES
;			Tables.Sort will acknowledge UBOUND so that partially full tables can be 
;			sorted
;	c]	moded FILES.LIB so that when reading a CSV file the quoted alpha fields
;			can be shorter or longer than the languageONE fixed length field
;	d]  Cleared ERROR_CODE at beginning of _DAYSFROMDATE (COMMON.LIB)
;	e]	Fixed small bug in NUMBERS.LIB/_FROMALPHA should have compared CL and not RCX 
;			for a signed field
;	f]	COMMON:_DAYSFROMDATE.MonthLoop - decremented RCX just prior to entering the loop.
;			with a month of 1 (January) rcx went -ve
;	g]	LMACROS.CPY:BEGIN.FUNCTION  	mov QWORD[d%1],0 should follow the entry label not precede
;	h]	Added a field [returnC] in BEGIN.SUB and END.SUB to facilitate C++ function calls 
;			directly. Defined in BEGIN.MATRIX


;	VERSION 3.05 - Interface to FLTK
;	
;	a]	Fixed setup error in NUMBERS.LIB/_GETSCALE/.loop1
;	b]	created _Info CntrBlk in @NUMBERS and moded NUMBERS.LIB to suit
;	c]	Removed DEBUG macro and coded in each macro
;	d]	Push/Pop in SUB-Routines coded in 3.04 for fltk doesn't work if 
;		sub routines is passed parameters. Recoded and introduced fltkFlag
;		Now a fltk program required the following coded following begin.instructions
;		LINUX	-> %define fltk 1
;		WINDOWS	-> fltk TEXTEQU 	 


;	VERSION 3.04 - Interface to FLTK
;	1] Changed entry point _start to _l1	
;	2] BEGIN_SUB Push all registers and store fltk_Params
;		 END_SUB Pop all registers
;
;	A] Removed "*" to denote overflow in NUMBERS.LIB
;		It screws things up for FILES/TABLES etc
;

;	VERSION 3.03
;	0] Developed MATHS.PKG
;	1]	Set up a default for the @TERMINATE macro - else it would not terminate
;	2]  Fixed a bug in languageONE.ASM when processing the @USING clause
;	3]  Fixed a bug in languageONE.ASM when processing the default picture

;	4]  Added checking in languageONE.ASM for pictures that are > 19 digits
;		or > 18 decimal places (Scale goes -ve so it's unusable)
;	5]  Added the ability for languageONE.ASM to look into ".PKG' files
;	6]	NUMBERS.LIB - Fairly major rework
;		a] Included =+, =-, =*, =/ for Fixed Point variable
;		b] If MULTIPLY blows out in size then BCD processing is invoked
;	7]  Modded languageONE.ASM for =* etc for fixed point numbers
;	8]  Modded LMACROS.CPY to clear Function Return value on entry
;	9]	Modded NUMBERS.LIB to display an "*" if the numbers is > the picture
;	a]	Modded LMACROS.CPY for INTEGER_MUL overflow
;	b]	Modded LMACROS.CPY so that integer divide returns the REMAINDER (optional 3rd parameter)
;	c]	(LINUX) Fixed a bug in STDIO.LIB. Need to clear the Direction Flag in _CUrSOR
;	d]	Fixed a bug in languageONE.ASM concerning BEGIN & END ASSEMBLER
;		also one I noticed where PR_Line was coded instead of PR_Type

;	VERSION 3.02
;	1]	BOTH:		Adding FUNCTION sytax to the reWriter
;					I = tstArray{1,1,1}						--> @Arrays_Get tstArray,{1,1,1},I
;					tstArray{1,1,1} = I						--> @Arrays_Put tstArray,{1,1,1},I
;					tstArray{1,1,1} = tstArray{1,1,2}		--> @Arrays_Eq tstArray,{1,1,1},tstArray,{1,1,2}
;					tstArray{1,1,1} =+ I					--> @ARRAYS_Add tstArray,{1,1,1},I
;					tstArray{1,1,1} =- I					--> @ARRAYS_Sub tstArray,{1,1,1},I
;					tstArray{1,1,1} =* I					--> @ARRAYS_Mul tstArray,{1,1,1},I
;					tstArray{1,1,1} =/ I					--> @ARRAYS_Div tstArray,{1,1,1},I
;					If tstArray{1,1,1} !< tstArray{1,1,2}	--> @ARRAYS.If SmallArray1 {1,1,1},=,SmallArray2,{1,1,1}
;	2]	BOTH:		Added Array type sytax for integers
;					I =+ 1	I =- 1	I =* 1	I =/ 1

;	VERSION 3.01
;	1]	BOTH:		Rewrote FUNCTIONS. Now have BOOLEAN FUNCTION (Existing)
;					and NUMERIC FUNCTIONS (New)
;	2]	BOTH:		New FUNCTIONS can now pass numbers via the @USING macro
;	3]	BOTH:		Altered SUBS to follow FUNCTIONS - can now be passed numbers
;	4]	BOTH:		Coded the @SAVING/@RESTORE macros
;	5]	BOTH:		Recoded integer macros to allow 'QWORD[?] - enables local variables 
;					and Array EQ/ADD/SUB etc to use them
;	6]	reWRITER	Added to it so that new functions can use fixedpoint literals properly
;	7]	WINDOWS:	reWriter (languageONE.ASM) better handling of %DEFINE with calculated value
;					ie. %DEFINE c_Two 2
;						%DEFINE c_Ten 2 * 4 + c_Two
;	8]	WINDOWS:	Corrected an introduced bug in V1.16 whereby output from the
;					forked process was not being displayed 
;	9]	WINDOWS:	Date_Timer was not coded. Now it is.
;	A]	WINDOWS:	V2.13 - thought I'd fixed the bug but maybe did it on .ASM instead of .ONE
;					M_Target needs to be big enough 9(12) to fit a 64bit address
;	B]	LINUX:		STDIO - needed to be reporting the TAB key
;	C]	BOTH:		Modify ".END" includes to have "section .text"
;					this will alow code to be placed anywhere in the source file
;					which is convenient for coding Functions
;	D]	BOTH:		Renamed %FP_DEFAULTPICTURE as FP_DEFAULTPICTURE
;					Used now as a %define so macros can also use it
;	E]	WINDOWS:-	*** FUNCTIONS must be coded before there use ***
;					Might change the reWriter to check for this 
;
;	********************************************************************
;	LANGUAGEONE V3.00
;	********************************************************************
;
;	1]	Remove Windows Debugging from languageONE.ASM
;			This reverts back to V2.12 then add the E_1_Compile stuff frm V2.14 back
;	2]	LMACROS.CPY - Removed GLOBAL debug statements
;	4]	Renamed all the new Keyboard keys (ARROWUP/FUNCTIONKEY1 etc) so as to be preceded by a 'c_'
;			It should always have been like that. Changes to STDIO/LMACROS.PKG and LMENUS.PKG
;		Renamed STDIO video attributes (ie c_RedFG) to v_ (ie v_RedFG) cuz they are languageONE words
;			and although they are constants they behave differently
;	5]	CONSTANTS.INC had duplicates of $stringtorecord/$recordtostring. Removed them.
;	6]	Altered the include in src/* from "..\include\*" to "include\*"
;			This means the LIB's have to be assembled in the languageONE directory but that's okay
;			and brings the Linux and Windows version inline. 
;	7]	Change name of $extract to $literalStorage (easier to understand)
;	8]	Corrected bug in WORDS.FIND
;	9]	Removes "SPACES(x)". Can easily be achieved with {w_Spaces,1,x}
;	10]	Not tested but it appears there was a bug in .AND where _IN was coded instead of _NIN
;	11] Not tested but .OR/.AND seemed to have a duplicate $replaceSymbols macro
;	13] removed README_X64DBG.*
;	14] removed l.makeTinyCore - never really kept up to date
;	15] Renamed "AlternativeB" constants in CONSTANTS.INC
;	16] Corrected bug in languageONE.ASM->B_1_2_Synonyms Coded an exit if UBOUND is zero (No synonyms)
;	17] All files functions ($read,$write etc) must be preceeded with a '$' for MASM
;	18] Corrected bug in B_1_3_1_StoreDataDefinitions. DN_Length was incorrect because w_Temp30
;			was not initialised
;	19] Corrected bug in XTABLES.LIB/_XOFFSET - needed to reference @tableSize(r_Table) NOT w_BottomOfBSS
;	20] languageONE.ASM - B_1_3_Load_DN_Table - @BEGIN_FUNCTION was using ND_ rather than _DN
;	21] languageONE.ASM - B_1_4_Load_ND_Table was (purposely) not setting DN_Length but needs to
;		for WORD function
;	22] Synonyms were not case sesitive
;	23]	languageONE - GetStats fix
;	24] Modified NUMBERS/Numbers_eq. When converting a string to a number, set RETURN_CODE to 9 
;		if there are alpha characters in the string
;	25] Bug in he reWriter. Did not set DN_Langth of the DataName Table when file name was a variable
;	26] Implimented Sysnonyms as an include file
;	27] languageONE.ASM-> D_4_3_CompressLine - it was compressing Literals of spaces

;	********************************************************************
;	LANGUAGEONE V2.??
;	********************************************************************

;	LANGUAGEONE V2.14

;	NEW
;	---
;	1] - Moded languageONE.ASM/E_1_Compile
;		 This now allows any unqualified text moves to be compiled (not just equal length fields)
;	2] - Altered XTABLES.LIB to return INVALIDKEY for a deleted record during a search
;	3] - Fixed bug in XTABLES.LIB - FROMRECORD overwritting the index address - should only do i
;		 on a new record else it can screw up if there has been a sort
;	4] - Reworked V1.16.ONE and screen
;			languageONE GUI compile - it's simpler now 
;	5] - WWW.LIB - code now handles a HTTP request that comes in with a separate Header and Body
;		 	this was discovered when using OPERA web browser
;	6] - Removed GUI templates
;	7] - Corrected languageONE.ASM to use proper case for "file"_NAME


;	MODIFIED
;	--------
;	1] - Corrected error in languageONE.ASM/E_1_Compile
;		 was missing the 3rd token if hits End Of Line 
;	2] - Corrected error in V2.02.ONE. Cannot zero out deleted record or Search will not work


;	LANGUAGEONE V2.13

;	NEW
;	---
;	1] - Enhancements for Windows debugging
;		 Coding and exporting Global symbols
;	
;	2] - Developed LCURSES.PKG and LMENUS.PKG - written in raw languageONE - contains the following routines
;
;        LCURSES
;		     lcurses.HLine
;		     lcurses.VLine
;		     lcurses.Box
;		     lcurses.MenuItems
;       LMENUS
;            lmenus.MenuLoad
;		     lmenus.Menu
;		     lmenus.Call
;		
;		a) Modified STDIO.LIB/w_STDIO.LIB to return RETURN/FUNCTIONKEYS/ALT/ARROWS/ESCAPE/BACKSPACE/NULL
;		b) RETURN/FUNCTIONKEYS/ALT/ARROWS/ESCAPE/BACKSPACE/NULL available thru CONSTANTS.INC	
;		c) Renamed the following fields for clarity
;			c_LeftMiddle	-> c_MiddleLeft
;			c_RightMiddle	-> c_MiddleRight
;			c_BottomMiddle	-> c_MiddleBottom
;			c_TopMiddle		-> c_MiddleTop
;		d) Added
;			c_HideCursor
;			c_ShowCursor
;
;	3] - Reworked the RUN macro
;			Originally used to run a batch program (with redirected stdin/stdout/stderr) has now 
;			been enhanced to run an interactive shell
;			The RUN macro counts the number of paramaters and calls _RUN_INTERACTIVE if passed 1
;			parameter and _RUN_BATCH if passed 2 parameters.
;
;	4] - Deprecated the REPEAT <label> statement as this is easily done with
;			REPEAT.WHILE 1 = 1
;			The exitRepeat flag is now set by the EXIT.REPEAT macro

;	LANGUAGEONE V2.12

;	NEW
;	---
;	1] - this is a "tuning" release. Identifying a few bottle necks and speeding things up.
;	2] - MAJOR restructuring of the reWriter

;	MODIFIED
;	--------
;	0]	Correct bug in reWriter when INSERTNUMBER does not have a picture
;	0]	Correct bug in reWriter (synonyms) introduced when restructured
;	0]  Corrent bug in reWriter "%endmacro" being written when no macros created
;	0]  Modified LMACROS.CPY to remove 4th parameter to XTABLES.SORT
;	0]	Correct small bug in FILES.LIB, was reporting EOF with last line read
;	1]	reWriter will now write the assembler code for a call to _MOVESTR when fields are
;			equal length
;	2] 	COMMON.LIB
;		_RANDOM,_CMPSTR,_MOVESTR
;	3]	XTABLES.LIB
;		_FROMRECORD (rput) removed code to inc UPPERBOUNDARY. Do it in the application
;	4]  TABLES.LIB - remove INVALID KEY check in fGET if filed has nulls
;	5]	Correct small error in WORDS.LIB where the destination is qualified but not validated
;	6]	Quaranteened the use of the continuation character "\" to "raw" code only

;	MODIFIED - WINDOWS
;	--------
;	1]	IMACROS.CPY (As used by w_XTABLES.LIB)
;		$w_getmem - Changed "GetProcessHeap" (Address of Process Heap) to "HeapCreate" (Address of outside of process heap)
;		to allow large XTables to be defines (> 1M)


;	LANGUAGEONE V2.11

;	NEW
;	---
;	0] - Implemented the new DATE.TIMER (Returns seconds/milliseconds)
;	1] - Implemented the QuickSort algorythm in TABLES.LIB
;	2] - Implemented the QuickSort algorythm in XTABLES.LIB
;	3] - Implemented the QuickSort algorythm in w_XTABLES.LIB
;	4] - Tuned the SORTS and am getting a really good time now.
;		 It seems that "repe cmpsb" is deathly slow so have written _CMPSTR (3 * faster)
;		 Sort for XTABLES will now beat a JAVA sort while ARRAY.SORT will sort 
;			1M integers in .09 second

;	LANGUAGEONE V2.10

;	NEW
;	---
;	1] - Developed the QuickSort algorythm
;	2] - Created the ARRAY.LIB module (and its associated commands)

;	MODIFIED
;	--------
;	0] Restructured the reWriter
;	1] Correct a bug in the reWriter introduced in V2.09 restructure
;	2] Correct a bug in the reWriter - seems to have been there for a long time
;	3] Correct a bug in the reWriter - found when TEST is part of a dataname
;	4] Moved the BIND processing in the reWriter to the 1st pass
;	5] Corrected the reWriter in looking for %DEFINE (added %IDEFINE & %ASSIGN)
;	6] Modified the reWriter to allow for Arrays.If
;	7] Removed from reWriter - V2.07-New-Point3 ($IF quaranteen)



;	LANGUAGEONE V2.09

;	NEW
;	---
;	1]	Allowed Functions to be coded inside of square brackets
;		ie 	display.line [CompoundInterest(1500,{{43,'.099'}},4,6)]
;		ie if [ [ CompoundInterest 1500,{{43,'.099'}},4,6 ] * 2 ] = [ 1938.8368 * 2 ]

;	MODIFIED
;	--------
;	1] Correct a bug in the reWriter where datanames in the Matrix were not being recognised 

;	LANGUAGEONE V2.08

;	NEW
;	---
;       This version brings nothing new but gives an example of how to code complex
;		compound if statements

;	MODIFIED
;	--------
;		Nil

;	LANGUAGEONE V2.07

;	NEW
;	---
;   1]	Added labels during reWriting to enhance debugging.
;   2]	Expended the use of Synonyms so that you can create aliases of datanames
;		was enhanced to allow dataname ALIAS's. Synonyms were the logical
;		place to fit this in. By making Synonyms fit Alias's processing
;		the original code was greatly improved (Shrunk). It was probably
;		badly inplimented in the 1st place.
;	3]	Quaranteened "$IF" as a macro name to allow the coding of functions that can
;		be passed parameters. A "side effect" of this process is that macros are not
;		fully checked for end construct errors -  a small price to pay"

;	MODIFIED
;	--------
;	1] Correct small error in reWriter where split lines were being incorrected processed
;	2] Corrected the manual in regard to .WHEN statements


;	LANGUAGEONE V2.06
;       This version brings nothing new but is used to detect bugs (particularly
;       with tables and the cooked version of indexed elements). No bugs were actually
;       detected.
;       The application is a Backgammon game and in no way is a finished application.
;       It is in itself quite buggy but only really exists to perform the testing
;       done for LanguageONE
;
;	NEW
;	---
;       Nothing
;	MODIFIED
;	--------
;       Nothing


;	LANGUAGEONE V2.05
;
;	NEW
;	---
;	1] Introduced String To Record conversions
;		WORDS.StringToRecord
;		WORDS.RecordToString
;
;	MODIFIED
;	--------
;	1] WWW.LIB 			: Allow for literal in Open and Close
;	2] WWW.LIB 			: SendMsg & RecvMsg were rewritten to use UDP and not TCP
;	3] WWW.LIB 			: Added a response when the program was asked to terminate
;	4] IMACROS.CPY		: Moded $toRecord and $fromRecord to have their own exits 
;	5] XTABLES.LIB		: Moded such that reading from a table rGet/fGet will set invalid status 
;	   TABLES.LIB		: 	and return record. Writting fPut/fPut will always set record to live
;	6] XTABLES.LIB		: Fixed a cut & paste error. jmp _FGET_EXIT in _FPUT routine
;	   TABLES.LIB		: 	""			""			""			""			""
;	7] XTABLES.LIB		: ** TO BE DONE **
;	   TABLES.LIB		: Change sort and search to use same parameter: start position and no of chars
;	8] languageONE.asm	: fix small error in the reWriter
;	9] COMMON.LIB		: fixed _ENVIRONMENT. It was failing
:
;  10] WINDOWS			: Quite a few changes here including
;						: Align Stack prior to any system calls
;						: w_WWW.LIB corrections
;						: Have swapped to PellesC for linking/libraries as GOLINK was producing
;						: incorrect code. This also has allowed the production of a library rather
;						: individual .obj modules


;	LANGUAGEONE V2.04
;
;	NEW
;	---
;	1] Introduced (I)nter (P)rocess (C)ommunication via WWW.SendMsg and WWW.RecvMsg


;	LANGUAGEONE V2.03
;
;	NEW
;	---
;	1] Introduced File and Record Locking
;		included General improvements to FILES.LIB
;
;	MODIFIED
;	--------
;	1] FILES.LIB : READ error when checking deleted records (failed on Indexed records)
;
;	2] FILES.Open : Correct open error for shared access (Windows version)
;
;	3] Moded the reWriter so that XTABLE_UBOUND is checked/incremented from an infered fput
;
;	4] Fixed problems with XTABLES
;		a) .SORT:One of those "How did it ever work in the 1st place" moments
;
;		b) .FPUT:Needs to set the Live/Deleted flag to live
;
;		c) .SEARCH/_DUPLICATES - pretty much reWritten


;	LANGUAGEONE V2.02
;
;	MODIFIED
;	--------
;	1] WWW.LIB has been modified in that a ResponseField formatted by a POST or GET Callback
;		routine will be passed directly back to a browser. This is enabled by initialising
;		RETURN_CODE to the length of the ResponseField. V2.02.ONE demonstrates a Data Entry
;		style of processing making use of this new functionality.
;
;	2] The languageONE reWriter has been modified so that {NUMBER = ALPHA} is correctly infered
;
;	3] XTABLES.Delete has an added flag to move NULLs to the record or not
;
;	4] The system field "record_LENGTH" has been redefined as "WRITE" Only
;
;	5] Correct small error in the languageONE reWriter where not identifying fixed point numbers 
;
;	6] Correct small error in NUMBERS.LIB. J = "aaa" where J has no picture caused a coredump
;
;	SPECIAL NOTE:-Porting of languageONE to OSX has been abandoned. The information available
;	to enable the port is negligible. The proprietory nature of Apple products also makes the
;	port next to impossible. We will all have to live in the Linux/Windows world.


;	LANGUAGEONE V2.01
;
;		NEW
;		---
;		1] Involves some internal structure changes prior to porting to OSX. 
;			These changes have brought about a few syntax changes (probably for the better)
;
;		Compound Decisions and Dot Commands
;
;			.IF 1 = 1
;			.or 2 = 2
;			.end
;				Do Something
;			END.IF
;
;			.WHEN 1 = 1
;			.and 2 = 2
;			.end
;				Do Something
;			WEND
;
;		Loop Exits
;
;			exitRepeat = c_TRUE
;
;
;		MODIFIED
;		--------
;		1] Correct error in XTABLES[unload]


;	LANGUAGEONE V2.00
;
;		This release represents the merging of the code following the porting to Windows
;
;		NEW
;		---
;		1] Integers.And  (Destination,Source)	
;		2] Integers.Or 	 (Destination,Source)	
;		3] Integers.Xor  (Destination,Source)
;		4] Numbers.Random(Destination) - Returns random number between 0 and 65,536 	
;
;		MODIFIED - bugs or changes that enable the Linux/Windows code to be the same
;		--------
;		1] Bug when working with CSV files. Not sure how it ever worked.
;			Also redefined CSV files to only allow a LF to terminate each line
;		2] Correct error in TABLES.sort
;		3] Correct error in XTABLES.unload when setting IncludeDeletedRecords to TRUE
;		4] Restructured WWW.LIB. 
;		5] Fixed bug in RUN command
;		6] Fix error reporting in WAIT command
;		7] Revamped RUN processing to return a handle for STDOUT and STDERR of the child process


;	********************************************************************
;	LANGUAGEONE V1.??
;	********************************************************************

;	LANGUAGEONE V1.25
;		NEW
;		---
;		1]	This release contains no new features but the internals of the system
;			have been improved,and the code has been cleaned a little. Most importantly
;			I have gone top to bottom of the manual and hopefully is a lot better
;			now. 
;			In addition, languageONE.ASM can now reWRITE itself in debug mode. 
;			This release preceeds the porting of languageONE to Microsoft Windows 
;
;		MODIFIED
;		--------
;		2] I have renamed the "TRANSLATOR" in documentation to "reWRITER" to more 
;			accurately describe its purpose in the languageONE ecosystem.
;		3] %define
;			Brackets may now be used when defining constants
;		4] Small error in TABLES.LIB when calling the search routine.
;			rdx was not being cleared prior to a divide 


;	LANGUAGEONE V1.24
;		NEW
;		---
;		1] Following V1.22 that introduced field level table access
;			languageONE will now be able to INFER the access thereby
;				allowing a more familiar syntax
;			Int[1,2] = Int[2,3] + Int[3,4]
;
;		MODIFIED
;		--------
;		2] Renamed '@spaces' to 'spaces'
;		3] Weird one in the fact that I have never found it. When copying a longer field
;			to a shorter one, Words.o would overrun the destination
;		4] Small error that restricted the "Exiting SubRoutine" debug message
;		5] Small error where w_FP_Picture was not enclosed in quotes
;		6] Small error in REPEAT.FOR n1,n2,n3 where n1 and n2 begin equal
;		7] Nested functions were not returning the correct result
;		8] Reversed the fields in WORDS.LENGTH to be more standard-ish
;			old WORDS.LENGTH Integer,Word
;			to	WORDS.LENGTH Word,Integer 
;
;		** DEFERRED **
;		1] languageONE will now handle the '\' backslash continuation character
;			This is because as languageONE becomes more able it stretches the 
;			capabilities of NASM
;		** DEFERRED **
;


;	LANGUAGEONE V1.23
;		NEW
;		---
;		1] Expanded the use of square brackets to denote Fixed Point precedents.
;			A = [[[B + 2.34 + 3.45] / 3] + 1.23] * [5.67 + [C * 2.34]]
;				or use where Fixed Point numbers are used
;			NOTE:- Cannot be used following a WHEN statement
;
;		MODIFIED
;		--------
;		1] Corrected Fixed Point number processing where the line split 
;			character "|" is used



;	LANGUAGEONE V1.22
;		NEW
;		---
;		1] Develop access to tables/xtables at a field level
;
;		MODIFIED
;		--------
;		1] Correct error in moving number to word. Word length was being reset
;			and add validation if destination is shorter than source
;		2] Correct error in integer precedence. Detecting Square brackets in quotes
;		3] Modify the translator to retain bracketing of a NASM directive
;


;	LANGUAGEONE V1.21
;		NEW
;		---
;		1] Introduced the FILES.RENAME keyword
;	`	2] Introduced the FILES.REMOVE keyword
;		3] Introduced square brackets to denote integer precedents.
;			A = [[[B + 2 + 3] / 3] + 123] * [5 + [C * 2]]
;				or use where integers are used
;			NOTE:- Cannot be used following a WHEN statement
;
;		MODIFIED
;		--------
;		1] Corrected small bug in the translator where an IF or REPEAT began in the 1st column
;		2] Fix incorrect assessment of RETURN_CODE in FILES.COPY routine
;		3] Added Simple Debug to Functions. ie BEGIN/END.FUNCTION,? will produce debug message
;		4] Updated the Manual. It's still a bit flacky but at present it's more for me to 
;			refer to when I have forgotten how something should be coded
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.20
;		NEW
;		---
;		1] Introduced languageONE.a, an archive of all the object modules
;			link.sh has been modified to comply with the newer way of linking
;		2] New keyword FILES.COPY (file1,file2) - copy one complete file to another
;		3] New keyword WORDS.LENGTH (len,Word) - returns length of word
;
;		MODIFIED
;		--------
;		1] Small error in translator when inferring dictionary words
;		2] link.sh creating TinyCore version becomes easier
;		3] Corrected an error with the RUN keyword 
;
;		3] Tailoring to suit INSIGHT GUI for GDB Debugging
;			a) CALL keyword replaced with $CALL
;			b) Moved EOF,INVALIDKEY and DUPLICATES definitions 
;				from FILES.INC to BEGIN.DICTIONARY
;			c) Fix small bug in translator where in debug mode blank line were
;				not being removed
;			d) altered translator to provide a stop before 'begin.assembler'
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.19 
;		NEW
;		---
;		1] Created new filetype of c_DIRECTORY
;			Directories can now be read as if they were files.
;			Records are not pertinant for this. Just code a single field.
;				insertfile c_DIRECTORY,IN_DIR,'/home/roger/_dev1/source/languageONE'
;				insertword fileNames,	255,''
;				files.open IN_DIR
;				files.read IN_DIR,receivingField
;				files.close IN_DIR
;
;		MODIFIED
;		--------
;		1] Extended the system defined fields in languageONE (translator)
;			a)	The filename itself because they can now be set dynamically 
;				(I'm thinking they always could)
;			b)	filename_HANDLE so the same definition can be used for different files
;
;	LANGUAGEONE V1.18 
;		NEW
;		---
;		1] TERMINATE keyword introduced
;			syntax is TERMINATE (return_code)
;
;		2] Where NASM sees a decimal point it assigns a value based on its 
;			assumption that the program will use the Floating Point Unit.  
;			LanguageONE does not in fact use the FPU but rather performs fixed 
;			point arithmetic. To that end numbers with decimal places will now 
;			be manipulated by the translator to allow for correct processing. Ie:-
;
;				insertnumber	Test1,		 -1.23456,'#,###,##9.99999-'
;					will be transformed into 
;	 			insertnumber	Test1,		  -123456,'#,###,##9.99999-'
;					being as the decimal point is inferred in  LanguageONE
;
;			other examples are:-
;
;				insertnumber	Test2,			1.234,'##9.99999-'
;					will be transformed into 
;				insertnumber	Test2,		     123400  ,'##9.99999-'
;
;				insertnumber	Test4,			12345,'##9.99999-'
;					will be transformed into 
;				insertnumber	Test4,     1234500000,'##9.99999-'
;
;			In addition, where as a fixed point number used as a literal following 
;			the begin.instructions directive needed a picture,The translator will
;			now provide that picture such that you may code only the fixed point
;			number. So, whereas a “raw” LanguageONE  program requires
;				for example
;
;				numbers.add n_Destination,{12345,'99.999'}
;					you may now code
;				numbers.add n_Destination,12.345
;
;		*******
;		3] INTEGERS.CALC keyword introduced
;			syntax is INTEGERS.CALC integer = integer + integer - integer * integer / integer
;		4] NUMBERS.CALC keyword introduced
;			syntax is NUMBERS.CALC number = number + number - number * number / number
;		******* Note:-with both integers/numbers.calc bracketting is unavailable at present
;						and is earmarked for a later development
;
;		5] The languageONE translator was modified so that it may 'infer' the .calc keyword
;			so that you may write integer1 = integer2 * integer3 / integer4 - integer5 
;								or number1 =  number2 *  number3 /  number4 - number5
;
;		6] Although strictly not a languageONE function, an example is given on how to code
;			NASM macros to assist in languageONE programming
;
;		MODIFIED
;		--------
;		1] Fixed small bug in languageONE (translator) with split line processing
;		2] Fixed small bug in FILES.LIB. Read buffer was not being initialised
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.17 
;		NEW
;		---
;		1]	Introduced SYNONYM's.
;		The idea is to be able to dynamically rename macros if you find the 
;		originals too verbose. Only macros following begin.program can have 
;		synonyms. 
;		Synonyms cannot be longer than the original macro name
;		The Synonym directives must be coded as comments
;
;		NOTE:- You can of course rename the macros in LMACROS.CPY but this would
;		then be a system wide change. Synonyms allow for more individual style 
;		when coding.
;		Synonyms should be coded between the BEGIN and END SYNONYMS directives.
;		They comprise of a synonym (replace ?? with your own) and a KEYWORD (Macro)
;		separated by a colon.

;		BEGIN.SYNONYMS **************************************
;			??	:	ACCEPTINE.
;			??	:	ACCEPT.
;			??	:	DISPLAY.
;			f.	:	FILES.
;			??	:	XTABLES.
;			??	:	TABLES.
;			??	:	DATE.
;			$.	:	WORDS.  
;			@.	:	INTEGERS.  
;			#.	:	NUMBERS.  
;			??	:	CURSOR 
;			??	:	DISPLAY
;			??	:	ACCEPTLINE 
;		END.SYNONYMS ****************************************
;		
;		2]	Added a little bit of extra debugging 
;		ie Code a second parameter to the BEGIN/END.SUB (I use ?) and the program
;		will display Enter and Exit messages
;
;		MODIFIED
;		--------
;		1] rename the integer macros. - This is in preparation for the introduction
;			of synonyms
;			@set ---> integers.eq
;			@add ---> integers.add
;			@sub ---> integers.sub
;			@mul ---> integers.mul
;			@div ---> integers.div
;			@toggle-> integers.toggle
;
;		2] Repackaged the TinyCore file structures to their request.
;
;		+ TinyCore
;			+Usr
;				+local
;					+bin
;					|	pre.sh							; commandline pre assemble tools
;					|	assemble.sh						; commandline assemble script
;					|	link.sh							; commandline link script
;					|	makeONE.sh						; commandline make utility
;					|	languageONE						; languageONE translator
;					|	GUImakeONE						; executable
;					|	GUImakeONE.sh					; GUI make utility
;					+doc
;					|	+languageONE
;					|	|	+examples
;					|	|		Demonstration programs (V0.01 thru V????)
;					|	|	languageONE.html			: the manual
;					|	|	languageONE.odt				: the manual
;					|	|	languageONE.pdf				: the manual
;					|	|	languageONE-LICENSE			: gnu general public license
;					|	|	languageONE-VERSION.HISTORY	: this document
;					+include
;					|	+languageONE
;					|		Macros (Keywords)			; BEGIN.* END.* *.CPY *.INC
;					+lib
;					|	+languageONE
;					|		+src
;					|			object Libraries		; *.LIB
;					|			Templates				; *.ONE
;					|			languageONE.ASM			; Translator
;					|	*.o								; Object Files
;					|	languageONE.a					; Archive
;					+share
;						+languageONE
;							+html
;								Screens and JPegs
:
;
;	LANGUAGEONE V1.16 
;	=========================================================================
;	[Note that suffixes have dropped from this version on.]
;	[There were no real changes other than architectural so 16A is followed by 16]
;	[I try not to let that happen again]
;
;		NEW
;		---
;		1] This change included NO changes to languageONE itself. It was a restructuring
;			of the filing system used to store the elements of the language
;				
;		+ languageONE
;			pre.sh						; commandline pre assemble tools
;			assemble.sh					; commandline assemble script
;			link.sh						; commandline link script
;			makeONE.sh					; commandline make utility
;			GUImakeONE.sh				; GUI make utility
;			|
;			+-----ARCHIVE				: THE SOURCE FOR ALL PREVIOUS VERSIONS
;			+-----bin					: LANGUAGEONE EXECUTABLES
;			|		languageONE			: the translator
;			|		GUI.makeONE			: the (GUI) make utility
;			+-----doc					: DOCUMENTATION
;			|		languageONE.html	: the manual
;			|		languageONE.odt		: the manual
;			|		languageONE.pdf		: the manual
;			|		LICENSE				: gnu general public license
;			|		README.MD			: github readme
;			|		VERSION.HISTORY		: this document
;			+-----html					; HTML SCREENS
;			|		GUI-makeONE...		; GUI make utility screens
;			|		V1-16a...			; demo program V1.16a screens
;			+-----include				; LANGUAGEONE CORE COMPONENTS
;			+-----jedit					; JEDIT CONFIG FILES FOR LANGUAGEONE
;			+-----lib					: STATICALLY LINKED LANGUAGEONE LIBRARIES
;			+-----src					: LANGUAGEONE DEMONSTRATION PROGRAMS
;
;		languageONE was also packaged for inclusion in TinyCore Linux
;		The directory structures where altered for that version to suit
;		TinyCores requirements and this required hard-coding some paths
;		in V1.15 and V1.16 (GUI-makeONE)
;
;		MODIFIED
;		--------
;		1] Corrected small error in translator. Was changing commandline
;			parameters to uppercase
;		2] For better use with git
;			Remove trailing letter in source name
;		3] Corrected small error in V1.14.ONE where 'date' was used as variable name
;			(It's a macro name)
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.16A
;		NEW
;		---
;		1] Develop RUN macro. [_RUN (COMMON.o)]. 
;		2] Develop WAIT macro
;		3] Develop V1.16a.ONE (Real Web Online program) 
;		4] Copy V1.16a.ONE to GUI.makeONE.ONE as languageONE's make utility
;		5] Create bash GUImakeONE.sh to start GUI.makeONE and firefox (or your browser)
;		6] Rename existing makeONE to makeONE.sh for clarity
;		7] Update manual for GUI programs - should have been done in V1.15a
;		8] Update manual for GUImakeONE make utility
;
;		MODIFIED
;		--------
;		1] Correct error in WWW.LIB. Enlarge buffer to 64K.
;			Set write length to read length on response
;		2] Correct error in REPEAT.IF when qualifying fields
;			discovered in languageONE (translator)
;		3] Correct errors in DATE routines (not sure how they ever worked !!!)
;		4] added checking in languageONE (translator) for invalid input file

;	--------------------------------------------------------------------
;	LANGUAGEONE V1.15A
;		NEW
;		---
;		1] Develop WWW.LIB - for online GUI programs or just plain HTML servers
;		2] Develop V1.15a.ONE 

;	--------------------------------------------------------------------
;	LANGUAGEONE V1.14A
;		NEW
;		---
;		1] Develop V1.14a.ONE to put languageONE thru its paces
;		2] Introduced Line Drawing characters for terminal display 
;		3] Introduce the ACCEPT.AT keyword to handle single character input
;			to build words. You can then control the length of the input line
;
;		MODIFIED
;		--------
;		1A]Correct small error in languageONE translator which filled literals of spaces
;			with commas
;		1B]Correct small error in languageONE translator detecting continuation cgaracters
;			in debug mode
;		2] Correct small error in WORDS.pad. Padding 1 byte too many  
;		3] Correct small error in XTABLES.unload. Need to create output file if it does
;			not exist
;		4] Modified XTABLES to return a "closest" record no after a search that returns
;			an invalid key
;		5] Correct with XTABLES.bind and passed size
;		6] Amended XTABLES to return an EOF
;		7] Correct error when coding "repeat.if FUNCTION"
;		8] Removed the requirement for assembler to be coded within a sub routine
;			The translator will no longer check for this
;			Introduced the BEGIN.ASSEMBLER and END.ASSEMBLER directives.
;			Assembler may now be coded anywhere following the BEGIN.INSTRUCTIONS
;		9] Corrected error made evident when call a sub routine from a TEST statement
;			Internal modifications to allow for nesting
;	   10] Add 'cld' before $copyBytes  
;

;	--------------------------------------------------------------------
;	LANGUAGEONE V1.13A
;		NEW
;		---
;		1] Introduced the tables.search function
;		2] Introduced the UBOUND field, to track the highest used table
;			entry
;		3] INTRODUCED XTABLES
;		4] Added the .xml files for JEDIT
;		5] Introduced a new file type 'c_INDEXED' for use with XTABLES
;
;		MODIFIED
;		--------
;		1] Reworked some of the macros for better understanding		
;		2] Reworked the Shell Sort in V0.06/TABLES.LIB
;		3] FILES.NEXT not returning the record no
;		4] Restore the LIVE/DELETED flag (1st byte of file record) to 0x00
;			Altered in V1.12a. Not sure why. 
;		5] Correct small error in languageONE (Translator) that seemed to have creeped in.
;			Split lines were not be handled correctly
;		6] Corrected error when displaying a Matric number with a picture override
;		7] Corrected overflow error in NUMBERS divide routine
;		8] Added brace({}) count in languageONE translator
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.12A
;		NEW
;		---
;		1] Introduced GUI Debugging using 'ddd'
;			Refer to the manual for debugging a languageONE program
;		2] Introduced the FILES.START and the FILES.NEXT keywords
;			for random access files
;		3] Introduced the tables.search function
;
;		MODIFIED
;		--------
;		1] Reworked all the macro for better results
;		2] Corrected error in "makeONE" assembly script
;		3] Modified the LIVE/DELETED flag (1st byte of file record) to be 0xFF
;			rather than 0X00
;		4] Modified FILES.o such that READ/WRITE/DELETE for files of records
;			may or may not pass a 3rd parameter. It being the record No
;			ie: files.read (File,Record,Record_No) will yield the same result
;			as: @set(Record_No,1)
;				files.read (File,Record)
;		-----------------
;		Personally, I have switched editors from Geany to JEdit.
;		I have now included the following files in languageONE 
;		distributions:-
;			Providing syntax highlighting
;				~/.jedit/modes/languageONE.xml
;			Providing makeONE process via the use of the 'console' plugin
;				~/.jedit/console/commando/makeONE.xml
;			
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.11A
;		NEW
;		---
;		1] Completed the 1st draft of the languageONE manual
;		2] Expanded the use of _IN to WHEN/_AND/_OR macros
;		3] COMMON.o now includes he following date functions
;			date.get
;			date.datefromdays
;			date.daysfromdate
;			date.seconds
;		4] Allow REPEAT.WHILE as synonym for REPEAT.IF
;		5] Introduced boolean FUNCTIONS for use with
;			IF, _OR, _AND, REPEAT.IF(WHILE),WHEN	
;
;		MODIFIED
;		--------
;		1] Altered the Assembler sub routine starting name characters
;			from "@_" to "?", in order to free the @ sign for future
;			use.
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.10A
;		NEW
;		---
;		Developed L1_Translator
;			This is a preprocessor that will grow to enhance languageONE
;			beyond the capabilities of NASM
;			1] Strip BRACKETS from MACRO parameters
;				This allow languageONE to conform to what is most 
;				common amongst programming languages.
;			2]  Add commas where they may have been omitted
;				ie.- if A = B must translate to if A,=,B
;
;		Introduced the '|' split line character.
;			This will denote to the languageONE translator that there
;			is more than one command on each line
;
;		CREATE MAKE file to run:-
;			languageONE
;			NASM
;			LD
;
;		SYNTAX ALTERATIONS
;			@OR  to _OR to better suit the new languageONE formatter
;			@AND to _AND to better suit the new languageONE formatter
; 
;			Introduced a @TOGGLE() command.
;			Will toggle a value between 0 (c_FALSE) and 1 (c_TRUE)
;
;			Introduced the _IN parameter for an IF statement
;			ie:- IF "ROGER" _IN {"ROGER","JESSICA","KRYSTAL","TIFFANI"}
;				An easy one realy cuz its just a compound if statement
;				that looks a little nicer
;
;			Introduced the ERROR_CODE numeric field. It can be used within
;			your program and will also be used to set the return code
;			when your program terminates
;
;			Defined a requirement that assembler sub routine names must
;			begin with '@_'
;
;			Completed the following equivalences in the DECISIONS.INC
;			+-----------------------+-------+-------+-------+
;			|Equals					| EQ	| =		|		|
;			|isNOTEqualTo			| N_EQ	| !=	|		|
;			|isLessThan				| LT	| <		|		|
;			|isNOTLessThan 			| N_LT	| !<	|		|
;			|isGreaterThanOREqualTo	|		| >=	| =>	|
;			|isGreaterThan			| GT	| >		|		|					
;			|isNOTGreaterThan		| N_GT	| !>	|		|
;			|isLessThanOREqualTo	|		| <=	| =<	|
;			+-----------------------+-------+-------+-------+
;			NOTE:-	You may develop your own names for these comparitors 
;					by editing the DECISIONS.INC file and reproducing
;					the values under your own naming scheme
;
;			CLARIFICATION:
;			-------------
;			when using a when statement and coding the c_ALL parameter
;			the else statement may not function as expected. It is best
;			avoided at present time.
;
;			BUGS:
;			-----
;			words.o:
;			Correct introduced error in the words.environment routine.
;
;			Corrected small error in _OR/_AND when used with 2 parameters
;			under a when statement
;
;			FILES.o
;			Corrected/Simplified OPEN function
;
;			Corrected the FILE read of a terminated record so that it does 
;			NOT return the terminating character
;			
;			Added the field _ReadLength to File Control Block
;				eg:-	FILES.READ IN_FILE,IN_RECORD
;					 	if IN_FILE_ReadLength,=,0
;
;			Began coding a Trace function but have commented it out for a 
;			later release as I am investigating a debugger for languageONE
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V1.00A
;		NEW
;		---
;		Added FIXED POINT NUMERIC Pocessing
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V0.06A/B
;		NEW
;		---
;		Add the SORT option to tables.o
;
;		This release brings the sort option to the tables.o module
;		and additionally shows the path to the selection of SHELL
;		sort as the sort type. It also assists in debugging languageONE
;		in that 'a bit of code' is presented.
;
;		The program firstly presents a Bubble sort, a INSERTION sort
;		and finally a SHELL sort. It is obvious from the counter
;		displays that the SHELL sort is by far the quickest. (It is
;		not the quickest sort known to man but carries the benefits
;		of be coded easily and to sort 'in place' [no extra memory needed])
;		Please refer to wikipedia for details on sorting algorithms.
;			
;		It should be noted that the gap(divisor) used in the SHELL sort
;		may vary as to the quickest for a particular fileset so a 
;		default of 1.3 is used in tables.o. A future release may allow
;		this to be passed to tables.o but if the table size is unknown
;		finding the best gap is not possible
;
;		MODIFIED
;		--------
;		Corrected the internal macro $SetupField
;		Corrected bug in tables.o
;		Corrected bug in END.SUB
;
;		Renamed Constant definitions (as of V0.04b)
;			c_Constant EQU 1
;				becomes
;			%define c_Constant 1
;			THIS will allow expressions to be used in constants.ie:-
;				%define c_UpperBoundary 26*26*26*26
;
;		Allow for the psuedonyms
;			(prior to V0.06a) 	isNOTLessThan
;				(allow)				isGreaterThanOREqualTo
;			(prior to V0.06a)	isNOTGreaterThan
;				(allow)				isLessThaOREqualTo												
;
;		Correct documentation on size of integers.
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V0.05A
;		NEW
;		---
;		Develop the TEST macros
;
;		MODIFIED
;		--------
;		Corrected the internal macro $SetupField
;		Corrected bug in TABLES.o
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V0.04A
;		NEW
;		---
;		Introduce Table/Array handling
;		Introduced constants
;		Demonstrate some assembler code
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V0.03A
;		NEW
;		---
;		Putting languageONE into action
;		This release comes with the 'filetypes.asm' from the Geany editor
;		that will highlight language keywords
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V0.02A
;		NEW
;		---
;		File Handling
;
;		Introduced the backslash "\" as a continuation character
;		EXIT.SUB as per other exit statements
;		display@ consolidates CURSOR/display
;			CURSOR 20,12
;			display c_Cursor,'Hello World'
;		can now be coded as
;	  	display@ 20,12, 'Hello World' -	Note thought that only one field 
;										at a time can be displayed using
;										display@
;		ACCEPTLINE@ consolidates CURSOR/ACCEPTLINE
;			CURSOR 20,12
;			ACCEPTLINE w_Field
;		can now be coded as
;	 	ACCEPTLINE@ 20,12,w_Field -		Note thought that only one field 
;										at a time can be displayed using
;										display@
;	
;		MODIFIED
;		--------
;		Record Length has been moved from insertfile to BEGIN.RECORD
;				(a no brainer really)
;		Parameter 1 of insertfile has been redefined to better describe
;		the file
;		Which kinda reciprecated a rewrite of the files module. 
;		REMOVED the need for loop LABELS ie. repeat {name}....end.repeat {name}
;			becomes repeat....end.repeat
;		Renamed endIF to end.IF for consistency with other end instructions
;		ACCEPTLINE will now accept both Numeric and Alphanumeric fields
;		languageONE will only recognise the number portion of a field
;		entered incorrectly. ie:-
;			ACCEPTLINE@ 02,03,w_Number
;			if '9aa' is entered then the result will be 9
;			if '5d3' is entered then the result will be 53			
;
;	--------------------------------------------------------------------
;	LANGUAGEONE V0.01A
;		NEW
;		---
;		Original Version
;
;		MODIFIED
;		--------
;		1]	Corrected constant c_LightGreeenFG to c_LightGreenFG		
;		2]	Reworked call to $toEdited, and corrected error where a number is moved to {string,Start}
;		3]  REMOVED the need to name loops. ie repeat.If {name},I,Equals,10
;		4]	Small fix in words.o to fix error with the PAD function
;
;		5]	Renamed OPEN.DICTIONARY		to BEGIN.DICTIONARY
;			Renamed CLOSE.DICTIONARY	to END.DICTIONARY
;		6]	Renamed OPEN.MATRIX			to BEGIN.MATRIX
;			Renamed CLOSE.MATRIX		to END.MATRIX
;		7]	Renamed BEGIN ProcedureName	to BEGIN.SUB Procedure Name
;			Renamed END ProcedureName	to END.SUB ProcedureName
;		8]	Corrected error in NUMBERS.LIB:FROMEDITED
;		9]  Document valid characters for words and NUMBERS



