[comp.sys.m68k.pc] Kermit68K under CP/M-68K, help needed

BAGNARA@IBOINFN.BITNET (Roberto Bagnara) (08/24/87)

    Some months ago I sent to this group a note concerning my Kermit68K,
a portable Kermit program for machines based on the 68xxx microprocessors
family. In that note I was looking for wizards of the various OS running
on the 68xxx willing to implement Kermit68K on different machines.

   Now the OS9 version of Kermit68K is ready and is distributed by Columbia
university, several people sent me messages saying that it works with no
problems (a good result for a 1.0 release).

   I've received a lot of requests for a CP/M-68K and a VERSADOS version of
the program, but, unfortunately, no help offers from experts of this operating
systems, so I'm writing the system-dependent module for CP/M-68K by myself.
I've started this job the 3 August and just now Kermit68K/CPM works rather
well. Since all what I know of CP/M-68K is what I've learned this month
by reading the Programmer's Guide (the only CP/M-68K manual I've), I need
some help from CP/M-68K experts out there.

Current problems (by sure due to my poor knowledge of the OS) are:

1) By reading the manual and looking at my BIOS sources it seems impossible
   to check the status of the auxiliary input device, that is the system
   services handler, once called, doesn't return until a character is received.
   If this is true I can't implement input timeouts in a portable way,
   I need a small serial driver for each machine. Am I wrong ?

2) The Search for First and Search for Next system services seem don't
   care of the passed FCB content, any directory entry is returned regardless
   of the file name and type I've written into the FCB. Should I do
   the filename matching by myself ? In this case has anyone a suitable
   assembly language routines ?

People interested in receiving the current sources shouldn't hesitate
to contact me at any time. Except for the aforecited problems Kermit68K/CPM
is working well transferring binary and text files correctly and efficiently.
Thank in advance for your help and suggestions.

              Roberto

P.S. I've done all the job in 10 working days (including the manual
     reading, without prior knowledge of the OS), any willing VERSADOS
     (or other OS) implementor now ?

HELLER@cs.umass.EDU (Stride 440 User) (08/25/87)

> Date: Mon, 24 Aug 87 12:11 N
> From: BAGNARA%IBOINFN.BITNET@JADE.BERKELEY.EDU
> Subject: Kermit68K under CP/M-68K, help needed
> To: info-68k@UCBVAX.BERKELEY.EDU
> Message-Id: <8708241014.AA17893@jade.berkeley.edu>

> 1) By reading the manual and looking at my BIOS sources it seems impossible
>    to check the status of the auxiliary input device, that is the system
>    services handler, once called, doesn't return until a character is received.
>    If this is true I can't implement input timeouts in a portable way,
>    I need a small serial driver for each machine. Am I wrong ?
> 

Yes, you are right.  CP/M-68K has no O/S hooks to any sort of timer either.
So you either need to write a delay loop or use machine-dependent code to
access a machine's timer (most 68K boxes do have some sort of heart-beat
clock).

> 2) The Search for First and Search for Next system services seem don't
>    care of the passed FCB content, any directory entry is returned regardless
>    of the file name and type I've written into the FCB. Should I do
>    the filename matching by myself ? In this case has anyone a suitable
>    assembly language routines ?
> 

Wrong.  On the Search for First you pass a FCB with a wildcarded file spec.
There is a special form which does get every dirent, but you don't want
that!  One other point:  You can't do ANY other file I/O which scanning with
Search First/Search Next.  You need to collect the file names into a list
first (I use a malloc'ed alpha-sorted linked-list - I have the routines
embeded in several programs), then use the list to process each file.
Remember to set the DMA address to a vector of four "short" (32-byte) FCB's
before calling Search/First!  This is where the matched file names get
stashed.  The result status code is either 0x00FF (no more files matched) or
an integer from 0 to 3, to be used as an index to the four dirent/FCB vector
pointed to by the DMA address.


---------------------------------------


If you are interested, I can post code fragments doing the file name
hackery.  Also note: the normal CP/M-68K 1.2 C startup hack does wild-card
expansion of the command line, just like UNIX's csh (more or less).

I'd also like a copy of this program for CP/M-68K.  I presently have a
rather funcky old version that has been ported several times.  I'd be
willing to write the Stride 400 series serial driver code for other Stride
400/CP/M-68K users.

		Robert Heller
ARPANet:	Heller@CS.UMass.EDU
BITNET:		Heller@UMass.BITNET
BIX:		Heller
GEnie:		RHeller
FidoNet:	321/148 (Locks Hill BBS, Wendell, MA)
CompuServe	71450,3432
Local PV VAXen:	COINS::HELLER
UCC Cyber/DG:	Heller@CS