To add to user Raffzahn's answer - this
It generates RAS/CAS signalling for each and every access, no matter what address is used (*1).
would imply that - talking about a system without any cartridges inserted - when a Program writes to the I/O area, for example some VIC or CIA hardware register, RAM memory in the $Dxxx area gets clobbered. Unless I'm ...
Is there an escape character in ca65 to add such commands to a text string?
In general: No.
The whole ASCII(Z) mechanic is meant to write device independent code, so adding device specific sequences is rather outside of the scope. To get arbitary inserts, you may want to use the good old .BYTE:
msg .BYTE "Hello ",$05,"World",0
Then again, there is a way ...
The Inception 8 joysticks adapter uses a joystick port for two-way communication between C64 and Inception board. Basically, a program at the C64 would send a command sequence via the joystick port, switches the port to listen and receives the Inception board's reply. In most cases, the information communicated is the state of the joysticks connected to the ...
CL65 is using "C64" target, while CA65 uses "none".
Adding a -t none should make this disappear.
The CL65 documentation for -t does clearly point out the difference:
-t sys, --target sys
The default for this option is different from the compiler and linker in the case that the option is missing: While the
other tools (...
The absolutely minimalistic approach would be to just start the Commodore 64 emulator, the C64 then greets you with its starting message and a blinking cursor. Here, you can already start programming in BASIC. There are many tutorials out there for programming the C64 in BASIC, for example here.
When you want to write more performant programs, you either ...
I worked for a company called ibidinc in the 80s. We released an adventure game called THE ALPINE ENCOUNTER in 1985. It was written in Forth, so we were able to release simultaneously on the Apple II, Commodore 64, and IBM PC. There were plans for a sequel but they never came to fruition.
I wrote C64-Forth way back in the early 80's (we sold it to Commodore but they disbanded their software products group shortly thereafter and it never made it out of the loading dock). Had some interesting users of it, including Lawrence Livermore Labs.
Portions of it were in assembler. All the math was implemented by calling the C64's internal ROM math ...
The most common usage for an expansion bus extender was to simply eliminate the wear-and-tear on the computer's expansion connector from frequently swapping cartridges in and out. Instead, the expander offered a more "sacrificial" connector for this purpose, and could more easily be replaced if the connectors wore out.
The most common case I know of for ...
Background: The Original PET Keyboard and PETSCII
Most of these keys have their roots in the original Commodore
PET 2001 keyboard:
The scanning and conversion was complex and seems to have
varied somewhat by ROM version, but eventually a PETSCII code would
be produced from a keypress. For the original keyboard, typing a key
with a printable character would ...
Although not an extender in the true sense as it only had one cartridge port, the Magic Voice expansion allowed game cartridges plugged into it to take advantage of its abilities to provide speech in games. This ended up only being used by the Wizard of Wor and Gorf titles. However, it is technically two cartridges working simultaneously that an "end user" ...
extend [...] with boards like this one
It might be notable, that the mentioned X-pander-3 is a rather new and comfortable solution.
Many extenders, as they were called back then, were much less capable, often barely a switch to enable power to either cartridge.
Typical examples are
Various Extenders from Rex ...
What was special about these cartridges that they need a separate slot in the emulator?
The original hardware has one expansion port. Some 3rd party manufacturers (such as Aprospand, .PDF Manual) made bus extenders that plugged into the port, allowing you to install multiple cartridges which could be used one at a time.
The Vice Emulator uses software to ...
This is intended to supplement the other answers here; you should also
read them if you've not done so already.
There are basically two possible situations when it comes to address
mapping and interaction with the cartridge.
If you assert G̅A̅M̅E̅ and do not assert E̅X̅R̅O̅M̅, there's only one
address mapping configuration possible because ...