;----------------------------------------------------------------------
; MACROS
-; debug* and ifbit[01] were here but they're cruft, really,
-; so I have removed them -iwj
+;----------------------------------------------------------------------
+; PINSPECS stuff
+;
+; A PINSPEC is a constant 0x<bit><port> where <port> is a b c d e
+; and <port> is 0 1 2 3 4 5 6 7. Generally p<picno>_<subsystem>_<pin>
+; are equ'd for this.
+
+ radix hex
+p0_cdu_enable equ 5b
+p0_rs232_fcin equ 4b
+p0_booster_shutdown equ 2b
+p0_booster_overload equ 1b
+p0_booster_userfault equ 0b
+p0_spare2 equ 6d
+p0_spare1 equ 5d
+p0_rs232_fcout equ 5c
+pall_perpicled equ 2d
+p0_spare0 equ 0a
+p0_booster_dirn equ 0c
+p0_booster_pwm equ 1c
+ radix dec
+
+pin_z macro pinspec
+ bs_f TRISA + (TRISB-TRISA)*((pinspec-0xa) & 15), pinspec >> 4
+ endm
+
+pin_nz macro pinspec
+ bc_f TRISA + (TRISB-TRISA)*((pinspec-0xa) & 15), pinspec >> 4
+ endm
+
+pin_vh macro pinspec
+ bs_f LATA + (LATB-LATA)*((pinspec-0xa) & 15), pinspec >> 4
+ endm
+
+pin_vl macro pinspec
+ bc_f LATA + (LATB-LATA)*((pinspec-0xa) & 15), pinspec >> 4
+ endm
+
+pin_h macro pinspec
+ pin_vh pinspec
+ pin_nz pinspec
+ endm
+
+pin_l macro pinspec
+ pin_vl pinspec
+ pin_nz pinspec
+ endm
+
+pin_ifh macro pinspec
+ bt_f_if1 PORTA + (PORTB-PORTA)*((pinspec-0xa) & 15), pinspec >> 4
+ endm
+
+pin_ifl macro pinspec
+ bt_f_if0 PORTA + (PORTB-PORTA)*((pinspec-0xa) & 15), pinspec >> 4
+ endm
;----------------------------------------------------------------------