Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Paul Ruiz
    @pnru_gitlab

    @emard thanks for i2c info. I think my 12F board is skriptarnica from the early 2019 run, so I will check. My 85F is a blue Wattenrott.

    My current ping time is 600ms, but I think I have a reasonable chance to get that down to 300ms. This is better than the Arpanet backbone from 1980, which had 1 second ping times (although "ping" did not exist yet). However, back then on a LAN ping times of about 50ms were achieved, using dedicated boards, that often had their own buffer memory and DMA circuits.

    I'm thinking about using a ENC28J60 PMOD. This is available in a 28 pin 0.1" pin-through-hole package for a future retro board and the TI990 chips have a "cru" I/O bus that is pretty similar to SPI. Another route could be to run the ESP32 PPP link at 115K2 or something like that and use a sram (bram) buffer. I am too fond of the self-contained aspect of the ESP32 solution to let it go easily.

    emard
    @emard
    @pnru_gitlab aha ok 28J60 would work too :) ESP32 with 115200 PPP is good, we have tried it on saxonsoc. I can normally work with prompt and copy few short files. Blue 85F has i2c chip it could R and on some monitors possibly also W EDID. I recommend backup :). If forgotten, Linux X11 used to write EDID in syslog so there may already be some emergency hex backup
    emard
    @emard
    @lawrie is on lcc tests the example for reading keyboard, remember unfinished tetris and I wanted some select call replacement that reads char and timeouts, I see there's console.c, seems to work
    Lawrie Griffiths
    @lawrie
    Yes console.c was by attempt to do what you need, but I have not looked at it for a while. When I looked at your tetris, it did not seem to be write to the screen correctly, so I thought I would leave it to you to get it working.
    There are now lots of system calls implemented, but they don't currently all have the wrappers that they need. For example, there is pselect6 and ppoll, but not select and poll wrappers.
    Paul Ruiz
    @pnru_gitlab

    Is select/poll necessary? I thought that the original game just placed stdin into raw + nonblocking mode, which I think was tested to work. Output is to an ansi screen and is from a practical point of view not blocking the game's event loop. Is there more work to do other than debugging the game?

    Of course we need the wrappers for select and poll at some time, but for this game I think it is not needed.

    emard
    @emard
    @lawrie tetris must be run from xterm, actually it needs a terminal that supports vt52 mode
    select is not really needed and even it wouldn't allow game to speed up as it progress, but in this case it would consume least CPU. I can get along with console.c, with 20ms usleep it consumes only 10% cpu what is very acceptable
    Paul Ruiz
    @pnru_gitlab
    @emard If you set VMIN to 0 and VTIME to 1 or 2 you get behaviour that is very similar to using select() and hopefully gets the cpu load down to a few percent.
    Paul Ruiz
    @pnru_gitlab
    If you use VTIME, don't use non-blocking at the same time.
    emard
    @emard
    yes yes that could be great, even more if I can dynamically change timeout there
    emard
    @emard
    @pnru_gitlab Yeees that was exactly I was looking for!! This approach is even lighter than select(), and speed range cc_c[VTIME]= 1-10 is exactly what is needed
    derekmulcahy
    @derekmulcahy
    Newbie question, does the SD card latch? I tried giving it a firm, but gentle push, and it doesn't click in. I once spent two hours with another board trying to get a SD card to latch and then found that the card holder slid a bit and then flipped open, clamshell like. So what is the correct procedure with this one?
    emard
    @emard
    yes you need to first insert it forward then slightly pull it back and you should hear click for not hinged SD slots.
    for hinged, push hinge slightly forward, open hinge insert SD, close and pull it back
    very gentle with hinged, it's fragile
    Lawrie Griffiths
    @lawrie
    @emard How were you planning to run tetris on saxonsoc then? If I run xterm on my host, then ssh to saxonsoc and run it, the screen is OK.
    emard
    @emard
    Yes exactly like this for now. Maybe source should be edited later and vt52 replaced with vt100 sequences, that should be wider compatible
    derekmulcahy
    @derekmulcahy
    Haha this IS one of those slide it and open up. Did the Snickerdoodle have one of these? At least this didn't take two hours. Yes I could easily push it past that little nub which prevents pushing it in directly. Works great, thanks.
    emard
    @emard
    "xterm" or kde "konsole" run vt52 for tetris correctly. gnomes "terminal" not.
    @derekmulcahy no problem! I wish hinged SD slots should be forbidden and only non-hinged availabe on mouser again ....
    emard
    @emard
    @lawrie I made it playable somehow :) still its rough and few things need some fix https://github.com/emard/tetris4terminals
    Lawrie Griffiths
    @lawrie
    It needs some sound effects :)
    emard
    @emard
    eheheeheeee :))) I'm currently trying to make speed increase with level
    emard
    @emard
    Now game speed advances and double-chars drawn for better view with 8x16 chars. CPU usage very small mostly around 1%
    emard
    @emard
    TETRIS now works in VT100 mode https://github.com/emard/tetris4terminals so saxonsoc framebuffer can be used like this:
    ./tetris > /dev/tty1
    Lawrie Griffiths
    @lawrie
    Or even ./tetris >/dev/tty0 to get it on the HDMI monitor.
    I see, both of those go to the HDMI monitor.
    emard
    @emard
    I have added sound (beep ctrl-g :)
    tty0 is currently viewed, ttyN is specific one maybe
    Lawrie Griffiths
    @lawrie
    With vt100 control codes, you could probably make the blocks coloured.
    Not sure, it is ever going to be the world's best Tetris, though :)
    emard
    @emard
    Yes but there's no gamefield color support as they packed everyting to each bit to save memory (code for pic mcu). I think piece rotation is a bit wrong and rotation origin a bit excentric but ok for now :)
    It should be distribued along with "sl" command :).
    e2kgh
    @e2kgh
    @lawrie : edititng the DTS as you recommended, I got my green 85F up to 4 cores, and completely compiled & placed locally. THANKS!
    Lawrie Griffiths
    @lawrie
    @e2kgh Excellent news. Maybe I should add some instructions on editing the dts, but I think the long term aim is to get it generated from the scala source.
    Building the 4-core version takes a long time.
    e2kgh
    @e2kgh
    @lawrie : DTS: probably just some comments in the file what to edit for 1/2/4 cores, and what constants the Memory sizes need (32/64MByte)
    When I have time again in the next days, I will set up a new system, and check our documents again. I think, for new people coming to the ulx3s, there is documentation out there, but sometimes old and contradicting :(
    And gitter is cool, but very hard to find answers browsing, so people ask the same questions all over ...
    Lawrie Griffiths
    @lawrie
    A forum is better for finding answers, but gitter and similar chat servers are better for collaboration and general chat.
    e2kgh
    @e2kgh
    Yes, I agree, the speed here is impressive. I understand, that documentation can't keep up with that ;-)
    OPENOCD: I never followed up on this, but do we have to compile it specially for SaxonSoc & ULX3S, or is the " normal" Ubnuntu/Debian package sufficient? I tried i t once, and it didn't work to compile it on my Ubuntu20.04LTS ...
    emard
    @emard
    I know I can't write everything so I mostly stick to MANUAL.md when someone asks a question that relates to manual, I edit it and I noticed this question is not longer asked by those who got in touch with manual :)
    Lawrie Griffiths
    @lawrie
    @e2kgh You need the Spinal HDL version of openocd, which is compiled as part of the instructions for building SaxonSoc from source.
    Dolu1990
    @Dolu1990
    @e2kgh I recently merged openocd upstream into my fork, so now it might be fine on ubunuto 20.04
    emard
    @emard
    openocd community is very conservative in accepting patches. I have 6 months of messaging to get ft231x support accepted by their mainstream. And still I'm not sure that debian binary got compiled that in binary release
    Lawrie Griffiths
    @lawrie
    You then need a usb JTAG device, preferably an FT2232 one, and you connect the pins to gn0 - gn3. I have not used openocd with SaxonSoc for a while, but @Dolu1990 uses it all the time.
    Dolu1990
    @Dolu1990
    for what do you want to use openocd ?