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;
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;
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;
+ { 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;
== Fleeterpreter ====================================================
- public void service() { }
+ private java.awt.Frame frame = null;
+ public void service() {
+ if (box_inPixelX.dataReadyForShip() &&
+ box_inPixelY.dataReadyForShip() &&
+ box_inPixelValue.dataReadyForShip()
+ ) {
+ long x = box_inPixelX.removeDataForShip();
+ long y = box_inPixelY.removeDataForShip();
+ long d = box_inPixelValue.removeDataForShip();
+
+ if (frame==null) {
+ frame = new java.awt.Frame();
+ java.awt.Dimension dim = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
+ frame.setSize((int)dim.getWidth(),(int)dim.getHeight());
+ frame.show();
+ frame.setBackground(new java.awt.Color(0,0,0));
+ }
+ java.awt.Color c = new java.awt.Color(
+ ((d & (1L<<2))!=0) ? 0xff : 0x00,
+ ((d & (1L<<1))!=0) ? 0xff : 0x00,
+ ((d & (1L<<0))!=0) ? 0xff : 0x00
+ );
+ java.awt.Graphics2D g = (java.awt.Graphics2D)frame.getGraphics();
+ g.transform(java.awt.geom.AffineTransform.getScaleInstance(((double)frame.getWidth())/640, ((double)frame.getHeight())/480));
+ g.setColor(c);
+ g.fillRect((int)x,(int)y,1,1);
+
+ }
+ }
== FleetSim ==============================================================
== Constants =========================================================
== Test ==============================================================
+#skip
#expect 0
#expect 0