summaryrefslogtreecommitdiff
path: root/electronics/asm
diff options
context:
space:
mode:
Diffstat (limited to 'electronics/asm')
-rw-r--r--electronics/asm/1.asm21
-rw-r--r--electronics/asm/1.err0
-rw-r--r--electronics/asm/2.asm23
-rw-r--r--electronics/asm/2.err0
-rw-r--r--electronics/asm/3.asm31
-rw-r--r--electronics/asm/3.err0
-rw-r--r--electronics/asm/5.asm45
-rw-r--r--electronics/asm/5.err0
-rw-r--r--electronics/asm/7.asm41
-rw-r--r--electronics/asm/7.err0
-rw-r--r--electronics/asm/Makefile4
-rw-r--r--electronics/asm/TODO2
12 files changed, 163 insertions, 4 deletions
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
+