Subject: RE: [stella] Superchip? From: Mark De Smet <desmet@xxxxxxxxxxxx> Date: Fri, 15 Oct 1999 00:21:00 -0500 (CDT) |
> Let me get this right, so in hardware it can flip bytes and do other > bitwise operations? This would be really useful in saving memory for Yes. The basic structure is that of 8 indirect addressing memory blocks. There are extras thrown in there to make it more versitile, but that is the jist of it. There is a block of 2k of memory that is not directly addressable. However, the program can write an address into the indirect registers(these are registers in the chip), then read the data out of the memory at the address in the registers simply by reading a constant address.(once it is read, the address in the indirect registers is decremented so that it can be used for display data.) Each of these 'indirect addressing memory blocks' can be read out of 6 different ports. Depending on which port is read from, the data is altered. In one, it read s the data normally. Then there is one that masks the data with a 'valid'(called flag) bit.(the bit is programmer setup to indicate where in the data you are). Then there are 4 more which do some bitwise operations. One does a nibble swap, one inverses the bit ordering, one shifts left one bit, and one shifts right one bit. FYI One of the reasons I have become especially interested in this chip is because of all the ways it can make a program work faster and more efficiently. Examples of things that can be done: -As I already indicated, up to four channel sound. -Easy graphics(player, playfield, whatever) updating. for example. most kernals have a data segment containing all of the graphics in a row. then in the kernal, at the beginning of the display, an index is set, and everyline, data is loaded indirectly from that address and put into the graphics register. Then the index is inc/dec. That's 9 cycles every line. With this chip, you could instead put all your data in the chip(therefore not taking up you program space), load up the address at the beginning of the frame, and then all you would need to do each line is read from memory, then write to the graphics register. This is only 5 cycles, and doesn't require an index register. -easy vertical player/missle/ball positioning. You can setup the 'indirect data registers' so that it only gives you the data for a certain range of lines. For example, in adventure, when drawing the dragon, all you would have to do is setup the number of lines down you want it to be drawn, and then on everyline simply read the indirect data, and write it to the graphics register. It will automatically mask out the data if you are not in the preassigned line range. -random number generation. All you do is read an address, and it is always a new random number. -something about 'Draw line carry' which has something to do with drawing sloped lines. (I havn't gotten far enough to know what good this is yet.) Mark Note that I did not explain fully how all of this works as it is a little hairy, and I did not use the same language that Crane used so that I could explain it easier. -- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [stella] Superchip?, Glenn Saunders | Thread | RE: [stella] Superchip?, Piero Cavina |
RE: [stella] Superchip?, Glenn Saunders | Date | Re: [stella] Superchip?, kurt . woloch |
Month |