Browse Source

dma & i2c changes

Resync & cleanup
pull/206/head
b1ackmai1er 5 years ago
parent
commit
e9ef9e0c93
  1. BIN
      Binary/RCZ80_std.upd
  2. BIN
      Binary/SBC_std.upd
  3. 2
      Source/Apps/Build.cmd
  4. 17
      Source/Apps/I2C/Makefile
  5. 0
      Source/Apps/I2C/i2cscan.asm
  6. 116
      Source/Apps/I2C/pcfi2c.inc
  7. 0
      Source/Apps/I2C/rtcds7.asm
  8. 12
      Source/HBIOS/hbios.asm

BIN
Binary/RCZ80_std.upd

Binary file not shown.

BIN
Binary/SBC_std.upd

Binary file not shown.

2
Source/Apps/Build.cmd

@ -20,7 +20,6 @@ call :asm mode || goto :eof
call :asm rtc || goto :eof
call :asm timer || goto :eof
call :asm180 inttest || goto :eof
call :asm rtcds7 || goto :eof
call :asm rtchb || goto :eof
call :asm ppidetst || goto :eof
call :asm tstdskng || goto :eof
@ -34,6 +33,7 @@ setlocal & cd XM && call Build || exit /b 1 & endlocal
setlocal & cd FDU && call Build || exit /b 1 & endlocal
setlocal & cd Tune && call Build || exit /b 1 & endlocal
setlocal & cd FAT && call Build || exit /b 1 & endlocal
setlocal & cd I2C && call Build || exit /b 1 & endlocal
copy *.com %APPBIN%\

17
Source/Apps/I2C/Makefile

@ -1,12 +1,21 @@
OBJECTS = I2CSCAN.COM
OBJECTS = i2cscan.com, rtcds7.com, i2clcd.com
DEST = ../../../Binary/Apps
TOOLS = ../../../Tools
include $(TOOLS)/Makefile.inc
DEPS := I2CSCAN.ASM $(shell find . -name '*.inc')
DEPS1 := i2cscan.asm $(shell find . -name '*.inc')
DEPS2 := rtcds7.asm $(shell find . -name '*.inc')
DEPS3 := i2clcd.asm $(shell find . -name '*.inc')
I2CSCAN.COM: $(DEPS)
$(TASM) -dWBW I2CSCAN.ASM I2CSCAN.COM I2CSCAN.LST
i2cscan.com: $(DEPS1)
$(TASM) -dWBW i2cscan.asm i2cscan.com i2cscan.lst
rtcds7.com: $(DEPS2)
$(TASM) -dWBW rtcds7.asm rtcds7.com rtcds7.lst
i2clcd.com: $(DEPS3)
$(TASM) -dWBW i2clcd.asm i2clcd.com i2clcd.lst

0
Source/Apps/I2C/I2CSCAN.ASM → Source/Apps/I2C/i2cscan.asm

116
Source/Apps/I2C/pcfi2c.inc

@ -0,0 +1,116 @@
;==================================================================================================
; PCF8584 Generic
;==================================================================================================
;
PCF_BASE .EQU 0F0H
PCF_ID .EQU 0AAH
CPU_CLK .EQU 12
PCF_RS0 .EQU PCF_BASE
PCF_RS1 .EQU PCF_RS0+1
PCF_OWN .EQU (PCF_ID >> 1) ; PCF'S ADDRESS IN SLAVE MODE
REGS0 .EQU PCF_BASE
REGS1 .EQU REGS0+1
;
;T4LC512D .EQU 10100000B ; DEVICE IDENTIFIER
;T4LC512A1 .EQU 00000000B ; DEVICE ADDRESS
;T4LC512A2 .EQU 00001110B ; DEVICE ADDRESS
;T4LC512A3 .EQU 00000010B ; DEVICE ADDRESS
;T4LC512W .EQU 00000000B ; DEVICE WRITE
;T4LC512R .EQU 00000001B ; DEVICE READ
;
;I2CDEV1W .EQU (T4LC512D+T4LC512A1+T4LC512W)
;I2CDEV1R .EQU (T4LC512D+T4LC512A1+T4LC512R)
;
;I2CDEV2W .EQU (T4LC512D+T4LC512A2+T4LC512W)
;I2CDEV2R .EQU (T4LC512D+T4LC512A2+T4LC512R)
;
;I2CDEV3W .EQU (T4LC512D+T4LC512A3+T4LC512W)
;I2CDEV3R .EQU (T4LC512D+T4LC512A3+T4LC512R)
;
; CONTROL REGISTER BITS
;
PCF_PIN .EQU 10000000B
PCF_ES0 .EQU 01000000B
PCF_ES1 .EQU 00100000B
PCF_ES2 .EQU 00010000B
PCF_EN1 .EQU 00001000B
PCF_STA .EQU 00000100B
PCF_STO .EQU 00000010B
PCF_ACK .EQU 00000001B
;
PCF_START_ .EQU (PCF_PIN | PCF_ES0 | PCF_STA | PCF_ACK)
PCF_STOP_ .EQU (PCF_PIN | PCF_ES0 | PCF_STO | PCF_ACK)
PCF_REPSTART_ .EQU ( PCF_ES0 | PCF_STA | PCF_ACK)
PCF_IDLE_ .EQU (PCF_PIN | PCF_ES0 | PCF_ACK)
;
; STATUS REGISTER BITS
;
;PCF_PIN .EQU 10000000B
PCF_INI .EQU 01000000B ; 1 if not initialized
PCF_STS .EQU 00100000B
PCF_BER .EQU 00010000B
PCF_AD0 .EQU 00001000B
PCF_LRB .EQU 00001000B
PCF_AAS .EQU 00000100B
PCF_LAB .EQU 00000010B
PCF_BB .EQU 00000001B
;
; CLOCK CHIP FREQUENCIES
;
PCF_CLK3 .EQU 000H
PCF_CLK443 .EQU 010H
PCF_CLK6 .EQU 014H
PCF_CLK8 .EQU 018H
PCF_CLK12 .EQU 01cH
;
; TRANSMISSION FREQUENCIES
;
PCF_TRNS90 .EQU 000H ; 90 kHz */
PCF_TRNS45 .EQU 001H ; 45 kHz */
PCF_TRNS11 .EQU 002H ; 11 kHz */
PCF_TRNS15 .EQU 003H ; 1.5 kHz */
;
; TIMEOUT AND DELAY VALUES (ARBITRARY)
;
PCF_PINTO .EQU 65000
PCF_ACKTO .EQU 65000
PCF_BBTO .EQU 65000
PCF_LABDLY .EQU 65000
;
; DATA PORT REGISTERS
;
#IF (CPU_CLK = 443)
PCF_CLK .EQU PCF_CLK443
#ELSE
#IF (CPU_CLK = 8)
PCF_CLK .EQU PCF_CLK8
#ELSE
#IF (CPU_CLK = 12)
PCF_CLK .EQU PCF_CLK12
#ELSE ***ERROR
#ENDIF
#ENDIF
#ENDIF
;
DS7_OUT .EQU 10000000B ; SELECT SQUARE WAVE FUNCTION
DS7_SQWE .EQU 00010000B ; ENABLE SQUARE WAVE OUTPUT
DS7_RATE .EQU 00000000B ; SET 1HZ OUPUT
;
DS7_DS1307 .EQU 11010000B ; DEVICE IDENTIFIER
DS7_W .EQU 00000000B ; DEVICE WRITE
DS7_R .EQU 00000001B ; DEVICE READ
;
DS7_READ .EQU (DS7_DS1307 | DS7_R) ; READ
DS7_WRITE .EQU (DS7_DS1307 | DS7_W) ; WRITE
;
DS7_CTL .EQU (DS7_OUT | DS7_SQWE | DS7_RATE)
;
PCF8574 .EQU 01000000B ; DEVICE IDENTIFIER
PCF8574A .EQU 00001110B ; DEVICE ADDRESS
PCF8574W .EQU 00000000B ; DEVICE WRITE
PCF8574R .EQU 00000001B ; DEVICE READ
;
I2CLCDR .EQU (PCF8574+PCF8574A+PCF8574R)
I2CLCDW .EQU (PCF8574+PCF8574A+PCF8574W)

0
Source/Apps/I2C/RTCds7.asm → Source/Apps/I2C/rtcds7.asm

12
Source/HBIOS/hbios.asm

@ -2367,6 +2367,9 @@ HB_INITTBL:
;#IF (DSKYENABLE)
; .DW DSKY_INIT
;#ENDIF
#IF (DMAENABLE)
.DW DMA_INIT
#ENDIF
#IF (MDENABLE)
.DW MD_INIT
#ENDIF
@ -4674,6 +4677,15 @@ SIZ_NEC .EQU $ - ORG_NEC
.ECHO " bytes.\n"
#ENDIF
;
#IF (DMAENABLE)
ORG_DMA .EQU $
#INCLUDE "dma.asm"
SIZ_DMA .EQU $ - ORG_DMA
.ECHO "DMA occupies "
.ECHO SIZ_DMA
.ECHO " bytes.\n"
#ENDIF
;
; FONTS AREA
;
ORG_FONTS .EQU $

Loading…
Cancel
Save