From: "Andrew Brooks" <arb@computing.lancaster.ac.uk>
Date: Sun Sep 20 15:10:45 BST 1992
Subjects: RISC OS Kermit

All of the files are Text files with the exception of kermit (obtained
by uudecoding arkerm.uue) which is of type Absolute.  aruudec.bas is a
uudecoder written in BASIC.

Please note that files have been renamed and MUST be changed back to their
original names for use on the Archimedes.  A unix script to do this is
supplied in araaaa.sh.  After this has been done the BASIC program settypes
will restore the original file types and dates.

The original release notes are arkerm.ann arkerm.bwr

Note that the name of startup script is kermrc_cmd, not kermit.ini

Below are the differences between Arthur kermit sources and RISC OS sources.
The main problem is the lack of an arthur.h file with Desktop C.  A replacement
is supplied in the h directory.  Note that you cannot use the original arthur.h
if you still have it as the functions it defines are not present in the Clib
stubs or RISC_OSLib library.  The replacement defines the arthur functions
needed for kermit in terms of the RISC OS equivalents.  The main differences
are: different os_file (etc.) functions and data structures, and a different
swi function.  I am not sure of the semantics of the arthur swi function,
so my replacement may corrupt return registers that the arthur version did not.
It seems to work for me, anyway...

Main changes to the source code:
Added extra ANSI checks for function declarations, to get past stricter
compiler checks.
Fixed bug in buffer.c (wrong variable names)
Fixed bug in ckuus2.c (no line continuation characters, osword changed)
Fixed bug in ckcker.h (missing a ~ character and an apostrophe)

diffs follow:

Only in arthur: 00contents
Only in arthur: araaa.aaa
Only in arthur: arkerm.ann
Only in arthur: arkerm.bwr
Only in arthur: aruudec.bas
Only in arthur: makescr
Only in arthur: objs

Only in riscos: Makefile
Only in riscos: Readme
Only in riscos: kermit
Only in riscos: o
Only in riscos/h: arthur
Only in riscos: settypes

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

diff +recursive arthur/c/buffer riscos/c/buffer
5c5
< #include <arthur.h>
---
> #include "arthur.h"
27,28c27,28
< static char *headout = rsbufinn;
< static char *tailout = rsbufinn;
---
> static char *headout = rsbufout;
> static char *tailout = rsbufout;

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

diff +recursive arthur/c/ckacom riscos/c/ckacom
30c30
< #include <arthur.h>
---
> #include "arthur.h"
70a71
> #undef vdu

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

diff +recursive arthur/c/ckafio riscos/c/ckafio
281c281,287
< zchout(n,c) int n; char c; {
---
> zchout(
> #ifdef ANSI
> int n, char c)
> #else
> n,c) int n; char c;
> #endif
> {

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

diff +recursive arthur/c/ckamis riscos/c/ckamis
19c19
< #include <arthur.h>
---
> #include "arthur.h"

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

diff +recursive arthur/c/ckatio riscos/c/ckatio
346c346,352
< ttoc(c) char c; {
---
> ttoc(
> #ifdef ANSI
> char c)
> #else
> c) char c;
> #endif
> {
473c479,485
< concb(esc) char esc; {
---
> concb(
> #ifdef ANSI
> char esc)
> #else
> esc) char esc;
> #endif
> {
498c510,516
< conbin(esc) char esc; {
---
> conbin(
> #ifdef ANSI
> char esc)
> #else
> esc) char esc;
> #endif
> {
538c556,562
< conoc(c) char c; {
---
> conoc(
> #ifdef ANSI
> char c)
> #else
> c) char c;
> #endif
> {

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

diff +recursive arthur/c/ckaus3 riscos/c/ckaus3
576c576,582
< rfilop(s,t) char *s, t; {
---
> rfilop(
> #ifdef ANSI
> char *s, char t)
> #else
> s,t) char *s, t;
> #endif
> {
599c605,611
< screen(f,c,n,s) int f; long n; char c; char *s; {
---
> screen(
> #ifdef ANSI
> int f, char c, long n, char *s)
> #else
> f,c,n,s) int f; long n; char c; char *s;
> #endif
> {

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

diff +recursive arthur/c/ckausr riscos/c/ckausr
90c90
< #include <arthur.h>
---
> #include "arthur.h"
131,133c131,133
< extern int doarg( char );
< extern int docmd( int );
< extern void shopar( void );
---
> /*extern*/ int doarg( char );
> /*extern*/ int docmd( int );
> /*extern*/ void shopar( void );
230c230,236
< doarg(x) char x; {
---
> doarg(
> #ifdef ANSI
> char x)
> #else
> x) char x;
> #endif
> {
736c742,748
< setgen(type,arg1,arg2,arg3) char type, *arg1, *arg2, *arg3; {
---
> setgen(
> #ifdef ANSI
> char type, char *arg1, char *arg2, char *arg3)
> #else
> type,arg1,arg2,arg3) char type, *arg1, *arg2, *arg3;
> #endif
> {

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

diff +recursive arthur/c/ckcfn2 riscos/c/ckcfn2
172c172,178
< dopar (ch) char ch; {
---
> dopar (
> #ifdef ANSI
> char ch)
> #else
> ch) char ch;
> #endif
> {

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

diff +recursive arthur/c/ckuus2 riscos/c/ckuus2
177,178c177,178
< "                                                                  backspace,                                                                                    space,                                           
<                                        '?',                                                                               linefeed,                                                                               
---
> "                                                                  backspace,                                                                                    space,                                           \
>                                        '?',                                                                               linefeed,                                                                               \
181c181
< "uucp systems, sent strings are followed by                                                                                   unless they end with ...............................................................
---
> "uucp systems, sent strings are followed by                                                                                   unless they end with ...............................................................\

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

diff +recursive arthur/c/plib riscos/c/plib
9c9
< #include <arthur.h>
---
> #include "arthur.h"
169c169,173
< SWriteByte( stream, ch )
---
> SWriteByte( 
> #ifdef ANSI
> int stream, char ch)
> #else
> stream, ch )
171a176
> #endif
239c244,248
< XSWriteByte( stream, ch )
---
> XSWriteByte(
> #ifdef ANSI
> int stream, char ch)
> #else
> stream, ch )
241a251
> #endif
939d948
< error *ret;
942c951
<     if( (ret = osword( 0x0e, time )) != NULL )
---
>     if( (ret_val = osword( 0x0e, (int*)time )) != NULL )
944c953
<         fprintf(stderr,"%s (%d)\n",ret->errmess,ret->errnum);
---
>         fprintf(stderr,"%s (%d)\n",ret_val->errmess,ret_val->errnum);
959d967
< 
962c970
<     if( (ret_val = osword( 0x0e, time )) != NULL )
---
>     if( (ret_val = osword( 0x0e, (int*)time )) != NULL )

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

diff +recursive arthur/h/ckcker riscos/h/ckcker
30c30
< #define MYRPTQ     '            /* Repeat count prefix I will use */
---
> #define MYRPTQ     '~'            /* Repeat count prefix I will use */
