OSDN Git Service

font rom 追加
authoryujiro_kaeko <zyangalianhamster01@gmail.com>
Sun, 4 Sep 2011 01:07:11 +0000 (10:07 +0900)
committeryujiro_kaeko <zyangalianhamster01@gmail.com>
Sun, 4 Sep 2011 01:07:11 +0000 (10:07 +0900)
asciiコード

Change-Id: I2b6f56af356dfb3d72a6308a6ff306ad7d96a093

VGADisplay/Verilog/from_ctrl.v
VGADisplay/src/font_rom.nsh [new file with mode: 0644]
VGADisplay/src/font_rom.nsl [new file with mode: 0644]
VGADisplay/src/from_ctrl.nsl

index c1694d3..51bedf0 100644 (file)
 /*\r
- Produced by NSL Core(version=20110302), IP ARCH, Inc. Wed Jul 20 21:25:09 2011\r
+ Produced by NSL Core(version=20110302), IP ARCH, Inc. Sun Sep 04 10:05:41 2011\r
  Licensed to Yujiro_Kaneko::yujiro.kaneko@overtone.co.jp :NON PROFIT USER:\r
 */\r
 \r
-module from_ctrl ( p_reset , m_clock );\r
+module from_ctrl ( p_reset , m_clock , i_word_adrs , i_line_adrs , i_code_num , fi_write_word , fi_delete_word , fi_delete_line , fi_delete_display , fi_slide_line , o_vram_adrs , o_vram_wdata , i_vram_rdata , fo_write_vram , fo_read_vram , fo_complete_call );\r
   input p_reset, m_clock;\r
+  input [5:0] i_word_adrs;\r
+  input [4:0] i_line_adrs;\r
+  input [7:0] i_code_num;\r
+  input fi_write_word;\r
+  input fi_delete_word;\r
+  input fi_delete_line;\r
+  input fi_delete_display;\r
+  input fi_slide_line;\r
+  output [13:0] o_vram_adrs;\r
+  output [7:0] o_vram_wdata;\r
+  input [7:0] i_vram_rdata;\r
+  output fo_write_vram;\r
+  output fo_read_vram;\r
+  output fo_complete_call;\r
+  wire [7:0] w_code_num;\r
+  wire [63:0] w_font_data;\r
+  wire [5:0] w_word_adrs;\r
+  wire [4:0] w_line_adrs;\r
+  wire [13:0] w_vram_adrs;\r
+  wire fs_font_read;\r
+  wire fs_adrs_exec;\r
+  wire [13:0] w_line_value;\r
+  reg [63:0] r_word;\r
+  reg [13:0] r_start_adrs;\r
+  reg [2:0] r_cnt;\r
+  wire [2:0] _net_2;\r
+  wire [7:0] _U_FONT_ROM_i_code_num;\r
+  wire [63:0] _U_FONT_ROM_o_font_data;\r
+  wire _U_FONT_ROM_fi_font_read;\r
+  wire _U_FONT_ROM_p_reset;\r
+  wire _U_FONT_ROM_m_clock;\r
+  reg _reg_3;\r
+  reg _reg_4;\r
+  reg _reg_5;\r
+  reg _reg_6;\r
+  wire _net_7;\r
+  wire _reg_3_goto;\r
+  wire _net_8;\r
+  wire _reg_4_goin;\r
+  wire _net_9;\r
+  wire _net_10;\r
+  wire _reg_4_goto;\r
+  wire _net_11;\r
+  wire _net_12;\r
+  wire _net_13;\r
+  wire _net_14;\r
+  wire _net_15;\r
+  wire _net_16;\r
+  wire _net_17;\r
+  wire _net_18;\r
+  wire _net_19;\r
+  wire _net_20;\r
+  wire _net_21;\r
+  wire _net_22;\r
+  wire _net_23;\r
+  wire _net_24;\r
+  wire _net_25;\r
+  wire _net_26;\r
+  wire _net_27;\r
+  wire _net_28;\r
+  wire _net_29;\r
+  wire _net_30;\r
+  wire _net_31;\r
+  wire _net_32;\r
+  wire _net_33;\r
+  wire _net_34;\r
+  wire _net_35;\r
+  wire _net_36;\r
+  wire _net_37;\r
+  wire _net_38;\r
+  wire _net_39;\r
+  wire _net_40;\r
+  wire _net_41;\r
+  wire _net_42;\r
+  wire _net_43;\r
+  wire _net_44;\r
+  wire _net_45;\r
+  wire _net_46;\r
+  wire _net_47;\r
+  wire _net_48;\r
+  wire _net_49;\r
+  wire _net_50;\r
+  wire _net_51;\r
+  wire _net_52;\r
+  wire _net_53;\r
+  wire _net_54;\r
+  wire _net_55;\r
+  wire _net_56;\r
+  wire _net_57;\r
+  wire _net_58;\r
+  wire _net_59;\r
+  wire _net_60;\r
+  wire _net_61;\r
+  wire _net_62;\r
+  wire _net_63;\r
+  wire _net_64;\r
+  wire _net_65;\r
+  wire _net_66;\r
+  wire _net_67;\r
+  wire _net_68;\r
+  wire _net_69;\r
+  wire _net_70;\r
+  wire _net_71;\r
+  wire _net_72;\r
+  wire _net_73;\r
+  wire _net_74;\r
+  wire _net_75;\r
+  wire _net_76;\r
+  wire _net_77;\r
+  wire _net_78;\r
+font_rom U_FONT_ROM (.p_reset(p_reset), .m_clock(m_clock), .fi_font_read(_U_FONT_ROM_fi_font_read), .o_font_data(_U_FONT_ROM_o_font_data), .i_code_num(_U_FONT_ROM_i_code_num));\r
 \r
+   assign  w_code_num = i_code_num;\r
+   assign  w_font_data = _U_FONT_ROM_o_font_data;\r
+   assign  w_word_adrs = i_word_adrs;\r
+   assign  w_line_adrs = i_line_adrs;\r
+   assign  w_vram_adrs = (w_line_value)+({8'b00000000,w_word_adrs});\r
+   assign  fs_font_read = _net_15;\r
+   assign  fs_adrs_exec = _net_16;\r
+   assign  w_line_value = ((_net_78)?14'b10010001000000:14'b0)|\r
+    ((_net_77)?14'b00000000000000:14'b0)|\r
+    ((_net_75)?14'b00000101000000:14'b0)|\r
+    ((_net_73)?14'b00001010000000:14'b0)|\r
+    ((_net_71)?14'b00001111000000:14'b0)|\r
+    ((_net_69)?14'b00010100000000:14'b0)|\r
+    ((_net_67)?14'b00011001000000:14'b0)|\r
+    ((_net_65)?14'b00011110000000:14'b0)|\r
+    ((_net_63)?14'b00100011000000:14'b0)|\r
+    ((_net_61)?14'b00101000000000:14'b0)|\r
+    ((_net_59)?14'b00101101000000:14'b0)|\r
+    ((_net_57)?14'b00110010000000:14'b0)|\r
+    ((_net_55)?14'b00110111000000:14'b0)|\r
+    ((_net_53)?14'b00111100000000:14'b0)|\r
+    ((_net_51)?14'b01000001000000:14'b0)|\r
+    ((_net_49)?14'b01000110000000:14'b0)|\r
+    ((_net_47)?14'b01001011000000:14'b0)|\r
+    ((_net_45)?14'b01010000000000:14'b0)|\r
+    ((_net_43)?14'b01010101000000:14'b0)|\r
+    ((_net_41)?14'b01011010000000:14'b0)|\r
+    ((_net_39)?14'b01011111000000:14'b0)|\r
+    ((_net_37)?14'b01100100000000:14'b0)|\r
+    ((_net_35)?14'b01101001000000:14'b0)|\r
+    ((_net_33)?14'b01101110000000:14'b0)|\r
+    ((_net_31)?14'b01110011000000:14'b0)|\r
+    ((_net_29)?14'b01111000000000:14'b0)|\r
+    ((_net_27)?14'b01111101000000:14'b0)|\r
+    ((_net_25)?14'b10000010000000:14'b0)|\r
+    ((_net_23)?14'b10000111000000:14'b0)|\r
+    ((_net_21)?14'b10001100000000:14'b0);\r
+   assign  _net_2 = (r_cnt)+(3'b001);\r
+   assign  _U_FONT_ROM_i_code_num = w_code_num;\r
+   assign  _U_FONT_ROM_fi_font_read = fs_font_read;\r
+   assign  _net_7 = (_net_2) <= (3'b111);\r
+   assign  _reg_3_goto = _net_8;\r
+   assign  _net_8 = _reg_3&_net_7;\r
+   assign  _reg_4_goin = _net_9;\r
+   assign  _net_9 = _reg_3&_net_7;\r
+   assign  _net_10 = ~((r_cnt) <= (3'b111));\r
+   assign  _reg_4_goto = _net_11;\r
+   assign  _net_11 = _reg_4&_net_10;\r
+   assign  _net_12 = _reg_4&(~_net_10);\r
+   assign  _net_13 = _reg_4&(~_net_10);\r
+   assign  _net_14 = _reg_4&(~_net_10);\r
+   assign  _net_15 = fi_write_word|_reg_6;\r
+   assign  _net_16 = fi_write_word|_reg_6;\r
+   assign  _net_17 = fi_write_word|_reg_5|_reg_6;\r
+   assign  _net_18 = _reg_4_goin|_reg_4|_reg_5;\r
+   assign  _net_19 = _reg_4_goin|_reg_3|_reg_4;\r
+   assign  _net_20 = (w_line_adrs)==(5'b11100);\r
+   assign  _net_21 = fs_adrs_exec&_net_20;\r
+   assign  _net_22 = (w_line_adrs)==(5'b11011);\r
+   assign  _net_23 = fs_adrs_exec&_net_22;\r
+   assign  _net_24 = (w_line_adrs)==(5'b11010);\r
+   assign  _net_25 = fs_adrs_exec&_net_24;\r
+   assign  _net_26 = (w_line_adrs)==(5'b11001);\r
+   assign  _net_27 = fs_adrs_exec&_net_26;\r
+   assign  _net_28 = (w_line_adrs)==(5'b11000);\r
+   assign  _net_29 = fs_adrs_exec&_net_28;\r
+   assign  _net_30 = (w_line_adrs)==(5'b10111);\r
+   assign  _net_31 = fs_adrs_exec&_net_30;\r
+   assign  _net_32 = (w_line_adrs)==(5'b10110);\r
+   assign  _net_33 = fs_adrs_exec&_net_32;\r
+   assign  _net_34 = (w_line_adrs)==(5'b10101);\r
+   assign  _net_35 = fs_adrs_exec&_net_34;\r
+   assign  _net_36 = (w_line_adrs)==(5'b10100);\r
+   assign  _net_37 = fs_adrs_exec&_net_36;\r
+   assign  _net_38 = (w_line_adrs)==(5'b10011);\r
+   assign  _net_39 = fs_adrs_exec&_net_38;\r
+   assign  _net_40 = (w_line_adrs)==(5'b10010);\r
+   assign  _net_41 = fs_adrs_exec&_net_40;\r
+   assign  _net_42 = (w_line_adrs)==(5'b10001);\r
+   assign  _net_43 = fs_adrs_exec&_net_42;\r
+   assign  _net_44 = (w_line_adrs)==(5'b10000);\r
+   assign  _net_45 = fs_adrs_exec&_net_44;\r
+   assign  _net_46 = (w_line_adrs)==(5'b01111);\r
+   assign  _net_47 = fs_adrs_exec&_net_46;\r
+   assign  _net_48 = (w_line_adrs)==(5'b01110);\r
+   assign  _net_49 = fs_adrs_exec&_net_48;\r
+   assign  _net_50 = (w_line_adrs)==(5'b01101);\r
+   assign  _net_51 = fs_adrs_exec&_net_50;\r
+   assign  _net_52 = (w_line_adrs)==(5'b01100);\r
+   assign  _net_53 = fs_adrs_exec&_net_52;\r
+   assign  _net_54 = (w_line_adrs)==(5'b01011);\r
+   assign  _net_55 = fs_adrs_exec&_net_54;\r
+   assign  _net_56 = (w_line_adrs)==(5'b01010);\r
+   assign  _net_57 = fs_adrs_exec&_net_56;\r
+   assign  _net_58 = (w_line_adrs)==(5'b01001);\r
+   assign  _net_59 = fs_adrs_exec&_net_58;\r
+   assign  _net_60 = (w_line_adrs)==(5'b01000);\r
+   assign  _net_61 = fs_adrs_exec&_net_60;\r
+   assign  _net_62 = (w_line_adrs)==(5'b00111);\r
+   assign  _net_63 = fs_adrs_exec&_net_62;\r
+   assign  _net_64 = (w_line_adrs)==(5'b00110);\r
+   assign  _net_65 = fs_adrs_exec&_net_64;\r
+   assign  _net_66 = (w_line_adrs)==(5'b00101);\r
+   assign  _net_67 = fs_adrs_exec&_net_66;\r
+   assign  _net_68 = (w_line_adrs)==(5'b00100);\r
+   assign  _net_69 = fs_adrs_exec&_net_68;\r
+   assign  _net_70 = (w_line_adrs)==(5'b00011);\r
+   assign  _net_71 = fs_adrs_exec&_net_70;\r
+   assign  _net_72 = (w_line_adrs)==(5'b00010);\r
+   assign  _net_73 = fs_adrs_exec&_net_72;\r
+   assign  _net_74 = (w_line_adrs)==(5'b00001);\r
+   assign  _net_75 = fs_adrs_exec&_net_74;\r
+   assign  _net_76 = (w_line_adrs)==(5'b00000);\r
+   assign  _net_77 = fs_adrs_exec&_net_76;\r
+   assign  _net_78 = ((((((((((((((((((((((((((((fs_adrs_exec&(~_net_20))&(~_net_22))&(~_net_24))&(~_net_26))&(~_net_28))&(~_net_30))&(~_net_32))&(~_net_34))&(~_net_36))&(~_net_38))&(~_net_40))&(~_net_42))&(~_net_44))&(~_net_46))&(~_net_48))&(~_net_50))&(~_net_52))&(~_net_54))&(~_net_56))&(~_net_58))&(~_net_60))&(~_net_62))&(~_net_64))&(~_net_66))&(~_net_68))&(~_net_70))&(~_net_72))&(~_net_74))&(~_net_76);\r
+   assign  o_vram_adrs = r_start_adrs;\r
+   assign  o_vram_wdata = r_word[63:56];\r
+   assign  fo_write_vram = _net_12;\r
+   assign  fo_read_vram = 1'b0;\r
+   assign  fo_complete_call = 1'b0;\r
+always @(posedge m_clock or negedge p_reset)\r
+  begin\r
+if (~p_reset)\r
+     r_word <= 64'b0000000000000000000000000000000000000000000000000000000000000000;\r
+else if ((_net_15)|(_reg_3)) \r
+      r_word <= ((_net_15) ?w_font_data:64'b0)|\r
+    ((_reg_3) ?(r_word)<<(8):64'b0);\r
+\r
+end\r
+always @(posedge m_clock or negedge p_reset)\r
+  begin\r
+if (~p_reset)\r
+     r_start_adrs <= 14'b00000000000000;\r
+else if ((_net_16)|(_reg_3)) \r
+      r_start_adrs <= ((_net_16) ?w_vram_adrs:14'b0)|\r
+    ((_reg_3) ?(r_start_adrs)+(14'b00000000101000):14'b0);\r
+\r
+end\r
+always @(posedge m_clock or negedge p_reset)\r
+  begin\r
+if (~p_reset)\r
+     r_cnt <= 3'b000;\r
+else if ((_reg_5)|(_reg_3)) \r
+      r_cnt <= ((_reg_5) ?3'b000:3'b0)|\r
+    ((_reg_3) ?_net_2:3'b0);\r
+\r
+end\r
+always @(posedge m_clock or negedge p_reset)\r
+  begin\r
+if (~p_reset)\r
+     _reg_3 <= 1'b0;\r
+else if ((_net_19)) \r
+      _reg_3 <= _reg_4&(~_reg_4_goto);\r
+end\r
+always @(posedge m_clock or negedge p_reset)\r
+  begin\r
+if (~p_reset)\r
+     _reg_4 <= 1'b0;\r
+else if ((_net_18)) \r
+      _reg_4 <= _reg_4_goin|_reg_5;\r
+end\r
+always @(posedge m_clock or negedge p_reset)\r
+  begin\r
+if (~p_reset)\r
+     _reg_5 <= 1'b0;\r
+else if ((_net_17)) \r
+      _reg_5 <= _reg_6|fi_write_word;\r
+end\r
+always @(posedge m_clock or negedge p_reset)\r
+  begin\r
+if (~p_reset)\r
+     _reg_6 <= 1'b0;\r
+else if ((_reg_6)) \r
+      _reg_6 <= 1'b0;\r
+end\r
 endmodule\r
 /*\r
- Produced by NSL Core(version=20110302), IP ARCH, Inc. Wed Jul 20 21:25:09 2011\r
+ Produced by NSL Core(version=20110302), IP ARCH, Inc. Sun Sep 04 10:05:43 2011\r
  Licensed to Yujiro_Kaneko::yujiro.kaneko@overtone.co.jp \r
 */\r
diff --git a/VGADisplay/src/font_rom.nsh b/VGADisplay/src/font_rom.nsh
new file mode 100644 (file)
index 0000000..c8ec620
--- /dev/null
@@ -0,0 +1,5 @@
+declare font_rom {
+       input   i_code_num[8] ;
+       output  o_font_data[64] ;
+       func_in fi_font_read(i_code_num):o_font_data ;
+}
diff --git a/VGADisplay/src/font_rom.nsl b/VGADisplay/src/font_rom.nsl
new file mode 100644 (file)
index 0000000..0ef5eb0
--- /dev/null
@@ -0,0 +1,277 @@
+declare font_rom {\r
+       input   i_code_num[8] ;\r
+       output  o_font_data[64] ;\r
+       func_in fi_font_read(i_code_num):o_font_data ;\r
+}\r
+module font_rom {\r
+       mem fmem[2048][8] = {\r
+           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,       // ASCII -   0\r
+           0x3C,0x42,0x2D,0x61,0x61,0x2D,0x42,0x3C,       // ASCII -   1\r
+           0x3C,0x7E,0x53,0x1F,0x1F,0x53,0x7E,0x3C,       // ASCII -   2\r
+           0x00,0x0E,0x1F,0x3F,0x7E,0x3F,0x1F,0x0E,       // ASCII -   3\r
+           0x00,0x08,0x1C,0x3E,0x7F,0x3E,0x1C,0x08,       // ASCII -   4\r
+           0x00,0x18,0x3A,0x3F,0x5F,0x3F,0x3A,0x18,       // ASCII -   5\r
+           0x00,0x18,0x3C,0x3E,0x5F,0x3E,0x3C,0x18,       // ASCII -   6\r
+           0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,       // ASCII -   7\r
+           0x7F,0x7F,0x67,0x43,0x43,0x67,0x7F,0x7F,       // ASCII -   8\r
+           0x00,0x18,0x3C,0x24,0x24,0x3C,0x18,0x00,       // ASCII -   9\r
+           0x7F,0x67,0x43,0x5B,0x5B,0x43,0x67,0x7F,       // ASCII -  10\r
+           0x00,0x38,0x7C,0x44,0x44,0x7D,0x3F,0x03,       // ASCII -  11\r
+           0x00,0x0E,0x5F,0x71,0x71,0x5F,0x0E,0x00,       // ASCII -  12\r
+           0x00,0x00,0x40,0x40,0x7F,0x06,0x1C,0x00,       // ASCII -  13\r
+           0x00,0x30,0x30,0x1F,0x05,0x4A,0x4A,0x7C,       // ASCII -  14\r
+           0x48,0x6B,0x3E,0x64,0x27,0x7C,0x56,0x12,       // ASCII -  15\r
+           0x00,0x7F,0x3E,0x3E,0x1C,0x1C,0x08,0x08,       // ASCII -  16\r
+           0x00,0x08,0x08,0x1C,0x1C,0x3E,0x3E,0x7F,       // ASCII -  17\r
+           0x00,0x24,0x66,0x7F,0x7F,0x66,0x24,0x00,       // ASCII -  18\r
+           0x00,0x00,0x5F,0x5F,0x00,0x5F,0x5F,0x00,       // ASCII -  19\r
+           0x00,0x06,0x0F,0x49,0x7F,0x01,0x7F,0x01,       // ASCII -  20\r
+           0x00,0x4A,0x5F,0x37,0x6D,0x7B,0x52,0x00,       // ASCII -  21\r
+           0x00,0x38,0x38,0x38,0x38,0x38,0x38,0x38,       // ASCII -  22\r
+           0x00,0x14,0x36,0x7F,0x7F,0x36,0x14,0x00,       // ASCII -  23\r
+           0x00,0x0C,0x06,0x7F,0x7F,0x06,0x0C,0x00,       // ASCII -  24\r
+           0x00,0x18,0x30,0x7F,0x7F,0x30,0x18,0x00,       // ASCII -  25\r
+           0x00,0x18,0x18,0x18,0x5A,0x7E,0x3C,0x18,       // ASCII -  26\r
+           0x00,0x18,0x3C,0x7E,0x5A,0x18,0x18,0x18,       // ASCII -  27\r
+           0x00,0x3C,0x3C,0x30,0x30,0x30,0x30,0x30,       // ASCII -  28\r
+           0x00,0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,       // ASCII -  29\r
+           0x00,0x40,0x70,0x7C,0x7F,0x7C,0x70,0x40,       // ASCII -  30\r
+           0x00,0x01,0x07,0x1F,0x7F,0x1F,0x07,0x01,       // ASCII -  31\r
+           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,       // ASCII -  32\r
+           0x00,0x00,0x00,0x5F,0x5F,0x00,0x00,0x00,       // ASCII -  33\r
+           0x00,0x00,0x03,0x07,0x00,0x07,0x03,0x00,       // ASCII -  34\r
+           0x00,0x10,0x74,0x1C,0x77,0x1C,0x17,0x04,       // ASCII -  35\r
+           0x00,0x24,0x2E,0x2A,0x7F,0x2A,0x3A,0x10,       // ASCII -  36\r
+           0x00,0x4C,0x6A,0x76,0x1A,0x6A,0x56,0x33,       // ASCII -  37\r
+           0x00,0x30,0x7A,0x4F,0x5D,0x37,0x7A,0x48,       // ASCII -  38\r
+           0x00,0x00,0x04,0x07,0x03,0x00,0x00,0x00,       // ASCII -  39\r
+           0x00,0x00,0x00,0x1C,0x3E,0x63,0x41,0x00,       // ASCII -  40\r
+           0x00,0x00,0x41,0x63,0x3E,0x1C,0x00,0x00,       // ASCII -  41\r
+           0x00,0x08,0x2A,0x3E,0x1C,0x3E,0x2A,0x08,       // ASCII -  42\r
+           0x00,0x08,0x08,0x3E,0x3E,0x08,0x08,0x00,       // ASCII -  43\r
+           0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,       // ASCII -  44\r
+           0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00,       // ASCII -  45\r
+           0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,       // ASCII -  46\r
+           0x00,0x60,0x30,0x18,0x0C,0x06,0x03,0x01,       // ASCII -  47\r
+           0x00,0x1C,0x3E,0x61,0x43,0x3E,0x1C,0x00,       // ASCII -  48\r
+           0x00,0x00,0x44,0x7F,0x7F,0x40,0x00,0x00,       // ASCII -  49\r
+           0x00,0x46,0x67,0x71,0x59,0x4F,0x66,0x00,       // ASCII -  50\r
+           0x00,0x22,0x63,0x49,0x4D,0x7F,0x32,0x00,       // ASCII -  51\r
+           0x00,0x18,0x1C,0x52,0x7F,0x7F,0x50,0x00,       // ASCII -  52\r
+           0x00,0x2F,0x6F,0x45,0x45,0x7D,0x39,0x00,       // ASCII -  53\r
+           0x00,0x3C,0x7E,0x4B,0x49,0x79,0x30,0x00,       // ASCII -  54\r
+           0x00,0x07,0x43,0x71,0x7D,0x0F,0x03,0x00,       // ASCII -  55\r
+           0x00,0x36,0x7F,0x4D,0x59,0x7F,0x36,0x00,       // ASCII -  56\r
+           0x00,0x06,0x4F,0x49,0x69,0x3F,0x1E,0x00,       // ASCII -  57\r
+           0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,       // ASCII -  58\r
+           0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,       // ASCII -  59\r
+           0x00,0x00,0x08,0x1C,0x36,0x63,0x41,0x00,       // ASCII -  60\r
+           0x00,0x14,0x14,0x14,0x14,0x14,0x14,0x00,       // ASCII -  61\r
+           0x00,0x00,0x41,0x63,0x36,0x1C,0x08,0x00,       // ASCII -  62\r
+           0x00,0x02,0x07,0x51,0x59,0x0F,0x06,0x00,       // ASCII -  63\r
+           0x00,0x3E,0x41,0x5D,0x55,0x5D,0x51,0x1E,       // ASCII -  64\r
+           0x00,0x40,0x70,0x1D,0x17,0x1F,0x78,0x60,       // ASCII -  65\r
+           0x00,0x41,0x7F,0x7F,0x49,0x4F,0x7E,0x30,       // ASCII -  66\r
+           0x00,0x1C,0x3E,0x63,0x41,0x41,0x42,0x27,       // ASCII -  67\r
+           0x00,0x41,0x7F,0x7F,0x41,0x63,0x3E,0x1C,       // ASCII -  68\r
+           0x00,0x41,0x7F,0x7F,0x49,0x5D,0x41,0x63,       // ASCII -  69\r
+           0x00,0x41,0x7F,0x7F,0x49,0x1D,0x01,0x03,       // ASCII -  70\r
+           0x00,0x1C,0x3E,0x63,0x41,0x51,0x72,0x77,       // ASCII -  71\r
+           0x00,0x7F,0x7F,0x08,0x08,0x7F,0x7F,0x00,       // ASCII -  72\r
+           0x00,0x00,0x41,0x7F,0x7F,0x41,0x00,0x00,       // ASCII -  73\r
+           0x00,0x30,0x70,0x41,0x41,0x7F,0x3F,0x01,       // ASCII -  74\r
+           0x00,0x7F,0x7F,0x08,0x1C,0x77,0x63,0x41,       // ASCII -  75\r
+           0x00,0x41,0x7F,0x7F,0x41,0x40,0x60,0x70,       // ASCII -  76\r
+           0x00,0x7F,0x7E,0x0C,0x18,0x0C,0x7E,0x7F,       // ASCII -  77\r
+           0x00,0x7F,0x7E,0x0C,0x18,0x30,0x7F,0x7F,       // ASCII -  78\r
+           0x00,0x1C,0x3E,0x63,0x41,0x63,0x3E,0x1C,       // ASCII -  79\r
+           0x00,0x41,0x7F,0x7F,0x49,0x09,0x0F,0x06,       // ASCII -  80\r
+           0x00,0x1C,0x3E,0x63,0x51,0x63,0x3E,0x1C,       // ASCII -  81\r
+           0x00,0x7F,0x7F,0x09,0x19,0x7F,0x66,0x40,       // ASCII -  82\r
+           0x00,0x66,0x6F,0x4D,0x59,0x7B,0x33,0x00,       // ASCII -  83\r
+           0x00,0x03,0x41,0x7F,0x7F,0x41,0x03,0x00,       // ASCII -  84\r
+           0x00,0x3F,0x7F,0x40,0x40,0x40,0x7F,0x3F,       // ASCII -  85\r
+           0x00,0x03,0x0F,0x3D,0x70,0x1D,0x07,0x01,       // ASCII -  86\r
+           0x00,0x0F,0x7F,0x30,0x1C,0x30,0x7F,0x0F,       // ASCII -  87\r
+           0x00,0x63,0x77,0x1C,0x1C,0x77,0x63,0x00,       // ASCII -  88\r
+           0x01,0x03,0x47,0x7C,0x78,0x47,0x03,0x01,       // ASCII -  89\r
+           0x00,0x67,0x73,0x59,0x4D,0x67,0x73,0x00,       // ASCII -  90\r
+           0x00,0x00,0x00,0x7F,0x7F,0x41,0x41,0x00,       // ASCII -  91\r
+           0x00,0x01,0x03,0x06,0x0C,0x18,0x30,0x60,       // ASCII -  92\r
+           0x00,0x00,0x41,0x41,0x7F,0x7F,0x00,0x00,       // ASCII -  93\r
+           0x00,0x00,0x04,0x06,0x03,0x06,0x04,0x00,       // ASCII -  94\r
+           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,       // ASCII -  95\r
+           0x00,0x00,0x01,0x03,0x06,0x04,0x00,0x00,       // ASCII -  96\r
+           0x00,0x68,0x6C,0x54,0x54,0x3C,0x78,0x40,       // ASCII -  97\r
+           0x00,0x41,0x7F,0x3F,0x6C,0x44,0x7C,0x38,       // ASCII -  98\r
+           0x00,0x38,0x7C,0x44,0x44,0x6C,0x2C,0x00,       // ASCII -  99\r
+           0x00,0x38,0x7C,0x44,0x49,0x3F,0x7F,0x40,       // ASCII - 100\r
+           0x00,0x38,0x7C,0x54,0x54,0x5C,0x58,0x00,       // ASCII - 101\r
+           0x00,0x00,0x48,0x7E,0x7F,0x49,0x0B,0x02,       // ASCII - 102\r
+           0x00,0x48,0x7C,0x34,0x34,0x2C,0x68,0x44,       // ASCII - 103\r
+           0x00,0x41,0x7F,0x7F,0x08,0x04,0x7C,0x78,       // ASCII - 104\r
+           0x00,0x00,0x44,0x7D,0x7D,0x40,0x00,0x00,       // ASCII - 105\r
+           0x00,0x60,0x60,0x04,0x7D,0x7D,0x00,0x00,       // ASCII - 106\r
+           0x00,0x41,0x7F,0x7F,0x10,0x78,0x6C,0x44,       // ASCII - 107\r
+           0x00,0x00,0x41,0x7F,0x7F,0x40,0x00,0x00,       // ASCII - 108\r
+           0x00,0x7C,0x7C,0x0C,0x78,0x0C,0x7C,0x78,       // ASCII - 109\r
+           0x00,0x44,0x7C,0x7C,0x08,0x04,0x7C,0x78,       // ASCII - 110\r
+           0x00,0x38,0x7C,0x44,0x44,0x7C,0x38,0x00,       // ASCII - 111\r
+           0x00,0x04,0x7C,0x78,0x24,0x24,0x3C,0x18,       // ASCII - 112\r
+           0x00,0x18,0x3C,0x24,0x24,0x78,0x7C,0x00,       // ASCII - 113\r
+           0x00,0x44,0x7C,0x78,0x4C,0x04,0x1C,0x18,       // ASCII - 114\r
+           0x00,0x48,0x5C,0x5C,0x74,0x74,0x24,0x00,       // ASCII - 115\r
+           0x00,0x00,0x04,0x3E,0x7F,0x44,0x24,0x00,       // ASCII - 116\r
+           0x00,0x3C,0x7C,0x40,0x40,0x3C,0x7C,0x40,       // ASCII - 117\r
+           0x00,0x04,0x1C,0x3C,0x60,0x30,0x1C,0x04,       // ASCII - 118\r
+           0x00,0x1C,0x7C,0x30,0x1C,0x30,0x7C,0x1C,       // ASCII - 119\r
+           0x00,0x44,0x6C,0x3C,0x10,0x78,0x6C,0x44,       // ASCII - 120\r
+           0x00,0x44,0x4C,0x1C,0x70,0x64,0x1C,0x0C,       // ASCII - 121\r
+           0x00,0x4C,0x64,0x74,0x5C,0x4C,0x64,0x00,       // ASCII - 122\r
+           0x00,0x08,0x08,0x3E,0x77,0x41,0x41,0x00,       // ASCII - 123\r
+           0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,       // ASCII - 124\r
+           0x00,0x41,0x41,0x77,0x3E,0x08,0x08,0x00,       // ASCII - 125\r
+           0x00,0x02,0x01,0x01,0x03,0x02,0x02,0x01,       // ASCII - 126\r
+           0x00,0x60,0x78,0x4E,0x47,0x5E,0x78,0x60,       // ASCII - 127\r
+           0x00,0x1C,0x3E,0x23,0x41,0x41,0x42,0x27,       // ASCII - 128\r
+           0x00,0x3D,0x7D,0x40,0x41,0x3D,0x7C,0x40,       // ASCII - 129\r
+           0x00,0x38,0x7C,0x56,0x57,0x5D,0x59,0x00,       // ASCII - 130\r
+           0x00,0x68,0x6E,0x57,0x57,0x3E,0x78,0x40,       // ASCII - 131\r
+           0x00,0x68,0x6D,0x55,0x54,0x3D,0x79,0x40,       // ASCII - 132\r
+           0x00,0x68,0x6D,0x57,0x56,0x3C,0x78,0x40,       // ASCII - 133\r
+           0x00,0x68,0x6C,0x57,0x57,0x3C,0x78,0x40,       // ASCII - 134\r
+           0x00,0x18,0x3C,0x64,0x44,0x6C,0x2C,0x00,       // ASCII - 135\r
+           0x00,0x38,0x7E,0x57,0x57,0x5E,0x58,0x00,       // ASCII - 136\r
+           0x00,0x38,0x7D,0x55,0x54,0x5D,0x59,0x00,       // ASCII - 137\r
+           0x00,0x38,0x7D,0x57,0x56,0x5C,0x58,0x00,       // ASCII - 138\r
+           0x00,0x01,0x45,0x7C,0x7D,0x41,0x00,0x00,       // ASCII - 139\r
+           0x00,0x00,0x4A,0x7B,0x7B,0x42,0x00,0x00,       // ASCII - 140\r
+           0x00,0x00,0x49,0x7B,0x7A,0x40,0x00,0x00,       // ASCII - 141\r
+           0x00,0x40,0x71,0x3D,0x26,0x3D,0x79,0x60,       // ASCII - 142\r
+           0x00,0x40,0x70,0x3F,0x2D,0x3F,0x78,0x60,       // ASCII - 143\r
+           0x00,0x44,0x7C,0x7C,0x56,0x57,0x45,0x6D,       // ASCII - 144\r
+           0x00,0x64,0x74,0x5C,0x38,0x74,0x5C,0x58,       // ASCII - 145\r
+           0x00,0x70,0x7F,0x0B,0x7F,0x7F,0x49,0x63,       // ASCII - 146\r
+           0x00,0x38,0x7E,0x47,0x47,0x7E,0x38,0x00,       // ASCII - 147\r
+           0x00,0x39,0x7D,0x44,0x44,0x7D,0x39,0x00,       // ASCII - 148\r
+           0x00,0x39,0x7D,0x47,0x46,0x7C,0x38,0x00,       // ASCII - 149\r
+           0x00,0x3C,0x7A,0x43,0x43,0x3A,0x7C,0x40,       // ASCII - 150\r
+           0x00,0x3D,0x7D,0x43,0x42,0x3C,0x7C,0x40,       // ASCII - 151\r
+           0x00,0x44,0x4D,0x1D,0x70,0x65,0x1D,0x0C,       // ASCII - 152\r
+           0x00,0x19,0x3D,0x66,0x42,0x66,0x3D,0x19,       // ASCII - 153\r
+           0x00,0x3E,0x7D,0x41,0x40,0x41,0x7D,0x3E,       // ASCII - 154\r
+           0x00,0x38,0x7C,0x44,0x7C,0x4F,0x29,0x00,       // ASCII - 155\r
+           0x00,0x68,0x5E,0x7F,0x39,0x49,0x67,0x36,       // ASCII - 156\r
+           0x00,0x2B,0x2F,0x7C,0x7C,0x2F,0x2B,0x00,       // ASCII - 157\r
+           0x00,0x7F,0x7F,0x09,0x2F,0x76,0x78,0x20,       // ASCII - 158\r
+           0x00,0x40,0x08,0x7E,0x7F,0x09,0x0B,0x02,       // ASCII - 159\r
+           0x00,0x68,0x6C,0x56,0x57,0x3D,0x79,0x40,       // ASCII - 160\r
+           0x00,0x00,0x4A,0x7B,0x79,0x41,0x00,0x00,       // ASCII - 161\r
+           0x00,0x38,0x7C,0x46,0x47,0x7D,0x39,0x00,       // ASCII - 162\r
+           0x00,0x3C,0x7C,0x42,0x43,0x3D,0x7D,0x40,       // ASCII - 163\r
+           0x00,0x44,0x7E,0x7D,0x0B,0x06,0x7D,0x78,       // ASCII - 164\r
+           0x00,0x7C,0x7E,0x0D,0x1B,0x32,0x7D,0x7C,       // ASCII - 165\r
+           0x00,0x00,0x26,0x2F,0x29,0x2F,0x2F,0x28,       // ASCII - 166\r
+           0x00,0x00,0x26,0x2F,0x29,0x2F,0x26,0x00,       // ASCII - 167\r
+           0x00,0x30,0x78,0x4D,0x45,0x70,0x20,0x00,       // ASCII - 168\r
+           0x00,0x38,0x38,0x08,0x08,0x08,0x08,0x00,       // ASCII - 169\r
+           0x00,0x08,0x08,0x08,0x08,0x38,0x38,0x00,       // ASCII - 170\r
+           0x00,0x6F,0x3F,0x18,0x5C,0x6E,0x3A,0x10,       // ASCII - 171\r
+           0x00,0x6F,0x3F,0x18,0x6C,0x56,0x7A,0x78,       // ASCII - 172\r
+           0x00,0x00,0x00,0x7D,0x7D,0x00,0x00,0x00,       // ASCII - 173\r
+           0x00,0x18,0x3C,0x66,0x5A,0x3C,0x66,0x42,       // ASCII - 174\r
+           0x00,0x42,0x66,0x3C,0x5A,0x66,0x3C,0x18,       // ASCII - 175\r
+           0x00,0x2A,0x00,0x55,0x00,0x2A,0x00,0x55,       // ASCII - 176\r
+           0x2A,0x55,0x2A,0x55,0x2A,0x55,0x2A,0x55,       // ASCII - 177\r
+           0x7F,0x55,0x7F,0x2A,0x7F,0x55,0x7F,0x2A,       // ASCII - 178\r
+           0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,       // ASCII - 179\r
+           0x18,0x18,0x18,0x7F,0x7F,0x00,0x00,0x00,       // ASCII - 180\r
+           0x2C,0x2C,0x2C,0x7F,0x7F,0x00,0x00,0x00,       // ASCII - 181\r
+           0x18,0x18,0x7F,0x7F,0x00,0x7F,0x00,0x00,       // ASCII - 182\r
+           0x18,0x18,0x78,0x78,0x18,0x70,0x00,0x00,       // ASCII - 183\r
+           0x2C,0x2C,0x2C,0x7C,0x78,0x00,0x00,0x00,       // ASCII - 184\r
+           0x2C,0x2C,0x6F,0x6F,0x00,0x7F,0x00,0x00,       // ASCII - 185\r
+           0x00,0x00,0x7F,0x7F,0x00,0x7F,0x00,0x00,       // ASCII - 186\r
+           0x2C,0x2C,0x6C,0x6C,0x0C,0x78,0x00,0x00,       // ASCII - 187\r
+           0x2C,0x2C,0x2F,0x2F,0x20,0x3F,0x00,0x00,       // ASCII - 188\r
+           0x18,0x18,0x1F,0x1F,0x18,0x1F,0x00,0x00,       // ASCII - 189\r
+           0x2C,0x2C,0x2C,0x3F,0x3F,0x00,0x00,0x00,       // ASCII - 190\r
+           0x18,0x18,0x18,0x78,0x78,0x00,0x00,0x00,       // ASCII - 191\r
+           0x00,0x00,0x00,0x1F,0x1F,0x18,0x18,0x18,       // ASCII - 192\r
+           0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,       // ASCII - 193\r
+           0x18,0x18,0x18,0x78,0x78,0x18,0x18,0x18,       // ASCII - 194\r
+           0x00,0x00,0x00,0x7F,0x7F,0x18,0x18,0x18,       // ASCII - 195\r
+           0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,       // ASCII - 196\r
+           0x18,0x18,0x18,0x7F,0x7F,0x18,0x18,0x18,       // ASCII - 197\r
+           0x00,0x00,0x00,0x7F,0x7F,0x2C,0x2C,0x2C,       // ASCII - 198\r
+           0x00,0x00,0x7F,0x7F,0x00,0x7F,0x18,0x18,       // ASCII - 199\r
+           0x00,0x00,0x1F,0x3F,0x20,0x2F,0x2C,0x2C,       // ASCII - 200\r
+           0x00,0x00,0x7C,0x7C,0x0C,0x6C,0x2C,0x2C,       // ASCII - 201\r
+           0x2C,0x2C,0x2F,0x2F,0x20,0x2F,0x2C,0x2C,       // ASCII - 202\r
+           0x2C,0x2C,0x6C,0x6C,0x0C,0x6C,0x2C,0x2C,       // ASCII - 203\r
+           0x00,0x00,0x7F,0x7F,0x00,0x6F,0x2C,0x2C,       // ASCII - 204\r
+           0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,       // ASCII - 205\r
+           0x2C,0x2C,0x6F,0x6F,0x00,0x6F,0x2C,0x2C,       // ASCII - 206\r
+           0x2C,0x2C,0x2C,0x2F,0x2F,0x2C,0x2C,0x2C,       // ASCII - 207\r
+           0x18,0x18,0x1F,0x1F,0x18,0x1F,0x18,0x18,       // ASCII - 208\r
+           0x2C,0x2C,0x2C,0x6C,0x6C,0x2C,0x2C,0x2C,       // ASCII - 209\r
+           0x18,0x18,0x78,0x78,0x18,0x78,0x18,0x18,       // ASCII - 210\r
+           0x00,0x00,0x0F,0x1F,0x18,0x1F,0x18,0x18,       // ASCII - 211\r
+           0x00,0x00,0x00,0x1F,0x3F,0x2C,0x2C,0x2C,       // ASCII - 212\r
+           0x00,0x00,0x00,0x7C,0x7C,0x2C,0x2C,0x2C,       // ASCII - 213\r
+           0x00,0x00,0x78,0x78,0x18,0x78,0x18,0x18,       // ASCII - 214\r
+           0x18,0x18,0x7F,0x7F,0x18,0x7F,0x18,0x18,       // ASCII - 215\r
+           0x2C,0x2C,0x2C,0x7F,0x7F,0x2C,0x2C,0x2C,       // ASCII - 216\r
+           0x18,0x18,0x18,0x1F,0x1F,0x00,0x00,0x00,       // ASCII - 217\r
+           0x00,0x00,0x00,0x78,0x78,0x18,0x18,0x18,       // ASCII - 218\r
+           0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,       // ASCII - 219\r
+           0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,       // ASCII - 220\r
+           0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,       // ASCII - 221\r
+           0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,       // ASCII - 222\r
+           0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,       // ASCII - 223\r
+           0x00,0x38,0x7C,0x44,0x6C,0x3C,0x78,0x44,       // ASCII - 224\r
+           0x00,0x7E,0x7F,0x21,0x65,0x4F,0x7A,0x30,       // ASCII - 225\r
+           0x00,0x41,0x7F,0x7F,0x41,0x01,0x03,0x07,       // ASCII - 226\r
+           0x00,0x4C,0x66,0x3E,0x06,0x7E,0x66,0x02,       // ASCII - 227\r
+           0x00,0x41,0x63,0x77,0x5D,0x49,0x63,0x63,       // ASCII - 228\r
+           0x00,0x38,0x7C,0x44,0x7C,0x3C,0x04,0x04,       // ASCII - 229\r
+           0x00,0x40,0x7C,0x3C,0x40,0x60,0x3C,0x7C,       // ASCII - 230\r
+           0x00,0x0C,0x06,0x3E,0x76,0x66,0x06,0x02,       // ASCII - 231\r
+           0x00,0x08,0x1C,0x55,0x7F,0x55,0x1C,0x08,       // ASCII - 232\r
+           0x00,0x1C,0x3E,0x6B,0x49,0x6B,0x3E,0x1C,       // ASCII - 233\r
+           0x00,0x6C,0x5E,0x73,0x01,0x73,0x5E,0x6C,       // ASCII - 234\r
+           0x00,0x30,0x7A,0x47,0x4D,0x79,0x30,0x00,       // ASCII - 235\r
+           0x00,0x3C,0x66,0x76,0x3C,0x6E,0x66,0x3C,       // ASCII - 236\r
+           0x00,0x38,0x7C,0x64,0x54,0x4C,0x7E,0x3B,       // ASCII - 237\r
+           0x00,0x00,0x38,0x7C,0x54,0x54,0x54,0x00,       // ASCII - 238\r
+           0x00,0x7E,0x7F,0x01,0x01,0x7F,0x7E,0x00,       // ASCII - 239\r
+           0x00,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x00,       // ASCII - 240\r
+           0x00,0x44,0x44,0x5F,0x5F,0x44,0x44,0x00,       // ASCII - 241\r
+           0x00,0x51,0x5B,0x4A,0x4E,0x44,0x44,0x00,       // ASCII - 242\r
+           0x00,0x44,0x44,0x4E,0x4A,0x5B,0x51,0x00,       // ASCII - 243\r
+           0x00,0x00,0x00,0x7E,0x7F,0x01,0x07,0x02,       // ASCII - 244\r
+           0x20,0x70,0x40,0x7F,0x3F,0x00,0x00,0x00,       // ASCII - 245\r
+           0x00,0x08,0x08,0x6B,0x6B,0x08,0x08,0x00,       // ASCII - 246\r
+           0x00,0x24,0x36,0x12,0x36,0x24,0x36,0x12,       // ASCII - 247\r
+           0x00,0x00,0x06,0x0F,0x09,0x0F,0x06,0x00,       // ASCII - 248\r
+           0x00,0x00,0x08,0x1C,0x1C,0x08,0x00,0x00,       // ASCII - 249\r
+           0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00,       // ASCII - 250\r
+           0x00,0x10,0x38,0x60,0x70,0x1C,0x07,0x01,       // ASCII - 251\r
+           0x00,0x01,0x1F,0x1F,0x02,0x01,0x1F,0x1E,       // ASCII - 252\r
+           0x00,0x12,0x1B,0x19,0x1D,0x17,0x12,0x00,       // ASCII - 253\r
+           0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00       // ASCII - 254\r
+       } ;\r
+       \r
+       func fi_font_read {\r
+               o_font_data = {\r
+                       fmem[{i_code_num, 0b111}],\r
+                       fmem[{i_code_num, 0b110}],\r
+                       fmem[{i_code_num, 0b101}],\r
+                       fmem[{i_code_num, 0b100}],\r
+                       fmem[{i_code_num, 0b011}],\r
+                       fmem[{i_code_num, 0b010}],\r
+                       fmem[{i_code_num, 0b001}],\r
+                       fmem[{i_code_num, 0b000}]\r
+               } ;\r
+       }\r
+}
\ No newline at end of file
index 0c8695c..e7eeb96 100644 (file)
@@ -1,4 +1,119 @@
-declare from_ctrl{
+#include "font_rom.nsh"
+
+/**
+*      font control module
+*
+       \83R\83}\83\93\83h\83\81\83\82
+       \88ê\95\8e\9a\8f\91\82­              : write_word
+       1\95\8e\9a\8fÁ\82·               : delete_word
+       1\8ds\8fÁ\82·                 : delete_line
+       \91S\8ds\8fÁ\82·                        : delete_display
+       \88ê\8ds\8fã\82É\83X\83\89\83C\83h\82·\82é : slide_line
+       
+       busy flag 1
+       line adrs 0-29
+       word adrs 0-39
+       40[char] x 24[line]
+*
+**/
+
+declare from_ctrl {
+       input  i_word_adrs[6] ;
+       input  i_line_adrs[5] ;
+       input  i_code_num[8] ;
+       func_in fi_write_word( i_word_adrs, i_line_adrs, i_code_num ) ;         //\88ê\95\8e\9a\8f\91\82­
+       func_in fi_delete_word( i_word_adrs, i_line_adrs ) ;    //\88ê\95\8e\9a\8fÁ\82·
+       func_in fi_delete_line( i_line_adrs ) ;                                 //\88ê\8ds\8fÁ\82·
+       func_in fi_delete_display() ;                                                   //\88ê\89æ\96Ê\8fÁ\82·
+       func_in fi_slide_line() ;                                                               //\88ê\8ds\82¸\82ç\82·
+       
+       output o_vram_adrs[14] ;        // VRAM\82Ì\83A\83h\83\8c\83X\90ü
+       output o_vram_wdata[8] ;        // VRAM\82Ì\8f\91\82«\82±\82Ý\83f\81[\83^\90ü
+       input  i_vram_rdata[8] ;        // VRAM\82Ì\93Ç\82Ý\8d\9e\82Ý\83f\81[\83^\90ü
+       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¹
 }
-module from_ctrl{
+module from_ctrl {
+       font_rom U_FONT_ROM ;   // FONT ROM SUB MODULE
+       wire w_code_num[8] ;
+       wire w_font_data[64] ;
+       wire w_word_adrs[6] ;
+       wire w_line_adrs[5] ;
+       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 ;
+       wire w_line_value[14] ;
+
+       reg r_word[64] = 0 ;
+       reg r_start_adrs[14] = 0 ;
+       reg r_cnt[3] = 0 ;
+
+       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, r_word[63:56]) ;
+                       {
+                               r_start_adrs := r_start_adrs + 14'd40 ;
+                               r_word := r_word<<8 ;
+                       }
+               }
+       }
+
+       func fi_delete_word seq {
+       }
+
+       func fi_delete_line seq {
+       }
+
+       func fi_delete_display seq {
+       }
+       
+       func fi_slide_line seq {
+       }
+       
+       func fs_font_read {
+                return(U_FONT_ROM.fi_font_read( w_code_num )) ;
+       }
+       
+       func fs_adrs_exec {
+               any {
+                       w_line_adrs == 5'd0 :  w_line_value = 14'd0 ;
+                       w_line_adrs == 5'd1 :  w_line_value = 14'd320 ;
+                       w_line_adrs == 5'd2 :  w_line_value = 14'd640 ;
+                       w_line_adrs == 5'd3 :  w_line_value = 14'd960 ;
+                       w_line_adrs == 5'd4 :  w_line_value = 14'd1280 ;
+                       w_line_adrs == 5'd5 :  w_line_value = 14'd1600 ;
+                       w_line_adrs == 5'd6 :  w_line_value = 14'd1920 ;
+                       w_line_adrs == 5'd7 :  w_line_value = 14'd2240 ;
+                       w_line_adrs == 5'd8 :  w_line_value = 14'd2560 ;
+                       w_line_adrs == 5'd9 :  w_line_value = 14'd2880 ;
+                       w_line_adrs == 5'd10 : w_line_value = 14'd3200 ;
+                       w_line_adrs == 5'd11 : w_line_value = 14'd3520 ;
+                       w_line_adrs == 5'd12 : w_line_value = 14'd3840 ;
+                       w_line_adrs == 5'd13 : w_line_value = 14'd4160 ;
+                       w_line_adrs == 5'd14 : w_line_value = 14'd4480 ;
+                       w_line_adrs == 5'd15 : w_line_value = 14'd4800 ;
+                       w_line_adrs == 5'd16 : w_line_value = 14'd5120 ;
+                       w_line_adrs == 5'd17 : w_line_value = 14'd5440 ;
+                       w_line_adrs == 5'd18 : w_line_value = 14'd5760 ;
+                       w_line_adrs == 5'd19 : w_line_value = 14'd6080 ;
+                       w_line_adrs == 5'd20 : w_line_value = 14'd6400 ;
+                       w_line_adrs == 5'd21 : w_line_value = 14'd6720 ;
+                       w_line_adrs == 5'd22 : w_line_value = 14'd7040 ;
+                       w_line_adrs == 5'd23 : w_line_value = 14'd7360 ;
+                       w_line_adrs == 5'd24 : w_line_value = 14'd7680 ;
+                       w_line_adrs == 5'd25 : w_line_value = 14'd8000 ;
+                       w_line_adrs == 5'd26 : w_line_value = 14'd8320 ;
+                       w_line_adrs == 5'd27 : w_line_value = 14'd8640 ;
+                       w_line_adrs == 5'd28 : w_line_value = 14'd8960 ;
+                                                        else : w_line_value = 14'd9280 ;
+               }
+               
+               return( w_line_value + { 0b00000000, w_word_adrs } ) ;
+       }
 }