The schematic of the Replica I is very interesting. There are three processors on the board -- there is the main 6502, of course, but the keyboard and the video output get their own processors. I thought it would be neat to compare how they stack up...
So, basically, the auxillary processors are 20-40 times faster, more powerful, and have the same ROM size as the main processor. But, this is the way iit had to be -- it would have hard to find a modern microcontroller that is significantly slower than the 6502.
Ditto. I loved my Apple II and loved figuring out how everything in it worked. I disassembled the floppy disk ROM ($C600-$C6FF, only 256 bytes!), the boot sector (again, only 256 bytes), the second stage boot loader (DOS 3.3 and Applesoft. One of my favorite magazine series disassembled a different part of DOS each month and explained why and how things were done the way they were.
The Apple II even came with schematics. I poured over them, and in highschool, I even built my own 6502-based computer. It looked a lot like the computer linked in one of the first posts (except I made my own PCB instead of wirewrapping it:-)). Even in 1989, "modern" technology made it much easier to to than in 1977. Instead of dynamic ram, I used easier-to-interface static ram which, 10 years earlier, would have been cost-prohibitive. I think my system had something like 16K EEPROM, 16K SRAM, a voice synthesizer, and some I/O ports (which I used to connect an old serial keyboard with). Changing the software meant burning a new EPROM -- I always had two in the eraser so I'd be ready to try something new out.
When I moved to the PC, it was painful to know that there was no source code for the BIOS, and each video card had its own unique ROM that isolated you from the hardware.
I recoded tbe name section of my atm card to <A HREF="sploit.org">. Instead of saying "Hello MORCHEEBA" it'll have a giant link to my server with my hostile activeX ap. But, no open ports, so it's secure.
That's the problem... If I were designing it, I'm not so sure I'd go with IP-based communications. I'd prefer dedicated phone lines with a simple serial protocol that is easy to make secure. Of course, there are situations where an IP-based protocol would be necessary (high traffic areas, like a grocery store), so I'd use a hard firewall like this TCP/IP-to-serial converter -- that way, if the network stack gets hacked and the processor compromised, it won't have access to the bill-spitter or the keyboard.
Of course, there would still be the encryption and authentication... but, there won't be vulnerabilities from tcp packet reassembly, open ports, activeX, javascript, and html exploits. And, if a machine is compromised (inside job), there's no way to connect to the internet in general to report back phished data (unless the main server is also compromised, in which case, you're already in deep doo-doo).
I think that's the problem that everyone is worried about... that all of the sudden all the machines will be "remote managed" by someone and they'll start spitting out free money. Or logging card numbers/PINs.
The reality is that Apple is one of the most closed proprietary companies around.
No, that would actually be Sony, Nintendo, and Microsoft -- all of whom attempt to control what programs you run on your machine.
Apple, while maintaining control over the basic platform*, actually publishes 3rd party software (Click the apple on the menu bar, then "Get OSX software") and provides free kernel-level tools to write drivers for add-on hardware. Microsoft uses signed drivers and is considering (through Palladium) to lock out all others.
(*Apple is in a different business than Microsoft - it's also a hardware company. If you saw a game station clone, you'd better believe there will be a lawsuit. If the game-machine analogy seems too thin, then remember that Intel has fought clone makers, too.)
A neat use for face-recognition is Nikon's Face-Priority mode on some of its new cameras. It doesn't try to ID the face, but it tries to tell where the face is in the picture and makes sure it is in focus. This would be a godsend to my parents who can never focus a picture with two people in it -- the pictures are always focused on the background between the two people.
That looks interesting but the mac mini connecctor has 20 pins, while the ipod dock connector has 30 pins. The placement of the firewire pins are also different - the mini has the data on pins 1,2,11, and 12, while the ipod has them on 3,5,7, and 9.
I was at a starbucks once, sitting outside next to the little parking lot. A guy with a loud stereo drove up and left the car idling next to me while he stepped inside to get his drink. But, just before he left it, he turned the volume up so he could hear it inside better. Never mind the dozen of us on the patio... urgh.
LDA ptr ORA ptr+1 BNE $1... sorry, couldn't help myself!
Shorter, but sometimes slower depending on expected value of ptr. Shorter code helps with the 6502 because of limited address space and limited relative branches. Of course, if I really wanted to optimize, I would have used assembly so I could take other shortcuts in the code.
I hear they are working on a "hypertext" transfer protocol -- it's kindof like Apple's hypercard where you can "link" to various media in a free-form manner. A "mouse" is used to select which links to follow, and the transport protocol sends the appropriate network packets to retrieve the data.
Additionally, while the court ruled that the Toner Loading Program is not copyrightable, it agreed that the Printer Engine Program was a copyrighted work. However, the argument that SCC's Smartek chip provided unauthorized access to the Printer Engine Program was dismissed on the basis that it was the consumers' purchase of the printer that established such access, and the program in question was freely available to read electronically in memory. SCC's actions thus constitute a legal replacement of Lexmark's Toner Loading Program.
If that's actually what the judge said (I'll have to read the case when the EFF publishes it), that would set a very interesting precedent. Essentially, it seems it would make hymn perfectly legitimate. In hymn's case, the user has purchased the player and the music, and is authorized to play the music. iTunes has an EULA that Lexmark didn't, so I suspect that will come into play, too.
Also remember that a well implimented TCP/IP stack runs at about 90% of the speed of a memcpy()
Which begs the question... why not implement a generic memcpy accelerator and speed up all sorts of operations?
I know there's DMA for that, but unless it is cache-coherent, the cache invalidation could make it too slow to be useful. I've used DMAs on lots of other systems, but the last time I used it on PC hardware was a 486. Is this in modern P4 or AMD processors?
Good news! With cloning, some genetic manipulation, and growing chambers, we can completely remove parents from the reproductive process - that way people will never lose mothers to cancer!
Oh, wait, maybe we should be working to make sure no one else goes through what your mother and my mother (who, luckily has been ok for the last 10 years since losing a good chunk of lung) did;-)
and I thought you were kidding because I immediately read the "S" as "Sucks" and then read the rest of the letters together. But, nope, SCOX is the right symbol.
Football fans, ham spread connoisseurs, and negative pressure particulate removal professionals are all very sophisticated people who do the research on these products and are able to look past the name and consider only the essential specifications of the products.
I agree with you that OS's have been growing to include more functions, but the difference is that, in my opinion, anti-virus would be a more traditional role than html-rendering. Signed drivers and programs are already a step towards virus prevention, and since MS isn't charging for these, it seems hard to justify that they'd charge for the AV.
Of course, it's all a matter of scale - TI had a 4 DSP, 1 CPU processor a while ago, but it only made 100 MFLOPS. Cradle's first product has 8 DSPs and 6 CPUs - depending on if you can get your data to properly pipeline through the processors, you can achieve up to 3.6 GFLOPs peak with only a 230 MHz clock.
I wonder how they can argue that IE has to be a fundamental part of the operating system that they give away*, but a virus scanner is an add-on? Controlling which programs run seems like it should be an OS fundamental.
(* re: IE vs. netscape browser wars and the monopoly verdict)
A little tip from when I wrote 8-bit embedded code...
Our c compiler had an output format that would list the c code and resulting assembly language intermixed. I wrote a quick little program that would read this, count the bytes of code per line, strip the assembly, and then just print out each line of C with the byte count at the beginning of the line.
This was easier to look over and you could see if some c expression was really bloated - I'd then go and simplify the code.
For example, I've been disassembling this little project and I can tell that the source firmware has this mistake:
U88 a; U32 b;
bad: b = b & a; good: b = (U32) ((U8) b & a);
The bad way hard codes in a lot of "& 00" instructions for this little 8-bit processor, while more selective casting (while ugly) can overcome the problem. Repeat 10 times, and you'll save 200 bytes, or almost 3% of memory.
Freshman year in college we had to take the intro-to-computers for engineers. A couple of us knew more than the teacher & (politely & discretely) corrected some mistakes. But, then, on the final exam, he asked how to copy files from a floppy to harddrive in MSDOS and his correct answer was diskcopy. It took way too much convincing that this block-based copy wouldn't work and that file-based xcopy would be better - he had taught it, so it must be true.
The worst part about the class was learning fortran in 1990. After learning structured languages like pascal and C, using FLOAT main_array[x][1] to represent a price and the same array -- FLOAT main_array[x][2] -- to represent a year was so tough go back to.
Re:Article text, links & images intact
on
Top 10 Apple Flops
·
· Score: 1
thanks. I also like gus gus, mandalay, morphine, hooverphonic. And, in a different vein, Cowboy Junkies, Ani Difranco, Beth Orton.
The schematic of the Replica I is very interesting. There are three processors on the board -- there is the main 6502, of course, but the keyboard and the video output get their own processors. I thought it would be neat to compare how they stack up...
Main processor:
6502 @ 1MHz. 32K SRAM, 8K ROM.
0.3-0.5 MIPS, 3 registers + 256 zero-page registers
Keyboard processor:
ATMega8515 @ 8MHz, 512 bytes RAM, 8.5K EEPROM
8 MIPS, 32 registers, hardware multiplier. Would be 16 MIPS if a faster crystal was used.
Video processor:
ATMega8 @ 14.318 MHz, 512 bytes RAM, 8.5K EEPROM
14 MIPS, 32 registers, hardware multiplier.
So, basically, the auxillary processors are 20-40 times faster, more powerful, and have the same ROM size as the main processor. But, this is the way iit had to be -- it would have hard to find a modern microcontroller that is significantly slower than the 6502.
Ditto. I loved my Apple II and loved figuring out how everything in it worked. I disassembled the floppy disk ROM ($C600-$C6FF, only 256 bytes!), the boot sector (again, only 256 bytes), the second stage boot loader (DOS 3.3 and Applesoft. One of my favorite magazine series disassembled a different part of DOS each month and explained why and how things were done the way they were.
:-)). Even in 1989, "modern" technology made it much easier to to than in 1977. Instead of dynamic ram, I used easier-to-interface static ram which, 10 years earlier, would have been cost-prohibitive. I think my system had something like 16K EEPROM, 16K SRAM, a voice synthesizer, and some I/O ports (which I used to connect an old serial keyboard with). Changing the software meant burning a new EPROM -- I always had two in the eraser so I'd be ready to try something new out.
The Apple II even came with schematics. I poured over them, and in highschool, I even built my own 6502-based computer. It looked a lot like the computer linked in one of the first posts (except I made my own PCB instead of wirewrapping it
When I moved to the PC, it was painful to know that there was no source code for the BIOS, and each video card had its own unique ROM that isolated you from the hardware.
</nostalgia>
The book you're talking about is "Practical File System Design with the Be file system".
Here's the slashdot article on it and here's a pdf of the book direct from the author's site.
It looks interesting, but it's been on my to-read list for a while.
No open ports, no way to exploit it.
I recoded tbe name section of my atm card to <A HREF="sploit.org">. Instead of saying "Hello MORCHEEBA" it'll have a giant link to my server with my hostile activeX ap. But, no open ports, so it's secure.
That's the problem... If I were designing it, I'm not so sure I'd go with IP-based communications. I'd prefer dedicated phone lines with a simple serial protocol that is easy to make secure. Of course, there are situations where an IP-based protocol would be necessary (high traffic areas, like a grocery store), so I'd use a hard firewall like this TCP/IP-to-serial converter -- that way, if the network stack gets hacked and the processor compromised, it won't have access to the bill-spitter or the keyboard.
Of course, there would still be the encryption and authentication... but, there won't be vulnerabilities from tcp packet reassembly, open ports, activeX, javascript, and html exploits. And, if a machine is compromised (inside job), there's no way to connect to the internet in general to report back phished data (unless the main server is also compromised, in which case, you're already in deep doo-doo).
handy stuff like remote management
I think that's the problem that everyone is worried about... that all of the sudden all the machines will be "remote managed" by someone and they'll start spitting out free money. Or logging card numbers/PINs.
The reality is that Apple is one of the most closed proprietary companies around.
No, that would actually be Sony, Nintendo, and Microsoft -- all of whom attempt to control what programs you run on your machine.
Apple, while maintaining control over the basic platform*, actually publishes 3rd party software (Click the apple on the menu bar, then "Get OSX software") and provides free kernel-level tools to write drivers for add-on hardware. Microsoft uses signed drivers and is considering (through Palladium) to lock out all others.
(*Apple is in a different business than Microsoft - it's also a hardware company. If you saw a game station clone, you'd better believe there will be a lawsuit. If the game-machine analogy seems too thin, then remember that Intel has fought clone makers, too.)
A neat use for face-recognition is Nikon's Face-Priority mode on some of its new cameras. It doesn't try to ID the face, but it tries to tell where the face is in the picture and makes sure it is in focus. This would be a godsend to my parents who can never focus a picture with two people in it -- the pictures are always focused on the background between the two people.
That looks interesting but the mac mini connecctor has 20 pins, while the ipod dock connector has 30 pins. The placement of the firewire pins are also different - the mini has the data on pins 1,2,11, and 12, while the ipod has them on 3,5,7, and 9.
That was the only way I could figure out the meaning of that sentence! I couldn't remember if restarting was good or bad...
I was at a starbucks once, sitting outside next to the little parking lot. A guy with a loud stereo drove up and left the car idling next to me while he stepped inside to get his drink. But, just before he left it, he turned the volume up so he could hear it inside better. Never mind the dozen of us on the patio... urgh.
LDA ptr ... sorry, couldn't help myself!
ORA ptr+1
BNE $1
Shorter, but sometimes slower depending on expected value of ptr. Shorter code helps with the 6502 because of limited address space and limited relative branches. Of course, if I really wanted to optimize, I would have used assembly so I could take other shortcuts in the code.
I hear they are working on a "hypertext" transfer protocol -- it's kindof like Apple's hypercard where you can "link" to various media in a free-form manner. A "mouse" is used to select which links to follow, and the transport protocol sends the appropriate network packets to retrieve the data.
The arstechnica article says...
Additionally, while the court ruled that the Toner Loading Program is not copyrightable, it agreed that the Printer Engine Program was a copyrighted work. However, the argument that SCC's Smartek chip provided unauthorized access to the Printer Engine Program was dismissed on the basis that it was the consumers' purchase of the printer that established such access, and the program in question was freely available to read electronically in memory. SCC's actions thus constitute a legal replacement of Lexmark's Toner Loading Program.
If that's actually what the judge said (I'll have to read the case when the EFF publishes it), that would set a very interesting precedent. Essentially, it seems it would make hymn perfectly legitimate. In hymn's case, the user has purchased the player and the music, and is authorized to play the music. iTunes has an EULA that Lexmark didn't, so I suspect that will come into play, too.
Here's my writeup about the DMCA, which I wrote because a project of mine might have been subject to its restrictions.
Also remember that a well implimented TCP/IP stack runs at about 90% of the speed of a memcpy()
Which begs the question... why not implement a generic memcpy accelerator and speed up all sorts of operations?
I know there's DMA for that, but unless it is cache-coherent, the cache invalidation could make it too slow to be useful. I've used DMAs on lots of other systems, but the last time I used it on PC hardware was a 486. Is this in modern P4 or AMD processors?
Good news! With cloning, some genetic manipulation, and growing chambers, we can completely remove parents from the reproductive process - that way people will never lose mothers to cancer!
;-)
Oh, wait, maybe we should be working to make sure no one else goes through what your mother and my mother (who, luckily has been ok for the last 10 years since losing a good chunk of lung) did
and I thought you were kidding because I immediately read the "S" as "Sucks" and then read the rest of the letters together. But, nope, SCOX is the right symbol.
Football fans, ham spread connoisseurs, and negative pressure particulate removal professionals are all very sophisticated people who do the research on these products and are able to look past the name and consider only the essential specifications of the products.
I agree with you that OS's have been growing to include more functions, but the difference is that, in my opinion, anti-virus would be a more traditional role than html-rendering. Signed drivers and programs are already a step towards virus prevention, and since MS isn't charging for these, it seems hard to justify that they'd charge for the AV.
Good post, thanks.
Cradle Semiconductor has been working for a while on a similar technology.
Of course, it's all a matter of scale - TI had a 4 DSP, 1 CPU processor a while ago, but it only made 100 MFLOPS. Cradle's first product has 8 DSPs and 6 CPUs - depending on if you can get your data to properly pipeline through the processors, you can achieve up to 3.6 GFLOPs peak with only a 230 MHz clock.
I wonder how they can argue that IE has to be a fundamental part of the operating system that they give away*, but a virus scanner is an add-on? Controlling which programs run seems like it should be an OS fundamental.
(* re: IE vs. netscape browser wars and the monopoly verdict)
I charge $499 and toss in this nifty external CD drive.
A little tip from when I wrote 8-bit embedded code...
Our c compiler had an output format that would list the c code and resulting assembly language intermixed. I wrote a quick little program that would read this, count the bytes of code per line, strip the assembly, and then just print out each line of C with the byte count at the beginning of the line.
This was easier to look over and you could see if some c expression was really bloated - I'd then go and simplify the code.
For example, I've been disassembling this little project and I can tell that the source firmware has this mistake:
U88 a;
U32 b;
bad: b = b & a;
good: b = (U32) ((U8) b & a);
The bad way hard codes in a lot of "& 00" instructions for this little 8-bit processor, while more selective casting (while ugly) can overcome the problem. Repeat 10 times, and you'll save 200 bytes, or almost 3% of memory.
Freshman year in college we had to take the intro-to-computers for engineers. A couple of us knew more than the teacher & (politely & discretely) corrected some mistakes. But, then, on the final exam, he asked how to copy files from a floppy to harddrive in MSDOS and his correct answer was diskcopy. It took way too much convincing that this block-based copy wouldn't work and that file-based xcopy would be better - he had taught it, so it must be true.
The worst part about the class was learning fortran in 1990. After learning structured languages like pascal and C, using FLOAT main_array[x][1] to represent a price and the same array -- FLOAT main_array[x][2] -- to represent a year was so tough go back to.
thanks. I also like gus gus, mandalay, morphine, hooverphonic. And, in a different vein, Cowboy Junkies, Ani Difranco, Beth Orton.