You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Dean Netherton 53d2f3f57b ch376-native: fixed issue with firmware delegation version (CHNATIVEEZ80) intermittenly failing 9 months ago
..
base-drv ch376-native: fixed issue where keyboard int handler could cause corruption of io 7 months ago
keyboard ch376-native: fixed issue where keyboard int handler could cause corruption of io 7 months ago
scsi-drv ch376-native: fixed issue with firmware delegation version (CHNATIVEEZ80) intermittenly failing 7 months ago
source-doc ch376-native: fixed issue with firmware delegation version (CHNATIVEEZ80) intermittenly failing 7 months ago
ufi-drv ch376-native: fixed issue where keyboard int handler could cause corruption of io 7 months ago
Makefile ch376-native: added new config CHNATIVEEZ80 to enable use of ez80's firmware version of usb support 7 months ago
base-drv.asm ch376-native: some cleanup of build process and an initial readme added 7 months ago
base-drv.s ch376-native: added new config CHNATIVEEZ80 to enable use of ez80's firmware version of usb support 7 months ago
cruntime.asm ch376-native: removed some intermediate files that should not have beeen committed 7 months ago
ez80-firmware.asm ch376-native: updated keyboard driver 7 months ago
keyboard.s ch376-native: reverted usb keyboard extensions 7 months ago
print.asm ch376-native: general fixes - mass storage and floppy devices over hub seem to be working 7 months ago
readme.md ch376-native: some cleanup of build process and an initial readme added 7 months ago
scsi-drv.s ch376-native: added new config CHNATIVEEZ80 to enable use of ez80's firmware version of usb support 7 months ago
ufi-drv.s ch376-native: added new config CHNATIVEEZ80 to enable use of ez80's firmware version of usb support 7 months ago

readme.md

Native CH376 Driver

The native CH376 HBIOS driver is written in c, using z88dk's zcc compiler.

The build process, is a 3 stage process.

  1. Compile all the C code to assembly files (.asm)
  2. Translate the produced .asm files syntax to compile with the RomWBW assembler (.s)
  3. Assemble the driver .s files as per the standard HBIOS build process

The original C code and produced/translated .s files are all committed units in the repo. But it is expected, that only the c files are to be modified/updated.

The .s files are checked in, to builders to not require the C compiler tool chain (z88dk) to be installed.

The c compiling/translating process is also only support on linux, as the script to translate the .asm files to .s files is a linux bash script. (Although the script can be easily run within Windows's Sub-system for linux)

Compiling the C code

To compile the c code, to update the .s files:

Within the Source/HBIOS/ch376-native directly:

make

The make script will search for z88dk's zcc compiler, if not found, will attempt to use a docker wrapper.
It will not work if z88dk or docker is not installed.

USB Native Driver systems

The usb driver is divided into a few sub-system, which can be individually enabled within the standard HBIOS config files.

base-drv

The base-drv system contains the core code to discover, enumerate, and communicate to USB devices.

It also includes the driver code for enumerate and operating USB devices on USB hubs.

scsi-drv

The scsi-drv system can be enabled with the HBIOS config CHSCSIENABLE

When activated, access to most USB mass storage devices (thumb drives, magnetic usb drives) is enabled.

ufi-drv

The ufi-drv system can be enabled with the HBIOS config CHUFIENABLE

When activated, access to 3.5" Floppy USB devices will be enabled.

keyboard

The keyboard system can be enabled with the HBIOS config USBKYBENABLE

When activated, usb keyboards can be used as input devices.