New Product - RC2014 Pi Pico VGA Terminal

484 views
Skip to first unread message

Spencer Owen

unread,
Nov 6, 2021, 8:19:30 AM11/6/21
to RC201...@googlegroups.com
Just a quick email to let you all know that the Pi Pico VGA Terminal is now available on z80kits here;

This largely covers most of what the Pi Zero Serial Terminal does, except it is VGA, not HDMI, and currently the Pi Pico is much easier to get hold of in bulk than the Pi Zero. (Although following the launch of the Pi Zero 2W last week, there may be a new Pi Zero 2 at some point, but I am not confident it'll match the price of the original Pi Zero).

USB keyboard support is a bit hit & miss at the moment, but I'm hoping once we have a bit more data about which keyboards work and which don't that something can be done in software to extend this.

Shipping is available to anywhere in the world, although I do appreciate that the whole EU tax and DHL stuff makes it proportionally very expensive for those in the European Union. However, it is a one off delivery charge, so you can buy more stuff without paying more for delivery ;-)

Cheers

Spencer

Dylan Hall

unread,
Nov 6, 2021, 5:26:12 PM11/6/21
to rc201...@googlegroups.com
It would be nice if you offered the OTG adaptor as an optional extra. If you could get them in a suitable quantity this low profile adaptor works very nicely https://www.adafruit.com/product/2910.

Another thought, in addition to programming the Pico via the USB connection you can update the firmware using the three SWD pins at the bottom of the board. You might want to mention that in the documentation as ideally you'd want to solder the three header pins onto the Pico at assembly time as it may be harder down the track if you get solder into the holes.

A really cool addition to the RC2014 lineup, I'm looking forward to getting one :)

Dylan

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/CAO93Ptfb%3DmAhX_tMK4mnQshfxj7PF3R2qZiAjvX1cPFWsR9zbA%40mail.gmail.com.

Olev Toom

unread,
May 17, 2022, 2:31:59 PM5/17/22
to rc201...@googlegroups.com
Hello all,
do I understand correctly that the Pico VGA does not do auto-newline after the rightmost column is reached? Or am I doing some stupid mistake?

olev


Spencer Owen

unread,
May 17, 2022, 3:33:41 PM5/17/22
to rc201...@googlegroups.com
Hi Olev,

What version of the firmware are you running on the Pico?  (When the Pico starts up, it should show the release number).  Are you running the 40 column colour, or 80 column black and white?  And are you using it with CP/M, BASIC, or something else?

Thanks

Spencer

Olev Toom

unread,
May 18, 2022, 2:34:58 AM5/18/22
to rc201...@googlegroups.com
Hello Spencer,

I can't see the firmware version number -- after reset or power-on the entire screen is filled with RomWBW messages. But the firmware came from file
picoterm_v1.0_textmode_us.uf2.

I am using CP/M so 40-column mode is of no use for me. But I tried the Nascom Basic, and printed 90 dots there. No newline.

Thank you!
olev


Olev Toom

unread,
May 19, 2022, 2:22:36 PM5/19/22
to rc201...@googlegroups.com
Hello all!

About automatic newline: as usually "it's not a bug, it's a feature, stupid!"
Browsing the picoterm source files, I discovered the following section in the file picoterm.c (80-column version) in lines 553 to 566:

// this for disabling wrapping in terminal
constrain_cursor_values();

/* // alternatively, use this code for enabling wrapping in terminal
if(csr.x>=COLUMNS){
     csr.x=0;
     if(csr.y==VISIBLEROWS){
         shuffle();
     }
     else{
         csr.y++;
     }
}
*/

I think "reversing" the comments should do the trick. Am I right?
If yes, then there is a small problem that I never have been programmed anything for Raspberry Pi. So before I start doing all from scratch, I have a plea: if some expert could compile the modified version for me, I would appreciate it very much.



S P Dixon

unread,
May 19, 2022, 2:55:17 PM5/19/22
to 'EDLD Student' via RC2014-Z80

Hi Olev, it's Shiela, I'm responsible for writing that code.

As you've rightly discovered, 'not wrapping' is deliberate and discussed at the time of writing that code. The problem with having the wrapping is that cpm (and I believe RomWBW) add returns after 80 characters. Some applications that run under those systems will also have wrapping, if they use the bdos rather than sending characters to the port directly.  So in those cases you get double-spacing. it isn't very desirable to have the double line spacing when, for example, you're listing the contents of a directory or whatever. 

I'll be happy to build a version for you that has the wrapping switched on, in case you prefer that. 

I'll write again a bit later with a link for you.



S P Dixon

unread,
May 19, 2022, 3:48:43 PM5/19/22
to rc201...@googlegroups.com
Hi Olev

I've built a version for you with the wrapping in place, you can download it here:


It turns out that I misremembered / exaggerated the problem of double-line-spacing. I don't think you'll see it in directory listings as I said, but if you're in CPM or Z system, you are likely to see that problem sometimes. 

Try the above build and use it if you prefer it.

If you do want to return to the nowrap version, you'll find my up-to-date builds on this page:


(these versions - and the wrapping build above - may be more recent than the version you have and if so, will mount a wider range of USB keyboards.)



Enjoy
Shiela




Olev Toom

unread,
May 20, 2022, 3:57:33 AM5/20/22
to rc201...@googlegroups.com
Hi Shiela!

Thank you very much for super quick response!!!
However, I didn't study your code enough :) There are now some side effects. I am playing around with the wrap-version some more, but so far have discovered that
a) entering a long line, the last (80th) character isn't displayed, although inserted into line,
b) entering a long line on the lowest screen row makes somebody to hang (I cannot say if it is RC2014 or Pi pico, but suspect the latter because Reset button does not help, I have to switch off the power).

So I have to investigate your code deeper :)
But thank you anyway!

olev


Marco Maccaferri

unread,
May 20, 2022, 8:52:15 AM5/20/22
to rc201...@googlegroups.com
Il 19/05/22 20:55, S P Dixon ha scritto:

> As you've rightly discovered, 'not wrapping' is deliberate and
> discussed at the time of writing that code. The problem with having
> the wrapping is that cpm (and I believe RomWBW) add returns after 80
> characters. Some applications that run under those systems will also
> have wrapping, if they use the bdos rather than sending characters to
> the port directly. So in those cases you get double-spacing. it
> isn't very desirable to have the double line spacing when, for
> example, you're listing the contents of a directory or whatever.

Had a quick look at your code, I'm not sure if this apply to this case,
but having some experience with terminal software, one "trick" to avoid
the double-spacing, is to delay the cursor wrap when reaching the
rightmost column and wrap only if another printable character is received.

So, if you send exactly 80 characters, the cursor "sits" at the end of
the line over the last character, then if you send a printable character
it wraps and display the new character at the beginning of the next
line, if a control character is sent instead, it works as usual, so CR
goes to the beginning the current line and LF to the next line, without
adding the unwanted blank.

This should also avoid the screen scroll when sending 80 characters to
the last line.

Hope this helps.

Best regards,
Marco

Mike Sutton

unread,
May 21, 2022, 8:15:27 AM5/21/22
to RC2014-Z80
The Amstrad CPC code I'm working with 'validates' the cursor position before it writes each character. So, after the last character on a line it will be at position 81 (or 41 or 21 depending on screen mode).
A 'newline' will move the cursor to the start of the next line, nothing for the validation to do. A character write will result in the validation moving the cursor to the start of the next line.

(And yes, I realise this is the same as Marco's solution, but with more detail on the actual algorithm).

Alan Cox

unread,
May 21, 2022, 7:19:41 PM5/21/22
to rc201...@googlegroups.com


On Tue, 17 May 2022 at 19:32, Olev Toom <olev...@gmail.com> wrote:
Hello all,
do I understand correctly that the Pico VGA does not do auto-newline after the rightmost column is reached? Or am I doing some stupid mistake?

If it is emulating a VT terminal this is correct, although the correct behaviour is even more weird than just not wrapping - and very few emulations get it right and will pass vttest on it. ANSI/ECMA doesn't actually define the wrap/end of line behaviour at all so if it's merely 'ANSI' you get to guess.


Reply all
Reply to author
Forward
0 new messages