On Sat, Mar 15, 2014 at 12:32 AM, Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com> wrote:
 

2014-03-15 2:44 GMT+01:00 tim Rowledge <tim@rowledge.org>:


On 14-03-2014, at 6:16 PM, Eliot Miranda <eliot.miranda@gmail.com> wrote:

> Hi Tim,
>
>     I'm simulating bitblt code and have a situation where
>
> (cmShiftTable at: 0) = 4294967280
> (cmShiftTable at: 0) hex '16rFFFFFFF0'
>
> Clearly this should be -4.
>

I presume you mean - 2^4 (-2r1e4 or -16) ;)

doh!  quite :)
 
 
> This breaks simulation because
>         (sourcePixel bitAnd: (cmMaskTable at: 0)) bitShift: (cmShiftTable at: 0)
> is trying to make a 4Gb LargePositiveInteger ;-).
>
> How can we make it so?

Hmm, well if you need to make a 4Gb LPI I guess you’d best have plenty of memory?

Dunno; looks like cmShiftTable is supposed to use int32_t thingies in the C code.
BitBltSimulation>loadColorMapShiftOrMaskFrom: looks like the culprit to me though -  (simulated)firstIndexableField: might be not doing the right thing?

tim
--
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim
Useful random insult:- Always loses battles of wits because he's unarmed.







--
best,
Eliot