diff --git a/Source/HBIOS/Config/RCEZ80_std.asm b/Source/HBIOS/Config/RCEZ80_std.asm index 0800c3b1..a8ff8340 100644 --- a/Source/HBIOS/Config/RCEZ80_std.asm +++ b/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 diff --git a/Source/HBIOS/ez80cpudrv.asm b/Source/HBIOS/ez80cpudrv.asm index 98906270..77729ae3 100644 --- a/Source/HBIOS/ez80cpudrv.asm +++ b/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 diff --git a/Source/HBIOS/ez80instr.inc b/Source/HBIOS/ez80instr.inc index 11094e60..880fc6d3 100644 --- a/Source/HBIOS/ez80instr.inc +++ b/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 diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 7af4f151..333c19cd 100644 --- a/Source/HBIOS/hbios.asm +++ b/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