From: "Andrew Brooks" 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 --- > #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 --- > #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 --- > #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 --- > #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 --- > #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 */