-#include "font_rom.nsh"
+#include "font_rom.nsl"
/**
* font control module
func_out fo_write_vram(o_vram_adrs, o_vram_wdata) ; // VRAM\82É8\83r\83b\83g\8f\91\82«\82±\82Þ
func_out fo_read_vram(o_vram_adrs) : i_vram_rdata ; // VRAM\82Ì8\83r\83b\83g\93Ç\82Ý\8d\9e\82Ý
- func_out fo_complete_call() ; // font rom control\83R\83}\83\93\83h\8a®\97¹
+ func_out busy_call() ;
}
module from_ctrl {
font_rom U_FONT_ROM ; // FONT ROM SUB MODULE
wire w_vram_adrs[14] ;
func_self fs_font_read( w_code_num ):w_font_data ;
func_self fs_adrs_exec( w_word_adrs, w_line_adrs ) : w_vram_adrs ;
+ func_self fs_complete_call() ; // font rom control\83R\83}\83\93\83h\8a®\97¹
wire w_line_value[14] ;
reg r_word[64] = 0 ;
reg r_start_adrs[14] = 0 ;
- reg r_cnt[3] = 0 ;
+ reg r_cnt[14] = 0 ;
+ reg busy_flag = 0 ;
+ if(
+ fi_write_word | fi_delete_word | fi_delete_line | fi_delete_display |
+ fi_slide_line | busy_flag
+ ) {
+ busy_call() ;
+ }
+
+ if(
+ fi_write_word | fi_delete_word | fi_delete_line | fi_delete_display |
+ fi_slide_line
+ ) {
+ busy_flag := 1 ;
+ } else if(fs_complete_call) {
+ busy_flag := 0 ;
+ }
+
+ // VRAM\82É1\95¶\8e\9a\8f\91\82
func fi_write_word seq {
{
r_word := fs_font_read( i_code_num ) ;
r_start_adrs := fs_adrs_exec(i_word_adrs, i_line_adrs) ;
}
for(r_cnt:=0;r_cnt<=7;r_cnt++) {
+ fo_write_vram(r_start_adrs, 8'd0) ;
fo_write_vram(r_start_adrs, r_word[63:56]) ;
{
r_start_adrs := r_start_adrs + 14'd40 ;
r_word := r_word<<8 ;
}
}
+ fs_complete_call() ;
}
func fi_delete_word seq {
+ r_start_adrs := fs_adrs_exec(i_word_adrs, i_line_adrs) ;
+
+ for(r_cnt:=0;r_cnt<=7;r_cnt++) {
+ fo_write_vram(r_start_adrs, 8'd0) ;
+ r_start_adrs := r_start_adrs + 14'd40 ;
+ }
+ fs_complete_call() ;
}
func fi_delete_line seq {
+ r_start_adrs := fs_adrs_exec(6'd0, i_line_adrs) ;
+ for(r_cnt:=0;r_cnt<320;r_cnt++){
+ fo_write_vram(r_start_adrs, 8'd0) ;
+ r_start_adrs++ ;
+ }
+ fs_complete_call() ;
}
func fi_delete_display seq {
+ for(r_cnt:=0;r_cnt<9600;r_cnt++){
+ fo_write_vram(r_cnt, 8'd0) ;
+ }
+ fs_complete_call() ;
}
func fi_slide_line seq {