[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

2015.0. "How to get Kermit(?) onto the Amiga" by BELFST::MCCLINTOCK (Peter) Sun Dec 18 1988 20:13

    I have recently bought an Amiga A500 for my children (at least that's
    my excuse!) and would like to download some PD software from the
    net.
    
    I have read all the references that I could find in this notes file
    on the subject of downloading, kermit etc. but can't discover how
    to start the process.
    
    If I don't already have something like kermit on the Amiga how can
    I get it there?  Is there a Basic text file that I can copy using
    a fairly simple command like copy?  I am aware that with some kermits
    there are Hex files supplied that can be reconstituted into binary
    on the target system but I couldn't find such a thing for the Amiga.
                                                                      
    If anyone can point me in the right direction I would be grateful.

    Thanks in anticitapion.
    Peter
T.RTitleUserPersonal
Name
DateLines
2015.1A fish called KermitGIDDAY::BAKERWhat's 200yrs/40000yrs fellas?Sun Dec 18 1988 20:5011
    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.2LEDS::ACCIARDITime to change this damn messageSun Dec 18 1988 21:595
    
    Contact me via e-mail and we'll discuss how to get a good Amiga
    VT220 terminal program into your hands. 
    
    Ed.
2015.3You can also do UUDECODE in BASICCOOKIE::WECKERGood old 6844A7B7A5000965D0Tue Dec 20 1988 17:5183
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.4Obstacles overcome.BELFST::MCCLINTOCKPeterTue Jan 03 1989 19:5472
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.5File not an object module?DECWIN::SANBORNDave Sanborn -- DTN: 296-6638Mon Dec 11 1989 12:5359
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.6Try Handshake, etc.SMAUG::SPODARYKBinary ThrottleMon Dec 11 1989 14:456
    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.7Object modulesDECWIN::SANBORNDave Sanborn -- DTN: 296-6638Mon Dec 11 1989 15:0922
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.8Wrong division operatorDECWIN::SANBORNDave Sanborn -- DTN: 296-6638Tue Dec 12 1989 02:164
    Well, I found the error of my ways.  I was using floating point
    division "/" instead of integer division "\".
    
    --- Dave