From ecac41369ab94042bddddf952fa8447ee947fa99 Mon Sep 17 00:00:00 2001 From: naruko Date: Sun, 29 Nov 2009 03:34:31 +0000 Subject: [PATCH] read buffer and programming buffer are separated git-svn-id: svn+ssh://svn.osdn.net/svnroot/unagi@316 24ea1065-a21e-4ca1-99c9-f5125deb0858 --- client/trunk/anago/Makefile | 3 ++- client/trunk/reader_kazzo.c | 34 ++++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/client/trunk/anago/Makefile b/client/trunk/anago/Makefile index 4f28f54..1071f31 100644 --- a/client/trunk/anago/Makefile +++ b/client/trunk/anago/Makefile @@ -1,8 +1,9 @@ all: anago.exe LIBUSB = d:/dev/LibUSB-Win32 SQUIRREL = ../SQUIRREL2 +KAZZO = ../../kazzo VPATH = .. -CFLAGS = -g -O0 -Wall -Werror -I.. -I$(LIBUSB)/include -I$(SQUIRREL)/include -DDEBUG=1 -DANAGO=1 +CFLAGS = -g -O0 -Wall -Werror -I.. -I$(LIBUSB)/include -I$(SQUIRREL)/include -I$(KAZZO) -DDEBUG=1 -DANAGO=1 LDFLAG = -L. -L$(LIBUSB)/lib/gcc -L$(SQUIRREL)/lib CC = gcc OBJ = anago.o header.o crc32.o file.o \ diff --git a/client/trunk/reader_kazzo.c b/client/trunk/reader_kazzo.c index b0e8ab7..c82e5b8 100644 --- a/client/trunk/reader_kazzo.c +++ b/client/trunk/reader_kazzo.c @@ -1,9 +1,9 @@ #include +#include #include +#include #include "reader_master.h" #include "usb_device.h" -#include "../kazzo/request.h" -#include "../kazzo/usbconfig.h" #include "reader_kazzo.h" static usb_dev_handle *device_open(void) @@ -39,10 +39,6 @@ static int kazzo_open_close(enum reader_control oc) } return NG; } -static void kazzo_init(void) -{ - //no operation -} enum{ TIMEOUT = 4000 }; @@ -55,15 +51,19 @@ static void device_read(usb_dev_handle *handle, enum request r, long address, lo r, address, 0, data, length, TIMEOUT ); - assert(cnt == length); + if(cnt != length){ + usb_strerror(); + exit(1); + } } static void read_main(const enum request r, long address, long length, uint8_t *data) { - while(length >= READ_PACKET_SIZE){ - device_read(handle, r, address, READ_PACKET_SIZE, data); - data += READ_PACKET_SIZE; - address += READ_PACKET_SIZE; - length -= READ_PACKET_SIZE; + const int packet = READ_PACKET_SIZE; + while(length >= packet){ + device_read(handle, r, address, packet, data); + data += packet; + address += packet; + length -= packet; } if(length != 0){ device_read(handle, r, address, length, data); @@ -81,7 +81,7 @@ static void kazzo_ppu_read(long address, long length, uint8_t *data) //-------- write sequence -------- static void device_write(usb_dev_handle *handle, enum request w, long address, long length, const uint8_t *data) { - //const ¤ò³°¤·¤Æ̵ÍýÌðÍýÅϤ¹¤·¤«¤Ê¤¤ + //Removing const attribute is not good method.... int cnt = usb_control_msg( handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, @@ -89,10 +89,16 @@ static void device_write(usb_dev_handle *handle, enum request w, long address, l 0, (uint8_t *) data, length, TIMEOUT ); if(cnt != length){ - assert(cnt == length); + usb_strerror(); + exit(1); } } +static void kazzo_init(void) +{ + device_write(handle, REQUEST_PHI2_INIT, 0, 0, NULL); +} + static void kazzo_cpu_write_6502(long address, long length, const uint8_t *data) { device_write(handle, REQUEST_CPU_WRITE_6502, address, length, data); -- 2.11.0