New RTC module for Divide interface
http://velesoft.speccy.cz/zx/rtcmodule/index.htm
http://www.worldofspectrum.org/forum...915#post775915
MCLOCK utility by BUSYSOFT:
CLOCK utility by BUSYSOFT:
ESXDOS with RTC.SYS support:
SEGA GENESIS joypad from Ebay
http://velesoft.speccy.cz/zx/joypad.htm
Board contain two jumpers for select one of four possible 8kB rom pages = up to 4 different systems. This is possible only if you connect 32kB EEPROM chip 28C256. Also can be used original 8kB eeprom and both jumpers will ignored.
Next two jumpers select address of I/O ports of RTC chip. Is possible select one of this ports:
#xx03 (jumpers J3 and J4 open) - 12bit address decoding (A15-A12 are ignored)
#7x3B (jumper J3 closed and J4 open) - full 16bit address decoding
#CxEF (jumper J3 open and J4 closed) - full 16bit address decoding
Inhibit RTC chip (jumpers J3 and J4 are both closed)
Address lines A8-A11 are always used for select number of register in RTC chip. All RTC ports are writeable and readable.
RTC module contain also own kempston joystick interface with full 8bit address decoded port #1F, but also use jumper for active joypad mode (here are used two joystick ports #1F and #5F.
Jumper "8_BUTTONS" is open:
- is used only one kempston joystick port #1F with full 8bit address decoding (A7-A0=BIN 00011111) and M1 line is ignored.
Jumper "8_BUTTONS" is connect:
- are used two ports for communication with joypads
- port #1F is read only and use full 8bit address decoding (A7-A0=BIN 00011111)
- port #5F is read only and use full 8bit address decoding (A7-A0=BIN 01011111)
- aech reding of ports #000111xx reset signal "SELECT" on joypad connector
- aech reding of ports #010111xx set signal "SELECT" on joypad connector
On board are two joystick connectors, but each use different pinout and only one joystick/jopad can be connect. Horisontal joystick connector use Amiga compatible pinout and support amiga/atari joysticks with up to 3 fire buttons. Also real amiga mouse(with up to 3 buttons) can be connect for controll in some ZX games with A-MOUSE driver. Vertical joystick connector use pinout compatible with SEGA GENESIS/SEGA MASTER SYSTEM joypads with up to 8 fire buttons, but also amiga/atari joystick can be connect here. Both connectors contain +5V and GND for autofire support.
Jumper "DISABLE KEMPSTON" - CLOSE=joystick disable
Jumper "DISABLE RTC" - CLOSE=rtc disable (same as previous inhibit function)
Код:
JOYPAD DRIVER for RTC module: (v3.0 and higher)
===============================================
DI ;communication with joypad need good timing
IN A,(31) ;first byte return standard joy directions+two fire buttons(B+C)
LD B,A
AND 192 ;test of joypad (D7 and D6 must be in log.0)
JR NZ,ERROR
IN A,(95) ;byte 2 contain state of buttons START + A
LD C,A
AND 195
CP 3 ;test of joypad (D7+D6 must be in log.0 and D1+D0 in log.1)
JR NZ,ERROR
LD A,C
AND 48 ;accept only state of buttons START + A
RLCA
RLCA ;shift buttons at end of byte
LD C,A
IN A,(31) ;byte 3 must be D7 and D6 in log.0
AND 192 ;test of joypad (D7 and D6 must be in log.0)
JR NZ,ERROR
IN A,(95) ;byte 4
AND 207
CP 15 ;test of joypad (D7 and D6 in log.0 and D3-D0 in log.1)
JR NZ,ERROR
IN A,(31) ;byte 5 contain next 6 fire buttons
LD E,A
AND 192 ;test of joypad (D7 and D6 in log.0)
JR NZ,ERROR
LD A,E ; A=6 buttons
OR C ;add next two buttons
LD C,A ;(C=all 8 fire buttons)
IN A,(95) ;byte 6
AND 207 ;test of joypad (D7 and D6 in log.0 and D3-D0 in log.0)
JR NZ,ERROR
;at end of test save state of directions (reg.B) and state of all 8 buttons (reg.C) to ram
OR A ;reset carry (NC) if joypad is detected
JR RETURN
ERROR LD C,0 ;if joypad is not detected then reset state of all 8 fire buttons
;and in register B will always state of portu #1F(dec 31) = kempston joy port
SCF ;joypad not detected then return with carry (C)
RETURN LD (JOYDIR),BC
EI
RET
JOYDIR DEFB 0 ;here save state of 8 fire buttons :START,A,C,B,Z,Y,X,MODE
JOYDIR2 DEFB 0 ;here save byte with this layout : 0,0,C,B,UP,DOWN,LEFT,RIGHT