X-Git-Url: http://git.smho.de/gw/?p=owSlave2.git;a=blobdiff_plain;f=programmer%2Fprogrammer%2Fprogrammer_8MHz_2017.asm;fp=programmer%2Fprogrammer%2Fprogrammer_8MHz_2017.asm;h=5a51e4e13a67f1566ab3e908c3c6618d882315f5;hp=0000000000000000000000000000000000000000;hb=81a79648a168a1167c5ad97d4068621c1751a353;hpb=6467d8138460abffd9ddabc7b0a9f00c764af19c diff --git a/programmer/programmer/programmer_8MHz_2017.asm b/programmer/programmer/programmer_8MHz_2017.asm new file mode 100644 index 0000000..5a51e4e --- /dev/null +++ b/programmer/programmer/programmer_8MHz_2017.asm @@ -0,0 +1,489 @@ +.def srbyte = r12 ;byty for search rom algorithm +.def writelow = r13; marker for send low +.def zero =r14; always zero +.def smode=r15; if 1 then send +.def temp = r16 ; +.def temp2 = r17; +.def mode = r18 ; +.def bitp = r19 ; bit counter ... shift... +.def rwbyte = r21; +.def param = r22; +.def bytep = r23 ;byte counter +#define spmcrval param + + +.equ OWM_READ_ROM_COMMAND=0 ; 0 wegen schnellen test ist dieser wert 0! Daturch wird die Sprungdabelle nicht verwendet +.equ OWM_SLEEP=1 ; Warten auf Reset +.equ OWM_MATCH_ROM=2 +.equ OWM_SEARCH_ROM_S=3 ;send bit +.equ OWM_SEARCH_ROM_R=4 ;resive master +.equ OWM_READ_COMMAND=5 +.equ OWM_WRITE_SCRATCHPAD=6 +.equ OWM_READ_SCRATCHPAD=7 +.equ OWM_PROGRAMM_PAGE=8 +.equ OWM_RECALL_FLASH=9 + + +.equ OW_DDR = DDRB +.equ OW_PIN = PORTB2 +.equ OW_PORT = PORTB +.equ OW_PINN = PINB + +;.equ SRAM_START = 0x60 + +.macro set_clock + ldi temp,0x80; + out CLKPR,temp + ldi temp,@0 + out CLKPR,temp +.endmacro + +.macro owwl + sbic OW_PINN,OW_PIN + rjmp pc-1 +.endmacro + +.macro owwh + sbis OW_PINN,OW_PIN + rjmp pc-1 +.endmacro + + + + + ;--------------------------------------------------- +; START of PROG +;--------------------------------------------------- + + +.CSEG +.ORG 0x000 +jreset: + rjmp start ; Reset-Vector + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + reti ; + + +.ORG 0x0EC0 +//7552 Byte +start: + cli + ldi temp,0 + mov zero,temp + set_clock 0x00 ;8mhz + ldi mode,OWM_SLEEP + ldi temp,(1<