Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 15:05 04 May 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 : CMM2 Terminal Software

     Page 1 of 5    
Author Message
frnno967
Senior Member

Joined: 02/10/2020
Location: United States
Posts: 104
Posted: 04:16am 02 Oct 2020
Copy link to clipboard 
Print this post

I just received my CMM2 and am eager to learn how to use it much like the Commodore systems I used in the 1980's.

I plan to interface an RS232 Wifi modem to the system to transfer files and generally connect with other systems.

But has anyone written/ported Terminal software that can be used with the CMM2? I mean software that can communicate with the serial ports at various baud rates, support ANSI and other terminal emulations, and support file transfers using protocols besides XModem? I'm an amateur programmer with limited experience so I'm not sure if I could accomplish porting some of the Commodore terminal software written in Basic, and such software is rare and has limited capabilities due to the limitations of those systems in their hayday. But given the capabilities of the CMM2, I would think such software could be feature rich and able to really add to the ecosystem of the CMM2 if we could call BBS's and trade software the old fashioned way.

So is anyone aware a software I might be able to try or download for this?

Thank you in advance.
Jay Crutti: Ham Radio Operator, K5JCJ. Computer Enthusiast. Musician. Engineer.
 
jwettroth

Regular Member

Joined: 02/08/2011
Location: United States
Posts: 70
Posted: 05:16am 02 Oct 2020
Copy link to clipboard 
Print this post

I'm not sure if I completely understand your question and why XMODEM is unsuitable.  Teraterm on a Windows machine or Serial on an IOS machine do VT100 Emulation and do a pretty good job overall.  They both support XMODEM as well as other protocols but I've found XMODEM to be pretty solid with all the Maximite/Micromite series.  Both support baud rate up to 230400 with no problems.  Teraterm is free, Serial for IOS is $39.95 but has a one week trial option to check it out.
John Wettroth
 
jwettroth

Regular Member

Joined: 02/08/2011
Location: United States
Posts: 70
Posted: 05:17am 02 Oct 2020
Copy link to clipboard 
Print this post

dup
Edited 2020-10-02 15:19 by jwettroth
John Wettroth
 
frnno967
Senior Member

Joined: 02/10/2020
Location: United States
Posts: 104
Posted: 05:48am 02 Oct 2020
Copy link to clipboard 
Print this post

  jwettroth said  I'm not sure if I completely understand your question and why XMODEM is unsuitable.


I'm not referring to a program to connect TO the CMM2 from another machine. I'm talking about software that I could run ON the CMM2 to connect to other systems (Bulletin Board Systems) using an RS232 Wifi modem  I own. In other words, terminal software to run on the CMM2 that would allow me to "call"/connect to other systems using a serial/com connection then use protocols like Zmodem, Ymodem-G or others to upload/download files to the CMM2.

On the Commodore 64 we used to use modems to dial other BBS's and communicate with other people and exchange software. I love the CMM2 so far but it would be nice if it was self-sufficient where I could trade software with other computers without needing to use a different computer and swap the SD card around to move programs. And an IP-based Wifi adapter for FTP or such seems very heavyweight in terms of system requirements and complexity compared to using the COM ports on the CMM2 with my Wifi modem.

I'm looking for software for the CMM2 similar to Telix, Qmodem, Minicom, Procomm Plus, etc,.
Edited 2020-10-02 15:50 by frnno967
Jay Crutti: Ham Radio Operator, K5JCJ. Computer Enthusiast. Musician. Engineer.
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3848
Posted: 09:04am 02 Oct 2020
Copy link to clipboard 
Print this post

See this http://www.thebackshed.com/forum/ViewTopic.php?TID=12607

I've only had time to briefly dabble with it, but "datawiz" includes terminal software that can be used to make a basic connection to a BBS ...

... or is this the "IP-based Wifi adapter" you were dismissing.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
RetroJoe

Senior Member

Joined: 06/08/2020
Location: Canada
Posts: 290
Posted: 09:10am 02 Oct 2020
Copy link to clipboard 
Print this post

I don’t think such a thing exists yet, but if it did, it would have to be called “TerMite”, wouldn’t it ? :)

I agree a BBS-like message board and file transfer protocol on the CMM2 would be awesome in rounding out the “retro experience”. On one hand, swapping the SD card in and out is a reasonable facsimile of using floppies, on the other, I am a wee bit concerned about mechanical wear and tear on the CMM2 slot (probably unfounded at my age :)

FYI, the closest thing I’ve seen on TBS to what you are looking for is this, but I haven’t seen any updates lately - maybe @datawiz burned out his CMM2 drawing too much current from the I/O pins!
Enjoy Every Sandwich / Joe P.
 
RetroJoe

Senior Member

Joined: 06/08/2020
Location: Canada
Posts: 290
Posted: 09:23am 02 Oct 2020
Copy link to clipboard 
Print this post

Nice one, Tom - beat me by six minutes!

Who needs WiFi when you are connected to the Maximite Global Network, eh?

Cheers,

Joe P.
Edited 2020-10-02 19:24 by RetroJoe
Enjoy Every Sandwich / Joe P.
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3848
Posted: 09:38am 02 Oct 2020
Copy link to clipboard 
Print this post

In addition to BBS support what might be nice to see is a Viewdata/Videotex implementation like the ZX Spectrum Next cloud have with NXTel. It must be possible.

So many ideas, too little time,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3848
Posted: 09:40am 02 Oct 2020
Copy link to clipboard 
Print this post

  RetroJoe said  Nice one, Tom - beat me by six minutes!

Who needs WiFi when you are connected to the Maximite Global Network, eh?


Too true. Let's hope the CMM2 isn't a flash in the pan and that this community lives long and prospers.

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3848
Posted: 09:40am 02 Oct 2020
Copy link to clipboard 
Print this post

  thwill said  ...like the ZX Spectrum Next cloud have ...


CROWD, not CLOUD ;-)
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Seamus
Newbie

Joined: 18/08/2020
Location: United States
Posts: 9
Posted: 10:58am 02 Oct 2020
Copy link to clipboard 
Print this post

I'm watching this thread with great interest.

I just recently received my CMM2 kit, and am looking forward to a bit of time off work in a few days, to get it put together.  

I have been trying - without much luck - to find essentially an ANSI terminal emulation board, in order to pair it with one of the wi-fi modems and a small LCD screen, and build a self-contained Telnet BBS terminal. I'm less concerned with transferring files, and mostly want it for the old-school messaging and "BBS experience".

I have seen the various permutations on the monochrome VT-100 emulator (which is, in itself, pretty awesome), but am trying to find something with support for the full ANSI color commands, etc.

I suppose that a CMM2 with an ANSI terminal emulator program could be set up to auto-run it on boot, to achieve a "quick-start" terminal, without having to go through a lengthy boot process to get there.

Heck - the CMM2 has enough horsepower and display capability, it could even have provision for supporting RIP graphics.

Following this thread, and the forum in general, and eagerly looking forward to assembling my kit and getting underway with my own CMM2 very soon.

(Minor edit to clarify what I'm looking for in a terminal)
Edited 2020-10-02 21:00 by Seamus
[Insert clever signature here]
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3661
Posted: 11:01am 02 Oct 2020
Copy link to clipboard 
Print this post

  frnno967 said  software that I could run ON the CMM2 to connect to other systems (Bulletin Board Systems) using an RS232 Wifi modem  I own.

Be careful about voltage levels.

John
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 12:42pm 02 Oct 2020
Copy link to clipboard 
Print this post

I think a terminal emulator would be a good addition to the CMM2. Something like a VT340 would give enough capability for most applications. This is something that could be done in Basic - should be plenty fast enough. If it ever gets written I would be prepared to convert it into C and include in the CMM2 firmware but its not something I'm going to write from scratch.

OPEN "COM1:9600" AS VT340
 
datawiz

Newbie

Joined: 10/08/2020
Location: United States
Posts: 26
Posted: 01:13pm 02 Oct 2020
Copy link to clipboard 
Print this post

The wifi library I wrote uses the esp8266 chip, which connects to the CMM2 via serial interface, and communicates vi an AT-style command set, based after Hayes-compatible modems. I believe the RS232 Wifi Modem you have functions similarly (using AT commands) and may even use the same chip.

In the library , there are several utilities including 2 terminal programs. Since these operate over the serial interface and speak "AT" they may be of interest to you. I don't have any terminal emulation built in to the terminal, but I had considered working on VT100 or ANSI emulation. I'm swamped at work right now, so I don't have as much time to devote to the CMM2 until things clear up at the end of October. I'd like to work on that when I can devote the time to it.

Here's a quick/simple terminal to get you started:


dim COM_PORT$ = "COM2" ' replace with COM1 or COM2
dim COM_SPEED$ = "115200" ' replace with baud rate
dim CHAR_OUT$
dim CHARS_IN$

cls
open COM_PORT$+":"+COM_SPEED$+","+"256"+",get_serial_input" as 5

print "Terminal running, press ESC to exit."
do
CHAR_OUT$ = INKEY$
if CHAR_OUT$ <> "" then
  if CHAR_OUT$ = chr$(27) then exit
  print #5, CHAR_OUT$;
end if
loop
close #5
end

sub get_serial_input
CHARS_IN$ = input$(LOC(#5),#5)
print CHARS_IN$;
end sub


Rich/dw
 
datawiz

Newbie

Joined: 10/08/2020
Location: United States
Posts: 26
Posted: 01:19pm 02 Oct 2020
Copy link to clipboard 
Print this post

  RetroJoe said  maybe @datawiz burned out his CMM2 drawing too much current from the I/O pins!


No, my CMM2 is still going strong!    Just swamped with work at the moment. I definitely recommend using an external power supply for these wifi devices! I wouldn't want to risk my CMM2...

Rich/dw
 
CircuitGizmos

Guru

Joined: 08/09/2011
Location: United States
Posts: 1421
Posted: 03:21pm 02 Oct 2020
Copy link to clipboard 
Print this post

  matherp said  I think a terminal emulator would be a good addition to the CMM2. Something like a VT340 would give enough capability for most applications. This is something that could be done in Basic - should be plenty fast enough. If it ever gets written I would be prepared to convert it into C and include in the CMM2 firmware but its not something I'm going to write from scratch.

OPEN "COM1:9600" AS VT340


Isn't Geoff's source code for the Ascii Video Terminal in C? The core VT-100 routines should be a solid start.
Micromites and Maximites! - Beginning Maximite
 
frnno967
Senior Member

Joined: 02/10/2020
Location: United States
Posts: 104
Posted: 01:27am 05 Oct 2020
Copy link to clipboard 
Print this post

  datawiz said  
Here's a quick/simple terminal to get you started:



Thank you so much Rich. This program has been extremely helpful to start testing how interfacing works with the CMM2. I've successfully got it connected to another PC here using a TTL serial connection, and exchanging text worked.

I had to modify the program to fix an CR/LF issue, because the PC serial programs I'm using (Syncterm and PuTTY) will only send CR when I hit enter, but the CMM2 doesn't seem to respond correctly to it. By adding the following line in the get_serial_input subroutine I was able to get it to line feed correctly:
if CHARS_IN$ = chr$(13) then print chr$(13)

I'm also working on trying to get the CMM2 to act correctly when it receives a backspace character. Right now it just prints some weird character on screen that I don't recognize. It transmits Backspace just fine to the remote PC.

There also seems to be a slight delay in when the CMM2 sends the characters to the remote system. The CMM2 is receiving and displaying characters immediately, but the remote system isn't receiving the CMM2 immediately. Maybe the buffer has to be flushed on the CMM2 before it will TX the characters? Dunno, but to be continued.

Thanks for your help, and if you find free time to write a fully featured program with ANSI/VT, Zmodem file transfers and all the other goodies I'll be looking out for it! :)

-Jay
Edited 2020-10-05 13:18 by frnno967
Jay Crutti: Ham Radio Operator, K5JCJ. Computer Enthusiast. Musician. Engineer.
 
frnno967
Senior Member

Joined: 02/10/2020
Location: United States
Posts: 104
Posted: 11:24pm 06 Oct 2020
Copy link to clipboard 
Print this post

Using datawiz's terminal program and a "FTDI Friend" TTL serial adapter board connected to a PC running tcpser, I was able to call a BBS using the CMM2! I filmed a video of it if you want to check it out. It was stable at all baud rates up to 115200 but I didn't go over that.

Link to video:
https://youtu.be/oIyHQ9T-Klc
Jay Crutti: Ham Radio Operator, K5JCJ. Computer Enthusiast. Musician. Engineer.
 
JimDrew
Newbie

Joined: 07/10/2020
Location: United States
Posts: 39
Posted: 04:52am 07 Oct 2020
Copy link to clipboard 
Print this post

Hello to all!  I am the guy who makes the WiModem232 that is linked to above.  I designed it to be a 100% exact modem emulator.  Terminal software and BBS software thinks there is a real modem on the other end.  I have been selling this product for about 5 years now, first for the Commodore 64 and then the RS-232 version that works with everything from Commodore Amiga to RS-232 plotters... anything with a standard RS-232 serial interface.

So, I was contacted by @frnno967 about making some sort of interface for the CMM2 to allow the WiModem232 to work with it.  I looked at the CMM2 when it was announced on Hack-a-day, but honestly I am so busy with new product development for my day job and dealing with Covid that I kind of passed on getting one.  Now, they are not available in the U.S and I see that the company that was selling them is going to spin their own version.  Mail service from Australia is 30 days.  So, at this point it's by far quicker for me to get quick turn PCBs and build one here.  Fortunately I have a complete SMT prototyping facility.  I grabbed the files and it seems that v1.5 is the one that I should build (all SMT which I would prefer).  Is that the one I should be making?

Some comments on the serial aspect of things... the CMM2 OS really needs to have RTS and CTS functions for flow control.  Real modems (and other serial devices) had very small buffers.  Sending data too fast from the CMM2 is a real possibility if you want to go fast.  I am sure that the ARM, like Microchip parts has some sort of flow control capability built into the UART.  Is it possible to have two I/O pins dedicated to RTS/CTS (assigned or hardware wired) for flow control when opening a COM port?  WiFi modems that are based around the ESP family have very small buffers, and worse yet you have to send small packets via WiFi to the router (which has flow control) and the ISP has flow control for router.  There are a LOT of periods where there is pause for CRCs and basic flow control.  I also have written all new library code that allows for true asynchronous send and receive, which eliminates issues that plague other WiFi modems when doing file transfers.  However, flow control is used extensively because of this.  I am not sure how much thought has been given to the COM port implementation in this regard.  I am sure that the ARM is plenty fast enough to receive data, its the other way (sending data to the RS-232 device) that will be the problem.  Any thoughts on this?

Also... I am a super-duper newbie here, so don't laugh.  I am an assembly language programmer.  I don't like C/C++ (I used that and assembly for the WiModem232).  I do like BASIC, learned that on the Commodore PET.  I have seen a few examples of the CMM2 BASIC, and it is missing something that is extremely important to me - LINE NUMBERS.  Does the CMM2 support line numbers or are you stuck looking like C syntax?  :)

Jim Drew, CBMSTUFF.COM
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5913
Posted: 05:54am 07 Oct 2020
Copy link to clipboard 
Print this post

Hi Jim and welcome

 '
 5 LET n = 1
 10 PRINT n
 20 LET n = n * 2
 30 IF n < 200 THEN  10
 40 PRINT "Done"
 
 
1
2
4
8
16
32
64
128
Done
>


It's a long time since I have done coding like that!

Using line numbers is likely to make life difficult for some of the functions but the basics of line numbers are there. A leftover from 10 years ago when MMBasic was born.

Re the serial ports.
No RTS CTS so you would have to do it manually. Send a character at a time and check the pin before sending the next. There are TX and RX buffers so it is easy to loose a character if you forget to allow time for the buffer to empty before you close the port. A common mistake.
Sending one character at a time is the answer but it does mean slightly longer pauses between characters. I doubt if the time taken to check a pin would be noticed with typical serial speeds.
There are interrupts on serial data being received etc so serial is fairly easy to use.

Jim

edit
One of the first things I did 10 years ago was write a program to remove line numbers:
LET n = 1
_Lbl10:
PRINT n
LET n = n * 2
IF n < 200 THEN  GOTO _Lbl10
PRINT "Done"


It doesn't remove the spaghetti unfortunately
Edited 2020-10-07 15:59 by TassyJim
VK7JH
MMedit   MMBasic Help
 
     Page 1 of 5    
Print this page
© JAQ Software 2024