亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? atmel.mod

?? 該應(yīng)用軟件可以實(shí)現(xiàn)大多數(shù)單片機(jī)的仿真實(shí)驗(yàn)
?? MOD
字號(hào):
;**********************************************************************
;* Module    : ATMEL.MOD
;* Programmer: Tony Papadimitriou
;* Purpose   : Atmel FLASH/EEPROM related OS-called routines
;* Language  : MC68HC11 (ASM11 v1.85+)
;* Status    : Copyright (c) 1999 by Tony Papadimitriou
;* Segments  : ROM    : Code
;*           : SEG9   : OS definitions (this allows adding more functions)
;* Note(s)   : All routines first copy themselves to stack RAM,
;*           : then execute from there.  For this reason a sufficient
;*           : amount of stack space must be available before entry.
;*           : Roughly about 180 bytes are needed just for the code itself
;*           : not counting stack required for execution.
;* History   : 99.12.07 v1.00 Original
;*           : 99.12.14 v1.01 Added delay in SDP_On/PD_Off
;*           : 99.12.15 v1.02 Corrected fBlockWriteAtmel to actually run from RAM
;*           : 99.12.16 v1.03 Minor optimizations
;*           : 99.12.17 v1.04 Minor optimizations/fixes
;**********************************************************************

#ifmain
                    #LISTOFF
                    #INCLUDE  811E2.INC
                    #INCLUDE  COMMON.INC
                    #INCLUDE  OS11/OSERRORS.INC
                    #LISTON

                    #SEG9
                    ORG       $FF00
#endif

?$5555              EQU       $D555               ;change to 5555 if using lower 32K
?$2AAA              EQU       $AAAA               ;change to 2AAA if using lower 32K
?DELAY              EQU       3333                ;Delay constant for 10msec at 2MHz E

?SECTOR_SIZE        EQU       64                  ;DO NOT CHANGE; bytes per sector

                    #SEG9
#ifndef OSCommands
OSCommands          equ       *
#endif

fBlockWriteAtmel    equ       *-OSCommands/2      ;Write EEPROM bytes using block mode
                    dw        ?BlockWriteAtmel

fWriteAtmel         equ       *-OSCommands/2      ;Write one EEPROM byte
                    dw        ?WriteAtmel

fEraseAtmel         equ       *-OSCommands/2      ;Erase one EEPROM byte
                    dw        ?EraseAtmel

fSDP_On             equ       *-OSCommands/2      ;Software Data Protection On
                    dw        ?SDP_On

fSDP_Off            equ       *-OSCommands/2      ;Software Data Protection Off
                    dw        ?SDP_Off

fBulkEraseAtmel     equ       *-OSCommands/2      ;Bulk Erase EEPROM
                    dw        ?BulkEraseAtmel

#PAGE ;Operating System routines expanded
**********************************************************************
*                 Operating System routines expanded                 *
**********************************************************************
                    #ROM

;********************************************************************
; THE FOLLOWING CODE SECTION IS FIRST COPIED TO RAM, THEN EXECUTED
;********************************************************************
?RAM                pshb
                    ldb       #$AA                ;Load $AA to $5555
                    stb       ?$5555
                    comb                          ;Load $55 to $2AAA
                    stb       ?$2AAA
                    ldb       #$A0                ;Load $A0 to $5AAA
                    stb       ?$5555
                    pulb
                    sta       ,x                  ;write actual value to program
                    pshy
                    ldy       #?DELAY             ;Delay at most ~10 msec or until read value is verified
?RAM.Loop           cmpa      ,x                  ;if WRITTEN=READ then
                    beq       ?RAM.Exit           ;  exit
                    dey                           ;else Dec(Y)
                    bne       ?RAM.Loop           ;  if Y <> 0 then goto ?RAM.Loop
                    puly
                    sec                           ;Failure
                    rts
?RAM.Exit           puly
                    clc                           ;Success
                    rts

?Chip_Erase         pshb
                    ldb       #$AA                ;Load $AA to $5555
                    stb       ?$5555
                    comb                          ;Load $55 to $2AAA
                    stb       ?$2AAA
                    ldb       #$80                ;Load $80 to $5AAA
                    stb       ?$5555
                    ldb       #$AA                ;Load $AA to $5555
                    stb       ?$5555
                    comb                          ;Load $55 to $2AAA
                    stb       ?$2AAA
                    ldb       #$10                ;Load $10 to $5AAA
                    stb       ?$5555
                    pulb
?Delay10            pshx
                    ldx       #?DELAY             ;Delay 10 msec
                    dex
                    bne       *-1
                    pulx
                    rts

?SDP_Off.Delayed    bsr       ?SDP_Off.Local
                    bra       ?Delay10

?SDP_Off.Local      pshb
                    ldb       #$AA                ;Load $AA to $5555
                    stb       ?$5555
                    comb                          ;Load $55 to $2AAA
                    stb       ?$2AAA
                    ldb       #$80                ;Load $80 to $5AAA
                    stb       ?$5555
                    ldb       #$AA                ;Load $AA to $5555
                    stb       ?$5555
                    comb                          ;Load $55 to $2AAA
                    stb       ?$2AAA
                    ldb       #$20                ;Load $20 to $5AAA
                    stb       ?$5555
                    pulb
                    rts

?SDP_On.Delayed     bsr       ?SDP_On.Local
                    bra       ?Delay10

?SDP_On.Local       pshb
                    ldb       #$AA                ;Load $AA to $5555
                    stb       ?$5555
                    comb                          ;Load $55 to $2AAA
                    stb       ?$2AAA
                    ldb       #$A0                ;Load $A0 to $5AAA
                    stb       ?$5555
                    pulb
                    rts

?BlockWriteAtmel.L  lda       #?SECTOR_SIZE       ;reset counter
?BlockWriteAtmel.A  sta       ?secbytes,X
                    jsr       ?SDP_On.Local-?RAM,X ;call SDP ON routine
?BlockWriteAtmel.S  ldy       ?Y,X                ;Y -> source
                    lda       ,Y                  ;A[Y] := source byte
                    iny
                    sty       ?Y,X                ;Inc(Y)
                    ldy       ?X,X                ;Y -> destination
                    sta       ,Y                  ;destination := A[Y]
                    iny
                    sty       ?X,X                ;Inc(Y)
                    ldd       ?D,X                ;D := counter
                    decd                          ;Dec(D)
                    std       ?D,X
                    beq       ?Delay10            ;if D = 0 then exit with final delay
                    dec       ?secbytes,X
                    bne       ?BlockWriteAtmel.S
                    bsr       ?Delay10            ;wait for block to be written
                    bra       ?BlockWriteAtmel.L

?RAM_Needed         equ       *-?RAM

;********************************************************************
                    #push
                    #mapoff
; IN: X -> destination RAM after GETX #?? (everything else is known)
; On exit, it turn ints off assuming next action is call to subroutine
?Copy               pshd                          ;save used registers
                    pshx
                    pshy
                    ldy       #?RAM               ;Y -> source
                    ldb       #?RAM_Needed
?Copy.Loop          lda       ,y                  ;copy source byte
                    sta       ,x                  ;  to destination
                    inx                           ;bump up destination
                    iny                           ;  and source pointers
                    decb                          ;one less byte to copy
                    bne       ?Copy.Loop          ;repeat until done
                    puly                          ;restore registers
                    pulx
                    puld
                    sei                           ;no ints allowed
                    rts
                    #pull

; Write bytes starting at specified address using block mode
; IN: X -> destination
;   : Y -> source
;   : D -> block length
?D                  equ       ?RAM_Needed         ;Word
?X                  equ       ?RAM_Needed+2       ;Word
?Y                  equ       ?RAM_Needed+4       ;Word
?secbytes           equ       ?RAM_Needed+6       ;Byte
?BlockWriteAtmel    ldd       D_,Y
                    beq       ?BlockWriteAtmel.Ex ;exit on zero
                    xgab                          ;put A,B in correct order

                    getx      #?RAM_Needed+7      ;allocate temp storage
                    bsr       ?Copy
                    std       ?D,X                ;Save D (byte counter)
                    ldd       Y_,Y
                    std       ?Y,X                ;Save Y (source pointer)
                    ldd       X_,Y
                    std       ?X,X                ;Save X (destination pointer)
                    andb      #?SECTOR_SIZE-1     ;mask to determine 1st sector bytes
                    lda       #?SECTOR_SIZE
                    sba                           ;A := ?SECTOR_SIZE - (X & (?SECTOR_SIZE-1))
                    bne       ?BlockWriteAtmel.J  ;if zero, then
                    lda       #?SECTOR_SIZE       ;  reset to full block write
?BlockWriteAtmel.J  jsr       ?BlockWriteAtmel.A-?RAM,X ;on entry A holds remaining 1st sector bytes
                    givex     #?RAM_Needed+7      ;de-allocate temp storage

?BlockWriteAtmel.Ex clc                           ;never an error from here
                    rts

; Write a byte at specified address
; IN: X -> address
;   : A = byte to program
?WriteAtmel         getx      #?RAM_Needed        ;allocate temp storage
                    bsr       ?Copy

                    pshy
                    lda       A_,Y
                    ldy       X_,Y
                    xgxy                          ;X->stack, Y->routine
                    jsr       ,Y                  ;call routine
                    puly

                    tpa
                    ldb       B_,Y                ;get caller's B (just in error case)
                    givex     #?RAM_Needed        ;de-allocate temp storage
                    tap
                    rts

?EraseAtmel         getx      #?RAM_Needed        ;allocate temp storage
                    bsr       ?Copy

                    pshy
                    lda       #$FF
                    ldy       X_,Y
                    xgxy                          ;X->stack, Y->routine
                    jsr       ,Y                  ;call routine
                    puly

                    tpa
                    ldb       B_,Y                ;get caller's B (just in error case)
                    givex     #?RAM_Needed        ;de-allocate temp storage
                    tap
                    rts

?BulkEraseAtmel     getx      #?RAM_Needed        ;allocate temp storage
                    jsr       ?Copy
                    jsr       ?Chip_Erase-?RAM,X  ;call routine
?Common_Exit        givex     #?RAM_Needed        ;de-allocate temp storage
                    clc                           ;never an error from here
                    rts

?SDP_Off            getx      #?RAM_Needed        ;allocate temp storage
                    jsr       ?Copy
                    jsr       ?SDP_Off.Delayed-?RAM,X
                    bra       ?Common_Exit

?SDP_On             getx      #?RAM_Needed        ;allocate temp storage
                    jsr       ?Copy
                    jsr       ?SDP_On.Delayed-?RAM,X
                    bra       ?Common_Exit
#ifmain
                    #push
                    #mapoff
                    #listoff
                    #include  OS11/DISPATCH.MOD
                    #pull
#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频一区二| 日本三级亚洲精品| av一区二区不卡| 国产精品美女久久福利网站| 国产又黄又大久久| 国产无一区二区| 国产乱码精品一区二区三区av| 欧美成人福利视频| 国产伦精品一区二区三区视频青涩 | 日韩精品资源二区在线| 久久99久久久欧美国产| 久久久777精品电影网影网| 国产成人av在线影院| 亚洲欧洲性图库| 欧美日韩一区二区三区在线| 丝袜美腿亚洲综合| 精品国产成人在线影院| 国产suv精品一区二区三区| 亚洲天堂a在线| 欧美三级视频在线观看| 久久成人免费网| 国产精品九色蝌蚪自拍| 精品视频资源站| 韩日av一区二区| 亚洲男人的天堂在线观看| 欧美日韩和欧美的一区二区| 精品一区二区三区久久| 亚洲乱码国产乱码精品精可以看 | 亚洲欧洲日产国产综合网| 欧美在线观看你懂的| 精品一二三四在线| 一区二区在线观看免费 | 欧美色图激情小说| 国产一区二区免费在线| 亚洲同性同志一二三专区| 91精品国产一区二区三区香蕉 | 9久草视频在线视频精品| 午夜精品福利一区二区三区av| www精品美女久久久tv| 91久久精品一区二区三区| 免费在线看成人av| 亚洲另类在线一区| 久久精品日产第一区二区三区高清版| 91福利在线观看| 懂色av一区二区三区免费观看| 亚洲bt欧美bt精品| 国产精品国产成人国产三级| 欧美一卡2卡三卡4卡5免费| 91麻豆123| 成人免费看黄yyy456| 精品一区二区在线免费观看| 一区二区高清在线| 日韩美女精品在线| 国产日产精品1区| 日韩一级视频免费观看在线| 在线精品国精品国产尤物884a| 国产成人免费视频网站 | 青青草97国产精品免费观看| 亚洲精品视频免费看| 欧美激情一区二区三区| 欧美大片一区二区| 91精品国产综合久久福利 | 肉色丝袜一区二区| 亚洲人成网站影音先锋播放| 国产欧美在线观看一区| 亚洲精品一区二区三区香蕉| 欧美一区二区三区爱爱| 91精品国产综合久久久久久| 在线观看国产91| 91亚洲国产成人精品一区二三| 99视频在线精品| 成人av在线播放网址| 国产裸体歌舞团一区二区| 国精品**一区二区三区在线蜜桃| 麻豆精品视频在线观看免费 | 一区二区三区自拍| 亚洲日本在线观看| 中文字幕一区二区三区视频 | 亚洲免费观看高清完整版在线观看 | 7777精品伊人久久久大香线蕉经典版下载| 色综合天天综合狠狠| 91在线观看一区二区| 99视频国产精品| 一本色道亚洲精品aⅴ| 91久久人澡人人添人人爽欧美| 色国产精品一区在线观看| 在线精品观看国产| 欧美日韩另类一区| 欧美日韩国产另类不卡| 欧美一级夜夜爽| 久久久久久**毛片大全| 中文幕一区二区三区久久蜜桃| 国产精品久久久一本精品| 亚洲欧美另类综合偷拍| 亚洲国产va精品久久久不卡综合| 亚洲一二三区在线观看| 日韩在线卡一卡二| 激情文学综合丁香| 国产jizzjizz一区二区| 一本大道综合伊人精品热热| 欧美日韩另类一区| 精品国产一区二区精华| 日本一区二区视频在线观看| 日韩美女视频一区二区| 婷婷六月综合亚洲| 国产精品白丝jk黑袜喷水| 97精品电影院| 日韩一区二区在线观看视频播放 | 国产目拍亚洲精品99久久精品| 亚洲欧美日韩精品久久久久| 国v精品久久久网| 成人一区二区在线观看| 日本道色综合久久| 91精品久久久久久久99蜜桃| 国产欧美精品在线观看| 亚洲午夜久久久久中文字幕久| 麻豆成人久久精品二区三区红 | 免费观看在线综合色| 成人av影院在线| 日韩一区二区电影| 亚洲欧洲一区二区在线播放| 日韩av高清在线观看| 成人免费av网站| 9191精品国产综合久久久久久| 国产亚洲短视频| 日韩精品欧美成人高清一区二区| 国产夫妻精品视频| 91精品国产高清一区二区三区蜜臀 | 欧美午夜片在线观看| 久久久99久久精品欧美| 亚洲小说欧美激情另类| 国产伦精品一区二区三区在线观看| 欧美中文字幕亚洲一区二区va在线 | 久久影院午夜片一区| 亚洲影院理伦片| 国产成人综合网| 日韩欧美国产不卡| 一区二区久久久| 成人午夜短视频| 日韩欧美国产电影| 亚洲成人动漫一区| 99精品视频在线观看免费| 精品久久久久香蕉网| 日韩精品免费专区| 在线观看视频91| 中文字幕一区二区在线观看 | 国产精品久久久久久久久快鸭 | 欧美一区二视频| 亚洲精品一卡二卡| 成人自拍视频在线| 国产片一区二区三区| 激情av综合网| 7777精品伊人久久久大香线蕉的| 亚洲综合色噜噜狠狠| 91香蕉视频污在线| 中文字幕在线观看一区| 国产激情偷乱视频一区二区三区| 日韩欧美国产午夜精品| 蜜桃视频在线观看一区| 日韩视频在线你懂得| 日韩在线一二三区| 日韩一区二区三区观看| 三级欧美在线一区| 欧美一区二区三区在线观看| 午夜一区二区三区视频| 欧美三级日韩在线| 亚洲国产成人porn| 欧美日韩高清在线播放| 亚洲成av人影院在线观看网| 欧美日韩亚洲综合| 香蕉影视欧美成人| 在线观看91精品国产麻豆| 国产精品自在欧美一区| 国产三级精品三级| 成人午夜视频在线| 日韩美女精品在线| 欧美午夜宅男影院| 免费成人在线播放| 欧美精品一区二区三区蜜臀 | 91农村精品一区二区在线| 中文字幕中文字幕中文字幕亚洲无线| 成人国产精品视频| 一区二区三区**美女毛片| 在线视频你懂得一区| 久久久久久久电影| 久久久久久久久久久电影| 亚洲色图欧洲色图| 国精产品一区一区三区mba视频| 久久亚洲春色中文字幕久久久| 精品一区二区免费看| 久久精品男人的天堂| 粉嫩高潮美女一区二区三区| 精品国产免费人成电影在线观看四季 | 欧美日韩亚洲综合一区二区三区| 亚洲一二三级电影| 欧美电影免费提供在线观看| 国产传媒欧美日韩成人| 亚洲免费看黄网站| 日韩欧美国产麻豆| 99久久免费视频.com|