diff --git a/Source/HBIOS/util.asm b/Source/HBIOS/util.asm index 284969a9..5c8740a2 100644 --- a/Source/HBIOS/util.asm +++ b/Source/HBIOS/util.asm @@ -611,12 +611,14 @@ DELAY_INIT: RST 08 ; CALL HBIOS, RST 08 NOT YET INSTALLED LD A,L ; PUT SPEED IN MHZ IN ACCUM #ENDIF + CP 3 ; TEST FOR <= 2 (SPECIAL HANDLING) + JR C,DELAY_INIT1 ; IF <= 2, SPECIAL PROCESSING SUB 2 ; ADJUST AS REQUIRED BY DELAY FUNCTIONS + JR DELAY_INIT2 ; AND CONTINUE +DELAY_INIT1: + LD A,1 ; USE THE MIN VALUE OF 1 +DELAY_INIT2: LD (CPUSCL),A ; UPDATE CPU SCALER VALUE - CP 1 ; CHECK FOR MINIMUM VALUE ALLOWED - RET NC ; IF >= 1, WE ARE ALL DONE, RETURN - LD A,1 ; OTHERWISE, SET MIN VALUE - LD (CPUSCL),A ; AND SAVE IT RET #IF (CPUMHZ < 3)