⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bdm.asm

📁 采用QT设计的S08仿真器程序 带源代码 使用串口方式,成本很低
💻 ASM
字号:
;----------------------------------------------------------------------------;
; BDM.MAS               Comandos BDM 68HC9S08                                ;
; =======                                                                    ;
;----------------------------------------------------------------------------;
;                       Programado por Ing.Gabriel Dubatti (c)2005-2006      ;
;                       info@ingdubatti.com.ar                               ;
;                       www.ingdubatti.com.ar                                ;
;----------------------------------------------------------------------------;

;===========================================================
; DoCmdVersion:
;   Retorna la version del soft del POD
;   Actual: 02
;===========================================================
DoCmdVersion:
    lda     #$02                    ;
    bra     TXHexByte               ;envia la version y sale

;===========================================================
; DoCmdReset:
;   Comando RESET MICRO: baja el reset durante 10 mseg
;===========================================================
DoCmdReset:
    bset    PA_B_RESET,PORTA        ;RESET ON
    ldx     #!23                    ;pausa total= 23*1795= 41205 = 10.3mseg
    clra                            ;
_DoTopBdm1:
_DoTopBdm2:
            sta     COPCTL          ;reset COP
        dbnza _DoTopBdm2
    dbnzx _DoTopBdm1
    bclr    PA_B_RESET,PORTA        ;RESET OFF
;   |
;   |
;  \|/
;===========================================================
; DoCmdOK:
;   NO HACE NADA, solo recorna el eco
;===========================================================
DoCmdOK:
    rts                             ;

;===========================================================
; DoCmdQuickSYNC:
;   Resincroniza la conexion BDM
;   (env韆 pulso de SYNC y determina el clock del BDM)
;   Metodo SOFT => NO resetea al procesador, delay MINIMO
;   UTILIZA velocidad medida con DoCmdHardSYNC o DoCmdSoftSYNC
;===========================================================
DoCmdQuickSYNC:
    bclr    PA_B_BKD,PORTA          ;fuerza BKGD pin = 1

    clra                            ;verifica que realmente este en "1"
_DoTopBdm3:
        deca
        beq errdbglow
;           bra errdbglow           ;envia ERROR BKGD LOW: "_" y sale
    bil _DoTopBdm3

    ;Genera pulso de 128 ciclos BDM segun "syncwidth"
    bset    PA_B_BKD,PORTA          ;BAJA BKGD pin
    nsa                             ;
    nsa                             ;
    nsa                             ;
    nsa                             ;
    nsa                             ;
    nsa                             ;
    bih errdbghigh
;       bra errdbghigh              ;no bajo => "e" (pin trabado a "1")

    ldx     syncwidth               ;delay del SYNC en unidades de 4 ciclos
    incx                            ;compenza restar antes de contar
    lda     {syncwidth+1}           ;
    inca                            ;compenza restar antes de contar
_DoTopBdm6:
_DoTopBdm7:
            nop                     ;
        dbnza _DoTopBdm7
        deca                        ;compensa demora de 4 ciclos del loop
    dbnzx _DoTopBdm6
    bra     contSYNC                ;continua con el SYNC

;===========================================================
; DoCmdHardSYNC:
;   Resincroniza la conexion BDM
;   (env韆 pulso de SYNC y determina el clock del BDM)
;   Metodo HARD => RESETEA el procesador y lo arranca en modo
;   DEBUG
;
; En la version "02C" se agreg

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -