212

I'm the author of the TPUG article. The "BILL GATES SUCKS" message isn't really an Easter egg; that was just a conceit of mine to make the article a bit more interesting and to turn it into a bit of a puzzle. Here's how it works and how it was created: In any given infinite sequence random numbers, it's a mathematical certainty that a given subsequence of ...


59

One basic distinction in acoustics is the one between sounds that oscillate with a pattern that is repeated over time and sounds that are chaotic in nature, and show no repetitive pattern. Sounds of the first type may be referred to as "tones". There are a few tones that can be described by a very simple mathematical equation, for example the the square ...


56

Epoxy offers two advantages -- it is an electrical insulator, and it conducts heat better than air. Transformers and inductors are generally potted with epoxy for this reason. [ref] Perhaps the cause of the high failure rate is that Commodore engineers decided they could use cheaper components to build the power supplies, depending on the epoxy properties to ...


56

As Wilson points out in his answer, it has to do with how the CIA chips interact with the keyboard and the joystick ports, and the confusion that can arise trying to determine where input is being received from. Compute!'s Mapping the Commodore 64 has an excellent write-up here explaining how the "Complex Interface Adapter" (CIA#1) deals with scanning the ...


54

I don't think that's an easter egg. Someone just made an effort to find random seeds that produce the numbers to create the intended words. It would be an easter egg if the seed numbers were in some way related to CBM or Microsoft. A=RND(-A) initializes the (pseudo) random generator with A, generates a random number and stores it in A. The GOSUB20 ...


46

Time to market was another factor. I worked in the games industry in the 1980s and we were getting the final game from the developer, mastering to cassette and disk just hours before they went in to production and (typically leading up to Christmas) they were in the shops just 48 hours later. Often there would be a bug found and disks would be re-written ...


45

Your assumptions about timing and interrupts are correct. Actually, it is surprisingly easy to add SID music to games because they tend to follow a basic pattern. Compose the tune in a C64 SID editor. There are many of these. The SID editor generates a SID file, which actually includes both the data and code for playback. It's easily incorporated as DATA in ...


39

The ← and ↑ symbols were originally included in ASCII-1963 as programming operators. They were used in a number of programming languages at the time, but the only common usage left today is in Smalltalk where the _ and ^ characters which replaced them in ASCII-1967 can still be used for variable assignments and variable selectors, respectively. The ...


38

The ones you list are all S.A.M, from what is now SoftVoice Inc. It was developed first for the Apple II, Lisa, Atari 8-bit machines and the Commodore 64; based on awareness of those versions, the company was contracted directly to supply the bundled speech generators for the Macintosh and Amiga. So they all sound the same because they are ports of the same ...


36

That interpreter apparently parses the source text, or at least the numerical literal values, at every execution. π is a single-byte magic token, therefore, as soon as it is recognized, it is immediately substituted with the value of Pi, and nothing else needs to be done. When a byte that might occur in a number is parsed, the number parsing routine begins....


35

The basic principle behind overclocking is that if you speed up a clock, everything that runs from that clock will go faster. But there are some parts of your computer that you don't want to speed up, and NTSC (or PAL) video output is one of them. In order for C64 output to be displayed correctly on an NTSC/PAL monitor, it needs to be sent to the monitor ...


33

The VIC-II chip inside the C64 computer outputs a S-Video signal, which is mixed and modulated into the matal box that contains the UHF modulator circuit. Earlier models made composite video available on the A/V DIN connector. Later models also made separate componentes (luminance and chrominance) available as well. For the sake of image quality, and as you ...


32

The Restore key triggered the NMI (non-maskable interrupt) line; to actually have an effect it had to be combined with Run/Stop - it would soft-reset the machine (via an indirect jump vector that could be overwritten to a custom routine if desired. This wouldn't reset memory, but would stop even misbehaving programs in most cases.) Run/Stop was two keys; ...


32

A cartridge was limited to 16 kbytes ROM, and some were only 8k. There would be plenty of RAM to use, but the code and data must fit into the 16 kbytes. As programs became more sophisticated, the desire to make full use of the C64's sound, graphics, and sprites, ROM size would often be a limiting factor. OTOH, a program loaded from disk (or for the ...


29

It's not possible. VirtualBox only supports emulating IBM-compatible x86 and x86-64 systems. The Commodore 64 uses a 6510 CPU and a wildly different architecture. In order to run Commodore 64 software, you need a dedicated C64 emulator such as VICE.


28

Hardware-wise, the Commodore 64, like most early computers, was synchronized to its graphics output: in the case of the C64, the CPU clock was derived from the timing crystal in the video hardware. From a game-programming standpoint, the most important timing element is the vertical refresh rate: the 50 Hz (PAL) or 60 Hz (NTSC) rate at which the screen ...


26

Internally, a BASIC program isn't represented as the text you see when you list it, but as a tokenized data structure where each of the language keywords are represented in an optimized 1-character form. Basically, if the upper bit is set in a character byte (i.e. values >= 128/$80), it is processed as a token. Note that this does not only apply to the ...


25

The simplest method of archiving old C-64 disks would be to get a ZoomFloppy and a 1571 floppy drive from eBay. I say 1571 because it's much less likely to have alignment problems. The ZoomFloppy will allow you to control the 1571 from a Windows, Linux or MacOS computer. You can convert the disks into .d64 images that are suitable for use with an emulator ...


25

It is well established that Microsoft's 6502 BASIC (and Commodore BASIC is just a manufacturer specific adaption) is a port of the original 8080 BASIC done for the Altair -- alas, not a direct one, as the prior port to 6800 was used as code base (*1). The creation is attributed (in its source code) to three programmers: Bill Gates for the execution code (...


24

No hardware revisions are necessary. The digitization playback is achieved by bit-banging the volume register of the SID chip to simulate a digital playback device. Essentially, the SID can be used as a 4-bit digital playback device. What's amazing is that the thing sounds as good as it does playing back digital data. A great article about digis on the ...


24

Use the INPUT# command. The INPUT# command is meant for non-interactive I/O on files or devices, i.e. reading from a file on disk, serial port, whatever. Because it is non-interactive, it will not display a prompt anywhere. The keyboard can be opened like any other I/O device, it has device number 0. Knowing that, the implementation is straightforward. 10 ...


23

Because of the way that the joystick port 1 is mapped to the same hardware as the keyboard, from the software's point of view it's impossible to tell if you're wiggling the joystick or typing something on the keyboard. So many games used port 2 instead.


22

The Commodore 64 requires a power supply that provides both 9V AC and 5V DC. If you're interested in building your own, the power supply has a male circular 7 pin DIN connector. Pins 1-3 are ground (pin 2 is the 5V ground), pin 4 is either unconnected or +5V, depending on the version, pin 5 is +5V, and pins 6 and 7 are 9VAC. (source)


22

Well, it's a 'trick' to simplify the editor as well as the BASIC editor. After Reset (or NEW) three bytes of Zero are placed at the beginning of the basic RAM. They make it look to the basic interpreter as this looks like the tokenisation of a single, empty BASIC line. Consisting of One byte 00 as line end marker and Two bytes 00 as pointer to the next ...


21

Many PSG's (Programmable Sound Generators) at the time (such as the popular AY-3-8910) were made for applications like doorbells, kiosk machines, etc. And, of course, arcade machines and computers. The reason they had noise channels was simple. We need a way to synthesize sounds like drums, snares, and explosions. The best way to do that is to use random ...


21

Originally intended for use with paddle input devices (and, like everything else on the C64, since exploited to the limit), the C64 has A/D converters readable from code exposed on the joystick ports. It also has power rails exposed. Combine that with the lowered resistance of a moist finger and it is absolutely possible to read changing resistance values ...


21

Electricians some times (or used to) do similar techniques when configuring wiring -- once the wires were in place, they would fill the cavity with a non-conductive resin or epoxy, so that the chance of any movement or shift in the wiring would cause a short or a disconnect is greatly reduced. I've seen this in numerous situations myself, including air ...


21

Try using the "new" command. This clears BASIC's memory, so that you can write a new program.


21

How SAM works SAM was written to be usable on many different computers. So instead of using the SID chip in the usual way, the CPU has to work to sample the phonemes itself. The SID could have taken a lot of that on, since it has its own oscillators, waveform generators, ASDR volume control, and all that. This would all have been very useful in speech ...


21

In addition to RichF's answer, tapes were a lot cheaper than cartridges to manufacture. Tape duplication in the 80s was very low cost due to the high volumes involved, not least thanks to music distribution on the format.


Only top voted, non community-wiki answers of a minimum length are eligible