diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 85e1400e..7ecfa285 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -8,6 +8,7 @@ Version 3.5 - WBW: Add API to expose application banks available - WBW: Added console takeover at boot loader prompt - L?N: Fixed Propeller font vertical line character to align properly +- L?S: EF9345 video display controller driver Version 3.4 ----------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index b38b3c40..06ed5b79 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index b3431d60..abeef090 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index 260c131a..2fbfbd0e 100644 Binary files a/Doc/RomWBW Errata.pdf and b/Doc/RomWBW Errata.pdf differ diff --git a/Doc/RomWBW ROM Applications.pdf b/Doc/RomWBW ROM Applications.pdf index 2d311f87..a94bdee8 100644 Binary files a/Doc/RomWBW ROM Applications.pdf and b/Doc/RomWBW ROM Applications.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 7ce63e91..b6feccba 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index 06e945aa..59a2a01b 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index 38be134b..ce441935 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -5658,6 +5658,7 @@ may be discovered by RomWBW in your system. | DS1501RTC | RTC | Maxim DS1501/DS1511 Watchdog Real-Time Clock | | DSRTC | RTC | Maxim DS1302 Real-Time Clock w/ NVRAM | | DUART | Char | SCC2681 or compatible Dual UART | +| EF | Char | EF9345 Video Display Controller | | EMM | Disk | Disk drive on Parallel Port emm interface (Zip Drive) | | FD | Disk | 8272 or compatible Floppy Disk Controller | | FP | System | Simple LED & Switch Front Panel | diff --git a/Source/HBIOS/Config/RCZ180_ext.asm b/Source/HBIOS/Config/RCZ180_ext.asm index 25cad0e4..3f8c7744 100644 --- a/Source/HBIOS/Config/RCZ180_ext.asm +++ b/Source/HBIOS/Config/RCZ180_ext.asm @@ -50,6 +50,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; ; diff --git a/Source/HBIOS/Config/RCZ180_nat.asm b/Source/HBIOS/Config/RCZ180_nat.asm index 4c682e3e..d8bd155b 100644 --- a/Source/HBIOS/Config/RCZ180_nat.asm +++ b/Source/HBIOS/Config/RCZ180_nat.asm @@ -50,6 +50,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ180_z1rcc.asm b/Source/HBIOS/Config/RCZ180_z1rcc.asm index 052792f6..5556b6ac 100644 --- a/Source/HBIOS/Config/RCZ180_z1rcc.asm +++ b/Source/HBIOS/Config/RCZ180_z1rcc.asm @@ -58,6 +58,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; ; diff --git a/Source/HBIOS/Config/RCZ280_ext.asm b/Source/HBIOS/Config/RCZ280_ext.asm index f2840178..035b37a1 100644 --- a/Source/HBIOS/Config/RCZ280_ext.asm +++ b/Source/HBIOS/Config/RCZ280_ext.asm @@ -49,6 +49,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ280_nat.asm b/Source/HBIOS/Config/RCZ280_nat.asm index 1dfe55b6..2d74551c 100644 --- a/Source/HBIOS/Config/RCZ280_nat.asm +++ b/Source/HBIOS/Config/RCZ280_nat.asm @@ -49,6 +49,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ280_zz80mb.asm b/Source/HBIOS/Config/RCZ280_zz80mb.asm index 66ff739e..7a54bc23 100644 --- a/Source/HBIOS/Config/RCZ280_zz80mb.asm +++ b/Source/HBIOS/Config/RCZ280_zz80mb.asm @@ -54,6 +54,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) VRCENABLE .SET TRUE ; 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 diff --git a/Source/HBIOS/Config/RCZ280_zzrcc.asm b/Source/HBIOS/Config/RCZ280_zzrcc.asm index 7f79d840..db8067b8 100644 --- a/Source/HBIOS/Config/RCZ280_zzrcc.asm +++ b/Source/HBIOS/Config/RCZ280_zzrcc.asm @@ -60,6 +60,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) VRCENABLE .SET TRUE ; 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 diff --git a/Source/HBIOS/Config/RCZ280_zzrcc_ram.asm b/Source/HBIOS/Config/RCZ280_zzrcc_ram.asm index 703fbc21..957535d2 100644 --- a/Source/HBIOS/Config/RCZ280_zzrcc_ram.asm +++ b/Source/HBIOS/Config/RCZ280_zzrcc_ram.asm @@ -60,6 +60,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) VRCENABLE .SET TRUE ; 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 diff --git a/Source/HBIOS/Config/RCZ80_easy.asm b/Source/HBIOS/Config/RCZ80_easy.asm index d59154ca..ae6a1d8b 100644 --- a/Source/HBIOS/Config/RCZ80_easy.asm +++ b/Source/HBIOS/Config/RCZ80_easy.asm @@ -63,6 +63,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ80_jbl.asm b/Source/HBIOS/Config/RCZ80_jbl.asm index b72f6076..e43b54a8 100644 --- a/Source/HBIOS/Config/RCZ80_jbl.asm +++ b/Source/HBIOS/Config/RCZ80_jbl.asm @@ -62,6 +62,7 @@ TMSENABLE .SET TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_COLECO ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) +EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) VDAEMU_SERKBD .SET 1 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ80_kio.asm b/Source/HBIOS/Config/RCZ80_kio.asm index e56048d4..df822ed8 100644 --- a/Source/HBIOS/Config/RCZ80_kio.asm +++ b/Source/HBIOS/Config/RCZ80_kio.asm @@ -59,6 +59,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ80_skz.asm b/Source/HBIOS/Config/RCZ80_skz.asm index 0dcf8039..b2b804c6 100644 --- a/Source/HBIOS/Config/RCZ80_skz.asm +++ b/Source/HBIOS/Config/RCZ80_skz.asm @@ -54,6 +54,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ80_std.asm b/Source/HBIOS/Config/RCZ80_std.asm index d3b51193..13689758 100644 --- a/Source/HBIOS/Config/RCZ80_std.asm +++ b/Source/HBIOS/Config/RCZ80_std.asm @@ -47,6 +47,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ80_tiny.asm b/Source/HBIOS/Config/RCZ80_tiny.asm index 4257cd61..81935820 100644 --- a/Source/HBIOS/Config/RCZ80_tiny.asm +++ b/Source/HBIOS/Config/RCZ80_tiny.asm @@ -68,6 +68,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/RCZ80_zrc.asm b/Source/HBIOS/Config/RCZ80_zrc.asm index 272aac78..35770df3 100644 --- a/Source/HBIOS/Config/RCZ80_zrc.asm +++ b/Source/HBIOS/Config/RCZ80_zrc.asm @@ -48,6 +48,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) VRCENABLE .SET TRUE ; 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 diff --git a/Source/HBIOS/Config/RCZ80_zrc512.asm b/Source/HBIOS/Config/RCZ80_zrc512.asm index 12457d6b..cf1eed89 100644 --- a/Source/HBIOS/Config/RCZ80_zrc512.asm +++ b/Source/HBIOS/Config/RCZ80_zrc512.asm @@ -50,6 +50,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) VRCENABLE .SET TRUE ; 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 diff --git a/Source/HBIOS/Config/RCZ80_zrc_ram.asm b/Source/HBIOS/Config/RCZ80_zrc_ram.asm index 59993996..3e3e3ef4 100644 --- a/Source/HBIOS/Config/RCZ80_zrc_ram.asm +++ b/Source/HBIOS/Config/RCZ80_zrc_ram.asm @@ -50,6 +50,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) VRCENABLE .SET TRUE ; 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 diff --git a/Source/HBIOS/Config/SCZ180_sc126.asm b/Source/HBIOS/Config/SCZ180_sc126.asm index e617d8c9..785580e9 100644 --- a/Source/HBIOS/Config/SCZ180_sc126.asm +++ b/Source/HBIOS/Config/SCZ180_sc126.asm @@ -52,6 +52,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/SCZ180_sc130.asm b/Source/HBIOS/Config/SCZ180_sc130.asm index 219862cb..9987bf39 100644 --- a/Source/HBIOS/Config/SCZ180_sc130.asm +++ b/Source/HBIOS/Config/SCZ180_sc130.asm @@ -53,6 +53,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] 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 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/Config/SCZ180_sc700.asm b/Source/HBIOS/Config/SCZ180_sc700.asm index 9932cba2..88f38f37 100644 --- a/Source/HBIOS/Config/SCZ180_sc700.asm +++ b/Source/HBIOS/Config/SCZ180_sc700.asm @@ -53,6 +53,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) +EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD ; AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER diff --git a/Source/HBIOS/cfg_duo.asm b/Source/HBIOS/cfg_duo.asm index 7fab49e7..bd9606eb 100644 --- a/Source/HBIOS/cfg_duo.asm +++ b/Source/HBIOS/cfg_duo.asm @@ -174,6 +174,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index 725ea24d..66726519 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/Source/HBIOS/cfg_dyno.asm @@ -191,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_epitx.asm b/Source/HBIOS/cfg_epitx.asm index be4868bb..40be5a09 100644 --- a/Source/HBIOS/cfg_epitx.asm +++ b/Source/HBIOS/cfg_epitx.asm @@ -193,6 +193,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_heath.asm b/Source/HBIOS/cfg_heath.asm index 8de43899..f1c53d35 100644 --- a/Source/HBIOS/cfg_heath.asm +++ b/Source/HBIOS/cfg_heath.asm @@ -196,6 +196,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index 3a5236ac..8419d777 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.asm @@ -242,6 +242,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_mbc.asm b/Source/HBIOS/cfg_mbc.asm index 3883d096..147b15cd 100644 --- a/Source/HBIOS/cfg_mbc.asm +++ b/Source/HBIOS/cfg_mbc.asm @@ -171,6 +171,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index a5366ccb..f2815b94 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -181,6 +181,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_mon.asm b/Source/HBIOS/cfg_mon.asm index 6af777ab..deecfc30 100644 --- a/Source/HBIOS/cfg_mon.asm +++ b/Source/HBIOS/cfg_mon.asm @@ -191,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 82854384..64d29641 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.asm @@ -183,6 +183,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index 97700fcc..a54bb422 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.asm @@ -197,6 +197,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm index 020c0efb..a4b55f5e 100644 --- a/Source/HBIOS/cfg_rcz280.asm +++ b/Source/HBIOS/cfg_rcz280.asm @@ -201,6 +201,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index ee28e99e..4ba87bd7 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.asm @@ -196,6 +196,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_rph.asm b/Source/HBIOS/cfg_rph.asm index 5718fdfa..161bd06d 100644 --- a/Source/HBIOS/cfg_rph.asm +++ b/Source/HBIOS/cfg_rph.asm @@ -172,6 +172,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_s100.asm b/Source/HBIOS/cfg_s100.asm index 23d0a237..9054bca1 100644 --- a/Source/HBIOS/cfg_s100.asm +++ b/Source/HBIOS/cfg_s100.asm @@ -191,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 5d15f23c..2e3b4590 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -171,6 +171,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index 6680cee2..a67633cf 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/Source/HBIOS/cfg_scz180.asm @@ -191,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_z80retro.asm b/Source/HBIOS/cfg_z80retro.asm index b13d2d66..133eda3d 100644 --- a/Source/HBIOS/cfg_z80retro.asm +++ b/Source/HBIOS/cfg_z80retro.asm @@ -173,6 +173,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index 01d24a9f..ebffc955 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/Source/HBIOS/cfg_zeta.asm @@ -143,6 +143,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index 47e7f652..39c675e9 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/Source/HBIOS/cfg_zeta2.asm @@ -154,6 +154,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/ef.asm b/Source/HBIOS/ef.asm new file mode 100644 index 00000000..8a7e6db3 --- /dev/null +++ b/Source/HBIOS/ef.asm @@ -0,0 +1,1083 @@ +;====================================================================== +; EF9345 DRIVER FOR ROMWBW +; +; PARTS WRITTEN BY: ALAN COX +; REVISED/ENHANCED BY LASZLO SZOLNOKI -- 01/2024 +;====================================================================== +; TODO: +; - 40X24 IMPLEMENTATION +;====================================================================== +; EF9345 DRIVER - CONSTANTS +;====================================================================== +; +TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER +; +EF_BASE .EQU $F0 +EF_SETREG .EQU EF_BASE + 4 +EF_DATAACC .EQU EF_BASE + 5 +EF_RESET .EQU EF_BASE + 6 +; +EF_SIZE .EQU V80X24 +; +EF_R0 .EQU $20 +EF_R1 .EQU EF_R0+1 +EF_R2 .EQU EF_R0+2 +EF_R3 .EQU EF_R0+3 +EF_R4 .EQU EF_R0+4 +EF_R5 .EQU EF_R0+5 +EF_R6 .EQU EF_R0+6 +EF_R7 .EQU EF_R0+7 +; +EF_XA .EQU EF_R5 +EF_YA .EQU EF_R4 +EF_XP .EQU EF_R7 +EF_YP .EQU EF_R6 +; +EF_EXEC .EQU 00001000b +; +EF_TGSREG .EQU 1 +EF_MATREG .EQU 2 +EF_PATREG .EQU 3 +EF_DORREG .EQU 4 +EF_RORREG .EQU 7 +;EF_WRTINDIR .EQU 10000000b +; +; CMD +; +EF_NOP .EQU $91 ; +EF_IND .EQU $80 ; +EF_CLF .EQU $05 ; +EF_OCT .EQU $30 ; +EF_OCTAUX .EQU $04 ; AUXILIARY POITER +EF_KRF .EQU $00 ; NO AUTOINCREMENT +EF_KRL .EQU $50 ; NO AUTOINCREMENT +EF_INY .EQU $B0 ; INC Y +; +;EF_IND_TGS .EQU $81 +;EF_IND_MAT .EQU $82 +;EF_IND_PAT .EQU $83 +;EF_IND_DOR .EQU $84 +;EF_IND_ROR .EQU $87 +EF_RREG .EQU 00001000b +;EF_WREG .EQU ~EF_RREG +; +; | 1 | 0 | 0| 0| R/!W | r | r | r | IND command +; 0 0 1 TGS +; 0 1 0 MAT +; 0 1 1 PAT +; 1 0 0 DOR +; 1 0 1 +; 1 1 0 +; 1 1 1 ROR +; MAT5 MAT4 +; fixed complemented 0 0 +; flash complemented 1 0 +; fixed underlined 0 1 +; flash underlined 1 1 +; +EF_NOCU .EQU 10111111B ; MAT6 = 0 : NO CURSOR +EF_BLK .EQU 00100000B ; MAT5 = 1 : BLINK CURSOR +EF_NOBL .EQU 11011111B ; MAT5 = 0 : NO BLINK +; +EF_BLOK .EQU 11101111b ; MAT4 = 0 : BLOCK CURSOR +EF_ULIN .EQU 00010000b ; MAT4 = 1 : UNDERLINE CURSOR +; +EF_CURENA .EQU TRUE ; ENABLE CURSOR +; +EF_MARCOL .EQU 00000000B ; MARGIN COLOR BLACK : MAT0 = R, MAT1 = G, MAT2 = B +EF_MARENA .EQU 00001000B ; MARGIN INSERT : MAT3 = 1 +; +EF_CUREN .EQU 01000000B ; MAT6 = 1 : CURSOR ENABLED +EF_DISCU .EQU 10111111B ; MAT6 = 0 : NO CURSOR +; +EF_BLINK .EQU 00100000B ; MAT5 = 1 : BLINK CURSOR +EF_NOBLINK .EQU 11011111B ; MAT5 = 0 : NO BLINK +; +EF_COMPL .EQU 11101111b ; MAT4 = 0 : BLOCK CURSOR +; +EF_FLASHCHAR .EQU 00001000B +EF_REVERSCHAR .EQU 10000000B +; +#IF EF_CURENA +EF_CSTY .EQU EF_CUREN | EF_BLINK | EF_ULIN | EF_MARENA | EF_MARCOL +#ELSE +EF_CSTY .EQU EF_MARENA | EF_MARCOL +#ENDIF +; +FIRSTLINE .EQU 8 +; +#IF (EF_SIZE=V80X24) ; V80X24 +EF_DLINES .EQU 24 +EF_DROWS .EQU 80 +EF_DSCANL .EQU 10 +; ATTRIBUTES +EF_FLASH .EQU 01000100B +EF_NEGATIVE .EQU 10001000B +EF_UNDERLINE .EQU 00100010B +EF_COLORSET .EQU 00010001B +#ENDIF +; +#IF (EF_SIZE=V40X24) +EF_DLINES .EQU 24 +EF_DROWS .EQU 40 +EF_DSCANL .EQU 10 +; ATTRIBUTES +EF_FLASH .EQU 01000100B +EF_NEGATIVE .EQU 10001000B +EF_UNDERLINE .EQU 00100010B +EF_COLORSET .EQU 00010001B +#ENDIF +; +; DISTRICTS +; +EF_DIST0 .EQU 0 +EF_DIST1 .EQU $20 +EF_DIST2 .EQU $80 +EF_DIST3 .EQU $A0 +; +EF_BG_BLACK .EQU $0 +EF_BG_RED .EQU $10 +EF_BG_GREEN .EQU $20 +EF_BG_BROWN .EQU $30 +EF_BG_BLUE .EQU $40 +EF_BG_MAGENTA .EQU $50 +EF_BG_CYAN .EQU $60 +EF_BG_WHITE .EQU $70 +EF_FG_BLACK .EQU 0 +EF_FG_RED .EQU 1 +EF_FG_GREEN .EQU 2 +EF_FG_BROWN .EQU 3 +EF_FG_BLUE .EQU 4 +EF_FG_MAGENTA .EQU 5 +EF_FG_CYAN .EQU 6 +EF_FG_WHITE .EQU 7 +; +EF_SCREENSIZE .EQU EF_DROWS * EF_DLINES +; +;====================================================================== +; VDU DRIVER - INITIALIZATION +;====================================================================== +; +EF_INIT: +; + LD IY,EF_IDAT ; POITER TO INSTANCE DATA +; + CALL NEWLINE ; FORMATTING + PRTS("EF : IO=0x$") + LD A,EF_BASE + CALL PRTHEXBYTE + + PRTS(" MODE=$") ; OUTPUT DISPLAY FORMAT + LD A,EF_DROWS + CALL PRTDECB + PRTS("X$") + LD A,EF_DLINES + CALL PRTDECB + + CALL EF_PROBE ; CHECK FOR HW EXISTENCE + JR Z,EF_INIT1 ; CONTINUE IF HW PRESENT +; + PRTS(" NOT PRESENT$") + XOR A + OR -8 ; HARDWARE NOT PRESENT + RET +; +EF_INIT1: + OUT (EF_RESET),A ; HARDWARE RESET +; + LD A,EF_DIST0 + LD (EF_CON_BANKY),A ; +; + CALL EF_CRTINIT ; INIT EF9345 CHIP +; +; ADD OURSELVES TO VDA DISPATCH TABLE + LD BC,EF_FNTBL ; BC := FUNCTION TABLE ADDRESS + LD DE,EF_IDAT ; DE := VDU INSTANCE DATA PTR + CALL VDA_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED +; +#IF TERMENABLE + ; INITIALIZE EMULATION + LD C,A ; ASSIGNED VIDEO UNIT IN C + LD DE,EF_FNTBL ; DE := FUNCTION TABLE ADDRESS + LD HL,EF_IDAT ; HL := VDU INSTANCE DATA PTR + CALL TERM_ATTACH ; DO IT +#ENDIF +; + XOR A ; SIGNAL SUCCESS + RET +; +EF_CRTINIT: + LD DE,(EF_R0+EF_EXEC)*256 + EF_NOP ; FORCE NOP + CALL EF_WWRREG +; + LD HL,EF_INIT9345 ; INITIAL SETUP PARAMETERS + CALL EF_LOAD_MODE +; + LD DE,0 + LD (EF_VDA_OFFSET),DE +; +#IF (EF_SIZE = V40X24) + XOR A + LD (EF_VDATYPESET),A +#ENDIF +; +; E = CHARACTER ATTRIBUTES : E0 = BLINK, E1 = UNDELINE, E2 = REVERSE, E3 = COLOR SET +; VIDEO SET CHARACTER ATTRIBUTE FOR SCROLL, KRL, ETC. + LD E,00000000B + CALL EF_VDASAT +; + LD E,EF_BG_BLACK + EF_FG_WHITE ; SET CHARACTER COLOR + CALL EF_VDASCO +; +; VIDEO SET CURSOR STYLE +; ENTRY: C = VIDEO UNIT, D = START/END, E = STYLE : E0 = BLINK/FLASH, E1 = UNDELINE, E2 = REVERSE/COMPLEMENT +; MAT5 = 1 : FLASH, MAT4 = 0 : COMPLEMENT +; RETURN A = STATUS + LD E,3 ; UNDERLINED BLINKING + CALL EF_VDASCS +; + CALL EF_CLEARALL +; + LD DE,0 ; SET CURSOR TO 0,0 + CALL EF_VDASCP + RET +; +EF_CLEARALL: + LD DE,0 ; SET CURSOR 0,0 + CALL EF_VDASCP ; D = ROW, E = COLUMNS + LD HL,EF_DROWS * EF_DLINES +; + LD E,' ' + CALL EF_VDAFIL + XOR A + RET +; +; R1 := C BYTE IS THE CHARACTER CODE +; R2 := B BYTE TYPE AND SET, OTHER PARAMETERS +; R3 := A BYTE ATTRIBUTES, NEGATIVE, FG COLOR, FLASH, BG COLOR +; +#IF (EF_SIZE=V80X24) +EF_KRL80: + PUSH DE + LD DE,EF_R0*256 + EF_KRL ; R0 KRL COMMAND + CALL EF_WWRREG + LD D,EF_R3 + LD A,(EF_VDAATTR) ; DOUBLE ATTRIBUTES FOR LOWER NIBBLE + LD E,A + CALL EF_WWRREG + POP DE + RET +#ENDIF +; +#IF (EF_SIZE = V40X24) +EF_KRF40: + PUSH DE + LD DE,EF_R0*256 + KRF + CALL EF_WWRREG + LD D,R3 + LD A,(EF_VDACOLOR) + LD B,A + LD A,(EF_VDAATTR) + OR B + LD E,A ; COLOR + CALL EF_WRREG + LD D,EF_R2 + LD A,(EF_VDATYPESET) + LD E,A + CALL EF_WRREG + POP DE + XOR A + RET +#ENDIF +; +;---------------------------------------------------------------------- +; PROBE FOR EF9345 HARDWARE +;---------------------------------------------------------------------- +; +; ON RETURN, ZF SET INDICATES HARDWARE FOUND +; +EF_PROBE: + LD DE,EF_R1*256+'a' + LD H,E + CALL EF_WRREG + CALL EF_RDREG + CP H + RET +; +;---------------------------------------------------------------------- +; WAIT FOR VDU TO BE READY FOR A DATA READ/WRITE +;---------------------------------------------------------------------- +; +EF_WAITRDY: + LD A,EF_R0 + OUT (EF_SETREG),A + IN A,(EF_DATAACC) + RLA + JR C,EF_WAITRDY + RET +; +;---------------------------------------------------------------------- +; UPDATE EF9345 REGISTERS +; EF_WRREG WRITES VALUE IN E TO EF9345 REGISTER SPECIFIED IN D +; EF_WWRREG AFTER WAITING FOR READY WRITES VALUE IN E TO EF9345 REGISTER SPECIFIED IN D +;------------------------------------------------------------------- -- +; +EF_WWRREG: + CALL EF_WAITRDY +EF_WRREG: + LD A,D + OUT (EF_SETREG),A + LD A,E + OUT (EF_DATAACC),A + RET +; +;---------------------------------------------------------------------- +; READ EF9345 REGISTERS +; EF_RDREG READS EF9345 REGISTER SPECIFIED IN D AND RETURNS VALUE IN A AND E +;---------------------------------------------------------------------- +EF_RDREG: + CALL EF_WAITRDY + LD A,D + OUT (EF_SETREG),A + IN A,(EF_DATAACC) + LD E,A + RET +; +;---------------------------------------------------------------------- +; READ INDIRECT EF9345 REGISTERS +; EF_READ_INDIR READS EF9345 REGISTER SPECIFIED IN D AND RETURNS VALUE IN A AND E +;---------------------------------------------------------------------- +; +EF_READ_INDIR: + LD A,EF_IND + OR D + OR EF_RREG + LD E,A + LD D,EF_R0 + EF_EXEC + CALL EF_WWRREG + LD D,EF_R1 + CALL EF_RDREG + RET +; +;---------------------------------------------------------------------- +; WRITES INDIRECT EF9345 REGISTERS +; EF_LOAD_INDIR WRITES VALUE IN E TO INDIRECT EF9345 REGISTER SPECIFIED IN D +;---------------------------------------------------------------------- +; +EF_LOAD_INDIR: ; D = TARGET REGISTER, E = VALUE TO WRITE + PUSH DE + LD D,EF_R1 + CALL EF_WWRREG + POP DE + PUSH DE + LD A,EF_IND + OR D + LD E,A + LD D,EF_R0 + EF_EXEC + CALL EF_WWRREG + POP DE + RET +; +EF_LOAD_MODE: ; LOAD MODE + LD D,EF_TGSREG ; START INDIRECT REGISTER 1 : TGS + LD B,EF_INIT_CNT ; LOAD 5 INDIRECT REGISTERS +EF_MODEREG: + LD E,(HL) + CALL EF_LOAD_INDIR + INC HL + INC D + LD A,EF_INIT_CNT + CP D + JR NZ,EF_NOSKIP + INC D + INC D + LD E,(HL) + LD A,(EF_CON_BANKY) + ADD A,E + LD E,A + CALL EF_LOAD_INDIR + RET +EF_NOSKIP: + DJNZ EF_MODEREG + RET +; +EF_GETXY: ; D = ROW, E = COLUMNS + CALL EF_GETX + CALL EF_GETY + RET +; +EF_GETX: ; E = COLUMNS + CALL EF_WAITRDY + LD D,EF_XP + CALL EF_RDREG +#IF (EF_SIZE=V80X24) + RLCA ; CORRECTION 80 ROWS MODE +#ENDIF + LD E,A + RET +; +EF_GETY: ; D = ROW + CALL EF_WAITRDY + PUSH DE + LD D,EF_YP + CALL EF_RDREG + AND 00011111B + PUSH HL + LD HL,(EF_VDA_OFFSET) + SUB H + POP HL + SUB FIRSTLINE + POP DE + LD D,A + RET +; +EF_LOADFONTS: + PRTS("Not implemented$") + CALL NEWLINE + SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET) + LD A,-2 + OR A + RET +; +EF_NOTIMP: + PRTS("Not implemented$") + CALL NEWLINE + SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET) + XOR A + OR -2 ; FUNCTION NOT IMPLEMENTED + RET +; +EF_CURSORON: ; CURSOR DISPLAY ENABLE + PUSH DE + PUSH AF + LD D,EF_MATREG ; LOAD CURSOR ENABLE + CALL EF_READ_INDIR + OR 01000000B + LD D,EF_MATREG ; SET CURPOS ENABLE + LD E,A + CALL EF_LOAD_INDIR + POP AF + POP DE + RET +; +EF_CURSOROFF: + PUSH DE + PUSH AF + LD D,EF_MATREG ; LOAD CURSOR ENABLE + CALL EF_READ_INDIR + AND 10111111B + LD D,EF_MATREG ; SET CURSOR ENABLE + LD E,A + CALL EF_LOAD_INDIR + POP AF + POP DE + RET +; +EF_INCCURSOR: ; CURSOR POSITION, D = ROW, E = COLUMN +; Y , X WITH MODULO DROWS + PUSH DE + PUSH HL + LD HL,(EF_VDA_OFFSET) + LD DE,(EF_VDA_POS) + ADD HL,DE + INC DE + LD A,EF_DROWS + CP E + JR NZ,EF_CURS0 + LD E,0 + INC D + LD A,EF_DLINES + CP D + JR NZ,EF_CURS0 +; LD D,0 + DEC D ; Y REMAINS INSIDE THE BOUNDARY + LD (EF_VDA_POS),DE + CALL EF_VDASCP + POP HL + POP DE + OR -6 ; PARAMETER OUT OF RANGE + RET +EF_CURS0: + LD (EF_VDA_POS),DE + CALL EF_VDASCP + POP HL + POP DE + RET +; +;---------------------------------------------------------------------- +; DISPLAY CONTROLLER CHIP INITIALIZATION +;---------------------------------------------------------------------- +; +EF_INIT9345: +#IF (EF_SIZE=V80X24) ; E) +EF_TGS: .DB 11000010b ; 80 char/row, long char code (12 bits) : TGS Register interlaced +EF_MAT: .DB EF_CSTY ; 01001000b ; cursor enabled, fixed complent cursor, margin color = black : MAT Register +EF_PAT: .DB 01111110b ; 80 char/row, long code, upper/lower bulk on, conceal on, + ; I high during active disp. area, status row disebled : PAT Register +EF_DOR: .DB 10001111b ; DOR(3:0) = 1111 : color c0 = white, DOR(7:4) = 1000 : color c1 = black +EF_ROR: .DB 00001000b ; ROR(7:5) = 000 : displayed page memory starts from block 0 + ; ROR(4:0) = 01000 : origin row = 8 +#ENDIF +; +#IF (EF_SIZE=V40X24) +EF_TGS: .DB 00000000B ; 40 char/row, long char code (24 bits) : TGS Register interlaced +EF_MAT: .DB EF_CSTY ; 01001100B cursor enabled, fixed complent cursor, margin color = black : MAT Register +EF_PAT: .DB 01111110B ; 40 char/row, long code, upper/lower bulk on, conceal on, + ; I high during active disp. area, status row disebled : PAT Register +; DOR register initialization +; +; DOR(3:0) = 0011 : alpha UDS slices in block 3 +; DOR(6:4) = 001 : semigraphic uds slices in block 2 and 3 +; DOR 7 = 0 : Quadrichrome slices from block 0 +EF_DOR: .DB 0 ; +EF_ROR: .DB 00001000B ; ROR(7:5) = 000 : displayed page memory starts from block 0 + ; ROR(4:0) = 01000 : origin row = 8 +#ENDIF + +EF_INIT_CNT: .EQU $ - EF_INIT9345 +; +;====================================================================== +; EF9345 DRIVER - VIDEO DISPLAY ADAPTER FUNCTIONS +;====================================================================== +; +EF_FNTBL: + .DW EF_VDAINI + .DW EF_VDAQRY + .DW EF_VDARES + .DW EF_VDADEV + .DW EF_VDASCS + .DW EF_VDASCP + .DW EF_VDASAT + .DW EF_VDASCO + .DW EF_VDAWRC + .DW EF_VDAFIL + .DW EF_VDACPY + .DW EF_VDASCR + .DW EF_NOTIMP ; PPK_STAT + .DW EF_NOTIMP ; PPK_FLUSH + .DW EF_NOTIMP ; PPK_READ + .DW EF_VDARDC +#IF (($ - EF_FNTBL) != (VDA_FNCNT * 2)) + .ECHO "*** INVALID VDU FUNCTION TABLE ***\n" +#ENDIF +; +EF_VDAINI: +; VIDEO INITIALIZE +; FULL REINITIALIZATION, CLEAR SCREEN, CURRENTLY IGNORES VIDEO MODE AND BITMAP DATA + PUSH HL + CALL EF_INIT1 + POP HL + LD A,L + OR H + CALL NZ,EF_LOADFONTS + XOR A + RET +; +EF_VDAQRY: +; VIDEO QUERY +; ENTRY: C = VIDEO UNIT, HL = FONT BITMAT +; RETURN: C = VIDEO MODE, D = ROWS, E = COLUMNS, HL = FONT BITMAT + LD C,$00 ; MODE ZERO IS ALL WE KNOW + LD D,EF_DLINES + LD E,EF_DROWS + LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED + XOR A ; SIGNAL SUCCESS + RET +; +EF_VDARES: +; VIDEO RESET +; SOFT RESET, CLEAR SCREEN, HOME CURSOR, RESTORE ATTRIBUTE/COLOR DEFAULTS +; + CALL EF_CLEARALL + CALL EF_LOADCSTYLE + LD DE,0 + LD (EF_VDA_OFFSET),DE + CALL EF_VDASCP + XOR A + RET +; +EF_VDADEV: +; VIDEO DEVICE +; ENTRY: C = VIDEO UNIT +; RETURN: D := DEVICE TYPE, E := DEVICE NUMBER, H := DEVICE UNIT MODE, L := DEVICE I/O BASE ADDRESS + LD DE,(VDADEV_EF * 256) + 0 ; D := DEVICE TYPE + ; E := PHYSICAL UNIT IS ALWAYS ZERO + LD HL,EF_BASE ; H INDICATES THE VARIANT OF THE CHIP OR CIRCUIT, H = 0 : NO VARIANTS + ; L := BASE I/O ADDRESS + XOR A ; SIGNAL SUCCESS + RET +; +EF_VDASCS: +; VIDEO SET CURSOR STYLE +; ENTRY: C = VIDEO UNIT, D = START/END, E = STYLE : E0 = BLINK/FLASH, E1 = UNDELINE, E2 = REVERSE/COMPLEMENT +; MAT5 = 1 : FLASH, MAT4 = 0 : COMPLEMENT +; RETURN A = STATUS + XOR A + SRA E + JR NC,EF_VDASCS0 + OR EF_BLINK ; CURSOR IS BLINKING +EF_VDASCS0: + SRA E + JR NC,EF_VDASCS1 + OR EF_ULIN ; UNDERLINED CURSOR + JR EF_VDASCS2 +EF_VDASCS1: + SRA E + JR NC,EF_VDASCS2 + AND EF_COMPL +EF_VDASCS2: + LD (EF_VDACATTR),A + CALL EF_LOADCSTYLE + XOR A + RET +; +EF_VDASCP: +; SET VIDEO CURSOR POSITION +; ENTRY: C = VIDEO UNIT, D = ROW, E = COLUMN +; RETURN A = STATUS +; CHECKING THE FEASIBILITY OF THE INPUT VALUES + LD A,EF_DLINES-1 + CP D + JR C,EF_VDASCP0 + LD A,EF_DROWS-1 + CP E + JR C,EF_VDASCP0 + LD (EF_VDA_POS),DE ; D = ROW, E = COLUMNS +; + PUSH DE +#IF (EF_SIZE=V80X24) + RRC E ; ADJUST TO 80 COLUMN LAYOUT +#ENDIF + LD D,EF_XP ; X POSITION + CALL EF_WWRREG + POP DE +; + PUSH HL + LD HL,(EF_VDA_OFFSET) + LD A,H + POP HL +; + ADD A,FIRSTLINE + ADD A,D + CP FIRSTLINE+EF_DLINES + JR C,EF_SETYP0 + SUB EF_DLINES +EF_SETYP0: + LD E,A + LD A,(EF_CON_BANKY) ; STAY IN DISTRICT + OR E + LD E,A + LD D,EF_YP + CALL EF_WWRREG + XOR A + RET +EF_VDASCP0: + XOR A + OR -6 ; PARAMETERS OUT OF RANGE $FF + RET +; +EF_VDASAT: +; VIDEO SET CHARACTER ATTRIBUTE FOR SCROLL, KRL, ETC. +; ENTRY: C = VIDEO UNIT, E = ATTRIBUTE +; 80 CHARACTER/ROW STYLE := E0 = BLINK, E1 = UNDELINE, E2 = REVERSE, E3 = COLOR SELECT +; 40 CHARACTER/ROW STYLE := E0 = BLINK, E1 = UNDELINE, E2 = REVERSE, E3 = COLOR SELECT, E4..E7 = TYPE AND SET +; B(0) := INSERT +; B(1) := DOUBLE HIGHT +; B(2) := concealed character appears as a space on the screen +; B(3) := DOUBLE WIDTH +; B(4..7) := TYPE AND SET +; RETURN A = STATUS +#IF (EF_SIZE=V80X24) + XOR A + SRA E ; IS BLINKING + JR NC,EF_VDASAT0 + OR EF_FLASH +EF_VDASAT0: + SRA E + JR NC,EF_VDASAT1 + OR EF_UNDERLINE ; UNDERLINED CURSOR +EF_VDASAT1: + SRA E + JR NC,EF_VDASAT + OR EF_NEGATIVE ; NEGATIVE CURSOR +EF_VDASAT2: + SRA E + JR NC,EF_VDASAT3 + OR EF_COLORSET +EF_VDASAT3: +#ENDIF +#IF (EF_SIZE=V40X24) +; set VDATYPESET + LD A,E + AND $F0 + LD (EF_VDATYPESET),A + XOR A + SRA E ; IS BLINKING + JR NC,EF_VDASAT0 + OR EF_FLASHCHAR +EF_VDASAT0: + SRA E + SRA E + JR NC,EF_VDASAT1 + OR EF_REVERSCHAR +EF_VDASAT1: +#ENDIF + LD (EF_VDAATTR),A + XOR A + RET +; +EF_LOADCSTYLE: + LD A,(EF_VDACATTR) + LD B,A + LD D,EF_MATREG + CALL EF_READ_INDIR + AND 11001111B + OR B + LD E,A + LD D,EF_MATREG + CALL EF_LOAD_INDIR + RET +; +EF_VDASCO: +; VIDEO SET CHARACTER COLOR +; ENTRY C = VIDEO UNIT, E = COLOR +; RETURN A = STATUS + CALL EF_WAITRDY +#IF (EF_SIZE=V80X24) ; COLOR SETUP USE MARGIN COLOR IN MAT AND + LD A,E + LD B,A ; B = BG + SRL B + SRL B + SRL B + SRL B + AND $F8 ; MASK BG COLOR + LD A,E + AND $07 ; MASK FG COLOR + LD C,A ; C = FG + LD D,EF_DORREG ; LOAD FG COLOR FROM DOR(3..0) + CALL EF_READ_INDIR + AND $F8 + OR C ; SET NEW FG COLOR + LD E,A + LD D,EF_DORREG ; LOAD NEW FG COLOR + CALL EF_LOAD_INDIR +; + LD D,EF_MATREG ; LOAD BG COLOR + CALL EF_READ_INDIR + AND $F8 ; MASK BG COLOR + OR B ; SET NEW BG COLOR + LD E,A + LD D,EF_MATREG ; LOAD NEW BG COLOR + CALL EF_LOAD_INDIR +#ENDIF +#IF (EF_SIZE=V40X24) + LD HL,EF_VDACOLOR + LD A,E + AND $7 ; MASK FG COLOR + RLD + LD A,E + SRL A ; BG COLOR TO LOW ORDER FOUR BITS + SRL A + SRL A + SRL A + RLD +#ENDIF + XOR A + RET +; +EF_VDAWRC: +; VIDEO WRITE CHARACTER, +; ENTRY C = VIDEO UNIT, E = CHARACTER +; RETURN A = STATUS +#IF (EF_SIZE=V80X24) + CALL EF_KRL80 + LD D,EF_R1+EF_EXEC + CALL EF_WWRREG +#ENDIF +#IF (EF_SIZE=V40X24) + CALL EF_KRF40 + LD D,EF_R1+EF_EXEC + CALL EF_WWRREG +#ENDIF + CALL EF_INCCURSOR + XOR A + RET +; +EF_VDAFIL: +; VIDEO FILL +; ENTRY: C = VIDEO UNIT, E = CHARACTER, HL = COUNT OF CHARACTERS +; RETURN A = STATUS + CALL EF_CURSOROFF +EF_VDAFIL0: + CALL EF_VDAWRC + DEC HL + LD A,H + OR L + JR NZ,EF_VDAFIL0 + CALL EF_CURSORON + XOR A + RET +; +EF_VDACPY: +; VIDEO COPY +; ENTRY C = VIDEO UNIT, D = SOURCE ROW, E = SOURCE COLUMN, L = COUNT +; RETURN A = STATUS + PUSH DE ; SAVE SOURCE + LD A,L + LD (EF_CPYCNT),A + CALL EF_CURSOROFF + CALL EF_GETXY ; GET AND SAVE CURRENT CURSOR POSITION + LD (EF_CURPOS),DE +; CHECK END OF SCREEN + LD H,D ; D = CURRENT LINE + LD E,EF_DROWS ; CHARACTERS IN ROW + CALL MULT8 ; LINES * DROWS + POP DE + PUSH DE + LD D,0 + ADD HL,DE ; ADD CHARACTERS IN CURRENT LINE := USED CHARACTERS + EX DE,HL + LD HL,EF_DLINES*EF_DROWS ; AVAILABLE CHARACTER COUNT + XOR A + SBC HL,DE ; REMAINING CHARACTERS = AVAILABLE - USED + LD C,L ; SAVE REMAINING CHARACTER COUNT + LD A,(EF_CPYCNT) + LD B,A + LD E,A + LD D,0 + SBC HL,DE ; COMPARE COPY COUNT WITH AVAILABLE + JR NC,EF_CPY0 + LD B,C ; ADJUST COPY COUNT +EF_CPY0: + POP DE + CALL EF_VDASCP ; SET SOURCE AS CURSOR + LD HL,EF_BUF + PUSH BC +EF_CPYRD: +#IF (EF_SIZE=V80X24) + PUSH BC + CALL EF_VDARDC + POP BC + LD (HL),E + INC HL +#ENDIF +#IF (EF_SIZE=V40X24) + PUSH HL + PUSH BC + CALL EF_VDARDC + LD A,L + POP BC + POP HL + LD (HL),E + INC HL + LD (HL),A + INC HL +#ENDIF + CALL EF_INCCURSOR + DJNZ EF_CPYRD + LD DE,(EF_CURPOS) ; RECOVER AND SET CURSOR POSITION + CALL EF_VDASCP + POP BC + LD HL,EF_BUF +EF_CPYWR: +#IF (EF_SIZE=V80X24) + PUSH BC + LD E,(HL) + CALL EF_VDAWRC + INC HL + POP BC + DJNZ EF_CPYWR +#ENDIF +#IF (EF_SIZE=V40X24) + PUSH BC + LD E,(HL) + INC HL + PUSH HL + LD L,(HL) + CALL EF_VDAWRC + POP HL + INC HL + POP BC + DJNZ EF_CPYWR +#ENDIF + ; RESTORE CURSOR + LD DE,(EF_CURPOS) + CALL EF_VDASCP + CALL EF_CURSORON + XOR A + RET +; +EF_VDASCR: +; VIDEO SCROLL +; ENTRY: C = VIDEO UNIT, E = LINES +; RETURN A = STATUS + CALL EF_CURSOROFF +EF_VDASCR0: + LD A,E + OR A + JR Z,EF_VDASCR2 ; SCROLL 0, NOTHING TO DO + PUSH DE + RLCA + JR C,EF_VDASCR1 + CALL EF_SCRUP + POP DE + DEC E + JR EF_VDASCR0 +EF_VDASCR1: + CALL EF_SCRDOWN + POP DE + INC E + JP EF_VDASCR0 +EF_VDASCR2: + CALL EF_CURSORON + RET +; +EF_SCRUP: + LD HL,(EF_VDA_OFFSET) + LD DE,$0100 ; inc y + ADD HL,DE + LD A,H + CP EF_DLINES + JR NZ,EF_SCRUP0 + LD HL,0 +EF_SCRUP0: + LD (EF_VDA_OFFSET),HL + LD A,(EF_CON_BANKY) + ADD A,H + ADD A,FIRSTLINE + LD E,A + LD D,EF_RORREG + CALL EF_LOAD_INDIR +; fill exposed line + LD HL,(EF_VDA_POS) + PUSH HL + LD HL,(EF_DLINES-1)*256 + EX DE,HL +EF_SCRCLEAR: + CALL EF_VDASCP + LD E,' ' + LD HL,EF_DROWS + CALL EF_VDAFIL +; + POP HL + EX DE,HL + CALL EF_VDASCP + RET +; +EF_SCRDOWN: + XOR A + LD HL,(EF_VDA_OFFSET) + LD DE,$FF00 + ADD HL,DE + LD A,$FF + CP H + JR NZ,EF_SCRDOWN0 + LD H,EF_DLINES-1 +EF_SCRDOWN0: + LD (EF_VDA_OFFSET),HL + LD A,(EF_CON_BANKY) + ADD A,FIRSTLINE + ADD A,H + LD E,A + LD D,EF_RORREG + CALL EF_LOAD_INDIR +; fill exposed line + LD HL,(EF_VDA_POS) + PUSH HL + LD DE,0 +; JR EF_SCRCLEAR + CALL EF_VDASCP + LD E,' ' + LD HL,EF_DROWS + CALL EF_VDAFIL +; + POP HL + EX DE,HL + CALL EF_VDASCP + RET +; +EF_VDARDC: +; READ CHARACTER AT CURRENT VIDEO POSITION +; ENTRY: C = VIDEO UNIT +; RETURN: A = STATUS, E = CHARACTER, B = CHARACTER COLOR, C = CHARACTER ATTRIBUTES, L = CHARACTER TYPESET, 40X24 ONLY +#IF (EF_SIZE = V80X24) + LD D,EF_R0 + LD A,EF_KRL ; R0 KRL COMMAND NO AUTOINC + OR EF_RREG + LD E,A + CALL EF_WWRREG + LD D,EF_R3 + EF_EXEC ; READ ATTRIBUTES + CALL EF_RDREG + LD C,A + CALL EF_WAITRDY + LD D,EF_R1+EF_EXEC + CALL EF_RDREG + PUSH DE +; READ COLOR + LD D,EF_DORREG ; LOAD FG COLOR + CALL EF_READ_INDIR + AND $07 + LD B,A + LD D,EF_MATREG ; LOAD BG COLOR + CALL EF_READ_INDIR + RLCA + RLCA + RLCA + RLCA + AND $70 + OR B + LD B,A + POP DE + XOR A +; LD L,A + RET +#ENDIF +#IF (EF_SIZE = V40X24) + LD D,R0 + LD A,KRF ; R0 KRL COMMAND NO AUTOINC + OR EF_RREG + LD E,A + CALL EF_WWRREG + LD D,EF_R3 + EF_EXEC ; READ CHARACTER ATTRIBUTES + CALL EF_RDREG + AND $77 + LD B,A + RLC B + RLC B + RLC B + RLC B + LD A,E + AND $88 + LD C,A + LD D,EF_R2 + EF_EXEC ; READ CHARACTER TYPESET + CALL EF_RDREG + LD L,A + LD D,EF_R1+EF_EXEC ; READ CHARACTER + CALL EF_RDREG + XOR A + RET +#ENDIF +; +EF_IDAT: + .DB KBDMODE_NONE ; PS/2 8242 KEYBOARD CONTROLLER + .DB 0 + .DB 0 +; +EF_VDA_POS .DW 0 +EF_CURPOS .DW 0 +EF_CPYCNT .DB 0 +EF_VDA_OFFSET .DW 0 +EF_CON_BANKY .DB 0 +EF_VDAATTR .DB 0 ; CHARACTER ATTRIBUTES +EF_VDACATTR .DB 0 ; CURSOR ATTRIBUTES +EF_VDACOLOR .DB 0 ; CHARACTER COLOR +#IF (EF_SIZE = V40X24) +EF_VDATYPESET .DB 0 ; 40 CHAR/ROW PARAMETER +#ENDIF +EF_BUF: +#IF (EF_SIZE = V80X24) + .FILL EF_DLINES*EF_DROWS ;256,0 ; COPY BUFFER +#ENDIF +#IF (EF_SIZE = V40X24) + .FILL 2*EF_DLINES*EF_DROWS ;512,0 +#ENDIF diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 802a65f6..352b3965 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -3368,6 +3368,9 @@ HB_INITTBL: #IF (SCONENABLE) .DW SCON_INIT #ENDIF +#IF (EFENABLE) + .DW EF_INIT +#ENDIF #IF (VRCENABLE) .DW VRC_INIT #ENDIF @@ -6467,6 +6470,15 @@ SIZ_SCON .EQU $ - ORG_SCON .ECHO " bytes.\n" #ENDIF ; +#IF (EFENABLE) +ORG_EF .EQU $ + #INCLUDE "ef.asm" +SIZ_EF .EQU $ - ORG_EF + .ECHO "EF occupies " + .ECHO SIZ_EF + .ECHO " bytes.\n" +#ENDIF +; #IF (GDCENABLE) ORG_GDC .EQU $ #INCLUDE "gdc.asm" diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index a45a960a..cb573649 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -320,6 +320,7 @@ CIODEV_LPT .EQU $0B CIODEV_ESPCON .EQU $0C CIODEV_ESPSER .EQU $0D CIODEV_SCON .EQU $0E +CIODEV_EF .EQU $0F ; ; SUB TYPES OF CHAR DEVICES ; @@ -369,6 +370,7 @@ VDADEV_GDC .EQU $02 ; GRAPHICS DISPLAY CTLR - UPD7220 VDADEV_TMS .EQU $03 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918 VDADEV_VGA .EQU $04 ; ECB VGA3 - HITACHI HD6445 VDADEV_VRC .EQU $05 ; VGARC +VDADEV_EF .EQU $06 ; EF9345 ; ; SOUND DEVICE IDS ; diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 3db770f5..3a7e8473 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -463,12 +463,13 @@ TERMENABLE .EQU FALSE ; TERM PSEUDO DEVICE, WILL AUTO-ENABLE IF A VDA IS ENABLE ; VIDEO MODES ; V80X24 .EQU 0 ; ECB-VDU -V80X25 .EQU 1 ; ECB-VDU, ECB-VGA3 +V80X25 .EQU 1 ; ECB-VDU, ECB-VGA3, EF9345 V80X30 .EQU 2 ; ECB-VDU, ECB-VGA3 V80X25B .EQU 3 ; ECB-VDU V80X24B .EQU 4 ; ECB-VDU V80X43 .EQU 5 ; ECB-VGA3 V80X60 .EQU 6 ; ECB-VGA3 +V40X24 .EQU 7 ; EF9345 ; ; KEYBOARD LAYOUTS ; diff --git a/Source/ver.inc b/Source/ver.inc index 85b6bfe6..8a05539f 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 5 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.5.0-dev.8" +#DEFINE BIOSVER "3.5.0-dev.9" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index d197b6ef..aa909cdc 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 5 rup equ 0 rtp equ 0 biosver macro - db "3.5.0-dev.8" + db "3.5.0-dev.9" endm