Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
CRT V3 working draft v0.0 ------------------------- WARNING: this is unfinished WOK IN PROGRESS why? ---- After adding support for all the CBM machines to the format (and creating v2 in the process) it was obvious we also should solve some other long standing problems. TODO: identify problems other than the ones listed below support "extra ICs" ------------------- So far the CRT format has only supported one "type" of memory (*). IE even when the physical cartridge contained several ROM chips, the CRT file would typically contain multiple "chip" chunks to represent logical banks instead of physical chips. This becomes a problem with cartridges that contain more than one type of memory, which have to be treated differently (eg ROM and EEPROM). (*) this is indeed questionable, and one could argue different types were always supported by the specs. But the specs were (ab)used in different ways in practise, which we need to deal with now. GOAL: define a way to include "extra ICs" in the format cleanly This should be as generic as possible, work for any amount of extra ICs (and of various types), without inventing special cases for each cartridge type. * support any (reasonable) number of "extra ICs" * "extra ICs" can be any of the memory types * deviate as little as possible from how the format was used before TODO: identify and document all the already existing hacks in the wild (eg 1541U supports some Gmod2 with embedded EEPROM). We might gather some ideas and/or need it for future workarounds TODO: list missing, not yet implemented, cartridges (or better yet, implement them :)) TODO: come up with a format extension TODO: try to define an artificial scheme that breaks the new format :) Comment: It might indeed be questionable to save the RAM of certain (or even most) cartridges into the CRT file - however, that does not mean it shouldn't be a valid option that we need to consider. It is also one of the reasons for why we must support multiple "extra ICs". Already defined cartridges that we need to consider: Name CRTID * C64 Action Replay V5 1 RAM KCS Power 2 RAM Atomic Power 9 RAM Magic Formel 14 RAM Super Snapshot v5 20 RAM Easy Flash 32 RAM Capture 34 RAM Retro Replay 36 RAM MMC Replay 38 RAM EEPROM Super Snapshot V4 40 RAM Pagefox 53 RAM Gmod2 60 EEPROM MAX BASIC 61 RAM REX RAM-Floppy 67 RAM SD Box 69 RAM MultiMAX 70 RAM LT Kernal 72 RAM CMD Ramlink 73 RAM Partner 64 78 RAM Universal Cartridge 1 80 RAM Universal Cartridge 1.5 81 RAM Universal Cartridge 2 82 RAM Magic Desk Plus 87 RAM EEPROM * C128 Gmod C128 5 EEPROM * VIC20 Mega Cart 1 RAM NVRAM VIC Flash Plugin 3 RAM Ultimem 4 RAM Final Expansion 5 RAM Super Expander 7 RAM Mikro Assembler 8 RAM Proposal: - define position $08 in the CHIP header as "IC number" (that limits $09, ie "IC type" to 256 cases, but we only use 4 anyway :)) - make $08 and $09 being filled in correctly mandatory "legalize" RAM-Only Cartridges ------------------------------ So far we have refrained from assigning CRT IDs to cartridges which do not contain some kind of ROM. Well, with one exception, which was kind of an oversight in the old days :) Expert Cartridge 6 RAM Comment: It totally makes sense to assign CRT IDs also for some of the cartridges in this category (REU, GeoRAM etc). However, doing so requires no changes to the format, other than assigning new CRT IDs (Memory size can be implemented as sub-IDs). BUT this also means that RAM is a totally legit type for the primary image in a CRT file, and any extension created for the "extra IC" case above can not violate this (eg assume RAM is always extra). "no memory" Cartridges ---------------------- Another ongoing discussion was about being able to create .crt files for cartridges that do not even contain a memory image (Example: an RS232 interface). Comment: While this is entirely doable, the benefit seems low - in particular this would only increase the amount of work for everyone IMHO, so i am not considering it right now. In any case, this would not require changes to the format either.
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
Documents
2 min ago | 0.43 KB
Crypto admin access
2 min ago | 0.43 KB
+12,000$ in 2 days
CSS | 2 min ago | 0.72 KB
Free Crypto Method
CSS | 3 min ago | 0.72 KB
Untitled
19 min ago | 12.67 KB
CC:T GPS Beacon
10 hours ago | 0.49 KB
R4 Moon SPI Screen With Wifi
Arduino | 13 hours ago | 13.55 KB
Art school
1 day ago | 1.06 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!