;Resea 1 Shaptor (Main)
;(C)Resea Project

;Where?
org	0x7c00

;=========================
;Set
;=========================

set:

.videomode:
mov	ax,0x4f02
mov	bx,0x101
int	0x10

call	scrput_resea

;=========================
;Start af
;=========================

af_start:
call	scrput_af

af:
mov	ah,0x00

.lp:
mov	al,0
int	0x16
cmp	al,0
je	.lp

call	scrput_set
call	scrput


;=========================
;Analysis commands
;=========================


cmd_analysis:

cmp	al,"c"
je near	cmd_analysis_c_l
cmp	al,"w"
je near	cmd_analysis_w_a
cmp	al,"o"
je near	cmd_hello

jmp	cmd_analysis_err

;=========================
;af (other)
;=========================
 
af_next:
call	scrput_nline
call	scrput_af
jmp	af
 
key_rs:
mov	ah,0x00
mov	al,0
int	0x16
ret

cmd_analysis_first:
call	key_rs
call	scrput_set
call	scrput
ret
 
cmd_analysis_err:
call	scrput_set
call	scrput_nline
mov	al,"e"
call	scrput
mov	al,"r"
call	scrput
mov	al,"r"
call	scrput
jmp	af_next


;=========================
;Analysis commands (close)
;=========================


cmd_analysis_c_l:
call	cmd_analysis_first

cmp	al,"l"

je	.cmd_analysis_c_l_o
jmp	cmd_analysis_err

.cmd_analysis_c_l_o:
call	cmd_analysis_first

cmp	al,"o"

je	.cmd_analysis_c_l_o_s
jmp	cmd_analysis_err

.cmd_analysis_c_l_o_s:
call	cmd_analysis_first

cmp	al,"s"

je	.cmd_analysis_c_l_o_s_e
jmp	cmd_analysis_err

.cmd_analysis_c_l_o_s_e:
call	cmd_analysis_first

cmp	al,"e"

je near	cmd_close
jmp	cmd_analysis_err


;=========================
;Command (close)
;=========================


cmd_close:
call	scrput_nline

mov	al,"c"
call	scrput
mov	al,"l"
call	scrput
mov	al,"o"
call	scrput
mov	al,"s"
call	scrput
mov	al,"e"
call	scrput
mov	al,"d"
call	scrput

cli

.hlt:
hlt
jmp	.hlt


;=========================
;Analysis commands (wakaran)
;=========================

cmd_analysis_w_a:
call	cmd_analysis_first

cmp	al,"a"

je	.cmd_analysis_w_a_k
jmp	cmd_analysis_err

.cmd_analysis_w_a_k:
call	cmd_analysis_first

cmp	al,"k"

je	.cmd_analysis_w_a_k_a
jmp	cmd_analysis_err



.cmd_analysis_w_a_k_a:
call	cmd_analysis_first

cmp	al,"a"

je	.cmd_analysis_w_a_k_a_r
jmp	cmd_analysis_err


.cmd_analysis_w_a_k_a_r:
call	cmd_analysis_first

cmp	al,"r"

je	.cmd_analysis_w_a_k_a_r_a
jmp	cmd_analysis_err


.cmd_analysis_w_a_k_a_r_a:
call	cmd_analysis_first

cmp	al,"a"

je	.cmd_analysis_w_a_k_a_r_a_n
jmp	cmd_analysis_err

.cmd_analysis_w_a_k_a_r_a_n:
call	cmd_analysis_first

cmp	al,"n"

je near	cmd_wakaran
jmp	cmd_analysis_err


;=========================
;Command (wakaran)
;=========================


cmd_wakaran:
call	scrput_nline

mov	al,"W"
call	scrput
mov	al,"h"
call	scrput
mov	al,"y"
call	scrput
mov	al,"?"
call	scrput
jmp	af_next

;=========================
;Command (hello)
;=========================


cmd_hello:
call	scrput_nline

mov	al,"h"
call	scrput
mov	al,"e"
call	scrput
mov	al,"l"
call	scrput
mov	al,"l"
call	scrput
mov	al,"o"
call	scrput

jmp	af_next

;=========================
;Scr Put (Resea 1 Shator)
;=========================


scrput_resea:
call	scrput_set
call	scrput_nline

mov	al,"R"
call	scrput
mov	al,"e"
call	scrput
mov	al,"s"
call	scrput
mov	al,"e"
call	scrput
mov	al,"a"
call	scrput

mov	al," "
call	scrput

mov	al,"1"
call	scrput

mov	al," "
call	scrput

mov	al,"S"
call	scrput
mov	al,"h"
call	scrput
mov	al,"a"
call	scrput
mov	al,"p"
call	scrput
mov	al,"t"
call	scrput
mov	al,"o"
call	scrput
mov	al,"r"
call	scrput
call	scrput_nline

mov	al,"("
call	scrput
mov	al,"C"
call	scrput
mov	al,")"
call	scrput
mov	al," "
call	scrput
mov	al,"R"
call	scrput
mov	al,"e"
call	scrput
mov	al,"s"
call	scrput
mov	al,"e"
call	scrput
mov	al,"a"
call	scrput
mov	al," "
call	scrput
mov	al,"P"
call	scrput
mov	al,"r"
call	scrput
mov	al,"o"
call	scrput
mov	al,"j"
call	scrput
mov	al,"e"
call	scrput
mov	al,"c"
call	scrput
mov	al,"t"
call	scrput
call	scrput_nline

ret


;=========================
;Scr Put (af -)
;=========================


scrput_af:
call	scrput_set
call	scrput_nline

mov	al,"-"
call	scrput
ret


;=========================
;Scr Put
;=========================


scrput:
int	0x10
ret

scrput_set:
mov	ah,0x0e
mov	bh,0
mov	bl,15
ret

scrput_nline:
call	scrput_set
mov	al,0x0d
call	scrput
mov	al,0x0a
call	scrput
ret


times	0x01fe-($-$$) db 0
db	0xaa
db	0x55

times	1474048 db 0
