mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
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:
@@ -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="
|
||||
|
||||
@@ -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
|
||||
;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user