MOD ざざん

HSP_2014_step_ar_sub01.hsp

FILE名:FILE_step_ar_sub01.hsp
データをnibble単位で管理w
#module int2char_01
//      引数(0〜15)の16進表記を返す
//      引数の値が0〜15でないとerror
#defcfunc one_at_int2char_02 int cc
        if (cc<=-1)|(cc>=16){
                logmes "one_at_int2char内のerror"
                logmes "引数は0〜15の値にして下さい"
                logmes "引数の値:"+str(cc)
                return -1
        }
        switch cc
        case 0 :return "0"
        case 1 :return "1"
        case 2 :return "2"
        case 3 :return "3"
        case 4 :return "4"
        case 5 :return "5"
        case 6 :return "6"
        case 7 :return "7"
        case 8 :return "8"
        case 9 :return "9"
        case 10 :return "a"
        case 11 :return "b"
        case 12 :return "c"
        case 13 :return "d"
        case 14 :return "e"
        case 15 :return "f"
        swend
        return -1
#global

#module step_ar_sub_01 ar_cts,ar_flag1,ar_flag2
#define MOD_NAME "step_ar_sub_01"
#modinit int
        dim ar_cts,8
        repeat 8
        ar_cts.cnt=-1
        loop
        ar_flag1=-1
        ar_flag2=-1
        return
#modcfunc local get_toString local s
        chk_obj@step_ar_sub_01 thismod
        s=""
        repeat 8
        s+=one_at_int2char_02(ar_cts.cnt)
        loop
        return s
#modcfunc local get_toString_add_flag local ss
        ss=get_toString@step_ar_sub_01(thismod)
        ss+=one_at_int2char_02(ar_flag1)
        ss+=one_at_int2char_02(ar_flag2)
        return ss
#modfunc local chk_obj local i
        for i,0,8,1
        if ar_cts.i==-1{
                logmes "chk_obj@"+MOD_NAME+" 内のerror"
                logmes "ar_cts."+i+"の値が未定義です"
                logmes "ar_cts."+i+"i:"+ar_cts.i
                dump@step_ar_sub_01 thismod
                return
        }
        next
        if ar_flag1==-1{
                logmes "chk_obj@"+MOD_NAME+" 内のerror"
                logmes "ar_flag1の値が未定義です"
                logmes "ar_flag1:"+ar_flag1
                dump@step_ar_sub_01 thismod
                return
        }
        if ar_flag2==-1{
                logmes "chk_obj@"+MOD_NAME+" 内のerror"
                logmes "ar_flag2の値が未定義です"
                logmes "ar_flag2:"+ar_flag2
                dump@step_ar_sub_01 thismod
                return
        }
        logmes "chk_obj@"+MOD_NAME+" : check OK" 
        return          
#define FUNC_NAME "set_flag@"
#modfunc local set_flag int p_flag1,int p_flag2
        if (p_flag1 < 0)||(p_flag1>=16){
                logmes FUNC_NAME+MOD_NAME+" 内のerror"
                logmes "引数p_flag1の値は0以上15以下の値にして下さい"
                logmes "p_flag1:"+p_flag1
                dialog FUNC_NAME+MOD_NAME+" 内のerror\n引数p_flag1の値は0以上15以下の値にして下さい\np_flag1:"+p_flag1,1,"error"
                return
        }
        if (p_flag2 < 0)||(p_flag2>=16){
                logmes FUNC_NAME+MOD_NAME+" 内のerror"
                logmes "引数p_flag2の値は0以上15以下の値にして下さい"
                logmes "p_flag2:"+p_flag2
                dialog FUNC_NAME+MOD_NAME+" 内のerror\n引数p_flag2の値は0以上15以下の値にして下さい\np_flag2:"+p_flag2,1,"error"
                return
        }
        ar_flag1=p_flag1
        ar_flag2=p_flag2
        return
#undef FUNC_NAME
#define FUNC_NAME "set_ar_two_youso@"
#modfunc local set_ar_two_youso int p,int p_index
        if (p < 0)||(p>=256){
                logmes FUNC_NAME+MOD_NAME+" 内のerror"
                logmes "引数pの値は0以上255以下の値にして下さい"
                logmes "p:"+p
                dialog FUNC_NAME+MOD_NAME+" 内のerror\n引数pの値は0以上255以下の値にして下さい\np:"+p,1,"error"
                return
        }
        if (p_index < 0)||(p_index >=4){
                logmes FUNC_NAME+MOD_NAME+" 内のerror"
                logmes "引数p_indexの値は0以上3以下の値にして下さい"
                logmes "p_index:"+p_index
                dialog FUNC_NAME+MOD_NAME+" 内のerror\n引数p_indexの値は0以上3以下の値にして下さい\np_index:"+p_index,1,"error"
                return
        }
        loc_index=p_index*2
        ar_cts.loc_index=p/16
        loc_index++
        ar_cts.loc_index=p\16
        return
#undef FUNC_NAME
#define FUNC_NAME "set_ar_youso@"
#modfunc local set_ar_youso int p,int p_index
        if (p < 0)||(p>=16){
                logmes FUNC_NAME+MOD_NAME+" 内のerror"
                logmes "引数pの値は0以上15以下の値にして下さい"
                logmes "p:"+p
                dialog FUNC_NAME+MOD_NAME+" 内のerror\n引数pの値は0以上15以下の値にして下さい\np:"+p,1,"error"
                return
        }
        if (p_index < 0)||(p_index >=8){
                logmes FUNC_NAME+MOD_NAME+" 内のerror"
                logmes "引数p_indexの値は0以上7以下の値にして下さい"
                logmes "p_index:"+p_index
                dialog FUNC_NAME+MOD_NAME+" 内のerror\n引数p_indexの値は0以上7以下の値にして下さい\np_index:"+p_index,1,"error"
                return
        }

        ar_cts.p_index=p
        return
#undef FUNC_NAME
#modcfunc local get_ar_youso int p
        return ar_cts.p
#modfunc local dump
        repeat 8
                logmes ""+ar_cts.cnt
        loop
        logmes "["+ar_flag1+ar_flag2+"]"
        return

;#modfunc local chk_and_dump
;       repeat 8
;               logmes ""+ar_cts.cnt
;       loop
;       logmes "["+ar_flag1+ar_flag2+"]"
;       chk_obj@step_ar_sub_01 thismod
;       return
#global
/*//
newmod a2,step_ar_sub_01
;repeat 8
;       mes get_ar_youso@step_ar_sub_01(a2,cnt)
;loop
        set_ar_two_youso@step_ar_sub_01 a2,0,0
        set_ar_two_youso@step_ar_sub_01 a2,255,0
        set_ar_two_youso@step_ar_sub_01 a2,-1,0
        set_ar_two_youso@step_ar_sub_01 a2,256,0
        
        set_ar_two_youso@step_ar_sub_01 a2,0,-1
        set_ar_two_youso@step_ar_sub_01 a2,0,0  
        set_ar_two_youso@step_ar_sub_01 a2,0,1  
        set_ar_two_youso@step_ar_sub_01 a2,0,2  
        set_ar_two_youso@step_ar_sub_01 a2,0,3
        set_ar_two_youso@step_ar_sub_01 a2,0,4  
        set_ar_two_youso@step_ar_sub_01 a2,$01,0
        set_ar_two_youso@step_ar_sub_01 a2,$23,1
        set_ar_two_youso@step_ar_sub_01 a2,$45,2
        set_ar_two_youso@step_ar_sub_01 a2,$67,3
        set_ar_two_youso@step_ar_sub_01 a2,$89,4
        
        set_flag@step_ar_sub_01 a2,16,0
        set_flag@step_ar_sub_01 a2,15,0
        set_flag@step_ar_sub_01 a2, 0,0
        set_flag@step_ar_sub_01 a2,-1,0
        set_flag@step_ar_sub_01 a2,0,16
        set_flag@step_ar_sub_01 a2,0,15
        set_flag@step_ar_sub_01 a2,0,0
        set_flag@step_ar_sub_01 a2,0,-1
        dump@step_ar_sub_01 a2
newmod a,step_ar_sub_01
        set_ar_youso@step_ar_sub_01 a,-1,0
        set_ar_youso@step_ar_sub_01 a,0,0
        set_ar_youso@step_ar_sub_01 a,15,0
        set_ar_youso@step_ar_sub_01 a,16,0
        
        
        set_ar_youso@step_ar_sub_01 a,0,-1
        set_ar_youso@step_ar_sub_01 a,0,0       
        set_ar_youso@step_ar_sub_01 a,0,1       
        set_ar_youso@step_ar_sub_01 a,0,2       
        set_ar_youso@step_ar_sub_01 a,0,3
        set_ar_youso@step_ar_sub_01 a,0,4       
        set_ar_youso@step_ar_sub_01 a,0,5       
        set_ar_youso@step_ar_sub_01 a,0,6
        set_ar_youso@step_ar_sub_01 a,0,7
        set_ar_youso@step_ar_sub_01 a,0,8       
        
        set_ar_youso@step_ar_sub_01 a,0,0       
        set_ar_youso@step_ar_sub_01 a,1,1       
        set_ar_youso@step_ar_sub_01 a,2,2       
        set_ar_youso@step_ar_sub_01 a,3,3
        set_ar_youso@step_ar_sub_01 a,4,4       
        set_ar_youso@step_ar_sub_01 a,5,5       
        set_ar_youso@step_ar_sub_01 a,6,6
        set_ar_youso@step_ar_sub_01 a,15,7
        set_ar_youso@step_ar_sub_01 a,16,8      
;       set_ar_youso@step_ar_sub_01 a,0,1,0
;       set_ar_youso@step_ar_sub_01 a,2,3,1
;       set_ar_youso@step_ar_sub_01 a,3,4,2
;       set_ar_youso@step_ar_sub_01 a,5,6,3
;       set_ar_youso@step_ar_sub_01 a,7,8,4
        
;       set_ar_youso@step_ar_sub_01 a,$01,0
;       set_ar_youso@step_ar_sub_01 a,$23,1
;       set_ar_youso@step_ar_sub_01 a,$45,2
;       set_ar_youso@step_ar_sub_01 a,$67,3
;       set_ar_youso@step_ar_sub_01 a,$89,4
        
        set_flag@step_ar_sub_01 a,-1,0
        set_flag@step_ar_sub_01 a,0,0
        set_flag@step_ar_sub_01 a,15,0
        set_flag@step_ar_sub_01 a,16,0
        set_flag@step_ar_sub_01 a,0,-1
        set_flag@step_ar_sub_01 a,0,0
        set_flag@step_ar_sub_01 a,0,15
        set_flag@step_ar_sub_01 a,0,16
        dump@step_ar_sub_01 a
//*/
        newmod TMP_OBJ,step_ar_sub_01
        chk_obj@step_ar_sub_01 TMP_OBJ
        set_ar_youso@step_ar_sub_01 TMP_OBJ,0,0
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,1,1
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,2,2
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,3,3
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,4,4
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,5,5
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,6,6
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,7,7
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_ar_youso@step_ar_sub_01 TMP_OBJ,0,8
        chk_obj@step_ar_sub_01 TMP_OBJ
        
        set_flag@step_ar_sub_01 TMP_OBJ,0,1
        chk_obj@step_ar_sub_01 TMP_OBJ
        mes get_toString@step_ar_sub_01(TMP_OBJ)
        mes get_toString_add_flag@step_ar_sub_01(TMP_OBJ)
        stop
;mes get_ar_youso@step_ar_sub_01(a,9)
/*TEST CODE コメントアウト
//      インスタンスの配列サイズ16でオブジェクト生成
newmod a,step_ar_3,16

//      インスタンスのindexを0で初期化
set_index@step_ar_3 a,0

set_string@step_ar_3 a,"abc_efg"
cnv_str2ar@step_ar_3 a

clear_string@step_ar_3 a

//      インスタンスのindexを0で初期化
set_index@step_ar_3 a,0

//      配列の最大を取得
n=0
get_max@step_ar_3 a,n

//      配列の中身dump
repeat n
        mes get@step_ar_3(a)
        loop
        
//      配列のlength取得
get_ar_length@step_ar_3 a,m
mes m

//      数値配列を文字列化してgetして表示
s=""
mes get_toString@step_ar_3(a,s)

/*TEST CODE コメントアウト

//      インスタンスの配列サイズ16でオブジェクト生成
newmod a,step_ar_3,16

//      インスタンスのindexを0で初期化
set_index@step_ar_3 a,0
        
//      インスタンス代入
step_set@step_ar_3 a,'a'
step_set@step_ar_3 a,'b'
step_set@step_ar_3 a,'c'
;step_set@step_ar_3 a,1
;step_set@step_ar_3 a,2

//      配列の最大を更新
set_max@step_ar_3 a

//      インスタンスのindexを0で初期化
set_index@step_ar_3 a,0

//      配列の最大を取得
n=0
get_max@step_ar_3 a,n

//      配列の中身dump
repeat n
        mes get@step_ar_3(a)
        loop
        
//      配列のlength取得
get_ar_length@step_ar_3 a,m
mes m

//      数値配列を文字列化してgetして表示
s=""
mes get_toString@step_ar_3(a,s)

//*/

/*TEST CODE コメントアウト
newmod a,step_ar,16
repeat 16
        set@step_ar a,cnt,cnt
        loop
repeat 20
        mes get@step_ar(a)
        loop
//*/

README