; ======================================================
; Sample Linker script for Model 100
;
; ======================================================

; Define an abolute region for TS-DOS
CODE	NAME=.aseg			START=62000			END=62400

; Define a region for general relocatable code.  If a CSEG
; directive is given with no segment label, it will default
; to the name ".text".  The linker will then collect all 
; segments it finds with this name and locate the code 
; within them in this region.
;
; The "atend" syntax tell the linker to place the code at
; the next byte after the last one in the named segment.
; In this case, all relocatable code will be linked such
; that is is contigous with the absolute location code
; in the ".aseg" segment.
CODE	NAME=.text			START=atend(.aseg)		END=62959

; Define a region for our strings.  Put it at the end of
; the normal CODE sections (the ".text" section).
; We could just as easily have placed the strings in the
; default ".text" segment, but we do it this way just to 
; show how to use the features of the linker.
;
; The syntax for named CSEG blocks is:
;
; SAMP_STRINGS 		.cseg
;
CODE	NAME=SAMP_STRINGS	START=atend(.text)		END=62959

; Define regions where variables should be located.  
; Variables are declared using the .dseg directive in the
; assmebly file.  Like code segments, they can also be 
; named such that different variables can be co-located and
; linked to a specific address if needed.
DATA	NAME=.data		START=atend(SAMP_STRINGS)	END=62969

; We can specify paths to OBJ files that may have been assemlbed
; outside our source tree and that we are simply linking to.
; In the days of closed source, this is how libraries were 
; distributed ... in binary form only with a header file.  This
; simply provides a way of distributing binary only code.
; This feature will likely never be used, but here it is anyway.
OBJPATH		{$VT_ROOT}/obj
OBJPATH		{$VT_ROOT}/projects/Sample1

