Slashdot Mirror


Streaming RealAudio From a Commodore 64

An anonymous reader submits: "This just came in on comp.sys.cbm and I think it will be of general interest here at Slashdot as well. Two Commodore hackers, Adam Dunkels and Peter Eliasson, have built an Ethernet card for their C64 and have connected one to the Internet. But they aren't 'just' running a TCP/IP stack and a web server on it - they are also running a RealAudio server which streams audio from the C64's cassette player and apparently, it sounds awful! They have the full source code avaliable and pictures of the C64 server."

35 of 332 comments (clear)

  1. Look, you can *see* it being slashdotted! by ianpatt · · Score: 4, Funny
    1. Re:Look, you can *see* it being slashdotted! by beertopia · · Score: 4, Informative

      Well, this is what you would've seen if you were one of the first 10 people to click the link... poor lil' webserver...

      Real-time streaming audio from the C64

      This C64 server is not only running a web server, but is also running
      a very simplistic RTSP/RTP (Real-Time Streaming Protocol/Real-Time
      Protocol) server that is compatible with RealPlayer
      version 8. This makes it possible to send real-time streaming audio
      over the Internet directly from the Commodore 64.


      The cassette port on the C64 is capable of sampling 1-bit samples at a
      maximum rate of approximately 8000 Hz. We are sampling 1-bit audio
      from the cassette player and sending it out over the Internet using
      the TFE Ethernet cartridge. To reduce the load on the C64, we only
      allow one listener to listen at a time and only for about 20 seconds.

      Listen

      In order to listen, you'll need to have the free RealPlayer 8 Basic (click on the "RealPlayer 8
      Basic" link at the bottom left of the page). While the streaming audio
      server might work with other players, we haven't tested it with
      anything but RealPlayer 8 Basic.


      When RealPlayer is installed, click here. If
      RealPlayer says that it is experiencing network problems, this is
      because someone else is already listening. Beware! It sounds
      terrible.

      Playlist

      We are playing remixes of famous C64 SID music taken from the
      faboulous C64 mp3 remix site remix.kwed.org. Because of the bad sound quality of
      the real-time audio stream, it is impossible to tell which tunes we are
      playing.


      --
      -- 'intellectual property' is oxymoronic
  2. A note for youngsters.. by tuxzone · · Score: 5, Funny

    A note for youngsters... The C64 is not a fancy new 64 bit machine, it is an 8 bit machine (vintage 1982) with 64Kbyte memory.

    1. Re:A note for youngsters.. by Big+Dogs+Cock · · Score: 4, Funny

      Bollocks. The BBC micro - now that was a class BASIC interpreter (if there's such a thing). Plus a nice assembler as well. Indexed indirect addressing - that takes me back.

      I suppose the ultimate achievement would be to get a web server running on a ZX81 (probably need 16K RAM pack plus obligatory duct tape to keep it on). You could have two cassette recorders in a RAID 1 configuration.

      --
      "Under the iron bridge, we fist" - The Smiths, Still Ill
    2. Re:A note for youngsters.. by mosch · · Score: 3, Funny

      Yeah, everybody knows the Ti-99/4A is the new Texas Instruments graphing calculator. DUH!

  3. Listen... by soulsteal · · Score: 5, Funny

    and you might hear the crackle of a flaming C64...

  4. To paraphrase RFK (or Shaw): by Ezubaric · · Score: 5, Funny

    Some people see things as they are and say why. I see things that never were and say why not.

    Then again, some people say "why not," get drunk, and and hook a piece of crap up to the internet.

    $50 bucks to the first person that builds a C64 emulator out of legos that streams video of a coffeepot and runs BSD.

    --

    ----------
    I am an expert in electricity. My father held the chair of applied electricity at the state prision.
  5. A new computing first! by Dynedain · · Score: 3, Funny

    This is definately going to be the first time a Commodore 64 has been /.ed, and will probably set the record for how long it takes to get /.ed.

    Of course, rebooting a C64 is pretty fast.

    --
    I'm out of my mind right now, but feel free to leave a message.....
  6. Mirror by ink · · Score: 4, Informative

    Well, I managed to mirror the front page before the machine went down (hopefully others can mirror my copy before my machine goes down!) http://inconnu.isu.edu/~ink/c64

    --
    The wheel is turning, but the hamster is dead.
    1. Re:Mirror by ender81b · · Score: 3, Informative

      I mirrored the pictures here (let time warner take some of the bandwith costs =):

      http://home.neb.rr.com/pubhtml/c64/c64.html

  7. Hrm... by autopr0n · · Score: 5, Funny

    I bet that ethernet card probably has more CPU power then the rest of the machine.

    --
    autopr0n is like, down and stuff.
  8. well duh! by binarybum · · Score: 5, Funny


    C'mon now, Real Audio(TM) always sounds awful. This isn't news!

    --
    ôó
  9. are you sure? by supernova87a · · Score: 3

    I think they got confused... They just plugged their headphones into the cassette tape drive, and thought they were hearing RealAudio!

  10. Saying It For The Sake Of It by Peridriga · · Score: 4, Funny


    I don't even believe a Beuowolf cluster of these could survive serving streaming media to /.

  11. Still up! by autopr0n · · Score: 5, Interesting

    Holy shit! This thing is still standing! I was able to get through with just two tries (the first time I just got the frameset). According to the docs they had put in quite a few optimizations to their TCP/IP stack to allow for a lot of connections (they said they encoded the state data in TCP sequence field, allowing them to have unlimited connections, or something like that)

    The thing is, they haven't got the optimization on port 6510, so if you try to go to the 'tcp status page' you'll overload it.

    Building a C64 web server is impressive. Building one that can stand up to the Slashdot effect is, well, wow :P

    --
    autopr0n is like, down and stuff.
  12. Powerful peripherals by Novus · · Score: 5, Informative

    On the whole, lots of peripherals and expansion cards back then had ridiculous amounts of processing power. For example, the floppy drive usually used on the C64, the 1541, had a 6502 processor (a slightly older version of the 6510 used in the C64 itself). C64 facts from here. The floppy drive was connected to the machine with an insanely slow serial port, so it had to work more or less autonomously.

    The silliest example of over-powerful peripherals has to be the General Sound card for the ZX Spectrum. The General Sound contains a 12 MHz Z80 and 128 K RAM, upgradable to 512. The Spectrum contains 48 or 128 K RAM (256 or 512 on some clones) and has a 3.5 MHz Z80 (7 MHz or more in some clones). In other words, the sound card (which is fully programmable) is more than 3 times as powerful as the machine it's connected to. General Sound info here.

    For today, ponder the latest 3D graphics accelerator.

    1. Re:Powerful peripherals by vidarh · · Score: 5, Funny
      Actually, the 6502 is close enough to the 6510 that your C64 most likely will keep running if you exchange the two. The difference is primarily 8 extra IO lines on the 6510. On the C64 some of those were, I believe (but it's been about 15 years :-) used to access the tapedeck.

      For an even more extreme example of extra CPU's (though not necessarily much more powerful, and two of them not in use :-), I at one point had an Amiga 2000 with a 68000 CPU. I got a used 68020 accelerator board for it. In addition it had one of those PC cards that let you run DOS in a window, with an 8086, and an 286 accelerator for it. To top it off my SCSI card had a Z80 on it.

      But one CPU is missing....

      Guess what is used as a keyboard controller on many of the Amigas? An embedded version of the 6510, running at 2MHz and with onboard RAM and ROM..

      So to sum it up, the CPUs in use: 68020, 286, Z-80 and some chip with an 6510 core. Now that's multiprocessing :-)

    2. Re:Powerful peripherals by petis · · Score: 3, Interesting

      I believe that in some (or most?) of the better demos produced on the C64, the coders used the floppy-drive processor to help calculate the vectors. I never coded for the C64, so I don't know for sure though.

      Anyway, the demo coders from the C64-scene are definitely impressing. Talk about using the resources you have to a maximum.

    3. Re:Powerful peripherals by AndrewHowe · · Score: 3, Informative

      I think it most likely won't. The main problem is the first two bytes in zero page, which are connected up to those IO lines. On the C64 they are connected to memory mapping and various hardware. On the 1541 they are used by the ROM.

  13. How long... by MisterBlister · · Score: 3, Funny

    Until they get slapped with a lawsuit from Real due to using their streaming format without permission? .. Sigh!

  14. From one of the creators by adadun · · Score: 5, Informative

    As one of the guys who made this, I must say that I am amazed to see how well our C64 server is handling the Slashdot-effect. With a little more than 50 comments, I still can load parts of the first page.

    The web server that runs on port 80-84 actually implements a simple form of overload protection and during testing, we managed to serve 8000 pages over a period of 30 minutes. That makes 4 pages per second! Note that it is only the first page that is overload protected, so the other pages will still load very slow (if they will have a chance to load at all!).

    The real-time streaming audio server is running on the same machine as the web server so nobody will probably have a chance to hear the audio stream.

    Furthermore, the headline is wrong - we are not streaming RealAudio. We are streaming audio using the open RTSP/RTP formats that RealPlayer and other players can handle. The RealAudio file format is secret so we would probably have been sued if we had been streaming that.

    Finally, here is Google's cache of our newsgroup announcement.

  15. This is great news by Anonymous Coward · · Score: 4, Funny

    Maybe Jon Katz's friend, Junis can now send us live streaming audio from Afghanistan using his Commodore! That is, if he can spare the bandwidth and disk space that he uses to download all those DivX ;-) movies.

  16. Re:My goodness. by BobTheBooser · · Score: 5, Informative
    Anyways, how in the hell were they able to reverse real audio encoding?

    They didn't they implemented a version of the standard RTSP/RTP protocal. This is an open standard similar to TCP/IP standard. It just happens to be the standard that Real Player uses for its protocal.

    The RTSP (Real-Time Streaming Protocol) is a standard (RFC2326) session initiation/maintenance protocol that is used by RealPlayer, QuickTime, and many other real-time audio and video players.
  17. Re:Hey now! by radja · · Score: 3, Funny

    how about a C64 port of bnetd ?

    //rdj

    --

    No one can understand the truth until he drinks of coffee's frothy goodness.
    --Sheikh Abd-Al-Kadir, 1587
  18. MIRROR MIRROR by jsimon12 · · Score: 3, Informative
    Went ahead and mirrored the site since it is a little slow:

    http://www.xemu.org/mirrors/adam/

  19. Re:So these guys did essentially nothing by glwtta · · Score: 4, Insightful

    Well what the fuck did you do? Sat on your ass and read /.? Yeah, that's much more impressive.

    --
    sic transit gloria mundi
  20. Hmmm. C64 vs. NT4 by mrselfdestrukt · · Score: 4, Funny

    Is it just me or does that little C64 perform better than a NT server running IIS?
    I'm sure it will stay up for longer as well...
    Let's count the security holes...
    This is really funny!
    Then again: The OS on my mobile phone is more reliable than NT.
    Oh, ok, we are talking about the C64 right? Wow, it's smaller than a NT server! Oops, here I go again.

    --
    "I used to have that really cool,funny sig ,but it got stolen."
  21. c64/tcp by devonbowen · · Score: 3, Interesting

    Ah, memories. Back when C64's were actually modern, I attached a hardware UART to the bus and used it to drive a ham radio packet modem (at a whopping 1200 baud). I wrote enough of the IP layer in hand coded 6502 assembly language to get ping and basic routing working. Then I pinged our BSD 4.3 Tahoe machine at the university five miles away. This was in the mid-80s or so. Unfortunately, I never had time to continue up the TCP/IP stack. Glad to see these guys pushing the limits of that little box.

    Devon

  22. Re:For their next trick... by cyrek · · Score: 3, Informative

    Now, if you'd said lunix you might have been right. It's a nice little Un*x clone specifically written for the 8-bit Commodores.

    --
    Insert witty sig about inserting witty sig here, here.
  23. Access statistics update by adadun · · Score: 5, Interesting

    It has now been four and a half hours since this appeared on the front page, and our C64 server is still up and running.

    I was just able to reach the access statistics page. There has been a total of 32000 accesses (of which 8000 came before the Slashdot attack). 25% of the accesses have been for the /index.html page and only 1% have been for the RealPlayer description file /c64.ram.

    24000 hits in 4.5 hours, thats nearly 1.5 hits per second.

  24. Re:Ingenuity by tomlouie · · Score: 4, Insightful

    Who's to say that their ingenuity wasn't spent doing something worthwhile? They had a blast, I bet, they overcame technical problems, and they learned a lot. And, they furthered the knowledge and realm of possiblility. (Who would have thought that a C=64 could handle a /. load?!?)

    Now, if you were talking about the millions of dollars that goes into sports every year that could have been going to something worthwhile, I would agree with you.

    Tom

  25. Re:Isn't that a C-128?! by mvdwege · · Score: 3, Informative

    No. It's a C-64 v2. Later C-64s came in a C-128-like case, with a modified chipset. They used the 85xx series of CMOS chips, like the C-128. Most important difference was in the voltages used to drive them. I believe the 6581 SID used a +12 volt line to drive its oscillators, whereas the 8581 used +5 volt.

    I may be wrong, but I do remember that the 85xx series could not be used in 65xx slots. That was a bastard when my 8581 died in my C-128, as that part was produced in such slight quantities that I could only get a 6581 as a replacement, which was no use. I not only lost sound, but I lost my random number generator as well (the RND function was seeded from the white noise oscillator in some programs).

    Mart
    --
    "I know I will be modded down for this": where's the option '-1, Asking for it'?
  26. Re:My goodness. by multipartmixed · · Score: 3, Informative

    > Commodore was actually the first to mass-market
    > a system based on that type of head & disk format

    Bzzt! Wrong. As far as I know, IBM was, but not Commodore. While its true both systems used 5.25" double-density disks, IBM PC disks are MFM encoded; Commdore's disks are GCR encoded from the 4040 (late 70s) until the release of the 1571 (late 80s). The 1571 added an MFM encoding mode and double-sided capability in order to be compatible with CP/M disks for the CP/M mode of the C128. That was the first drive able to read PC floppies, although extra hacking was required.

    The 4040 (cum 1530, 1540, 1541) disk format that we're all familiar with held 170K -- actually, 169984 bytes of data after formatting, arranged in 664 blocks of 256 bytes.

    --

    Do daemons dream of electric sleep()?
  27. C64: cooking with BASIC by Frank+T.+Lofaro+Jr. · · Score: 4, Funny

    Well if you want to cook a C64, there is a BASIC command that may do it:

    WARNING: Use of this is at your own risk! May destroy hardware! Not recommended for any machine you'd like to keep! I WILL NOT BE HELD LIABLE FOR ANY DAMAGE WHATSOEVER

    POKE 53270, PEEK(53270) OR 32

    I did it and I could feel heat coming up from the keyboard and a smell like thermal paste overheating or something.

    I turned it off very quickly and it did survive.

    It was responsive and with a normal display right until I cut the power.

    Some C64 docs say bit 5 of register 53270 is the reset bit for the VIC controller.

    Some just say, ominously:

    "ALWAYS SET THIS BIT TO 0!"

    Why a reset bit would cause an overheat is beyond me. Anyone have a clue? I'd really like to know what is so bad about setting that bit. I was hoping it would just be a reset bit.

    --
    Just because it CAN be done, doesn't mean it should!
  28. "Because You Can" Category by Tony.Tang · · Score: 4, Interesting

    This is a cool project. /. should add a new category called, "Because You Can." You see, there are a lot of wicked projects that we cover here, but they're not so much funny as, "This is totally sweet." (e.g. linux on ____, webserver on _____, and now of course, real-audio streaming on _____).

    Invariably when we cover these, you get a few responses like this: "Why would you ever want to do this... blah blah."

    Invariably, the response is: "Because you can."

    The next step, of course, after creating such a category, is to make sure it's mirrored well before it's posted. (*wistful look*)

    Now, I haven't checked whether this story is a hoax or not, but if it is, then it should be in the "Funny" category. Otherwise, consider this post as a call for a new category called, "Because you can!"