<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 10 Oct 2006 16:13:27 +0100 (BST)
From   : Greg Cook <debounce@...>
Subject: Re: Compressed ROMFS?

On Fri, 06 Oct 2006 21:32:02 +0100, Sprow <info@...> wrote:

> In article <20061006014529.82501.qmail@...>,
>    Greg Cook <debounce@...> wrote:
> > On Mon, 18 Sep 2006 22:04:53 +0100, Sprow <info@...> wrote:
>
> > > For Huffman (since the decode table is in ROM) you'd just need
> one
> > > additional byte of storage somewhere to remember which bit
> position
> > > you were at within the byte
>
> [workspace]
>
> > Silly me, &C0..F are taken by the CFS part of ROMFS.  Does anything
> use
> > &3BD?
> >
> > I've put together a script to make ROMFS images and rather lightly
> > compress them.  Not compatible with Econet (as I can't rely on the
> > language to leave the 'user' zero page area alone) but fixable with
> > reassembly + editing. Sorry!
>
> As the ROM filing system is read only, locations &380-&39D should be
> free
> since they're reserved for the BPUT header block. I think your
> suggested
> &3BD will be in use as it's in the "last read block" area.


On 08 Oct 2006 10:29:48 +0100 in article
<061008105504@...>, Jonathan Graham Harston
<jgh@...> wrote:

> Looking at your code it looks like you only want 8 bytes of
> memory. &039F-&03A6 within the RFS/CFS workspace are unused.
>
> It looks like you only need two zero page locations, for (stk+1,X).
> I recommend you stack two filing system workspace bytes on entry
> to your code, copy stk there, and restore them on exit, ie:
>
> .bget  LDA &C0:PHA
>        LDA &C1:PHA
>        LDA stk:STA &C0
>        LDA stk+1:STA &C1
>        ...do code...
>        PLA:STA &C1
>        PLA:STA &C0
>        LDA #0:RTS
>
> Also, I'd recommend a consistant ROM version string, viz:
>
> .title :EQUS "Compressed ROMFS":EQUB 0
>         EQUS "0.12 (05 Oct 2006)"
> .copyr :EQUB 0
>         EQUS "(C)2006 G.Cook":EQUB 0
>
> ie, a version string of "n<dot>nn<spc>(nn<spc>Mmm<spc>nnnn)"
>
> and a copyright string of "(C)nnnn<spc><anything else>".

Thanks for your suggestions, they have been taken up in version 0.20.
As the MOS pointer at &F6,&F7 is already stacked during the routine it
can be reused, and there are a few spare bytes in &C0..&CF which are
used only for convenience.  Should be fine with Econet now.

Greg Cook
debounce@...
http://homepages.tesco.net/~rainstorm/






___________________________________________________________
All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease
of use." - PC Magazine
http://uk.docs.yahoo.com/nowyoucan.html
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>