Browse Source

Merge pull request #565 from codesmythe/xosera2

Add VDA driver for Xosera, an FPGA-based video controller.
pull/569/head
Wayne Warthen 8 months ago
committed by GitHub
parent
commit
f2e42dd9d8
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      Doc/ChangeLog.txt
  2. 1
      Source/Doc/Hardware.md
  3. 6
      Source/Doc/Introduction.md
  4. 19
      Source/Doc/SystemGuide.md
  5. 54
      Source/HBIOS/Config/RCZ80_xosera.asm
  6. 3
      Source/HBIOS/cfg_MASTER.asm
  7. 16
      Source/HBIOS/hbios.asm
  8. 1
      Source/HBIOS/hbios.inc
  9. 1050
      Source/HBIOS/xosera.asm

3
Doc/ChangeLog.txt

@ -1,12 +1,13 @@
Version 3.6 Version 3.6
----------- -----------
- RDG: Added VDA driver for Xosera FPGA-based VDC
- MGG: Added COBOL language disk image - MGG: Added COBOL language disk image
- WDC: Added config options to PCF driver - WDC: Added config options to PCF driver
- WBW: Enabled dynamic CPU speed update on LCD screen - WBW: Enabled dynamic CPU speed update on LCD screen
- WBW: Improve LPT driver boot messaging when not detected (per Robb Bates) - WBW: Improve LPT driver boot messaging when not detected (per Robb Bates)
- WBW: Correct DS1307 boot date/time display (per Tadeusz Pycio) - WBW: Correct DS1307 boot date/time display (per Tadeusz Pycio)
- WBW: Add -DELAY option to TUNE app (per Robb Bates) - WBW: Add -DELAY option to TUNE app (per Robb Bates)
- R?G: Add online documentation site
- RDG: Add online documentation site
- WBW: Added enhanced Hi-Tech C Compiler files from Ladislau Szilagyi - WBW: Added enhanced Hi-Tech C Compiler files from Ladislau Szilagyi
- WBW: Added boundary check to ram/rom disk driver - WBW: Added boundary check to ram/rom disk driver

1
Source/Doc/Hardware.md

@ -2279,6 +2279,7 @@ the active platform and configuration.
| VDU | MC6845 Family Video Display Controller (*) | | VDU | MC6845 Family Video Display Controller (*) |
| VGA | HD6445CP4-based Video Display Controller | | VGA | HD6445CP4-based Video Display Controller |
| VRC | VGARC Video Display Controller | | VRC | VGARC Video Display Controller |
| XOSERA | XOSERA FPGA-based Video Display Controller |
Note: Note:

6
Source/Doc/Introduction.md

@ -41,7 +41,7 @@ Supported hardware features of RomWBW include:
* Banked memory services for several banking designs * Banked memory services for several banking designs
* Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, Iomega * Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, Iomega
* Serial drivers including UART (16550-like), ASCI, ACIA, SIO * Serial drivers including UART (16550-like), ASCI, ACIA, SIO
* Video drivers including TMS9918, SY6545, MOS8563, HD6445
* Video drivers including TMS9918, SY6545, MOS8563, HD6445, Xosera
* Keyboard (PS/2) drivers via VT8242 or PPI interfaces * Keyboard (PS/2) drivers via VT8242 or PPI interfaces
* Real time clock drivers including DS1302, BQ4845 * Real time clock drivers including DS1302, BQ4845
* Support for CP/NET networking using Wiznet, MT011 or Serial * Support for CP/NET networking using Wiznet, MT011 or Serial
@ -324,7 +324,9 @@ please let me know if I missed you!
* Les Bird has contributed support for the NABU w/ Option Board * Les Bird has contributed support for the NABU w/ Option Board
* Rob Gowin created an online documentation site via MkDocs.
* Rob Gowin created an online documentation site via MkDocs, and
contributed a driver for the Xosera FPGA-based video
controller.
`\clearpage`{=latex} `\clearpage`{=latex}

19
Source/Doc/SystemGuide.md

@ -1756,14 +1756,17 @@ All video units are assigned a Device Type ID which indicates
the specific hardware device driver that handles the unit. The table the specific hardware device driver that handles the unit. The table
below enumerates their values. below enumerates their values.
| **Device Type** | **ID** | **Description** | **Driver** |
|-----------------|-------:|------------------------------------------|------------|
| VDADEV_VDU | 0x00 | MC6845 Family Video Display Controller | vdu.asm |
| VDADEV_CVDU | 0x01 | MC8563-based Video Display Controller | cvdu.asm |
| VDADEV_GDC | 0x02 | uPD7220 Video Display Controller | gdc.asm |
| VDADEV_TMS | 0x03 | TMS9918/38/58 Video Display Controller | tms.asm |
| VDADEV_VGA | 0x04 | HD6445CP4-based Video Display Controller | vga.asm |
| VDADEV_VRC | 0x05 | VGARC | vrc.asm |
| **Device Type** | **ID** | **Description** | **Driver** |
|-----------------|-------:|--------------------------------------------|------------|
| VDADEV_VDU | 0x00 | MC6845 Family Video Display Controller | vdu.asm |
| VDADEV_CVDU | 0x01 | MC8563-based Video Display Controller | cvdu.asm |
| VDADEV_GDC | 0x02 | uPD7220 Video Display Controller | gdc.asm |
| VDADEV_TMS | 0x03 | TMS9918/38/58 Video Display Controller | tms.asm |
| VDADEV_VGA | 0x04 | HD6445CP4-based Video Display Controller | vga.asm |
| VDADEV_VRC | 0x05 | VGARC | vrc.asm |
| VDADEV_EF | 0x06 | EF9345 | ef.asm |
| VDADEV_FV | 0x07 | S100 FPGA VGA | fv.asm |
| VDADEV_XOSERA | 0x08 | Xosera FPGA-based Video Display Controller | xosera.asm |
Depending on the capabilities of the hardware, the use of colors and Depending on the capabilities of the hardware, the use of colors and
attributes may or may not be supported. If the hardware does not support attributes may or may not be supported. If the hardware does not support

54
Source/HBIOS/Config/RCZ80_xosera.asm

@ -0,0 +1,54 @@
;
;==================================================================================================
; ROMWBW CUSTOM USER BUILD SETTINGS EXAMPLE FOR RCBUS Z80
;==================================================================================================
;
; THIS FILE IS AN EXAMPLE OF A CUSTOM USER SETTINGS FILE. THESE
; SETTINGS OVERRIDE THE DEFAULT SETTINGS OF THE INHERITED FILES AS
; DESIRED BY A USER.
;
; ROMWBW USES CASCADING CONFIGURATION FILES AS INDICATED BELOW:
;
; cfg_MASTER.asm - MASTER: CONFIGURATION FILE DEFINES ALL POSSIBLE ROMWBW SETTINGS
; |
; +-> cfg_<platform>.asm - PLATFORM: DEFAULT SETTINGS FOR SPECIFIC PLATFORM
; |
; +-> Config/<plt>_std.asm - BUILD: SETTINGS FOR EACH OFFICIAL DIST BUILD
; |
; +-> Config/<plt>_<cust>.asm - USER: CUSTOM USER BUILD SETTINGS
;
; THE TOP (MASTER CONFIGURATION) FILE DEFINES ALL POSSIBLE ROMWBW
; CONFIGURATION SETTINGS. EACH FILE BELOW THE MASTER CONFIGURATION FILE
; INHERITS THE CUMULATIVE SETTINGS OF THE FILES ABOVE IT AND MAY
; OVERRIDE THESE SETTINGS AS DESIRED.
;
; OTHER THAN THE TOP MASTER FILE, EACH FILE MUST "#INCLUDE" ITS PARENT
; FILE (SEE #INCLUDE STATEMENT BELOW). THE TOP TWO FILES SHOULD NOT BE
; MODIFIED.
;
; THIS FILE EXEMPLIFIES THE IDEAL WAY TO CREATE A USER SPECIFIC BUILD
; CONFIGURATION. NOTICE THAT IT INCLUDES THE DEFAULT BUILD SETTINGS
; FILE AND OVERRIDES SOME DESIRED SETTINGS.
;
; BY CREATING A CUSTOM USER SETTINGS FILE, YOU ARE LESS LIKELY TO BE
; IMPACTED BY FUTURE CHANGES BECAUSE YOU WILL BE INHERITING MOST
; OF YOUR SETTINGS WHICH WILL BE UPDATED BY AUTHORS AS ROMWBW EVOLVES.
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE
; SOURCE DIRECTORY (TWO DIRECTORIES ABOVE THIS ONE).
;
; *** WARNING: ASIDE FROM THE MASTER CONFIGURATION FILE, YOU MUST USE
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
; THIS FILE ENABLES THE XOSERA DRIVER WITH A BASE ADDRESS Of 0XE0
; AND DISPLAY SIZE OF 80 COLUMNS X 30 ROWS
;
#INCLUDE "Config/RCZ80_std.asm" ; INHERIT FROM OFFICIAL BUILD SETTINGS
;
XOSENABLE .SET TRUE ; XOSERA: ENABLE XOSERA VIDEO DRIVERS (XOSERA.ASM)
XOS_BASE .SET $20 ; XOSERA: I/O BASE ADDRESS (REQUIRES 32 BYTES)
XOSSIZ .SET V80X30 ; XOSERA: DISPLAY FORMAT [V80X30|V80X60]
;
AUTOCON .SET FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
VDAEMU_SERKBD .SET $0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD

3
Source/HBIOS/cfg_MASTER.asm

@ -311,6 +311,9 @@ VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
FVENABLE .EQU FALSE ; FV: ENABLE FPGA VGA VIDEO DRIVER (FV.ASM) FVENABLE .EQU FALSE ; FV: ENABLE FPGA VGA VIDEO DRIVER (FV.ASM)
XOSENABLE .EQU FALSE ; XOSERA: ENABLE XOSERA VIDEO DRIVERS (XOSERA.ASM)
XOS_BASE .EQU $20 ; XOSERA: I/O BASE ADDRESS (REQUIRES 32 BYTES)
XOSSIZ .EQU V80X30 ; XOSERA: DISPLAY FORMAT [V80X30|V80X60]
; ;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK MDROM .EQU TRUE ; MD: ENABLE ROM DISK

16
Source/HBIOS/hbios.asm

@ -3955,6 +3955,9 @@ HB_PCINITTBL:
#IF (PIO_4P | PIO_ZP) #IF (PIO_4P | PIO_ZP)
.DW PIO_PREINIT .DW PIO_PREINIT
#ENDIF #ENDIF
#IF (XOSENABLE)
.DW XOS_PREINIT
#ENDIF
; ;
HB_PCINITTBLLEN .EQU (($ - HB_PCINITTBL) / 2) HB_PCINITTBLLEN .EQU (($ - HB_PCINITTBL) / 2)
; ;
@ -4090,6 +4093,9 @@ HB_INITTBL:
#IF (SCONENABLE) #IF (SCONENABLE)
.DW SCON_INIT .DW SCON_INIT
#ENDIF #ENDIF
#IF (XOSENABLE)
.DW XOS_INIT
#ENDIF
#IF (LPTENABLE) #IF (LPTENABLE)
.DW LPT_INIT .DW LPT_INIT
#ENDIF #ENDIF
@ -8831,6 +8837,7 @@ PS_VDVGA .TEXT "VGA$"
PS_VDVRC .TEXT "VRC$" PS_VDVRC .TEXT "VRC$"
PS_VDEF .TEXT "EF$" PS_VDEF .TEXT "EF$"
PS_VDFV .TEXT "FV$" PS_VDFV .TEXT "FV$"
PS_VDXOSERA .TEXT "XOSERA$"
; ;
; VIDEO TYPE STRINGS ; VIDEO TYPE STRINGS
; ;
@ -9168,6 +9175,15 @@ SIZ_FV .EQU $ - ORG_FV
MEMECHO " bytes.\n" MEMECHO " bytes.\n"
#ENDIF #ENDIF
; ;
#IF (XOSENABLE)
ORG_XOS .EQU $
#INCLUDE "xosera.asm"
SIZ_XOS .EQU $ - ORG_XOS
MEMECHO "XOS occupies "
MEMECHO SIZ_XOS
MEMECHO " bytes.\n"
#ENDIF
;
#IF (DMAENABLE) #IF (DMAENABLE)
ORG_DMA .EQU $ ORG_DMA .EQU $
#INCLUDE "dma.asm" #INCLUDE "dma.asm"

1
Source/HBIOS/hbios.inc

@ -450,6 +450,7 @@ VDADEV_VGA .EQU $04 ; ECB VGA3 - HITACHI HD6445
VDADEV_VRC .EQU $05 ; VGARC VDADEV_VRC .EQU $05 ; VGARC
VDADEV_EF .EQU $06 ; EF9345 VDADEV_EF .EQU $06 ; EF9345
VDADEV_FV .EQU $07 ; S100 FPGA VGA VDADEV_FV .EQU $07 ; S100 FPGA VGA
VDADEV_XOSERA .EQU $08 ; XOSERA RCBUS
; ;
; SOUND DEVICE IDS ; SOUND DEVICE IDS
; ;

1050
Source/HBIOS/xosera.asm

File diff suppressed because it is too large
Loading…
Cancel
Save