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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sci_int.mod

?? 該應用軟件可以實現大多數單片機的仿真實驗
?? MOD
?? 第 1 頁 / 共 2 頁
字號:
;**********************************************************************
;* Module    : SCI_INT.MOD
;* Programmer: Tony Papadimitriou
;* Purpose   : Interrupt-driven SCI RX and TX OS-called routines
;* Language  : MC68HC11 (ASM11 v1.83+)
;* Status    : FREEWARE, Copyright (c) 1999 by Tony Papadimitriou
;* Segments  : RAM    : Variables
;*           : ROM    : Code
;*           : SEG9   : OS definitions (this allows adding more functions)
;*           : VECTORS: SCI vector
;* Subsystems: Makes use of SCI interrupts
;* History   : 99.11.12 v1.00 Original (Started on 99.11.12)
;*           : 99.11.12 v1.01 Added fGetChar
;*           : 99.11.27 v1.02 Added fGetPossibleChar (doesn't wait for char)
;**********************************************************************

#ifmain ;---------- allows for separate compilation -------------------
                    #LISTOFF
                    #INCLUDE  811E2.INC
                    #INCLUDE  COMMON.INC
                    #INCLUDE  OS11/OSERRORS.INC
                    #LISTON

                    #SEG9
                    ORG       $FF00
#endif
                    #RAM
?MAXBUF             EQU       16                  ;RX and TX buffer lengths

; zero RX.index or TX.index indicates empty buffer

?RX.index           rmb       1                   ;offset into RX buffer
?RX.buffer          rmb       ?MAXBUF             ;buffer for received characters

?TX.index           rmb       1                   ;offset into TX buffer
?TX.buffer          rmb       ?MAXBUF             ;buffer for characters to transmit

                    #SEG9
#ifndef OSCommands
OSCommands          equ       *
#endif

fError              equ       *-OSCommands/2      ;Print error message on the SCI
                    dw        ?Error

fErrorJump          equ       *-OSCommands/2      ;fError and jump to address
                    dw        ?ErrorJump

fUsrErrorJump       equ       *-OSCommands/2      ;Like fErrorJump with User error
                    dw        ?UsrErrorJump

fSetBAUD            equ       *-OSCommands/2      ;Set SCI bps ("baud") rate
                    dw        ?SetBAUD

fPrint              equ       *-OSCommands/2      ;Print the following FCS string
                    dw        ?Print

fGetPossibleChar    equ       *-OSCommands/2      ;Read SCI char is present into RegA
                    dw        ?GetPossibleChar

fGetChar            equ       *-OSCommands/2      ;Read SCI char into RegA
                    dw        ?GetChar

fPutChar            equ       *-OSCommands/2      ;Write RegA character to the SCI
                    dw        ?PutChar

fWrite              equ       *-OSCommands/2      ;Write a "Pascal" string to SCI
                    dw        ?Write

fWriteln            equ       *-OSCommands/2      ;fWrite followed by CR,LF pair
                    dw        ?Writeln

fNewLine            equ       *-OSCommands/2      ;Send a CR,LF pair to the SCI
                    dw        ?NewLine

fWriteZ             equ       *-OSCommands/2      ;Write an ASCIZ string to SCI
                    dw        ?WriteZ

fWritelnZ           equ       *-OSCommands/2      ;fWriteZ followed by CR,LF pair
                    dw        ?WritelnZ

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

; Purpose: Print error message on the SCI and jump to address in X
; Input  : B holds error code
;        : X holds address to jump to after printing error
; Output : None
?ErrorJump          ldx       X_,y                ;get address to jump to
                    stx       PC_,y               ;and use it as return PC
          ; fall through to fError (do not change fError's location)

; Purpose: Print error message on the SCI
; Input  : B holds error code
; Output : None
; Note(s): Uses fPrint, fWritelnZ
?Error              ldb       B_,y                ;get error code
                    beq       ?Error.Exit         ;not an error
                    decb                          ;make error zero-based
                    clra                          ;we'll be using D
                    lsld                          ;multiply by size of table entries
                    cmpd      #?Error.Size        ;is it within our table size
                    bhs       ?Error.Exit         ;invalid error code, get out
                    addd      #?Error.Table       ;point to beginning of table
                    xgdx                          ;put pointer in X
                    ldx       ,x                  ;get pointer to error msg
                    os        fPrint              ;print standard error header
                    fcs       CR,LF,'OS ERROR('
                    os        fWritelnZ
?Error.Exit         clc
                    rts

?Error.Table        dw        ?Error.1
                    dw        ?Error.2
                    dw        ?Error.3
                    dw        ?Error.4
                    dw        ?Error.5
                    dw        ?Error.6
?Error.Size         equ       *-?Error.Table/2

?Error.1            fcs       '1): Other'
?Error.2            fcs       '2): Invalid Call'
?Error.3            fcs       '3): Bad Parameter'
?Error.4            fcs       '4): Failed'
?Error.5            fcs       '5): Out Of Range'
?Error.6            fcs       '6): Not found'

; Purpose: Print user error message on the SCI
; Input  : Y -> user error message
;        : X holds address to jump to after printing error
; Output : None
; Note(s): Uses fPrint, fWritelnZ
?UsrErrorJump       os        fPrint              ;print standard error header
                    fcs       CR,LF,'ERROR: '
                    ldx       Y_,y                ;get pointer to error msg
                    os        fWritelnZ
                    ldx       X_,y                ;set user address
                    stx       PC_,y               ;..to return to
                    clc
                    rts

; Purpose: Set SCI BAUD rate to one of the following values (in A_,y)
;          3(00), 12(00), 24(00), 48(00), 96(00), 125(000)
;          (use number outside parentheses for corresponding baud rate)
; Input  : RegA = Baud Rate (without trailing zeros)
; Note(s): Assumes 8MHz XTAL (2MHz E-Clock)
?BPS_Table          db        3,$35               ;300 bps (user value, MCU value)
                    db        12,$33              ;1200 bps
                    db        24,$34              ;2400 bps
                    db        48,$31              ;4800 bps
                    db        96,$30              ;9600 bps
                    db        125,$00             ;125000 bps
?BPS_Table.Entries  equ       *-?BPS_Table/2      ;number of entries in table

?SetBAUD            lda       A_,y                ;get user bps rate value
                    ldx       #?BPS_Table         ;point to table with MCU bps rates
                    ldb       #?BPS_Table.Entries ;get number of entries to test
?SetBAUD.BpsLoop    cmpa      ,x                  ;is it the same as in table?
                    beq       ?SetBAUD.SetBAUD    ;go set it
                    inx:2                         ;point to next entry
                    decb                          ;are we done with all entries?
                    bne       ?SetBAUD.BpsLoop    ;if not, try again
?SetBAUD.Error      ldb       #errBadParm         ;not found, return error code in B
                    sec
                    rts
?SetBAUD.SetBaud    lda       1,x                 ;get MCU bps rate value
                    clr       SCCR2               ;disable SCI while changing BAUD
                    sta       BAUD
                    clr       SCCR1
                    lda       #%00101100          ;Interrupt RX and TX mode
                    sta       SCCR2
; Clear the buffer to be used for transmission/receipt of data
                    ldx       #?RX.index          ;get pointer to beginning of vars
                    ldb       #?MAXBUF+1*2        ;get length for both buffers and indices
?SetBAUD.Loop       clr       ,x                  ;clear buffer
                    inx                           ;advance pointer
                    decb                          ;one less to go
                    bne       ?SetBAUD.Loop       ;repeat until done
                    clc                           ;no error exit
                    rts

; Purpose: Print constant ASCIZ string following OS instruction (with FCS)
; Parms  : None
?Print              ldx       PC_,y               ;get address following OS
?Print.Loop         lda       ,x                  ;get character to print
                    beq       ?Print.Exit         ;at the end of ASCIZ string, exit
                    bsr       ?PutChar.Local      ;send the character to SCI
                    inx                           ;point to next character
                    bne       ?Print.Loop         ;avoids infinite loops
?Print.Exit         inx                           ;point after NUL
                    stx       PC_,y               ;..to use as return address
                    clc                           ;no errors

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美剧在线免费观看网站| 欧美视频一二三区| 国产精品自拍av| 狠狠色丁香婷综合久久| 精品一区二区三区在线视频| 另类小说视频一区二区| 日韩高清欧美激情| 欧美aaaaaa午夜精品| 蜜桃视频在线观看一区| 成人爱爱电影网址| 成a人片亚洲日本久久| 99久久久无码国产精品| av电影在线观看一区| 91免费观看国产| 欧美性三三影院| 日韩三级中文字幕| 久久久久久电影| 国产精品进线69影院| 一区二区三区四区高清精品免费观看 | 麻豆91精品91久久久的内涵| 日本欧美加勒比视频| 国产伦精品一区二区三区在线观看| 国产一区二区0| aa级大片欧美| 欧美久久免费观看| 久久视频一区二区| 亚洲欧美激情插| 免费xxxx性欧美18vr| 懂色av一区二区三区蜜臀| 久久网站最新地址| 国产精品久久久久久久久免费丝袜 | 国产精品沙发午睡系列990531| 中文字幕一区二区三| 性做久久久久久久免费看| 韩国一区二区在线观看| 91欧美一区二区| 日韩一区二区视频| 国产精品久久久久精k8 | 婷婷亚洲久悠悠色悠在线播放 | 久久久亚洲综合| 亚洲老司机在线| 久久精品国产一区二区三区免费看| 成人免费高清在线观看| 91精品国产免费| 亚洲婷婷综合久久一本伊一区| 免费看欧美美女黄的网站| 99综合电影在线视频| 日韩欧美一二区| 亚洲国产裸拍裸体视频在线观看乱了| 92国产精品观看| 久久精品在这里| 欧美aaaaaa午夜精品| 色成人在线视频| 国产精品免费免费| 国产精品综合一区二区| 欧美精品 日韩| 一区二区三区在线播| 成人激情动漫在线观看| 精品福利在线导航| 青青青爽久久午夜综合久久午夜| 91精品福利在线| 亚洲色图第一区| 91.麻豆视频| 亚洲小说春色综合另类电影| 97精品久久久久中文字幕| 国产亚洲精品aa| 国产麻豆日韩欧美久久| 精品国产自在久精品国产| 日本va欧美va瓶| 在线播放日韩导航| 亚洲国产wwwccc36天堂| 在线观看av一区二区| 樱桃国产成人精品视频| 91免费版在线看| 亚洲精品中文在线观看| 欧美成人在线直播| 美女www一区二区| 日韩欧美国产一区二区在线播放| 亚洲国产日韩a在线播放性色| 在线精品国精品国产尤物884a| 亚洲精品成a人| 欧美三级欧美一级| 婷婷丁香久久五月婷婷| 欧美丰满美乳xxx高潮www| 三级影片在线观看欧美日韩一区二区| 欧美亚洲一区二区在线观看| 性做久久久久久久久| 欧美一卡二卡三卡四卡| 国产一区二区三区久久悠悠色av | 蜜臀av性久久久久蜜臀aⅴ| 欧美电影一区二区三区| 麻豆精品视频在线观看| 久久蜜桃一区二区| 色综合天天综合在线视频| 一二三区精品福利视频| 在线成人av影院| 国产在线一区二区| 国产精品初高中害羞小美女文| 日本道色综合久久| 免费在线欧美视频| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品白丝jk黑袜喷水| 亚洲图片激情小说| 制服.丝袜.亚洲.中文.综合| 国产美女在线观看一区| 亚洲精品自拍动漫在线| 精品日韩欧美一区二区| 91丨porny丨国产| 精品一区二区三区在线播放 | 亚洲在线观看免费视频| 91精品欧美一区二区三区综合在 | 欧美夫妻性生活| 国产成人亚洲精品青草天美| 亚洲人成精品久久久久久| 91精品国产欧美一区二区成人| 成人va在线观看| 久久国产夜色精品鲁鲁99| 亚洲猫色日本管| 午夜精品久久久久久久久久久| 国产三级精品三级在线专区| 欧美日韩一区二区电影| 成人禁用看黄a在线| 男女男精品视频网| 亚洲精品日日夜夜| 国产日韩在线不卡| 91精品国产欧美一区二区| 91久久香蕉国产日韩欧美9色| 激情偷乱视频一区二区三区| 香蕉久久一区二区不卡无毒影院 | 日韩主播视频在线| 亚洲三级小视频| 亚洲精品一区二区三区蜜桃下载 | 91小视频在线免费看| 国产在线视频一区二区| 日韩av一区二| 亚洲午夜免费电影| 亚洲色图一区二区三区| 国产色一区二区| 久久免费电影网| 精品久久久久久久久久久院品网| 国产精品私房写真福利视频| 欧美一区二区在线免费播放| 在线观看日产精品| 日本精品视频一区二区三区| 99国产精品99久久久久久| 国产成人免费av在线| 国产一区二区三区国产| 国产一区二区三区在线观看免费 | 91精品免费观看| 欧美日韩成人综合在线一区二区| 色综合视频一区二区三区高清| 日韩三区在线观看| 日韩美女视频一区二区在线观看| 欧美久久久久久久久| 在线播放中文一区| 日韩一区二区三区三四区视频在线观看| 欧美日韩视频在线第一区| 在线看不卡av| 91精品国产综合久久蜜臀| 在线成人av网站| 精品国产一二三区| 国产午夜亚洲精品不卡| 国产精品色婷婷久久58| 亚洲天堂av一区| 亚洲一区二区精品3399| 免费观看一级欧美片| 老司机精品视频导航| 欧美日韩国产成人在线免费| 欧美性色aⅴ视频一区日韩精品| 欧美日韩电影在线播放| 欧美一级生活片| 国产精品少妇自拍| 亚洲国产人成综合网站| 久久精品二区亚洲w码| 国产不卡一区视频| 欧洲av一区二区嗯嗯嗯啊| 91精品国产综合久久婷婷香蕉| 久久新电视剧免费观看| 1区2区3区精品视频| 日韩制服丝袜先锋影音| 国产风韵犹存在线视精品| 色猫猫国产区一区二在线视频| 欧美日韩在线免费视频| 久久五月婷婷丁香社区| 极品销魂美女一区二区三区| 国产999精品久久久久久绿帽| 91国内精品野花午夜精品 | 亚洲精品一区在线观看| 亚洲色图.com| 极品瑜伽女神91| 日本黄色一区二区| 久久亚区不卡日本| 亚洲成人1区2区| caoporn国产一区二区| 欧美疯狂做受xxxx富婆| 国产精品萝li| 久久99精品一区二区三区三区| 一本久久精品一区二区 | 7777精品伊人久久久大香线蕉经典版下载 | 色94色欧美sute亚洲线路二|