Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 18:56 23 Apr 2024 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 : new release of GFXterm64 for 64-bit Linux

     Page 2 of 2    
Author Message
toml_12953
Guru

Joined: 13/02/2015
Location: United States
Posts: 326
Posted: 09:40pm 03 Sep 2021
Copy link to clipboard 
Print this post

  thwill said  Nice Rob,

Obviously I'd appreciate a 32-bit Raspberry Pi version
Tom


Is your Pi 64-bit capable? If so, the 64-bit Raspberry Pi OS is very stable and runs great.

You can write it to a new microSD card, pop out the 32-bit card, plug in the 64-bit card and try it. If it doesn't work or you just don't like it, pop out the new card and pop in the old, 32-bit card and continue as if nothing happened! That's the great thing about having the OS on a removeable drive.

64-bit Raspberry Pi OS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3838
Posted: 09:05am 04 Sep 2021
Copy link to clipboard 
Print this post

  toml_12953 said  Is your Pi 64-bit capable? If so, the 64-bit Raspberry Pi OS is very stable and runs great.


Hi Tom,

It's a Pi 3 which I believe is 64-bit capable, but with only 1 GB memory hardly worth it.

In any case porting MMBasic to Linux is consuming all my hobby time at the moment so re-compiling GFXterm, whilst still something I want to do, is currently on the back burner.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2285
Posted: 09:29am 04 Sep 2021
Copy link to clipboard 
Print this post

  Volhout said  Works fine on Gallium OS (ubuntu amd64 bionic (18.04)) on my chromebook.
My other linux PC's are still 32 bits (older stuff doesn't run 64 bits).Volhout


compiled within a 32-bit linux VM, had minimal testing - though there is no good reason it should not work:

GFXterm32 (4-sept-2021).zip


cheers,
rob   :-)
Edited 2021-09-04 19:48 by robert.rozee
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 3503
Posted: 07:18am 06 Sep 2021
Copy link to clipboard 
Print this post

GFXterm32 tested on Lubuntu 16.04 x86 (no updates since first install, so really old). Works nice. No problems encountered. I was surprized it worked so well on this old laptop, and that it is compatible.
I even created a .desktop file for it so it shows in the menu. I'll keep this one on the old machine.

Thanks,

Volhout
PicomiteVGA PETSCII ROBOTS
 
led-bloon

Senior Member

Joined: 21/12/2014
Location: Australia
Posts: 202
Posted: 09:52am 20 Sep 2021
Copy link to clipboard 
Print this post

Rob
You kindly released the source for GFXterm back in July, and I have built it on my RapsberryPi 32 bit - ok.  I noticed that a later update fixes a major bug! Will you release the source again with the bug fix?  I just now actually got it to crash, but don't know what I did!!! Sorry.  Also, uploading a file is VERY slow due to delays you have introduced per line of text, undoubtedly warranted.  Have you considered putting xmodem into the program?  The source is readily available.
Thanks, I like it.
led
Miss you George
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2285
Posted: 02:32pm 20 Sep 2021
Copy link to clipboard 
Print this post

hi led,
   here is the latest source (as of today):
GFXterm source (2021-09-21).zip

and here are Linux32 and Linux64 executables:
GFXterm32_64 (2021-09-21).zip

NEW FEATURE: now compiles for Win32, and more-or-less kind-of works.


uploading should be fairly quick using AUTOSAVE, i just checked a 52k basic file and it took around 47 seconds uploading to an MX170. however, pasting directly into the editor is far slower.

the delays are to ensure no on-screen corruption occurs, especially important when pasting into the editor.

i have been considering adding xmodem, in particular for downloading basic from the micromite in an automated fashion (ie, GFXterm senses an xmodem transfer starting, captures the data, and then asks where to save it too). will need to read up on how doable this is, and figure out a 'nice' way of adding the functionality.

please DO post your compile for RPi, and let me know if this version has any crashes or other problems. i've been continuously simplifying how comms are handled which seems to be improving reliability and reducing CPU load.


cheers,
rob   :-)
Edited 2021-09-21 00:37 by robert.rozee
 
led-bloon

Senior Member

Joined: 21/12/2014
Location: Australia
Posts: 202
Posted: 09:38pm 20 Sep 2021
Copy link to clipboard 
Print this post

Here is GFXterm for Raspberry Pi Buster 32bit OS

GFXterm32-armhf.zip

Little testing so far, but seems ok.
Had a small problem compiling with a change you made to remove warnings!
(an '@' char in front of a Buff[1] - seemed to make a big difference here!)
Anyway, have included some extras for those that use the Pi to get them settled
in with few hassles.  A 64 bit version will follow.
Thanks again
led
Miss you George
 
led-bloon

Senior Member

Joined: 21/12/2014
Location: Australia
Posts: 202
Posted: 12:12am 22 Sep 2021
Copy link to clipboard 
Print this post

GFXterm for Raspberry Pi Buster 64bit OS (Beta)
GFXterm-arm64.zip

Rob
GFXterm-arm64 compiles but does not identify any COM ports when run.
By selecting the "edit" checkbox and inserting a valid COM port
in the "CONNECT" config menu, eg /dev/ttyACM0, the program is then
quite happy and communicates with my Pico board.
The Lazarus install, on a Beta 64bit Raspberry Pi OS, appears to be
missing modules for the arm processor (not real sure though what's
going on).  Lazarus 2.0.0+dfsg-2 & FPC Version 3.0.4
As the OS is only Beta and Bullseye is coming to the Pi soon I will
not do any further testing as I don't use the 64 bit OS normally.
Others may want to try this though.
Thanks once again
led
Miss you George
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2285
Posted: 04:11pm 22 Sep 2021
Copy link to clipboard 
Print this post

  led-bloon said  GFXterm-arm64 compiles but does not identify any COM ports when run.
By selecting the "edit" checkbox and inserting a valid COM port
in the "CONNECT" config menu, eg /dev/ttyACM0, the program is then
quite happy and communicates with my Pico board.
The Lazarus install, on a Beta 64bit Raspberry Pi OS, appears to be
missing modules for the arm processor (not real sure though what's
going on).  Lazarus 2.0.0+dfsg-2 & FPC Version 3.0.4


an interesting problem. can you possibly check the following works?

ls /sys/class/tty/


this should give you a list of all the serial port names that exist. the list should look something like:

console  tty16  tty26  tty36  tty46  tty56  tty9       ttyS16  ttyS26  ttyS8
ptmx     tty17  tty27  tty37  tty47  tty57  ttyACM0    ttyS17  ttyS27  ttyS9
tty      tty18  tty28  tty38  tty48  tty58  ttyprintk  ttyS18  ttyS28  ttyUSB0
tty0     tty19  tty29  tty39  tty49  tty59  ttyS0      ttyS19  ttyS29
tty1     tty2   tty3   tty4   tty5   tty6   ttyS1      ttyS2   ttyS3
tty10    tty20  tty30  tty40  tty50  tty60  ttyS10     ttyS20  ttyS30
tty11    tty21  tty31  tty41  tty51  tty61  ttyS11     ttyS21  ttyS31
tty12    tty22  tty32  tty42  tty52  tty62  ttyS12     ttyS22  ttyS4
tty13    tty23  tty33  tty43  tty53  tty63  ttyS13     ttyS23  ttyS5
tty14    tty24  tty34  tty44  tty54  tty7   ttyS14     ttyS24  ttyS6
tty15    tty25  tty35  tty45  tty55  tty8   ttyS15     ttyS25  ttyS7


GFXterm runs the following check function across the above list:

// method based on information obtained from the following two sites:
// https://www.lazarusforum.de/viewtopic.php?p=72837
// https://stackoverflow.com/questions/2530096
function CheckDevice(DeviceName:string):boolean;     // checks to see if the device named is a live
var DriverName:string;                               // ... serial port. this is done by checking
           FD:longint;                              // ... entries in /sys/class/tty, including the
           SS:TSerialStruct;                        // ... presence of a link to a device driver.
           ST:stat;
begin
 Result:=false;
 ST.st_mode:=0;

 if (DeviceName<>'.') and (DeviceName<>'..') then
 if FileExists('/sys/class/tty/'+DeviceName+'/device/driver') or
    DirectoryExists('/sys/class/tty/'+DeviceName+'/device/driver') then
 if fpLstat('/sys/class/tty/'+DeviceName+'/device', ST)=0 then
 if fpS_ISLNK(ST.st_mode) then
 begin
   DriverName:=ExtractFileName(fpReadLink('/sys/class/tty/'+DeviceName+'/device/driver'));
//  writeln(DeviceName,'  :  ',DriverName);

   if DriverName<>'serial8250' then Result:=true
                               else begin
//                                     writeln('    checking serial8250 device');
                                      FD:=fpOpen('/dev/'+DeviceName, O_RDWR or O_NONBLOCK or O_NOCTTY);
                                      if FD>0 then
                                      try
                                        if fpIOCtl(FD, TIOCGSERIAL, @SS)<>-1 then
                                        if SS.typ<>0 then Result:=true;
                                        fpclose(FD)
                                      except end
                                    end
 end
end;


for a device you know exists, you should be able to follow down the tree:
/sys/class/tty/DeviceName/device/driver

and even do the following to get the driver name thus:

user@DH61BE:/sys/class/tty/ttyUSB0/device$
user@DH61BE:/sys/class/tty/ttyUSB0/device$
user@DH61BE:/sys/class/tty/ttyUSB0/device$
user@DH61BE:/sys/class/tty/ttyUSB0/device$ ls
driver  port_number  power  subsystem  tty  uevent
user@DH61BE:/sys/class/tty/ttyUSB0/device$ readlink driver
../../../../../../../../bus/usb-serial/drivers/cp210x
user@DH61BE:/sys/class/tty/ttyUSB0/device$


which tells us (in this case) that the device is a SiLabs CP2101.


btw, am a portion of the way towards getting XModem running. i have it plumbed in so that when you press f11 or f12, GFXterm triggers on the micromite text response (XMODEM RECEIVE or XMODEM SEND) and jumps to a routine that will pop up load/save file dialogs and do the transfer.


cheers,
rob   :-)
Edited 2021-09-23 02:13 by robert.rozee
 
led-bloon

Senior Member

Joined: 21/12/2014
Location: Australia
Posts: 202
Posted: 08:26pm 22 Sep 2021
Copy link to clipboard 
Print this post

Rob
Been all over that code, looks good (it compiles for a 32 bit system doesn't it!).
The OS has everything in place for the code to work, Lazarus install is questionable.
Headaches with the nuances of a different language, a different IDE (and did I say
that I hate "floating windows" - yes getting old) I couldn't get the debugger working,
although my interest had waned by that stage.  Maybe an ubuntu 64 bit install for the
Pi may do a better job, don't know...
Sorry, but I'm done for now  
led
Edit: Maybe another go with xmodem in it
Edited 2021-09-23 06:41 by led-bloon
Miss you George
 
     Page 2 of 2    
Print this page


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

© JAQ Software 2024