Issues setting Up Serial File Transfert when I am using VT100 Mode

144 views
Skip to first unread message

Dieter Schneider

unread,
Jan 8, 2023, 10:21:16 AM1/8/23
to Altair-Duino
Hi all,

I am having issues to setup my Altair Duino correctly for being able to receive and send files from the Altair to my Laptop via TeraTerm / PCGET / PCPUT-

I am following this instruction:
# Making a Serial Connection for Data and File Transfer

I am booting the altair like:
  1. SW0 UP + Hold Deposit + Power ON
  2. Wait until screen is visble on my external monitor
  3. STOP and AUX1 UP
  4. "E" for mapping 2SIO Port 2 to " Serial (pin A6/A7)  
  5. setting baudrate to 9600 (see picture )  
  6. save the configuration to "1" 
  7. exit the config screen
  8. mount CPM like SW12 Up and SW0 UP and AUX2 down
  9. SW3up and AUX 1 down for booting CPM
  10. in CPM PCGET mytext2.txt 
  11. ON TeraTerm I try to send a file via File/Transfer/XModem/Send but nothing is happening 
My COMPOrt settings in TeraTerm seems to be correct.

Everything is working fine, when I start the Altair in Serial Mode via SW1UP.
Then I can send and receive files into and out of CPM.

Whats wrong with my config around VT100 and DB9 SerialPort  on the back?

BR
Dieter


Capture3.JPG
capture.JPG
Capture4.JPG
screenshot2.JPG
screenshot1.JPG
Capture2.JPG
Capture5.JPG

Walt Perko

unread,
Jan 8, 2023, 10:47:39 AM1/8/23
to Altair-Duino
Hi, 

For all the changes I've made and played with on my two Altair-Duino Pro computers I started making notes to help me recover.  


Default starting point is the USB Programming Port going to the USB cable to the PC:  

Original Configuration 0 for USB cable connecting to the PC terminal emulators like TeraTerm
[Cconfiguration Editor = s]
Configure host serial settings

(0) USB Programming Port : 115200 baud
(1) Serial (pin 18/19)   : 9600 baud 8N1
(2) USB Native Port      : 115200 baud
(3) Serial (pin A6/A7)   : 9600 baud 8N1
(4) Serial (RXL/TXL)     : 9600 baud 8N1

(P)rimary host serial : USB Programming Port 


[Cconfiguration Editor = E]
Configure serial cards

(1) Configure SIO             : Primary (USB Programming Port)
(2) Configure ACR             : Not mapped
(3) Configure 2SIO port 1     : Primary (USB Programming Port)
(4) Configure 2SIO port 2     : Not mapped
(5) Configure 2nd 2SIO port 1 : Not mapped
(6) Configure 2nd 2SIO port 2 : Not mapped


Original Saved Configuration 1 for the external terminal connection
[Cconfiguration Editor = s]
Configure host serial settings

(0) USB Programming Port : 115200 baud
(1) Serial (pin 18/19)   : 9600 baud 8N1
(2) USB Native Port      : 115200 baud
(3) Serial (pin A6/A7)   : 9600 baud 8N1
(4) Serial (RXL/TXL)     : 110 baud 5N1 (current: 9600 8N1)

(P)rimary host serial : Serial (pin 18/19) (current: USB Programming Port)


[Cconfiguration Editor = E]
Configure serial cards

(1) Configure SIO             : Primary (Serial (pin 18/19) (current: USB Programming Port))
(2) Configure ACR             : Not mapped
(3) Configure 2SIO port 1     : Primary (Serial (pin 18/19) (current: USB Programming Port))
(4) Configure 2SIO port 2     : Not mapped
(5) Configure 2nd 2SIO port 1 : Not mapped
(6) Configure 2nd 2SIO port 2 : Not mapped



.
Message has been deleted

Dieter Schneider

unread,
Jan 8, 2023, 11:45:17 AM1/8/23
to Altair-Duino
Hi 

I executed the PING.BAs from Altair in VT100 Mode and I do receive something in TeraTerm - therefore for me the connection should work.
But anyway a filetransfer via xmodem fails from teraterm to altair again

BR
Dieter

John Galt schrieb am Sonntag, 8. Januar 2023 um 16:52:47 UTC+1:
I don't know if you have the same issue however....

back when i first started transferring files to my Altair via teraterm i would have everything setup correctly and go to send or receive a file
and teraterm would sit there doing nothing.

In playing with the connection trying to figure out what is going on i wrote a little utility that would "PING" the serial port.

it would send a simple test message over serial back to my USB on my laptop with teraterm open on the serial connection.

my little message would show up correctly on teraterm. suddenly my file transfers worked correctly.

then i learned if i power cycled teraterm would go back to the same issue.

putting 2 and 2 together i figured out teraterm is expecting some kind of "hello i'm here" response when it makes a serial connection before it finalizes the connection.

I use my ping program and when i cold boot my altair and connect to teraterm for the first time.

i run "PING" and make sure teraterm can see the altair then i go about using pcput and pcget.
i works fine so i never tried to fix whatever.

my file is called PING.BAS

you can use it to help diagnose an issue as well.

200 REM write to serial port
205 PRINT"PORTS TO TEST: 18,20,22(18 is 9 pin port on back of Altair)"
206 PRINT"ENTER A PORT TO TEST IN DECIMAL"
207 INPUT PORT
210 PN=PORT
220 A$="THIS IS A TEST. 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
225 A$=A$+CHR$(13)+CHR$(10)
230 A=INP(PN) : REM read from control register
240 FOR I=1 TO LEN(A$)
250 IF A AND 2=0 THEN 250 : REM bit 1=0 when output register is full
260 OUT PN+1,ASC(MID$(A$,I)) : REM send test byte
270 NEXT
280 END

i have converted this basic program to a binary and i just run it on each startup to fix the teraterm issue.
2.JPG
1.JPG
Message has been deleted

Dieter Schneider

unread,
Jan 8, 2023, 11:59:01 AM1/8/23
to Altair-Duino
still same issue.

I did:

1) Ping Test from Altair over VT100 Mode to check connection to TeraTerm ==> Everything OK
2) PCGET B MYTEXT.TXT
3) Send file in TeraTerm APP via File/Transfer/XModem/Send  ==> Progress Bar does not update --- terminates after a while


John Galt schrieb am Sonntag, 8. Januar 2023 um 17:49:15 UTC+1:
ok i see.

do this:

PCGET B MYTEST.TXT
PCPUT B MYTEST.TXT

Walt Perko

unread,
Jan 8, 2023, 12:07:17 PM1/8/23
to Altair-Duino
Hi, 

There is a big clue!  

On the TeraTerm side you use:  File - Transfer - Xmodem - Send/Receive to transfer files to/from the Altair-Duino

Dieter Schneider

unread,
Jan 8, 2023, 12:07:18 PM1/8/23
to Altair-Duino
it is working

instead of:
PCGET B MYTEXT.TXT
I must do:
PCGET <FileName> B


Thanks for help !
Message has been deleted
Message has been deleted

Le Fauve

unread,
Jan 10, 2023, 4:06:14 PM1/10/23
to Altair-Duino
John,

I can see a little bug in your ping.bas:
You read the control register only once, then later you have a waiting loop if bit 1 isn't set but since you don't read the port again, if the serial port isn't ready when you first read it, you program will wait forever.

This little modification (in green) should fix it (note I also removed the line 230 which isn't needed anymore)

On Monday, January 9, 2023 at 1:52:47 AM UTC+10 John Galt wrote:
200 REM write to serial port
205 PRINT"PORTS TO TEST: 18,20,22(18 is 9 pin port on back of Altair)"
206 PRINT"ENTER A PORT TO TEST IN DECIMAL"
207 INPUT PORT
210 PN=PORT
220 A$="THIS IS A TEST. 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
225 A$=A$+CHR$(13)+CHR$(10)
240 FOR I=1 TO LEN(A$)
250 IF  INP(PN) AND 2=0 THEN 250 : REM bit 1=0 when output register is full

260 OUT PN+1,ASC(MID$(A$,I)) : REM send test byte
270 NEXT
280 END
 
Also, assuming you are using MBasic, you may want to use the unloved WAIT instruction on line 250, which is designed just for that (stop execution until one or more bits of a port get the value you want).

In this case, that would be:
250 WAIT PN,2 : REM bit 1=0 when output register is full

Here is an extract of the MBASIC manual about the WAIT instruction:

Format:   WAIT <port number >, I, [J]
          where I and J are integer expressions

Versions: 8K, Extended, Disk

Purpose:   To suspend program execution while monitoring
           the status of a machine input port.

Remarks:   The WAIT statement causes execution to be
           suspended until a specified machine input port
           develops a specified bit pattern. The data read
           at the port is exclusive OR'ed with the integer
           expression J, and then AND ' ed with I. If the
           result is zero, BASIC-80 loops back and reads
           the data at the port again. If the result is
           nonzero, execution continues with the next
           statement. If J is omitted, it is assumed to be
           zero

CAUTION:   It is possible to enter an infinite loop with
           the WAIT statement, in which case it will be
           necessary to manually restart the machine.


I always forgot about the last part :o) so perhaps it's a good idea to use INP while you debug and test your program, and then save it and use WAIT instead.

Cheers,
Eric
 

Le Fauve

unread,
Jan 10, 2023, 4:14:13 PM1/10/23
to Altair-Duino
...and it seems google groups has eaten by formatting :o(
The green text was on line 250 only, so the only modification needed was to remove line 230, and to modify line 250.

I should also have add that:
  • The bug also prevent to check if the output register is full before sending characters, which isn't an issue at low speed but may become one if you go faster.
Message has been deleted

Walt Perko

unread,
Jan 10, 2023, 7:42:29 PM1/10/23
to Altair-Duino
Hi, 

I found that all I have to do is click on    [SetUp - Serial Port - New Setting]    and that resets the connection and I'm off working again.  


.


On Tuesday, January 10, 2023 at 4:03:57 PM UTC-8 John Galt wrote:
My code was pulled from a larger piece of code and I threw it together.

Good catch as it should have been polled inside the for next loop

I’ve been using it for 2 years as it’s wrong but fails successfully all I want to do is trigger teraterm with something over serial I don’t care about anything else. It’s just a hi I’m here so teraterm will connect.
There used to be multiple test functions as part of that code but I didn’t need it to just ping the serial port


Reply all
Reply to author
Forward
0 new messages