From e8d9671753e8e278ae3c1932b4e7c6981b913cee Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sun, 3 Sep 2017 17:22:53 -0700 Subject: [PATCH] Finalize v2.8.4 Small bug fixes --- ReadMe.txt | 2 +- Source/Apps/FDU/FDU.asm | 15 ++++++++------- Source/Apps/XM/xmhb.180 | 13 +++++++------ Source/HBIOS/util.asm | 13 +++++++------ 4 files changed, 23 insertions(+), 20 deletions(-) diff --git a/ReadMe.txt b/ReadMe.txt index 7dfa7e8f..790705b4 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -7,7 +7,7 @@ *********************************************************************** Wayne Warthen (wwarthen@gmail.com) -Version 2.8.3, 2017-08-23 +Version 2.8.4, 2017-09-02 https://www.retrobrewcomputers.org/ RomWBW is a ROM-based implementation of CP/M-80 2.2 and Z-System for diff --git a/Source/Apps/FDU/FDU.asm b/Source/Apps/FDU/FDU.asm index 441e5d22..bf44ccfe 100644 --- a/Source/Apps/FDU/FDU.asm +++ b/Source/Apps/FDU/FDU.asm @@ -139,12 +139,13 @@ INIT: ; GET CPU SPEED FROM UBIOS LD C,0F8H ; UNA BIOS GET PHI FUNCTION RST 08 ; RETURNS SPEED IN HZ IN DE:HL - LD A,E ; HACK TO GET APPROX SPEED IN MHZ - SRL A ; ... BY DIVIDING BY 1,048,576 - SRL A ; ... - SRL A ; ... - SRL A ; ... - INC A ; FIX UP FOR VALUE TRUNCATION + LD B,4 ; DIVIDE MHZ IN DE:HL BY 100000H +INIT0: + SRL D ; ... TO GET APPROX CPU SPEED IN + RR E ; ...MHZ. THROW AWAY HL, AND + DJNZ INIT0 ; ...RIGHT SHIFT DE BY 4. + INC E ; FIX UP FOR VALUE TRUNCATION + LD A,E ; PUT IN A LD (CPUSPD),A ; SAVE IT JR INIT3 ; AND DONE @@ -317,7 +318,7 @@ CFG_ZETA2: .DB 038H ; DIGITAL OUTPUT REGISTER .DB 028H ; CONFIGURATION CONTROL REGISTER .DB 0FFH ; DACK - .DB 0FFH ; TERMINAL COUNT (W/ DACK) + .DB 038H ; TERMINAL COUNT (W/ DACK) .DB 0FFH ; NOT USED BY ZETA SBC V2 ; CFG_DIDE: diff --git a/Source/Apps/XM/xmhb.180 b/Source/Apps/XM/xmhb.180 index cc94eac3..f881d2f3 100644 --- a/Source/Apps/XM/xmhb.180 +++ b/Source/Apps/XM/xmhb.180 @@ -110,12 +110,13 @@ MINIT2: ; Get CPU speed from UNA and return LD C,0F8H ; UNA BIOS Get PHI function RST 08 ; Returns speed in Hz in DE:HL - LD A,E ; Hack to get approx speed in MHz - SRL A ; ... by dividing by 1,048,576 - SRL A ; ... - SRL A ; ... - SRL A ; ... - INC A ; Fix up for value truncation + LD B,4 ; Divide MHz in DE:HL by 100000H +MINIT2A: + SRL D ; ... to get approx CPU speed in + RR E ; ...MHz. Throw away HL, and + DJNZ MINIT2A ; ...right shift DE by 4. + INC E ; Fix up for value truncation + LD A,E ; Put in A RET ; Done ; MINIT3: diff --git a/Source/HBIOS/util.asm b/Source/HBIOS/util.asm index ee98fc0d..8b5a7142 100644 --- a/Source/HBIOS/util.asm +++ b/Source/HBIOS/util.asm @@ -603,12 +603,13 @@ DELAY_INIT: #IF (PLATFORM == PLT_UNA) LD C,$F8 ; UNA BIOS GET PHI FUNCTION RST 08 ; RETURNS SPEED IN HZ IN DE:HL - LD A,E ; HACK TO GET APPROX SPEED IN MHZ - SRL A ; ... BY DIVIDING BY 1,048,576 - SRL A ; ... - SRL A ; ... - SRL A ; ... - INC A ; FIX UP FOR VALUE TRUNCATION + LD B,4 ; DIVIDE MHZ IN DE:HL BY 100000H +DELAY_INIT0: + SRL D ; ... TO GET APPROX CPU SPEED IN + RR E ; ...MHZ. THROW AWAY HL, AND + DJNZ DELAY_INIT0 ; ...RIGHT SHIFT DE BY 4. + INC E ; FIX UP FOR VALUE TRUNCATION + LD A,E ; PUT IN A #ELSE LD B,BF_SYSGET ; HBIOS FUNC=GET SYS INFO LD C,BF_SYSGET_CPUINFO ; HBIOS SUBFUNC=GET CPU INFO