diff --git a/Binary/ReadMe.txt b/Binary/ReadMe.txt index 1c02fd5a..447e3c35 100644 --- a/Binary/ReadMe.txt +++ b/Binary/ReadMe.txt @@ -17,6 +17,16 @@ released the directory is populated with the default output files. However, the output of custom builds will be placed in this directory as well. +If you only see a few files in this directory, then you downloaded just +the source from GitHub. To retrieve the full release download package, +go to https://github.com/wwarthen/RomWBW. On this page, look for the +text "XX releases" where XX is a number. Click on this text to go to the +releases page. On this page, you will see the latest releases listed. +For each release, you will see a package file called something like +"RomWBW-2.9.0-Package.zip". Click on the package file for the release +you want to download. + + ROM Firmware Images (_.rom) ------------------------------------- diff --git a/ReadMe.txt b/ReadMe.txt index e27ea152..f43f4536 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -7,7 +7,7 @@ *********************************************************************** Wayne Warthen (wwarthen@gmail.com) -Version 2.9.1-pre.7, 2018-08-28 +Version 2.9.1-pre.8, 2019-02-18 https://www.retrobrewcomputers.org/ RomWBW is a ROM-based implementation of CP/M-80 2.2 and Z-System for diff --git a/Source/HBIOS/dsrtc.asm b/Source/HBIOS/dsrtc.asm index c4aaff9c..65b9a961 100644 --- a/Source/HBIOS/dsrtc.asm +++ b/Source/HBIOS/dsrtc.asm @@ -206,7 +206,9 @@ DSRTC_GETTIM: LD HL,DSRTC_TIMBUF ; SOURCE ADR POP DE ; DEST ADR LD BC,6 ; LENGTH IS 6 BYTES + HB_IM1DI CALL HB_BNKCPY ; COPY THE CLOCK DATA + HB_IM1EI ; ; CLEAN UP AND RETURN XOR A ; SIGNAL SUCCESS @@ -227,7 +229,9 @@ DSRTC_SETTIM: LD (HB_DSTBNK),A ; SET IT LD DE,DSRTC_TIMBUF ; DEST ADR LD BC,6 ; LENGTH IS 6 BYTES + HB_IM1DI CALL HB_BNKCPY ; COPY THE CLOCK DATA + HB_IM1EI ; ; WRITE TO CLOCK LD HL,DSRTC_TIMBUF ; POINT TO TIME BUFFER diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 75acf220..786d6838 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -84,12 +84,24 @@ MODCNT .SET MODCNT + 1 ; #IF (INTMODE == 0) ; NO INTERRUPT HANDLING -#DEFINE HB_DI DI -#DEFINE HB_EI ; -#ELSE -; MODE 1 OR 2 INTERRUPT HANDLING -#DEFINE HB_DI DI -#DEFINE HB_EI EI +#DEFINE HB_DI DI +#DEFINE HB_EI ; +#DEFINE HB_IM1DI ; +#DEFINE HB_IM1EI ; +#ENDIF +#IF (INTMODE == 1) +; MODE 1 INTERRUPT HANDLING +#DEFINE HB_DI DI +#DEFINE HB_EI EI +#DEFINE HB_IM1DI DI +#DEFINE HB_IM1EI EI +#ENDIF +#IF (INTMODE == 2) +; MODE 2 INTERRUPT HANDLING +#DEFINE HB_DI DI +#DEFINE HB_EI EI +#DEFINE HB_IM1DI ; +#DEFINE HB_IM1EI ; #ENDIF ; ; @@ -294,6 +306,7 @@ HBX_ROM: HBX_ROM: RLCA ; TIMES 2 - GET 16K PAGE INSTEAD OF 32K OUT (MPGSEL_0),A ; BANK_0: 0K - 16K + ;OUT (DIAGP),A ; *DEBUG* INC A ; OUT (MPGSEL_1),A ; BANK_1: 16K - 32K RET ; DONE @@ -395,7 +408,7 @@ HBX_BC_ITER: CALL HBX_BNKSEL ; SWITCH TO DEST BANK LDIR ; BUF (HL) -> DE, BC BYTES, DE UPDATED DEST ADR POP HL ; RECOVER UPDATED SRC ADR - ; HL = UPD SRC, DE = UPD DEST, BC = 0 + ; HL = UPDATED SRC, DE = UPDATED DEST, BC = 0 RET ; ; CALL A ROUTINE IN ANOTHER BANK. @@ -2001,10 +2014,21 @@ HB_TIMINT2: ; BAD INTERRUPT HANDLER ; HB_BADINT: + +#IF 0 ; *DEBUG* + ;LD HL,HB_BADINTCNT + ;INC (HL) + ;LD A,(HL) + ;OUT (DIAGP),A + ;OR $FF + ;RET +;HB_BADINTCNT .DB 0 +#ENDIF ; *DEBUG* + CALL NEWLINE2 PRTS("+++ BAD INT: $") CALL _REGDMP - CALL CONTINUE + ;CALL CONTINUE OR $FF ; SIGNAL INTERRUPT HANDLED RET ; diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index d01d75c7..ff831f39 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -246,7 +246,9 @@ MD_RDSEC: LD A,B ; GET DESTINATION BANK LD (HB_DSTBNK),A ; SET IT POP BC + HB_IM1DI CALL HB_BNKCPY ; DO THE INTERBANK COPY + HB_IM1EI XOR A RET ; @@ -272,7 +274,9 @@ MD_WRSEC: LD A,B ; GET DESTINATION BANK LD (HB_DSTBNK),A ; SET IT POP BC + HB_IM1DI CALL HB_BNKCPY ; DO THE INTERBANK COPY + HB_IM1EI XOR A RET ; diff --git a/Source/HBIOS/simrtc.asm b/Source/HBIOS/simrtc.asm index 33c79590..9be44518 100644 --- a/Source/HBIOS/simrtc.asm +++ b/Source/HBIOS/simrtc.asm @@ -71,7 +71,9 @@ SIMRTC_GETTIM: LD HL,SIMRTC_BUF ; SOURCE ADR POP DE ; DEST ADR LD BC,SIMRTC_BUFSIZ ; LENGTH + HB_IM1DI CALL HB_BNKCPY ; COPY THE CLOCK DATA + HB_IM1EI ; LD DE,60 ; DELAY 60 * 16US = ~1MS CALL VDELAY ; SLOW DOWN SIMH FOR CLOCK TICKING TEST @@ -101,7 +103,9 @@ SIMRTC_SETTIM: LD (HB_DSTBNK),A ; SET IT LD DE,SIMRTC_BUF ; DEST ADR LD BC,SIMRTC_BUFSIZ ; LENGTH + HB_IM1DI CALL HB_BNKCPY ; COPY THE CLOCK DATA + HB_IM1EI ; LD HL,SIMRTC_BUF ; POINT TO TEMP BUF LD A,SIMRTC_CLKWRITE ; WRITE CLOCK COMMAND