# GSOSlink
# By Bryan Atsatt
#
# This file links and builds the following files:
#
#	GS.OS
#	START.GS.OS
#	ERROR.MSG

#
# Link everybody...
#
unset LnkOptions
if "{ListFlag}" || "{ListPartFlag}"
	set LnkOptions "-l > {Listings}os.symbols"
end

linkiigs -apw -o {WorkFolder}scm.lnk {LnkOptions} 
	-lseg scm_seg_0 				# becomes scm.bin 
		{Object}scm.obj(@start_seg0) 
		{Object}scm.obj(@oscall_seg) 
		{Object}scm.obj(@end_seg0) 
	-lseg scm_seg_1					# becomes scm.bin.2 
		{Object}scm.obj(@start_seg1) 
		{Object}scm.obj(@misc_seg) 
		{Object}scm.obj(@end_seg1) 
	-lseg scm_seg_2					# becomes scm.bin.3 
		{Object}scm.obj(@start_seg2) 
		{Object}scm.obj(@scm_main) 
		{Object}scm.obj(@end_seg2) 
	-lseg scm_seg_3					# becomes scm.bin.4 
		{Object}scm.obj(@start_seg3) 
		{Object}scm.obj(@system_svc) 
		{Object}scm.obj(@end_seg3) 
	-lseg scm_seg_4					# becomes scm.bin.5 
		{Object}scm.obj(@start_seg4) 
		{Object}scm.obj(@bank_e1) 
		{Object}scm.obj(@end_seg4) 
	-lseg b00segr					# becomes scm.bin.6 
		{Object}b00segr.s.obj 
		{Object}bank0.obj 
		{Object}b00segr.e.obj 
	-lseg be0segr					# becomes scm.bin.7 
		{Object}be0segr.s.obj 
		{Object}device.dispatcher.obj 
		{Object}be0segr.e.obj 
	-lseg gquit.1					# becomes scm.bin.8 
		{Object}gquit.obj(@seg_gldr) 
	-lseg gquit.2 					# becomes scm.bin.9 
		{Object}gquit.obj(@seg_b0) 
	-lseg gquit.3 					# becomes scm.bin.10 
		{Object}gquit.obj(@seg_e1) 
	-lseg gquit.4 					# becomes scm.bin.11 
		{Object}gquit.obj(@seg_e0) 
	-lseg cache 					# becomes scm.bin.12 
		{Object}cache.obj 
	-lseg init.1 					# becomes scm.bin.13 
		{Object}init1.obj 
	-lseg init.2 					# becomes scm.bin.14 
		{Object}init2.obj 
	-lseg init.3 					# becomes scm.bin.15 
		{Object}init3.obj 
	-lseg init.4 					# becomes scm.bin.16 
		{Object}init4.obj 
	-lseg terminator 				# becomes scm.bin.17 
		{Object}scm.obj(@terminator)
#
# Make binary...
#
makebiniigs {WorkFolder}scm.lnk -o {WorkFolder}scm.bin

#
# Create "START.GS.OS" from binary...
#
catenate {WorkFolder}scm.bin.8  >  	{SDsystem}start.gs.os
catenate {WorkFolder}scm.bin.9  >> 	{SDsystem}start.gs.os
catenate {WorkFolder}scm.bin.10  >> 	{SDsystem}start.gs.os
catenate {WorkFolder}scm.bin.11  >> 	{SDsystem}start.gs.os

#
# Set filetype and auxtype...
#
set exit 0; echo "foo" | rez -o {SDsystem}start.gs.os -m -c pdos -t $70f90007  dev:null; set exit 1

#
# Set the mod time to the current time
#
setfile -m . {SDsystem}start.gs.os

#
# Create "GS.OS" from binary...
#
catenate {WorkFolder}loader     >  	{SDsystem}gs.os
catenate {WorkFolder}scm.bin    >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.2  >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.3  >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.4  >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.5  >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.6  >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.7  >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.12 >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.13 >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.14 >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.15 >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.16 >> 	{SDsystem}gs.os
catenate {WorkFolder}scm.bin.17 >> 	{SDsystem}gs.os

#
# Set filetype and auxtype...
#
set exit 0; echo "foo" | rez -o {SDsystem}gs.os -m -c pdos -t $70f90000  dev:null; set exit 1

#
# Set the mod time to the current time
#
setfile -m . {SDsystem}gs.os
