aboutsummaryrefslogtreecommitdiff
path: root/forth/elegoo/main.fs
blob: bfbf81e8ac471d35cc9769dc27be4d653b0cf206 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-io
marker -io \ define ports

$0023 constant PB
$0023 constant pinb
$0024 constant ddrb
$0025 constant portb

$0026 constant PC
$0026 constant pinc
$0027 constant ddrc
$0028 constant portc

$0029 constant PD
$0029 constant pind
$002a constant ddrd
$002b constant portd

-init
marker init

: bv ( bit -- mask ) 1 swap lshift ;
: pin ( bit base-addr -- ) bv swap 2dup 1+ mclr ;
: port ( bit base-addr -- ) bv swap 1+ 2dup mset 1+ ;
: set ( mask addr -- ) mset ;
: clr ( mask addr -- ) mclr ;
: init
  PB #3 port 2constant servo
  PB #5 port 2constant led
  PD #2 pin 2constant sr
  PD #3 pin 2constant sc
  PD #4 pin 2constant sl
;
: get ( mask addr -- bool ) c@ invert and 0= ;