MAIN START
	LD GR0,=1
	LD GR2,=3       ; n = 3
	LD GR3,=0
	LAD GR1,ROOT
	CALL LPROC
	LD GR0,=2
	CALL LPROC
	LD GR3,=1
	CALL LPROC
	RET
ROOT DC LIST
LIST DC E3,#000A    ;Xg̍ŏ̗vfivfPj
E1 	DC E2,#000B
E2	DC #0000,#0000 ;Xg̍Ō̗vf
E3	DC E1,#000C
	END
;------------------
LPROC START
	RPUSH
	LD GR4,GR2  ;GR4 <-- n
LP LD GR2,0,GR1  ;̗vfǂ
	JZE FIN     ; n > N ?
	SUBA GR4,=1
	JZE NEXT   ;vf NɒBH
	LD GR1,GR2 ;aG ̃f[^̃AhX
	JUMP LP
	;---------------
NEXT LD GR3,LTBL,GR3
	JUMP 0,GR3 ;w肳ꂽփWv
LINS LD GR4,GR2
	CALL EGET ;GR2<--}vf̐擪AhX
	ST GR2,0,GR1 ;bE
	ST GR4,0,GR2 ;}vf̂Pڂݒ
	ST GR0,1,GR2
	JUMP FIN
	;----------------------
LDEL LD GR4,0,GR2 ;GR4<--vf n+1̐擪AhX
	ST GR4,0,GR1 ;vfn-1̂PڂĐݒ
	CALL EFREE   ;폜ꂽvfn̗̈
FIN RPOP
	RET
LTBL DC LINS ;̕AhXe[u
	DC LDEL
	END
;----------------
EGET START

	RET

	END
;----------------
;폜vf̃AhXGR2ɓEFREEĂ΂B
;폜vf̐擪AhX#FFFFi[ĉB
EFREE START
	LAD GR0,#FFFF
	ST GR0,0,GR2
	RET
	END
;--------------
