Browse Source

Add Z180 & Z280 timer config settings

Allows Z180 & Z280 system periodic timer to be enabled/disabled via config.  Enabled by default.
patch
Wayne Warthen 5 years ago
parent
commit
ccda402b9b
  1. 2
      Readme.unix
  2. 1
      Source/HBIOS/cfg_dyno.asm
  3. 2
      Source/HBIOS/cfg_master.asm
  4. 1
      Source/HBIOS/cfg_mk4.asm
  5. 1
      Source/HBIOS/cfg_n8.asm
  6. 1
      Source/HBIOS/cfg_rcz180.asm
  7. 1
      Source/HBIOS/cfg_rcz280.asm
  8. 1
      Source/HBIOS/cfg_scz180.asm
  9. 8
      Source/HBIOS/hbios.asm
  10. 4
      Source/HBIOS/std.asm
  11. 2
      Source/ver.inc
  12. 2
      Source/ver.lib

2
Readme.unix

@ -17,7 +17,7 @@ with respect to the .DS directive. it's usually a bad idea to mix
output point. It works a lot more like M80, SLR* .PHASE
It assumes that you have some standard system tools and libraries
installed specifically: gcc, gnu make, libncurses
installed specifically: gcc, gnu make, libncurses, srecord
To build:
cd to the top directory and type "make".

1
Source/HBIOS/cfg_dyno.asm

@ -43,6 +43,7 @@ Z180_BASE .EQU $C0 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_TIMER .EQU TRUE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER
;
RTCIO .EQU $0C ; RTC LATCH REGISTER ADR
;

2
Source/HBIOS/cfg_master.asm

@ -42,11 +42,13 @@ Z180_BASE .EQU $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_TIMER .EQU FALSE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER
;
Z280_MEMLOWAIT .EQU 0 ; Z280: LOW 8MB MEMORY WAIT STATES (0-3)
Z280_MEMHIWAIT .EQU 0 ; Z280: HIGH 8MB MEMORY WAIT STATES (0-3)
Z280_IOWAIT .EQU 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z280_INTWAIT .EQU 0 ; Z280: INT ACK WAIT STATUS (0-3)
Z280_TIMER .EQU FALSE ; Z280: ENABLE INTERNAL Z280 SYSTEM PERIODIC TIMER
;
N8_PPI0 .EQU $80 ; N8: FIRST PARALLEL PORT REGISTERS BASE ADR
N8_PPI1 .EQU $84 ; N8: SECOND PARALLEL PORT REGISTERS BASE ADR

1
Source/HBIOS/cfg_mk4.asm

@ -38,6 +38,7 @@ Z180_BASE .EQU $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_TIMER .EQU TRUE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER
;
MK4_IDE .EQU $80 ; MK4: IDE REGISTERS BASE ADR
MK4_XAR .EQU $88 ; MK4: EXTERNAL ADDRESS REGISTER (XAR) ADR

1
Source/HBIOS/cfg_n8.asm

@ -38,6 +38,7 @@ Z180_BASE .EQU $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_TIMER .EQU TRUE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER
;
N8_PPI0 .EQU $80 ; N8: FIRST PARALLEL PORT REGISTERS BASE ADR
N8_PPI1 .EQU $84 ; N8: SECOND PARALLEL PORT REGISTERS BASE ADR

1
Source/HBIOS/cfg_rcz180.asm

@ -43,6 +43,7 @@ Z180_BASE .EQU $C0 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_TIMER .EQU TRUE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER
;
RTCIO .EQU $0C ; RTC LATCH REGISTER ADR
;

1
Source/HBIOS/cfg_rcz280.asm

@ -43,6 +43,7 @@ Z280_MEMLOWAIT .EQU 0 ; Z280: LOW 8MB MEMORY WAIT STATES (0-3)
Z280_MEMHIWAIT .EQU 0 ; Z280: HIGH 8MB MEMORY WAIT STATES (0-3)
Z280_IOWAIT .EQU 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z280_INTWAIT .EQU 0 ; Z280: INT ACK WAIT STATUS (0-3)
Z280_TIMER .EQU TRUE ; Z280: ENABLE INTERNAL Z280 SYSTEM PERIODIC TIMER
;
RTCIO .EQU $C0 ; RTC LATCH REGISTER ADR
;

1
Source/HBIOS/cfg_scz180.asm

@ -38,6 +38,7 @@ Z180_BASE .EQU $C0 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_TIMER .EQU TRUE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER
;
RTCIO .EQU $0C ; RTC LATCH REGISTER ADR
;

8
Source/HBIOS/hbios.asm

@ -1605,6 +1605,8 @@ HB_CPU2:
; MASK ALL EXTERNAL INTERRUPTS FOR NOW
LD A,$01 ; INT0 ENABLED, INT1-2 DISABLED
OUT0 (Z180_ITC),A ; WRITE TO INT/TRAP CONTROL REGISTER
;
#IF (Z180_TIMER)
;
; SETUP Z180 TIMER0 INTERRUPT VECTOR IN IVT
LD HL,HB_TIMINT
@ -1633,6 +1635,8 @@ HB_CPU2:
OUT0 (Z180_RLDR0H),H
LD A,%00010001 ; ENABLE TIMER0 INT AND DOWN COUNTING
OUT0 (Z180_TCR),A
;
#ENDIF
;
#ENDIF
;
@ -1641,6 +1645,8 @@ HB_CPU2:
#IF (CPUFAM == CPU_Z280)
;
#IF (MEMMGR == MM_Z280)
;
#IF (Z280_TIMER)
;
Z280_TC .EQU CPUOSC / 4 / 50 / 2 ; TIME CONSTANT
;
@ -1668,6 +1674,8 @@ Z280_TC .EQU CPUOSC / 4 / 50 / 2 ; TIME CONSTANT
LD C,Z280_IOPR ; I/O PAGE REGISTER
POP HL ; RESTORE I/O PAGE
LDCTL (C),HL
;
#ENDIF
;
#ENDIF
;

4
Source/HBIOS/std.asm

@ -434,13 +434,17 @@ SYSTIM .SET TM_SIMH
#ENDIF
;
#IF ((CPUFAM == CPU_Z180) & (INTMODE == 2))
#IF (Z180_TIMER)
SYSTIM .SET TM_Z180
.ECHO " Z180"
#ENDIF
#ENDIF
;
#IF ((CPUFAM == CPU_Z280) & (MEMMGR == MM_Z280))
#IF (Z280_TIMER)
SYSTIM .SET TM_Z280
.ECHO " Z280"
#ENDIF
#ENDIF
;
#IF SYSTIM == TM_NONE

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.64"
#DEFINE BIOSVER "3.1.1-pre.65"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.64"
db "3.1.1-pre.65"
endm

Loading…
Cancel
Save