If you interrupt routine is small, could you not also just switch off the first one or two scanlines of your display, and even grab a few extra cycles out as a result? Or can you not enable and disable the display per scanline?
And, yes, I know I'm missing the point with this question, I'm just curious. On Wed, May 21, 2008 at 3:12 PM, Andrew Collier <[EMAIL PROTECTED]> wrote: > Hi, > > I'm using IM2 in ... um, a current project ... in which I have more spite > drawing code than will fit in 32k. Thus I need to keep the screen in one half > of memory while the other half is a moveable window into other pages. > > If I used IM1 this would require that either, a) the screen goes in sections A > and B, and the interrupt routine is actuially visible in pixels - or b) the > moveable window goes in sections A and B, and I have to duplicate the > interrupt routine in nearly every page of memory. > > So I'm using IM2 instead, and the interrupt routine can slot into the last 8k > following the screen. > > Cheers, > Andrew > > > On Wed, May 21, 2008 at 02:08:51PM +0100, Geoff Winkless wrote: >> I have to admit I was wondering the same. IM2 was necessary on the speccy >> because 0x38 was in ROM and couldn't be paged out but I see no reason not >> to use IM1 on the Sam. I'm quite happy to be told otherwise, of course :) >> >> Geoff >> >> On Wed, 21 May 2008 13:50:14 +0100, "Adrian Brown" >> <[EMAIL PROTECTED]> wrote: >> > Ok, i haven't read all the posts on this, but why not stick the code in >> > LMPR and use IM1 - saves having the table of vectors. >> > >> > Adrian >> > ** UIP Sam Port 4100+ lines of z80 and climbing >> > >> > -----Original Message----- >> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >> > On Behalf Of David Brant >> > Sent: 21 May 2008 06:46 >> > To: sam-users@nvg.ntnu.no >> > Subject: Re: Short, short questions >> > >> > I thought the idea of mode2 was you could have different vectors for >> > different devices connected well this throws a spanner in the works. But >> > >> > then again is there any hardware for the SAM that uses them? I think it >> > must >> > have been an old spectrum book that said this about swapping high,low >> > bytes. >> > After a little test and using old brain this is wrong. >> > >> > Dave >> > >> > ----- Original Message ----- >> > From: "Edwin Blink" <[EMAIL PROTECTED]> >> > To: <sam-users@nvg.ntnu.no> >> > Sent: Wednesday, May 21, 2008 5:34 AM >> > Subject: Re: Short, short questions >> > >> > >> >> All 8 bits are used for LSB of the vector. The part where bit 0 always >> > is >> >> zero is when one of the Z80's IO chips is connected (PIO,SIO,CTC etc) >> > is >> >> connected. >> >> >> >> Edwin >> >> >> >> ----- Original Message ----- >> >> From: "David Brant" <[EMAIL PROTECTED]> >> >> To: <sam-users@nvg.ntnu.no> >> >> Sent: Wednesday, May 21, 2008 1:02 AM >> >> Subject: Re: Short, short questions >> >> >> >> >> >>> I've just been looking at my books. Although I can't find the bit >> > that >> >>> said about swapping to high,low but I'm sure that I did read it >> >>> somewhere. It does say that the device only gives the bits 1-7 and >> > bit 0 >> >>> is always 0 giving 128 possible addresses. >> >>> >> >>> Dave >> >>> >> >>> ----- Original Message ----- >> >>> From: "David Brant" <[EMAIL PROTECTED]> >> >>> To: <sam-users@nvg.ntnu.no> >> >>> Sent: Tuesday, May 20, 2008 10:49 PM >> >>> Subject: Re: Short, short questions >> >>> >> >>> >> >>>> This was based on info from a book called z-80 Workshop manual by >> > E.A >> >>>> Parr. The I register gives the high part of the table and the >> > hardware >> >>>> gives the low part to the table then takes that word for the service >> > >> >>>> routine. So if you start from one byte before the table and use the >> > same >> >>>> address for all entries and over run it by one it will work. My demo >> > of >> >>>> a full scrolling football pitch used this system, which I believe >> > you >> >>>> saw many years a go. >> >>>> >> >>>> Dave >> >>>> >> >>>> ----- Original Message ----- >> >>>> From: "Andrew Collier" <[EMAIL PROTECTED]> >> >>>> To: <sam-users@nvg.ntnu.no> >> >>>> Sent: Tuesday, May 20, 2008 9:50 PM >> >>>> Subject: Re: Short, short questions >> >>>> >> >>>> >> >>>>> Hi, >> >>>>> >> >>>>> I'm sceptical about this claim. I've never heard anybody say that >> > the >> >>>>> vector formed is big-endian - it's just you don't know the byte >> > offset >> >>>>> from which the interrupt vector will be fetched. (As Edwin says, it >> > is >> >>>>> usually 255 - which is odd so your 1-aligned table will usually >> > work - >> >>>>> but I don't know that Sam's hardware guarantees this). >> >>>>> >> >>>>> So the high byte comes from I, the low byte from the data bus; this >> > >> >>>>> forms a 16 bit address which will be incremented once (which is why >> > >> >>>>> the table needs 257 bytes, not 256). You could, at least in theory, >> > >> >>>>> read the vector address from even or odd overlapping entries, which >> > is >> >>>>> why the usual strategy is to pick a vector address whose low and >> > high >> >>>>> bytes are the same. >> >>>>> >> >>>>> The last IM2 interrupt routine I wrote looked something like this: >> >>>>> >> >>>>> ds ALIGN 256 >> >>>>> IM2TABLE: equ $ >> >>>>> IM2BYTE: equ im2table/256 >> >>>>> >> >>>>> IM2TARGETBYTE: equ IM2BYTE+1 >> >>>>> for 257, DB IM2TARGETBYTE >> >>>>> >> >>>>> IM2TARGET: equ 257*IM2TARGETBYTE >> >>>>> ds IM2TARGET-$ >> >>>>> >> >>>>> EX AF,AF' >> >>>>> ... >> >>>>> >> >>>>> Andrew >> >>>>> >> >>>>> >> >>>>> On 20 May 2008, at 21:16, David Brant wrote: >> >>>>> >> >>>>>> Mode 2 uses a table with 128 word address but as byte high,byte >> > low >> >>>>>> not the normal low, high bytes >> >>>>>> >> >>>>>> So if you set your org/dump address to &??FF (i.e. &??00-1) >> >>>>>> >> >>>>>> and then do >> >>>>>> >> >>>>>> DEFW mode2.i,mode2.i >> >>>>>> >> >>>>>> so you have 129 words. >> >>>>>> >> >>>>>> mode2.i: >> >>>>>> di >> >>>>>> push af >> >>>>>> in a,(status.int) >> >>>>>> ..... >> >>>>>> ..... >> >>>>>> ei >> >>>>>> ret >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> ----- Original Message ----- From: "Andrew Collier" >> >>>>>> <[EMAIL PROTECTED] >> >>>>>> > >> >>>>>> To: <sam-users@nvg.ntnu.no> >> >>>>>> Sent: Tuesday, May 20, 2008 3:22 PM >> >>>>>> Subject: Re: Short, short questions >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>>> The usual strategies are to use mode 1, or to use mode 2 with a >> > 257- >> >>>>>>> byte table all >> >>>>>>> containing the same byte. >> >>>>>>> >> >>>>>> >> >>>>> >> >>>>> -- >> >>>>> --- Andrew Collier ---- >> >>>>> ---- http://www.intensity.org.uk/ --- >> >>>>> -- >> >>>>> >> >>>>> >> >>>> >> >>> >> >> >> > >> > >> > >> > >> > >> > >> > >> > >> > APB Computer Services Ltd. Registered Address: 3 Springfield, Trevadlock, >> > Congdons Shop, Launceston, Cornwall, PL15 7PW. Registration Number: >> > 4942193. V.A.T. No: 826 0005 70 >> > >> > This email and any files transmitted with it are confidential and >> intended >> > solely for the use of the individual or entity to whom they are >> addressed. >> > If you have received this email in error please notify the system >> manager. >> > This message contains confidential information and is intended only for >> the >> > individual named. If you are not the named addressee you should not >> > disseminate, distribute or copy this e-mail. Please notify the sender >> > immediately by e-mail if you have received this e-mail by mistake and >> > delete this e-mail from your system. If you are not the intended >> recipient >> > you are notified that disclosing, copying, distributing or taking any >> > action in reliance on the contents of this information is strictly >> > prohibited. >> > > -- > --- Andrew Collier ---- > ---- http://www.intensity.org.uk/ --- > -- > r<2+ T<4* cSEL dMS hEn/CB<BL A4 S+*<++ C$++L/mP W- a-- Vh+seT+ (Cantab) 1.1.4 >