#define global single_mode 0
#define global multi_mode 1
randomize
//#include "INSN.hsp"
title "FXe ver0.1"
onexit *l_end

#include "YSSTM_sub_wnd.hsp"
screen 0,865,700
cls 1
font "",18
objmode objmode_usefont  
sdim _4note,30000 
notesel _4note
sdim var4mesbox,10000
var4mesbox = "$> command?\n\n"
pos 20,20
mesbox var4mesbox,575+250,255
ID4mesbox = stat
/*
pos 575,295
objsize 100,25
button "XV",*l_show_many_var
*/
gosub *set_show_mesbox
gosub *set_SRC_mesbox
pos 20,295
objsize 125,25
font "",18
objmode objmode_usefont 
gsel 0
#if multi_mode == 0
button "stack",*l_push_stack
button "math",*l_push_math
button "math_ass",*l_push_math_ass
button "math_logi_A",*l_push_math_logi_A
button "math_logi_B",*l_push_math_logi_B
button "math_logi_ass",*l_push_math_logi_ass
button "reg_math",*l_push_reg_math
button "reg_math_logi",*l_push_reg_math_logi
mes ""
button "README",*l_exec_README
//button "}jA",*l_exec_manual
button "THANKS",*l_exec_THANKS
button "Ql",*l_exec_bunnkenn
mes ""
button "Multi mode",*exec_multi
button "}jA",*l_exec_do_manual
pos 155,295
button "setter",*l_push_setter
button "move_reg",*l_push_move_reg
button "move",*l_push_move
button "heap",*l_push_heap
button "show",*l_push_show
button "IO",*l_push_IO
button "reg str",*l_push_reg_str
button "system comm",*l_push_command
button "jump",*l_push_label_and_jump
pos 290,295
objsize 275,200
var4listbox = 0
font "",18
objmode objmode_usefont 
listbox var4listbox,100,""
ID4listbox = stat
objsize 100,25
button "select",*l_select
mes ""
sdim var4input,2000
objsize 400,20
input var4input,275,20,0
ID4input = stat
objsize 100,25
button "interpret",*l_interpret
pos 275+295,295
objsize 275,200
var4listbox_history = 0
sdim var4history_lb,2000
var4listbox_history = 0
var4history_lb = ""
font "",18
objmode objmode_usefont 
listbox var4listbox_history,100,var4history_lb
id4listbox_history = stat
objsize 150,25
button "XV",*l_chg_lb_history
mes ""
button "select history",*l_select_lb_history
goto *l_push_stack
stop
#endif
#if  multi_mode != 0
mes "interpret"
objsize 150,25
button "start",*l_interpret_begin

mes ""
var4start_line = 1
input var4start_line,150,20
ID4input_start_line = stat
button "restart",*l_interpret_restart_begin

mes ""
var4jump_line = 1
input var4jump_line,150,20
ID4input_jump_line = stat
button "jump",*l_interpret_jump_begin
mes ""
button "single mode",*l_exec_single
button "}jA",*l_exec_do_manual
#endif
stop
*listbox_redraw
	clrobj ID4listbox,ID4listbox
pos 290,295
objsize 275,200
var4listbox = 0
font "",18
objmode objmode_usefont 
listbox var4listbox,100,""
ID4listbox = stat
	return
*l_select
	if var4listbox != -1{
		notesel _4note
		noteget var4input,var4listbox
		objprm ID4input,var4input
	}
	stop
*l_push_stack
	_4note = insn_strs_stack
	objprm ID4listbox,insn_strs_stack
	stop
*l_push_math
	_4note = insn_strs_math
	objprm ID4listbox,insn_strs_math
	stop
*l_push_math_ass
	_4note = insn_strs_math_ass
	objprm ID4listbox,insn_strs_math_ass
	stop
*l_push_math_logi_A
	_4note = insn_strs_math_logi_A
	objprm ID4listbox,insn_strs_math_logi_A
	stop
*l_push_math_logi_B
	_4note = insn_strs_math_logi_B
	objprm ID4listbox,insn_strs_math_logi_B
	stop
*l_push_math_logi_ass
	_4note = insn_strs_math_logi_ass
	objprm ID4listbox,insn_strs_math_logi_ass
	stop
*l_push_heap
	_4note = insn_strs_heap
	objprm ID4listbox,insn_strs_heap
	stop
*l_push_reg_math
	_4note = insn_strs_reg_math
	objprm ID4listbox,insn_strs_reg_math
	stop
*l_push_reg_math_logi
	_4note = insn_strs_reg_math_logi
	objprm ID4listbox,insn_strs_reg_math_logi
	stop
*l_push_setter
	_4note = insn_strs_setter
	objprm ID4listbox,insn_strs_setter
	stop
*l_push_move
	_4note = insn_strs_move
	objprm ID4listbox,insn_strs_move
	stop
*l_push_move_reg
	_4note = insn_strs_move_reg
	objprm ID4listbox,insn_strs_move_reg
	stop
*l_push_show
	_4note = insn_dump_show
	objprm ID4listbox,insn_dump_show
	stop
*l_push_command
	_4note = insn_strs_command
	objprm ID4listbox,insn_strs_command
	stop
*l_push_IO
	_4note = insn_strs_IO
	objprm ID4listbox,insn_strs_IO
	stop
*l_push_reg_str
	_4note = insn_reg_str_command
	objprm ID4listbox,insn_reg_str_command
	stop
*l_push_label_and_jump
	_4note = insn_label_and_jump
	objprm ID4listbox,insn_label_and_jump
	stop
*l_chg_lb_history
	gsel 0
	get_src_rev
	get_rev_str var4history_lb
	objprm id4listbox_history,var4history_lb
	stop
*l_select_lb_history
	gsel 0
	var4input = get_src_ary_youso(var4listbox_history)
	objprm ID4input,var4input
	stop
*exec_multi
	exec "Yoshisutemu2025_tiny_lang_multi_0_1.exe"
	stop
*l_exec_single
	exec "Yoshisutemu2025_tiny_lang_single_0_1.exe"
	stop
*l_exec_do_manual
	exec "yt2025_lang_manual_0_1.exe"
	stop
*l_end
	dialog "I܂H",3
	if stat == 6{
		end
	}
	stop
*l_tmp
	stop