diff --git a/Binary/RCZ80_std.upd b/Binary/RCZ80_std.upd deleted file mode 100644 index 2890b61d..00000000 Binary files a/Binary/RCZ80_std.upd and /dev/null differ diff --git a/Binary/SBC_std.upd b/Binary/SBC_std.upd deleted file mode 100644 index 2b85c08e..00000000 Binary files a/Binary/SBC_std.upd and /dev/null differ diff --git a/Source/Apps/Build.cmd b/Source/Apps/Build.cmd index ac3ed35c..ee85be71 100644 --- a/Source/Apps/Build.cmd +++ b/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%\ diff --git a/Source/Apps/I2C/Makefile b/Source/Apps/I2C/Makefile index 8cc30294..cdee4fdd 100644 --- a/Source/Apps/I2C/Makefile +++ b/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 diff --git a/Source/Apps/I2C/I2CSCAN.ASM b/Source/Apps/I2C/i2cscan.asm similarity index 100% rename from Source/Apps/I2C/I2CSCAN.ASM rename to Source/Apps/I2C/i2cscan.asm diff --git a/Source/Apps/I2C/pcfi2c.inc b/Source/Apps/I2C/pcfi2c.inc new file mode 100644 index 00000000..c61dcb59 --- /dev/null +++ b/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) diff --git a/Source/Apps/I2C/RTCds7.asm b/Source/Apps/I2C/rtcds7.asm similarity index 100% rename from Source/Apps/I2C/RTCds7.asm rename to Source/Apps/I2C/rtcds7.asm diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 369708b9..92a29c8a 100644 --- a/Source/HBIOS/hbios.asm +++ b/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 $