Thread View: comp.sources.hp48
1 messages
1 total messages
Started by Jonathan Tomohiko Higa
Fri, 22 Jan 1993 04:38
v08i007: tasc.jth - Tasc v3.0 - ->ASC / ASC->, Part01/01
Author: Jonathan Tomohiko Higa
Date: Fri, 22 Jan 1993 04:38
Date: Fri, 22 Jan 1993 04:38
740 lines
32924 bytes
32924 bytes
Checksum: 202422666 (verify with brik -cv)
Submitted-by: Jonathan Tomohiko Higa <jonhiga@phoenix.Princeton.EDU>
Posting-number: Volume 8, Issue 7
Archive-name: tasc.jth
It's finally ready. ... Here follows the official public release of
TASC version 3.
BEGIN_RDME tasc.rdm
TASC (version 3) is an ASC <-> HP48 binary translator.
Why do you want TASC at all?
1. Do the translation on another computer instead of on the HP48. A binary
is approximately half the size of its ASC equivalent; therefore, you
will require less battery power.
2. It behaves like uuencode to the extent that you don't have to strip off
the non-ASC parts of a post or message if it contains only one ASCed object.
I've been using commands like | "tasc - newgame.bin" within my mail reader
to extract HP48 programs with ease.
3. There's no memory limit. Some programs are too large to be
downloaded in ASC form but can still be downloaded in binary form.
Why is it better than previous versions?
1. It determines the file type by inspecting the file instead of expecting
a filename extension.
2. It determines how to invent a target file name by knowing the source
file's type.
3. The target file is overwritten when translation begins, not upon
program startup as before. If the source file seems corrupt, a usable
target file is still created and a warning is given.
END_RDME
BEGIN_DOC tasc.1
TASC(1) USER COMMANDS TASC(1)
NAMES
tasc - translate HP48 binary files to and from ASC format
SYNOPSIS
tasc [opt ...] source [target]
DESCRIPTION
This program translates HP48 binary files to and from ASC
format. It should be fully compatible with Bill Wickes's
original ->ASC-> programs. The symbol "-" in place of a
filename represents the terminal. If a target filename is
not provided, one will be invented by changing the source
filename's suffix to ".asc" or ".bin". Note that a target
filename cannot be invented if the standard input is the
source. Multiple options should be specified as separate
arguments.
OPTIONS
-d Force ASC->bin (ASC decoding) mode.
-e Force bin->ASC (ASC encoding) mode.
-q Don't print reports (quiet).
DIAGNOSTICS
Returns 0 on success, 1 on error. On successful exit, a
BYTES statement is given if not in quiet mode.
AUTHOR
Jonathan T. Higa (jonhiga@phoenix.princeton.edu)
CREDITS
- ASC: Bill Wickes (billw@hpcvdw.cv.hp.com).
- Cyclic Redundancy Check: da Cruz, Frank. _K_e_r_m_i_t: _A _F_i_l_e
_T_r_a_n_s_f_e_r _P_r_o_t_o_c_o_l. Bedford, MA: Digital Press, 1987.
- Object structure: HP48 Tools Manual; "HP48SX Internals,"
by Derek S. Nickel.
- Guidance: Joe Horn (akcs.joehorn@hpcvbbs.cv.hp.com)
- Original inspiration: miscellaneous asc2bin programs on
seq.uncwil.edu
Sun Release 4.1 Last change: 1993 January 18 1
END_DOC
BEGIN_SRC tasc.c
/* tasc (version 3): ASC-encoder/decoder for HP48 files
Copyright (c) 1993 by Jonathan T. Higa
This program is free. It may be reproduced or modified as long as
appropriate credit is given.
Credits:
- ASC: Bill Wickes (billw@hpcvdw.cv.hp.com).
- Cyclic Redundancy Check:
da Cruz, Frank. _Kermit: A File Transfer Protocol._
Bedford, MA: Digital Press, 1987.
- Object structure:
HP48 Tools Manual;
"HP48SX Internals," by Derek S. Nickel.
- Guidance: Joe Horn (akcs.joehorn@hpcvbbs.cv.hp.com)
- Original inspiration:
miscellaneous asc2bin programs on seq.uncwil.edu
*/
#include <stdio.h>
#include <string.h>
struct hexbuf {
unsigned long bits;
long nibs;
int bsize;
unsigned short crc;
};
enum hpdatatype { HPBIN, HPASC, UNKNOWN = -1 };
int verbose = 1;
void pushhex(struct hexbuf *b, int h)
/* Add a hex digit to the bit buffer. */
{
b->bits |= (h & 0xfuL) << b->bsize;
b->bsize += 4;
}
int pophex(struct hexbuf *b)
/* Remove and return a hex digit from the bit buffer, and
include it in the CRC. */
{
int h = b->bits & 0xf;
b->crc = (b->crc >> 4) ^ (((b->crc ^ h) & 0xf) * 0x1081);
b->nibs++;
b->bits >>= 4;
b->bsize -= 4;
return h;
}
enum hpdatatype hptype(FILE *f)
/* Determine the type of HP file by scanning the beginning of the file.
If the type is known, put the file pointer at the start of data. */
{
char c;
if (fscanf(f, "HPHP48-%c", &c) == 1)
return HPBIN;
else
for (; ; )
switch (fscanf(f, "%*[%]HP:%*[^;]%c", &c)) {
case 1:
while (fscanf(f, " @%c", &c) == 1) {
if (c != '\n') {
fscanf(f, "%*[^\n]");
fscanf(f, "%*1[\n]");
}
}
return fscanf(f, "%c", &c) == 1 && c == '"' ? HPASC : UNKNOWN;
case 0:
fscanf(f, "%*[^\n]");
fscanf(f, "%*1[\n]");
break;
case EOF:
return UNKNOWN;
}
}
char *newext(char *new, const char *old, const char *ext)
/* Create a new filename from the old filename and extension. */
{
char *p = strrchr(strcpy(new, old), ext[0]);
if (p) strcpy(p, ext);
else strcat(new, ext);
if (verbose) fprintf(stderr, "tasc: inventing filename \"%s\"\n", new);
return new;
}
int asctobin(FILE *fasc, FILE *fbin)
{
struct hexbuf hb = {0, 0, 0, 0};
int d, err = 0;
/* write header into binary file */
fputs("HPHP48-E", fbin);
/* translate data */
while (fscanf(fasc, "%1x", &d) == 1) {
pushhex(&hb, d);
if (hb.bsize >= 24) {
d = pophex(&hb);
d |= pophex(&hb) << 4;
putc(d, fbin);
}
}
if (hb.bsize > 16) {
d = pophex(&hb);
putc(d, fbin);
}
/* check CRC */
if (hb.crc != hb.bits || hb.bsize != 16) {
fprintf(stderr, "tasc: ASC->bin: warning: CRC is incorrect\n");
err = 1;
}
if (verbose)
fprintf(stderr, "tasc: ASC->bin: BYTES: #%hXh %ld%s\n",
hb.crc, hb.nibs/2, hb.nibs & 1 ? ".5" : "");
return err;
}
int bintoasc(FILE *fbin, FILE *fasc)
{
struct hexbuf hb = {0, 0, 0, 0};
unsigned long fldlen = 0;
enum { SIZE, ASCIC, ASCIX, DIR, ANY = -1 } fldnxt = ANY;
int c, err = 0, width = 0;
/* write header into ASC file */
fprintf(fasc, "%%%%HP: T(1);\n\"");
/* parse binary */
while ((c = getc(fbin)) != EOF) {
pushhex(&hb, c);
pushhex(&hb, c >> 4);
if (!fldlen) /* done with previous field */
switch (fldnxt) { /* now for the current field */
case SIZE:
if (hb.bsize >= 20) {
/* this object's length is known by the size field */
fldlen = hb.bits & 0xfffff;
fldnxt = ANY;
}
break;
case ASCIC:
if (hb.bsize >= 8) {
/* ASCII-char identifier */
fldlen = 2 + 2 * (hb.bits & 0xff);
fldnxt = ANY;
}
break;
case ASCIX:
if (hb.bsize >= 8) {
/* ASCII-extended identifier */
fldlen = 4 + 2 * (hb.bits & 0xff);
fldnxt = ANY;
}
break;
case DIR:
if (hb.bsize >= 20) {
/* first object pointer in a directory, to an ASCIX name */
fldlen = hb.bits & 0xfffff;
fldnxt = ASCIX;
}
break;
default:
if (hb.bsize >= 20) {
unsigned long pro = hb.bits & 0xfffff;
fldlen = 5; /* the prolog field is 5 nibbles long */
if (pro == 0x29e8uL || pro == 0x2a0auL || pro == 0x2a2cuL
|| pro == 0x2a4euL || pro == 0x2b1euL || pro == 0x2b40uL
|| pro == 0x2b62uL || pro == 0x2b88uL || pro == 0x2dccuL)
fldnxt = SIZE; /* expect a size field */
else if (pro == 0x2e48uL || pro == 0x2e6duL || pro == 0x2afcuL)
fldnxt = ASCIC; /* expect an ASCIC object */
else if (pro == 0x2a96uL) {
/* expect the directory pointer after the first 8 nibbles */
fldlen = 8;
fldnxt = DIR;
}
else if (pro == 0x2911uL) fldlen = 10; /* is system binary */
else if (pro == 0x2933uL) fldlen = 21; /* is real */
else if (pro == 0x2955uL) fldlen = 26; /* is long real */
else if (pro == 0x2977uL) fldlen = 37; /* is complex */
else if (pro == 0x299duL) fldlen = 47; /* is long complex */
else if (pro == 0x29bfuL) fldlen = 7; /* is char */
else if (pro == 0x2e92uL) fldlen = 11; /* is XLIB name */
}
break;
}
/* write out the current field */
while (fldlen && hb.bsize) {
c = pophex(&hb);
if (width == 64) {
putc('\n', fasc);
width = 0;
}
fprintf(fasc, "%X", c);
width++;
fldlen--;
}
}
if (hb.bits) {
fprintf(stderr, "tasc: bin->ASC: warning: last object incomplete\n");
err = 1;
}
/* append CRC */
if (verbose)
fprintf(stderr, "tasc: bin->ASC: BYTES: #%hXh %ld%s\n",
hb.crc, hb.nibs / 2, hb.nibs & 1 ? ".5" : "");
hb.bits = hb.crc;
hb.bsize = 16;
while (hb.bsize) {
if (width == 64) {
putc('\n', fasc);
width = 0;
}
fprintf(fasc, "%X", pophex(&hb));
width++;
}
fprintf(fasc, "\"\n");
return err;
}
int main(int argc, char **argv)
{
const char *STDIO = "-";
enum hpdatatype coding = UNKNOWN;
int i = 1, opt = 1;
char *iname, *oname, temp[256];
while (i < argc && opt) {
if (argv[i][0] == '-') {
opt = 1;
switch (argv[i][1]) {
case 'd':
coding = HPASC;
break;
case 'e':
coding = HPBIN;
break;
case 'q':
verbose = 0;
break;
default:
opt = 0;
}
} else
opt = 0;
i += opt;
}
argc -= i;
if (argc < 1 || argc > 2) {
fprintf(stderr, "Use: %s [opt ...] source [target]\n"
"opt\taction\n"
" -d\tForce ASC->bin (ASC decode)\n"
" -e\tForce bin->ASC (ASC encode)\n"
" -q\tSuppress non-error messages (quiet)\n"
"The filename \"-\" represents the terminal.\n",
argv[0]);
return 1;
}
iname = argv[i];
if (strcmp(iname, STDIO)) {
if (!freopen(iname, "rb", stdin)) {
fprintf(stderr, "tasc: ");
perror(iname);
return 1;
}
} else if (argc == 1) {
fprintf(stderr, "tasc: cannot invent output filename for stdin\n");
return 1;
}
switch (hptype(stdin)) {
case HPASC:
if (coding == HPBIN) {
fprintf(stderr, "tasc: ASC->bin mode was disallowed\n");
return 1;
}
if (verbose) fprintf(stderr, "tasc: entering ASC->bin mode\n");
oname = argc == 1 ? newext(temp, iname, ".bin") : argv[i+1];
if (strcmp(oname, STDIO) && !freopen(oname, "wb", stdout)) {
fprintf(stderr, "tasc: ");
perror(oname);
return 1;
}
if (asctobin(stdin, stdout))
return 1;
break;
case HPBIN:
if (coding == HPASC) {
fprintf(stderr, "tasc: bin->ASC mode was disallowed\n");
return 1;
}
if (verbose) fprintf(stderr, "tasc: entering bin->ASC mode\n");
oname = argc == 1 ? newext(temp, iname, ".asc") : argv[i+1];
if (strcmp(oname, STDIO) && !freopen(oname, "w", stdout)) {
fprintf(stderr, "tasc: ");
perror(oname);
return 1;
}
if (bintoasc(stdin, stdout))
return 1;
break;
default:
fprintf(stderr, "tasc: unknown input type\n");
return 1;
}
if (fclose(stdin)) {
fprintf(stderr, "tasc: ");
perror(iname);
return 1;
}
if (fclose(stdout)) {
fprintf(stderr, "tasc: ");
perror(oname);
return 1;
}
return 0;
}
END_SRC
compiled with Turbo C 2.0
BEGIN_UUE tasc.uue
begin 644 tasc.com
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
M_W8$N"4Z4+AT-5#H,_B#Q`A>7<-5B^Q65Q[%=@;$?@K\T>GSI1/)\Z0?7UY=
MR@@`58OL5E>+?@17Z.+M68OP`_?K#(H$.D8&=02+QNL)3COW<_`SP.L`7UY=
MPU6+[%:+=@:#?@3_=#7_!(L$/0$`?A&*1@3_3`J+7`J(![0`ZR+K&X,\`744
MB\8%!0")1`J*1@2(1`6T`.L)ZP+_#+C__^L`7EW#``````````````!4=7)B
M;RU#("T@0V]P>7)I9VAT("AC*2`Q.3@X($)O<FQA;F0@26YT;"X`1&EV:61E
M(&5R<F]R#0I!8FYO<FUA;"!P<F]G<F%M('1E<FUI;F%T:6]N#0H`````````
M````````````````````````````````````````````DCJ2.I(Z````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````0````````````````````````````````!(4$A0-#@M
M)6,`)2I;)5U(4#HE*EM>.UTE8P`@0"5C`"4J6UX*70`E*C%;"ET`)6,`)2I;
M7@I=`"4J,5L*70!T87-C.B!I;G9E;G1I;F<@9FEL96YA;64@(B5S(@H`2%!(
M4#0X+44`)3%X`'1A<V,Z($%30RT^8FEN.B!W87)N:6YG.B!#4D,@:7,@:6YC
M;W)R96-T"@!T87-C.B!!4T,M/F)I;CH@0EE415,Z(",E:%AH("5L9"5S"@`N
M-0``)24E)4A0.B!4*#$I.PHB`"58`'1A<V,Z(&)I;BT^05-#.B!W87)N:6YG
M.B!L87-T(&]B:F5C="!I;F-O;7!L971E"@!T87-C.B!B:6XM/D%30SH@0EE4
M15,Z(",E:%AH("5L9"5S"@`N-0``)5@`(@H`+0!5<V4Z("5S(%MO<'0@+BXN
M72!S;W5R8V4@6W1A<F=E=%T*;W!T"6%C=&EO;@H@+60)1F]R8V4@05-#+3YB
M:6X@*$%30R!D96-O9&4I"B`M90E&;W)C92!B:6XM/D%30R`H05-#(&5N8V]D
M92D*("UQ"5-U<'!R97-S(&YO;BUE<G)O<B!M97-S86=E<R`H<75I970I"E1H
M92!F:6QE;F%M92`B+2(@<F5P<F5S96YT<R!T:&4@=&5R;6EN86PN"@!R8@!T
M87-C.B``=&%S8SH@8V%N;F]T(&EN=F5N="!O=71P=70@9FEL96YA;64@9F]R
M('-T9&EN"@!T87-C.B!!4T,M/F)I;B!M;V1E('=A<R!D:7-A;&QO=V5D"@!T
M87-C.B!E;G1E<FEN9R!!4T,M/F)I;B!M;V1E"@`N8FEN`'=B`'1A<V,Z(`!T
M87-C.B!B:6XM/D%30R!M;V1E('=A<R!D:7-A;&QO=V5D"@!T87-C.B!E;G1E
M<FEN9R!B:6XM/D%30R!M;V1E"@`N87-C`'<`=&%S8SH@`'1A<V,Z('5N:VYO
M=VX@:6YP=70@='EP90H`=&%S8SH@`'1A<V,Z(``````3`@($!08("`@4%043
M_Q8%$0+_________________!07_____________________#_\C`O\/____
M_Q/__P("!0\"____$___________(_____\C_Q/_`(,,@PR##````!`````@
M("`@("`@("`A(2$A(2`@("`@("`@("`@("`@("`@(`%`0$!`0$!`0$!`0$!`
M0$`"`@("`@("`@("0$!`0$!`0!04%!04%`0$!`0$!`0$!`0$!`0$!`0$!`0$
M0$!`0$!`&!@8&!@8"`@("`@("`@("`@("`@("`@("`A`0$!`(```````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````"0(`````````````
M5#4```H"`0```````````&0U```"`@(```````````!T-0``0P(#````````
M````A#4``$("!````````````)0U`````/\```````````"D-0````#_````
M````````M#4`````_P```````````,0U`````/\```````````#4-0````#_
M````````````Y#4`````_P```````````/0U`````/\````````````$-@``
M``#_````````````%#8`````_P```````````"0V`````/\````````````T
M-@````#_````````````1#8`````_P```````````%0V`````/\`````````
M``!D-@````#_````````````=#8`````_P```````````(0V`2`"(`(@!*`"
MH/_______________________________________P!`__\`````5$U0`"XD
M)"0``'!R:6YT('-C86YF(#H@9FQO871I;F<@<&]I;G0@9F]R;6%T<R!N;W0@
M;&EN:V5D#0H`#0`H;G5L;"D`,#$R,S0U-C<X.4%"0T1%1@`4%`$4%104%!0"
M`!0#!!0)!04%!04%!04%%!04%!04%!04%!0/%P\(%!04!Q06%!04%!04%!04
M#104%!04%!04%!00"@\/#P@*%!0&%!(+#A04$10,%!0-%!04%!04%````@("
M`@("`@(!`0$!`0("`@("`@("`@("`@("`@("`@$"`@("`P("`@($`@("`@(%
M!04%!04%!04%`@("`@("`@("`@<*%0H,"0(""P(4#@("`@(""`("$@("$`(0
M`@("`@(&!PH*"@P)`@(-`A$.$P("#P((`@(2`@("`@("`D0X3#AD.'XXC3BA
M.+,XPSC8..HX!SD;.2HY/CD``$LY6CF`.9`YGCFO.<`YTCD`````````````
M`````````````.0Y\CD#.B0`17)R;W(@,`!);G9A;&ED(&9U;F-T:6]N(&YU
M;6)E<@!.;R!S=6-H(&9I;&4@;W(@9&ER96-T;W)Y`%!A=&@@;F]T(&9O=6YD
M`%1O;R!M86YY(&]P96X@9FEL97,`4&5R;6ES<VEO;B!D96YI960`0F%D(&9I
M;&4@;G5M8F5R`$UE;6]R>2!A<F5N82!T<F%S:&5D`$YO="!E;F]U9V@@;65M
M;W)Y`$EN=F%L:60@;65M;W)Y(&)L;V-K(&%D9')E<W,`26YV86QI9"!E;G9I
M<F]N;65N=`!);G9A;&ED(&9O<FUA=`!);G9A;&ED(&%C8V5S<R!C;V1E`$EN
M=F%L:60@9&%T80!.;R!S=6-H(&1E=FEC90!!='1E;7!T960@=&\@<F5M;W9E
M(&-U<G)E;G0@9&ER96-T;W)Y`$YO="!S86UE(&1E=FEC90!.;R!M;W)E(&9I
M;&5S`$EN=F%L:60@87)G=6UE;G0`07)G(&QI<W0@=&]O(&)I9P!%>&5C(&9O
M<FUA="!E<G)O<@!#<F]S<RUD979I8V4@;&EN:P!-871H(&%R9W5M96YT`%)E
M<W5L="!T;V\@;&%R9V4`1FEL92!A;')E861Y(&5X:7-T<P!5;FMN;W=N(&5R
;<F]R`"5S.B`E<PH``+`"L`*W`F$=9AUF'68=
`
end
sum -r/size 9430/20213 section (from "begin" to "end")
sum -r/size 19821/14652 entire input file
END_UUE
--
Jon (jonhiga@phoenix.princeton.edu)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads