;
;GRAND'S BOOT V2.2DS
;楤 ᪠ 䠩
; ⮬ ᯥ䨪 Directory System V1.00.
;
;(C) Grand, 2005
;
;। 砫 ࠡ 楤
; . ਯ 䠩 ( 23773)
;.  ᥭ  16-  
;⠫ ᪠ 䠩.
;
	LD	A,(W2+27);६.  b0 ࠭ 䫠 樨 Load/Run
	RRA		;CY=1 - LOAD, CY=0 - RUN.
	EX	AF,AF'	; .  F'.
	LD	A,(23773+8); ⨯ 䠩.
	LD	BC,(23773+9); ࠬ. Start.
	LD	HL,#C900;  NOP  RET.
	CP	"C"	;室, ᫨ ⨯ 䠩  <C>.
	JP	NZ,exe1
	EX	AF,AF'	;砫 ࠡ. 㧪 䠩 CODE.
	JR	C,$+4
	LD	L,#C5	;  PUSH BC.
	LD	(runC),HL
	LD	HL,24843;᫨ ࠬ. Start 
	SBC	HL,BC	;23843,  室  楤.
	JP	NC,mmenu+4
	...	...
; 뢮  "RUN <C>-file"  
; 짮⥫ ࠬ஢: "RAMTop", "Start"  "Run".
;᫥ ⮣,  짮⥫ "" "OK" 
;ࠬ  ᥭ ᮮ⢥⢥  ᠬ
;RAMTOP+1, a_strt+1  a_runC+1.
	...	...
	LD	HL,(23784);  䠩  
	XOR	A	;砥   楫
	CP	L	;ᥪ.
	ADC	A,H	;
	LD	(l_strt+2),A
;
	LD	HL,a_strt-start+23464
	LD	(r_strt+1),HL
	LD	IX,W1-2	; IX     楤  /.
	JR	exe4
;
exe1	CP	"B"
	JP	NZ,mmenu+4;᫨ ⨯ 䠩  <C>   <B>,    ⮩ 楤.
	EX	AF,AF'	;砫 ࠡ. 㧪 BASIC-䠩.
	LD	H,0
	LD	(runC),HL
	LD	A,#C9	;  RET.
	JR	C,$+3	;CY=1 -  LOAD.
	LD	A,H	;  NOP.
	LD	(runB),A
	LD	HL,(23782); 饩 . BASIC, 㢥祭  4,
	INC	HL	;砥 
	INC	HL	; ᥪ.
	INC	HL	;
	INC	HL	;
	XOR	A	;
	CP	L	;
	ADC	A,H	;
	LD	(l_strt+2),A;
;
exe4	BIT	5,(IY+54);⥬ ६ OSPCC,
			;ᯮ㥬  ""
			;楫. ᫨ b5 ⠭, 
			;䨣  48K,  - 128K.
	JR	NZ,QUIT_1
	BIT	4,(IY+1)	;᫨ b4 襭, 
			;GBoot  㦥  "48 BASIC".
	LD	A,(W2+30);ন: 3 - ᫨  㦠
			; 䨣樨 "48K mode", 2 - "128K mode & 48 BASIC",
			;1 - "128K mode & 128 BASIC".
	JR	Z,exe49
	CP	3
	JR	Z,exe48
	RRCA
	JR	C,QUIT_1
exe49	RRCA
	JR	C,exe48_7
exe48	LD	BC,#7FFD;. . 48K
	LD	A,%110000;
	OUT	(C),A	;
exe48_7	RES	4,(IY+1)	;
	LD	HL,(_SP+1); ERR_SP.
	LD	(HL),3	;ᨬ  ,  
	INC	HL	;㪠. ERR_SP,
	LD	(HL),#13	; ⥬ ࠡ稪 訡:  48K - #1303.
QUIT_1	AND	A	; CY.
;
;ᠫ쭠 楤 襭 ࠡ GBoot'.
;᫨  室 CY=0,  㧪 䠩,  
;室  ⥬ ZX Spectrum.
QUIT	CALL	CL_W	;⨥  䠩  (   IX).   CY.
	DI
;
	LD	A,0	;⠭ 室 ⥬ ६.
			; 㣨 ⠭  ࠭ - 
			;稪 GBoot'.
	LD	(#5C44),A;NSPPC -  ᫥饣 믮塞  BASIC.
	LD	HL,#221
	LD	(23688),HL;S_POSN - -   ࠭.
	LD	H,#17
	LD	(23690),HL;SPONSL - -   㦥 ࠭.
	LD	A,H
	LD	(23692),A;SCR_CT - - ப, ஫㥬   "scroll?".
;
	LD	HL,(23635);믮 RESTORE.
	DEC	HL	;
	LD	(23639),HL;
;
	RES	7,(IY+1);襭  .  ப..
;
	LD	HL,start	;७ "१"  
	LD	DE,23464;TSTACK - ६ ⥪ ।
	LD	BC,quit-start;Basic128.  襭 ᯥ
	LDIR		;४ ࠡ ⥬   "48 BASIC", ⠪   "128 BASIC".
;
_SP	LD	HL,0	; _SP+1 ࠭  ERR_SP, 
	LD	(23613),HL;ᥩ ⠭.
;
	LD	SP,HL	;⥪ 饭.   ⥯
			; ࠡ稪 訡 ⥭ ZX Spectrum.
	LD	HL,quit	;⮢    ⥪ 
			; ࠡ⪨ 室  ⥬ ZX Spectrum, ᫨ CY=1.
	JR	C,RAMT1
;
	LD	A,(L23833+1); ६ TR-DOS:  ᪮  㬮砭.
	LD	(23833),A;. . ᪮  㬮.
;
r_strt	LD	HL,23464;  ⥪   "१", ࠧ饭  TSTACK.
RAMT1	PUSH	HL
RAMTOP	LD	HL,65367;  ⥪ 祭 RAMTop.
	PUSH	HL	; BASIC-.  ᥣ 65367,  CODE - - 짮⥫.
	EI
	JP	7878	;⠭ RAMTop ( CLEAR
			; BASIC,   ⪨ ࠭  BASIC-६e).
			;  7878 ⢨ 
			;, ᥭ  ⥪  祭 RAMTop, . .
			;  quit,   "१".
;
;
;""  㧪 ணࠬ   ,
;㤥 ᯮ   23464 (TSTACK).
;  ࠡ   ᪮஢  
;楤   TR-DOS.
;
; ⮣  "१" ᪠  㧪 BASIC.
start	LD	HL,(23635);뤥 BASIC- 
	LD	BC,(23782);㧪 BASIC-ணࠬ.
	PUSH	HL
	PUSH	HL	;
	CALL	5717	;楤 MAKE_ROOM
	POP	HL	;
;
	LD	BC,(23784);  ⠭
	ADD	HL,BC	;६
	LD	(23627),HL;VARS
	POP	HL
	JR	a_strt+3
;
; ⮣  "१" ᪠  㧪 CODE.
a_strt	LD	HL,#2121; ⢥ ࠭ 㤥  㧪.
	LD	DE,(23787)
l_strt	LD	BC,#0505; ⢥ ࠭ 㤥 <- ᥪ஢>*256+5.
	CALL	15635	;㧪 ணࠬ 楫묨 ᥪࠬ.
			; 襭   ४,
			; ⭮ ᡮ  ⥮᪠.
;
a_runC	LD	BC,#0101; ᪥ <C>  ⢥ ࠭
			;㤥  ᪠.  ५㥬 ணࠬ  ,
			;ਬ GENS, ॡ, ⮡  BC   ᪠.
runC	PUSH	BC	;᫨ <B> 㦠  ᪠,  㤥 NOP\NOP,
			;᫨ <B> 㦠,   ᪠ - 㤥 NOP\RET.
	RET
;
	LD	HL,(23641)
	DEC	HL
	LD	(HL),128	; થ  BASIC-ண.
	INC	HL
	LD	(HL),#AA	; ᥭ ⮣ થ  
			; 㧨  CRIME SANTA CLAUS  FFC.
	INC	HL
	LD	A,(HL)	;ਥ  ࠡ⪠
	LD	B,A	;ப .
	INC	HL	;
	OR	(HL)	;
	JR	NZ,runB+1;
runB	RET		;᫨   <B>-ண.,   㤥 NOP.
	LD	H,(HL)
	LD	L,B
	LD	(23618),HL;-  ப  NEWPPC
	SET	7,(IY+1)	; -  믮 ண.
	JP	7030	; BASIC-.
;
; 樨  "筮" 室  GBoot'
quit	LD	A,(23661);६ S_TOP, ᯮ㥬
			; "" 楫.  0,
	OR	A	;᫨ ᪪ GBoot'   । TR-DOS.
	EI
	RET	NZ	;  ⥬ ZX Spectrum.
	LD	HL,23746
	PUSH	HL
	JP	15616;  । TR-DOS.  RETURN 㤥 
			;  ⥬ ZX Spectrum.
;
;
