Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Lawrie Griffiths
    @lawrie
    My capture card doesn't like the video signal. My monitor reports it as 57Hz and display it fine.
    emard
    @emard
    @lawrie ZX81 shows some video for me but pixels shake/jitter in mostly Y direction and I'd say a bit in X direction too. It's useable, I can type and read letters but it's not stable. Upper parts of the screen shake less than lower parts, maybe some error accumulates. It could be Z80 implementation is not cycle exact as original if code is used for pic generation
    Lawrie Griffiths
    @lawrie
    It seems more stable with the pll set to 125 12.5 rather than 130 13, but that has a slightly slow cpu clock.
    Lawrie Griffiths
    @lawrie
    I have pushed a version with that and 16KB of ram
    emard
    @emard
    I will try to recompile this using ecp5pll. if it's only for 13:12.5 difference, I could not notice so small change
    Yes 125/12.5 seems fully stable. Also I added --compress option :)
    Lawrie Griffiths
    @lawrie
    The code in these projects is a bit out of date, which is why I was planning to update them using the template. But the ZX80/81 does not follow the pattern of the other implementations as the video needs to be generated the way the original machine did it. Unless I mirror the display list in dual-ported vram and write new VGA code to convert the display list. Not sure how feasible that is.
    emard
    @emard
    Just add ecp5pll and some notes like this
      localparam pixel_clock = 12500000; // 12.5 MHz slower than original, screen stable
      //localparam pixel_clock = 13000000; // 13 MHz original, screen jitters
    
      wire clkdvi;
      wire clk_sys; 
      wire [3:0] clocks;
      ecp5pll
      #(
       .in_hz  ( 25*1000000),
       .out0_hz(pixel_clock*10),
       .out1_hz(pixel_clock)
      )
      ecp5pll_inst
      (
        .clk_i(clk_25mhz),
        .clk_o(clocks)
      );
    Lawrie Griffiths
    @lawrie
    I will use that.
    Just tried it in ZX81 mode and that appears to work (zx81 = 1). That gets rid of the screen blanking. Last time I tried it, it didn't work.
    The keyboard doesn't seem to work correctly in ZX81 mode.
    emard
    @emard
    I'm compiling your latest pull to see if screen is stable. In default mode keyboard worked ok
    ok, latest version 12.5 MHz makes stable picture here
    Lawrie Griffiths
    @lawrie
    I am getting this when I use ecp5pll:
    Info:     promoting clock net vga2dvid.ddr0p.SCLK$const to global network
    make: *** [ulx3s.mk:16: bin/toplevel.config] Segmentation fault (core dumped)
    emard
    @emard
    Strange, for me it normally works. I think I pulled yesterdays tools from edbordin site
    Lawrie Griffiths
    @lawrie
    I just pulled the latest to check it wasn't that.
    emard
    @emard
      localparam pixel_clock = 12500000; // 12.5 MHz slower than original, screen stable
      //localparam pixel_clock = 13000000; // 13 MHz original, screen jitters
    
      wire clkdvi;
      wire clk_sys; 
      wire [3:0] clocks;
      ecp5pll
      #(
       .in_hz  ( 25*1000000),
       .out0_hz(pixel_clock*10),
       .out1_hz(pixel_clock)
      )
      ecp5pll_inst
      (
        .clk_i(clk_25mhz),
        .clk_o(clocks)
      );
      assign clkdvi = clocks[0];
      assign clk_sys = clocks[1];
      /*
      pll pll_i (
        .clkin(clk_25mhz),
        .clkout0(clkdvi), // 125 Mhz, DDR bit rate
        .clkout1(clk_sys),  //  13 Mhz system clock
      );
      */
    This is exactly what I have in toplevel as replacement for your code
    Lawrie Griffiths
    @lawrie
    I was missing the assigns.
    emard
    @emard
    it can be shorted as wire clkdvi = clocks[0] and delete wire declaration above...
    Lawrie Griffiths
    @lawrie
    It is working now.
    emard
    @emard
    ecppack --compress can also be added
    Lawrie Griffiths
    @lawrie
    Yes, I have done that and removed idcode.
    I have pushed it now. I will see if I can get zx81 mode working.
    emard
    @emard
    Im compiling current version
    it works great, picture stable
    Lawrie Griffiths
    @lawrie
    My capture device still does not like the picture and the monitor reports it as 57Hz.
    But it is stable on my monitor.
    emard
    @emard
    I found out that I have to be close to some standard pixel clocks and refresh rates, eg if I get 25MHz +- 0.3 MHz and 60Hz +- 0.3 Hz then nobody complains
    Lawrie Griffiths
    @lawrie
    I think ZX81 mode does work but the keyboard is mapped differently and the shift key seems to work differently. It is a toggle like caps lock. Not sure if that is correct.
    emard
    @emard
    Can there be some toplevel option like parameter zx=80 or zx=81 or similar to select which machine is emulated
    I have been trying for some time to make ST7789 display apple ][ video. Currently I have some early results, it was nasty because of their custom video format
    Lawrie Griffiths
    @lawrie
    zx81 is currently a register set to 0 or 1. I will probably make it a parameter. Perhaps sometime we should support options in the OSD. That is how Mist and Mister select such things.
    I need to add tape loading before it is worth adding an OSD to the ZX80/81.
    emard
    @emard
    We can support OSD for some file loading directly to memory. If tape is distributed in modern form as real bytes that get to RAM, then this can be parsed, RAM updated and few basic pointers adjusted. If there's some copy protection multi-part tapes, then it's not so easy and tape loading must be supported
    emard
    @emard
    https://github.com/emard/apple2fpga I finally got the sucker working. LCD ST7789 displays screen correctly now
    emard
    @emard
    wait I think still something is not ok as commited
    emard
    @emard
    I think now it works ok for LCD. osd disk2.py has still some bugs. OSD works but if both up/down buttons are pressed sometimes it stops responding. I should fix it by taking code from mac128
    AndrewCapon
    @AndrewCapon
    Hi Guys, I have junked all the stuff I was doing before with SaxonSoc and got the dev-0.2 branch again. I thought I would build the linux version by following : https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.2/bsp/radiona/ulx3s/smp/README.md I'm running into issues with SBT/Scala though:
    [error] sbt.librarymanagement.ResolveException: Error downloading org.scalameta:semanticdb-scalac_2.12.10:4.1.0
    Anyone any ideas on this?
    Lawrie Griffiths
    @lawrie
    I built that without problems. I have not seen that error, perhaps @Dolu1990 has.
    Dolu1990
    @Dolu1990

    Error downloading org.scalameta:semanticdb-scalac_2.12.10:4.1.0

    Didn't had that, seems like some SBT depedancies or something like this broke

    will try one thing
    @AndrewCapon What does sbt --version give you ?
    Dolu1990
    @Dolu1990
    Also sometime it happend that some stuff out there is the wild web break for some time before comming back XD
    (Might be self resolved now)
    AndrewCapon
    @AndrewCapon
    MP12:SaxonSoc andrewcapon$ sbt --version sbt version in this project: 1.3.13 sbt script version: 1.4.5