Project is to port original Zmodem for Unix to CP/M and provide binaries and source code for platform specific modification as needed. Based on 1986 C source code by Chuck Forsberg

Zmodem4CPM

This repository is intended to foster a RetroBrewComputers community effort to port the original Zmodem source code for Unix to CP/M so everyone can use Zmodem for file transfers and modify source code as needed for their specific platforms. Binary programs for Zmodem (sz & rz) are available but without source code available making modifications extremely difficult if not impossible.

The proposed environment and toolset for this effort is z88dk. The plan is to build the CP/M Zmodem application using the following steps

zcc +cpm sz.c -create-app

zcc +cpm rz.c -create-app

z88dk can be obtained here for Linux and Windows https://z88dk.org/site/

Due to the age of the original Zmodem source files for Unix (1986) many of the constructs used in them are obsolete. Files which many years ago used to be commonly available are no longer available so the code will need to be adjusted or suitable replacements found. For example, the code "includes" both termio.h and signal.h which appear to be obsolete based on the original SysIII/SysV Unix. Possible replacements from the era are included in the file set but do not appear to be correct.

There are Zmodem source codes from the same era as the originals but ported to the Atari ST GEM operating system which is a distant relative of CP/M. These source files have already gone through the process of removing Unix specific material and converting to an operating system similar to CP/M. They represent a logical basis for starting the port to CP/M because much of the Unix-specific items have already been replaced.

Similar Resources

GlueGD is a mod loader for Geometry Dash that does not require a modification to any existing Geometry Dash files or an external injector or launcher.

GlueGD is a mod loader for Geometry Dash that does not require a modification to any existing Geometry Dash files or an external injector or la

Apr 10, 2022

Tomb Raider III multiplayer modification.

Tomb Raider III Multiplayer Mod. Multiplayer Modification for Tomb Raider III. Website: https://tr3mp.net/ If you own the base source of \patch projec

Dec 25, 2021

An easy to decode base64 modification.

crzy64 An easy to decode base64 modification. This is a base64 modification designed to simplify the decoding step. For the four encoded bytes, it onl

Jun 20, 2022

This project aims to provide a framework and a solid implementation of different techniques

This project aims to provide a framework and a solid implementation of different techniques

This project aims to provide a framework and a solid implementation of different techniques for generating complete seamless procedural cities with interiors for all buildings.

Oct 15, 2022

The C source code was RESTORED by disassembling the original executable file OPTIM.COM from the Hi-Tech v3.09 compiler.

The C source code was RESTORED by disassembling the original executable file OPTIM.COM from the Hi-Tech v3.09 compiler. This file is compiled by Hi-Te

Nov 14, 2022

StochFuzz - Sound and Cost-effective Fuzzing of Stripped Binaries by Incremental and Stochastic Rewriting

StochFuzz - Sound and Cost-effective Fuzzing of Stripped Binaries by Incremental and Stochastic Rewriting

StochFuzz: A New Solution for Binary-only Fuzzing StochFuzz is a (probabilistically) sound and cost-effective fuzzing technique for stripped binaries.

Nov 23, 2022

This project simulates the functionality of the Unix Bash shell.

Minishell This project simulates the functionality of the unix Bash shell. Description The project aim was to recreate the functionality of the unix B

Jan 6, 2022

A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.

A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.

Turbo Vision A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support. I

Nov 30, 2022

Commodore 6502ASM, the original 6502/65C02/65CE02 Assembler used by Commodore for C65 project

Commodore 6502ASM This is the source code of the 6502/65C02/65CE02 assembler developed and used by Commodore for the C65 project. It aims to be compat

Nov 29, 2022
Comments
  • fix array intialization, per robg's message in the forum thread https…

    fix array intialization, per robg's message in the forum thread https…

    …://www.retrobrewcomputers.org/forum/index.php?t=msg&th=639&goto=9236&#msg_9236 all crdit to robg, not me. Just an example on how git can be used to improve cooperation.

  • Unix signals not supported in CP/M

    Unix signals not supported in CP/M

    rz.c and sz.c include the signal.h header file but CP/M does not support Unix style signals. Need to make adjustments to code to replace this functionality with equivalent for CP/M

  • termio.h doesn't provide correct defines

    termio.h doesn't provide correct defines

    the termio.h is "included" in rbsb.c but is not available in z88dk environment. Obtained similar vintage termio.h file from SysIII/SysV archive but does not provide expected defines resulting in compilation errors. Need to obtain different termio.h or make adjustments to match expected values

  • BUFSIZ is undefined

    BUFSIZ is undefined

    BUFSIZ is undefined leading to error during compile. Normally BUFSIZ is defined by c compiler environment for standard IO and varies depending on environment.

    from https://c-programming-know-how.blogspot.com/2014/03/what-is-bufsiz.html

    "BUFSIZ is a constant macro representing the size of the input buffer. It is defined in stdio.h and represents the size for your C implementation. ANSI C requires that it be at least 256 bytes."

sbase is a collection of unix tools that are inherently portable across UNIX and UNIX-like systems.

sbase is a collection of unix tools that are inherently portable across UNIX and UNIX-like systems.

Nov 1, 2021
Nov 12, 2022
Modernization of 1990's ZMODEM program, with ports to Atari ST and CP/M-80 2.2.

ZMRX/ZMTX This repository is a modernization of a mid 1990's implementation of the ZMODEM protocol called 'zmtx-zmrx'. The main goal is to have a vers

Sep 26, 2022
Original hVNC has been recoded to work with all version of windows above XP. Thanks to the original author for this wonderful tool.

hVNC - Recoded This is the recoded version of the hVNC found in TinyNuke trojan. Compiling Compile tested with Visual Studio 2017. No compile errors.

Jan 22, 2022
Contains platform and API specific code written by Primal community members.

PrimalPlus Contains platform and API specific code written by Primal community members. How to use The general idea is to simply copy the files from t

Nov 7, 2022
Implement a program that computes the approximate grade level needed to comprehend some text.

Readability - CS50 Implement a program that computes the approximate grade level needed to comprehend some text. Reading Levels According to Scholasti

Oct 4, 2021
This repository is meant to host the core files needed to create a Beacon Object File for use with Cobalt Strike

BOF Template This repository is meant to host the core files needed to create a Beacon Object File for use with Cobalt Strike. A Beacon Object File (B

Nov 9, 2022
A collection of user-space Linux kernel specific guided fuzzers based on LKL

kBdysch kBdysch is a collection of fast Linux kernel specific fuzzing harnesses supposed to be run in userspace in a guided fuzzing manner. It was des

Nov 25, 2022
rax/RAX is a C++ extension library designed to provide new, fast, and reliable cross-platform class types.

rax rax/RAX is a C++ extension library designed to provide cross-platform new, fast, and reliable class types for different fields such as work with I

May 2, 2022
MiniDumpWriteDump behavior modification hook

MiniDumpWriteDumpPoC MiniDumpWriteDump behavior modification hook Read the full article in our blog: Adepts Of 0xCC: Hooks On Hoot Off This is a funct

Nov 9, 2022