Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There was also a great instuction called "movem.l" which moved multiple registers at once to almost anywhere (and vice-versa). It was used mainly to allocate stack frames, but could be creatively used to move stuff from place to place REAL fast.


Yes! The worst thing about it is that it was at your fingertips the entire time - the reference manual was there and it was exact. The 68000 (not the 68020) didn't have cache so instruction timings were exact, so I had no excuse.


Just to chime in with more 68k nostalgia and trivia: The 68000 didn't have cache - but 68010 did.

Three whole instructions worth of cache.

"Wha...?" you might say? Tha' heck good is that? The point was that the 3-instruction cache could cache tight loops, like the kind you would use for mem-to-mem copies, which is a terribly common thing to do. I put one in my Amiga 1000 (geez, did I hack that thing...) and got about a 10% overall system performance increase.

It was neat! More lovely details here: http://www.memphisamigagroup.net/diskmags/198803/68010-kit/M...


I remember it as just one instruction plus the jump. Checking up on this now, it looks like the "cache" (actually the IR register and the prefetch register) can only hold one 16-bit instruction and a DBxx instruction.


Ok, now that you mention it - that does sound correct. It was a long time ago... ;)


With a tower of MOVEM.L instructions and enough scratch registers you could get within a percent or two of theoretical bus speed for moving aligned data around. The ST used this in spots, and the memory manager and toolbox of the Macintosh used MOVEM extensively.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: