ds_name db 'MOJ\WORD_T',0

;**********************************  履歴を残しておく

db 'WORD_T13.HD6 / 1995  1 22 見やすく整理',0
db 'WORD_T12.HD6 / 1993 12 14 色の調整',0
db 'WORD_T8.HD6 / 1993 10 18 WORD_T4.HD6より 表示部分',0 
db '824/828/832',0


;*************************************************************
;システムに渡すウインドウ情報
; ウインドウの設計    横サイズ 640   縦サイズ 200   X1 = 0  Y1 = 280

look_me:       call sub_esi
       dd 0,0
       dw 1,0          ;wind need
       dw 640,250,0,230  ;sz_x sz_y off x off y
       dw 0,1          ;waku iro  meniro
       dw 0,0

;*************************************************
;  このモジュールはテスト部分の表示のみ行います｡
;*************************************************

;**************************
;箱や文字のデータです↓
;**************************       
;--------------------------------------------------
;表示部分の設計

;続ける場合はリターンかマウスを押して、終わる時はここを押して

; [ 問題   ]  [  りんご                     ]
; [ 回答   ]  [  aple                       ]
; [ 正解   ]  [  apple                      ]
; [コメント]  [  もう一度 ね                ]
;----------------------------------------------------

yosuboxdt:      call sub_edi
	        dw 1,105*5,20,20,2,0,0,10,10,1

yosuzidt:    call sub_edi
	    dw 1,15,22,3,0,40,1
 db ' 続ける場合はリターンかマウスを、終わる時はこの箱を押してね。',0

sokuzidt:    call sub_edi
	    dw 1,15,22,3,0,40,1
 db ' ↑ 答えを書いて下さい｡  出来たを押すかリターンキーで回答です｡',0


rokzidt1:	call sub_edi
		dw 1,12,135,3+30,150,0,3
		db '[ 経験値 ]',0
		db '[ 勝ち数 ]',0
		db '[ 負け数 ]',0

rokzidt2:	call sub_edi
		dw 1,15,135+88,3+30,150,0,3
		db '000',0
		db '000',0
		db '000',0,0,0,0,0

rokboxdt1:      call sub_edi
	        dw 1,105*4,20,135,2+30,0,0,4,5,1

mozidt1:	call sub_edi
		dw 1,13,20,5+30,0,50,4
		db '[ 問題 ]',0
		db '[ 回答 ]',0
		db '[ 正解 ]',0
		db '[ 評価 ]',0

boxdt1:      call sub_edi
      	     dw 4,8*10,20,20,4+30,0,50,15,5,1

monzidt:	call sub_edi
		dw 1,15,5,30+30,0,40,1
		db 90 dup (0)

kotazidt:	call sub_edi
		dw 1,15,5,30+50+30,0,40,1
		db 90 dup (0)

seizidt:	call sub_edi
		dw 1,15,5,30+50*2+30,0,40,1
		db 90 dup (0)

comezidt:	call sub_edi
		dw 1,15,8*13,30+50*3+30,0,40,1
		db 90 dup (0)

boxmon:      call sub_edi
	     dw 1,635,20,0,29+30,0,40,2,2,1

boxkota:      call sub_edi
       	      dw 1,635,20,0,29+50+30,0,40,3,6,1

boxsei:      call sub_edi
       	     dw 1,635,20,0,29+50*2+30,0,40,4,2,1

boxcome:      call sub_edi
              dw 1,635,20,0,29+50*3+30,0,40,5,5,1
;---------------------------------
;評価メッセージ
;-----------------------------------
good_dt:    call sub_edi
	    dw 1,15,8*13,30+50*3+30,0,40,1
	    db '良く出来たね ',0

osii_dt:    call sub_edi
    		dw 1,15,8*13,30+50*3+30,0,40,1
    		db 'おしい もう一度 ',0

from_dt:    call sub_edi
    		dw 1,15,8*13,30+50*3+30,0,40,1
    		db 'お初にお目にかかります｡',0

to_dt:    call sub_edi
    		dw 1,15,8*13,30+50*3+30,0,40,1
    		db 'ふふ､勝負しようってか',0

;***************************************
;プログラムの部分です
;**************************************
;システムとのやり取りです
;ウインドウとモジュールの初期か

paint_wd:
    call    monzidt        ;自分のモジュール内の番地を他のモジュールが
    add     edi,14         ;参照出来る様に共通データ領域に書き込みます｡
    KAKU    824,edi	   ;本当はこう言う使い方はしませんが手抜きです｡

    call    kotazidt
    add     edi,14
    KAKU    828,edi

    call    seizidt
    add     edi,14
    KAKU    832,edi

    call    rokzidt2
    add     edi,14
    KAKU    800+(4*18),edi

    WD_LEFT			;ウインドウから離脱しています｡
    ret
;------------------------------------------------------
;画面の表示並びにウインドウの書き直しです｡
;場合によりシステムからもコールされます｡

re_paint:

	WD_CLS 1
        BOX boxdt1,4		;箱を四つ書きます｡
        BOX rokboxdt1,1
        call    p_g_box

    MOZI mozidt1		;字を書きます｡
    MOZI monzidt
    MOZI kotazidt
    MOZI seizidt
    MOZI comezidt
    MOZI rokzidt1
    MOZI rokzidt2
        ret
;-----------------------------------------
;他のモジュールから呼ばれた時システムを介してここに来ます｡
;戻る時は直接呼び元に帰ります｡

be_called: 

    YOMU    ax,300	;共通データ領域に他のモジュールが
    			;書き込んだ命令を読みます｡
    cmp    ax,1
    je    okiru
    cmp    ax,2
    je    put_1
    cmp    ax,3
    je    put_2
    cmp    ax,4
    je    put_3
    cmp    ax,5
    je    put_4
    cmp    ax,6
    je    put_5
    cmp    ax,7
    je    put_6
    cmp    ax,8
    je    put_7
    cmp    ax,9
    je    yosuno

    ret
;-----------------------------------
;-自分の出しているウインドウにマウスが入るとここが呼ばれます｡
;このモジュールはウインドウから離脱しているのでコールされません｡

mouse_in:	    ret

;システム関連終わり↑
;****************************************************************

;個別のサブルーチン↓

;------------------------箱を四つ書きます｡
p_g_box:
        BOX boxmon,1
        BOX boxkota,1
        BOX boxsei,1
        BOX boxcome,1
    ret

;--------------------------画面の書き直しです｡
okiru:
	    call    re_paint    ;画面の表示
	    ret                 ;back to word_o

;------------箱を書いて字を消し､新たな問題を書きます｡
put_1:
    call    p_g_box
    MOZI monzidt        ;問題の表示
    BOX rokboxdt1,1
    MOZI rokzidt1
    MOZI rokzidt2

        BOX yosuboxdt,1		;続けるか終わるかのメッセージの箱
	MOZI sokuzidt		;答えの入力を促す

    ret
;-------------------正解を表示します｡
put_2:
	    MOZI kotazidt
	    MOZI seizidt        ;答えを表示

        BOX yosuboxdt,1		;続けるか終わるかのメッセージ
	MOZI yosuzidt
		ret

;-------------マウスが終わろうとしているかの検査を関数に差せています｡
;---結果はそのまま持って呼び元に帰っています｡

yosuno:
	MOU yosuboxdt,1		;終わろうとしているのか
	ret

put_3:
	    MOZI good_dt        ;全て同じだから褒める
		ret

put_4:
	    MOZI osii_dt        ;間違いでした｡
	    MOZI seizidt        ;間違いでした｡
		ret

;-----------------------自分のウインドウを消去しています｡
put_5:
	    WD_ERZ 1
	    ret

put_6:
    call    re_paint
    MOZI    from_dt
    ret


put_7:
    call    re_paint
    MOZI    to_dt
    ret


