Browse Source

ez80: updated to report firmware version, build date, and if operating under the alt image

pull/424/head
Dean Netherton 1 year ago
parent
commit
64d60f744b
  1. 14
      Source/HBIOS/Config/RCEZ80_std.asm
  2. 84
      Source/HBIOS/ez80cpudrv.asm
  3. 1
      Source/HBIOS/ez80instr.inc
  4. 5
      Source/HBIOS/hbios.asm

14
Source/HBIOS/Config/RCEZ80_std.asm

@ -30,7 +30,7 @@ CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ
;
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES
;
UARTENABLE .SET FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
@ -43,20 +43,22 @@ LPTENABLE .SET FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
TMSENABLE .SET TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX9958 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET TRUE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
SN76489ENABLE .SET TRUE ; SN: ENABLE SN76489 SOUND DRIVER
;
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC]
FDCNT .EQU 1 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FD0TYPE .EQU FDT_5HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT SC ONLY
@ -66,6 +68,6 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
EZ80UARTENABLE .SET TRUE ; EZ80 UART: ENABLE EZ80 UART0 DRIVER (EZ80UART.ASM)
EZ80RTCENABLE .SET TRUE ; EZ80 ON CHIP RTC
EZ80TIMER .SET EZ80TMR_INT ; EZ80: TIMER TICK MODEL: EZ80TMR_[INT|FIRM]
EZ80TIMER .SET EZ80TMR_FIRM ; EZ80: TIMER TICK MODEL: EZ80TMR_[INT|FIRM]
;
CHENABLE .EQU FALSE ; CH: ENABLE CH375/376 USB SUPPORT

84
Source/HBIOS/ez80cpudrv.asm

@ -21,15 +21,24 @@ EZ80_PREINIT:
LD L, RTP
EZ80_UTIL_VER_EXCH()
; TODO CHECK RETURNED VERSION AND WARN IF NOT GOOD
; EXPECT A VERSION NUMBER > 0.1.0.0
; TODO: MAP THE FIRMWARE CPU TO HBIOS (eZ80 ONLY HAS ONE CPU TYPE AS OF NOW)
LD A, 5
LD (HB_CPUTYPE),A
; DETECT IF USING ALT-FIRMWARE
LD A, C
AND $80
LD (EZ80_ALT_FIRM), A
LD (EZ80_PLT_VERSION), HL
LD (EZ80_PLT_VERSION+2), DE
LD C, MEMMGR
LD HL, ROMSIZE
LD DE, RAMSIZE
EZ80_UTIL_BNK_HLP() ; INSTAL HIGH PERFORMANCE BANK SWITCHER
; TODO CHECK RESULT AND USE STANDARD BANK SWITCHER IF NZ RETURNED
; OTHERWISE USE RST.L %18 FOR BANK SWITCH HELPER
EXX
LD A, C
LD (EZ80_BUILD_DATE), A ; DAY
LD A, D
LD (EZ80_BUILD_DATE+1), A ; MONTH
LD A, E
LD (EZ80_BUILD_DATE+2), A ; YEAR
EZ80_UTIL_GET_CPU_FQ()
LD A, E
@ -57,8 +66,6 @@ EZ80_PREINIT:
LD C, TICKFREQ
EZ80_TMR_SET_FREQTICK
LD A, 5 ; HB_CPUTYPE = 5 FOR eZ80
LD (HB_CPUTYPE),A
RET
EZ80_RPT_TIMINGS:
@ -73,11 +80,68 @@ EZ80_RPT_TIMINGS:
.TEXT " I/O B/C$"
RET
EZ80_RPT_FIRMWARE:
CALL PRTSTRD
.TEXT "\r\neZ80 Firmware: $"
LD A, (EZ80_PLT_VERSION+3) ; MAJOR VERSION NUMBER
CALL PRTDECB
CALL PC_PERIOD
LD A, (EZ80_PLT_VERSION+2) ; MINOR VERSION NUMBER
CALL PRTDECB
CALL PC_PERIOD
LD A, (EZ80_PLT_VERSION+1) ; REVISION NUMBER
CALL PRTDECB
CALL PC_PERIOD
LD A, (EZ80_PLT_VERSION) ; PATCH NUMBER
CALL PRTDECB
CALL PRTSTRD
.TEXT " 20$"
LD A, (EZ80_BUILD_DATE+2) ; YEAR
CALL PRTDECB
CALL PC_DASH
LD A, (EZ80_BUILD_DATE+1) ; MONTH
CALL PC_LEADING_ZERO
CALL PRTDECB
CALL PC_DASH
LD A, (EZ80_BUILD_DATE) ; DAY
CALL PC_LEADING_ZERO
CALL PRTDECB
LD A, (EZ80_ALT_FIRM)
OR A
RET Z
CALL PRTSTRD
.TEXT " (ALT)$"
RET
PC_LEADING_ZERO:
CP 10
RET NC
PUSH AF
LD A, '0'
JP PC_PRTCHR
PC_DASH:
PUSH AF
LD A, '-'
JP PC_PRTCHR
EZ80_PLT_C3CYL:
.DB EZ80_MEM_CYCLES
EZ80_PLT_C2CYL:
.DB EZ80_IO_CYCLES
EZ80_PLT_VERSION:
.DB 0, 0, 0, 0
EZ80_ALT_FIRM:
.DB 0
EZ80_BUILD_DATE:
.DB 0, 0, 0 ; DAY, MONTH, YEAR
; ez80 helper functions/instructions

1
Source/HBIOS/ez80instr.inc

@ -16,7 +16,6 @@
#DEFINE EZ80_UTIL_SET_BUSTM XOR A \ LD B, 3 \ EZ80_FN
#DEFINE EZ80_UTIL_SET_BUSFQ XOR A \ LD B, 4 \ EZ80_FN
#DEFINE EZ80_UTIL_GET_CPU_FQ XOR A \ LD B, 5 \ EZ80_FN
#DEFINE EZ80_UTIL_BNK_HLP XOR A \ LD B, 6 \ EZ80_FN
#DEFINE EZ80_UTIL_DEBUG XOR A \ LD B, 7 \ EZ80_FN
#DEFINE EZ80_RTC_INIT LD A, 1 \ LD B, 0 \ EZ80_FN

5
Source/HBIOS/hbios.asm

@ -2964,6 +2964,11 @@ HB_Z280BUS:
HB_Z280BUS1:
PRTS("MHz$") ; SUFFIX
#ENDIF
#IF (CPUFAM == CPU_EZ80)
CALL EZ80_RPT_FIRMWARE
#ENDIF
;
;--------------------------------------------------------------------------------------------------
; DISPLAY CPU CONFIGURATION

Loading…
Cancel
Save