A downloadable tool for Windows

Download NowName your own price

C64 Studio is a .NET based IDE.

The program supports project based C64 assembly or Basic V2. The internal assembler is using the ACME syntax.

In connection with Vice the IDE allows you to debug through your code and watch variables/memory locations, registers and memory.
Any other emulator can be set up as well if it's startable via runtime arguments.

C64 Studio allows you to compile to raw binary, .prg, .t64, .d64 or cartridge format (.bin and .crt for 8k, 16k, MagicDesk, easyflash)

Additionally to this C64 Studio comes with a charset, sprite, graphic and text screen editor plus media editor (tape and disk).

An encompassing help documentation is part of the program.

The full source code is available under the MIT license at GitHub


The current version is 7.2, updated on 06.07.2022.

Update Mega65 samples
Fix opcode doc formatting
"Fix" potential errors in dir art import
Fix: Potential crash on malformed path in !src
Add: First experiments with NCM mode (mega65)
Fix: automatic horizontal scrollbar would not always become visible when tabs are hidden under the mini view
Fix: Issue with temp labels that are modified inside !for loops
WIP: Mega65 NCM
Fix: Major speedup for copying sprites to clipboard
Fix palette mapping for unpaletted pictures
Fix: UTF8 encoding without BOM
Fix alpha part of incoming palette
Add vscrollbar to image list box (now works in character selection panels)
Fix: BASIC - Proper handling of hexadecimal literals for BASIC 65
Fix? : Downgrade DockPanelSuite (had some issues one some machines the layout was hosed on startup)
Add: Outline double click automatically selects source
Add: BASIC65 WPOKE token
Add: BASIC warning if truncated variable names end up ambigious
Add BASIC/Assembly combined sample
Fix potential crash in build
Add: Mega65 sample project Dalek Attack (BASIC)
Fix: On charset import in char screen editor verify import format
Fix: Do not auto-collapse binary literals into local labels (#..## variant)
Add: BASIC #include directive
Add: !nowarn pseudo op
Fix label location
Fix: Import/export for sprite editor
DockPanelSuite Crash fix
Update DockPanelSuite
Add: Button to toggle collapse state of zones in assembly
Add: Stop autocomplete on opening when inside a comment
Add: Dependency checking for missing target files
Cleanup: Import methods in separate forms for Charscreen
Add: charscreen editor Cleanedup export methods, add as string, replace space with cursor right and strip unused color options
Cleanup: Export methods for charscreen editor
Fix: Enhancements for issue https://github.com/GeorgRottensteiner/C64Studio/issues/56
Fix: Reordered BASIC dialect file for Mega65/V10 so GOSUB and GOTO are highlighted properly
Fix: PETSCII table issues (no redraw, no insert if docked)


Updates for 7.1:

Add: Charset screen copy to clipboard also copies image section
Add: Force HiRes bitmap export to use the same color settings if possible
WIP: Relocation file
Fix: BASIC disassembler, no token completion inside string literals inside REM
Fix: C64Studio/ACME style macro only possible with + prefix
Fix: Nested loops were broken (again), last loop had wrong values
Fix crash on cloning projects on overwriting existing files
Add: !list pseudo op to suppress output in preprocessed file
Fix: Export from .prg to .bas file, do not inflate control codes to opcodes in REMarks
Add: Clone solution method
Fix: Renaming project also renames the .c64 file
Add: Caption show name of solution and project
Add: Allow copy/paste of charset from Mega65 to C64 with palette mapping
Fix: Potential concurrency issue on accessing dependencies
Fix: Temp labels not showing up in Outline/Intellisense
Add: Graphic screen editor: Support for Mega65 mode
Add: Colors to map project (beginning support for Mega65 modes)
Add: !media support for mapproject (character data)
Add: Charscreen Editor - Export to Marq's PETSCII editor format
Fix: Uncomment on half selected first line would leave the comment prefix
Fix: Potential racing condition accessing DeducedDependency list
Fix: Charset import from ASM now works for Mega65 formats
Major update on Tiny64 emu: Most common opcodes now working with Wolgang Lorenz' test suite, programs start working
Add: Hexbox, Ctrl-A = Select All
Fix: Secondary memory view uses configured colors now
Fix: Tiny64 irq behaviour, now the cursor blinks!
Fix: late resolve of temp label failed
Fix: Allow to type ? in REM again for BASIC
Add: Update Mega65 BASIC dialect file (BIT command)
Fix: add temp label type (would not show up in Outline)
Add: 32 color support for Mega65 HiRes mode
Add: Capture error/output streams for called emulators
Fix: main toolbar button size for super high DPI
Add: BASIC 65 tokens lock,unlock,bit
Add: Auto-open preprocessed file
Fix: Non project files, that are used in a shared build now also share file info (and thus Outline)
Add: Allow multiple zone declaration
Fix: BASIC Shift-Space now works as expected, Shift-Arrowup is now properly known for PI,remove shift-arrowleft
Fix: Issue 59, !trace not working as expeced
Add: Charpad V8 format import support
Add: Pre build chain projects are now properly check for changes on a rebuild attempt
Add: Option for right click behaviour in charset/sprite editor
Fix: Properly build text messages with !warn/!message/!error
Fix: Charscreen editor bg color combo fix
Fix: BASIC Allow ? as first token in label mode
Fix: Charscreen editor, allow 256 color in bg color for Mega65
Fix: Label mode toggling messing up line numbering when hard comments were inside
Fix: Character shortcut keys now also working in sprite/charscreen/map editors
Fix: Syntax coloring for tokens right after line number
Fix: ToString for real number symbols results in proper value (e.g. 1.5 instead of 1)
Fix: Outline store expansion state of "global zone" node
Add: Copy/Paste buttons in charscreen editor
Add: Allow palette import with FCM charset import
Fix: Display FCM char color 0 as transparent
Add: Go To Declaration automatically sets navigation point on source
Fix: Color shortcuts now only select color, not change it (charset editor, sprite editor)
Fix: VIC20 charset editor exchange color missing functionality
Add: Sprite editor clear
Fix: VIC20 charset mirroring X
Add: Active project per solution
Add: Charset screen import from BASIC listing (parsing PRINT statements)
Fix: single character literals
Add: text screen export with offset
Fix: theming issue on project properties for build events
Fix: Rename Atari Sample project folder
Fix: handling of string literals could result in hard coded value 1
Fix: Color chooser dialog in map and text screen editor
Add/Fix: ViC20 uses proper palette
Add: Clone Project option in Solution Explorer


Updates for 7.0:

Add: Mega65 sample projects showing a few new features
Add: Find Reference also works on macros
Add: math.floor and math.ceiling
Add: Import graphic for FCM mode
Add: graphic import, generate palette from > 8bit images
Add: Real number support throughout assembly
Fix: File manager showing proper PETSCII characters for file names
Fix: !fill with expression list filling num times sequence, not num bytes
Add: Sprite Editor, allow importing new palette from clipboard image
Add: Palette editor: Support import of regular formatted palette file RRRRRRRRGGGGGGGGGGBBBBBBBB
Fix: Backspace with tab in front could auto-delete the tab and mess up undo
Add: Exchanging colors now only affeects selected characters
Add: Changing a color auto-selects it for drawing
Fix: Mega65 16bit charmode mostly working
Add: New functions math.todegrees and math.toradians
Fix: BASIC import from prg now properly restores PI symbol
Fix: Charscreen editor - cut off floating selection, fix for 16bit chars
Fix: Share asm file info also if file name case does not match
Fix: Deleting selection with tabs inside and tabs following
Add: Mega65 16bit character support
Add: Charset project multiple palette support
Add: C64Ass -v/--version option
Fix: issue #55, watch entries cannot be deleted permanently
Add: Opcode docs for Mega65
Fix: Allow sta ( x*y) + ( 231 - 3 ),x to compile
Add: active palette per sprite
Add: Outline showing BASIC variables
Add: Store Replace settings in Find/Replace dialog
Fix: Add Project as add Existing item now properly adds the project to the solution
Add: Media Manager support for D81 format
Add: Mega65 modes in Map Editor
Fix: !dword upper two bytes were zeroed out
Fix: BASIC parser logging error on a unclosed macro
Add: assembler source file encoding choice
Fix: Find/Replace showing result on screen (scroll horz), find at first position and proper line index
Add: Sprite Editor fill method
Fix: Do not overlap pasting floating selection in charscreen editor
Fix: assembler type autodetection detecting PDS/DASM with "org" inside string literals
Add: Syntax coloring for button backcolors
Add: Charscreen editor: Painting in one stroke is now one undo step instead of every single char
Fix: undo charset screen size would not update size textboxes
Fix: Char/Sprite list remove mouse over highlight if mouse is outside
Add: C64Ass define, nowarnings, ignore specific warning arguments
Add: autofill current selection in find/replace dialog (only if single line)
Add: Support for VC20 and Mega65 FCM modes in charset and charscreen editor
Major rewrite: Find/Replace now working with tabs properly
Fix: Update BASIC 10 commands to latest doc state
Fix: Find Next/Replace Next now always starts at the cursor pos, not on a previously last found pos
Fix: Caret pos when deleting line and line below is shorted then the deleted one
Fix the strip spacing fix to not destroy code with tabs inside
Add: mega65 support to text screen editor for 80x25 modes (hires and mc for now)
Add: Strip Trailing Spaces now also trips trailing tabs
Fix: Drag&Drop with mouse dragging (plus Ctrl) works again


Updates for 6.9:

Add: restore active tab of tabbed panes
Add: Allow BASIC PETSCII macros inside !text statements (e.g. !text "{clr}hello world")
Partial fix: properly add up line sizes on overlapping content (loops, macro calls)

Partial fix: Offset line memory for nested !for loops
Fix: BASIC build now works from label mode directly
Add: Illegal NOP variants following ACME
Fix: for wrong number of bytes in string literals
Add: allow PETSCII control char substitution in assembly as well: !text "{clr}hello world"
Fix: Export map editor to assembly, unusable label names from unfortunate tile/map names
Fix: Source/label info for lines which are separared via colons
Fix: Memory map output
Maybe complete: Save As now does internal renames, save copy as does not
Fix: ASM Parser, not properly collapsing tokens if the line ends with a comment
Add: Textual memory map output after compiling
Add: Do not mark built files as dirty when switching between loaded projects
Fix: NOP $abcd now working with $0c for 6502/6510
Add: Navigating back/forward
Fix: File Manager Disk image, adding new directory entry may overwrite pointer to next track/sector
Fix: Only remove BASIC meta data line if it is actually present (facepalm)
Add: Search/Replace in whole solution
Fix: Updates the condition field when a new breakpoint is selected
Add: Find all references
Fix: Source code changes now handled with new events, breakpoint moves are now correctly handled
Add: Show all references
Fix: Potential fix for missing 3rd column in debug watch view
Fix: Adding a breakpoint via Debug Breakpoints dialog now adds a breakpoint marker in the source file
Add: Charset screen editor, show selection bounds
Fix: Disassembly not updating with code
Fix: Set BASIC V7 default start address to 7169
Add: Save/Restore BASIC file meta data (start address, dialect) in .bas file itself
Fix: Speedup of syntax coloring update during background parse phase for huge files
Fix: BASIC PRINT export from charset screen editor now working with apostrophes
Fix: bug in watch removal
Fix: Debug watches are now displayed per project/single file
Fix: Pressing the Delete Button in the Breakpoints Window will now remove the breakpoint from the ASM window.
Add/Fix: Undo for category swap
Add: Partial support for Charpad ctm format version 7

The previous version is 6.8, updated on 14.05.2021.

Add: Allow list for !fill expression
Add: Auto-Fill emulator entries on wizard or new entry
Add: !fill expression parsing with list
Fix: BASIC renumber messing up lower case mode
Add: Charsetscreen editor: Shifting
Fix: Charscreen editor: Several display errors in extra wide charscreens
Fix: Tooltips in embedded charset editor control
Add: Wizard emulator detection, Enable OK Button on paste
Add: Binary Editor: Pack half bytes and swizzle
Add: Export option for !mediasrc and maps, mapextradata only
Fix: BASIC : Most issues with upper/lowercase toggling are fixed
Enhance: Error message on wrong character count on !media/!mediasrc for charset
Fix: Imported charsets should always have at least 256 chars
Fix: Exporting from MapEditor to charscreen sets color controls properly
Fix: BASIC code, toggle upper/lower case now properly handle string literals
Add: File manager - Little feature, import screen code asm !byte statements to
automatically create dir art entries
Add: Map editor, allow export of extra data only
Fix: BASIC Editor, auto-complete BASIC commands also in lower case mode
Fix: Change operator prio of modulus to match division/multiplication. This might break things for people who don't use brackets
WIP: TASM/C64Tass support
Fix: Exporting BASIC file via File Manager now sets the chosen BASIC dialect
Fix: Autodetect assembler type fix did not properly handle comments
Fix: Crash when opening help after help was closed via close all function
Fix issue on late evaluation of relative 16 bit branches/jumps
Fix: Optimize assembler detection (skip comments)
Fix: Same issue with POIncludeMedia
Fix: Exception with !binary "
Fix: Restore cursor position/scroll offset after replace all
Add: Image export to clipboard for charscreen editor
Add pseudo op !be16, !le16, !32, !be32, !le32
Add: Adjust syntax color to currently used CPU and assembler
Add unit test for wrong memory segment combination
Fix: off by one error (writing wrong values if !fill was followed by a one byte gap and then more data)
Fix: Wrapping of tile data export in map editor
Fix: Wrong error message with overlapping segments when using !bank pseudo op
Add: Atari 2600 Samples
Add: Store collapsed/expanded state of projects/folders in Solution Explorer
Fix: DASM . as alternative to *
Add: !cpu type 6502
Fix: DASM settings to work with Atari samples
Fix: Stack Overflow when setting EMPTY SPACE background color to Auto
Fix: Re-add alternative illegal opcodes for 6510
Fix: Forward immediate labels in macros
Fix: no stripping of spaces or REMs when renumbering (requires cleanup)
Fix: Add alternative illegal 6510 opcode axs (alt. to sbx)
Fix: Line spacing and zoom issues in ASM and BASIC editor display

08.03.2021 - 6.7:

Biggest new features: Finally proper scaling support for high DPI (e.g. Surface or UHD) plus support for a few new CPU types.

The syntax of the new mnemonics is oriented on ACME. Now you can build BASIC (V10) and assembler programs for the Mega65.

In Detail:

Fix: BASIC V10, wrong opcodes
Fix: Scaling issue of PETSCII table
Fix: scaling on File Manager toolbar
Add: Ctrl-+/- to zoom in BASIC
Add: Ctrl-A (Select All) for BASIC
Fix Basic V3.5 default start address
Add: CPU opcode docs
Fix: BASIC editor line height now works with custom font sizes
Fix: BASIC syntax coloring properly updates now
Fix: keep spaces after line numbers when renumbering
Add/Fix: Scaling issues now almost all gone
Fix: BASIC coloring issues
Fix: BASIC V10 SIN token
Add: !CPU support for 4502, Mega65
Fix: Basic V10 SIN token was wrong (thanks Heinz!)
Fix: BASIC editor scaling issues
Fix: Charset editor scaling issues (DPI)
Fix: Initial debug memory values are not marked as changed
Add: Default start address for BASIC dialects
Fix: Add "exit" to label file when not debugging (VICE 3.5 GTK leaves the monitor open when passing a label file)
Add: File Manager -> export to BASIC now lists all BASIC dialects
Fix: Scaling issue in BASIC editor
Fix: retarget .NET 3.5 for projects set > 3.5 (while not being needed)
Fix: invalidate memory on DebugGo
Add: Basic V10 dialect file
Fix: On new debug session default auto refresh memory to currently visible memory display
Add: Debugger allows changing of registers, PC, SP and flags
Add: Hide disassembly window when debugger jumps back into owned code
Fix: Clipboard ownage of pasted images
Add: character editor. Allow category reordering
Move Charset categories to control
Fix: Do not remove change marks in memory view by scrolling
Fix: Label file enabling in build chain properties
Fix: Old interface in newer GTK VICEs does not support binary dump anymore
Fix: catching exceptions for every single BASIC dialect file
Fix: Bug in duplicate memory map entries, longer length might have gotten lost
Add: Support for !cpu 65C02 and R65C02
Fix: Address of line update when inserting line breaks
Add: Sprite Editor -> save animation to GIF
Add: Charset editor preview, prefill with white spaces instead of black @s
Fix: Crash when removing breakpoint from non-project file
Add: Triple click selects full line
Add: Doc update for math.sin, math.cos, math.tan
Fix: potential crash in FastColoredTextBox
Fix: potential crash
Add: Support for WDC65C02 processor (!cpu)
Fix: dialect files in test project
Add: Add math.sin/math.cos/math.tan to regular options. Float is casted to int
Fix: Sprite Editor - name change of layer would reset cursor on first char
Fix: BASIC label mode after Dialect addon
Add: Make BASIC tokens externally configurable to allow for new dialects
Fix: Potential swallowed remote debugger command in VICE legacy interface
Add: more emulator shenanigans
Fix: Laser BASIC and BASIC Lightning Tokens
Add: Allow copy of file between projects
Add: Major tiny64 update (added display, cia is wip)
Fix: duplicate label text for character editor (this time for good?)
Fix: Replace selection character count with "character" instead of "bytes"
Fix: no inserting spaces in REM when toggling between label/no label mode
Fix: BASIC toggling label mode now properly uses the set symbol mode
Fix: Fixed mixed up charset/watch tool name
Add: Display unused background in map editor
Fix: Character Editor control, slightly offset pixel detection
Fix: Bug when memory section was not filled with trailing * = ... statement
Fix: Broken binary literal parsing
Fix: Replace Win32 StretchBlt with .NET draw code for Charset Editor Control

11.12.2020 - 6.6:

Add: Support for $01 for VICE binary interface
Add: petcat compatiblity at BASIC file import
Fix: reverted errornous DPI adjusting of dialogs
Add: Alternative spelling of {RGHT}
Fix: Crash with warnings without compile config
Fix: Import of lower case BASIC files
Add: Renaming file hides extension
Add: Add display offset to column in hex display
Add: Partial support for concattenated labels (LABEL##VALUE)
Add: DPI awareness
Fix: Crash if solution was closed and one of the add item buttons was clicked
Fix: Charset screen editor: potential selection crash when going outside
Add: Allow editing of disk name/ID in File Manager
Fix: Display Char number in charseteditor
Add: Hack option to allow .byte/.word additionally
Add: Charset editor, import from BASIC (Hex) Data
add second unit test for virtual segments
Add: Virtual values (!byte ?, !word ?)
Fix: Graphic screen editor: Full Paste button of graphic screen offers size adjustment
Fix: Adjust !byte values also when following a label
Add: Display type of undo as tooltip text
Add: Clear screen option to charscreen editor
Fix: start charset editor with default uppercase charset
Fix: Description of regular letters for BASIC key map setting dialog
Fix: Literal 16bit value watches now default to one byte (not two)
Fix: Multiplying watch entries if you have more than one project in a solution
Add: Copy debug watch lines/values to clipboard
Add: Recalculate !byte, !word, etc. values on right click in assembler editor
Add: Binary display of X, Y, A registers in Debug window
Potential crash fix in Undo after Replace all
Add: Map Editor Up/Down to sort maps
Add more info to kernal.asm
Fix: Potential crash in File Manager when deleting files
Add: BASIC Replace ? with PRINT
Fix: Tooltip text for add new file in File Manager
Add: Show Selection length in BASIC editor (useful for PRINTs)
Fix: Allow Ctrl-I in BASIC
Fix: Crash if deleting folder with content in Solution Explorer
Fix: right pad file name with Shift-Space instead of space on import in File Manager
Add: Support for Simons BASIC
Add: missing response type to VICE debugger for binary interface
Fix: Rename bug when file inside sub folder
Add: DASM incdir directive
Add: !realign pseudo op
Fix: Text screen editor, graphic errors if in selection mode, inserting a floating selection and dragging the mouse
Fix: Renumber in BASIC not working if selection was upside down
Fix: FileManager properly move dir entries with duplicate names
Add: File Manager with PETSCII table
Fix: TLS1.2 hack for .NET 3.5 for update check


StatusReleased
CategoryTool
PlatformsWindows
Rating
Rated 5.0 out of 5 stars
(1)
AuthorEndurion
TagsCommodore 64, development, ide

Download

Download NowName your own price

Click download now to get access to the following files:

Source Repository
C64Studio 7.2
C64Studio 7.2 Binary (zipped) 6 MB

Leave a comment

Log in with itch.io to leave a comment.