bulkres-select.partlist
bulkres.bom
divider-table.txt
-flasher.lst
-flasher.hex
-flasher.cod
-flash-all.lst
-flash-all.hex
-flash-all.cod
reversers.net
reversers.net-info
reversers.net-spec
--- /dev/null
+; -*- fundamental -*-
+
+ include /usr/share/gputils/header/p18f458.inc
+
+; __config _CONFIG1L, 0xff
+ __config _CONFIG1H, _OSCS_OFF_1H & _ECIO_OSC_1H
+ __config _CONFIG2L, _BOR_ON_2L & _PWRT_ON_2L & _BORV_45_2L
+ __config _CONFIG2H, _WDT_OFF_2H
+; __config _CONFIG3L, 0xff
+; __config _CONFIG3H, 0xff
+ __config _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVR_ON_4L
+; __config _CONFIG4H, 0xff
+ __config _CONFIG5L, 0xff
+ __config _CONFIG5H, 0xff
+ __config _CONFIG6L, 0xff
+ __config _CONFIG6H, 0xff
+ __config _CONFIG7L, 0xff
+ __config _CONFIG7H, 0xff
+
+ end
--- /dev/null
+*.hex
+*.cod
+*.lst
--- /dev/null
+TARGETS= config.hex \
+ flasher.hex copybits.hex \
+ flasher-full.hex copybits-full.hex
+
+include ../pic.make
+
+clean: pic-clean
+
+%-full.hex: %.o config.o
+ $(LINK)
--- /dev/null
+; -*- fundamental -*-
+
+ include /usr/share/gputils/header/p18f458.inc
+
+; __config _CONFIG1L, 0xff
+ __config _CONFIG1H, _OSCS_OFF_1H & _ECIO_OSC_1H
+ __config _CONFIG2L, _BOR_ON_2L & _PWRT_ON_2L & _BORV_45_2L
+ __config _CONFIG2H, _WDT_OFF_2H
+; __config _CONFIG3L, 0xff
+; __config _CONFIG3H, 0xff
+ __config _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVR_ON_4L
+; __config _CONFIG4H, 0xff
+ __config _CONFIG5L, 0xff
+ __config _CONFIG5H, 0xff
+ __config _CONFIG6L, 0xff
+ __config _CONFIG6H, 0xff
+ __config _CONFIG7L, 0xff
+ __config _CONFIG7H, 0xff
+
+ end
-;
+; -*- fundamental -*-
include /usr/share/gputils/header/p18f458.inc
-; __config _CONFIG1L, 0xff
- __config _CONFIG1H, _OSCS_OFF_1H & _ECIO_OSC_1H
- __config _CONFIG2L, _BOR_ON_2L & _PWRT_ON_2L & _BORV_45_2L
- __config _CONFIG2H, _WDT_OFF_2H
-; __config _CONFIG3L, 0xff
-; __config _CONFIG3H, 0xff
- __config _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVR_ON_4L
-; __config _CONFIG4H, 0xff
- __config _CONFIG5L, 0xff
- __config _CONFIG5H, 0xff
- __config _CONFIG6L, 0xff
- __config _CONFIG6H, 0xff
- __config _CONFIG7L, 0xff
- __config _CONFIG7H, 0xff
-
ACCSFR equ 0x0f00
COUNTINNER equ 0x00
; entry we assume it's already 0. For the loops which want to
; count all the way (256 iterations) that's good.
+ code
+
start
- bcf TRISA, 0, 0 ; enable flasher output
+ bcf TRISA, 0, 0 ; enable flasher pin output
+ bcf TRISD, 2, 0 ; enable per-pic led output
movlw 0x07 ; turn off A-to-D so we get
movwf ADCON1, 0 ; digital inputs on RA0-3 (AN0-3)
bcf TRISD, 4, 0 ; enable output D
movwf TRISC, 0 ; (RC7,6,5)
loop
- btg LATA, 0, 0
+ btg LATA, 0, 0 ; toggle flasher pin output
+ btg LATD, 2, 0 ; toggle per-pic led output
; set a bit which says how fast the led
; should flash and count down from 2^(that bit)
endm
copybiti PORTB, 5, TRISA, 0x06 ; C enable
- copybit PORTB, 4, PORTA, 0x06 ; C data
+ copybit PORTB, 4, LATA, 0x06 ; C data
copybiti PORTB, 3, TRISA, 0x18 ; B enable
- copybit PORTB, 2, PORTA, 0x18 ; B data
+ copybit PORTB, 2, LATA, 0x18 ; B data
copybiti PORTB, 1, TRISA, 0x20 ; A enable
copybiti PORTB, 1, TRISE, 0x01 ; A enable
- copybit PORTB, 0, PORTA, 0x20 ; A data
- copybit PORTB, 0, PORTE, 0x01 ; A data
+ copybit PORTB, 0, LATA, 0x20 ; A data
+ copybit PORTB, 0, LATE, 0x01 ; A data
- copybiti PORTA, 6, PORTD, 0x10 ; D
- copybiti PORTC, 0, PORTC, 0x80 ; E
- copybiti PORTC, 1, PORTC, 0x40 ; F
- copybiti PORTC, 2, PORTC, 0x20 ; G
+ copybiti PORTA, 6, LATD, 0x10 ; D
+ copybiti PORTC, 0, LATC, 0x80 ; E
+ copybiti PORTC, 1, LATC, 0x40 ; F
+ copybiti PORTC, 2, LATC, 0x20 ; G
; 12 x copybit @6 = 48cy
decfsz COUNTINNER, 1, 0 ; 1 cycle
-;
+; -*- fundamental -*-
include /usr/share/gputils/header/p18f458.inc
-; __config _CONFIG1L, 0xff
- __config _CONFIG1H, _OSCS_OFF_1H & _ECIO_OSC_1H
- __config _CONFIG2L, _BOR_ON_2L & _PWRT_ON_2L & _BORV_45_2L
- __config _CONFIG2H, _WDT_OFF_2H
-; __config _CONFIG3L, 0xff
-; __config _CONFIG3H, 0xff
- __config _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVR_ON_4L
-; __config _CONFIG4H, 0xff
- __config _CONFIG5L, 0xff
- __config _CONFIG5H, 0xff
- __config _CONFIG6L, 0xff
- __config _CONFIG6H, 0xff
- __config _CONFIG7L, 0xff
- __config _CONFIG7H, 0xff
-
COUNTFAST equ 0x00
COUNTMEDIUM equ 0x01
COUNTSLOW equ 0x02
; entry we assume it's already 0. For the loops which want to
; count all the way (256 iterations) that's good.
+ code
+
start
loop
call red
-;
+; -*- fundamental -*-
include /usr/share/gputils/header/p18f458.inc
-; __config _CONFIG1L, 0xff
- __config _CONFIG1H, _OSCS_OFF_1H & _ECIO_OSC_1H
- __config _CONFIG2L, _BOR_ON_2L & _PWRT_ON_2L & _BORV_45_2L
- __config _CONFIG2H, _WDT_OFF_2H
-; __config _CONFIG3L, 0xff
-; __config _CONFIG3H, 0xff
- __config _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVR_ON_4L
-; __config _CONFIG4H, 0xff
- __config _CONFIG5L, 0xff
- __config _CONFIG5H, 0xff
- __config _CONFIG6L, 0xff
- __config _CONFIG6H, 0xff
- __config _CONFIG7L, 0xff
- __config _CONFIG7H, 0xff
-
ACCSFR equ 0x0f00
COUNTINNER equ 0x00
; entry we assume it's already 0. For the loops which want to
; count all the way (256 iterations) that's good.
+ code
+
start
- bcf TRISA, 0, 0 ; enable flasher output
+ bcf TRISA, 0, 0 ; enable flasher pin output
+ bcf TRISD, 2, 0 ; enable per-pic led output
movlw 0x07 ; turn off A-to-D so we get
movwf ADCON1, 0 ; digital inputs on RA0-3 (AN0-3)
bcf TRISD, 4, 0 ; enable output D
movwf TRISC, 0 ; (RC7,6,5)
loop
- btg LATA, 0, 0
+ btg LATA, 0, 0 ; toggle flasher pin output
+ btg LATD, 2, 0 ; toggle per-pic led output
; set a bit which says how fast the led
; should flash and count down from 2^(that bit)
endm
copybiti PORTB, 5, TRISA, 0x06 ; C enable
- copybit PORTB, 4, PORTA, 0x06 ; C data
+ copybit PORTB, 4, LATA, 0x06 ; C data
copybiti PORTB, 3, TRISA, 0x18 ; B enable
- copybit PORTB, 2, PORTA, 0x18 ; B data
+ copybit PORTB, 2, LATA, 0x18 ; B data
copybiti PORTB, 1, TRISA, 0x20 ; A enable
copybiti PORTB, 1, TRISE, 0x01 ; A enable
- copybit PORTB, 0, PORTA, 0x20 ; A data
- copybit PORTB, 0, PORTE, 0x01 ; A data
+ copybit PORTB, 0, LATA, 0x20 ; A data
+ copybit PORTB, 0, LATE, 0x01 ; A data
- copybiti PORTA, 6, PORTD, 0x10 ; D
- copybiti PORTC, 0, PORTC, 0x80 ; E
- copybiti PORTC, 1, PORTC, 0x40 ; F
- copybiti PORTC, 2, PORTC, 0x20 ; G
+ copybiti PORTA, 6, LATD, 0x10 ; D
+ copybiti PORTC, 0, LATC, 0x80 ; E
+ copybiti PORTC, 1, LATC, 0x40 ; F
+ copybiti PORTC, 2, LATC, 0x20 ; G
; 12 x copybit @6 = 48cy
decfsz COUNTINNER, 1, 0 ; 1 cycle
-M4INCS= parts.i4
-
-E_TRACK= ArsCLMNo
-LAYOUTOPTS_ALL= -ep=*Cm
-LAYOUTOPTS= -E=*$(E_TRACK) $(LAYOUTOPTS_ALL)
-LAYOUTOPTS_PHYS= -S1.0 $(LAYOUTOPTS) '-e*A'
-XLAYOUTOPTS_LAYER= -e'=5AN' -E'*~=5rsm' -e'p~=5r' -e'*~=9C' -e'*=*l'
-
-LAYERS_LS= 0 10 20
-LAYERS_PS= $(addsuffix .ps, $(LAYERS_LS))
-LAYERS_L= $(addprefix ours-l, $(LAYERS_PS))
-LAYERS_E= $(addprefix ours-e, $(LAYERS_PS))
-LAYERS= $(LAYERS_L) $(LAYERS_E)
-
-LPAGES= $(foreach x, 0 1 2 3 4 5 6, $(foreach y, 1 2 3 4 5, ours-p0-$xx$y.ps))
-
-default: netlists picprogs
-layers: $(LAYERS)
-lpages: $(LPAGES)
-
-all: default layers bulkres.bom divider-tables \
- picprogs netlists panel3.pcb
+all: $(TARGETS)
o=>$@.new && mv -f $@.new $@
-CIRCUITPARTS= control.partlist circuit.partlist
-BULKRESPARTS= bulkres-select.partlist bulkres-items.partlist
-
-picprogs: flasher.hex
-
-netlists: reversers.net detectors.net \
- reversers.hole-rep detectors.hole-rep \
- both.hole-rep panel3.hole-rep
-
-# print from pcb(1) as follows:
-# File / Print Layout / ...
-# select media and offsets: A4
-# rotate
-# ok
-# (If `... exists, use anyway?', Sequence OK)
-#
-# then
-# make {reversers,detectors}.oprints{-l,-lpr}
-# for f in *.oprint-*.ps; do gv -scale -1 -media A4 $f; done
-# etc.
-
-OPRINTS= %.oprint-copper.ps \
- %.pcb.output_fab.ps \
- %.pcb.output_frontsilk.ps \
- %.oprint-assembly.ps
-
-%.hole-rep: %.pcb hole-report.pl
- ./hole-report.pl <$< $o
-
-include reversers.layers.dep
-include detectors.layers.dep
-include panel3.layers.dep
-
-%.zip: layers.txt.tmpl Makefile
- rm -rf $@.d; mkdir -p $@.d
- set -e; exec <$<; cd $@.d; perl -pe ' \
- m/^(\S+)\s+(\w+)\s+(\w+)\s+(\S.*)$$/ or die; \
- system "cp ../$*.pcb.output_$$1.$$3 $$2.$$3"; \
- die $$? if $$?; \
- $$_= sprintf "%-20s %s\n", "$$2.$$3", $$4; \
- ' >readme.txt; \
- zip -l ../$@.new *
- mv -f $@.new $@
- unzip -v $@
-
-PANEL3_PCBS= reversers.pcb detectors.pcb detectors.pcb
-
-panel3.pcb: pcb-panelise $(PANEL3_PCBS) Makefile
- ./$< -g100 $(PANEL3_PCBS) $o
-
-$*.zip: $*.pcb.output_$$1.$$2/ or die' \
-
-%.out-ps.tar:
- GZIP=-9v tar zvcf $@.gz $*.pcb.output_*.ps
-
-%.layers.dep: layers.txt.tmpl Makefile
- perl -pe \
- 's/^(\S+)\s+\w+\s+(\w+)\s.*/$*.zip: $*.pcb.output_$$1.$$2/ or die' \
- <$< $o
-
-both.hole-rep: hole-report.pl reversers.pcb detectors.pcb
- ./$^ $o
-
-%.oprints: $(OPRINTS)
- echo $^ >$@-l-tmp
-
-%.oprints-l: $(OPRINTS) %.oprints Makefile
- cp $@-tmp $@
-
-pcboprints: reversers.oprints-l detectors.oprints-l
-
-%.oprints-lpr: %.oprints-l
- set -ex; for f in `cat $^`; do lpr $$f; done
-
-%.distilled.ps: %.ps
- ps2ps $< $@
-
-%.oprint-copper.ps: %.pcb.output_back.distilled.ps \
- %.pcb.output_front.distilled.ps
- cat $^ >$@.tmp
- ps2ps $@.tmp $@-2.tmp
- pstops '2:0(-50mm,0mm)+1(50mm,0mm)' <$@-2.tmp $o
-
-%.oprint-copper.ps: Makefile
-
-%.oprint-assembly.ps: %.pcb.output_assembly.ps Makefile
- pstops -pa4 '0@2(-109mm,-290mm)' <$< $o
-
-%.net: %.net-info
- sed -e '/^\#/d' <$< $o
-
-%.net-info: %.net-spec netlist-expand
- ./netlist-expand $< $o
-
-%.net-spec: generate-netspec.pl
- ./$< $@ $o
-
-%.hex: %.asm
- gpasm -p 18f458 $<
-
-circuit.bom: farnell-find $(CIRCUITPARTS)
- ./farnell-find bom $(CIRCUITPARTS) $o
-
-bulkres.bom: farnell-find $(BULKRESPARTS)
- ./farnell-find bom $(BULKRESPARTS) $o
-
-bulkres-select.partlist: bulkres-select-gen.pl
- ./$^ $o
-
-bulkres-items.suggest:
- cat bulkres-searchout*[0-9] | ./farnell-resistor-convert.pl $o
-
-bulkres-items.descs: bulkres-items.suggest
- xargs ./farnell-find describe <$< $o
-
-bulkres-items.partlist:
- ./farnell-resistor-convert.pl <bulkres-items.descs MRS25 std $o
-
-divider-table.txt: divider-table.pl
- ./$< $o
-
-divider-tables: divider-table.ps divider-table.txt
-
-divider-table.ps: divider-table.txt Makefile
- a2ps -o- -R -1 --borders no -B -L"$$(wc -l <$<)" -l158 \
- --center-title='E24 resistor ratios and logarithms' <$< $o
-
-%.d4: %.m4 $(M4INCS) Makefile
- m4 -s <$< $o
-
-%-a.ps: %.d4 layout
- ./layout <$< $(LAYOUTOPTS) '-E*l' $o
-
-%-al.ps: %.d4 layout
- ./layout <$< $(LAYOUTOPTS) '-e*C' '-ep=rm' $o
-
-%-ap.ps: %.d4 layout
- ./layout -S1.0 <$< $(LAYOUTOPTS) '-e*A' '-ep=rm' $o
-
-ours-l%.ps: ours.d4 layout
- ./layout <$< -l$* $(LAYOUTOPTS) $(XLAYOUTOPTS_LAYER) $o
-
-ours-e%.ps: ours.d4 layout
- ./layout <$< -l$* -E'=*aRsclMno' \
- -e'p=*rm' -e'=5RN' -E'*~=5rsm' -e'p~=5r' -e'*=*l' $o
+LINK= gplink -o $@ $^
-ours-p%.ps: ours.d4 layout
- ./layout <$< -l$$(printf %s "$*" | sed -e 's/-/ -P/') \
- $(LAYOUTOPTS_PHYS) $(XLAYOUTOPTS_LAYER) $o
+%.hex: %.o
+ $(LINK)
-parts.ps: showlib.d4 layout
- ./layout <$< $(LAYOUTOPTS_ALL) $o
+%.o: %.asm
+ gpasm -p 18f458 -c $<
-clean:
- -rm -f -- *.d4 farn.* *~ *.new
- -rm -f bulkres-*.partlist bulkres-items.suggest *.bom
- -rm -f t,*.gnuplot-data t,*.gnuplot-cmd t,gnuplot-fifo
- -rm -f t,gnuplots.sh reversers.net reversers.net-info
- -rm -f flasher.hex flasher.cod flasher.lst
- -rm -f ours-*.ps parts.ps
- -rm -f *.oprint-*.ps
+.PRECIOUS: %.o
-.PRECIOUS: %.net-info %.net-spec
-.PRECIOUS: $(OPRINTS)
+pic-clean:
+ -rm -f -- *~ *.new
+ -rm -f *.hex *.cod *.lst *.o