Volume 11, Issue 30 Atari Online News, Etc. July 24, 2009 Published and Copyright (c) 1999 - 2008 All Rights Reserved Atari Online News, Etc. A-ONE Online Magazine Dana P. Jacobson, Publisher/Managing Editor Joseph Mirando, Managing Editor Rob Mahlert, Associate Editor Atari Online News, Etc. Staff Dana P. Jacobson -- Editor Joe Mirando -- "People Are Talking" Michael Burkley -- "Unabashed Atariophile" Albert Dayes -- "CC: Classic Chips" Rob Mahlert -- Web site Thomas J. Andrews -- "Keeper of the Flame" With Contributions by: Fred Horvat To subscribe to A-ONE, change e-mail addresses, or unsubscribe, log on to our website at: www.atarinews.org and click on "Subscriptions". OR subscribe to A-ONE by sending a message to: dpj@atarinews.org and your address will be added to the distribution list. To unsubscribe from A-ONE, send the following: Unsubscribe A-ONE Please make sure that you include the same address that you used to subscribe from. To download A-ONE, set your browser bookmarks to one of the following sites: http://people.delphiforums.com/dpj/a-one.htm Now available: http://www.atarinews.org Visit the Atari Advantage Forum on Delphi! http://forums.delphiforums.com/atari/ =~=~=~= A-ONE #1130 07/24/09 ~ Win 7 to Manufacturing ~ People Are Talking! ~ Laptop Prices Dip! ~ The Ultimate C64 Talk! ~ Wal-Mart: More Laptops ~ Wii Sports Resort! ~ Upgrade Paths to in 7! ~ ~ Games on Demand! -* A Shortage of Cyber Experts! *- -* AOL Tries To Recapture Its 'Youth'! *- -* Microsoft/EU Trying To Settle Browser Case *- =~=~=~= ->From the Editor's Keyboard "Saying it like it is!" """""""""""""""""""""""""" Another LONG week - this is getting wearisome! The weather has been doing an incredible flip-flop this week - sunny and "warm" for a couple of days, and rainy and cooler the rest. No Spring, no Summer...yet. Very unusual weather patterns this year - and I'm not too happy about that! However, there isn't a damn thing that we can do about it. Lots of things in the political spotlight lately, but frankly, I'm not feeling up to debating those issues. After all, what would be the point? I have my views, you have yours, and the politicians are going to do what they want to do regardless of how you and I feel! So, instead of my debating the issues and making myself crazy, I think I'll just move on to this week's issue. Even the interesting technology stories have been dwindling over the past few weeks, but we'll take what we can! Until next time... =~=~=~= PEOPLE ARE TALKING compiled by Joe Mirando joe@atarinews.org Hidi ho friends and neighbors. Another week has come and gone, and things are no better with UseNet access for me. This week, I'll be using Google Groups (formerly DejaNews.Com), but I'm really not crazy about the way it's set up. If you have any thoughts/ideas/opinions/options, please let me know. Hmmm... what to talk about this week. Health care? Nah. We did that last week. The problem with talking about health care is that everyone is talking about something different. I said it last week and I'll say it again this week... we don't need health care reform. We've got the best, most widely available health care in the world. What we need is health care INSURANCE reform. I think I've about beat that one to the ground for now, no? Let's see... other topics, other topics. The sad state of UseNet access? Nah. Covered that. Oh! How about the weather? It's been really screwy here in the northeast lately. This is the middle of the summer and we should be having some hot, humid days. But so far, it's been well below average temp-wise. It's also been rainy. The most rainy July _I_ can remember for a July. Of course, since the temperatures have been below normal, you get those idiots who discount the possibility of global warming whining and/or complaining. The fact is that things ARE changing. I tend to think that the human race IS affecting the environment, but even if we're not, the environment IS changing. Ice caps and glaciers are melting, the oceans are warming, weather patterns changing. I don't give a tinker's damn WHY they're changing. They ARE. It's not going to matter why things are changing if the American great plains become desert and they start growing summer wheat in January in Manitoba. We'd still be in dire straights. And don't make the mistake of taking the "Save the Planet" stance either. Let's be very clear: The Earth has been here for quite a while. Whether we humans survive as a race or not will make little difference to old Mother Earth. We could, in fact, destroy every living thing on the planet and Mother Earth would still be here. She can afford to wait. When the time is right again, she'll start with whatever she 'decides' to put forth. It is US who would be but a memory, if that, in the long history of the Earth. Well, enough of that. Let's get to the news, hints, tips and info available from the UseNet. From the comp.sys.atari.st NewsGroup ==================================== I think we covered some of this before, but there's some interesting stuff here, and not much else in the NewsGroup this week, so bear with me, okay? Phantom asks about projects for the STacy: "In my spare time, I've been upgrading a STacy Laptop. Anyone else working on one that want to exchange info/ideas? [I'm] Currently looking for info on what others have done in upgrading the performance/etc, of this machine." Jo Even Skarstein replies: "I clocked it at 12Mhz. The only thing I had to do was to feed the ACIAs with 500kHz and the floppy controller with 2Mhz. It doesn't work with an external monitor connected though. If I still had a Stacy I would upgrade it to 4Mb, add an IDE interface and replace the HD with a CF-card. Then I would leave it alone. [grin]" Phantom asks Jo Even: "What type of IDE interface? Where can I get one? Did yours have a Bus Connector? My board has a place for one, is it as easy as soldering in the Bus connector or are there more components that would need installing? If I remember correctly, the Bus connector, suppose to be similar to the Mega ST Bus? Jo Even replies: "Nowadays I think you have to build one yourself... Another option would be a SatanDisk connected to the internal ACSI-connector. Then you can get rid of the ancient SCSI-disk and the SCSI interface. You can also replace the EL backlight with a reflective sheet and some LEDs. If you do this you get rid of the two major power consumers in the Stacy - the disk and the backlight. Fitting a battery might make sense now. I had an ICD AdSpeed16 in one of my Stacys. It worked fine. A tip when removing the old 68000: Cut all the legs, then desolder each leg individually. If you don't do this, there's a good chance that you'll lift or damage some tracks on the motherboard. Guillaume Tello adds: "I really would be interested in such projects! Upgrading the STACY to 4Mb (I have seen a web page) looks a bit hard for me: the guy says that you have to unsolder the previous ram chips. But something to change the LCD screen would be great!" Phantom explains what he'd like: "The one I have already has the 4 megs. (from Factory) I have a switchable 8/16mhz 68000 board (Fast Technologies), that I plan on installing if it will work. Have to desolder the original 68000 chip. Before I do that, anyone know if there would be a problem running it at 16mhz? Changing out the LCD to something better would be nice. And if one could get some type of graphics card to work in there...." Guillaume tells Phantom: "Not sure about having to unsolder the previous Rams. If it is a original 2 meg machine, I thought it was possible to upgrade by just plugging in the right memory. Not sure if that's correct. The last 2meg one I saw did seem to have a socket in the Ram area. Finding the right memory board may be a problem. If you could find a broken 4meg unit, all you have to do is just unplug the whole board which holds TOS and the RAM and plug it back into the good machine. As you probably know, It is just a large single board that holds the TOS and RAM with 2 connections that plug into the main board. Similar to a Falcon Ram Card in a way, but on a larger scale and with the TOS of course. My 4meg Ram does have some wire or jumper connections." Jo Even adds: "... There is a door on the side of the STacy, and holes for the connector on the MB. They must have had something in mind and dropped it for what ever reason. Probably due to lack of power with the battery. Thought I would explore the possibilities while I have it apart and doing the CPU upgrade and etc. I have paper info, that shows the Bus Port connected. The article describes it as a "special bus port" with the same connections as the internal Mega Bus port; the pinouts are different from the Mega plug, but electrically, it's the same. I would think any thing that works on the Mega ST Bus would work on the STacy if the pins are wired right. Why would they have the pins different?" Well folks, that's it for this time around. Let's hope that there's a upsurge in posts for next week. Until then, keep your ears open so you'll hear what they are saying when... PEOPLE ARE TALKING =~=~=~= ->In This Week's Gaming Section - Xbox Live's Games on Demand! """"""""""""""""""""""""""""" Ready for PS4 & Xbox 720?! Wii Sports Resort! =~=~=~= ->A-ONE's Game Console Industry News - The Latest Gaming News! """""""""""""""""""""""""""""""""" Xbox Live's Games on Demand to Debut Next Month Microsoft promised games-on-demand for the Xbox 360 at last month's E3 show, and now it's ready to launch the service on August 11. The Xbox Live Fall Dashboard update will feature Games on Demand, a service that (at launch) will offer more than 30 downloadable Xbox 360 games, including Assassin's Creed, BioShock, and Mass Effect. Microsoft plans to add additional games on an ongoing basis. Pricing hasn't been announced, so it's unclear whether the downloadable games will cost less than the boxed versions sold at brick-and-mortar retailers. The August update also adds goodies for Xbox live users who subscribe to Netflix. These include improved video streaming and the ability to watched movies and TV shows simultaneously with other Xbox Live users, Microsoft says. Lastly, a new Avatar Marketplace lets you outfit your digital alter ego with branded apparel from popular fashion labels and Xbox 306 games. Conspicuous in its absence is the previously announced support for Facebook, Twitter, and Last.fm, which reportedly is scheduled for an Xbox Live update sometime this fall. Nintendo Doubles The Fun in `Wii Sports Resort' How do you create a sequel to a product that changed the way people think about video games? In November 2006, "Wii Sports" - the software that's packaged with Nintendo's Wii - introduced the U.S. audience to a new way to play. It served as a perfect demonstration of the new console, putting the Wii's motion-sensing controls at the service of familiar pastimes like golf and tennis. And it was so easy to pick up and play that people who were once intimidated by video games started Wii bowling leagues. With more than 45 million copies in circulation, "Wii Sports" has probably been played by more people than any game in history. A subsequent minigame collection, "Wii Play," sold 23 million copies. So Nintendo has high expectations for "Wii Sports Resort" ($49.99), and there's no reason to think the company will be disappointed. If you're a fan, you won't be disappointed either. "Resort" is bigger, boosting the number of events from five to 12. The three sports that have returned (golf and bowling from "Wii Sports," table tennis from "Wii Play") are sharper, thanks to the new Wii MotionPlus accessory. And the whole package is as lighthearted, fast-paced and accessible as the original. The package comes with one MotionPlus device, which attaches to one end of the Wii remote and gives it more precise control. (It's available separately for $24.99.) When bowling, you can flick your wrist to give the ball some spin. Table tennis feels more like the real thing. The updated version of golf is more demanding: You really need to focus on keeping your swing straight or you'll be digging a lot of balls out of the rough. The most engrossing of the new events is archery. The Wii remote is your bow, and you pull back your virtual arrow with the nunchuck. Nailing a moving bull's-eye from the longest distance is a genuine accomplishment. Frisbee may be the most challenging entry. It takes a while to master the wrist-snap required to make accurate throws, but once you get the knack of it, you can spend hours taking on the Frisbee golf courses. Swordplay, basketball and "air sports" (flying and skydiving) are easier to pick up but not quite as satisfying. I'm less enamored with a trio of tedious water events, canoeing, wakeboarding and "power cruising" (jet skiing). And cycling feels nothing like the real thing, since you're using your arms to pedal. Each sport has a decent solo mode, and achieving certain goals opens up new game variations. But "Wii Sports Resort" is designed for more than one player. Like the original, it's accessible to players of any age or skill level, so anyone at your family gathering can compete. Not all the games are keepers, but there truly is something for everybody. Three stars out of four. Are You Ready for The PlayStation 4 and Xbox 720? Epic Games Vice President Mark Rein said in a recent interview that although the video game industry has historically seen console refreshes every four to six years, there's no need to follow that strategy this time around. Consumers just aren't ready yet, he said. "Over half the users who played Gears of War 2 so far do not have HDTVs," Rein told Eurogamer in an interview. "My point is, of the systems that are out there now, the majority of them aren't plugged into HDTVs. So there's no way we're ready for the PlayStation 4 or the Xbox Whatever." Rein's comments fall in line with what Sony has been touting as the PlayStation 3's 10-year lifecycle. The hardware maker has said on numerous occasions that the rapid console updates of the past simply don't apply in this generation. That's why Sony, even though it's trailing far behind the competition today, believes it can still win this console war. It believes that its console is the only device on the market that has staying power. For a while, many video game pundits (myself included) thought that argument was nonsense. Surely there is something bigger and better on the horizon, right? Rein doesn't think so. He doesn't believe Microsoft will release a high-powered Xbox 720 to replace the Xbox 360. On the contrary, he thinks the future of the Xbox is based solely in Project Natal, motion-detecting technology to control a gaming system with no controller required. "It's called Natal," Rein said. "That is the next Xbox." Microsoft is saying the same thing. Just last week, the head of Microsoft Game Studios, Phil Spencer, said that when Project Natal is made available, it will revolutionize the market. "When Natal comes out, it will feel like a new generation has arrived," Spencer said. "I see it as like the launch of the Xbox 360 back in 2005--there will be a launch portfolio of games to support it." So perhaps Rein is right. Maybe the PlayStation 4 and the Xbox 720, while still possible, might not make their way to store shelves for quite some time. It makes sense. The Xbox 360 and PlayStation 3 are network- and HD-ready. Thanks to firmware upgrades, the hardware companies can release incremental improvements to keep the consoles alive and well. Since the future is both online and in HD, what makes an Xbox 720 and PlayStation 4 so important? Moreover, developers face some real challenges when a new console is released. They need to learn how to exploit the hardware, which tends to lengthen development and cost the company more cash. And even though the Xbox 720 or PlayStation 4 might be able to provide Pixar-like graphics, that might be far too expensive for developers, causing most companies to balk at going that far with graphical prowess. While most gamers might want more from their consoles, sometimes, it's just not financially feasible. Then there are consumers. If they've yet to capitalize on this generation's technology, why should the industry rush to bring out new hardware? Maybe the industry should allow consumers to catch up and /then/ decide how to move forward. But in the end, it's demand that will dictate the future of this space. And that demand comes from you. So, what do you say? Are you ready for the PlayStation 4 and the Xbox 720? Or would you rather wait until you've fully exploited the PlayStation 3 and Xbox 360? =~=~=~= ->A-ONE Gaming Online - Online Users Growl & Purr! """"""""""""""""""" The Ultimate Commodore 64 Talk @25C3 I am going to present The Ultimate Commodore 64 Talk (Everything about the C64 in 64 Minutes) at the 25th Chaos Communication Congress 2008 (25C3) in Berlin on 29 Dec 2008. The following article, which will be printed in the Congress Proceedings, is supposed to give you an overview of what I am going to talk about. If you cannot attend 25C3, you will be able to watch a recoding afterwards, which I am going to link to. And yes, it is a lot of information, and it’ll be about 256 slides (in 64 minutes) - that is exactly the challenge. If you don’t believe I cannot present all this in a way that the audience can understand it: Watch it! Retrocomputing is cool as never before. People play C64 games in emulators and listen to SID music, but few people know much about the C64 architecture and its limitations, and what programming was like back then. This paper attempts to give a comprehensive overview of the Commodore 64, including its internals and quirks, making the point that classic computer systems aren’t all that hard to understand - and that programmers today should be more aware of the art that programming once used to be. The company that became Commodore Business Machines was founded in 1954 by Jack Tramiel. The company specialized on electronic calculators, and in 1976, Commodore bought the chip manufacturer MOS Technology and decided to have Chuck Peddle from MOS evolve their KIM-1 computer kit (a design that demos their new MOS 6502 8 bit CPU) into the Commodore PET series: computers with built-in monitors for the home, school and small business market that ended up competing with devices from Atari and Apple. In 1981, Commodore introduced the VIC-20, a 5 KB stripped down monitorless computer-in-the-keyboard design based on the PET for the home computer market. This was followed by the (incompatible) higher-end Commodore 64 in 1982 that included more PET features, came with 64 KB of RAM (an immense amount compared to the rest of the market) and was very aggressively priced at US$595 beating the competition by a factor of two. This was made possible by designing and building most of the system in-house. Although some features of the C64 were taken from the PET models of the time, it had to be connected to a TV set, which only made 40 columns of text possible (as opposed to then-current 80 columns on the PET). Also, the BASIC 4.0 codebase was stripped down to the old 2.0 feature set to make it fit into 8 KB. In the beginning, the C64 did well in the competition. The superior but compatible C128 from 1985 did well, too, but was never more popular than the C64, which continued to be sold. The direct successor to the low-end VIC-20, the 1984 Plus/4 and its siblings, the C16 and the C116, failed, mostly because they were incompatible with the C64, which at that time already had a remarkable software library. A few years after the introduction, the C64 was still offered as a low-end alternative to the Commodore Amiga, and while it became less popular in the USA, it gained more and more popularity in Europe. In the early 90s, when manufacturing costs of a C64 were as low as $25, it gained a second life in Eastern Europe. Production did not end until the liquidation of Commodore in 1994. According to the 1993 Annual Report, 17 million C64 had been produced in by then, as well as 4.5 million C128. A C64 only needs to be connected to power and a TV set (or monitor) to be fully functional. When turned on, it shows a blue-on-blue theme with a startup message and drops into a BASIC interpreter derived from Microsoft BASIC. In order to load and save BASIC programs or use third party software, the C64 requires mass storage - either a datasette cassette tape drive or a disk drive like the 5.25 Commodore 1541. Unless the user really wanted to interact with the BASIC interpreter, he would typically only use the BASIC instructions LOAD, LIST and RUN in order to access mass storage. LOAD8 followed by LIST shows the directory of the disk in the drive, and LOADfilename8 followed by RUN would load and start a program. If a tape drive is connected, LOAD and RUN will launch the first program on tape - pressing SHIFT and the RUN/STOP key has the same effect. By default, typing characters without SHIFT will result in upper case characters being shown on the screen. This can be changed by pressing the Commodore key and SHIFT at the same time, which switches to the upper/lower character set. This behavior is due to the fact that the first PET only had uppercase characters, and that BASIC required keywords unshifted - but all tutorials taught them as uppercase. This is also the reason why in Commodore’s version of ASCII, called PETSCII, the codes for uppercase and lowercase characters are reversed. The text based user interface is not a line editor, but a screen editor, i.e. the cursor can be moved freely on the screen, and pressing RETURN on a line with existing text will present the text to the application as if it were just typed in. While a physical screen line is only 40 characters, the screen editor logic can extend it to a logical 80 characters - whenever a character is entered on the 40th column, the rest of the screen is moved down by one line, opening a line that extends the previous line to 80 characters. The C64 screen editor supports selecting one out of 16 color for the foreground text by pressing the key combinations Ctrl+1 to Ctrl+8 and Commodore+1 to Commodore+8. Reverse text mode can be turned on and off with Ctrl+9 and Ctrl+0. The C64 has a whole range of connection possibilities. On the side, it has two 9 pin Atari-style joystick connectors that can also be used for a mouse, light pens or paddles. On the back, there is the expansion port, which exports the complete processor bus, allowing not only game cartridges but also cartridges with I/O chips that map themselves into the CPU’s address space - or even cartridges that completely replace the CPU. For a conventional TV connection, there is an RCA connector that outputs an RF signal. For monitors, there is an extra DIN connector that carries separate chroma, luma and audio signals (although not 100% S-Video, it is compatible with a lot of S-Video equipment). For connecting Commodore compatible printers and disk drives, there is a DIN connector for the IEC bus. There is also a dedicated connector for datasette drives. The User Port consists of several GPIO pins that can be used for custom hardware projects, or as a RS-232 port (with TTL levels), for which support exists in the ROM. On the C64 motherboard, there is a dedicated IC each for the main tasks. There is the MOS 6510 CPU, eight 64 KBit RAM chips (later consolidated into 2), three ROM chips with KERNAL (I/O library), BASIC and the character set (KERNAL and BASIC were later consolidated), two 6526 CIA I/O controllers (one for keyboard and joystick, one for the IEC bus and the user port), the 6581 SID sound chip, and the 6567/6569 VIC video chip, as well as the RAM chip that holds the 512 bytes of Color RAM. All non-RAM chips are custom chips designed manufactured by MOS, Commodore’s inhouse chip company. Address Space The 8 bit C64 design has a 16 bit address bus, allowing the CPU to address 64 KB of memory. Since the C64 has 64 KB of RAM, filling the complete address space, ROM and I/O chips are mapped into regions of the address space that are shared with RAM: The CPU can switch these regions between RAM and a second or third mapping. These regions are as follows: * $0000-$9FFF: RAM * $A000-$BFFF: RAM or BASIC ROM * $C000-$CFFF: RAM * $D000-$DFFF: RAM or memory mapped I/O chips or character ROM * $E000-$FFFF: RAM or KERNAL ROM In contrast to CPUs like the Z80 and the 8086, and like most modern CPUs, I/O devices are memory mapped on the C64’s 6510 CPU. The mapping is as follows: * $D000-$D3FF: VIC video controller * $D400-$D7FF: SID sound controller * $D800-$DBFF: Color RAM * $DC00-$DCFF: CIA 1 I/O controller * $DD00-$DDFF: CIA 2 I/O controller * $DE00-$DFFF: for extensions on the expansion port 6502 CPU The CPU inside the C64 is a 0.985 MHz (on PAL) MOS 6510, which is a close derivative of the well-known 8 bit little-endian MOS 6502. The 6502 was introduced in 1975 by MOS Technology, a company formed earlier the same year by former Motorola engineers, with engineering headed by Chuck Peddle. The philosophy of the 6502 was to have a reduced instruction set and a small register file, making it simpler and faster than CPUs like the Z80 at the same clock speed, as well as cheaper to manufacture. Unlike most modern CPUs, the 6502 does not have a set of general purpose registers. Instead, it has a single accumulator A (for arithmetic and logic), two index registers X and Y (for incrementing, decrementing and indexing memory) and a stack pointer. All these registers are 8 bits. The processor status, consisting of the negative (N), overflow (V), break (B), decimal (D), interrupt (I), zero (Z) and carry (C) flags is exposed as register P. The program counter (PC) is 16 bits wide. The fact that the stack pointer is 8 bit means that the stack is confined to the area between $0100 and $01FF in the address space, i.e. the upper half of the effective stack pointer is hard-coded to $01. There is another special area in the address space: The first 256 bytes, at $0000 to $00FF are referred to as the zero page (ZP). Many instructions support special encodings for zero page addresses, which saves one byte in the instruction encoding as well as at least one cycle of execution time. This can be seen as an extension of the register file to another 256 (though external) registers. All opcodes are one byte, and have 0, 1 or 2 byte operands. The 8×8 opcode matrix is somewhat logical (e.g. branch instructions are encoded as $10, $30, $50), but there is no easy rule to construct the opcode table. Nevertheless, the opcode table is a minimal encoding for optimal decoding in the 6502’s internal PLA ROM. Instruction Set The instruction set is very streamlined, and avoids redundancies. There are load instructions (LDA/LDX/LDY to load A, X and Y respecively), store instructions (STA/STX/STY), read-modify-write instructions (logic: ASL/LSR/ROL/ROR, count: INC/DEC), arithmetic (ADC/SBC; note that these always include the carry: CLC/ADC is a regular addition, and SEC/SBC is a regular subtraction, because of the one’s complement logic), compare (CMP/CPX/CPY; these are subtractions without storing the result), logic (AND/ORA/EOR, and BIT, which is AND without storing the result), as well as branch instructions, flag manipulation, register transfer and stack manipulation. Addressing Modes Each instruction supports one or more addressing modes. Common instructions like LDA (load accumulator) support more addressing modes than less common ones (BIT). * The immediate addressing mode is indicated with a # sign: LDA #$17 loads the immediate value of $17 into the accumulator. * Absolute addressing specifies a 16 bit address as an operand: LDA $0314 loads from the memory address $0314. * Zero page addressing is an optimized version of absolute addressing: LDA $02 will read from address $0002 in memory, but the instruction can be encoded more tightly, and execution is faster. * Absolute-X-indexed addressing reads from a specified address, to which the contents of the X register is added. LDA $0200,X reads from the address $020A, in case X is $0A. This allows reading from tables. * Absolute-Y-indexed is the same thing, but with the Y register. * Zero-Page-X-indexed is an optimized version of Absolute-X-indexed. LDA $F0,X reads from the Xth location in a table stored starting at $00F0 in memory. Note that all zero page addresses will wrap around, so $F0 + $10 = $00. * Zero-Page-Y-indexed is the same thing, but with the Y register. * Zero-Page-X-indexed-indirect adds X to a specified zero page address, reads a 16 bit pointer from the resulting address and finally accesses memory at that address. So LDA ($80,X) will read from an address specified by the array of pointers at $0080 and the index X into the array. This addressing mode is rarely used. * Zero-Page-indirect-Y-indexed treats two consecutive bytes in zero page as an address and adds Y to the address. LDA ($14),Y will read from $E020, if the address stored at $14/$15 is $E000 and Y is $20. This addressing mode is the most convenient way to work with pointers, as no register can hold 16 bits. Register Transfer and Stack There are several 1 byte instructions without operands that move data between registers. TAX, TXA, TAY and TYA move between A, X and Y. TSX and TXS copies between X and the stack pointer. The stack pointer always points to the next address that is written to. This means that an empty stack has a stack pointer of $FF, and pushing a value first writes the value and then decrements the stack pointer. The 6502 can move the accumulator from and to the stack (PHA/PLA), as well as the processor status P (PHP/PLP). Control Transfer Next to the absolute JMP instruction, there is an indirect version that jumps over a vector (e.g. JMP ($FFFC)). JSR (jump to subroutine) only has an absolute version, and stores the address of the next instruction minus one on the stack. RTS (return from subroutine) takes the address from the stack, adds one, and moves it into the program counter. The 'minus one' logic was chosen because it could save one cycle in the implementation of JSR. A hardware interrupt, unless disabled by a set interrupt (I) flag, pushes the address of the next instruction minus one (just like JSR), pushes the processor status afterwards, disables interrupts, and jumps over the vector at $FFFE/$FFFF. RTI return from interrupt) is the same as the combination of PLP and RTS. BRK causes a software interrupt and behaves the same as a hardware interrupt, except that it sets the B flag in the processor status on the stack to 1 (a hardware interrupt sets it to 0). Note that the B flag does not exist in the actual processor status register, the corresponding bit is only used in a status byte on the stack. From a software perspective, NMIs behave the same as IRQs, but they cannot be masked, and they use the $FFFA/$FFFB vector. The reset vector is at $FFFC/$FFFD. Flags and Branches All load and logic instructions set N and Z accordingly, shift instructions also modify C, and arithmetic instructions touch N V, Z and C. The D (decimal), I (interrupt disable) and C flags can be set and cleared programmatically (CLD/SED, CLI/SEI, CLC/SEC), while the V flag can only be cleared (CLV). Conditional branches are possible based on the value of the negative (BPL/BMI), overflow (BVC/BVS), zero (BNE/BEQ) and carry (BCC/BCS) flags. Branches encode an 8 bit relative offset and can therefore reach code in the area of +127 and -128, counting from the byte after the branch instruction. Since a compare is the same as a subtraction, BCC is a branch on (unsigned) below, and BCS is a branch on above-or-equal. NOP NOP (no operation) does nothing. Its encoding is $EA. Decimal Mode If the D flag is set, all ADC and SBC operations will be BCD-adjusted afterwards, i.e. $09+$02 won’t be $0B, but $11, since 9+2=11. The BCD correction circuit has been patented in US patent 3,991,307. Cycle Counting It is quite straightforward to find out how many cycles an instruction takes. As a rule of thumb, an instruction takes as many cycles as the number of memory fetches it has to perform, but at least two. Therefore, single-byte opcodes (one byte fetches; NOP/TAX/INX etc.) as well as instructions with immediate operands take two cycles. Zero page instructions take three memory accesses (opcode, address, data), so they are three cycles. Absolute instructions take four accesses (opcode, address low, address high, data), so they are four cycles. Read-modify-write instructions (INC/DEC/shift/rotate) are an exception: They require 4 memory accesses for the zero page case and 5 otherwise, but they take 5 and 6 cycles, respectively. Branches take 3 cycles if they are taken and two if they are not taken. And extra cycle has to be added if the branch crosses a page boundary. JMP is 3, push is 3, pull is 4, JSR and RTS are 6 each. All other timings can be looked up in the 6502’s reference, but they are very easy to memorize. Common Tricks The BIT instruction exists in a two-byte (immediate operand) and three-byte (absolute operand) variant. Since BIT only changes the flags, it effectively skips one or two bytes in the instruction stream. This can be used to replace a two-byte branch or a three-byte JMP with a one-byte BIT if only one or two bytes have to be skipped. The architecture allows safe self-modifying code, so a common optimization for copy loops is to use LDA $nn00,X and STA $mm00,X, looping X from $00 to $FF and then incrementing the bytes that encode nn and mm for the next page. Compared to a LDA (zp1),Y: STA (zp2),Y sequence, this gets the inner loop down from 16 cycles (5 LDA, 6 STA, 2 INY, 3 BNE) to 14 (4 LDA, 5 STA, 2 INY, 3 BNE). A PHA/PLA combination is 7 cycles, while an STA/LDA combination in the zero page is 6 cycles, so unless there is no free zero page space, PHA/PLA should be avoided to quickly store a value. Using an absolute store to write the value into the operand of a future immediate load (i.e. self modification) is the same speed at the zero page solution, but does not waste zero page space. An elegant way to store a flag is to have it in bit #7 of a zero page address. While a load/store combination has to be used to set the flag (or the slower, but register-preserving SEC/ROR combination), it can be cleared with a simple LSR (5 cycles) and tested with BIT (3 cycles), without affecting register contents. Since the 6502 is so register starved, only 3 bytes can be passed to a subroutine in registers. Also, the stack is small, and accessing it is slow, so stack frames as seen on modern architectures are very uncommon. Many applications and libraries (e.g. GEOS) use a dedicated area in the zero page as virtual registers. The 6502 has no instructions for multiplication, division or floating point arithmetic. Most 6502-based computers have a BASIC interpreter in ROM though, and they typically include a math and floating point library. Bugs and Quirks The original 6502 implementation has a series of bugs and other anomalies that have never been fixed in MOS chips (not counting the 65CE02, which was only used in Amiga peripherals). The indirect version of JMP loads the program counter from the wrong address, if the vector’s address lies on a page boundary: JMP ($23FF) will read the address from $23FF and $2300 instead of $23FF and $2400. When in decimal mode, the negative flag reflects the original binary result, not the effective decimal result. If a software interrupt (BRK) and a hardware interrupt occur at the same time, the BRK is dropped. STA with the absolute-indexed addressing mode takes first reads from the absolute address without the index register added, and then reads again from the correct address. LDX #$07 STA $DC0D,X will first read from $DC0D, discard the result, and then write to $DC14. On the C64, this read form $DC0D would ACK all pending CIA 1 interrupts, while it is only supposed to write to $DC14. Read-modify-write instructions with absolute addresses first read the value, but one cycle before they store the result, they store the original value again. On a C64, this can be seen when incrementing the screen border color at a defined area of the screen, as every write to the register will cause a tiny gray dot on the screen (on later HMOS versions of the VIC). When this is used with certain I/O ports, this can have other side effects. The latter two quirks have been used heavily for obfuscating copy protection software. Instruction decoding in the 6502 is done by a PLA that compares the current cycle number within the instruction and the current opcode against a ROM of 130 mask lines, of which any number can fire independently. The outputs of these lines are then fed into components like the ALU, bus control, register control and program counter logic. The instruction set only consists of 151 defined opcodes, and since handling the remaining 105 opcodes as NOPs or traps would have required extra lines in the PLA, they will match against some lines that were meant for instructions with similar opcodes. Some of these 'illegal opcodes' lead to useful results and are used in some software (SAX = store A & X), but most of the instructions make little sense (LAS = loads from memory, ANDs it with S and stores it into A, X and S), and some even lock up the CPU, disabling IRQs and NMIs (CRA/KIL). The MOS 6510 Except for the pin layout, the MOS 6510 that is used in the C64 differs from the generic MOS 6502 in two ways: It can make the bus tri-state when not used, so the VIC can use it, and it has a 6 bit I/O port built in, which can be controlled using zero page locations 0 and 1. In register 0, each bit from 0-5 set it to output if 1, and to input if 0. Bits 0-5 in register 1 are the actual I/O pins. On the C64, bits 0-2 are outputs and control bank switching, they turn the ROMs and the I/O area on and off. Bits 3-5 go to the tape connector and control the motor and the data sent to the head, and detect whether a key on the tape deck is pressed. BASIC Microsoft had a strong position in the market for (mostly ROM) BASIC interpreters in 8080-based home computers when the MOS 6502 was released in 1975, so they rewrote their interpreter in 6502 assembly. Microsoft BASIC was pure 6502 code with a minimal character I/O interface to the machine’s 'monitor', i.e. I/O library. Commodore decided to license the interpreter for the 1977 PET and extended it slightly to interface with their disk and tape libraries. Commodore BASIC was very buggy, so they went back to Microsoft for an update, which, with the Commodore changes re-applied, shipped in newer PETs as BASIC V2. For version 4, Commodore added several instructions for more conveniently dealing with disk. Being a low-end machine, Commodore took the bugfixed BASIC V4 codebase and removed all features after V2, making it independent of the machine’s graphics and sound features again, and fitting it back into 8 KB, and shipped this version on the VIC-20. The Commodore 64 got the almost exact same version, but it runs at a different memory address ($A000-$BFFF). Microsoft BASIC is a line-based editor, that is, lines can be shown with the LIST command, and they can be modified by re-typing them. This integrates nicely with the KERNAL screen editor: The cursor can be moved up to LISTed lines, the lines can be modified, and when RETURN is pressed, the whole line is fed into BASIC again. A nice feature of this and later versions of Commodore BASIC is the fact that all important parts, like the tokenizer, the detokenizer and the interpreter loop jump over a jump table in RAM before they do their work, allowing the user to extend BASIC arbitrarily. The most well-known BASIC extension is Simons’ BASIC, a cartridge that maps 8 KB of extra ROM at $8000-$9FFF. KERNAL The C64 has an 8 KB I/O library at $E000-$FFFF which is utilized by BASIC, but is intended to be used by other applications as well. All Commodore 8 bit systems have a standardized library call interface in the form of jump tables at the very top of memory that call into machine-specific functions for I/O. KERNAL is started form the RESET vector, initializes the machine, sets up an interrupt service routine that handles the keyboard, animates the cursor and does the real time clock. The C64 has a hardware clock in each of the CIA chips, but KERNAL has not been updated to use this feature since the VIC-20. KERNAL provides an abstract character I/O interface to a number of devices. All devices support open, read, write and close. The open call takes three parameters: The logical file number (there is a maximum of 16 channels), the device number and the secondary address. There are 32 device numbers statically assigned to the devices. The 8 bit secondary address can signal something to the device, like speed or an operation mode. Some devices (tape and IEC) support an optional filename. Device 0 is the keyboard. While KERNAL exports raw key presses, the keyboard can also be accessed through character I/O, which will go through the screen editor and replay all characters on the screen that are in the line of the cursor, regardless of whether the user typed them or they had been there before. Device 1 is the tape drive. KERNAL reads and writes blocks of data at a time and buffers them for character I/O. Device 2 is RS-232. KERNAL contains a very sophisticated (but rarely used) software RS-232 implementation that supports up to 2400 baud. Device 3 is the screen. KERNAL interprets special codes, manages the cursor position and handles scrolling. Devices 4 and greater will be directed to the IEC bus. By convention, devices 4 to 7 are printers and plotters, and devices 8 to 30 are floppy drives or hard disks. KERNAL allows interacting with the IEC bus manually by sending TALK and LISTEN requests to the bus. GEOS While KERNAL is a minimal character-based operating system in ROM, there is also a disk-based operating system with a graphical user interface for the C64. GEOS was released by Berkeley Softworks in 1986 and Commodore bundled it with the C64 for some time. The GUI, which can be controlled by a joystick or a mouse, runs in 320×200 graphics mode and resembles early versions of MacOS. GEOS is a 16 KB library that includes an optimized disk interface (faster, support for timstamps, icons and multi-fork 'VLIR' files), library code for drawing to the screen, high level UI primitives for menus, buttons and dialog boxes (with callbacks) and a simple memory swapping facility. Furthermore GEOS allows input and printer driver plugins, as well as proportional fonts in different sizes. Internally, GEOS has a jump table to its library routines that consists of about 150 entries. GEOS came with applications like GeoPaint and GeoWrite; Berkeley Softworks themselves offered solutions like GeoPublish and GeoCalc, and more software was available from third parties. GEOS’ only requirement is a 1541 disk drive, but a 3.5" 1581 drive, a RAM extension or one of the later hard drives helped speed it up a lot. 6526 CIA The C64 has two identical 6526 CIAs (Complex Interface Adapter) that are mostly used for I/O. One CIA features 16 general purpose I/O pins (8 bit port A and 8 bit port B) that can be used either as an input or an output, two programmable timers and a real-time-clock. The timers have 16 bit counters and count down by one either on each clock cycle, or on an external event, or on a timer A underflow (in the case of timer B). This allows concatenating the timers to one 32 bit timer. On an underflow, the CIA can be programmed to cause an IRQ or to send data through a serial shift register. The CIA also supports receiving data through a shift register. The real-time-clock has a resolution of 1/10 of seconds and supports generating interrupts at a certain time. CIA 1 is hooked up to the keyboard and the joystick ports. Since the keyboard consists of 64 keys (plus SHIFT LOCK, which is parallel to the left SHIFT key, and RESTORE, which is directly connected to the CPU’s NMI line), these can be laid out in a 8×8 matrix of lines, key presses connecting the intersections. One side of the matrix is connected to port A (output), and the perpendicular side is connected to port B (input). The keyboard driver can now write the values of $01, $02, $04 etc. in port A and test the input of port B to see which keys are pressed. The two joysticks are connected in parallel to port A and port B, so they can cause spurious keyboard events. CIA 2 is hooked up to the IEC bus, and I/O lines control the VIC bank. The rest is exposed on the user port, and can be used for RS-232. KERNAL uses CIA 1 for the 60 Hz system timer, but, apart from the ports, doesn’t use any of the extra features of either CIA. 6581 SID The SID (Sound Interface Device) is a whole topic of its own. 6567/6569 VIC The video chip inside the C64 is called the MOS 6567/6569 VIC-II (Video Interface Controller) - the video chip in the VIC-20 had been the original VIC, and was the reason for the marketing name of the VIC-20. The VIC supports a 40×25 text mode, a 320×200 bitmap mode, 16 colors and 8 sprites - all of these features have lots of sub-modes and options. The amount of memory the VIC can address is 16 KB, and while by default, it accesses the first 16 KB of the C64 RAM, it can be configured to use any of the four banks. The 16 colors of the VIC are divided into two sets of eight. The first eight are the more important colors, as some modes only support the first eight. The colors are, in the original order: black, white, red, cyan, purple, green, blue, yellow, orange, brown, pink, dark gray, gray, light green, light blue and light gray. Character Mode The C64 has two built-in character sets that the VIC can access. They can be shown on the screen by writing the numbers 0 to 255 into screen RAM (at $0400 by default). The default font has uppercase characters and lots of line-drawing symbols in the lower 128 characters, and the second half consists of the same characters, but inverse. The alternative font has upper- and lowercase characters and omits some of the symbols. The foreground color of the characters can be changed by writing the color numbers into the Color RAM, which is located at $D800-$DBFF. There is one byte per character, but only the lower 4 bits are actually preserved by Color RAM. Each character is 8×8 pixels, and stored as eight bytes in the character ROM (or RAM, if a user-defined character set is enabled), one line being one byte. A 1-bit will take the color from the Color RAM ($D800-$DBFF), and a 0 bit will take it from the global background color register ($D021). The pixel matrix is determined by looking up the character index in the screen RAM (at $0400-$07FF by default) and consequently looking up the pattern the current character set (the VIC sees the default font at $1000, although for the 6502 it is invisible there). In Extended Color Mode (ECM), it is possible to chose between one of four background colors (registers $D021 to $D024) with the upper two bits of the character index, but then only 6 bits will be used to look up the character pattern, decreasing the number of possible characters to 64. The built-in (uppercase) character set is well-suited for this: While it is similar to the ASCII encoding, it has the uppercase characters mapped to codes $01 to $1A, so the most important characters are within the first $40. Multi-Color Character Mode allows up to four colors per character and is intended for tile-based games, like platformers. If bit 3 of the value in Color RAM is 0, then the character gets displayed just like in non-multicolor mode, but colors are restricted to the first eight. If bit 3 is 1, then pairs of horizontally adjacent bits are combined in their meaning: 00 represents the screen background ($D021), 01 is the second background register ($D022), 10 is the third background register ($D023), and 11 is the color specified in bits 0-2 of the Color RAM. Pixels in these characters are twice as wide, so the resolution of a character is 4×8. Bitmap Mode In hi-res graphics mode, the VIC supports a resolution of 320×200, which uses the same pixel frequency as 40×25 character mode (40*8=320, 25*8=200). The bitmap can reside at $0000 or $2000, and the VIC reads one byte for 8 pixels. But hi-res mode does not only support monochrome graphics: The foreground and background colors of each 8×8 tile are taken from the high and low nibble of screen RAM, which would otherwise be unused. Color RAM is not used in this mode. The encoding of the bitmap is identical to the encoding of a character set, making it a non-linear framebuffer: The first eight bytes of the bitmap represent the pixels in the tile at character position (0,0), the second eight bytes represent the tile at character position (1,0), which is pixel position (8,0), and so on. This layout makes pixel addressing in software slower. In Multi-Color Bitmap Mode, the horizontal resolution is halved to 160×200, and pixels are twice the width. Every set of two bits in the encodes one of four colors per tile: 00 takes it from the global background register ($D021), 01 and 10 take it from the upper and lower nibble of screen RAM, respectively, and 11 takes it from Color RAM. Scrolling The VIC supports hardware X and Y scrolling by 0 to 7 pixels. Since the 40th column is half visible and another column left of the first column is half-visible when the horizontal shift register is set to e.g. 4, a 41th column would be needed. Instead, it is possible to switch the screen to 38 column mode, i.e. the whole screen is a little narrower, and more border is shown on the left and on the right. The screen can also be switched from 25 to 24 lines the same way. Sprites The VIC has eight hardware sprites (also called MOBs, movable objects). Each sprite is 24×21 pixels, which is encoded in 63 bytes. Set bits will be drawn in the sprite’s individual foreground color, and cleared bits will be transparent. The index to the sprite’s bitmap data in memory is an 8 bit value that is read from the last 8 bytes of screen RAM - since the screen is only 1000 characters, the last 24 characters of the $0400=1024 bytes area would otherwise be unused. There is also a multicolor mode for sprites, which makes pixels twice as wide and decreases the horizontal resolution to 12 pixels. In this mode, 00 is still transparent, and 10 encodes the sprite’s individual color. The codes 01 and 11 take the color out of the sprite multicolor registers ($D025 and $D026), which are shared among all sprites. Sprites can be positioned at arbitrary pixel positions on the screen, and overlap. In this case, sprites with lower numbers have priority over sprites with higher numbers. Each sprite can either be shown in front or behind background pixels. Sprites can be X- and Y-expanded by a factor of two, and collision of two sprites or of a sprite and background pixels is detected by hardware: Whenever two non-transparent sprite pixels are drawn at the same position on the screen, they have collided. Whenever a non-background pixel is drawn by the character generator at the same position where a non-background pixel of a sprite is draw, the sprite has collided with the background. An exception from this rule is the 01 code in the character data, which also counts as background. This way, a background picture can be constructed that does not cause collisions in certain areas. In practice, most newer games do not use the hardware functionality, but instead test for overlapping sprite bounding boxes in software. Memory Layout The VIC can address 16 KB at a time. All VIC data structures can be stored anywhere in these 16 KB, but they have to be aligned to their size. * The screen RAM is $0400 bytes in size and can be at $0000, $0400, * The character set is $0800 bytes, and can be at $0000, $0800, * The bitmap is $2000 bytes and can be at $0000 or $2000. * Sprites are $40 bytes, and can be at $0000, $0040, Two GPIO pins of the second 6526 CIA are connected to bits 6 and 7 of RAM when the VIC accesses it. By changing the lower 2 bits of $DD02, the VIC can be switched between banks $0000-$3FFF (11), $4000-$7FFF (10), $8000-$BFFF (01) and $C000-$FFFF (00). If the VIC is set to banks $0000 or $8000, then the two built-in character sets shadow RAM in the area of $1000-$1FFF. This means that the built-in character set can be used on those banks without occupying RAM, but it also means that the area from $1000-$1FFF cannot be used for bitmap, screen RAM or sprite data either. For timing reasons, color information is not taken from main RAM, but from a dedicated Color RAM. These $0400 half-bytes are accessible to the C64 at $D800-$DBFF and can not be bank switched. Timing For advanced VIC programming, it is necessary to not just set up a certain mode and have the VIC display it, but to reprogram the VIC while it is drawing the picture. For this, it is necessary, to understand its timing. While the pixels within the screen area are 320 by 200, the VIC actively draws pixels in the border color outside of this area, which (on PAL) is 403×284 pixels. Analog TV standards specify an H blank area at the end of every line, and V blank area at the end of every screen. So counting this timing as pixels, this gives an absolute resolution of 504×312 pixels. The interesting and very useful connection about the pixel clock and the system clocks is that an 8 pixel character is drawn every system clock cycle, i.e. about 1 million times a second. The 504 horizontal pixels therefore mean that a line is drawn on the screen every 63 cycles. With this information, it is possible to do cycle-exact timing of assembly code to switch a VIC register at an 8 pixel granularity. Further timing details (badlines, sprite timing), as well as the application of this information to do tricks like FLD, FLI and AGSP would go beyond the scope of this article, but are talked about in the presentation at the 25th Chaos Communication Congress. Memory Configuration In a running system with BASIC and KERNAL, the BASIC and KERNAL ROMs are turned on and visible at $A000-$BFFF and $E000-$FFFF respectively, and at $D000-$DFFF, the I/O area is visible. Using the 3 lowest bits in the processor port at address 1, this configuration can be altered. The ROMs can be turned off, revealing RAM instead, and the I/O area can be configured to show either RAM or the character set ROM. Note that writing to ROM will always direct the data to the underlying RAM. In practice, many programs run in the default configuration and use both KERNAL library routines, as well as functions in BASIC, to keep their own code as small as possible. More recent programs and almost all games turn off all of ROM, to get direct control of the interrupt vector without having to go though the KERNAL handler first. The I/O area is typically configured to show the I/O registers and Color RAM, and only rarely switched to a different configuration to temporarily access the RAM underneath. A few applications read the character ROM at program start and modify the copy. The C64 supports another ROM bank at $8000-$9FFF, which can only be serviced by an external cartridge connected to the expansion port. Also, the $A000-$BFFF bank can be overridden by an external ROM. If KERNAL detects the magic string 'CBM80' at $8004 on startup, it will jump to the code of the cartridge right away. Expansion port cartidges can also put the C64 into 'ULTIMAX' mode, in which the it can play game cartridges for the failed C64-based stripped down 'ULTIMAX' system ('Commodore MAX', 'VC-10'): All internal ROM is disabled, $8000-$9FFF and $E000-$FFFF show external ROM, RAM is only visible at $0000-$0FFF, and the VIC has a different view on the address space. This mode is used by freezer cartridges which can use it to replace the $E000-$FFFF bank and thus override the hardware vectors. Tape Interface The tape interface consists of a single line each for data input and output, motor control and key sense. The raw data is read from and written to the data lines, and all encoding and decoding of the data stream is done in software. 3 of the required lines are connected to the processor port at zero page location 1, and one (data input) is connected to CIA 2. IEC Bus The IEC bus is a serial version of the IEEE-488 bus used on the PET. Devices on the IEC bus are daisy-chained, and are all connected to the same three lines: ATN (attention), clock and data. IEC has a single bus master, which is the computer. It is the only device to ever raise ATN, while every device can output to clock and data, depending on the state of the bus. If the computer raises ATN, every device on the bus listens for the command which includes the 5 bit device number (0-30) and compares it with its own. The protocol on who sends and who receives is determined by the computer sending TALK/UNTALK and LISTEN/UNLISTEN commands. While KERNAL exports the interface at this level, it also allows high-level open, close, read and write operations on the IEC bus, as well as load and save operations. The BASIC LOAD and SAVE commands are directly hooked up to this interface. The IEC bus was designed for the serial shift register in the VIA (Versatile Interface Adapter) of the VIC-20 and its disk drive, but it turned out that the VIA had a bug that made the shift register unusable, so the IEC protocol had to be implemented in software. While the C64 has CIAs, in which the bug has been fixed, the 1541 still used VIAs. It wasn’t until the C128 (in its native mode only) that the computer could talk to the floppy drive (Commodore 1570/1571/1581) in its intended speed. 1541 Disk Drive The Commodore 1541 Disk Drive is the most common disk drive used with the C64. It uses 5.25" SS/DD (single side, double density) disks, but disks can be flipped, and the other side can be used as well, if the disks are double sided. The 1541 does not use the index hole, and uses software markers (SYNC) instead to be able to tell the start of a sector. Due to reliability problems of early drives, the 1541 only uses 35 out of the 40 possible tracks on a 5.25" disk. The tracks have a variable number of 256 byte sectors, ranging from 21 on the outside to 17 on the inside. The data is written in 4 different speeds. This makes an overall 683 sectors, or 174,848 bytes. The file system is stored on track 18. Track 18, sector 0 contains the disk name and the BAM (block availability map), which stores one bit per sector (1 = free). Track 18, sector 1 is the first sector containing directory entries: There are eight 32 byte entries per sector, with a maximum filename length of 16 characters. The first two bytes of a directory sector point to the next directory entry sector. The files on disk are also stored as a linked list. The first two bytes of every sector are either the track and sector number of the next block, or the first byte is 0 and the second byte is the number of valid bytes in this sector. The 1541 is a stripped down version of the PET drive series, which had a parallel connection, and contained two 6502 CPUs: One for doing the filesystem and communicating with the computer, and one for reading data from disk and writing data to it, as well as encoding and decoding the data. The 1541 only has a single 6502 CPU running at 1 MHz, which (using timer IRQs) regularly switches itself between the two modes. The two virtual CPUs still communicate with each other using a messaging interface in the zero page. The 1541 has 2 KB of RAM at $0000-$07FF. The 1541 has two VIA I/O controllers at $1800 (for the IEC bus) and at $1C00 (for the drive). The firmware is located at $C000-$FFFF. Since loading an application or a game takes minutes on an unmodified C64, several 'floppy speeders' appeared (either as software on disk or built into applications, as ROM extension cartridges, or as internal replacement ROMs), that consisted of implementations of more optimized protocols for the IEC bus for both the C64 and the 1541. The 1541 code was uploaded using the old bus protocol. Such a new protocol would for example not do a handshake on every bit using the clock line, but shift a complete byte through in 4 steps, two bits at a time, using the clock and data line at the same time. This would of course only work if both CPUs were not interrupted. VIC timing on the C64 side could already affect this, so many floppy speeders turned off the screen while loading. Other Peripherals The 1541 is the necessary companion to a C64. It can be replaced by a 1570 (1541 with fast bus routines for the C128) or a 1571 (double-sided 1570), since they include a 1541 compatibility mode. The 3.5" Commodore 1581, which supports 880 KB per disk, can hardly be a replacement for a 1541, because most applications contain their own floppy speeders that make lots of assumptions on the exact on-disk format. For GEOS, it can be very useful though. Creative Micro Devices sold and continues to sell a line of hard drives that have an IEC connection but contain a 3.5" SCSI drive inside. Although they have a 6502 CPU built in and allow code execution on their CPU, they are not compatible enough to replace a 1541 either. Several memory extension cartridges exist for the expansion port of the C64: The Commodore REU (contains a DMA chip that transfers data between itself and main RAM), as well as the third party GeoRAM (maps a block to the $DE00-$DFFF area) and RAMLink (battery backed, designed as RAM disk). Freezer cartridges like the Action Replay and the Final Cartridge were not only popular because they could dump all of memory to disk and thus copy certain copy-protected games, but also because they featured floppy speeders that disabled the original routines directly at startup time, without any effort from the user. In the mid 90s, CPU speeders for the expansion port became popular. The 8 MHz Flash 8 is rare today, but many enthusiasts have a SuperCPU, which replaces the onboard CPU with a 20 MHz 65C816, which has a native 16 bit mode that can address up to 16 MB or RAM. There are a few applications and games that require a SuperCPU. The speedup of GEOS with a SuperCPU is significant. In the 2000s, the enthusiast scene created all kinds of peripherals, like ethernet interfaces, IDE interfaces and SD card readers. And there are not only peripherals: In 2004, the Commodore 64 DTV, a reimplemented C64 appeared in the form of a Joystick. The device is fairly compatible and can be extended to connect to a keyboard and a 1541. This entry was posted on Monday, December 15th, 2008 by Michael Steil at 14:15 and is filed under archeology . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response <#respond>, or trackback from your own site. =~=~=~= A-ONE's Headline News The Latest in Computer Technology News Compiled by: Dana P. Jacobson Shortage of Cyber Experts May Hinder Government Federal agencies are facing a severe shortage of computer specialists, even as a growing wave of coordinated cyberattacks against the government poses potential national security risks, a private study found. The study describes a fragmented federal cyber force, where no one is in charge of overall planning and government agencies are "on their own and sometimes working at cross purposes or in competition with one another." The report, scheduled to be released Wednesday, arrives in the wake of a series of cyberattacks this month that shut down some U.S. and South Korean government and financial Web sites. The recruiting and retention of cyber workers is hampered by a cumbersome hiring process, the failure to devise government-wide certification standards, insufficient training and salaries, and a lack of an overall strategy for recruiting and retaining cyber workers, the study said. "You can't win the cyber war if you don't win the war for talent," said Max Stier, president of the Partnership for Public Service, a Washington-based advocacy group that works to improve government service. "If we don't have a federal work force capable of meeting the cyber challenge, all of the cyber czars and organizational efforts will be for naught." The study was drafted by the partnership and Booz Allen Hamilton as the Obama administration struggles to put together a more cohesive strategy to protect U.S. government and civilian computer networks. The size of the government's cyber work force is largely unknown, because agencies often classify their employees differently. The Pentagon says it has more than 90,000 personnel involved with cybersecurity, while the non-defense department civilian cybersecurity work force has been estimated at 35,000 to 45,000. Intelligence community estimates are classified. While President Barack Obama has declared cybersecurity a top priority, the White House so far has been unable to fill its new cyber coordinator position - a job regarded as critical. The study recommends that the yet-unnamed federal cyber coordinator lay out a strategy to meet the government's work force needs, set job classifications, enhance training and lead a nationwide effort to promote technology skills, including through the use of scholarships. The federal government's vulnerabilities have been underscored by cyberattacks that breached a high-tech fighter jet program and the electrical grid, although no classified material was compromised. Earlier this month, unknown hackers knocked several U.S and South Korean government Web sites off line in a widespread and unusually resilient computer attack. Ron Sanders, chief human capital officer for the national intelligence director's office, said it is difficult to draw a link between the work force shortages and the increased cyber threats against the government. "It's hard to say that there is any cause and effect there," said Sanders, adding that the U.S. probably will have to live with the nearly constant attacks. But, he said, the intrusions have heightened awareness of the problem, forcing officials to focus on the hiring needs. Microsoft Trying To Settle Browser Case Microsoft Corp. will offer computer users a choice of Web browsers to ward off new European Union antitrust fines, EU regulators said Friday. The European Commission has charged the company with monopoly abuse for tying the Internet Explorer browser to the Windows operating system installed on most of the world's desktop computers. It said Microsoft is suggesting that consumers pick a browser from several offered on a ballot screen in its new software release, Windows 7, which will go on sale Oct. 22. Windows would still include Internet Explorer, but users would be able to disable it. Computer manufacturers could also choose to install other browsers, set them as default and disable Internet Explorer. Regulators did not say if this was enough to settle antitrust action and allow the company to avoid new fines on top of the euro1.7 million that Microsoft already has paid in a series of battles with the EU executive. "The Commission welcomes this proposal and will now investigate its practical effectiveness in terms of ensuring genuine consumer choice," they said. EU officials have warned that their case targets a possible violation of antitrust rules since 1996. Microsoft's proposal affects only its latest browser. Microsoft spokesman Jesse Verstraete had no immediate comment, but he said the company would issue a statement shortly. The company's proposal is close to what regulators called for in January when they asked Microsoft to offer several browsers on Windows. The ballot screen option is also backed by Norwegian mobile Internet browser maker Opera Software ASA, which triggered the EU antitrust case by complaining that Microsoft was unfairly using its power as the dominant supplier of operating system software to squeeze out rivals. Microsoft earlier suggested stripping Internet Explorer out of Windows to sell it without any Web browsers at all in Europe. The EU rejected this as giving no choice to the 5 percent of consumers who buy Windows software in a stand-alone pack. Most people buy Windows already installed on a computer assembled by manufacturers such as Dell or HP. The EU also said Microsoft has offered to share more information to software developers who want to make products compatible with Windows and Windows servers. It said these proposals "require further investigation" before officials could decide on next steps. Microsoft's proposals will be published on its Web site. AOL Tries To Recapture That Startup Feeling It might seem an odd move for a company that relies on money from advertising. Yet AOL is reducing the number of ads it shows on its home page and some other Web sites it runs. The maneuver is one of the changes new CEO Tim Armstrong, 38, has brought to the long-struggling Internet company since he took over AOL in April. The former Google Inc. executive was hired to recharge AOL and lead its spinoff from Time Warner Inc., undoing a legendarily disastrous deal. To prepare for AOL's rebirth as an independent company later in the year, Armstrong and other executives say they are trying to recapture elements of the culture AOL had when it was a startup - back when it was America Online and on its way to becoming the dominant provider of dial-up Internet access. These days, AOL is focused on getting revenue from ads it sells for its own Web sites, like celebrity gossip blog TMZ, and for third-party sites, while the dial-up business slowly evaporates (though it still has 6 million subscribers). It's been a profitable formula, but revenue has been falling: In the first quarter, sales fell 23 percent to $867 million. With 7,000 employees spread around the world, it's a stretch to think AOL can feel like a Silicon Valley startup, with employees whizzing down the halls on skinny scooters. But Armstrong says certain decisions - like getting rid of some advertisements - will alter AOL's culture and help it regain favor. "I think AOL's return to higher prominence in terms of being an Internet leader is purely dependent on the work that we do here," the tall, affable Armstrong said in an interview. For instance, he said, pulling back some ads - a step that reduced clutter on AOL pages and made them load faster - showed that consumers were the company's first priority, given that the move could sacrifice some revenue. "We are on a long journey and sometimes you do have to make short-term trade-offs for that long-term gain," said AOL's new head of advertising, Jeff Levick. He also came from Google, where Armstrong oversaw the company's North and South American advertising operations. In some cases, reducing ads might not even hurt revenue. Armstrong said that when AOL cut some ads from its MapQuest site, traffic rose while the company made the same amount of money off the remaining ads, which could each get more attention. Another goal of Armstrong's is to speed AOL's ability to innovate. He's made Tuesdays into "product meeting days," with teams behind several different AOL products or services - say, AOL Autos or the company's e-mail service - discussing ideas with executives. Armstrong says lower-level employees now get a greater say in these sessions. "We don't always need management to present what's happening at the company," he said. The impending spinoff from Time Warner also appears to be changing the atmosphere. Bill Wilson, head of the company's MediaGlow unit, which includes Web sites and blogs such as WalletPop and Engadget, said employees are beginning to feel they have more influence over AOL's destiny. "That's much harder in a conglomerate than in a focused company," he said. Even so, it remains to be seen how far enthusiasm and a new focus can carry AOL. The company is in a fierce battle for Internet users with the likes of Google and Yahoo Inc., not to mention upstarts such as Facebook and Twitter. Last fall, AOL tried to innovate by creating a way for users to view outside content, including e-mail from Yahoo and Google, from within the bounds of AOL.com. But the brand is not widely associated with what's new and cool online. Its Web sites do get plenty of traffic, though: AOL's various Web properties averaged about 107 million unique U.S. visitors each month during the second quarter. That ranked fourth behind Google, Yahoo and Microsoft Corp. "They've got opportunities," said David Joyce, an analyst with Miller Tabak & Co. "So let's see what they make of it." Laptop Prices Dip Under $300 in the US Laptops are closing the price gap on less-powerful netbooks, with retailers delivering fully equipped systems for under US$300 as part of promotional offers. Wal-Mart will start offering limited quantities of a fully loaded Compaq laptop for $298 starting July 26, according to an entry on Wal-Mart's Checkoutblog site. The laptop being offered is a Compaq Presario CQ60-419WM from Hewlett-Packard, which is powered by Advanced Micro Devices' Sempron SI-42 processor running at 2.1GHz. The laptop comes with Windows Vista and includes a 15.6-inch screen, 3GB of RAM, a 160GB hard drive and Nvidia's GeForce 8200M integrated graphics. It also includes a DVD-RW drive, according to specifications provided by HP. For such a low price, the laptop is packed with features and could run out of stock quickly. "We expect this one will be quite popular," wrote a Wal-Mart official going by the name of Ryan in the blog entry. Wal-Mart didn't clarify whether the offering would be in-store or online, and the retailer didn't immediately return requests for comment. The offer follows a move earlier this week by Best Buy to offer an Acer laptop with a 15.6-inch screen for $299. The offer was later pulled after Best Buy ran out of stock, according to a report in CNET. The laptop was powered by a single-core AMD Athlon 64 running at 2.0GHz and ran Windows Vista. The laptop also included 2GB of RAM and a 160GB hard drive. By comparison, the cheapest netbook on Wal-Mart's online store is available for $238 and is less powerful than the Compaq laptop. The Asus Eee PC900HD includes an 8.9-inch screen and runs on an Intel Atom N270 at 1.6GHz. It includes 512MB of RAM and a 160GB hard drive and comes with Windows XP. Mainstream laptop prices have dipped under the $300 mark just a few times, including in 2007, when Toshiba offered a laptop for $299. Most of the mainstream laptops listed on Wal-Mart's site today are priced over $350. Wal-Mart also plans to add a "very cool Acer laptop" with an eight-hour battery life over the next few days, according to the company. It also plans to add a HP netbook. Wal-Mart Woos Laptop Shoppers Wal-Mart Stores Inc has expanded its laptop selection by 40 percent and will be aggressive in pricing the computers and the accessories to go with them as the discount retailer looks to win sales from frugal back-to-school shoppers. Starting this Sunday, Wal-Mart will begin selling an exclusive Compaq Presario notebook computer that it developed in partnership with Hewlett-Packard Co for $298. A similar unit currently sells at Wal-Mart for $548. "We think that that's a screaming value," said Gary Severson, Wal-Mart U.S.'s senior vice president of home entertainment, in an interview. "You're going to see us focus dramatically not only on price, but the value for that price." The Presario notebook will be selling at a price that would normally purchase a less-capable netbook laptop. Retailers have started the back-to-school shopping season on shaky ground as consumers show an unwillingness to spend on anything but basic goods. According to a National Retail Federation survey, the average family with children in kindergarten through 12th grade plans to spend 7.7 percent less on school gear this year than a year ago. One bright spot in the survey was consumer electronics, where students plan to spend more. In addition, nearly 75 percent of respondents said they intend to shop at a discount stores for their new school purchases. Wal-Mart is looking at the back-to-school season as a chance to showcase its expanded selection of notebook and netbook computers, with Severson saying laptops are becoming a staple item for students of all ages. "We think that this year is really the opportunity for us to establish in laptops," Severson said. To gain leadership, Wal-Mart is following tactics it used to become a major player in flat screen TVs -- expanding its selection of name brands while trying to beat the competition on price. Wal-Mart has already started its back-to-school push in earnest and is offering Dell Inspiron laptops for $398 in colors ranging from pink to purple to aqua. The retailer also stocked accessories to match the colorful laptops, like $60 Western Digital hard drives and $25 Logitech cordless optical mice in black, blue, pink and red. Wal-Mart said the Dell offering was a popular one, and it expects a similar response for the Compaq Presario that goes on sale July 26. It will have 3 gigabytes of memory, a 160 gigabyte hard drive, and it will come pre-loaded with Microsoft Corp's Windows Vista operating system. On Sunday, Wal-Mart will also cut the price of an Acer laptop with an 8-hour battery by $50 to $548. The computer has 3 gigabytes of memory, a 320 gigabyte hard drive and qualifies for a free upgrade to the Windows 7 operating system when it is released. Wal-Mart will unveil more offerings during the summer, like a mini netbook by Hewlett-Packard and a Dell laptop with 4 gigabytes of memory and a 500 gigabyte hard drive. "There's no question that our customer is shifting from a desktop solution to a portable laptop solution," Severson said. He also said Wal-Mart views low-cost netbooks as a "growth" category. Netbooks, the bare-bones PCs, generally sell for $300 to $400, but prices are dropping as new offerings flood the market and wireless carriers offer subsidies with the purchase of a data plan. Severson said Wal-Mart is looking at ways to offer shoppers deals on netbooks that come bundled with a wireless plan. "We're having conversations with carriers and with the hardware manufacturers around that, and are really trying to find where that great value sweet spot is," he said. While some customers are attracted to netbooks by their low prices, Severson said they do not always realize its capabilities are limited compared with a notebook computer. "There is an education process that has to happen with the customer, and we're working on how we can improve that because there is a confusion factor," he said. This back-to-school season marks the first one without consumer electronics retailer Circuit City, which closed its stores earlier this year. Retailers including Wal-Mart, Best Buy Co Inc and Amazon.com are now battling to win the business of its former shoppers. Windows 7 Released to Manufacturing After months of testing, telemetry, and trials - and leaked builds and gossip galore - Microsoft has finally released Windows 7 to manufacturing. Release to manufacturing, or RTM, is the final build of the operating system before general release and general availability for consumers on October 22. The official sign-off was at 4:40 PM, a quirky time coinciding with the keynote speech at an internal sales and marketing event. Microsoft plans to make the RTM available to OEMs within the next two days, while volume and enterprises licensees should see the code appear on Microsoft's TechNet site on August 6, a list of dates which which Microsoft made available late on Tuesday. Windows Server 2008 R2 also reached the RTM status on Wednesday as well. Microsoft notes that there aren't many big differences between the Release Candidate and the RTM versions of Windows 7, with the only the changes that were really necessary included in the final revision. Many of those have been highlighted on the E7 blog and the Windows team blog (such as the recent post on the changes to ClearType. These changes aren't ones most consumers will notice, and you shouldn't expect dramatic changes in performance, although the team has been making small but steady improvements in performance ever since the operating system first started running on real-world hardware, according to Mike Angiulo, manager of the product planning and PC ecosystem team for Microsoft. Web sites and chat boards worldwide have been aflutter with leaked internal builds of the OS for the past six months, but the Internet echo chamber has been turned to high volume in the past few weeks. In recent months, enthusiasts have been carefully studying each leaked version's "build number," the string of numbers and letters that indicates when a build was assembled and which exact version it is. Several purported final builds carrying 7600-series strings were leaked, eventually prompting Microsoft to officially deny the rumors that Windows 7 had gone gold. For the record, the final build of Windows 7 and Windows Server 2008 RTM will both be 7600, with Windows 7's RTM build known as 7600.16385. Finishing off the operating system doesn't mean Microsoft's engineering division can kick back and relax, however. "My team is kicking into high gear!" Angiulo said. "My team is on site at the manufacturing sites of all the partners, making sure that that very, very final tests - as they're putting their final system images together - are high performance. We go into on-call beeper mode with anything that's related to the manufacturing process." In other words, the job's not quite over for MS engineers, who will spend the next few months ensuring that drivers, Device Stage-specific icons, and especially sensitive applications like antivirus tools will work smoothly. This should lead to a better out-of-box experience for consumers, the company hopes, with computers coming with special icons already pinned in place and software installed and running smoothly. Microsoft has already made great progress on this front, claiming to be way ahead of where Vista was at this point in terms of partner support. The 64-billion dollar question, however, is one of bit depth: Will OEMs and consumers opt for the 64-bit version or stick with the 32-bit one? Vista customers primarily use the 32-bit version of the operating system, a term that designates the maximum length of the "words" the computer uses. Linux and the Mac OS come in 64-bit flavors, which allow an OS to address more memory and improve performance. Windows has been available in 64-bit versions for years, yet adoption has been slow, primarily due to fears of driver incompatibility. Microsoft expects the mainstream versions of Windows 7 to be 64-bit, Angiulo said, although the Starter edition will be exclusively 32-bit, and netbooks based on slower chips like the Intel Atom will probably ship with a 32-bit OS. Microsoft Outlines Upgrade Paths to Windows 7 Microsoft on Tuesday detailed upgrade paths from old Windows editions to its upcoming Windows 7 OS, saying that Europeans will not be able to directly upgrade from Windows Vista to Windows 7. Microsoft is expected to ship special versions of Windows 7 to European customers, but the versions will need a clean install on PCs, according to a blog entry on Microsoft's Web site. The software giant has released special editions of Windows 7 in Europe including Windows 7 E, which lacks a browser, and Windows 7 N, which lacks a browser and media player technologies. Windows 7 is scheduled for a worldwide launch on October 22. The company released Windows 7 E editions - including Premium, Professional, Ultimate and Starter editions - to comply with the European Commission's antitrust ruling against the company. However, the commission panned Microsoft's decision to strip the browser from Windows 7 E, saying that instead of providing more choice, Microsoft appeared to be providing less choice. Users in other parts of the world will be able to upgrade directly from Windows Vista to Windows 7. However, Microsoft isn't allowing upgrades from Windows 7 Release Candidate or Windows XP, according to a document outlining OS upgrade paths for users worldwide. Nor are direct upgrades allowed from Windows NT Server 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008 or Windows Server 2008 R2. Microsoft last week started taking pre-orders for the European editions of Windows 7 at discounted rates. The OS flew off the shelves, causing Microsoft's online store to crash. The OS also reached the top-selling list of online stores in Europe. Microsoft may not be providing a direct upgrade path, but it is providing an option for users to select and install a preferred browser from external storage devices like USB thumbdrives or separate DVDs. It is also providing a tool called Windows Easy Transfer to help users transfer program settings and data from old operating systems to Windows 7. A request made through Microsoft's external public relations company for additional comment regarding the upgrade paths was not answered Tuesday afternoon. =~=~=~= Atari Online News, Etc. is a weekly publication covering the entire Atari community. Reprint permission is granted, unless otherwise noted at the beginning of any article, to Atari user groups and not for profit publications only under the following terms: articles must remain unedited and include the issue number and author at the top of each article reprinted. Other reprints granted upon approval of request. Send requests to: dpj@atarinews.org No issue of Atari Online News, Etc. may be included on any commercial media, nor uploaded or transmitted to any commercial online service or internet site, in whole or in part, by any agent or means, without the expressed consent or permission from the Publisher or Editor of Atari Online News, Etc. Opinions presented herein are those of the individual authors and do not necessarily reflect those of the staff, or of the publishers. All material herein is believed to be accurate at the time of publishing.