diff options
-rw-r--r-- | comp/lucas-standen-NEA/writeup/coverpage.ps | 12 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/writeup/questions-for-amy.ps | 12 | ||||
-rw-r--r-- | comp/work/37/Makefile | 5 | ||||
-rwxr-xr-x | comp/work/37/rpn | bin | 0 -> 19688 bytes | |||
-rw-r--r-- | comp/work/37/rpn.c | 73 | ||||
-rw-r--r-- | comp/work/37/stack.c | 42 | ||||
-rw-r--r-- | comp/work/37/stack.h | 10 | ||||
-rw-r--r-- | electronics/asm/1.asm | 21 | ||||
-rw-r--r-- | electronics/asm/1.err | 0 | ||||
-rw-r--r-- | electronics/asm/2.asm | 23 | ||||
-rw-r--r-- | electronics/asm/2.err | 0 | ||||
-rw-r--r-- | electronics/asm/3.asm | 31 | ||||
-rw-r--r-- | electronics/asm/3.err | 0 | ||||
-rw-r--r-- | electronics/asm/5.asm | 45 | ||||
-rw-r--r-- | electronics/asm/5.err | 0 | ||||
-rw-r--r-- | electronics/asm/7.asm | 41 | ||||
-rw-r--r-- | electronics/asm/7.err | 0 | ||||
-rw-r--r-- | electronics/asm/Makefile | 4 | ||||
-rw-r--r-- | electronics/asm/TODO | 2 |
19 files changed, 305 insertions, 16 deletions
diff --git a/comp/lucas-standen-NEA/writeup/coverpage.ps b/comp/lucas-standen-NEA/writeup/coverpage.ps index d4cc359..c947b4f 100644 --- a/comp/lucas-standen-NEA/writeup/coverpage.ps +++ b/comp/lucas-standen-NEA/writeup/coverpage.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.23.0 -%%CreationDate: Fri Aug 30 13:51:17 2024 +%%CreationDate: Sat Oct 5 20:44:11 2024 %%DocumentNeededResources: font Times-Bold %%+ font Times-Italic %%+ font Times-Roman @@ -14,7 +14,7 @@ %%LanguageLevel: 2 %%Pages: 19 %%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () +%%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait %%EndComments %%BeginDefaults @@ -233,18 +233,18 @@ setpacking %%EndProlog %%BeginSetup %%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice +<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice %%EndFeature %%IncludeResource: font Times-Bold %%IncludeResource: font Times-Italic %%IncludeResource: font Times-Roman %%IncludeResource: font Times-BoldItalic grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef +def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron +/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O diff --git a/comp/lucas-standen-NEA/writeup/questions-for-amy.ps b/comp/lucas-standen-NEA/writeup/questions-for-amy.ps index 4332f59..201ccf4 100644 --- a/comp/lucas-standen-NEA/writeup/questions-for-amy.ps +++ b/comp/lucas-standen-NEA/writeup/questions-for-amy.ps @@ -1,12 +1,12 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.23.0 -%%CreationDate: Fri Aug 30 13:51:18 2024 +%%CreationDate: Sat Oct 5 20:44:12 2024 %%DocumentNeededResources: font Times-Bold %%+ font Times-Roman %%DocumentSuppliedResources: procset grops 1.23 0 %%Pages: 1 %%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () +%%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait %%EndComments %%BeginDefaults @@ -225,16 +225,16 @@ setpacking %%EndProlog %%BeginSetup %%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice +<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice %%EndFeature %%IncludeResource: font Times-Bold %%IncludeResource: font Times-Roman grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef +def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron +/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O diff --git a/comp/work/37/Makefile b/comp/work/37/Makefile new file mode 100644 index 0000000..01e2722 --- /dev/null +++ b/comp/work/37/Makefile @@ -0,0 +1,5 @@ +rpn: rpn.c stack.c + cc stack.c -c -o stack.o + cc rpn.c stack.o -o rpn -lm -ggdb +clean: + rm -rf rpn stack.o diff --git a/comp/work/37/rpn b/comp/work/37/rpn Binary files differnew file mode 100755 index 0000000..e087f49 --- /dev/null +++ b/comp/work/37/rpn diff --git a/comp/work/37/rpn.c b/comp/work/37/rpn.c new file mode 100644 index 0000000..aefd971 --- /dev/null +++ b/comp/work/37/rpn.c @@ -0,0 +1,73 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include <math.h> + +#include "stack.h" + +int main(int argc, char **argv){ + stack *s = initstack(0, 64); + char in[128] = {0}; + + if (argc > 1){ + for (int i = 1; i < argc; i++){ + strcat(in, argv[i]); + strcat(in, " "); + } + } else fgets(in, 128, stdin); + + for (int i = 0; i < 128; i++) if (in[i] == '\n') in[i] = '\0'; + fflush(stdin); + + int r; + + int a; + int b; + + char *tok = strtok(in, " "); + while (tok != NULL){ + switch (tok[0]) { + case '+': + a = s->pop(s); + b = s->pop(s); + s->push(s, b+a); + break; + case '-': + a = s->pop(s); + b = s->pop(s); + s->push(s, b-a); + break; + case '*': + a = s->pop(s); + b = s->pop(s); + s->push(s, b*a); + break; + case '/': + a = s->pop(s); + b = s->pop(s); + s->push(s, b/a); + break; + case '^': + a = s->pop(s); + b = s->pop(s); + s->push(s, pow(b, a)); + break; + case '.': + r = s->pop(s); + printf("%d\n", r); + break; + default: + s->push(s, atoi(tok)); + break; + } + tok = strtok(NULL, " "); + if (tok == NULL){ + r = s->pop(s); + printf("%d\n", r); + break; + } + } + s->free(s); + return 0; +} diff --git a/comp/work/37/stack.c b/comp/work/37/stack.c new file mode 100644 index 0000000..3c1ab19 --- /dev/null +++ b/comp/work/37/stack.c @@ -0,0 +1,42 @@ +#include <stddef.h> +#include <stdlib.h> + +typedef struct stack { + int *sp; + int value; + int (*pop)(struct stack *stack); + void (*push)(struct stack *stack, int value); + void (*free)(struct stack *strack); + int *stack; +} stack; + +int pop(stack *stack){ + stack->sp -= sizeof(int); + int i = *stack->sp; + *stack->sp = stack->value; + return i; +} + +void push(stack *stack, int value){ + *stack->sp = value; + stack->sp += sizeof(int); +} + +void deinitstack(stack *stack){ + free(stack->stack); + free(stack); + stack = NULL; +} + +stack *initstack(int value, size_t size){ + stack *s = malloc(sizeof(stack)); + s->stack = calloc(0, size*sizeof(int)); + s->sp = s->stack; + s->value = value; + s->pop = &pop; + s->push = &push; + s->free = &deinitstack; + + return s; +} + diff --git a/comp/work/37/stack.h b/comp/work/37/stack.h new file mode 100644 index 0000000..03390ba --- /dev/null +++ b/comp/work/37/stack.h @@ -0,0 +1,10 @@ +typedef struct stack { + int *sp; + int value; + int (*pop)(struct stack *stack); + void (*push)(struct stack *stack, int value); + void (*free)(struct stack *stack); + int *stack; +} stack; + +stack *initstack(int value, size_t size); diff --git a/electronics/asm/1.asm b/electronics/asm/1.asm new file mode 100644 index 0000000..70eaa99 --- /dev/null +++ b/electronics/asm/1.asm @@ -0,0 +1,21 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + goto main +main: + movlw b'11111111' + movwf PORTB + call wait1000ms + call wait1000ms + movlw b'00000000' + movwf PORTB + call wait1000ms + goto main + END ; ends the program diff --git a/electronics/asm/1.err b/electronics/asm/1.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/1.err diff --git a/electronics/asm/2.asm b/electronics/asm/2.asm new file mode 100644 index 0000000..2dafe9e --- /dev/null +++ b/electronics/asm/2.asm @@ -0,0 +1,23 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + goto main + +main: + movlw b'00000111' + movwf PORTB + call wait1000ms + + movlw b'11100000' + movwf PORTB + call wait1000ms + + goto main + END ; ends the program diff --git a/electronics/asm/2.err b/electronics/asm/2.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/2.err diff --git a/electronics/asm/3.asm b/electronics/asm/3.asm new file mode 100644 index 0000000..9182e8d --- /dev/null +++ b/electronics/asm/3.asm @@ -0,0 +1,31 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + goto main + +main: + btfsc PORTA, 0 + goto flashled + goto main + +flashled: + movlw b'11111111' + movwf PORTB + call wait1000ms + call wait1000ms + movlw b'00000000' + movwf PORTB + call wait1000ms + + btfsc PORTA, 0 + goto flashled + goto main + + END ; ends the program diff --git a/electronics/asm/3.err b/electronics/asm/3.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/3.err diff --git a/electronics/asm/5.asm b/electronics/asm/5.asm new file mode 100644 index 0000000..5455ded --- /dev/null +++ b/electronics/asm/5.asm @@ -0,0 +1,45 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + goto main + +main: + btfsc PORTA, 0 + goto led0 + + btfsc PORTA, 1 + goto led1 + + btfsc PORTA, 2 + goto led2 + + call wait1000ms + call wait1000ms + + movlw b'00000000' + movwf PORTB + goto main + +led0: + movlw b'00000001' + movwf PORTB + goto main + +led1: + movlw b'00000010' + movwf PORTB + goto main + +led2: + movlw b'00000100' + movwf PORTB + goto main + + end ; ends the program diff --git a/electronics/asm/5.err b/electronics/asm/5.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/5.err diff --git a/electronics/asm/7.asm b/electronics/asm/7.asm new file mode 100644 index 0000000..4d7585c --- /dev/null +++ b/electronics/asm/7.asm @@ -0,0 +1,41 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + + VARA equ B20 + VARB equ B21 + + goto main +main: + btfsc PORTA, 0 + incf VARA, 0 + + btfsc PORTA, 1 + goto NEXTVAR + + goto main + +NEXTVAR: + btfsc PORTA, 0 + incf VARB, 0 + + btfsc PORTA, 1 + goto ADDITION + + goto NEXTVAR + +ADDITION: + movlw 0 + addwf VARA, 0 + addwf VARB, 0 + + movwf PORTB + + END ; ends the program diff --git a/electronics/asm/7.err b/electronics/asm/7.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/7.err diff --git a/electronics/asm/Makefile b/electronics/asm/Makefile deleted file mode 100644 index 095d4e9..0000000 --- a/electronics/asm/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -test: test.asm - wjecasm -c/dev/ttyUSB0 test.asm -clean: - rm -rf *.err diff --git a/electronics/asm/TODO b/electronics/asm/TODO new file mode 100644 index 0000000..459236b --- /dev/null +++ b/electronics/asm/TODO @@ -0,0 +1,2 @@ +fix the last one, it doesnt work + |