X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ships%2FDvi.ship;h=100314f2f02237c8634b4f3260876a8a41ecb1a1;hb=267658ddfd636f51a99f37d4c25e456a8c27d386;hp=265d7750be5c72bfe2bea412ff289f8d44781bed;hpb=3f47c7d799a7942614ebbc4357ec8cdfaf292754;p=fleet.git diff --git a/ships/Dvi.ship b/ships/Dvi.ship index 265d775..100314f 100644 --- a/ships/Dvi.ship +++ b/ships/Dvi.ship @@ -244,7 +244,7 @@ vga_timing_generator reg [3:0] wait_until_write; reg [3:0] wait_until_video; reg [37:0] addr; - wire [31:0] data_out; + wire [35:0] data_out; reg [37:0] out_d; reg [37:0] writeData; @@ -307,6 +307,10 @@ vga_timing_generator assign data_out[29] = sram_d29; assign sram_d29 = oe ? 1'bz : writeData[29]; assign data_out[30] = sram_d30; assign sram_d30 = oe ? 1'bz : writeData[30]; assign data_out[31] = sram_d31; assign sram_d31 = oe ? 1'bz : writeData[31]; + assign data_out[32] = sram_dqp0; assign sram_dqp0 = oe ? 1'bz : writeData[32]; + assign data_out[33] = sram_dqp1; assign sram_dqp1 = oe ? 1'bz : writeData[33]; + assign data_out[34] = sram_dqp2; assign sram_dqp2 = oe ? 1'bz : writeData[34]; + assign data_out[35] = sram_dqp3; assign sram_dqp3 = oe ? 1'bz : writeData[35]; assign sram_mode = 0; assign sram_clk = clk; @@ -319,10 +323,11 @@ vga_timing_generator assign sram_cs_b = 0; assign sram_oe_b = ~oe; - // Framebuffer is 548x478 -- yeah, I know that's completely weird. + // Framebuffer is 544x478 -- yeah, I know that's completely weird. - wire on_screen; - assign on_screen = (x_coord >= 48) && (x_coord < 592); + wire on_screen_; + reg on_screen; + assign on_screen_ = (x_coord >= 48) && (x_coord < 592); wire [9:0] adjusted_x_coord; assign adjusted_x_coord = x_coord - 48; @@ -333,12 +338,13 @@ vga_timing_generator + { 7'b0000000, y_coord[8:0], 5'b00000 } + { 3'b000, y_coord[8:0], 9'b0000000000 }; - assign dvi_red = on_screen ? mem_out[23:16] : 0; - assign dvi_green = on_screen ? mem_out[15:8] : 0; - assign dvi_blue = on_screen ? mem_out[7:0] : 0; + assign dvi_red = on_screen ? { mem_out[17:12], 2'b0 } : 0; + assign dvi_green = on_screen ? { mem_out[11:6], 2'b0 } : 0; + assign dvi_blue = on_screen ? { mem_out[5:0], 2'b0 } : 0; always @(posedge pix_clk) begin vga_pixel_addr <= vga_pixel_addr_; + on_screen <= on_screen_; end wire idle; @@ -545,14 +551,76 @@ NET sram_oe_b LOC="B12"; # Bank 20, Vcco=3.3V, DCI using 49.9 ohm == TeX ============================================================== == Fleeterpreter ==================================================== - - public void service() { } +private java.awt.Frame frame = null; +private java.awt.Panel panel = null; +private long[][] bits; +public static int SCREEN_WIDTH = 577; +public static int SCREEN_HEIGHT = 478; +public void service() { + long x,y,d; + if (box_inPixelX.dataReadyForShip() && + box_inPixelY.dataReadyForShip() && + box_inPixelValue.dataReadyForShip()) { + x = box_inPixelX.removeDataForShip(); + y = box_inPixelY.removeDataForShip(); + d = box_inPixelValue.removeDataForShip(); + } else if (box_inAddrWrite.dataReadyForShip() && + box_inDataWrite.dataReadyForShip() && + box_out.readyForDataFromShip()) { + long addr = box_inAddrWrite.removeDataForShip(); + x = addr % SCREEN_WIDTH; + y = addr / SCREEN_WIDTH; + d = box_inDataWrite.removeDataForShip(); + box_out.addDataFromShip(0,true); + } else if (box_inAddrRead.dataReadyForShip() && + box_out.readyForDataFromShip()) { + long addr = box_inAddrRead.removeDataForShip(); + x = addr % SCREEN_WIDTH; + y = addr / SCREEN_WIDTH; + box_out.addDataFromShip(bits[(int)x][(int)y],false); + return; + } else { + return; + } + if (frame==null) { + frame = new java.awt.Frame(); + bits = new long[SCREEN_WIDTH][SCREEN_HEIGHT]; + for(int i=0; i> 12) & ~((-1L) << 6)) << 2), + (int)(((d >> 6) & ~((-1L) << 6)) << 2), + (int)(((d >> 0) & ~((-1L) << 6)) << 2) + ); + g2.setColor(c); + g2.fillRect((int)xx,(int)yy,1,1); + } + } + } + }; + frame.setLayout(new java.awt.BorderLayout()); + frame.add(panel, java.awt.BorderLayout.CENTER); + panel.setBackground(java.awt.Color.black); + frame.show(); + } + bits[(int)x][(int)y] = d; + panel.repaint(); +} == FleetSim ============================================================== == Constants ========================================================= == Test ============================================================== +#skip #expect 0 #expect 0