;
; basTalk.sh
;
; Interface to BASIC's weird routines
;
;  1994-1998 Straylight
;

;----- Licensing note -------------------------------------------------------
;
; This file is part of Straylight's BASIC Assembler Supplement.
;
; BAS is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2, or (at your option)
; any later version.
;
; BAS is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with BAS.  If not, write to the Free Software Foundation,
; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

;----- Overview -------------------------------------------------------------
;
; Functions provided:
;
;  bTalk_lvblnk
;  bTalk_create
;  bTalk_store
;  bTalk_load
;  bTalk_eval
;  bTalk_match

		[	:LNOT::DEF:basTalk__dfn
		GBLL	basTalk__dfn

; --- bTalk_lvblnk ---
;
; On entry:	R0 == pointer to variable name to find (not tokenised)
;
; On exit:	R0 == address of lvalue
;		R1 == type of lvalue
;
; Use:		Tries to locate the given BASIC variable.

		IMPORT	bTalk_lvblnk

; --- bTalk_create ---
;
; On entry:	R0 == pointer to name of variable
;
; On exit:	R0 == address of variable lvalue
;		R1 == type of variable created
;
; Use:		Creates a variable, if it doesn't already exist.  Otherwise
;		a pointer to the existing variable is returned.

		IMPORT	bTalk_create

; --- bTalk_store ---
;
; On entry:	R0 == lvalue in which to store
;		R1 == type of lvalue
;		R2 == (integer) value to store
;
; On exit:	--
;
; Use:		Stores an integer value in a BASIC variable.  The value is
;		converted to floating point if required (without loss of
;		precision).

		IMPORT	bTalk_store

; --- bTalk_load ---
;
; On entry:	R0 == address of lvalue
;		R1 == type of lvalue
;
; On exit:	R2 == integer value of lvalue
;
; Use:		Loads an integer variable from an lvalue.

		IMPORT	bTalk_load

; --- bTalk_eval ---
;
; On entry:	R1 == pointer to a control-terminated string
;
; On exit:	R0 == value of expression
;
; Use:		Evaluates a BASIC expression.

		IMPORT	bTalk_eval

; --- bTalk_match ---
;
; On entry:	R1 == ctrl terminated string
;		R2 == destination pointer
;
; On exit:	--
;
; Use:		Tokenises the given sting, and puts the result in the
;		destination buffer given.

		IMPORT	bTalk_match

		]

;----- That's all, folks ----------------------------------------------------

		END
