Able to read PRG-ROM flash chip's manf and device ID from commandline.
New dictionaries io and nes along with firmware files to support.
now have io_reset, nes_init, and snes_init io.c functions
nes.c functions including discrete_exp0_prgrom_wr and emulate_nes_cpu_rd.
New dictionary.c/.h for host to make dictionary calls easier including
setting proper return data lengths based on opcode.
adding nop command to pinport.h
AVR Memory Usage
----------------
Device: atmega164a
Program: 2960 bytes (18.1% Full)
(.text + .data + .bootloader)
Data: 53 bytes (5.2% Full)
(.data + .bss + .noinit)
new file: host/source/erase.c
new file: host/source/erase.h
creating erase files called from main with e_flag
modified: firmware/source/usb.c
introducing switch statement with range of values of opcode type detection.
modified: host/source/usb_operations.h
turning off debug
modified: shared/shared_errors.h
renumbering some error codes
thinking I'll have codes which can come from avr set to 128+
Expecting it to be simpler and potentially faster to send dump commands and simply provide pointer to ram buffer within usbFunctionSetup. Saves about 70Bytes of code, so not huge, but whatevs..
AVR Memory Usage
----------------
Device: atmega164a
Program: 2594 bytes (15.8% Full)
(.text + .data + .bootloader)
Data: 53 bytes (5.2% Full)
(.data + .bss + .noinit)
rearranged some of the .h files, created dictionary file to list all dictionaries of opcodes.
moved error codes to shared file so host can interpret firmware error codes.
created firmware usb.c/h to handle usb operations (didn't move as git seems to think..)
cleaned up fw main function and file.
host usb_operations, created USBrequest struct type to more easily handle all transfer info.
Currently able to send pinport commands and read back return values from retro prog.
Just need to start writting functions to send opcodes and start actually preforming some cartridge operations.
modified: pinport.c
modified: pinport.h
-completing implementation of remaining shared_pinport opcodes
modified: ../../shared/shared_pinport.h
-few opcodes deleted because I decided they were stupid when got
around to implementing them. Set user up for errors and not
useful generally.
modified: source/logic.h
-adding IP and OP definitions to use on DDR registers
-ERROR codes denote what function errored out
modified: ../shared/shared_pinport.h
-changing some opcode names for clarity and lowercasing non-recommended ones
modified: source/pinport.c
-fix bug that recreated cur_AHL_addr and cur_AXL_addr
-create opcode with 8bit operand function
modified: firmware/source/pinport.c
modified: firmware/source/pinport.h
-creating shared_pinport.h which is effectively a dictionary for
pinport opcodes
-file gets copied to host and firmware source dirs when compilied.
-hardware macros had to be renamed to include underscore to
differentiate opcode name from hardware macro.
-pinport.c now is a nice clean switch between opcode name and
macro with all literal numbers removed.
-now don't have to manually track/update opcode numbers between
multiple locations.
modified: firmware/source/io.c
modified: firmware/source/main.c
-updates to add underscore pre-fix to hardware macros.
-created from firmware/source/pinport.c
-macros to create opcodes which will get sent as commands over USB
-they will then get interpreted by pinport.c in firmware.
modified: source/pinport.h
-adding some compatibility between boards.
-purple and green should work under final version commands.
-making some commands lower case which aren't recommended.
-defining SUCCESS & ERROR_CODES
new file: pinport.c
-Creation of file with giant switch to decode byte value into
macro call.
-software AXL and AHL clocking of for green boards.
modified: pinport.h
-removed #ifdef for signals, should only be based on board when
possible.
-created macro for AXL/AHL_CLK to call software function
deleted: macro.h
-don't want this old guy around any more...
-modified to caluclate ROM/RAM usage of atmega164a
new file: source/io.h
new file: source/logic.h
-created files
modified: source/io.c
modified: source/main.c
-created io_pullup going to make separate io inits based on cartridge inserted
-modifing for io.h
modified: source/pinport.h
-File mostly complete with all possible pin manipulations
Base line rom/ram usage.
usb read/write functions are enabled, but long transfers are not.
host support only for LED on/off.
2KB of 16KB (12.5%) of program memory are not available due to bootloader.
AVR Memory Usage
----------------
Device: atmega164a
Program: 1620 bytes (9.9% Full) 87.5% is MAX due to bootloader
(.text + .data + .bootloader)
Data: 45 bytes (4.4% Full)
(.data + .bss + .noinit)
-creation of io file
modified: main.c
-moving io setup to io.c
new file: pinport.h
-creation of pinport file, intended to be avr specific code from macro.h
-shared .h files used in both firmware and host app
modified: firmware/Makefile
modified: host/Makefile
-added shared dependency to copy shared files to source prior to
building
modified: host/source/usb_operations.h
modified: firmware/source/main.c
-removing usb commands (now in shared)
modified: host/include/dbg.h
-adding SUCCESS defintion
modified: host/source/inlprog.c
-calling write file if write arg sent
new file: host/source/write_operations.c
new file: host/source/write_operations.h
-creation of write operations files
-opens file and reads header
-some skeleton comments
-lots of work left to do here
new file: roms/nrom_v_test.nes
-adding NROM test rom file
- removing compile errors
- fixing request/command for off (was always sending on copy paste error)
modified: source/usb_operations.c
- Adding checks beyond VID/PID pair
- Now check Manufacturer, Product, and build version
- Give Warnings/Error if device is not supported
- Don't blindly accept and try to write to non-supported devices.
- Cleared up confusion on ENDPOINT direction.
-moved usb device operations into usb_operations module
new file: source/usb_operations.c
new file: source/usb_operations.h
-creation of usb_operations module
-currently handles libusb open/close and retrieving INL retro-prog
usb handle.
-moving returnvalue "rv" declaration/init earlier to ensure initization.
-adding notes to user if LIBUSB_ERROR_ACCESS as it's expected on linux.
modified: udev-rule-help/Readme.txt
-including expected libusb error if user doesn't have access.
host\include\dbg.h: reversing DEBUG logic.
host\source\inlprog.c: working through making code more robust with proper
error checking via "Zed's AWESOME debug macros" ;)
-basic fuctionality in place.
-currently only using setup packet for LED on/off with request field.
-Read and Write functions created but empty for now.
Makefile copied from the Makefile I came up with during Zed Shaw's LCTHW
inlretro.c basic usb functionality using libusb 1.0
-searches through usb devices and opens matching VID/PID
-sends vendor xfr command for LED ON/OFF
-closes out usb device prior to exit
-lots of messy comments as notes while learning libusb
updating usbdrv.h usbdrv.c and main.c so bootloader with const for PROGMEM entires
resolves compiling errors on new versions of avr-gcc.
Still have some warnings to resolve..
If going to use this version of bootloader should prob update V-USB driver code
Also renaming to bootloadHID-master as that's it's "name" when downloaded from:
https://github.com/ajd4096/bootloadHID
May be adding obdev's original bootloader as well so I can tinker with
both versions and make final choice later on.