P8000-Acessing via '138+'245
This commit is contained in:
parent
801b1e746c
commit
a777ce8444
Binary file not shown.
|
|
@ -174,7 +174,7 @@ T 67100 33100 9 8 1 0 0 0 1
|
||||||
T 68500 33100 9 8 1 0 0 0 1
|
T 68500 33100 9 8 1 0 0 0 1
|
||||||
1
|
1
|
||||||
T 71000 33400 9 7 1 0 0 0 1
|
T 71000 33400 9 7 1 0 0 0 1
|
||||||
$Revision: 1.11 $ / $Date: 2012/06/10 08:51:17 $
|
$Revision: 1.12 $ / $Date: 2012/06/10 21:03:24 $
|
||||||
T 71000 33100 9 8 1 0 0 0 1
|
T 71000 33100 9 8 1 0 0 0 1
|
||||||
Oliver Lehmann <lehmann@ans-netz.de>
|
Oliver Lehmann <lehmann@ans-netz.de>
|
||||||
N 50600 59400 51200 59400 4
|
N 50600 59400 51200 59400 4
|
||||||
|
|
@ -1055,8 +1055,8 @@ N 35300 40600 32600 40600 4
|
||||||
N 35300 40300 32600 40300 4
|
N 35300 40300 32600 40300 4
|
||||||
N 33800 38900 33800 41200 4
|
N 33800 38900 33800 41200 4
|
||||||
N 33500 38900 33500 40900 4
|
N 33500 38900 33500 40900 4
|
||||||
N 33200 38900 33200 40900 4
|
N 33200 38900 33200 40600 4
|
||||||
N 32900 38900 32900 40900 4
|
N 32900 38900 32900 40300 4
|
||||||
N 41600 42500 40800 42500 4
|
N 41600 42500 40800 42500 4
|
||||||
N 40800 38800 40800 42500 4
|
N 40800 38800 40800 42500 4
|
||||||
N 40800 38800 37300 38800 4
|
N 40800 38800 37300 38800 4
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Id: wdc_config.h,v 1.12 2012/06/09 19:47:31 olivleh1 Exp $
|
* $Id: wdc_config.h,v 1.13 2012/06/10 21:03:23 olivleh1 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -81,6 +81,6 @@
|
||||||
#define MEASURE_SDCARD_TIME 1
|
#define MEASURE_SDCARD_TIME 1
|
||||||
#undef MEASURE_SDCARD_TIME
|
#undef MEASURE_SDCARD_TIME
|
||||||
|
|
||||||
#define DEBUG 0
|
#define DEBUG 3
|
||||||
|
|
||||||
#endif /* CONFIG_H_ */
|
#endif /* CONFIG_H_ */
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Id: wdc_if_p8000.c,v 1.6 2012/06/09 19:47:31 olivleh1 Exp $
|
* $Id: wdc_if_p8000.c,v 1.7 2012/06/10 21:03:23 olivleh1 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
@ -48,6 +48,7 @@ void wdc_init_ports()
|
||||||
configure_pin_wdardy();
|
configure_pin_wdardy();
|
||||||
configure_pin_tr();
|
configure_pin_tr();
|
||||||
configure_pin_reset();
|
configure_pin_reset();
|
||||||
|
PORTD |= ( ( 1 << PIND5 ) );
|
||||||
|
|
||||||
configure_port_data_read();
|
configure_port_data_read();
|
||||||
}
|
}
|
||||||
|
|
@ -77,9 +78,11 @@ uint8_t wdc_read_data_from_p8k ( uint8_t *buffer, uint16_t count, uint8_t wdc_st
|
||||||
while ( !isset_info_wdardy() );
|
while ( !isset_info_wdardy() );
|
||||||
do {
|
do {
|
||||||
while ( isset_info_wdardy() );
|
while ( isset_info_wdardy() );
|
||||||
port_info_set ( INFO_ASTB | wdc_status );
|
PORTD |= ( ( 1 << PIND5 ) );
|
||||||
|
nop();
|
||||||
|
nop();
|
||||||
buffer[datacnt] = ( uint8_t ) port_data_get();
|
buffer[datacnt] = ( uint8_t ) port_data_get();
|
||||||
port_info_set ( wdc_status );
|
PORTD &= ~ ( ( 1 << PIND5 ) );
|
||||||
while ( !isset_info_wdardy() );
|
while ( !isset_info_wdardy() );
|
||||||
datacnt++;
|
datacnt++;
|
||||||
} while ( datacnt < count );
|
} while ( datacnt < count );
|
||||||
|
|
@ -100,17 +103,19 @@ void wdc_write_data_to_p8k ( uint8_t *buffer, uint16_t count, uint8_t wdc_status
|
||||||
while ( !isset_info_wdardy() );
|
while ( !isset_info_wdardy() );
|
||||||
do {
|
do {
|
||||||
while ( isset_info_wdardy() );
|
while ( isset_info_wdardy() );
|
||||||
port_info_set ( INFO_TR | INFO_ASTB | wdc_status );
|
PORTD |= ( ( 1 << PIND5 ) );
|
||||||
|
nop();
|
||||||
|
nop();
|
||||||
port_data_set ( buffer[datacnt] );
|
port_data_set ( buffer[datacnt] );
|
||||||
port_info_set ( INFO_TR | wdc_status );
|
PORTD &= ~ ( ( 1 << PIND5 ) );
|
||||||
while ( !isset_info_wdardy() );
|
while ( !isset_info_wdardy() );
|
||||||
|
|
||||||
datacnt++;
|
datacnt++;
|
||||||
} while ( datacnt < count );
|
} while ( datacnt < count );
|
||||||
while ( isset_info_wdardy() );
|
while ( isset_info_wdardy() );
|
||||||
port_info_set ( INFO_TR | INFO_ASTB | wdc_status );
|
PORTD |= ( ( 1 << PIND5 ) );
|
||||||
nop();
|
nop();
|
||||||
port_info_set ( INFO_TR | wdc_status );
|
PORTD &= ~ ( ( 1 << PIND5 ) );
|
||||||
configure_port_data_read();
|
configure_port_data_read();
|
||||||
while ( !isset_info_wdardy() );
|
while ( !isset_info_wdardy() );
|
||||||
port_info_set ( INFO_CLEAR );
|
port_info_set ( INFO_CLEAR );
|
||||||
|
|
|
||||||
|
|
@ -26,13 +26,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Id: wdc_if_p8000.h,v 1.8 2012/06/09 19:47:31 olivleh1 Exp $
|
* $Id: wdc_if_p8000.h,v 1.9 2012/06/10 21:03:23 olivleh1 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef WDC_IF_PIO_H_
|
#ifndef WDC_IF_PIO_H_
|
||||||
#define WDC_IF_PIO_H_
|
#define WDC_IF_PIO_H_
|
||||||
|
|
||||||
#define DELAY_PIO_US 450
|
#define DELAY_PIO_US 550
|
||||||
|
|
||||||
#define configure_port_data_read() DDR_DATA = 0x00 /* programs the DATA-Port as Input-only for reading from the P8000*/
|
#define configure_port_data_read() DDR_DATA = 0x00 /* programs the DATA-Port as Input-only for reading from the P8000*/
|
||||||
#define configure_port_data_write() DDR_DATA = 0xff /* programs the DATA-Port as Out-only for writing to the P8000*/
|
#define configure_port_data_write() DDR_DATA = 0xff /* programs the DATA-Port as Out-only for writing to the P8000*/
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
/*
|
/*
|
||||||
* P8000 WDC Emulator
|
* P8000 WDC Emulator
|
||||||
*
|
*
|
||||||
* $Id: wdc_main.c,v 1.24 2012/06/09 19:47:31 olivleh1 Exp $
|
* $Id: wdc_main.c,v 1.25 2012/06/10 21:03:23 olivleh1 Exp $
|
||||||
*
|
*
|
||||||
* TODO: - right now, BTT entries are not taken into account
|
* TODO: - right now, BTT entries are not taken into account
|
||||||
*/
|
*/
|
||||||
|
|
@ -81,10 +81,18 @@ main ( void )
|
||||||
uint8_t errorcode;
|
uint8_t errorcode;
|
||||||
uint8_t i8;
|
uint8_t i8;
|
||||||
#endif
|
#endif
|
||||||
|
DDRD = 0xff;
|
||||||
|
PORTD = 0x00;
|
||||||
atmega_setup();
|
atmega_setup();
|
||||||
|
|
||||||
uart_puts_p ( PSTR ( "P8000 WDC Emulator 0.90\n" ) );
|
uart_puts_p ( PSTR ( "P8000 WDC Emulator 0.90\n" ) );
|
||||||
|
/*
|
||||||
|
configure_port_data_read();
|
||||||
|
PORTD |= ((1<<PIND5));
|
||||||
|
port_info_set(INFO_STAT_GCMD);
|
||||||
|
|
||||||
|
while(1);
|
||||||
|
*/
|
||||||
#ifdef MEASURE_SDCARD_TIME
|
#ifdef MEASURE_SDCARD_TIME
|
||||||
measure_performance();
|
measure_performance();
|
||||||
#else
|
#else
|
||||||
|
|
@ -111,6 +119,7 @@ main ( void )
|
||||||
|
|
||||||
while ( 1 ) {
|
while ( 1 ) {
|
||||||
|
|
||||||
|
|
||||||
wdc_wait_for_reset();
|
wdc_wait_for_reset();
|
||||||
|
|
||||||
if ( wdc_receive_cmd ( cmd_buffer
|
if ( wdc_receive_cmd ( cmd_buffer
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue