Questions tagged [commodore-64]

For questions about the different versions and products of the Commodore 64

17
votes
12answers
4k views

Did early assembly games use hardcoded memory locations?

In the era of C64, Apple][ GS, and SNES, did the games use hardcoded memory locations, or did they let the assembler help them (like modern assemblers)? If yes, how did they manage the memory?
27
votes
3answers
2k views

What was the purpose and history of the C64's special keys?

I never had a Commodore 64 but I've always been curious what the purpose and history of some of the special keys were. In particular: C= Run/Stop Clr/Home Restore I'm mostly used to the standard ...
2
votes
1answer
131 views

Pac-Man-like: Playing a Excavator bucket or mining drill on a cable

I remember playing this game on the C=64 in the late 80s or so. It was 2d 'platformer' arcade game where you have to clean the screen from pills like Pac-Man, but in a different way. You would always ...
5
votes
4answers
719 views

Was the output of the C64 SID chip 8 bit sound?

Was the output of the C64 SID chip 8 bit sound? I know that SID is not sample based, but instead generate its sound using sine waves and white noise. So is it correct to say that the audio ...
16
votes
2answers
466 views

How to create a switchless multi-system 2 button Atari joystick?

All systems that use the Atari 9 pin joystick standard make use of the following pins in consistent ways, with each direction and the fire button being connected to the ground pin when pushed. 1 - up ...
2
votes
3answers
654 views

Reading both keyboard and joystick with non-KERNAL code on C64

I'm implementing non-KERNAL joystick and keyboard controls for my Commodore 64 game. I used to use the KERNAL SCNKEY routine earlier to read keyboard and it worked well with my joystick port 2 code. ...
5
votes
1answer
275 views

Where are the pullups for the Commodore 64 keyboard matrix lines?

I'm looking at the schematic and the Service Manual for the Commodore 64. I can't seem to find a schematic for the keyboard itself. It seems clear that the control port 1 joystick has normally open ...
5
votes
0answers
196 views

Does the Commodore 64 power switch have a history of failing?

My original (1983?) Commodore 64 (brown breadbox with grey function keys) has trouble powering on. Specifically, when I flip the power switch the power LED will glow dimly and the machine fails to ...
33
votes
3answers
3k views

Why are C64 games inconsistent with which joystick port they use?

The Commodore 64 has two DB-9 joystick ports. If I'm the only person that ever plays games on it, you would assume that you could just leave a joystick plugged into Port 1 and be done with it. However,...
5
votes
3answers
429 views

Commodore VIC-20/64/128/16/Plus 4 floppy disk drive replacement

We all know that floppy disks are getting hard to find, and floppy drives are fragile to begin with (especially Commodore's 1541 drive). I know that several companies and parties have released floppy ...
4
votes
3answers
321 views

C64 cartridge emulation with ATmega

As a personal project I had the idea to create a custom cartridge for my Commodore 64 and use an ATmega 1284p microcontroller to emulate eproms and/or custom chips. Basically my idea is similar to ...
9
votes
6answers
1k views

Is there a C64(or any other) emulation that can be run in terminal?

I was looking for a C64 type computer that can be used in the terminal. Can I code one or is there one on the interwebs?
10
votes
1answer
1k views

Which C64 games support two buttons?

CIA 6526 chip used in Commodore 64 is capable of controlling two separate joystick buttons. But the second button should be connected through paddle pot input. This option was not popular till the ...
10
votes
4answers
767 views

Looking for an easy to use Commodore 64 disk/sector editor

First, let me say I understand that 'recommendation style' questions can be very subjective, but I believe there is enough value in a few good beginner resource pointers that others could benefit from ...
12
votes
1answer
1k views

Number of transistors in the C64

How many transistors are there approximately in the C64 if we consider every chip on it? I think that it is something around 50.000 but I'm not sure.
1
vote
1answer
248 views

How to add Final Cartridge III to VICE C64/128 Emulator

How do I properly add Final Cartridge III to VICE Emulator? In the file menu, VICE has an item Attach cartridge image... which splits up into CRT Image but also a list of several cartridges, among ...
4
votes
4answers
365 views

How can I implement the modulus operator in Commodore 64 Basic?

How can I implement the modulus operator in Commodore 64 Basic? There are not a lot of math functions to work with, and modulus would be very handy.
5
votes
2answers
292 views

Is there a program I can run on the C64 to speed up booting of a game?

Though I had several friends back in the day with a Commodore 64, I only recently acquired one after a friend gave me his old one before he moved house. As such, I'm diving in to learning about the ...
12
votes
4answers
911 views

How to use BASIC after “LOAD ”$",8 on the C64

After loading a file list from a floppy disk it is hard to program in BASIC because the file list is interpreted as BASIC lines. For example there can be 20 lines with the number 1, because 20 files ...
2
votes
2answers
175 views

How can I use the Commodore KERNAL to print a character to the screen?

The routine at 0xffd2 which is called chrout will print a character to some output stream. I would like to use this call to print a message to the screen, but I have a file open for output on a disk. ...
10
votes
3answers
1k views

Why did blanking of screen on C64 SAM enable better quality speech synthesis?

There's this old piece of software still present in today's Windows called SAM that enabled C64 to speak. I remember that we could choose either screen on and worse speech quality or screen off and ...
6
votes
3answers
484 views

Can the Commodore 64 display 26 rows of text?

I seem to remember some demo, or a game, which displayed 26 rows of text (that's one more than the usual text mode resolution of 40x25). My memory of it is very hazy, but at least is corroborated by ...
7
votes
2answers
587 views

Creating Null Modem Connection between two C64s?

Trying to establish a null modem connection between 2 C64s using 1 Commodore 1660 300 Baud modem and 1 Commodore 1670 1200 Baud modem. Does anybody have detailed instructions on how to configure the ...
9
votes
1answer
731 views

Looking for a specific 6502 Assembler

I found some 6502 assembler code for a Commodore 64 program that uses meta commands like #include "foobar", define the address to be assembled to via *=$1234 and define labels without a colon. ...
5
votes
2answers
312 views

Method for adding firmware to a Commodore 64 expansion card?

The C64 expansion port can and does support multiple IO devices without conflicts. There is 0.5 KiB that is decoded for $DE00-$DFFF, using /IO1 and /IO2 on the expansion port. As long as the devices ...
12
votes
1answer
722 views

Was the Spartan by Mimic Systems a real product?

I was flipping through an old copy of RUN magazine and came across an advertisement for a product called "The Spartan" produced by Mimic Systems. I had forgotten about this product completely, but I ...
31
votes
2answers
3k views

Why did the C64 have ← and ↑ as dedicated keys?

I've always wondered why the Commmodore 64 had discrete keys dedicated for the ← and ↑ symbols. If I remember correctly, they weren't used in BASIC at all, and were not very useful for drawing, ...
10
votes
3answers
2k views

Visible resolution of C64 video output, including borders

The VIC-II in the C64 outputs 320x200 pixels inside the borders. What is the full visible resolution including the borders? To clarify, I am interested in the full screen size in units of normal ...
19
votes
5answers
3k views

How can I power a C64?

I was chatting with our neighbor and after some long talking, I found out that he has a Commodore 64. I'd love to test it, however I'm not sure how to power it. How can I power a C64?
4
votes
3answers
1k views

Recovering old Commodore 5.25" floppy disks

I picked up a Commodore 64 with about 1,500 floppy disks. Many of them are de-magnetised and there is currently only one disk I can run (been through about 100, I can see the files of 2 or 3 disks, ...
4
votes
2answers
317 views

C116 vs C64 cost

The Commodore 116 was the start of the ill-fated TED line of 8-bit computers, which sold poorly (for several reasons, particularly including lack of compatibility with the Commodore 64) until they ...
6
votes
3answers
632 views

Commodore 64 with red and white RCA cable

After discovering my old Commodore 64 in the garage, I wanted to test if it still works. The power light comes on but the video connection to a modern TV is obviously an issue, as mentioned here. Well ...
6
votes
3answers
851 views

Getting your Commodore VIC-20, 64 or 128 online

Back in the day, of course we used modems ("dial-up modems" in today's parlance) to get our Commodores connected to other systems. These days I know several people have concocted options to get ...
6
votes
3answers
278 views

Why do we need to acknowledge the interrupt from VIC-II?

A page on how to do raster interrupts includes the following code Irq: LDA #7 STA $D020 ; Turn screen frame yellow LDX #90 Pause: DEX BNE Pause ; Empty loop that "...
6
votes
1answer
400 views

How did the C64 interface tape drives?

How did the C64 interface tape drives? I'm aware that the external interface was basically a audio input - but how was this audio converted into digital data, and how was it loaded into RAM and ...
4
votes
2answers
329 views

When were sprites first displayed in the border area?

I assume one of the first undocumented effects on the VIC-II was the ability to display sprites in the (upper and lower) border area. I wonder how and when this was first discovered and used? Was it ...
1
vote
1answer
123 views

Is it possible to switch the interrupt source of the C64 to VIC without changing the IRQ routine?

The ROM IRQ routine at $EA31 is usually trigggered by the timer interrupt 60 times a second. Is it possible to switch the interrupt source to VIC and still use the same routine? If yes, which memory ...
14
votes
2answers
504 views

Can a Commodore 64 use two screenmodes on one scanline?

Many games, for example, Maniac Mansion, or Kissenschlacht, use two screenmodes. Oftentimes, a bitmap mode for the main screen, and a text mode for the lower part which displays scores or whatever. ...
5
votes
2answers
267 views

How to exactly sync to the raster line for a vertical raster split?

Motivated by Wilson's question Can a Commodore 64 use two screenmodes on one scanline? I tried to implement a simple example that polls the beginning of a rasterline and then switches the screen mode ...
17
votes
2answers
668 views

What's a good way to implement this “splashing water” effect on the C64?

This pillow fighting game set in Venice depicts the two opponents fighting on a wobbly gondola on a canal. It was apparently known as "Pillow Fight" in English and as "Kissenschlacht" in German, and ...
29
votes
2answers
3k views

C64: Why is POS(π) faster than POS(0)?

According to this article: german C64 Wiki article about the POS() command POS(π) is 20 % faster. Although in my experience it is ...
4
votes
2answers
318 views

Why does the Commodore 64 leave these pointers in Zeropage?

I'm trying to decide on what I can get rid of from the zero page, so that I can keep my own data there. Looking at this page, documenting what each of the zeropage locations do, I'm trying to figure ...
12
votes
2answers
633 views

Why was BASIC on the Commodore 64 one byte shy of 38KiB?

When you power up a Commodore 64 you are greeted with a friendly message telling the user it has 38911 BASIC bytes free. 38,911 is one byte shy of a 38 KiB (1,024 * 38 = 38,912). What was the reason ...
1
vote
1answer
177 views

How to read disk files using CBM specific functions in cc65 with proper error checking

TL:DR What is the reason my kernel_read() function ignoring file errors? I'm trying to understand how to work with files in cc54 using CBM specific functions. My target is Commodore 64 with 1541 ...
6
votes
2answers
345 views

Why the disparity between the screencodes and the character codes?

The Commodore 64, and possibly others, I don't know, have character codes (These map integers to characters, in the same way that ASCII does) and there are screen codes (The offset which the VIC-II ...
22
votes
1answer
4k views

Why do all the Speech Synthesizers have that same Voice?

The first time I ever played with software speech synthesis on a microcomputer (not hardware synthesis, like in TI's Speak & Spell) was around 1983, using S.A.M for the Commodore 64. A year later,...
11
votes
3answers
1k views

How do serial (user port) adapters achieve speeds above 1200bps in C64?

The information I have states that the userport' serial speed is about 1200bps, but there are some carts going up to 9600bps. I would imagine that the 1200 is the limit, so I'm wondering how is the ...
15
votes
4answers
1k views

What graphical effects can be created by changing the VIC-II settings?

I read in this answer that one could create graphics effects outside the usual specifications of the hardware by changing the settings of the machine's VIC-II at specific cycles during the video ...
21
votes
2answers
1k views

Why does waggling the joystick of a C64 cause errors loading from tape?

When loading a game from the tape drive on a C64, if you wiggle the joystick around too much the program will not load correctly. Is there an explanation for this? EDIT: Perhaps someone can try to ...
28
votes
2answers
1k views

Why does the C64's LIST command choke on REM statements with a Shift+L?

On the Commodore 64 and VIC-20, the LIST command will abort with a ?SYNTAX ERROR on any line that contains a REM statement with a Shift+L character. A minimal program triggering the error would look ...