Atari 2600 Development

Original available here.

 

Inside the Homebrew Atari 2600 Scene

by Howard Wen

"Have you played Atari today?" was an ad jingle for the Atari 2600 VCS game console during its reign in the early years of the video game industry, from the late 1970s to early 1980s. That question that could apply even now, thanks to the passion of programmers who’ve continued to make new Atari games for the past few years. These "homebrew" games come in cartridge form (for use on actual Atari 2600 consoles) and have free public releases as code that runs on Atari 2600 emulators. (Homebrew developers use two of the most popular emulators, z26 and Stella, to test their games.) Emulators have greatly increased the audience for homebrew games outside of those who still own the consoles.

The Atari 2600 homebrew community is the largest among groups who develop original games for classic video game consoles. (This probably corresponds with the fact that the 2600 was the top-selling console during its time. The 2600 was the first video game system for many gaming enthusiasts who were alive then.) The scene is competitive but friendly, where authors share their expertise, advice, and even source code with one another and with those who are looking to program their own homebrew games.

"It’s a lot of fun, with various trade meets and video game expos organized every year. Homebrew development seems to be taking off more than ever," says Joe Grand. In 2001, Grand released SCSIcide (see Figure 1), the first homebrew Atari 2600 game to use the console’s paddle controllers (a technical challenge to implement for the system). This fast-paced "twitch" game — its theme and gameplay inspired by the inner workings of a hard drive — also has the distinction of being the Atari 2600 homebrew game that has sold the most number of copies in cartridge form — over 200 copies. The 28-year-old, an electrical engineer by trade, resides in San Diego, California.

SCSIcide
Figure 1. SCSIcide by Joe Grand

Nostalgia is a primary, initial motivation for most who homebrew their own games. Many were children during the heyday of the Atari and daydreamed of making their own games for it. A more practical reason is the challenge; it takes a certain finesse, and patience, in coding ability to make good games for the decades-old system.

The Art of Minimalism

Programming the 2600 is the art of dealing with limitations. Developers must find ways to optimize for speed and limited memory space. The system has no video buffer, the total code size cannot exceed 4K and can only use 128 bytes of RAM, and, adds Simon Quernhorst, "you even have to share that with the processor stack. This means that occupying too much memory results in crashing programs, as you might have deleted some information used by the processor."

Quernhorst, a 28-year-old IT consultant in Wesel, Germany, created the puzzler Mental Kombat. At present, he is making another Atari 2600 homebrew game, based on Aztec Challenge, a 1983 game originally for the Commodore 64 home computer.

In terms of graphics and sound, the Atari only has two sprite objects — each just eight pixels wide. The background is restricted to 40 pixels per scanline. There are only two available sound voices.

To hear these homebrew Atari programmers put it, these very technical constraints make programming the system … fun?

"It’s a lot like working a puzzle," Paul Slocum describes, "and there’s something satisfying about working so closely with the hardware [and] not having layers of software between you and the CPU." Slocum, 29, lives in Dallas, Texas, where he works as an embedded systems programmer. He wrote Marble Craze and Synthcart, a program that produces music on the Atari 2600. (He even uses the Atari as an instrument in his own band.) Currently, he’s developing an RPG officially featuring characters of the cult online animated series, Homestar Runner.

"I’m still attracted by the simplicity of gameplay, graphics, and sound. It’s the art of minimalism," says Quernhorst. "The limitations of graphic registers, RAM, sound voices, and colors increase the challenge of getting nice results."

"Because the Atari 2600 hardware is so limited, you must concentrate on the gameplay," emphasizes Thomas Jentzsch, who has created two homebrew games for the Atari — Thrust and Jammed. The 39-year-old is a software developer for a mobile phone company in Düsseldorf, Germany. "The gameplay must be as perfect as possible. Then the player will soon forget the limitations of the system. That makes the biggest difference between the classic games and many modern ‘games’ that concentrate way too much on eye and ear ‘candy,’ and often neglect the gameplay dramatically."

Bits and Bytes

The tools needed to make games for the 2600 are surprisingly simple. There are only three: a text editor (many Atari homebrew game developers recommend TextPad), a 6502 cross assembler (such as DASM), and one of the aforementioned emulators (z26 or Stella) to test the code.

The programmer’s skillset is more important. Developers need very good familiarity with the 65xx assembly language in order to understand the architecture and addresses that set the sprites, read the input devices, play the sounds, and do everything else on the 2600.

"You must love dealing with bits and bytes, because the Atari 2600 requires 100 percent Assembler coding," warns Jentzsch. "And you need some perseverance; often, coding is quite frustrating and sometimes a solution for a problem seems to be almost impossible. There are far more abandoned than finished projects for the Atari 2600, mainly because the programmer burned out."

"It’s not actually that tough a technical challenge to program the machine. But programming it efficiently and effectively is what separates the experts from the rest," says Andrew Davie, a 40-year-old professional programmer in Hobart, Tasmania, Australia. Davie developed the game Qb (Figure 2), as well as many technologically innovative programs for the Atari 2600 that other homebrew authors have put to use, such as Interleaved ChronoColour, which brings full-color bitmap capability to the machine. He’s also written several articles guiding newbies on how to program the 2600.

Qb
Figure 2. Qb by Andrew Davie

Playing the final product on an actual Atari 2600 system requires that the code be burned onto RO

M chips. Those who are not interested in figuring out the intricacies required to do this can usually seek out assistance from others in the Atari 2600 homebrew scene who make game cartridges for the system. The easiest and quickest way to test homebrew code on an Atari is the Cuttle Cart, is a cartridge that can hold downloaded code.

"There’s nothing like playing a game on the real hardware using real controllers — emulators can only get you so far," says Grand.

Thanks to emulators and the processing speed of modern computers, the development process for making Atari 2600 games is far more convenient and faster now than it was for those programmers on staff at Atari back in the late 1970s. One advantage they had over present-day homebrewers, though, was the availability of better debugging tools. The members of the Atari 2600 homebrew scene make up for this by relying upon each other’s advice and assistance.

"The hardware, simple as it is, is still not fully understood [by us]," says Davie. The homebrew scene learned yet more about the Atari when one of the companies that previously owned the Atari name released additional technical information to the public. "It’s only since the circuit diagrams for the TIA chip [a central component of the Atari 2600] have been available, and since some clever individuals started analyzing the operation of the chip, that we’re coming to understand why the hardware behaves as it does — and how to use this knowledge to make effective programs," says Davie.

Display Kernel Issues

Besides the 2600’s limited amount of memory, homebrew game developers say that the most difficult aspect about writing software for it is dealing with its display kernel. Since the system lacks video RAM, each scanline must be programmed directly. The picture on the screen has to be drawn in synchronization with the video beam, which can be a tricky feat to pull off, and there are only 76 CPU cycles per scanline. The game code must also control vertical synchronization, repositioning the electron beam at the top of the screen to start a new frame.

"Following the raster beam, you have to set each pixel and color just in the right moment to show it. If you want to show a sprite from lines 50 to 60, for example, you have to set the sprite values by hand at exactly the scanlines 50 to 60 on the correct horizontal cycle," explains Quernhorst. "This makes variable sprite positioning quite difficult. Such things are much more easy on other machines, as you can simply set the X or Y values to their registers at any time during your program."

To squeeze out the best screen display under this restriction, the display kernel usually has a unique design for each game. The display for an action game, where objects on the screen move quickly, would need to function differently from that of a puzzle game, where the objects would probably be static.

"You have a limited amount of time [for] each TV frame to do game processing before you have to start drawing the screen again. So you have to guarantee that under all conditions, your game-handling code will finish within that amount of time," says Slocum. "This can be tough since you usually have to cut it close."

Another issue with the 2600’s display is that the color order and location of the data bits on the screen are randomly selected. This routine is a time-consuming function which, if not executed properly and placed in the right section of the code, can result in annoying flickering of objects on the screen. For his game, Grand says he made the decision "to run the routine once at the beginning of each level, which led to a quick flicker of the screen. This way, gameplay wouldn’t be noticeably affected by flickering every time a data bit was read."

New Games for Old Systems

All of this extreme, stripped-down simplicity does have one benefit: making a game can be a one-person effort. "Game development projects for old machines can be done by single developers, while modern game systems require a lot more manpower, if you want to make state-of-the-art games for these platforms," says Quernhorst." It’s almost impossible for a single person to create a cool game on a modern platform. It’s easier to develop cool games for the ancient machines due to their limitations."

Ultimately, it’s more than just the challenge that attracts programmers like Quernhorst and his colleagues to make new games for the Atari — or for any classic game console. There’s a passion and love, not only for the systems themselves, but for the community of fans who have been helping the old hardware remain relevant today.

"It really feels good to know that the time, frustration, and money spent to develop and manufacture the game was all worth it. It’s nice to give back to the community and provide people with a new game for an old platform," Grand says.

The Developers Speak

Homebrew game authors Andrew Davie, Joe Grand, Thomas Jentzsch, Simon Quernhorst, and Paul Slocum discussed with the O’Reilly Network their experiences in making games for the Atari 2600.

O’Reilly Network: What inspired you to make your own Atari 2600 game?

Andrew Davie: I had many games under my belt, but only as programmer/designer. I’d not had the opportunity to develop a full product from concept through programming, marketing, and sales. I saw the 2600 as an ideal platform to do all of these in one go. I also happen to adore the 6502 processor — the Atari has a variant of this, and was fascinated by the technical challenge of getting the machine to do anything, let alone something interesting. I was originally motivated by Bob Colbert’s pioneering work on Okie Dokie.

Thomas Jentzsch: I must admit that I had almost completely forgotten my Atari 2600 when I accidentally found a working emulator for it on the Web. But almost immediately I remembered the fun I had back then. Soon after that, I found the Stella developers group and saw a new challenge for my Assembler programming hobby.

Simon Quernhorst: I’m a collector of Atari VCS cartridges for years now, and I decided to start a development project in 2001. I’ve been programming demos and games for the Commodore 64 for years. Therefore, the machine language of the VCS was nothing new to me — just different addresses had to be learned and checked. (Quernhorst created A-VCS-tec, as seen in Figure 3.)

A-VCS-tec Challenge
Figure 3. A-VCS-tec Challenge by Simon Quernhorst

Joe Grand: I was already collecting cartridges for the Atari 2600, and I wanted to work on a project that combined my hobby and my professional life — electrical engineering. Not only did I code the game, but I created a custom circuit board. The boards fit into the standard Atari cartridge cases and all components are easily obtainable at many electronics stores. This made the manufacturing process much easier and less frustrating. I built the first 50 games by hand to sell at a gaming expo and sold out almost instantly.

Paul Slocum: The challenge of programming for such a minimal system, and I really wanted to when I was a kid. I actually still have game designs I drew up in elementary school, although I don’t think many are feasible on the 2600.

O’Reilly Network: What’s your personal favorite Atari 2600

game? Why?

JG: Activision’s Kaboom!. It’s the type of game that forces you to get "into the zone" and just space out. It’s a very "Zen-like" game. It was the inspiration for SCSIcide.

AD: I don’t really have a favorite. I am mostly interested in the technology, rather than the game itself. Having said that, Dig Dug was a very good conversion effort, so I’m partial to that at the moment. Many of the modern homebrews are excellent.

SQ: I’d mention H.E.R.O. It’s really good and was well-designed overall. I also enjoy most of the modern homebrew games. Just to mention a few: Qb, Star Fire, Marble Craze, Merlin’s Walls, and Thrust (Figure 4).

Thrust
Figure 4. Thrust by Thomas Jentzsc

TJ: From the classic period, Starmaster. It was one of the very few games I owned, and it combined action with some strategy. I was very addicted to the game back then.

From the modern homebrew games, Oystron. This was one of the first homebrews I found, and it is a great game. It was Oystron that made me want to program my own game. It defined a new level for Atari 2600 homebrewing and showed that a homebrew game could match the old classics.

O’Reilly Network: What interesting technical challenges did you came across when you made your game?

PS: I made it extra hard on myself by doing a paddle game. Paddles must be read while displaying whatever’s on the screen, and timing is critical during the display. Since SCSIcide was the first homebrew game to use the paddle, there was no previous work to reference.

One byte of RAM was used to store the current numerical value of the paddle. At the beginning of each frame in the vertical blank, the capacitor inside of the paddle controller is discharged and, a few cycles later, set to recharge. During every scanline draw, the value of the capacitor is read. How long the capacitor in the paddle takes to charge determines the vertical position of the [player character] on the screen.

For example, less resistance in the potentiometer of the paddle will cause the capacitor to charge more quickly, and place the [player] towards the top of the screen. If the paddle is moved in the other direction, increasing the resistance of the potentiometer, the capacitor will take a longer time to charge, and the [player] will be placed lower down the screen. Programming efficient and "non-fluttering" paddle control took the longest amount of development time and required a great deal of experimentation with the Atari 2600 system.

SQ: The Atari VCS can only handle banks of 4kb at one time, and a technique called "bankswitching" is used to access more ROM. You can tell the machine which of the 4kb banks is currently in use and access this ROM then. The problem is that the memory is always numbered in the same way. This means that an address $0F00, for example, is used two times; once in Bank 1 and once in Bank 2. When jumping from one bank to the other, the processor jumps into Bank 2 at just the address where you left Bank 1. For example, a bankswitch command at $0E03 in Bank 1 lets the processor continue at Address $0E06 in Bank 2.

O’Reilly Network: Did you develop any unique code that takes advantage of the Atari 2600’s technology?

TJ: For Thrust, I invented a smooth looking, bi-directional "delayed" scrolling that is still quite unique for the 2600.

JG: My proudest achievement was implementing the paddle support, but I also created a six-digit hexadecimal scoring routine based on some old score display code, and implemented a cool random number to generate the random color and location of the data bits on the screen.

AD: The Interleaved ChronoColour technology was independently developed, but does duplicate similar technology already available on other machines. It introduces "full-color" bitmap images on the Atari 2600, where previously only single-color-per-pixel images were possible. This has extended the graphics capability of the 2600 significantly. The technology involves real-time multiplexing, in time and space, of red-green-blue-component images to achieve a color image.

SQ: I invented a PAL/NTSC-switch on Mental Kombat. As far as I know, no other game now uses this technique. This makes the cartridge run on any machine worldwide without problems or mixed-up colors.

PS: I’d say my most innovative work was with music. I wrote a music driver that managed to do fairly decent music in spite of only having two sound channels and very limited pitch. And the driver uses very little processor time, so you can easily run it in the background in-game.

O’Reilly Network: What advice do you have for others who are interested in making their own homebrew games for the Atari 2600?

SQ: If you already know assembly and machine language: take a lot of time and patience and prepare for a very exact programming challenge. The 2600 is very timing-sensitive. Using too many cycles in one scanline may, for example, lead to mixed-up graphics and colors. In very timing-sensitive routines, counting the cycles of every operation by hand might help to ensure that you’re not using too many cycles.

JG: Experiment, experiment, experiment, and be patient! There are a huge number of resources available now that provide disassembled games, commented source code, development tools, emulators, and discussion lists.

It might appear easy, since there are so many homebrew game projects going on right now. But take small steps and play around a lot. That is the best way to learn. There are lots of people in the community willing to help out new developers.

Writing a game takes time, as does thinking up graphics and packaging, making the cartridges, etc. You won’t make a quick buck, so only do it if you love it.

2600 Homebrew Resources

 

The Downing Street Memo

Original link available here.

SECRET AND STRICTLY PERSONAL – UK EYES ONLY

DAVID MANNING
From: Matthew Rycroft
Date: 23 July 2002
S 195 /02

cc: Defence Secretary, Foreign Secretary, Attorney-General, Sir Richard Wilson, John Scarlett, Francis Richards, CDS, C, Jonathan Powell, Sally Morgan, Alastair Campbell

IRAQ: PRIME MINISTER’S MEETING, 23 JULY

Copy addressees and you met the Prime Minister on 23 July to discuss Iraq.

This record is extremely sensitive. No further copies should be made. It should be shown only to those with a genuine need to know its contents.

John Scarlett summarised the intelligence and latest JIC assessment. Saddam’s regime was tough and based on extreme fear. The only way to overthrow it was likely to be by massive military action. Saddam was worried and expected an attack, probably by air and land, but he was not convinced that it would be immediate or overwhelming. His regime expected their neighbours to line up with the US. Saddam knew that regular army morale was poor. Real support for Saddam among the public was probably narrowly based.

C reported on his recent talks in Washington. There was a perceptible shift in attitude. Military action was now seen as inevitable. Bush wanted to remove Saddam, through military action, justified by the conjunction of terrorism and WMD. But the intelligence and facts were being fixed around the policy. The NSC had no patience with the UN route, and no enthusiasm for publishing material on the Iraqi regime’s record. There was little discussion in Washington of the aftermath after military action.

CDS said that military planners would brief CENTCOM on 1-2 August, Rumsfeld on 3 August and Bush on 4 August.

The two broad US options were:

(a) Generated Start. A slow build-up of 250,000 US troops, a short (72 hour) air campaign, then a move up to Baghdad from the south. Lead time of 90 days (30 days preparation plus 60 days deployment to Kuwait).

(b) Running Start. Use forces already in theatre (3 x 6,000), continuous air campaign, initiated by an Iraqi casus belli. Total lead time of 60 days with the air campaign beginning even earlier. A hazardous option.

The US saw the UK (and Kuwait) as essential, with basing in Diego Garcia and Cyprus critical for either option. Turkey and other Gulf states were also important, but less vital. The three main options for UK involvement were:

(i) Basing in Diego Garcia and Cyprus, plus three SF squadrons.

(ii) As above, with maritime and air assets in addition.

(iii) As above, plus a land contribution of up to 40,000, perhaps with a discrete role in Northern Iraq entering from Turkey, tying down two Iraqi divisions.

The Defence Secretary said that the US had already begun “spikes of activity” to put pressure on the regime. No decisions had been taken, but he thought the most likely timing in US minds for military action to begin was January, with the timeline beginning 30 days before the US Congressional elections.

The Foreign Secretary said he would discuss this with Colin Powell this week. It seemed clear that Bush had made up his mind to take military action, even if the timing was not yet decided. But the case was thin. Saddam was not threatening his neighbours, and his WMD capability was less than that of Libya, North Korea or Iran. We should work up a plan for an ultimatum to Saddam to allow back in the UN weapons inspectors. This would also help with the legal justification for the use of force.

The Attorney-General said that the desire for regime change was not a legal base for military action. There were three possible legal bases: self-defence, humanitarian intervention, or UNSC authorisation. The first and second could not be the base in this case. Relying on UNSCR 1205 of three years ago would be difficult. The situation might of course change.

The Prime Minister said that it would make a big difference politically and legally if Saddam refused to allow in the UN inspectors. Regime change and WMD were linked in the sense that it was the regime that was producing the WMD. There were different strategies for dealing with Libya and Iran. If the political context were right, people would support regime change. The two key issues were whether the military plan worked and whether we had the political strategy to give the military plan the space to work.

On the first, CDS said that we did not know yet if the US battleplan was workable. The military were continuing to ask lots of questions.

For instance, what were the consequences, if Saddam used WMD on day one, or if Baghdad did not collapse and urban warfighting began? You said that Saddam could also use his WMD on Kuwait. Or on Israel, added the Defence Secretary.

The Foreign Secretary thought the US would not go ahead with a military plan unless convinced that it was a winning strategy. On this, US and UK interests converged. But on the political strategy, there could be US/UK differences. Despite US resistance, we should explore discreetly the ultimatum. Saddam would continue to play hard-ball with the UN.

John Scarlett assessed that Saddam would allow the inspectors back in only when he thought the threat of military action was real.

The Defence Secretary said that if the Prime Minister wanted UK military involvement, he would need to decide this early. He cautioned that many in the US did not think it worth going down the ultimatum route. It would be important for the Prime Minister to set out the political context to Bush.

Conclusions:

(a) We should work on the assumption that the UK would take part in any military action. But we needed a fuller picture of US planning before we could take any firm decisions. CDS should tell the US military that we were considering a range of options.

(b) The Prime Minister would revert on the question of whether funds could be spent in preparation for this operation.

(c) CDS would send the Prime Minister full details of the proposed military campaign and possible UK contributions by the end of the week.

(d) The Foreign Secretary would send the Prime Minister the background on the UN inspectors, and discreetly work up the ultimatum to Saddam.

He would also send the Prime Minister advice on the positions of countries in the region especially Turkey, and of the key EU member states.

(e) John Scarlett would send the Prime Minister a full intelligence update.

(f) We must not ignore the legal issues: the Attorney-General would consider legal advice with FCO/MOD legal advisers.

(I have written separately to commission this follow-up work.)

MATTHEW RYCROFT

(Rycroft was a Downing Street foreign policy aide)

[emphasis added]

Notes regarding the document’s validity:

“The newly disclosed memo, which was first reported by the Sunday Times of London, hasn’t been disavowed by the British government. The British Embassy in Washington did not respond to requests for comment.

A former senior U.S. official called it “an absolutely accurate description of what transpired” during the senior British intelligence officer’s visit to Washington. He spoke on condition of anonymity.

A White House official said the administration wouldn’t comment on leaked British documents…”

• Memo: Bush manipulated Iraq intel,
Newsday, May 9, 2005

“British officials did not dispute the document’s authenticity…”

• Bush asked to explain UK war memo,
CNN, May 12, 2005

“Since Smith’s report was published May 1, Blair’s Downing Street office has not disputed the document’s authenticity. Asked about them Wednesday, a Blair spokesman said the report added nothing significant…”

• Indignation Grows in U.S. Over British Prewar Documents,
LA Times, May 12, 2005

Summary of the War in Iraq (interesting)

Galloway vs. The US Senate: Transcript of Statement
George Galloway, Respect MP for Bethnal Green and Bow, delivered this statement to US Senators today who have accused him of corruption

“Senator, I am not now, nor have I ever been, an oil trader. and neither has anyone on my behalf. I have never seen a barrel of oil, owned one, bought one, sold one – and neither has anyone on my behalf.
“Now I know that standards have slipped in the last few years in Washington, but for a lawyer you are remarkably cavalier with any idea of justice. I am here today but last week you already found me guilty. You traduced my name around the world without ever having asked me a single question, without ever having contacted me, without ever written to me or telephoned me, without any attempt to contact me whatsoever. And you call that justice.

“Now I want to deal with the pages that relate to me in this dossier and I want to point out areas where there are – let’s be charitable and say errors. Then I want to put this in the context where I believe it ought to be. On the very first page of your document about me you assert that I have had ‘many meetings’ with Saddam Hussein. This is false.

“I have had two meetings with Saddam Hussein, once in 1994 and once in August of 2002. By no stretch of the English language can that be described as “many meetings” with Saddam Hussein.

“As a matter of fact, I have met Saddam Hussein exactly the same number of times as Donald Rumsfeld met him. The difference is Donald Rumsfeld met him to sell him guns and to give him maps the better to target those guns. I met him to try and bring about an end to sanctions, suffering and war, and on the second of the two occasions, I met him to try and persuade him to let Dr Hans Blix and the United Nations weapons inspectors back into the country – a rather better use of two meetings with Saddam Hussein than your own Secretary of State for Defense made of his.

“I was an opponent of Saddam Hussein when British and Americans governments and businessmen were selling him guns and gas. I used to demonstrate outside the Iraqi embassy when British and American officials were going in and doing commerce.

“You will see from the official parliamentary record, Hansard, from the 15th March 1990 onwards, voluminous evidence that I have a rather better record of opposition to Saddam Hussein than you do and than any other member of the British or American governments do.

“Now you say in this document, you quote a source, you have the gall to quote a source, without ever having asked me whether the allegation from the source is true, that I am ‘the owner of a company which has made substantial profits from trading in Iraqi oil’.

“Senator, I do not own any companies, beyond a small company whose entire purpose, whose sole purpose, is to receive the income from my journalistic earnings from my employer, Associated Newspapers, in London. I do not own a company that’s been trading in Iraqi oil. And you have no business to carry a quotation, utterly unsubstantiated and false, implying otherwise.

“Now you have nothing on me, Senator, except my name on lists of names from Iraq, many of which have been drawn up after the installation of your puppet government in Baghdad. If you had any of the letters against me that you had against Zhirinovsky, and even Pasqua, they would have been up there in your slideshow for the members of your committee today.

“You have my name on lists provided to you by the Duelfer inquiry, provided to him by the convicted bank robber, and fraudster and conman Ahmed Chalabi who many people to their credit in your country now realize played a decisive role in leading your country into the disaster in Iraq.

“There were 270 names on that list originally. That’s somehow been filleted down to the names you chose to deal with in this committee. Some of the names on that committee included the former secretary to his Holiness Pope John Paul II, the former head of the African National Congress Presidential office and many others who had one defining characteristic in common: they all stood against the policy of sanctions and war which you vociferously prosecuted and which has led us to this disaster.

“You quote Mr Dahar Yassein Ramadan. Well, you have something on me, I’ve never met Mr Dahar Yassein Ramadan. Your sub-committee apparently has. But I do know that he’s your prisoner, I believe he’s in Abu Ghraib prison. I believe he is facing war crimes charges, punishable by death. In these circumstances, knowing what the world knows about how you treat prisoners in Abu Ghraib prison, in Bagram Airbase, in Guantanamo Bay, including I may say, British citizens being held in those places.

“I’m not sure how much credibility anyone would put on anything you manage to get from a prisoner in those circumstances. But you quote 13 words from Dahar Yassein Ramadan whom I have never met. If he said what he said, then he is wrong.

“And if you had any evidence that I had ever engaged in any actual oil transaction, if you had any evidence that anybody ever gave me any money, it would be before the public and before this committee today because I agreed with your Mr Greenblatt [Mark Greenblatt, legal counsel on the committee].

“Your Mr Greenblatt was absolutely correct. What counts is not the names on the paper, what counts is where’s the money. Senator? Who paid me hundreds of thousands of dollars of money? The answer to that is nobody. And if you had anybody who ever paid me a penny, you would have produced them today.

“Now you refer at length to a company names in these documents as Aredio Petroleum. I say to you under oath here today: I have never heard of this company, I have never met anyone from this company. This company has never paid a penny to me and I’ll tell you something else: I can assure you that Aredio Petroleum has never paid a single penny to the Mariam Appeal Campaign. Not a thin dime. I don’t know who Aredio Petroleum are, but I daresay if you were to ask them they would confirm that they have never met me or ever paid me a penny.

“Whilst I’m on that subject, who is this senior former regime official that you spoke to yesterday? Don’t you think I have a right to know? Don’t you think the Committee and the public have a right to know who this senior former regime official you were quoting against me interviewed yesterday actually is?

“Now, one of the most serious of the mistakes you have made in this set of documents is, to be frank, such a schoolboy howler as to make a fool of the efforts that you have made. You assert on page 19, not once but twice, that the documents that you are referring to cover a different period in time from the documents covered by The Daily Telegraph which were a subject of a libel action won by me in the High Court in England late last year.

“You state that The Daily Telegraph article cited documents from 1992 and 1993 whilst you are dealing with documents dating from 2001. Senator, The Daily Telegraph’s documents date identically to the documents that you were dealing with in your report here. None of The Daily Telegraph’s documents dealt with a period of 1992, 1993. I had never set foot in Iraq until late in 1993 – never in my life. There could possibly be no documents relating to Oil-for-Food matters in 1992, 1993, for the Oil-for-Food scheme did not exist at that time.

“And yet you’ve allocated a full section of this document to claiming that your documents are from a different era to the Daily Telegraph documents when the opposite is true. Your documents and the Daily Telegraph documents deal with exactly the same period.

“But perhaps you were confusing the Daily Telegraph action with the Christian Science Monitor. The Christian Science Monitor did indeed publish on its front pages a set of allegations against me very similar to the ones that your committee have made. They did indeed rely on documents which started in 1992, 1993. These documents were unmasked by the Christian Science Monitor themselves as forgeries.

“Now, the neo-con websites and newspapers in which you’re such a hero, senator, were all absolutely cock-a-hoop at the publication of the Christian Science Monitor documents, they were all absolutely convinced of their authenticity. They were all absolutely convinced that these documents showed me receiving $10 million from the Saddam regime. And they were all lies.

“In the same week as the Daily Telegraph published their documents against me, the Christian Science Monitor published theirs which turned out to be forgeries and the British newspaper, Mail on Sunday, purchased a third set of documents which also upon forensic examination turned out to be forgeries. So there’s nothing fanciful about this. Nothing at all fanciful about it.

“The existence of forged documents implicating me in commercial activities with the Iraqi regime is a proven fact. It’s a proven fact that these forged documents existed and were being circulated amongst right-wing newspapers in Baghdad and around the world in the immediate aftermath of the fall of the Iraqi regime.

“Now, Senator, I gave my heart and soul to oppose the policy that you promoted. I gave my political life’s blood to try to stop the mass killing of Iraqis by the sanctions on Iraq which killed one million Iraqis, most of them children, most of them died before they even knew that they were Iraqis, but they died for no other reason other than that they were Iraqis with the misfortune to born at that time. I gave my heart and soul to stop you committing the disaster that you did commit in invading Iraq. And I told the world that your case for the war was a pack of lies.

“I told the world that Iraq, contrary to your claims did not have weapons of mass destruction. I told the world, contrary to your claims, that Iraq had no connection to al-Qaeda. I told the world, contrary to your claims, that Iraq had no connection to the atrocity on 9/11 2001. I told the world, contrary to your claims, that the Iraqi people would resist a British and American invasion of their country and that the fall of Baghdad would not be the beginning of the end, but merely the end of the beginning.

“Senator, in everything I said about Iraq, I turned out to be right and you turned out to be wrong and 100,000 people paid with their lives; 1600 of them American soldiers sent to their deaths on a pack of lies; 15,000 of them wounded, many of them disabled forever on a pack of lies.

If the world had listened to Kofi Annan, whose dismissal you demanded, if the world had listened to President Chirac who you want to paint as some kind of corrupt traitor, if the world had listened to me and the anti-war movement in Britain, we would not be in the disaster that we are in today. Senator, this is the mother of all smokescreens. You are trying to divert attention from the crimes that you supported, from the theft of billions of dollars of Iraq’s wealth.

“Have a look at the real Oil-for-Food scandal. Have a look at the 14 months you were in charge of Baghdad, the first 14 months when $8.8 billion of Iraq’s wealth went missing on your watch. Have a look at Halliburton and other American corporations that stole not only Iraq’s money, but the money of the American taxpayer.

“Have a look at the oil that you didn’t even meter, that you were shipping out of the country and selling, the proceeds of which went who knows where? Have a look at the $800 million you gave to American military commanders to hand out around the country without even counting it or weighing it.

“Have a look at the real scandal breaking in the newspapers today, revealed in the earlier testimony in this committee. That the biggest sanctions busters were not me or Russian politicians or French politicians. The real sanctions busters were your own companies with the connivance of your own Government.”

負けず嫌い

「負けず嫌い」の「ず」って否定ですよね?ってことは、意味は、「負けないのが嫌い」ってことじゃないの?????

この「ず」は打ち消しではなく、「む」の仲間の「むず」=「んず」の古風な表記です。「むず」の説明は次の通りです。
動詞、一部の助動詞などの未然形につく。推量の助動詞「ん(む)」+助詞「と」+動詞「す」からできた「んとす(むとす)」がさらに変化したものと言われる。「むず」とも書く}意味は「ん(む)」とほぼ同じであるが、それを強調する気持ちがこめられる。
よって、負けないことではなく負けることという意味です。知らず知らずのうちに、忘れてしまった昔の言葉を用法で我々は使っているのですね。おもしろいものです。

referenced from here.

Binary Numbers


Yes
. I know this is my first post.
Yes. I know it is about binary numbers.

David: Guess what I did today?
You Guys: What?
David: I taught myself how to read binary numbers.

So here it goes:

Binary Numbers work on the base 2 system. We are used to counting with a base 10 system. For example:

12 has two numbers. A 1 and a 2. 2 is in the first column. The “one” column.
Every column to the left of this goes up by a multiple of 10 (base 10).
Hence, 12 has ONE ten and TWO ones.

So far so good right? Now for binaries.

Binary numbers can only be 0 or 1.
The first column is the “one” column.
Every column to the left of this goes up by a multiple of 2 (base 2).
Hence, 11 in binary is equal to 3.
11 has ONE two and ONE one.

Got it? Good. So when dealing with computers (usually 8-bit binaries)

128 64 32 16 8 4 2 1
—————————-
0 0 0 0 0 0 0 0 = 0
1 1 1 1 1 1 1 1 = 255 (128+64+32+16+8+4+2+1)

OK. Then what about 10101010?

128 64 32 16 8 4 2 1
—————————-
1 0 1 0 1 0 1 0 = 170 (128+32+8+2)

What about going the other way?? Easy. Let’s take 159.

Divide 159 by 2. (base 2, remember?) = ONE 128 with 31 remaining.
Divide 31 by 2. = ONE 16 with 15 remaining.
Divide 15 by 2. = ONE 8 with 7 remaining.
Divide 7 by 4. = ONE 4 with 3 remaining.
Divide 3 by 2. = ONE 2 with 1 remaining.

Therefore it must be:

128 64 32 16 8 4 2 1
—————————-
1 0 0 1 1 1 1 1 = 159 (128+16+8+4+2+1)

To summarize, here is a chart I pulled.

Base 2 = Base 10
0 = 0
1 = 1
10 = 2
11 = 3
100 = 4
101 = 5
110 = 6
111 = 7
1000 = 8
1001 = 9
1010 = 10
1011 = 11
1100 = 12
1101 = 13
1110 = 14
1111 = 15

Interestingly enough, and this IS a tangent, it really comes into play with subnet masks.

There are a couple intresting things about subnet masks. They don’t really behave like you would initially expect them to. The numbers of a subnet mask count ip addresses that are not there. This means higher the numbers of a subnet mask are the less ip addresses belong to it.

For example:
255.255.255.255 = There are no ip addresses in this range.
0.0.0.0 = This is the range of all ip addresses.

The rest of this article is also pulled.

Lets take one of the most basic subnets the 255.255.255.0 one, and see how many addresses are in it’s range. The first step is to put the subnet into binary. Let go ahead and do that now. If you don’t know how to put something into binary read Binary Numbers for more information.

11111111.11111111.11111111.00000000 = 255.255.255.0

So how do we find out how many ip addresses are in this group? Well its rather simple actually. Just count the number of zeros, and then take 2 to the number of zeros power. In this case it would be 2^8 = 256. Another way to do it is to multiply 2 times itself 7 times. 2*2*2*2*2*2*2*2=256 So we have two hundred and fifty six ip addresses in that range! Another thing that is intresting to know. Subnets will always be all ones on one side, and all zeros on the other. I mean that they will always look like 111111000000 and never like 1010101101.

Lets take a closer look at what a group of ip addresses looks like. Using the 255.255.255.0 subnet from above let me make a table.

192.168.1.0 – Subnet Address
192.168.1.1 – usually the gateway
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6

192.168.1.252
192.168.1.253
192.168.1.254
192.168.1.255 – Broadcast Address

Every group of ip addresses, has a Subnet Address, Broadcast Address, and Gateway. Both the Subnet Address ip address and the Broadcast Address ip address are used to send information to every ip address in the group. The Gateway acts sort of like the group’s controller. For instance, let’s say that your computer is on the ip address 192.168.1.3. When you send send information to the internet, your computer sends data to the gateway. Then the gateway sends that data on to the internet. The same thing is true when you get data from the internet. The internet sends data to the gateway, and then the gateway passes that information on to your computer. The gateway can be on any ip address in the range. Usually it is on the second ip address in the range, or the second ip address from the end of the range. The Subnet Address is always on the first ip address in the range, and the Broadcast Address is always on the last one in the range.

Okay I’m going to change our subnet from 255.255.255.0 to 255.255.255.240. Lets say the ip address of our computer is 192.168.1.132. How many ip addresses do we have? Well lets convert the subnet to binary. You should get the following binary subnet.

11111111.11111111.11111111.11110000

Okay, we have four zeros. So take 2^4 which equals 16. Alternatively 2*2*2*2 equals 16 as well. We have 16 ip addresses in our range. Well lets draw out our table. We can’t draw our ip address table without knowing where the range starts. This is how you figure that out. We take our subnet and AND it to our ip address converted into binary. Go ahead and conver our ip address into binary. You should get the following.

11000000.10101000.00000001.10000100 = 192.168.1.132

Now we AND that with our subnet. It is easy to think of ANDing as finding the truth of two numbers. Every 1 is true and every 0 is false.

True and true is true! 1 and 1 is 1.
True and false is false. 1 and 0 is 0.
False and true is false. 0 and 1 is 0.
False and false is false. 0 and 0 is 0.

So lets line up our subnet and our ip address.

11000000.10101000.00000001.10000100 = 192.168.1.132
11111111.11111111.11111111.11110000 = 255.255.255.240
———————————–
11000000.10101000.00000001.10000000

So look at the first column. We have a 1 and a 1. 1(true) and 1(true) = 1(true) The next column is the same thing. The thrid column is a 0 and a 1. 0(false) and 1(true) = 0(false). Continue doing that for the whole number. Now that we have our result lets take it and convert it back to base 10, so we can get the first ip address in our range.

11000000.10101000.00000001.10000000 = 192.168.1.128

Great! Now that we have our first ip address and we know that we have 16 ip addresses, we can make our table.

192.168.1.128 – Subnet Address
192.168.1.129 – Gateway
192.168.1.130 –
192.168.1.131 –
192.168.1.132 – Our computer!
192.168.1.133 –
192.168.1.134 –
192.168.1.135 –
192.168.1.136 –
192.168.1.137 –
192.168.1.138 –
192.168.1.139 –
192.168.1.140 –
192.168.1.141 –
192.168.1.142 –
192.168.1.1

43 – Broadcast Address

Makes you think.
That is all.