T.R | Title | User | Personal Name | Date | Lines |
---|
2015.1 | A fish called Kermit | GIDDAY::BAKER | What's 200yrs/40000yrs fellas? | Sun Dec 18 1988 17:50 | 11 |
| Ah, me think's this man needs to pick himself up by the bootstraps....
Does your dealer stock the Fish disks? Quite a few VT100 and VT200
emulators have been written for the machine and are available through
user groups & dealers. Most of these will have Kermit. (And you
may find other goodies as well)
Dave Wecker wrote a version of Kermit in BASIC for his original
Vt100 emulator. This may still be in people's archives somewhere.
I'd suggest though that you would use this one to copy a more robust
KERMIT down to your machine.
John
|
2015.2 | | LEDS::ACCIARDI | Time to change this damn message | Sun Dec 18 1988 18:59 | 5 |
|
Contact me via e-mail and we'll discuss how to get a good Amiga
VT220 terminal program into your hands.
Ed.
|
2015.3 | You can also do UUDECODE in BASIC | COOKIE::WECKER | Good old 6844A7B7A5000965D0 | Tue Dec 20 1988 14:51 | 83 |
| re: .0 (and mail)
-> I have just bought an Amiga for my kids for Christmas and am trying to load
-> some PD software from the net.
-> My problem is getting something like Kermit on to the Amiga without some Ba
-> sic code to bootstrap the SW.
-> I wrote a few lines of basic to enable me to copy text files and used it to
-> copy your VT100.BAS onto the Amiga. [...]
One other way to do this:
Write a BASIC program to do UUDECODE (explained below). Then download the REAL
vt100 file:
cookie::disk$gz_2:[wecker.amiga]vt100.uue
with your BASIC text downloader and then use your UUDECODE to unpack it.
UUDECODE format is pretty simple, the .UUE file looks like:
begin <mode> <file>
<cnt><values........>
<cnt><values........>
<cnt><values........>
<term>
end
Elements are:
begin - starts the file
<mode> - ignore this number
<file> - name of output file (you could also ignore this)
<cnt> - the number of binary encoded <values> on the line
<vals> - 4 ASCII for every 3 BINARY values
<term> - a count of zero
end
Every value in the file (cnt,values) are decoded as:
#define CODE(val) ((val - 32) & 0x3F)
basically this says, take the value, subtract 32 and only keep the low 6 bits.
For example. Usually, the <cnt> value is 'M' this translates to:
77 - 32 = 45
since 'M' is character 77. Since there are 4 ASCII characters for every 3
binary UUENCODED data values, the actual number of characters/line are:
45 * 4 / 3 == 60 + 1 character for the <cnt>
Here is the decoding algorithm:
1. Read in the header line
2. For each line in the file:
a. place the line in a character array (called buf at least 61 chars long)
if your arrays start at 1 instead of 0, then change step b. to i = 2
and step c to buf[1].
b. i = 1; /* index into buffer */
c. n = CODE(buf[0]); /* get the <cnt> */
d. if (n <= 0) goto step 3; /* got the <term> entry */
e. while (n > 0) do: /* decode this line */
I. v1 = (CODE(buf[i]) * 4) + (CODE(buf[i+1]) / 16);
II. v2 = (CODE(buf[i+1]) * 16) + (CODE(buf[i+2]) / 4);
III.v3 = (CODE(buf[i+2]) * 64) + CODE(buf[i+3]);
IV. if (n >= 1) putchar(v1 & 0xFF); /* keep only low 8 bits */
V. if (n >= 2) putchar(v2 & 0xFF); /* keep only low 8 bits */
VI. if (n >= 3) putchar(v3 & 0xFF); /* keep only low 8 bits */
VII. n = n - 3; /* 3 binary done */
VIII.i = i + 4; /* 4 ASCII done */
3. The next line should contain the "end" statement
4. Done
Regards,
___________________________________________________________________________
dave ENET: CHILD::WECKER MAIL STOP: CXN/2
DTN: 523-2794 OUTSIDE PHONE: 719/260-2794
DEPT: DBS/CCAS OFFICE: 564 Upper (D-2-9)
ADDR: Digital Equipment Corporation
1175 Chapel Hills Drive
Colorado Springs CO 80920
___________________________________________________________________________
|
2015.4 | Obstacles overcome. | BELFST::MCCLINTOCK | Peter | Tue Jan 03 1989 16:54 | 72 |
| I managed to get a working version of VT100 onto my rainbow but not
without problems. In case anyone else has to struggle with similar
difficulties I have attached some mail that I sent to Dave Wecker who
gave me some advice along the way.
The final route to a working version of VT100 was:
1 Using Kermit, copy VT100.BAS to my rainbow.
2 Raw text transfer of VT100.BAS from Rainbow to Amiga.
3 Convert UUENCODE & UUDECODE to fixed length 510 byte format on
VAX.
4 Use VT100.BAS (Kermit protocol) on Amiga to download UUEN/DECODE.
5 Kermit UUENCODEd version of executable VT100 from VAX to Rainbow.
6 Raw text transfer of UUENCODEd file to Amiga.
7 Fix line terminators of UUENCODEd file using a simple Basic prog.
8 UUENCODE the file and voila ... working VT100.
It would certainly have been easier to have picked up some PD comms
software already on disk but, there are no dealers who do that kind of
thing in N Ireland (that I know of) and it would have taken too long to
have exchanged a disk with someone in the US ... I had a Christmas
deadline to meet for the kids!
So for anyone interested here's the saga.
Dave,
I finally got all the problems sorted out and am now up and running.
There seemed to be a number of obstacles that were preventing me getting
VT100 going.
First the VT100.BAS prog wasn't able to copy the executable versions of
VT100 or VT200 from the VAX as some count seems to overflow at 32767
bytes of data, and both progs are longer than this.
My next ploy was to copy UUDECODE from the VAX which also didn't work at
first. I later found that the problem here was that it was in Stream
format on the VAX and VT100.BAS (using kermit) protocol was corrupting it
in the transfer. I used your CVTARC on the VAX and copied UUDECODE and
UUENCODE successfully.
Next hurdle was to get a UUENCODEd version of VT100 onto the Amiga.
Remebmer VT100 using Kermit protocol wouldn't work, as the file was
greater than 32767 bytes, and using a Raw text transfer from the VAX to
the Amiga via modem link would introduce line noise into the text.
I transferred the file to my Rainbow at home and then transferred it to
the Amiga via a local connection so far so good...
When I tried using UUDECODE on the file suddenly nothing happened ... it
just came back to the CLI prompt without doing anything. Strange since
if I UUENCODEd and UUDECODEd any other prog on the Amiga they worked
perfectly.
It turned out to be a line terminator problem ... the Rainbow was
terminating each line in a way that the Amiga didn't like. A simple
Basic program to read and write the file solved the problem and UUDECODE
yielded a working version of VT100.
Thanks for all the help you gave me along the way.
Hope you had a good Christmas.
Regards
Peter
|
2015.5 | File not an object module? | DECWIN::SANBORN | Dave Sanborn -- DTN: 296-6638 | Mon Dec 11 1989 09:53 | 59 |
| I've been following the recipe given here in an attempt to get a workable
vt100/kermit onto my Amiga. So far, I've taken the following steps:
1) Modified Terminal.bas to do simple file capture.
2) Used modified terminal to copy VT100.BAS to my Amiga.
3) Corrected BASIC errors introduced by line noise.
4) Broke VT100.UUE into 5 separate files (VT100.BAS can't seem to handle
large files).
5) Used the Kermit Recieve option in VT100.BAS to transfer the 5 pieces
of VT100.UUE to my Amiga.
6) Wrote a basic program to uudecode the 5 pieces of the VT100.UUE and
combine them into one executable version on VT100.
The problem is that after step 6, when I try to run the resulting
file I get a "Can not load VT100: file is not an object module".
I've included my version of UUDECODE.BAS below. Any ideas would
be much appreciated, It's frustrating not having a decent terminal
emulator!
CLEAR:DEFINT a-Z
DEF FNcode(V$) = ((ASC(V$) - 32) AND &H3F)
OPEN "RAM:vt100_1.UUE" FOR INPUT AS 1
OPEN "RAM:vt100_2.UUE" FOR INPUT AS 2
OPEN "RAM:vt100_3.UUE" FOR INPUT AS 3
OPEN "RAM:vt100_4.UUE" FOR INPUT AS 4
OPEN "RAM:vt100_5.UUE" FOR INPUT AS 5
OPEN "RAM:vt100" FOR OUTPUT AS 6
LINE INPUT #1, header$
FOR ii = 1 TO 5
WHILE NOT EOF(ii)
LINE INPUT #ii, l$
n = FNcode(LEFT$(l$,1))
IF n <= 0 THEN GOTO done:
index = 2
WHILE (n > 0)
v1 = FNcode(MID$(l$,index,1))*4 + FNcode(MID$(l$,index+1,1))/16
v2 = FNcode(MID$(l$,index+1,1))*16 + FNcode(MID$(l$,index+2,1))/4
v3 = FNcode(MID$(l$,index+2,1))*64 + FNcode(MID$(l$,index+3,1))
IF (n >= 1) THEN PRINT# 6, CHR$(v1 AND &HFF);
IF (n >= 2) THEN PRINT# 6, CHR$(v2 AND &HFF);
IF (n >= 3) THEN PRINT# 6, CHR$(v3 AND &HFF);
n = n - 3
index = index + 4
WEND
WEND
PRINT "FILE ";ii;"Done processing"
NEXT ii
done:
CLOSE #1,#2,#3,#4,#5,#6
END
|
2015.6 | Try Handshake, etc. | SMAUG::SPODARYK | Binary Throttle | Mon Dec 11 1989 11:45 | 6 |
| I know you've put some hard work into this, but wouldn't it be
easier to contact Ed Acciardi ( see .2, I believe ) and get a copy
of Handshake ( VLT, whatever ) on floppy. This emulator has Kermit,
X/Ymodem, etc, built into it. That's what I did.
~Steve
|
2015.7 | Object modules | DECWIN::SANBORN | Dave Sanborn -- DTN: 296-6638 | Mon Dec 11 1989 12:09 | 22 |
| Yes, it probably would be easier to contact Ed, but my
other motivation for going this route was to become more
familiar with the Amiga and it's operating system. On
that score, I've been pretty successful. So, can someone
explain how the Amiga recognizes an object module? Do
I have to write some special header? Is there a certail
file format that I need to use? Is it even possible to
create an object module using a BASIC program?
Thanks,
Dave
<<< Note 2015.6 by SMAUG::SPODARYK "Binary Throttle" >>>
-< Try Handshake, etc. >-
I know you've put some hard work into this, but wouldn't it be
easier to contact Ed Acciardi ( see .2, I believe ) and get a copy
of Handshake ( VLT, whatever ) on floppy. This emulator has Kermit,
X/Ymodem, etc, built into it. That's what I did.
~Steve
|
2015.8 | Wrong division operator | DECWIN::SANBORN | Dave Sanborn -- DTN: 296-6638 | Mon Dec 11 1989 23:16 | 4 |
| Well, I found the error of my ways. I was using floating point
division "/" instead of integer division "\".
--- Dave
|