1
0
mirror of https://github.com/fadden/6502bench.git synced 2026-02-08 11:18:39 +00:00
Files
Andy McFadden f059705fb4 Add pre-processing of VICE CRT files
This adds a new system definition that, when selected, causes some
pre-processing to be done on VICE CRT (cartridge) files.  These have
multiple chunks representing potentially overlapping ROM regions.

Also, pulled RawData.cs from CiderPress2, as it has some newer stuff
that we want.  (It would've been handy for the OMF code.)

Also, renamed SystemDefs.cs to SystemDef.cs to match the class name.

(issue #183)
2025-12-25 16:00:11 -08:00
..
2025-11-25 13:18:00 -08:00
2025-12-25 16:00:11 -08:00

Runtime Data

Symbol files and extension scripts are split into directories by platform manufacturer. General-purpose scripts are in the Common directory.

A Visual Studio project (RuntimeData.csproj) exists in the source tree so you can edit platform-specific scripts with IntelliSense and error highlighting. Everything in this directory is distributed as source, not in compiled form; all compilation occurs at run time.

The Tips directory holds the files used by the "daily tips" feature, and TestData has some files used by the regression tests.

SystemDefs.json

This file defines the systems available in the "new project" screen. The following fields are mandatory:

  • Name - Short name that identifies the system.
  • GroupName - Short string used to group common items together in the UI.
  • CPU - Type of CPU used. The string must be part of the known set (see CpuDef.cs).
  • Speed - Clock rate, in MHz, of the CPU on the system. When multiple speeds are possible, use the most common, favoring NTSC over PAL.
  • SymbolFiles - List of platform symbol file identifiers (see below).
  • ExtensionScripts - List of extension script file identifiers (see below).
  • Parameters - List of optional parameters (see below).

The currently-supported parameters are:

  • default-text-encoding=<mode> - Specify default character encoding. Use c64-petscii for PETSCII. The default is low/high ASCII.
  • entry-flags=<flag-set> - Specify the processor status flag values to use at entry points. This is intended for use on the 65802/65816, and may be one of emulation, native-short, and native-long. The default is emulation.
  • file-format=<format> - Indicates that the input file is expected to be in a format that requires additional processing. Currently, this may be vice-crt.
  • first-word-is-load-addr={true|false} - If true, the first two bytes of the file contain the load address.
  • load-address=<addr> - Specify the initial load address. The default is 0x1000.
  • two-byte-brk={true|false} - If true, treat the BRK instruction as two bytes instead of one.
  • undocumented-opcodes={true|false} - Enable or disable undocumented opcodes. They are disabled by default.

All of these things can be changed after the project has begun, but it's nice to have them configured in advance.

SymbolFiles and ExtensionScripts use file identifiers, which look like "RT:Apple/ProDOS8.sym65". The "RT:" means that the file lives in the RuntimeData directory, and the rest is a partial pathname. Files that live in the same directory as the project file are prefixed with "PROJ:". All symbol files and extension scripts must live in the RuntimeData directory or project file directory, or they will not be loaded.

All "RT:" identifier paths are relative to the RuntimeData directory. The GroupName string is not automatically added.

Platform Symbol Files and Extension Scripts

The format of these files is described in detail in the "Advanced Topics" section of the manual (here).

Misc Files

ExportTemplate.html and SGStyle.css are used by SourceGen's HTML export feature.

LegalStuff.txt is displayed in the About box.