A downloadable tool for Windows

Download NowName your own price

Welcome to Pas 6502, the home of my Pascal cross-compiler for 6502-based machines like the C64, C128, BBC Micro. I will add other machines when I can!

PREREQUISITES!!: Needs a Java Runtime Environment at a minimum (see readme file).

Kick Assembler (the assembler) & exomizer (packing program)is already included in the download...

You can download the readme help file separately to peruse before using the tool, but it is included with Pas6502 too.

NOTE: make sure to save your projects before compiling them just in case the compiler locks up when processing the project (rare, but does happen...unsure why yet).

Press F1 in Pas6502 to open up the help file (or open it separately ). You can then navigate via the URLs to download the prerequisites.

There are multiple download files, one is the compiler itself (includes other files too though), a separate help file (included in the compiler too), and an examples zip that you download and extract into the pas6502 folder. There is a includes.zip file that will sometimes get updated (also extract into the pas6502 folder). When Pas6502 is next run, it will find all the example projects in the sub-examples folder and add them to the menu to browse.

With it, you can create programs/games by compiling a subset of the Pascal language ready to be run in an emulator or on real hardware!

It is currently aimed at the C64, and to a small extent so far, the C128, and the BBC Micro. This will be updated in the future. I will add support for other machines like NESAtari, etc. as I figure out how.

I believe it's pretty useful, but I will continually develop it. It's free, but if you want to donate to support my work, you can 😊 Donate when downloading, or send me a coffee.

The source code is available at the link below, but I've not finished updating it yet


Hope you find it useful!!

Updated 15 days ago
StatusIn development
Rated 5.0 out of 5 stars
(1 total ratings)
Tagsatari, bbc-micro, Commodore 64, compiler, cross-compiler, pascal, utility


Download NowName your own price

Click download now to get access to the following files:

examples.zip 38 kB
README_help.rtf 9 MB
include.zip 98 kB
pas6502.zip 3 MB

Development log

View all posts


Log in with itch.io to leave a comment.

I am trying to compile one of the example programs but I always get this error: "Please use "Options" to configure where the emulators are found!"  even after configuring all the paths to the emulators.

Could you send me a screenshot of your options dialog and your .ini file? Maybe I can see something.

I have the same problem.  Do I need to have Kick Assembler and Exomizer installed?

(1 edit)

Kick assembler and exomizer is already included. I'll check my code... Since I have the c128 emulator already and it's the default path, I'll check the code again.

Ok, I've checked my code and it looks good; it saves the text result from the dialog box to the variables, and writes the variables to the .ini file.

I had to copy the "pas6502" folder containing all the files to the main C:\ drive.  Editted "pas6502.ini" to point to my emulators before it would compile.  When I look in the Options>Paths window the directory paths do not show the values I manually edited but your app still compiles and runs.

What drive did you initially copy pas6502 to?

It is supposed to auto read from the pas6502 folder wherever it is.

Did you hit cancel instead of ok on the dialog box? That would not change the setting. In the meantime, I'll also look at my code to make sure I actually do save the new c128 path stuff when ok is pressed 😅

Ok, I've checked my code and it looks good; it saves the text result from the dialog box to the variables, and writes the variables to the .ini file. Apart from hitting cancel instead of ok, or getting the path incorrect, I'm not sure what is going it right now

Mention of the NES and Atari (2600?) is quite a tease.  There are very few options for the NES in higher level languages.


Thanks for the comment, I AM going to add NES and Atari examples into the compiler as soon as I work them out lol