LinkedInand 3rd parties use essential and non-essential cookies to provide, secure, analyze and improve our Services, and to show you relevant ads (including professional and job ads) on and off LinkedIn. Learn more in our Cookie Policy.
On a forum, I was asked to record a video that showed a graphic system for AGA Amigas (computers released in 1992) that I made between 1996 and 2003. That system is an example of what can be achieved by means of technique, knowledge, creativity, and determination, and also gives a good idea of the special taste that old school software programming has. To let everyone appreciate the video, a bit of tech talk is required, but I'll simplify things quite a lot to make it as accessible as possible.
On AGA Amigas, each pixel can have an integer value ranging from 0 up to 255. That means that pixels are numbers made of (up to) 8 bits (a bit is the smallest unit of digital information; it can be either 0 or 1; maths-savvy people will easily see that 8 bits can be combined in 2^8 = 256 different ways). If all this seems muddy, don't be scared and just think of pixels like strings (sequences) of bits as in the following examples:
Basically, each pixel is a bunch of 8 bits (actually, on the Amiga the bits can be even less, but for simplicity let's stick to 8). One way to define such characteristic is to say that the AGA Amigas have a (maximum) color depth of 8 bits. To put things into perspective, just think that already a few years after the release of those Amigas all the graphic cards of computers had a color depth of 24 bits - so to speak, the Amiga color depth was 65536 times less (again for who likes to play with maths: 65536 = 2^16 = 2^24 / 2^8).
Another peculiarity of the Amigas is that the bits of a pixel are not stored together in memory. But let's first have a quick look at the computers memory (often called RAM, i.e. Random Access Memory).
Imagine 10 identical boxes lined up in a row. The first box is box #0, and the last box is box #9. Then, imagine a huge heap of identically-sized balls that come in 256 different combinations of colors. Each box contains a ball at all times. It's possible to replace the balls in the boxes at will. For example, one can take the ball that has the color combination #152 and put it in the box #3 (and throw away the ball that was there before). Now, in computer terms, the boxes represent the memory cells and the balls represent the values that are stored in the cells. Therefore, putting the ball #152 in the box #3 means writing the value 152 at the memory location 3.
Note that there are only 256 different balls/values: the reason is that the smallest piece of information that can be stored in a cell is made of 8 bits. Given its importance, it has a name: byte. In short: 8 bits = 1 byte.
We have seen that an Amiga pixel is made of (up to) 8 bits, that 8 bits are 1 byte, and that 1 byte is the content of a memory cell. It is natural to conclude that the value of a pixel is simply a byte in a memory cell. In fact, there are also adjectives to define such pixels: chunky and packed. However, that is not what happens on the Amiga (and other contemporary or older computers) due to cost-reduction reasons and technical limitations. Instead, the bits of a pixel are included in different bytes stored at different memory addresses.
This is because the graphics architecture of the Amiga is not chunky, but planar - there would be a lot to say about this, but this is not the right place, so, even if it sounds somewhat mysterious, just focus on the fact that the bits of a pixel are scattered over multiple bytes.
It should be easy to see that, if one wants to change the color of a single pixel, it is necessary to read 8 bytes from memory, clear or set the relevant bits in those bytes, and then write the bytes back to memory. Those are a lot of slow operations, therefore, when it comes to single-pixel operations, the Amiga architecture is not efficient.
Over time, many ingenious software engines have been developed to address such issue, that is to allow working on pixels in a chunky way and then have them somehow displayed on screen. All those engines are affected by limitations in resolution (amount of pixels on screen) and/or depth and/or speed. (To my knowledge) all the engines that were not limited in resolution had one thing in common: they required the main processor (CPU) to perform the so called chunky-to-planar (C2P) conversion. Conceptually, such conversion consists in reading the chunky pixels stored in a certain area of memory, rearranging their bits in planar format, and writing the converted data to the area of memory that gets displayed on screen. It is a very CPU- and memory-intensive operation that heavily affects the computer performance.
The initial objective was to provide a chunky video mode that did not require any conversion. And indeed TCS does that, albeit with some visual limitations. Then, to go beyond those limitations, I added also a couple of options based on data conversion: also in TCS the CPU (optionally together with another chip called Blitter) fetches pixels in chunky format, converts them to a different format, and writes them to memory, but thanks to the special TCS design, the conversion is much easier and faster than the traditional C2P conversion. In short, TCS allows to work with 8 bit chunky pixels in a more efficient way.
Imagine the layers as two sheets of paper. Obviously, each sheet can be written and drawn on indipendently from the other. Then, virtually put one of the sheets on top of the other, and call the former foreground and the latter background. What one would see is just the foreground. But what if one made a hole in the foreground? The background would show through it. TCS can do that.
Now, let's imagine instead that the front sheet is made of partially transparent paper (including the inked areas): what is drawn on the foreground would blend with what is drawn on the background. TCS can do that as well, and it can assign 257 degrees of opacity (from 0 = totally transparent to 256 totally opaque) to both the background and the foreground.
In conclusion, let's make a consideration. We have seen that TCS is capable of overlaying and/or mixing two 8 bit chunky layers. That is not achieved by means of pixel data manipulation: the layers are actually separate and displayed at the same time, which entails that it's as if, for each pixel, 16 bits were stacked up. Yet, didn't we say that the Amiga's color depth is 8 bit? Yes, exactly. Unfortunately, explaining how TCS works would take the equivalent of ten articles like this (and probably I'm being optimistic), but the point I'd like to make here is that TCS was possible thanks to the Amiga's smart and flexible hardware, which can be accessed directly.
We investigate manipulation and active sensing by a pushing control system using only tactile feedback. The equations of motion of a pushed object are derived using a model of the object's limit surface, and we design a control system to translate and orient objects. The effectiveness of the proposed controller is confirmed through simulation and experiments. Active sensing of the object's center of mass is described.
N2 - We investigate manipulation and active sensing by a pushing control system using only tactile feedback. The equations of motion of a pushed object are derived using a model of the object's limit surface, and we design a control system to translate and orient objects. The effectiveness of the proposed controller is confirmed through simulation and experiments. Active sensing of the object's center of mass is described.
AB - We investigate manipulation and active sensing by a pushing control system using only tactile feedback. The equations of motion of a pushed object are derived using a model of the object's limit surface, and we design a control system to translate and orient objects. The effectiveness of the proposed controller is confirmed through simulation and experiments. Active sensing of the object's center of mass is described.
All content on this site: Copyright 2024 Elsevier B.V. or its licensors and contributors. All rights are reserved, including those for text and data mining, AI training, and similar technologies. For all open access content, the Creative Commons licensing terms apply
In 1993, President Clinton and Vice President Gore launched their economic strategy: (1) establishing fiscal discipline, eliminating the budget deficit, keeping interest rates low, and spurring private-sector investment; (2) investing in people through education, training, science, and research; and (3) opening foreign markets so American workers can compete abroad. After eight years, the results of President Clinton's economic leadership are clear. Record budget deficits have become record surpluses, 22 million new jobs have been created, unemployment and core inflation are at their lowest levels in more than 30 years, and America is in the midst of the longest economic expansion in our history.
To Establish Fiscal Discipline, President Clinton: Enacted the 1993 Deficit Reduction Plan without a Single Republican Vote. Prior to 1993, the debate over fiscal policy often revolved around a false choice between public investment and deficit reduction. The 1993 deficit reduction plan showed that deficit and debt reductions could be accomplished in a progressive way by slashing the deficit in half and making important investments in our future, including education, health care, and science and technology research. The plan included more than $500 billion in deficit reduction. It also cut taxes for 15 million of the hardest-pressed Americans by expanding the Earned Income Tax Credit; created the Direct Student Loan Program; created the first nine Empowerment Zones and first 95 Enterprise Communities; and passed tax cuts for small businesses and research and development. Negotiated the Balanced Budget Agreement of 1997. In his 1997 State of the Union address, President Clinton announced his plan to balance the budget for the first time in 27 years. Later that year, he signed the Balanced Budget Act of 1997, a major bipartisan agreement to eliminate the national budget deficit, create the conditions for economic growth, and invest in the education and health of our people. It provided middle-class tax relief with a $500 per child tax credit and the Hope Scholarship and Lifetime Learning tax credits for college. It also created the Children's Health Insurance Program to serve up to 5 million children and made landmark investments in education initiatives including educational technology, charter schools, Head Start, and Pell Grants. Finally, it added 20 more Empowerment Zones and 20 more rural Enterprise Communities, included the President's plan to revitalize the District of Columbia, and continued welfare reform though $3 billion in new resources to move welfare recipients to private-sector jobs. Dedicated the Surplus to Save Social Security and Reduce the National Debt. In his 1998 and 1999 State of the Union addresses, President Clinton called on the nation to save the surplus until the solvency of Social Security is assured. He also repeatedly vetoed large Republican tax cut bills that would have jeopardized our nation's fiscal discipline. The President's actions led to a bipartisan consensus on saving the surplus and paying down the debt. Extended Medicare Solvency from 1999 to 2025. When President Clinton took office, Medicare was expected to become insolvent in 1999, then only six years away. The 1993 deficit reduction act dedicated some of the taxes paid by Social Security beneficiaries to the Medicare Trust Fund and extended the life of Medicare by three years to 2002. Thanks to additional provisions to combat waste, fraud and abuse and bipartisan cooperation in the 1997 balanced budget agreement, Medicare is now expected to remain solvent until 2025.
3a8082e126