
;*********************************************
;	   SYSTEM ORGANIZATION		     *
;*********************************************
;
; The startup-sequence depends on the fact that certain OS 2.0 commands
; are internal, so by pointing the path to the 1.3 commands and running a
; command without a path prefix, the 1.3 command will be run under 1.3
; and the 2.0 command will be run under 2.0.  The only exception is
; the Wait command.  The 1.3 Wait works under 2.0 which simplifies the
; startup greatly.
;
;		1.3		2.0
; --------------------------------------
; RUN		c/		INTERNAL
; FAILAT	c/		INTERNAL
; EXECUTE	c/		INTERNAL
; WAIT		c/		-
; PATH		c/		INTERNAL
; IF		c1.3/		INTERNAL
; ELSE		c1.3/		INTERNAL
; ENDIF 	c1.3/		INTERNAL
; CD		c1.3/		INTERNAL
; ECHO		c1.3/		INTERNAL
; SETENV	c1.3/		INTERNAL
; ASSIGN	c1.3/		c2.0/
; DIR		c1.3/		c2.0/
; LIST		c1.3/		c2.0/
;
; The directories c/, s/, and l/ are not compressed.  All other directories
; are compressed.

c/avail
run <nil: >nil: l/fsovl-handler
wait 5 sec		    ; wait for handler to finish loading
failat 21
path reset arch:xdcc1/c1.3

arch:xdcc1/bin/noreq

resident >nil: force	    ; error code 20 if running under 1.3
if WARN
;*********************************************
;		    1.3 OS		     *
;*********************************************
echo "DICE Boot for 1.3"
SetPatch
assign l: arch:xdcc1/l1.3
assign libs: arch:xdcc1/libs1.3
assign DCC1: arch:xdcc1
if exists XDCC2:
assign DCC2: arch:xdcc2
endif
if exists XDCC3:
assign DCC3: arch:xdcc3
endif

else
;*********************************************
;		    2.0 OS		     *
;*********************************************

echo "DICE Boot for 2.0"
path reset arch:xdcc1/c2.0
SetPatch
resident arch:xdcc1/c2.0/assign
assign c: arch:xdcc1/c2.0
assign l: arch:xdcc1/l2.0
assign libs: arch:xdcc1/libs2.0 arch:xdcc1/libs
assign DCC1: arch:xdcc1
assign DCC2: arch:xdcc2 DEFER
assign DCC3: arch:xdcc3 DEFER
endif

arch:xdcc1/bin/noreq off

;*********************************************
;		   MISC OS		     *
;*********************************************

assign sys: arch:xdcc1
assign ENV: ram:
assign t: ram:
assign c: arch:XDCC1/C
cd sys:

;*********************************************
;		    DICE SETUP		     *
;*********************************************
;

stack 8192
execute DCC1:s/startup-dice DCC1:

;*********************************************
;	   RECOGNITION OF OTHER FLOPPIES     *
;*********************************************
;
; GENERAL RECOGNITION

noreq

if exists XDCC2:bin
path add DCC2:bin
endif

if exists XDCC3:bin
path add DCC3:bin
endif

resident >nil: force	    ; error code 20 if running under 1.3
if WARN
;******************************
;	  1.3 specific	      *
;******************************


else
;******************************
;	  2.0 specific	      *
;******************************

if exists XDCC2:include
assign dinclude: DCC2:include ADD
endif
if exists XDCC2:dlib
assign dlib: DCC2:dlib ADD
endif

if exists XDCC3:include
assign dinclude: DCC3:include ADD
endif
if exists XDCC3:dlib
assign dlib: DCC3:dlib ADD
endif

endif

noreq off

;*********************************************
;	       README FILE		     *
;*********************************************
;

c/avail
run <nil: >nil: dme XDCC1:README.DOC

;*********************************************
;	       SPECIAL 1.3 CRAP 	     *
;*********************************************
;
; we have to bring up a new CLI using Shell-Seg
; so execution of resident'd programs work.

resident >nil: force	    ; error code 20 if running under 1.3
if WARN
resident CLI l1.3/Shell-Seg SYSTEM REPLACE
newcli con:0/100/640/100/Command_Line_Interface
endcli >nil:
endif

