Miscellaneous

- Support RCBus PS/2 Keyboard (EtchedPixels & Sally)
- Added AT-3-8910 register spreadsheet (Martin R)
- Improved FD hardware detection to eliminate a false positive
- Reorder Boot Loader menu (Martin R)
- Minor enhancement to new usrrom.asm (Martin R)
This commit is contained in:
Wayne Warthen
2024-06-17 11:53:40 -07:00
parent 74daa4d3c5
commit 3eea703d02
18 changed files with 67 additions and 21 deletions

View File

@@ -19,6 +19,15 @@
; UNUSED BITS CAN BE READ BACK AND WRITTEN ON YM.
; VOLTAGE LEVEL OUTPUT ON A AY-3-8910 IS LOW AND AROUND 2V ON YM2149.
;
; THERE ARE TWO VARIANTS OF AY-3-8910 SOUND CARDS THAT HAVE BEEN
; PRODUCED FOR THE RCBUS. THE ONE PRODUCED BY ED BRINDLEY (EB) USES
; THE SAME PORT FOR REGISTER SELECT (RSEL) AND REGISTER IN (RIN).
; THE ONE PRODUCED BY MARTEN FELDTMANN (MF) USES THE PORT FOLLOWING
; REGISTER SELECT (RSEL) FOR THE REGISTER IN (RIN) PORT. THE FOLLOWING
; EQUATE MUST BE SET CORRECTLY FOR THE HARDWARE BEING USED. THIS
; HAS NOT BEEN MOVED TO A CONFIG VARIABLE BECAUSE THE MF MODULE IS
; RARELY ENCOUNTERED IN THE WILD.
;
AY_RCSND .EQU 0 ; 0 = EB MODULE, 1=MF MODULE
;
DEVECHO "AY38910: MODE="

View File

@@ -894,11 +894,11 @@ FD_DETECT:
IN A,(FDC_MSR) ; ... AND REREAD THE STATUS
;CALL PC_SPACE ; *DEBUG*
;CALL PRTHEXBYTE ; *DEBUG*
;
FD_DETECT1:
CP $80 ; WE EXPECT $80
RET Z ; IF SO, ALL DONE
JR Z,FD_DETECT2 ; IF SO, CONTINUE CHECKING
;
; WE HAVE SEEN AN FDC THAT NEEDS A SECOND READ TO GET
; DESIRED VALUE, SO TRY ONE MORE TIME
CALL DLY32 ; WAIT A BIT
@@ -906,7 +906,19 @@ FD_DETECT1:
;CALL PC_SPACE ; *DEBUG*
;CALL PRTHEXBYTE ; *DEBUG*
CP $80 ; CHECK FOR CORRECT VALUE
RET ; RETURN WITH ZF ACCORDING TO RESULT
RET NZ ; RETURN IF FAILED WITH ZF RESET
;
FD_DETECT2:
; AS A FINAL TEST, WE REREAD THE MSR USING A DIFFERENT
; OPCODE. THIS SHOULD ELIMINATE ANY FALSE POSITIVES FROM
; A FLOATING BUS.
CALL DLY32 ; WAIT A BIT
LD C,FDC_MSR ; POINT TO MSR PORT
IN A,(C) ; READ USING (C) FORM OF INPUT
;CALL PC_SPACE ; *DEBUG*
;CALL PRTHEXBYTE ; *DEBUG*
CP $80 ; CHECK FOR CORRECT VALUE
RET ; RETURN WITH ZF SET CORRECTLY
;
; UNIT INITIALIZATION
;

View File

@@ -2415,8 +2415,8 @@ ra_ent .equ 12
;
; Note: The loadable ROM images are placed in ROM banks BID_IMG0 and
; BID_IMG1. However, RomWBW supports a mechanism to load a complete
; new system dynamically as a runnable application (see appboot and
; imgboot in hbios.asm). In this case, the contents of BID_IMG0 will
; new system dynamically as a runnable application (see appboot
; in hbios.asm). In this case, the contents of BID_IMG0 will
; be pre-loaded into the currently executing ram bank thereby allowing
; those images to be dynamically loaded as well. To support this
; concept, a pseudo-bank called bid_cur is used to specify the images
@@ -2436,14 +2436,13 @@ ra_entsiz .equ $ - ra_tbl
ra_ent(str_smon, 'S', $FF, bid_cur , $8000, $8000, $0001, s100mon)
#endif
#endif
ra_ent(str_zsys, 'Z', KY_FW, BID_IMG0, ZSYS_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
ra_ent(str_cpm22, 'C', KY_BK, BID_IMG0, CPM_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
ra_ent(str_zsys, 'Z', KY_FW, BID_IMG0, ZSYS_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
#if (BIOS == BIOS_WBW)
ra_ent(str_fth, 'F', KY_EX, BID_IMG1, FTH_IMGLOC, FTH_LOC, FTH_SIZ, FTH_LOC)
ra_ent(str_bas, 'B', KY_DE, BID_IMG1, BAS_IMGLOC, BAS_LOC, BAS_SIZ, BAS_LOC)
ra_ent(str_tbas, 'T', KY_EN, BID_IMG1, TBC_IMGLOC, TBC_LOC, TBC_SIZ, TBC_LOC)
ra_ent(str_fth, 'F', KY_EX, BID_IMG1, FTH_IMGLOC, FTH_LOC, FTH_SIZ, FTH_LOC)
ra_ent(str_play, 'P', $FF, BID_IMG1, GAM_IMGLOC, GAM_LOC, GAM_SIZ, GAM_LOC)
ra_ent(str_egg, 'E'+$80, $FF, BID_IMG1, EGG_IMGLOC, EGG_LOC, EGG_SIZ, EGG_LOC)
ra_ent(str_net, 'N', $FF, BID_IMG1, NET_IMGLOC, NET_LOC, NET_SIZ, NET_LOC)
ra_ent(str_upd, 'X', $FF, BID_IMG1, UPD_IMGLOC, UPD_LOC, UPD_SIZ, UPD_LOC)
ra_ent(str_user, 'U', $FF, BID_IMG1, USR_IMGLOC, USR_LOC, USR_SIZ, USR_LOC)
@@ -2451,6 +2450,7 @@ ra_ent(str_user, 'U', $FF, BID_IMG1, USR_IMGLOC, USR_LOC, USR_SIZ, USR_LO
#if (DSKYENABLE)
ra_ent(str_dsky, 'Y'+$80, KY_GO, BID_IMG0, MON_IMGLOC, MON_LOC, MON_SIZ, MON_DSKY)
#endif
ra_ent(str_egg, 'E'+$80, $FF, BID_IMG1, EGG_IMGLOC, EGG_LOC, EGG_SIZ, EGG_LOC)
.dw 0 ; table terminator
;
ra_tbl_app:

View File

@@ -66,8 +66,8 @@ TMS_CMDREG .EQU $BF ; READ STATUS / WRITE REG SEL
#IF (TMSMODE == TMSMODE_MSXKBD)
TMS_DATREG .EQU $98 ; READ/WRITE DATA
TMS_CMDREG .EQU $99 ; READ STATUS / WRITE REG SEL
TMS_KBDDATA .EQU $E0 ; KBD CTLR DATA PORT
TMS_KBDST .EQU $E1 ; KBD CTLR STATUS/CMD PORT
TMS_KBDDATA .EQU $60 ; KBD CTLR DATA PORT
TMS_KBDST .EQU $64 ; KBD CTLR STATUS/CMD PORT
DEVECHO "MSXKBD"
#ENDIF
;

View File

@@ -21,6 +21,13 @@
; HBIOS WARM RESET FUNCTION AS DEMONSTRATED BELOW.
; - THE APPLICATION MAY MAKE HBIOS FUNCTION CALLS WITHOUT RESTRICTION,
; BUT CANNOT USE ANY OS (CP/M) FUNCTIONS BECAUSE NO OS IS LOADED.
; - THE APPLICATION MAY NOT CHANGE THE INTERRUPT MODE (WHICH IS DEFINED
; IN THE ROM CONFIGURATION). THE SYSTEM'S INTERRUPT
; MODE CAN BE QUERIED BY AN HBIOS API CALL IF DESIRED.
; - THE APPLICATION MAY TEMPORARILY DISABLE INTERRUPTS BY BRACKETING
; SECTIONS OF CODE WITH DI/EI AS NEEDED. IF INTERRUPTS ARE
; TEMPORARILY DISABLED, THEY SHOULD NOT SHOULD NOT
; BE LEFT DISABLED ACROSS HBIOS API CALLS.
;
; INCLUDE STD.ASM WHICH DEFINES SOME KEY EQUATES USED BELOW. MOST
; IMPORTANT ARE USR_LOC, USR_SIZ, AND USR_END. IT ALSO DEFINES EQUATES
@@ -33,8 +40,8 @@
CR .EQU 0DH
LF .EQU 0AH
;
ROWS .EQU 008H ; NUMBER OF PIXEL ROWS PER CHARACTER
COLS .EQU 008H ; NUMBER OF PIXEL COLUMNS PER CHARACTER
ROWS .EQU 8 ; NUMBER OF PIXEL ROWS PER CHARACTER
COLS .EQU 8 ; NUMBER OF PIXEL COLUMNS PER CHARACTER
;
; APPLICATION WILL WILL BE LOADED AT USR_LOC. THEREFORE, THE CODE
; MUST "ORG" AT THIS ADDRESS. TO CHANGE THE LOAD LOCATION OF THIS
@@ -145,10 +152,10 @@ CIN: PUSH BC
; DATA SECTION
;
BANNER:
.DB 006H; THE NUMBER OF CHARACTERS IN THE BANNER
.DB 6 ; THE NUMBER OF CHARACTERS IN THE BANNER
;
#IF FALSE
; UPPER CASE LOGO
; UPPER CASE LOGO ("ROMWBW")
.DB %01111100, %00011100, %01000001, %01000001, %01111100, %01000001
.DB %01000010, %00100010, %01100011, %01000001, %01000010, %01000001
.DB %01000001, %01000001, %01010101, %01000001, %01000001, %01000001
@@ -160,7 +167,7 @@ BANNER:
#ENDIF
;
#IF TRUE
; UPPER AND LOWER CASE LOGO
; UPPER AND LOWER CASE LOGO ("RomWBW")
.DB %00000000, %00000000, %00000000, %00000000, %00000000, %00000000
.DB %01111000, %00000000, %00000000, %01000100, %01111000, %01000100
.DB %01000100, %00000000, %00000000, %01000100, %01000100, %01000100