Compare commits
No commits in common. "bf4636d9946189414b4cab1bec1059f7f621e3e8" and "8f16e303dbec7933f768f73a41a1abda4e4f1f71" have entirely different histories.
bf4636d994
...
8f16e303db
11 changed files with 0 additions and 23135 deletions
22341
avrdude.conf
22341
avrdude.conf
File diff suppressed because it is too large
Load diff
BIN
avrdude.exe
BIN
avrdude.exe
Binary file not shown.
BIN
avrdude.pdb
BIN
avrdude.pdb
Binary file not shown.
|
|
@ -1,54 +0,0 @@
|
|||
# PowerShell script to flash a precompiled HEX file via avrdude.exe with a USBasp programmer
|
||||
|
||||
# Path to avrdude.exe
|
||||
# $AvrdudePath = "C:\path\to\avrdude.exe"
|
||||
$AvrdudePath = "avrdude.exe"
|
||||
|
||||
|
||||
# Path to the USBasp configuration file (avrdude.conf)
|
||||
$AvrdudeConf = "avrdude.conf"
|
||||
|
||||
# Path to the HEX file to be flashed
|
||||
$HexFile = "pre_built\atiny13_4-8.hex"
|
||||
|
||||
# USBasp programmer options
|
||||
$ProgrammerOptions = "-c usbasp"
|
||||
|
||||
# Microcontroller options (replace with the appropriate values for your microcontroller)
|
||||
$MCU = "-p attiny13"
|
||||
$BaudRate = "-B 10"
|
||||
|
||||
# Check if avrdude.exe exists
|
||||
if (-not (Test-Path $AvrdudePath -PathType Leaf)) {
|
||||
Write-Error "Error: avrdude.exe not found. Please set AvrdudePath in the script."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Check if the avrdude configuration file exists
|
||||
if (-not (Test-Path $AvrdudeConf -PathType Leaf)) {
|
||||
Write-Error "Error: avrdude.conf not found. Please set AvrdudeConf in the script."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Check if the HEX file exists
|
||||
if (-not (Test-Path $HexFile -PathType Leaf)) {
|
||||
Write-Error "Error: HEX file not found. Please set HexFile in the script."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Build avrdude command
|
||||
$AvrdudeCommand = "$AvrdudePath -C $AvrdudeConf $ProgrammerOptions $MCU $BaudRate -U flash:w:$HexFile"
|
||||
|
||||
# Run avrdude command
|
||||
Write-Host "Flashing HEX file..."
|
||||
Invoke-Expression $AvrdudeCommand
|
||||
|
||||
# Check avrdude exit code
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host "Flashing completed successfully."
|
||||
} else {
|
||||
Write-Host "Flashing failed. Check avrdude output for details."
|
||||
}
|
||||
|
||||
# Exit with avrdude exit code
|
||||
exit $LASTEXITCODE
|
||||
420
main.c
420
main.c
|
|
@ -1,420 +0,0 @@
|
|||
/*
|
||||
* FileName: *.c
|
||||
* Date: 2023
|
||||
* Descripton: Program for Atiny13A controllers, controls DPDT relays and
|
||||
* has options to save settings in EEPROM.
|
||||
*/
|
||||
|
||||
#ifndef MCU
|
||||
#define MCU atiny13a
|
||||
#endif
|
||||
|
||||
#ifndef F_CPU
|
||||
#define F_CPU 4800000UL
|
||||
#endif
|
||||
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <util/delay.h>
|
||||
#include <avr/eeprom.h>
|
||||
|
||||
//These are just defined in case for compatability with Arduino
|
||||
#ifndef HIGH
|
||||
#define HIGH 1
|
||||
#endif
|
||||
|
||||
#ifndef LOW
|
||||
#define LOW 0
|
||||
#endif
|
||||
|
||||
#ifndef UINT8_MAX
|
||||
#define UINT8_MAX 256
|
||||
#endif
|
||||
|
||||
//This is the bitpattern that should be at address 0x00
|
||||
#define START_PATTERN 0xAA
|
||||
#define END_PATTERN 0x55
|
||||
|
||||
//Addresses in the eeprom for the two bypasses
|
||||
#define ROM_SP_ADR 0x0
|
||||
#define ROM_BP1_ADR 0x1
|
||||
#define ROM_BP2_ADR 0x2
|
||||
#define ROM_EP_ADR 0x3
|
||||
|
||||
//Debounce check number.
|
||||
#define MAX_CHECKS 10
|
||||
|
||||
// Define DISABLE_TEMPORARY_SWITCH to turn off the ability to hold
|
||||
// the switch to temporarily engage/bypass.
|
||||
//#define DISABLE_TEMPORARY_SWITCH
|
||||
|
||||
#define PIN_SW2 PINB3
|
||||
#define PIN_BYPASS2 PB4
|
||||
#define PIN_SW1 PINB2
|
||||
#define PIN_BYPASS1 PB1
|
||||
#define PIN_MUTE PB0
|
||||
|
||||
//The BLINK_QTY can be edited from 0-255 blinks
|
||||
#define BLINK_QTY 2
|
||||
#define BLINK_CNT 2 * BLINK_QTY
|
||||
#define BLINK_DELAY 200
|
||||
|
||||
|
||||
|
||||
/*The timing of "ticks" is dependent on the AVR timer's counter register
|
||||
* so for an 8bit register the maximum value is 256. Given we stick with
|
||||
* a 1Mhz cpu frequency can use this formula to calculate the number of
|
||||
* interrupts(timer overflows) per second:
|
||||
*
|
||||
* OVF_S = (F_CPU / DIV)/ (2^8)
|
||||
* 61 = (1000000 / 64) / 256
|
||||
*
|
||||
* This is important because the ATiny13/A only have a single timer built into
|
||||
* them.
|
||||
*
|
||||
* Ticks are used as our way of keep track of long button presses.
|
||||
* */
|
||||
#define LONG_PRESS_TICKS 60
|
||||
|
||||
|
||||
/*A structure to hold the button info*/
|
||||
typedef struct {
|
||||
uint8_t is_pressed: 1;
|
||||
uint8_t is_bypassed: 1;
|
||||
uint8_t is_long_pressed: 1;
|
||||
uint8_t timer_enabled: 1;
|
||||
uint8_t pressed_ticks;
|
||||
uint8_t input_pin;
|
||||
uint8_t output_pin;
|
||||
}btn_state;
|
||||
|
||||
|
||||
/*
|
||||
* ###############################
|
||||
* Global Variables
|
||||
* ###############################
|
||||
*/
|
||||
|
||||
|
||||
/*Create two diffent instances of the button state structure*/
|
||||
btn_state btn1;
|
||||
btn_state btn2;
|
||||
|
||||
/*Some variables for managing the debouncing*/
|
||||
volatile uint8_t debounced_state;
|
||||
volatile uint8_t db_state[MAX_CHECKS];
|
||||
volatile uint8_t idx;
|
||||
|
||||
volatile uint16_t tick_count;
|
||||
|
||||
/*
|
||||
* ###############################
|
||||
* FUNCTION PROTOTYPES
|
||||
* ###############################
|
||||
*/
|
||||
|
||||
static void toggle_output(btn_state *b);
|
||||
static inline void init_btn(btn_state *b, uint8_t input_pin, uint8_t output_pin);
|
||||
static void clear_button_timer(btn_state *b);
|
||||
static inline void start_button_timer(btn_state *b);
|
||||
static inline void check_button_longpress(btn_state *b);
|
||||
static void update_button_output(btn_state *b);
|
||||
static void update_button_input(btn_state *b);
|
||||
|
||||
static inline void blink_bypass1(void);
|
||||
static inline void blink_bypass2(void);
|
||||
|
||||
static inline void init_timer0();
|
||||
static inline void debounce_switch();
|
||||
/*
|
||||
* ###############################
|
||||
* SETUP AND LOOP
|
||||
* ###############################
|
||||
*/
|
||||
void init_prog()
|
||||
{
|
||||
/*Set the debounced state to all high*/
|
||||
debounced_state = 0xFF;
|
||||
|
||||
/*Configures the PINS for the input and output.*/
|
||||
init_btn(&btn1, PIN_SW1, PIN_BYPASS1);
|
||||
init_btn(&btn2, PIN_SW2, PIN_BYPASS2);
|
||||
|
||||
/*Wait 5ms for pull-up resistors voltage to become stable.*/
|
||||
_delay_ms(5);
|
||||
|
||||
/*check if the eeprom has info. */
|
||||
while(! eeprom_is_ready()) {} //Blocks until eeprom is ready.
|
||||
|
||||
//Checks against a bit pattern we defined to represent the start of data.
|
||||
if(eeprom_read_byte((uint8_t *)ROM_SP_ADR) == START_PATTERN) {
|
||||
//Reads the two bytes representing the two states.
|
||||
btn1.is_bypassed = eeprom_read_byte((uint8_t *)ROM_BP1_ADR);
|
||||
btn2.is_bypassed = eeprom_read_byte((uint8_t *)ROM_BP2_ADR);
|
||||
}
|
||||
else {
|
||||
//otherwise we write the init values for the start pattern and bypass states.
|
||||
eeprom_write_byte((uint8_t *)ROM_SP_ADR, START_PATTERN);
|
||||
eeprom_write_byte((uint8_t *)ROM_BP1_ADR, 0x0);
|
||||
eeprom_write_byte((uint8_t *)ROM_BP2_ADR, 0x0);
|
||||
}
|
||||
|
||||
btn1.is_pressed = ((PINB & (1<<btn1.input_pin)) == 0);
|
||||
btn2.is_pressed = ((PINB & (1<<btn2.input_pin)) == 0);
|
||||
|
||||
|
||||
/*This is to read if the user wants to change the saved states.*/
|
||||
/*Manually read the current switch state*/
|
||||
if(btn1.is_pressed){
|
||||
btn1.is_bypassed = ! btn1.is_bypassed;
|
||||
eeprom_write_byte((uint8_t *)ROM_BP1_ADR, btn1.is_bypassed);
|
||||
blink_bypass1();
|
||||
}
|
||||
if(btn2.is_pressed){
|
||||
btn2.is_bypassed = ! btn2.is_bypassed;
|
||||
eeprom_write_byte((uint8_t *)ROM_BP2_ADR, btn2.is_bypassed);
|
||||
blink_bypass2();
|
||||
}
|
||||
|
||||
if(btn1.is_bypassed){PORTB |= (1<<btn1.output_pin);}
|
||||
if(btn2.is_bypassed){PORTB |= (1<<btn2.output_pin);}
|
||||
|
||||
init_timer0();
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
init_prog();
|
||||
|
||||
while(1){
|
||||
update_button_output(&btn1);
|
||||
update_button_output(&btn2);
|
||||
|
||||
update_button_input(&btn1);
|
||||
update_button_input(&btn2);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ###############################
|
||||
* FUNCTION DEFs
|
||||
* ###############################
|
||||
*/
|
||||
|
||||
void inf_blink_test(){
|
||||
DDRB |= (1<<PB3);
|
||||
while(1){
|
||||
PORTB ^= (1<<PB3);
|
||||
_delay_ms(250);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Made heavy use of static inline functions to improve readability.
|
||||
|
||||
static inline void blink_bypass1(void)
|
||||
{
|
||||
for(uint8_t i = 0; i < BLINK_CNT; i++) {
|
||||
PORTB ^= (1<<PIN_BYPASS1);
|
||||
_delay_ms(BLINK_DELAY);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void blink_bypass2(void)
|
||||
{
|
||||
for(uint8_t i = 0; i < BLINK_CNT; i++) {
|
||||
PORTB ^= (1<<PIN_BYPASS2);
|
||||
_delay_ms(BLINK_DELAY);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ############################
|
||||
* BUTTON methods
|
||||
* ############################
|
||||
*/
|
||||
|
||||
/*This is kinda like our button constructor*/
|
||||
static void init_btn(btn_state *b, uint8_t input_pin, uint8_t output_pin)
|
||||
{
|
||||
b->is_long_pressed = 0;
|
||||
b->is_pressed = 0;
|
||||
b->is_bypassed = 0;
|
||||
b->pressed_ticks = 0;
|
||||
b->timer_enabled = 0;
|
||||
b->input_pin = input_pin;
|
||||
b->output_pin = output_pin;
|
||||
|
||||
/*Configure the buttons inputs and outputs*/
|
||||
DDRB &= ~(1<<b->input_pin);
|
||||
PORTB |= (1<<b->input_pin);
|
||||
|
||||
DDRB |= (1<<b->output_pin);
|
||||
PORTB &= ~(1<<b->output_pin);
|
||||
}
|
||||
|
||||
/*This is the fancy function to toggle output pins*/
|
||||
static void toggle_output(btn_state *b)
|
||||
{
|
||||
if(!b->is_bypassed){
|
||||
b->is_bypassed = 1;
|
||||
PORTB |= (1<<b->output_pin);
|
||||
}
|
||||
else{
|
||||
b->is_bypassed = 0;
|
||||
PORTB &= ~(1<<b->output_pin);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear_button_timer(btn_state *b)
|
||||
{
|
||||
b->timer_enabled = 0;
|
||||
b->is_long_pressed = 0;
|
||||
b->pressed_ticks = 0;
|
||||
}
|
||||
|
||||
static void start_button_timer(btn_state *b)
|
||||
{
|
||||
clear_button_timer(b);
|
||||
b->timer_enabled = 1;
|
||||
}
|
||||
|
||||
static void check_button_longpress(btn_state *b)
|
||||
{
|
||||
if(b->pressed_ticks >= LONG_PRESS_TICKS) {
|
||||
b->is_long_pressed = 1;
|
||||
b->timer_enabled = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void update_button_input(btn_state *b)
|
||||
{
|
||||
/*Check from the global debounced port input*/
|
||||
|
||||
/*check for pin HIGH*/
|
||||
if(debounced_state & (1<<b->input_pin)) {
|
||||
b->is_pressed = 0;
|
||||
}
|
||||
/*otherwise assume pin LOW*/
|
||||
else{
|
||||
b->is_pressed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void update_button_output(btn_state *b)
|
||||
{
|
||||
/*If the button is actually pressed.*/
|
||||
if(b->is_pressed){
|
||||
|
||||
/*If this is a new event.*/
|
||||
if(!b->is_long_pressed && !b->timer_enabled){
|
||||
/*Then start the timer and update the output*/
|
||||
toggle_output(b);
|
||||
start_button_timer(b);
|
||||
return;
|
||||
}
|
||||
|
||||
/*If the timer is already going.*/
|
||||
else if(b->timer_enabled){
|
||||
/*Then just check if it's hit the threshold.*/
|
||||
check_button_longpress(b);
|
||||
return;
|
||||
}
|
||||
|
||||
else{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*Else the button was realeased*/
|
||||
else if(!b->is_pressed){
|
||||
/*If the button was released on a long press.*/
|
||||
if(b->is_long_pressed){
|
||||
toggle_output(b);
|
||||
}
|
||||
clear_button_timer(b);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ############################
|
||||
* DEBOUNCING CODE
|
||||
* ############################
|
||||
*/
|
||||
|
||||
/*
|
||||
* INPUT: The port to check.
|
||||
* OUTPUT: None
|
||||
* DESCRIPTION: Updates the global debounced state. This function
|
||||
* should be called in a ISR a set rate using the hardware timer.
|
||||
*/
|
||||
static inline void debounce_switch() {
|
||||
uint8_t i, j;
|
||||
db_state[idx] = PINB & 0xFF;
|
||||
idx+=1;
|
||||
j = 0xff;
|
||||
/*Loop through a number of checks*/
|
||||
for(i = 0; i < MAX_CHECKS; i++) {
|
||||
j = j & db_state[i];
|
||||
}
|
||||
debounced_state = j;
|
||||
|
||||
if(idx >= MAX_CHECKS) {
|
||||
idx = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*Setup the timer0 on the AVR*/
|
||||
static inline void init_timer0() {
|
||||
/*Zero out the tick_count var*/
|
||||
tick_count = 0;
|
||||
|
||||
/*config to normal mode.*/
|
||||
TCCR0A = 0x00; //stop timer
|
||||
TCCR0B = 0x00; //zero timer
|
||||
|
||||
/*set prescaler*/
|
||||
//TCCR0B |= (1<<CS00)|(1<<CS02);
|
||||
TCCR0B |= (1<<CS01)|(1<<CS00);
|
||||
//TCCR0B |= (1<<CS01);
|
||||
|
||||
|
||||
/*Enable global interrupts*/
|
||||
sei();
|
||||
|
||||
/*Enabling timer0 interrupt*/
|
||||
TCNT0 = 0;
|
||||
TIMSK0 |= (1<<TOIE0);
|
||||
}
|
||||
|
||||
|
||||
//ISR(TIMER0_OVF_vect)
|
||||
|
||||
/*The interrupt service routine for the timer0*/
|
||||
ISR(TIM0_OVF_vect)
|
||||
{
|
||||
/*Disable global interrupts*/
|
||||
cli();
|
||||
|
||||
/*Update the tick_count*/
|
||||
if(btn1.timer_enabled && btn1.pressed_ticks <= UINT8_MAX){
|
||||
btn1.pressed_ticks += 1;
|
||||
}
|
||||
|
||||
if(btn2.timer_enabled && btn2.pressed_ticks <= UINT8_MAX){
|
||||
btn2.pressed_ticks += 1;
|
||||
}
|
||||
|
||||
/*Check the state of the switches*/
|
||||
debounce_switch();
|
||||
|
||||
/*Re-Enable global interrupts*/
|
||||
sei();
|
||||
}
|
||||
60
makefile
60
makefile
|
|
@ -1,60 +0,0 @@
|
|||
# Author: Jake Goodwin
|
||||
# DATE: 2023-12-07
|
||||
# Descripion: A simple makefile for building and flashing hex files
|
||||
|
||||
# Makefile for ATtiny13A
|
||||
|
||||
# Compiler
|
||||
CC = avr-gcc
|
||||
|
||||
#Default cpu frequency is 9.8Mhz, 4.8 gives us less power consumption
|
||||
#F_CPU = 4800000UL
|
||||
F_CPU = 9800000UL
|
||||
MCU = attiny13a
|
||||
|
||||
# Flags
|
||||
CFLAGS = -g -Os -mmcu=$(MCU) -DF_CPU=$(F_CPU)
|
||||
LDFLAGS = -Wl,-Map,$(TARGET).map
|
||||
|
||||
# Source files
|
||||
SRC = main.c
|
||||
|
||||
# Object files
|
||||
OBJ = $(SRC:.c=.o)
|
||||
|
||||
# Target HEX file
|
||||
TARGET = main
|
||||
|
||||
# Flashing options
|
||||
AVRDUDE = avrdude
|
||||
AVRDUDE_PROGRAMMER = -c usbasp
|
||||
BUADRATE = -B 125kHz
|
||||
AVRDUDE_PORT = -P /dev/ttyUSB0
|
||||
AVRDUDE_MCU = -p $(MCU)
|
||||
|
||||
|
||||
# Compile and generate HEX file
|
||||
all: $(TARGET).hex
|
||||
|
||||
$(TARGET).hex: $(TARGET).elf
|
||||
avr-objcopy -j .text -j .data -O ihex $< $@
|
||||
|
||||
$(TARGET).elf: $(OBJ)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
size: $(TARGET).o
|
||||
avr-size --mcu=$(MCU) -t ./$(TARGET).o
|
||||
flash_defualt_fuses:
|
||||
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U lfuse:w:0x6A:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
|
||||
flash_slow_fuse:
|
||||
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U lfuse:w:0x69:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
|
||||
flash: $(TARGET).hex
|
||||
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U flash:w:$(TARGET).hex:i
|
||||
|
||||
clean:
|
||||
rm -f $(OBJ) $(TARGET).elf $(TARGET).hex $(TARGET).map
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
:1000000009C016C015C067C113C012C011C010C00E
|
||||
:100010000FC00EC011241FBECFE9CDBF20E0A0E667
|
||||
:10002000B0E001C01D92A637B207E1F79ED1DFC153
|
||||
:10003000E7CFFC0180811182887F877F8083628384
|
||||
:10004000438397B321E030E0A90101C0440F6A95D2
|
||||
:10005000EAF7842F8095892387BB48B3C9010280C2
|
||||
:1000600002C0880F991F0A94E2F7842B88BB47B31C
|
||||
:10007000C901038002C0880F991F0A94E2F7842BFC
|
||||
:1000800087BB88B3038002C0220F331F0A94E2F7B4
|
||||
:100090002095282328BB0895FC019081338191FD90
|
||||
:1000A0000BC09260908328B381E090E001C0880F7C
|
||||
:1000B0003A95EAF7822B0BC09D7F908328B381E0AD
|
||||
:1000C00090E001C0880F3A95EAF78095822388BBBB
|
||||
:1000D0000895CF93DF93EC01888180FF13C0982FA0
|
||||
:1000E0009C7039F4CE01D8DF888119828B7F8860BB
|
||||
:1000F00007C083FF10C099819C3368F08460877FBC
|
||||
:10010000888309C082FF02C0CE01C6DF8881877F55
|
||||
:100110008B7F88831982DF91CF9108958FEF809331
|
||||
:10012000750041E062E081E790E083DF44E063E056
|
||||
:100130008AE690E07EDF8FE697E10197F1F700C055
|
||||
:100140000000E199FECF80E090E03DD18A3A99F439
|
||||
:1001500081E090E038D19091710080FB91F990930B
|
||||
:10016000710082E090E02FD190916A0080FB91F9BC
|
||||
:1001700090936A000CC06AEA80E090E02BD160E0C6
|
||||
:1001800081E090E027D160E082E090E023D186B367
|
||||
:1001900090E00090730002C0959587950A94E2F76D
|
||||
:1001A0008170992721E082272091710080FB20F93E
|
||||
:1001B0002093710086B390E000906C0002C095958A
|
||||
:1001C00087950A94E2F78170992731E0832790910F
|
||||
:1001D0006A0080FB90F990936A0020FD05C0809131
|
||||
:1001E0006A0080FF3AC01DC021FB662760F981E0EC
|
||||
:1001F000682760FB21F92093710081E090E0EAD04C
|
||||
:1002000084E022E098B3922798BB4FEF9DEE32E056
|
||||
:10021000415090403040E1F700C00000815091F71C
|
||||
:10022000DECF81FB662760F991E0692760FB81F9E9
|
||||
:1002300080936A0082E090E0CDD084E020E198B322
|
||||
:10024000922798BB4FEF9DEE32E0415090403040F6
|
||||
:10025000E1F700C00000815091F78091710081FFAB
|
||||
:100260000CC028B381E090E00090740002C0880FB9
|
||||
:10027000991F0A94E2F7822B88BB80916A0081FF64
|
||||
:100280000CC028B381E090E000906D0002C0880FA0
|
||||
:10029000991F0A94E2F7822B88BB10926F0010928C
|
||||
:1002A0006E001FBC13BE83B7836083BF789412BEF9
|
||||
:1002B00089B7826089BF0895BB9A98E088B389277F
|
||||
:1002C00088BB2FE739EA83E0215030408040E1F7D6
|
||||
:1002D00000C00000F3CF1F920F920FB60F921124AF
|
||||
:1002E0002F933F938F939F93EF93FF93F894809175
|
||||
:1002F000710083FF05C0809172008F5F8093720050
|
||||
:1003000080916A0083FF05C080916B008F5F8093AE
|
||||
:100310006B00E0917000F0E086B3E05AFF4F8083FD
|
||||
:10032000809170008F5F8093700080E090E02FEFED
|
||||
:10033000FC01E05AFF4F3081232301968A3091055A
|
||||
:10034000B9F720937500809170008A3010F01092F8
|
||||
:1003500070007894FF91EF919F918F913F912F9131
|
||||
:100360000F900FBE0F901F901895D8DE81E790E098
|
||||
:10037000B0DE8AE690E0ADDE2091750030E00090BE
|
||||
:10038000730002C0359527950A94E2F780917100B9
|
||||
:1003900020FF02C08E7F01C0816080937100209198
|
||||
:1003A000750030E000906C0002C0359527950A94E6
|
||||
:1003B000E2F780916A0020FF02C08E7F01C0816059
|
||||
:1003C00080936A00D3CFE199FECF8EBBE09A992744
|
||||
:1003D0008DB30895262FE199FECF1CBA8EBB2DBB9D
|
||||
:1003E0000FB6F894E29AE19A0FBE01960895F89438
|
||||
:0203F000FFCF3D
|
||||
:00000001FF
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
:1000000009C016C015C067C113C012C011C010C00E
|
||||
:100010000FC00EC011241FBECFE9CDBF20E0A0E667
|
||||
:10002000B0E001C01D92A637B207E1F79ED1DFC153
|
||||
:10003000E7CFFC0180811182887F877F8083628384
|
||||
:10004000438397B321E030E0A90101C0440F6A95D2
|
||||
:10005000EAF7842F8095892387BB48B3C9010280C2
|
||||
:1000600002C0880F991F0A94E2F7842B88BB47B31C
|
||||
:10007000C901038002C0880F991F0A94E2F7842BFC
|
||||
:1000800087BB88B3038002C0220F331F0A94E2F7B4
|
||||
:100090002095282328BB0895FC019081338191FD90
|
||||
:1000A0000BC09260908328B381E090E001C0880F7C
|
||||
:1000B0003A95EAF7822B0BC09D7F908328B381E0AD
|
||||
:1000C00090E001C0880F3A95EAF78095822388BBBB
|
||||
:1000D0000895CF93DF93EC01888180FF13C0982FA0
|
||||
:1000E0009C7039F4CE01D8DF888119828B7F8860BB
|
||||
:1000F00007C083FF10C099819C3368F08460877FBC
|
||||
:10010000888309C082FF02C0CE01C6DF8881877F55
|
||||
:100110008B7F88831982DF91CF9108958FEF809331
|
||||
:10012000750041E062E081E790E083DF44E063E056
|
||||
:100130008AE690E07EDF89ED9FE20197F1F700C04B
|
||||
:100140000000E199FECF80E090E03DD18A3A99F439
|
||||
:1001500081E090E038D19091710080FB91F990930B
|
||||
:10016000710082E090E02FD190916A0080FB91F9BC
|
||||
:1001700090936A000CC06AEA80E090E02BD160E0C6
|
||||
:1001800081E090E027D160E082E090E023D186B367
|
||||
:1001900090E00090730002C0959587950A94E2F76D
|
||||
:1001A0008170992721E082272091710080FB20F93E
|
||||
:1001B0002093710086B390E000906C0002C095958A
|
||||
:1001C00087950A94E2F78170992731E0832790910F
|
||||
:1001D0006A0080FB90F990936A0020FD05C0809131
|
||||
:1001E0006A0080FF3AC01DC021FB662760F981E0EC
|
||||
:1001F000682760FB21F92093710081E090E0EAD04C
|
||||
:1002000084E022E098B3922798BB4FE39BEF35E060
|
||||
:10021000415090403040E1F700C00000815091F71C
|
||||
:10022000DECF81FB662760F991E0692760FB81F9E9
|
||||
:1002300080936A0082E090E0CDD084E020E198B322
|
||||
:10024000922798BB4FE39BEF35E041509040304000
|
||||
:10025000E1F700C00000815091F78091710081FFAB
|
||||
:100260000CC028B381E090E00090740002C0880FB9
|
||||
:10027000991F0A94E2F7822B88BB80916A0081FF64
|
||||
:100280000CC028B381E090E000906D0002C0880FA0
|
||||
:10029000991F0A94E2F7822B88BB10926F0010928C
|
||||
:1002A0006E001FBC13BE83B7836083BF789412BEF9
|
||||
:1002B00089B7826089BF0895BB9A98E088B389277F
|
||||
:1002C00088BB2FE03AE787E0215030408040E1F7DB
|
||||
:1002D00000C00000F3CF1F920F920FB60F921124AF
|
||||
:1002E0002F933F938F939F93EF93FF93F894809175
|
||||
:1002F000710083FF05C0809172008F5F8093720050
|
||||
:1003000080916A0083FF05C080916B008F5F8093AE
|
||||
:100310006B00E0917000F0E086B3E05AFF4F8083FD
|
||||
:10032000809170008F5F8093700080E090E02FEFED
|
||||
:10033000FC01E05AFF4F3081232301968A3091055A
|
||||
:10034000B9F720937500809170008A3010F01092F8
|
||||
:1003500070007894FF91EF919F918F913F912F9131
|
||||
:100360000F900FBE0F901F901895D8DE81E790E098
|
||||
:10037000B0DE8AE690E0ADDE2091750030E00090BE
|
||||
:10038000730002C0359527950A94E2F780917100B9
|
||||
:1003900020FF02C08E7F01C0816080937100209198
|
||||
:1003A000750030E000906C0002C0359527950A94E6
|
||||
:1003B000E2F780916A0020FF02C08E7F01C0816059
|
||||
:1003C00080936A00D3CFE199FECF8EBBE09A992744
|
||||
:1003D0008DB30895262FE199FECF1CBA8EBB2DBB9D
|
||||
:1003E0000FB6F894E29AE19A0FBE01960895F89438
|
||||
:0203F000FFCF3D
|
||||
:00000001FF
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
:1000000009C016C015C067C113C012C011C010C00E
|
||||
:100010000FC00EC011241FBECFE9CDBF20E0A0E667
|
||||
:10002000B0E001C01D92A637B207E1F79ED1DFC153
|
||||
:10003000E7CFFC0180811182887F877F8083628384
|
||||
:10004000438397B321E030E0A90101C0440F6A95D2
|
||||
:10005000EAF7842F8095892387BB48B3C9010280C2
|
||||
:1000600002C0880F991F0A94E2F7842B88BB47B31C
|
||||
:10007000C901038002C0880F991F0A94E2F7842BFC
|
||||
:1000800087BB88B3038002C0220F331F0A94E2F7B4
|
||||
:100090002095282328BB0895FC019081338191FD90
|
||||
:1000A0000BC09260908328B381E090E001C0880F7C
|
||||
:1000B0003A95EAF7822B0BC09D7F908328B381E0AD
|
||||
:1000C00090E001C0880F3A95EAF78095822388BBBB
|
||||
:1000D0000895CF93DF93EC01888180FF13C0982FA0
|
||||
:1000E0009C7039F4CE01D8DF888119828B7F8860BB
|
||||
:1000F00007C083FF10C099819C3368F08460877FBC
|
||||
:10010000888309C082FF02C0CE01C6DF8881877F55
|
||||
:100110008B7F88831982DF91CF9108958FEF809331
|
||||
:10012000750041E062E081E790E083DF44E063E056
|
||||
:100130008AE690E07EDF8FE697E10197F1F700C055
|
||||
:100140000000E199FECF80E090E03DD18A3A99F439
|
||||
:1001500081E090E038D19091710080FB91F990930B
|
||||
:10016000710082E090E02FD190916A0080FB91F9BC
|
||||
:1001700090936A000CC06AEA80E090E02BD160E0C6
|
||||
:1001800081E090E027D160E082E090E023D186B367
|
||||
:1001900090E00090730002C0959587950A94E2F76D
|
||||
:1001A0008170992721E082272091710080FB20F93E
|
||||
:1001B0002093710086B390E000906C0002C095958A
|
||||
:1001C00087950A94E2F78170992731E0832790910F
|
||||
:1001D0006A0080FB90F990936A0020FD05C0809131
|
||||
:1001E0006A0080FF3AC01DC021FB662760F981E0EC
|
||||
:1001F000682760FB21F92093710081E090E0EAD04C
|
||||
:1002000084E022E098B3922798BB4FEF9DEE32E056
|
||||
:10021000415090403040E1F700C00000815091F71C
|
||||
:10022000DECF81FB662760F991E0692760FB81F9E9
|
||||
:1002300080936A0082E090E0CDD084E020E198B322
|
||||
:10024000922798BB4FEF9DEE32E0415090403040F6
|
||||
:10025000E1F700C00000815091F78091710081FFAB
|
||||
:100260000CC028B381E090E00090740002C0880FB9
|
||||
:10027000991F0A94E2F7822B88BB80916A0081FF64
|
||||
:100280000CC028B381E090E000906D0002C0880FA0
|
||||
:10029000991F0A94E2F7822B88BB10926F0010928C
|
||||
:1002A0006E001FBC13BE83B7836083BF789412BEF9
|
||||
:1002B00089B7826089BF0895BB9A98E088B389277F
|
||||
:1002C00088BB2FE739EA83E0215030408040E1F7D6
|
||||
:1002D00000C00000F3CF1F920F920FB60F921124AF
|
||||
:1002E0002F933F938F939F93EF93FF93F894809175
|
||||
:1002F000710083FF05C0809172008F5F8093720050
|
||||
:1003000080916A0083FF05C080916B008F5F8093AE
|
||||
:100310006B00E0917000F0E086B3E05AFF4F8083FD
|
||||
:10032000809170008F5F8093700080E090E02FEFED
|
||||
:10033000FC01E05AFF4F3081232301968A3091055A
|
||||
:10034000B9F720937500809170008A3010F01092F8
|
||||
:1003500070007894FF91EF919F918F913F912F9131
|
||||
:100360000F900FBE0F901F901895D8DE81E790E098
|
||||
:10037000B0DE8AE690E0ADDE2091750030E00090BE
|
||||
:10038000730002C0359527950A94E2F780917100B9
|
||||
:1003900020FF02C08E7F01C0816080937100209198
|
||||
:1003A000750030E000906C0002C0359527950A94E6
|
||||
:1003B000E2F780916A0020FF02C08E7F01C0816059
|
||||
:1003C00080936A00D3CFE199FECF8EBBE09A992744
|
||||
:1003D0008DB30895262FE199FECF1CBA8EBB2DBB9D
|
||||
:1003E0000FB6F894E29AE19A0FBE01960895F89438
|
||||
:0203F000FFCF3D
|
||||
:00000001FF
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
:1000000009C016C015C067C113C012C011C010C00E
|
||||
:100010000FC00EC011241FBECFE9CDBF20E0A0E667
|
||||
:10002000B0E001C01D92A637B207E1F79ED1DFC153
|
||||
:10003000E7CFFC0180811182887F877F8083628384
|
||||
:10004000438397B321E030E0A90101C0440F6A95D2
|
||||
:10005000EAF7842F8095892387BB48B3C9010280C2
|
||||
:1000600002C0880F991F0A94E2F7842B88BB47B31C
|
||||
:10007000C901038002C0880F991F0A94E2F7842BFC
|
||||
:1000800087BB88B3038002C0220F331F0A94E2F7B4
|
||||
:100090002095282328BB0895FC019081338191FD90
|
||||
:1000A0000BC09260908328B381E090E001C0880F7C
|
||||
:1000B0003A95EAF7822B0BC09D7F908328B381E0AD
|
||||
:1000C00090E001C0880F3A95EAF78095822388BBBB
|
||||
:1000D0000895CF93DF93EC01888180FF13C0982FA0
|
||||
:1000E0009C7039F4CE01D8DF888119828B7F8860BB
|
||||
:1000F00007C083FF10C099819C3368F08460877FBC
|
||||
:10010000888309C082FF02C0CE01C6DF8881877F55
|
||||
:100110008B7F88831982DF91CF9108958FEF809331
|
||||
:10012000750041E062E081E790E083DF44E063E056
|
||||
:100130008AE690E07EDF89ED9FE20197F1F700C04B
|
||||
:100140000000E199FECF80E090E03DD18A3A99F439
|
||||
:1001500081E090E038D19091710080FB91F990930B
|
||||
:10016000710082E090E02FD190916A0080FB91F9BC
|
||||
:1001700090936A000CC06AEA80E090E02BD160E0C6
|
||||
:1001800081E090E027D160E082E090E023D186B367
|
||||
:1001900090E00090730002C0959587950A94E2F76D
|
||||
:1001A0008170992721E082272091710080FB20F93E
|
||||
:1001B0002093710086B390E000906C0002C095958A
|
||||
:1001C00087950A94E2F78170992731E0832790910F
|
||||
:1001D0006A0080FB90F990936A0020FD05C0809131
|
||||
:1001E0006A0080FF3AC01DC021FB662760F981E0EC
|
||||
:1001F000682760FB21F92093710081E090E0EAD04C
|
||||
:1002000084E022E098B3922798BB4FE39BEF35E060
|
||||
:10021000415090403040E1F700C00000815091F71C
|
||||
:10022000DECF81FB662760F991E0692760FB81F9E9
|
||||
:1002300080936A0082E090E0CDD084E020E198B322
|
||||
:10024000922798BB4FE39BEF35E041509040304000
|
||||
:10025000E1F700C00000815091F78091710081FFAB
|
||||
:100260000CC028B381E090E00090740002C0880FB9
|
||||
:10027000991F0A94E2F7822B88BB80916A0081FF64
|
||||
:100280000CC028B381E090E000906D0002C0880FA0
|
||||
:10029000991F0A94E2F7822B88BB10926F0010928C
|
||||
:1002A0006E001FBC13BE83B7836083BF789412BEF9
|
||||
:1002B00089B7826089BF0895BB9A98E088B389277F
|
||||
:1002C00088BB2FE03AE787E0215030408040E1F7DB
|
||||
:1002D00000C00000F3CF1F920F920FB60F921124AF
|
||||
:1002E0002F933F938F939F93EF93FF93F894809175
|
||||
:1002F000710083FF05C0809172008F5F8093720050
|
||||
:1003000080916A0083FF05C080916B008F5F8093AE
|
||||
:100310006B00E0917000F0E086B3E05AFF4F8083FD
|
||||
:10032000809170008F5F8093700080E090E02FEFED
|
||||
:10033000FC01E05AFF4F3081232301968A3091055A
|
||||
:10034000B9F720937500809170008A3010F01092F8
|
||||
:1003500070007894FF91EF919F918F913F912F9131
|
||||
:100360000F900FBE0F901F901895D8DE81E790E098
|
||||
:10037000B0DE8AE690E0ADDE2091750030E00090BE
|
||||
:10038000730002C0359527950A94E2F780917100B9
|
||||
:1003900020FF02C08E7F01C0816080937100209198
|
||||
:1003A000750030E000906C0002C0359527950A94E6
|
||||
:1003B000E2F780916A0020FF02C08E7F01C0816059
|
||||
:1003C00080936A00D3CFE199FECF8EBBE09A992744
|
||||
:1003D0008DB30895262FE199FECF1CBA8EBB2DBB9D
|
||||
:1003E0000FB6F894E29AE19A0FBE01960895F89438
|
||||
:0203F000FFCF3D
|
||||
:00000001FF
|
||||
BIN
zadig-2.8.exe
BIN
zadig-2.8.exe
Binary file not shown.
Loading…
Add table
Reference in a new issue