# HxC Floppy Emulator Manager V4.0 for Amstrad CPC/Plus

## Overview
This program allows to manage up to 20 slots for the **HxC Floppy Emulator** device created by **Jean-Francois Del Nero** 
(http://hxc2001.free.fr/floppy_drive_emulator/).
Please take note this software is also compatible with the FlashFloppy firmware-based's Gotek drive emulator.

## Screenshot
![HxC FLoppy Emulator Manager V4.0 running on an Amstrad CPC 6128](docs/hxc40.jpg)

## Authors
- **Jean-Francois Del Nero** (http://hxc2001.free.fr/floppy_drive_emulator/): original codebase created in 2010.
- **Arnaud Storq** (http://norecess.cpcscene.net): Various improvements & better integration with Amstrad machines. 
  Started in 2011, still maintained in 2023 ;)

## History

**Jean-Francois Del Nero** originally created this software in 2010. While working, it was not convenient for the end-user, 
  since it was slow to use and mostly written in C. 
  Since the source code was open, I (Arnaud Storq) created a new UI (relying on some fast Z80 routines written in assembler), 
  as a consequence the integration with the system got improved a lot and a ROM version was also created.

### Changes introduced with the Manager V4.0
- User can now edit up to 20 slots (previous version: 15 slots was the max.)
- New UI, removed old "demomaker style" presentation, now displaying more files on screen (with longer filenames)
- DEL key added to move back to parent folder while navigating
- The manager now skips DSK files when using a HxC SD/Slim device
- The Help page now reports the firmware version + build date of the Manager
- Switched compilation to SDCC 4.2.0 (resulting better Z80 implementation)
- Now compiled using RASM from roudoudou (previous version: Pasmo)
- Now compressed using ZX0 packer (previous version: the good old Bitbuster)
- Smaller binary (11KB) resulting a faster load from BASIC prompt (previous version: 16KB)

## Requirements
The HxC Manager V4 - as in the previous versions - is compatible with any Amstrad CPC/Plus machines 
(even the ones with 64Kb of RAM). Which means: Amstrad CPC 464/664/6128/Plus.
A HxC Floppy Emulator / Gotek device must be connected to the machine (as drive A or B, no importance).

## How to use
On the real machine:
- **disc version**: execute `RUN"HXC` command
- **ROM version**: once installed, execute `|HXC` command

## How to build

### Build requirements
Building the HxC Manager V4 is not optimal, mostly because it initially relied on a 
custom Windows toolchain that got ported/improved years later on Linux OS.

Debian Linux:
- install **VSCode** (editor, C# debugging)
- install **DotNetCore7**: https://dot.net/core-sdk-vscode (C#/dotnet runtime)
- install **SDCC** : sudo apt install SDCC (SDCC 4.2.0 got used to compile HxC Manager V4)

It also makes use of few tools (included in the HxC Manager source-code):
- **rasm** from Roudoudou 2017-2023: a very powerful assembler
- **ZX0 packer** from Einar Saukas 2022: a very impressive Z80 packer!
- **sdcc2rasm** from Arnaud Storq: a converter from SDCC C assembly files to RASM.

Please take note that only the SDCC C compiler is used ; the generated ASM files gets converted 
(using sdcc2rasm) and then compiled under RASM. The linking process is all done under RASM, not through SDCC.

### Launch build process
Open the folder `src/Make` under VSCode and compiles from there. The C# csproj project will be automatically detected 
by the launch process.
Once compiled, the folder `\build` will contain disc images + ROM ready to use by the Amstrad CPC.











