PCF 8591A is simple AD and DA converter. Designed for I2C bus is directly connectable to Z-Berry.
Here is an example how easy it is to write code to read data from A/D converter using built-in routines in ROM.
DA: CALL SYS_I2C_START ; start cond.
LD C, DEV_ADDR ; send device address
CALL SYS_I2C_WRITE ; and device setting
LD C, %01000100 ; enable output, 4 single inputs, autoincrement
CALL SYS_I2C_WRITE
LD C, DA_VALUE ; finally D/A value
CALL SYS_I2C_WRITE
CALL SYS_I2C_STOP ; stop cond.
AD: LD IX, TEMP ; place to write data
CALL SYS_I2C_START ; start cond.
LD C, DEV_ADDR+1 ; send device address + read bit
CALL SYS_I2C_WRITE
CALL SYS_I2C_RDACK ; and four readings
LD (IX+0), C
CALL SYS_I2C_RDACK
LD (IX+1), C
CALL SYS_I2C_RDACK
LD (IX+2), C
CALL SYS_I2C_RDNACK; say no more readings
LD (IX+3), C
CALL SYS_I2C_STOP ; stop cond.