Re: [colorforth] Unpack/Huffman coding in colorForth
- Subject: Re: [colorforth] Unpack/Huffman coding in colorForth
- From: "Ray St. Marie" <ray.stmarie@xxxxxxxxx>
- Date: Thu, 21 Apr 2005 18:06:44 -0500
Hi, Albert and friends,
Ray here.
On 4/10/05, Albert van der Horst <albert@xxxxxxxxxxxxxxxxxx> wrote:
> On Sun, Apr 10, 2005 at 01:49:55PM -0400, Mark Slicker wrote:
> <SNIP>
> >
> > The bootable colorForth images are mostly the same. Either Terry's or
> > Chuck's image is fine.
>
> "
> From: "howerd.oakford" <howerd.oakford@xxxxxxxxxxxx>
> I would be delighted if you would disassemble and re-assemble
> the binary image cfdos4.blk ! ( blocks 0 to 17 )
> Its available from my website www.inventio.co.uk/cfdos.htm .
> "
> Howard was so kind to supply me with the above url.
>
> But I conclude from what you say that the version obtainable
> via
> http://www.colorforth.com/install.htm
> is in fact stable and recent.
> So that is the proper starting point against which to report
> improvements and updates. It is probably the same as Howards
> anyway.
>
On 4/21/05, Albert van der Horst <albert@xxxxxxxxxxxxxxxxxx> wrote:
> Hoy Folks,
> Have the Huffman codes changed in historic times?
>
> I have had some success in automatically extracting names from a
> colorforth image, and use those names in the disassembly.
> But `` 1, '' wants to be seen as `` z, '' and 2, as j, .
>
I believe that Howerd has fixed many of the bugs that are in the
colorforth that you found in the image you extracted from Chuck\(Terry
too?) . His version is different, as Chuck\Terry\Ray-hacked-version
runs on my HP/Compaq P4, but Howerds doesn't. Howerds does run on my
P1, (when my p1 runs :) ).
So, I think you'll find some minor diffs between those versions.
This below is very very kewl.
> ---------------------------
> ( 0000,0645 ) :X_, MOVI|X, CX| 4 IL,
> ( 0000,064A ) :L0000,064A MOV, X| T| DX'| MEM| 0794 L,
> ( 0000,0650 ) MOV, X| F| AX'| ZO| [DX]
> ( 0000,0652 ) MOV, X| T| AX'| ZO| [SI]
> ( 0000,0654 ) LEA, DX'| ZO| [DX +1* CX]
> ( 0000,0657 ) LEA, SI'| BO| [SI] 4 B,
> ( 0000,065A ) MOV, X| F| DX'| MEM| 0794 L,
> ( 0000,0660 ) RET,
> ( 0000,0661 ) :X_z, MOVI|X, CX| 1 IL,
> ( 0000,0666 ) JMPS, L0000,064A RB,
> ( 0000,0668 ) :X_j, MOVI|X, CX| 2 IL,
> ( 0000,066D ) JMPS, L0000,064A RB,
> ( 0000,066F ) :X_3, MOVI|X, CX| 3 IL,
> ( 0000,0674 ) JMPS, L0000,064A RB,
> ( 0000,0676 ) :X_; MOV, X| T| DX'| MEM| 0794 L,
> ( 0000,067C ) SUBSI, R| DX| 5 IS,
> ( 0000,067F ) CMP, X| F| DX'| MEM| 07A0 L,
> ( 0000,0685 ) J, Z| N| L0000,068F RB,
> ( 0000,0687 ) CMPI, B| ZO| [DX] 0E8 IB,
> ( 0000,068A ) J, Z| N| L0000,068F RB,
> ( 0000,068C ) INC, B| ZO| [DX]
> ( 0000,068E ) RET,
> ---------------------------
>
> Can someone shed some light on this?
> It is difficult to get a "second opinion" from colorforth
> itself, as the z and j are not used in kernel words.
>
> I use strings as compact Huffman tables in the following code,
> (ANSI apart from the strings).
>
> [To turn the Stallman convention into a stack diagram,
> replace return with --
> surround with ( )
> keep only upper case words ]
> ___________________________________
> \ Throughout the following: colorname means a machine word with a
> \ huffman encoded name a la colorforth.
>
> DECIMAL
> \ Offsets in these strings are the Huffman code for 4,5 and 7 length
> \ chars, exclusive the Huffman determination prefix.
> " rtoeani" DROP CONSTANT C4
> "smcylgfw" DROP CONSTANT C5
> "dvpbhxuqkzj34567891-0.2/;:!+@*,?" DROP CONSTANT C7
>
> \ For a COLORNAME, return a COLORNAME without its first char, and that CHAR.
> : UNPACK
> DUP 0< 0= IF
> DUP 4 LSHIFT SWAP
> 28 RSHIFT C4 + C@
> ELSE 1 LSHIFT DUP 0< 0= IF
> DUP 4 LSHIFT SWAP
> 28 RSHIFT C5 + C@
> ELSE 1 LSHIFT
> DUP 5 LSHIFT SWAP
> 27 RSHIFT C7 + C@
> THEN THEN ;
>
> \ Copy COLORNAME to ``PAD'', return as (ascii) STRINGCONSTANT
> \ To not upset the disassembler with conflicting names colorforthnames
> \ are prepended with "X_".
> : CN>ASC "X_" PAD $! BEGIN UNPACK PAD $C+ DUP 0= UNTIL DROP PAD $@ ;
>
> \ Print out a COLORNAME.
> : .WORD CN>ASC TYPE ;
> ___________________________________
>
> --
> Albert van der Horst,Oranjestr 8,3511 RA UTRECHT,THE NETHERLANDS
> Economic growth -- like all pyramid schemes -- ultimately falters.
> albert@xxxxxxxxxxxxxxxxxx http://home.hccnet.nl/a.w.m.van.der.horst
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
> For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
> Main web page - http://www.colorforth.com
>
>
ras
--
Ray St. Marie
Rastm2ATusersDOTsourceforgeDOTnet
Ray.StMarieATgmailDOTcom and ATsbcglobalDOTnet
Ray_stmarieAThotmailDOTcom
Raystm2 and rastm2 in Internet Relay Chat (irc)
/connect irc.freenode.net Busness discussion: /join #biz
ColorForth: /join #c4th #c4th-ot Forth: /join #retro #forth #concatenative
Programming: /join #python #lisp #scheme #asm
---------------------------------------------------------------------
To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
Main web page - http://www.colorforth.com