*LOG_Define
numalias LOG_MAX_VIEWLINE,10
numalias LOG_OUTPUT_ENABLE,1

defsub LogInit
defsub LogOutput
defsub LogView
defsub LogClear

numalias LOG_VARNUM_EXTERNAL,600
numalias LOG_Text,LOG_VARNUM_EXTERNAL
numalias LOG_Count,LOG_VARNUM_EXTERNAL+1

numalias LOG_VARNUM_GLOBAL,2000
numalias LOG_StoredStart,LOG_VARNUM_GLOBAL
numalias LOG_StoredEnd,LOG_VARNUM_GLOBAL+1000
return

*LogInit
mov %LOG_Count,0
return

*LogOutput
getparam $LOG_Text
if LOG_OUTPUT_ENABLE!=1 return
mov %LOG_Text,LOG_StoredStart+%LOG_Count
mov $%LOG_Text,$LOG_Text
inc %LOG_Count
return

; ログを見たいときのみ呼ぶ
; 普段はコール箇所をコメントアウトしておく
*LogView
mov %LOG_Text,LOG_StoredStart
*LogView_loop
for %LOG_Count=1 to LOG_MAX_VIEWLINE
inc %LOG_Text
$%LOG_Text
 
next
click
if $%LOG_Text="":end
if %LOG_Text>LOG_StoredEnd end
textclear
goto *LogView_loop


; ログを消したいときのみ呼ぶ
; 普段はコール箇所をコメントアウトしておく
*LogClear
for %LOG_Text=LOG_StoredStart to LOG_StoredEnd
	mov $%LOG_Text,""
next
end