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.
 
 
 
 
 
 

93 lines
2.1 KiB

;
;==================================================================================================
; CH376 NATIVE USB DRIVER
;==================================================================================================
;
;
;--------------------------------------------------------------------------------------------------
; HBIOS MODULE HEADER
;--------------------------------------------------------------------------------------------------
;
ORG_CHNATIVE .EQU $
;
.DW SIZ_CHNATIVE ; MODULE SIZE
.DW CHNATIVE_INITPHASE ; ADR OF INIT PHASE HANDLER
;
CHNATIVE_INITPHASE:
; INIT PHASE HANDLER, A=PHASE
;CP HB_PHASE_PREINIT ; PREINIT PHASE?
;JP Z,CHNATIVE_PREINIT ; DO PREINIT
CP HB_PHASE_INIT ; INIT PHASE?
JP Z,CHNATIVE_INIT ; DO INIT
RET ; DONE
#DEFINE DEFM .DB
#DEFINE DEFB .DB
#DEFINE DEFW .DW
_CH376_DAT_PORT_ADDR .EQU _CH376_DATA_PORT
_CH376_CMD_PORT_ADDR .EQU _CH376_COMMAND_PORT
_USB_MOD_LEDS_ADDR .EQU _USB_MODULE_LEDS
_print_string .EQU PRTSTR
_print_hex:
ld a, l
JP PRTHEXBYTE
_dio_add_entry:
LD B, H
LD C, L
JP DIO_ADDENT ; ADD ENTRY TO GLOBAL DISK DEV TABLE
#IF (CHNATIVEEZ80)
#include "./ch376-native/ez80-firmware.asm"
_ch376_driver_version:
.DB ",F); $", 0
#ELSE
_ch376_driver_version:
.DB ",W); $", 0
_delay:
push af
call DELAY
pop af
ret
_delay_20ms:
LD DE, 1250
JP VDELAY
;
; DELAY approx 60ms
_delay_short:
LD DE, 3750
JP VDELAY
;
; DELAY approx 1/2 second
_delay_medium .EQU LDELAY
#include "./ch376-native/cruntime.asm"
#include "./ch376-native/base-drv.asm"
#ENDIF
#include "./ch376-native/print.asm"
#include "./ch376-native/base-drv.s"
CHNATIVE_INIT .EQU _chnative_init
CHNATIVE_INITF .EQU _chnative_init_force
;
;--------------------------------------------------------------------------------------------------
; HBIOS MODULE TRAILER
;--------------------------------------------------------------------------------------------------
;
END_CHNATIVE .EQU $
SIZ_CHNATIVE .EQU END_CHNATIVE - ORG_CHNATIVE
;
MEMECHO "CHNATIVE occupies "
MEMECHO SIZ_CHNATIVE
MEMECHO " bytes.\n"