Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!rochester!cornell!batcomputer!braner
From: braner@batcomputer.tn.cornell.edu (braner)
Newsgroups: comp.sys.atari.st
Subject: Re: A simple disk cache
Message-ID: <1931@batcomputer.tn.cornell.edu>
Date: Sat, 3-Jan-87 20:31:47 EST
Article-I.D.: batcompu.1931
Posted: Sat Jan  3 20:31:47 1987
Date-Received: Sun, 4-Jan-87 05:35:28 EST
References: <1928@batcomputer.tn.cornell.edu>
Reply-To: braner@batcomputer.UUCP (braner)
Organization: Theory Center, Cornell University, Ithaca NY
Lines: 41
Summary: A much shorter (AL) version

[]

Even though the Megamax C compiler is famous for producing small
(compiled) programs, it doesn't even come close to what's possible
with the total control of an assembler.  As an experiment, I took the
original code of SCACHE (which was mostly in assembly-language anyway),
added installation code also in AL, and assembled with A-Seka.  This
version is 23% as long as the former:  the cache code is the same but
all the C garbage is gone...

Could somebody explain WHAT is all that extra stuff the compiler added,
and how to get rid of it?

Also:  I used an old version of A-Seka.  It has MANY bugs, e.g. it doesn't
handle tabs (in the source code) right, and it produces an unusable .prg
if the code is COMPLETELY relocatable (i.e. ALL the addresses are relative)
- you have to have at least one absolute reference so that A-Seka will
produce a valid relocation table.

Does anybody know if the latest version of A-Seka has improved substantially?
It is a compact (about 20K) assembler/linker/tracer/debugger (with 2 text
editors built-in), and is VERY fast.  It could be wonderful if finished up.

- Moshe Braner

~~~~~~~~~~~~~~~~~~~~~~~ cut here ~~~~~~~~~~~~~~~~~~~~~~
begin 644 SCACHE.PRG
M8!H```'4`````````````````````````````$AY```!EC\\`"9.3ER/2'D`
M``&X/SP`"4Y!7(]"@%*`#(```PU`;0#_]D)G+SP``#,`/SP`,4Y!(`@(````
M9AH@"0@```!F$C`\`!\BV"+8(M@BV%'(__9.=3`\`?\2V%'(__Q.=4-!0T@`
M````/B\`#@Q'``)M""!Y````:D[0)GD```1^/P=.DU2/1_D```%^/"\`#&<$
M2H!G$"!+2D=G!-#\``Q"F$*80I@$1@`&:\8Z+P`*VD8,10`+;KI*1V<(!D4`
M#`9&``Q*;P`$9B9!^0```98P!N%`XT#0P")O``9*,V@`9PYA`/].4D:\16WP
M0H!.=3X%GD8P+P`*/T<`"I!'T6\`##`&0C,(`%)`L$5F]D'Y```!>B"?2'D`
M``$F8`#_5"\Y```!>DJ`9D@\+P`,!$8`!CHO``K:1CXO``YG"`9%``P&1@`,
M1_D```%^(&\`!D/Y```!EC`&X4#C0-+`2?-H``C4``!A`/[*4D:\16WN0H!.
M=0`````````````````````````````````````B?```!'8@42`H__@,@$-!
M0TAG#$'Y````;B%1__PBB$YU#0H*"41I