cbmconvert: create, extract and convert 8-bit Commodore binary archives

Overview

cbmconvert: create, extract and convert 8-bit Commodore binary archives

cbmconvert extracts files from most known archive file formats that are used on 8-bit Commodore computer platforms and writes them to several different formats, including some formats used by some emulators.

Examples

To convert Lynx archive files (*.lnx) into 1541 disk image(s):

cbmconvert -D4 image.d64 -l *.lnx

To extract the individual files of a number of 1541 disk images, you could execute the following commands in the Bourne Again shell:

for i in *.d64
do
  mkdir "${i%.d64}"
  cd "${i%.d64}"
  cbmconvert -d ../"$i"
  cd ..
done

Motivation

There are many archiving programs for the Commodore 64 and other 8-bit Commodore computers, most of which are incompatible with archiving programs on other systems.

It is faster and more convenient to convert files with native code running on a 32-bit or 64-bit processor than by 8-bit 6502 code running in an old computer or an emulator.

Requirements

  • CMake 3.0.2 or later
  • At least 32-bit C compiler, compliant to to ISO/IEC 9899:1990 (C90) or later
  • A POSIX-like operating system (including Microsoft Windows)

Installation

You can build, test, and install the code as follows:

mkdir build
cd build
cmake ..
cmake --build .
ctest
cmake --install .

For more information, see cbmconvert.html and the manual pages:

man cbmconvert
man zip2disk
man disk2zip
You might also like...
Extract files from Kirikiri Z engine.

Kirikiri Z File Dumper This tool can works with for some new engines. How to use The tool reads a json-based config file when it starts up. That confi

Resize, crop, and convert images on Upload.

Upload Image Plugin Resize, crop, and convert images on Upload. To use this plugin use the following settings in a "Transformation Step" in the Upload

pluggable tool to convert an unrolled TritonAST to LLVM-IR, optimize it and get back to TritonAST

it is fork from https://github.com/fvrmatteo/TritonASTLLVMIRTranslator *WARNINGS: tested only linux(ubuntu 20.04) and only llvm and clang version 10*

A tool to convert Call of Duty XBIN/EXPORT files to and from each other.

exportxbin exportxbin is an enhanced version of export2bin included in the Call of Duty: Black Ops III Mod Tools. Its main goal is to provide users wi

OpenScan is an open-source document scanner app that enables users to scan hard copies of documents or notes and convert it into a PDF file. No ads. No data collection. We respect your privacy.
OpenScan is an open-source document scanner app that enables users to scan hard copies of documents or notes and convert it into a PDF file. No ads. No data collection. We respect your privacy.

OpenScan An open source app that enables users to scan hardcopies of documents or notes and convert it to a PDF file. No ads. No data collection. We r

An efficient tool written in C to convert base numbers dumps into human readable string and vice versa.

strtools A tool written in C to convert number bases to human readable string and vice versa. Usage Compile make Help strtools -h Output: Usage: strt

Convert LLVM coverage information into HTML reports

llvm-coverage-to-html converter The clang compiler supports source based coverage tracking, but the default reporting options are very basic. This too

POC tool to convert CobaltStrike BOF files to raw shellcode

BOF2Shellcode POC tool to convert a Cobalt Strike BOF into raw shellcode. Introduction This code was written as part of a blog tutorial on how to conv

Convert Javascript/TypeScript to C

Convert Javascript/TypeScript to C

Comments
  • no RUNTIME DESTINATION for executable target

    no RUNTIME DESTINATION for executable target "cbmconvert"

    The step with cmake .. lead to the following error for me:

    $ cmake ..
    -- The C compiler identification is GNU 7.5.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    CMake Error at CMakeLists.txt:57 (INSTALL):
      INSTALL TARGETS given no RUNTIME DESTINATION for executable target
      "cbmconvert".
    

    I fixed this by adding the RUNTIME DESTINATION this was:

    diff --git a/CMakeLists.txt b/CMakeLists.txt
    index 218a831..8cd267e 100644
    --- a/CMakeLists.txt
    +++ b/CMakeLists.txt
    @@ -54,7 +54,10 @@ ELSE()
       INSTALL(FILES cbmconvert.1 zip2disk.1 disk2zip.1
         DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
     ENDIF()
    -INSTALL(TARGETS cbmconvert zip2disk disk2zip)
    +INSTALL(
    +  TARGETS cbmconvert zip2disk disk2zip
    +  RUNTIME DESTINATION bin
    +)
     
     ENABLE_TESTING()
     ADD_TEST (cbmconvert_usage ${CMAKE_BINARY_DIR}/cbmconvert)
    

    Then it compiled.

    opened by Marrin 3
Releases(cbmconvert-2.1.5)
  • cbmconvert-2.1.5(May 15, 2022)

    This is a maintenance release of cbmconvert, with no new features.

    What's Changed

    • REL files are correctly written to Lynx archives.
    • 1571 images can be actually created.
    • Most code is now covered by CTest. ARC/SDA, Arkive, T64 are not covered at all yet.

    Full Changelog: https://github.com/dr-m/cbmconvert/commits/cbmconvert-2.1.5

    Source code(tar.gz)
    Source code(zip)
    cbmconvert-2.1.5-win64.msi(312.00 KB)
  • cbmconvert-2.1.4(Dec 5, 2021)

    This is a maintenance release of cbmconvert after a 15-year break. Some old source code releases were imported as snapshots, because no version control system had been used in the past.

    What's Changed

    • Empty files are now supported.
    • The build system was converted to CMake.
    • Some test cases with CTest were introduced.
    • Support for CPack packaging as well as native Debian packages was implemented.

    Full Changelog: https://github.com/dr-m/cbmconvert/commits/cbmconvert-2.1.4

    Source code(tar.gz)
    Source code(zip)
    cbmconvert-2.1.4-win64.msi(312.00 KB)
Owner
Marko Mäkelä
Started on a Commodore 64, upgraded to GNU/Linux on x86 in 1993. Interested in embedded systems, protocols, languages, compilers, databases, …
Marko Mäkelä
FUSE file system for ZIP archives

title section header footer date MOUNT-ZIP 1 User Manual mount-zip 1.0 November 2021 NAME mount-zip - Mount a ZIP archive as a FUSE filesystem. SYNOPS

Google 49 Dec 28, 2022
C64 Watch is a customized T-Watch 2020 that was inspired by the Commodore 64 computer. It features a C64 theme and a built-in BASIC interpreter.

C64 Watch C64 Watch is a customized T-Watch 2020 that was inspired by the Commodore 64 computer. It features a C64 theme and a built-in BASIC interpre

Nick Bild 30 Nov 26, 2022
A video input (V4L2) to NDI converter that works with Raspberry Pi (32-bit and 64-bit), and Intel/AMD CPUs

V4L2 to NDI V4L2 to NDI is an application that connects to attached V4L2 devices and encodes the video signal into NDI It uses the NDI library, allowi

Luke Plassman 52 Dec 30, 2022
Microcontroller based switchless ROM switcher for the Commodore 1541-II disk drive

Retroninja 1541-II Switchless Multi-ROM A microcontroller based switchless ROM switcher for the Commodore 1541-II disk drive. Switch between stock CBM

retroninja 5 Sep 3, 2022
Commodore 64 VIC-II 6567/6569 Replacement Project

This is a WIP. Beta testing is underway on hardware. Check back later for updates. VIC-II Kawari What is VIC-II Kawari? VIC-II Kawari is a hardware re

null 65 Jan 6, 2023
A program for converting instructions from Ben Eater's 8 Bit computer design to binary.

8Bit-Assembler A program for converting instructions from Ben Eater's 8 Bit computer design to binary. We used C because is used for it's mid-level-ne

Marek Borik 2 Nov 21, 2021
The simple UEFI application to create a Windows Platform Binary Table (WPBT) from the UEFI shell.

WPBT Builder This is a simple UEFI application to create a Windows Platform Binary Table (WPBT) from the UEFI shell. Motivation WPBT is one of the Adv

Satoshi Tanda 70 Nov 23, 2022
Cross-platform tool to extract wavetables and draw envelopes from sample files, exporting the wavetable and generating the appropriate SFZ text to use in a suitable player.

wextract Cross-platform tool to extract wavetables and draw envelopes from sample files, exporting the wavetable and generating the appropriate SFZ te

Paul Ferrand 9 Jan 5, 2022
Create a calculator of any kind in any language, create a pr.

calculators Create a calculator of any kind in any language, create a pr. Create a calculator of any type using the programming language of your choic

Akshay Gautam 2 Oct 21, 2022
Extract the contents of StrongHelp files.

Strong Extract Extract the files from StrongHelp manuals. Introduction Strong Extract is a cross-platform tool to extract the files from StrongHelp ma

Steve Fryatt 1 Oct 31, 2021