Browse Source

Global Initialization of Z180 CSIO

Initialize CSIO speed at system startup.  A constant called Z180_CNTR_DEF has been created to hold the default value.  This value can be used by drivers to restore the default value after modification.
pull/173/head
Wayne Warthen 5 years ago
parent
commit
a2c2ed0aef
  1. 4
      Source/HBIOS/hbios.asm
  2. 8
      Source/HBIOS/sd.asm
  3. 8
      Source/HBIOS/std.asm

4
Source/HBIOS/hbios.asm

@ -916,6 +916,10 @@ HB_START:
;#ENDIF
LD A,(RAMSIZE + RAMBIAS - 64) >> 2
OUT0 (Z180_CBR),A ; COMMON BASE = LAST (TOP) BANK
; SET DEFAULT CSIO SPEED (INTERNAL CLOCK, SLOW AS POSSIBLE)
LD A,Z180_CNTR_DEF ; DIV 1280, 14KHZ @ 18MHZ CLK
OUT0 (SD_CNTR),A
#ENDIF
;
#ENDIF

8
Source/HBIOS/sd.asm

@ -1045,7 +1045,7 @@ SD_INITCARD5:
CALL SD_WAITTX ; MAKE SURE WE ARE DONE SENDING
CALL DLY32 ; WAIT A BIT MORE FOR FINAL BIT
XOR A ; ZERO MEANS MAX SPEED
OUT0 (Z180_CNTR),A ; NOW SET CSIO PORT
OUT0 (SD_CNTR),A ; NOW SET CSIO PORT
#ENDIF
;
; ISSUE SEND_CSD (TO DERIVE CARD CAPACITY)
@ -1808,11 +1808,11 @@ SD_GET:
#ELSE
#IF ((SDMODE == SDMODE_CSIO) | (SDMODE == SDMODE_MK4) | (SDMODE == SDMODE_SC))
CALL SD_WAITTX ; MAKE SURE WE ARE DONE SENDING
IN0 A,(Z180_CNTR) ; GET CSIO STATUS
IN0 A,(SD_CNTR) ; GET CSIO STATUS
SET 5,A ; START RECEIVER
OUT0 (Z180_CNTR),A
OUT0 (SD_CNTR),A
CALL SD_WAITRX
IN0 A,(Z180_TRDR) ; GET RECEIVED BYTE
IN0 A,(SD_TRDR) ; GET RECEIVED BYTE
CALL MIRROR ; MSB<-->LSB MIRROR BITS
LD A,C ; KEEP RESULT
#ELSE

8
Source/HBIOS/std.asm

@ -543,6 +543,14 @@ INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B
#DEFINE VEC(INTX) INTX*2
#ENDIF
; SET DEFAULT CSIO SPEED (INTERNAL CLOCK, SLOW AS POSSIBLE)
; DIV 1280, 14KHZ @ 18MHZ CLK
#IF (CPUFAM == CPU_Z180)
Z180_CNTR_DEF .EQU $06 ; DEFAULT VALUE FOR Z180 CSIO CONFIG
#ENDIF
;
; HELPER MACROS
;

Loading…
Cancel
Save