Skip to content
Alessandro Abbruzzetti edited this page Feb 2, 2018 · 28 revisions

Welcome to the kernal64 wiki!

Software

The Kernal64 emulator can execute programs taken, mainly, from four types of devices:

  • D64,G64 1541 disk format
  • D71 1571 disk format
  • TAP/T64 tape format
  • PRG files
  • CRT, cartridges

Here a list of sites where you can find games, applications, utilities, etc:

Joystick & Keyboard

The joystick can be emulated via keyboard or via a real USB joystick. The joystick with keyboard emulation can be done via keypad (INS key is fire) or via custom keys chosen by the user. See Settings -> Joysticks menù.

For the keyboard I'm using the Italian Keboard Layout:from 1.4.0 the layout can be modified with the Keyboard Editor and saved in an external file.

Connecting to a BBS (or to Internet)

Yes, it's possible, still today, to connect to an old Bulletin Board System. For a list of BBS see http://cbbsoutpost.servebbs.com/

To connect to the external world, the RS-232 interface is used: Two ways are possible, the User Port and the Expansion Port. The first one was used, mainly, for the old Commodore modems. The RS-232 Kernal routines work on this implementation but are limited to 1200/2400 baud. The latter one was used by cartridges, like SwiftLink and can run up to 38400 baud.

To activate an RS-232 implementation go to the Settings Menu, and select RS-232. Here you can choose the available implementations. The Telnet implementation must be used to connect to telnet BBS or in general to a telnet server: in the pop-up insert the host:port references followed by modem parameters baud,bits,parity,stop bits. For example: borderlinebbs.dyndns.org:6502,1200,8,n,1.

The Tcp implementation can be used to connect to a tcp endpoint, like CommodoreServer.com. In the pop-up use the following parameters: www.commodoreserver.com:1541,1200,8,n,1

The Process implementation executes an external process and uses its input/output stream to read/write bytes that will be exchanged with the RS-232. A good example is the Slack client from http://1amstudios.com/2016/11/27/c64-slack-client. In this case the external process is the nodejs executable that runs the app.js application.

For SwiftLink, choose "SwiftLink $DF00" (if you want to put it on IO2) or "SwiftLink $DE00 + REU" to install a SwiftLink on $DE00 + 512K of REU on $DF00. Then it asked to type the configuration string: here you can type the bbs server and port, to connect immediately, or you can type 'modem' to postpone the connection. If you postpone the connection remember to connect inside your terminal program: in the terminal type ad host:port + RETURN. I suggest you to use NovaTerm v9.6 as a terminal program. Remember to select the SwiftLink RS-232 driver.

Here some examples:

commodoreserver commodoreserver particles antidote.triad.se

Flyer internet modem

Under Settings -> IO -> Flyer internet modem you can enable the Flyer card on device 7.

The implementation does not support the cloud functionalities.

The Flyer is also a disks repository: you can set the local directory where you want to store the disks (Settings -> IO -> Flyer internet modem -> Set disks repository.

Try out the Flyer software

Here an example, the IRC program:

Flyer IRC

Drive issues

Some games used sophisticated fast loaders: it can happen that the default settings are not able to permit those software to run properly. Try to change the drive speed (Settings -> drive -> 1541 speed) from about 0.9 MHz to 1MHz. I found some demo scene software to run only with this speed.

Another settings to change can be the drive auto-sleep: disable the auto-sleep (Settings -> drive -> 1541 can go sleep): I found this useful, for example, for the Nostalgia games (https://www.n0stalgia.org/)

How to use custom ROMS

To load custom ROMS edit the k64.bat or k64.sh (or k128.bat/sh) script and edit the empty KERNALS_ROMS variable. Follow the instructions in the script and add the following switches:

  • -D1541kernal=1541 kernal file name
  • -Dkernal=C64 kernal file name

Both files must be placed inside the roms directory of the main installation.

For example, suppose you want to install the Dolphin DOS 2 on a Unix/Linux installation:

  1. Edit the k64.sh (or k128.sh) script
  2. Set the KERNALS_ROMS variable: KERNALS_ROMS="-Dkernal=DD_2_C1541.rom -D1541kernal=DD_2_Kernal.rom"
  3. Put the two ROMS files DD_2_C1541.rom, DD_2_Kernal.rom in the roms directory
  4. Run the emulator: you will see the welcome screen with the Dolphin DOS message
  5. Go to Settings -> Drive and select Parallel cable enabled
  6. Go to Setting -> Drive -> RAM Expansion and select the range $8000 - $9FFF
  7. Reset the emulator

CP/M support

Yes, there is a support for the old (and probably unuseful) CP/M cartridge. Under the Settings -> I/O menù select the CP/M item: now you're ready to use the wonderful world of Z80 processor. In order to get ready with CP/M you have to download the Commodore CP/M boot disk (ftp://www.zimmers.net/pub/cbm/demodisks/c64/cpm/index.html) and run it. For further reading see also http://www.z80.eu/c64.html

Here you can see the emulator running the MBasic from Microsoft:

MBasic

To make CP/M disks, please visit https://github.com/mist64/ctools

Stereo Dual SID

Try to activate the second SID from Settings -> SID -> Dual SID on $DE00 or $DF00 (as if it were an external CRT). Now you have 2 SID running together in stereo mode. To appreciate this new sound, go to http://www.lyonlabs.org/commodore/stereo-sid/stereoplayer-10_3.d64 and run it. Try to play on of the stereo songs contained in the d64 and enjoy it (remember to set the external 2nd sid address to the same set in the emulator and to disable fast loading).

Remoting (experimental)

Share your Kernal64's screen and input devices with another player on the network! Go to Settings -> Remoting -> On and select the local listening port. From now on you will see a (?) blinking in the window's title bar, meaning that it is listening for an incoming connection.

Now the other player can run the remoteclient script with the host and port parameters (host and port of the Kernal64's listening server) on the command line.

On the server the blinking (?) become (R), meaning that a connection has been established. The server screen has been remoted on the client and the player on the client can use his own keyboard as if it were on the server.

To play a game in a two-player mode on the server select the input devices: On the server you can use both the keyboard or the USB joystick, while on the client you have to use just the keyboard (custom keys or keypad).

Here an example of the Pit Stop 2 game (I did not make an instant snapshot on both client and server...) :

Remote server Remote client

Clone this wiki locally