Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 17:24 10 Nov 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : GFXterm.exe uploaded to doc register

Author Message
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 01:18am 13 Nov 2017
Copy link to clipboard 
Print this post

I've just uploaded the latest version of GFXterm to the document register:
http://www.thebackshed.com/docregister/ViewDoc.asp?DocID=22

This contains a number of improvements over earlier versions, including:
- detecting when a serial USB device has been unplug
- mouse scroll wheel support within the micromite editor
- more reliable pasting into the micromite editor
- X10 mouse position reporting (now the same as in teraterm)
- graphics are turned off until accessed, in theory improving performance
- expanded documentation


"GFXterm has been designed as a simple terminal emulator for use with Geoff Graham's single-chip Micromite computers running MMbasic. As such, it provides just enough VT100/ANSI emulation to use the Micromite's inbuilt editor with an 80 column by 24 line screen size.

In addition, GFXterm supports a simple set of graphics extensions that are suitable for drawing very basic rolling graphs.

Mouse scroll wheel activity is mapped to the cursor up/down keys, and will work with the Micromite's internal editor. X10 mouse position reporting is also supported.

Full source code (Delphi 5) is provided, however the only file required for use is GFXterm.exe."


cheers,
rob :-)
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9749
Posted: 10:36am 13 Nov 2017
Copy link to clipboard 
Print this post

Like it, like it, like it.





The only things that irritate me SLIGHTLY is that you have to know which COM port the MM is on - TT etc will give you a list of available COM ports and you select the one you want. Not that typing in COM5:38400 is difficult in the slightest, but you have to know the MM is on COM5 if you see what I mean, and every time you plug in a different MM project, Windoze tends to assign a different COM port number - I currently have COM5 through to about COM12 depending on what USB-serial adaptor I happen to plug in and on which port.

The other thing is the blinking ONLINE message in green and red. That is very distracting to me when you are trying to use the terminal. That's just me though.

By no means do I mean this to be criticism of the program - I love this, and it would be my new TT replacement for general MM work if those two things could perhaps be addressed?
Smoke makes things work. When the smoke gets out, it stops!
 
Phil23
Guru

Joined: 27/03/2016
Location: Australia
Posts: 1667
Posted: 10:58am 13 Nov 2017
Copy link to clipboard 
Print this post

Looked a bit & read the docs,

but.... haven't connected to any of my devices as they are all TCP/IP.

Can anyone suggest a good simple Virtual Serial Port driver/emulator that can translate my 192.168.xxx.xxx:23 devices to a virtual ComXX.


Cheers

Phil.

 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 04:27pm 14 Nov 2017
Copy link to clipboard 
Print this post

as requested: the ONLINE annunciator is now solid green when online, and the comm port and baud rate are selected from dropdown menus. to enter as a connection string instead, hold down the shift key while clicking on 'CONNECT'.

updated version '15-Nov-17' is now uploaded to the document register:
http://www.thebackshed.com/docregister/ViewDoc.asp?DocID=22


cheers,
rob :-)
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9749
Posted: 11:15pm 14 Nov 2017
Copy link to clipboard 
Print this post

Wow... Love this now.
I think I have found my TT replacement. It's faster to get going then TT too.
No disrespect to TT.

Thanks for doing that Rob!
Smoke makes things work. When the smoke gets out, it stops!
 
Quazee137

Guru

Joined: 07/08/2016
Location: United States
Posts: 600
Posted: 09:10am 15 Nov 2017
Copy link to clipboard 
Print this post

Just ran it under wine here is a screenshot





not sure the cause of the missing pixel columns.

will be nice to have 4 to 6 of these running and talking to my mites

any way to put the com : baud in the title area or may name it.Edited by Quazee137 2017-11-16
 
BrianP
Senior Member

Joined: 30/03/2017
Location: Australia
Posts: 292
Posted: 09:24am 15 Nov 2017
Copy link to clipboard 
Print this post

This has the makings of something amazing!

What would be the possibilities of implementing a small command buffer so that up-arrow shows command history? When a program is running on the uMite up-arrow does repeat the last key entry, but when program not running there is no history. (maybe I'm missing something?)

Like Grogs this has become my goto terminal.

Cheers

Brian P.
Edited by BrianP 2017-11-16
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 06:45pm 16 Nov 2017
Copy link to clipboard 
Print this post

for the next release i'll look at doing something about making the port and baudrate visible, either in the window title or on the taskbar. or how about if it appeared as a help hint when hovering the cursor over the status line?

BrianP: as for a command buffer, that would be very difficult to do well. it is only a terminal emulator, and as such is relatively unaware of the state that the micromite is in: editing, at the command prompt, or running a program. it was hard enough just detecting if the editor was running and modifying the speed of pasting to accommodate it.

Quazee137: regarding running under linux/wine, i am quite surprised it got as far as it did! under the hood, GFXterm employs some pretty odd stuff that is very wine-unfriendly. from your screenshot it looks like the overlaying graphics objects are not stacking one on top of another; this is likely a limitation of wine. however, since GFXterm is written in Delphi there is no reason why someone couldn't port it to a linux native application using Lazarus:
https://www.lazarus-ide.org/


cheers,
rob :-)Edited by robert.rozee 2017-11-18
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9749
Posted: 11:53pm 16 Nov 2017
Copy link to clipboard 
Print this post

Hey Rob - what's the idea of the tick-timer running all the time on the top line?
Smoke makes things work. When the smoke gets out, it stops!
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 01:48am 17 Nov 2017
Copy link to clipboard 
Print this post

the two timers show:
"
5. time since last serial data received
6. time since last serial data transmitted
"
(from the quickstart guide)

i always like things to have something moving on the screen to show they are still alive, hence the (formerly) animated 'connect' indicator and the two timers. there is actually a 3rd timer (not displayed) that is the time since the last VT escape sequence was successfully processed. the RxD and VT timers are used internally to decide if text pasting should be fast or slow, and to regulate pasting speed.

i could remove the display of them, but i do find it reassuring to see things ticking over!


cheers,
rob :-)
 
Quazee137

Guru

Joined: 07/08/2016
Location: United States
Posts: 600
Posted: 03:09am 17 Nov 2017
Copy link to clipboard 
Print this post


Having the "port : baud" or a custom name it the title helps
when running multiple copies. An easy way to know what mite
you working with in that window.

Used Pascal MT under ZCP/M and MP/M when Windows was what
you washed on you day off and microsoft did embedded basic.
My P-MT came on an 8" floppy. I had CP/M on side 0 and MT on 1.

I down loaded the tools will give it a try in off time.
As for now building 10 controllers, 4 Hat Stands, 4 V2 backpacks.
Also moving my I/O designs to three Hats.

Now this is my IDEA of retirement.

Quazee137
 
Phil23
Guru

Joined: 27/03/2016
Location: Australia
Posts: 1667
Posted: 04:44am 17 Nov 2017
Copy link to clipboard 
Print this post

@Robert.rozee,

Is a TCP/IP option on the development list or is that a no go?

I had a brief look for TCP/IC Delphi code & libraries out there,
would something already exist that would allow you to add it in?

Cheers

Phil.
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 07:32am 17 Nov 2017
Copy link to clipboard 
Print this post

serial read/write is all compartmented through two routines that make calls to the win32 APIs ReadFile and WriteFile:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747(v=vs.85).aspx

if you can figure out how to get tcp/ip working through these calls, then it would be trivial to get working.


cheers,
rob :-)
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 11:51am 19 Nov 2017
Copy link to clipboard 
Print this post

updated so that "portname:baudrate" is displayed in the taskbar (or 'offline' if not connected), and is also prepended to the terminal window title. i've also reworked the scheduling (internal timer events) so that when running at full steam less computrons should be consumed, and made a few other small tweaks.

the new version (19-nov-2017) can be downloaded from the same place as before in the document register:
http://www.thebackshed.com/docregister/ViewDoc.asp?DocID=22


cheers,
rob :-)
 
Azure

Guru

Joined: 09/11/2017
Location: Australia
Posts: 446
Posted: 10:21am 20 Nov 2017
Copy link to clipboard 
Print this post

@Rob
Downloaded and tested. Looking good and working well so far, nice work.

I am using it on a Lenova Yoga touch screen notebook with 4K screen. Since the font size addition it works well.

I think it would be nice if the connect indicator was actually a button to connect/disconnect toggle without having to go to the option menu.

I notice that when the pointer is over the border ti changes to a sizing icon, but you cannot size from any size or corner. It would be grest if it was sizeable or set someone as I like using the edit mode configured for more lines.

A sincere thank you for what you have done and keep up the great work.
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 12:06am 21 Nov 2017
Copy link to clipboard 
Print this post

with the next release the problem with the resizing arrows will fixed - they won't appear! there is also a little bug in the current release where the hex code of the "last character received" at the start of the status line is always displayed as "02" while connected, this will also be fixed in the next release. plus a few other small bits of the code tidied up.

i would prefer to avoid having the 'connect' indicator act as a button, as currently it is not visible when disconnected. if it were to become clickable then it would need to be changed to 'connect'/'offline', but i would instead prefer to add an alt-key combination to do the job. ie, alt-1 = connect, alt-2 = disconnect. views anyone?

the number of rows and columns is hard-coded in a couple of constants defined at the top of the source code, "ROWS=24" and "COLS=80". with some (not minor) effort i could make it changable from within GFXterm, or with great ease i could simply produce custom versions of the .exe with different values. i'd prefer to stick to 80 columns if possible, how would folks feel about a separate .exe for 80x36 and/or 80x43? i just checked, and the mmbasic editor will allow lines longer than 80 characters to be entered if OPTION DISPLAY is set to wider than 80 columns. don't know what the upper limit is, i only tried 90 columns. would folks like a 'special' 132x43 version?

if the rows and/or columns were changable from within GFXterm, it would likely require a restart to take effect anyway.


cheers,
rob :-)
 
Quazee137

Guru

Joined: 07/08/2016
Location: United States
Posts: 600
Posted: 01:06am 22 Nov 2017
Copy link to clipboard 
Print this post

@rob how about doing the number of columns and rows

C>GFXterm would default to 80 / 24

C>GFXterm 80,36

C>GFXterm 80,43

C>GFXterm 132,43

one could make different short cuts to launch GFXterm

Quazee137Edited by Quazee137 2017-11-23
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2462
Posted: 01:15pm 04 Dec 2017
Copy link to clipboard 
Print this post

have just finished making a few updates - the new version (5-dec-2017) can be downloaded from the same place as before in the document register:
http://www.thebackshed.com/docregister/ViewDoc.asp?DocID=22

changes include:

- any errors during opening of the comm port now offer 'abort, retry, ignore' options, allowing for use with USB serial ports based on versions of the microchip USB stack containing the "SetCommState error 31" bug. click 'ignore' if the error manifests.

- there is now an option to select a screen font other than 'Terminal'. use with caution as there are very few fonts that will work well - this option is experimental, and mainly intended for Linux users. 'Courier New' seems to work well.

- fixed bug with window resizing arrows being displayed.

- fixed bug on status line, 'last character printed' field always showed "02".

- added 36 and 43 display line versions of the .exe file.


cheers,
rob :-)
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025