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

📄 pager 原代碼.txt

📁 机器上存的以前的
💻 TXT
📖 第 1 页 / 共 5 页
字号:

tempo_end:
        stz     cnt_05s
tempo_end2:
        lda     #16
        sta     light_cnt
        pop_all
        rti

tempo_end1:
       lda       #14d
       sta       cnt_05s
       bra       tempo_end2

cnt_motor:
        inc_addr  song_ptr1,song_ptr
        lda      (song_ptr)     ;get tempo of value
        beq      cnt_motor1
        sta      tb_d
        bra      tempo_end
cnt_motor1:
        dec      song_repeat
        beq      motor_end
        jsr      get_song_ptr
        enable   int_tempo
        bra      cnt_motor
motor_end:
        motor_off
        disable  int_tempo
        bra      tempo_end

alarm_again:
        lda     #03
        jsr     get_song_ptr1
        bra     play_data1

;**********************************

clr_dspbuf:
        jsr    clr_icon_buf
clr_dspbuf1:
        ldx    #0
        lda    #space
clr_buf1:
        sta    dsp_buf,x
        inx
        cpx    #14
        bne    clr_buf1
        rts
;;********* check func of icon display  *************
ck_func_icon:

        lda    funcnt
        cmp    #00             ;alert function
        beq    ck_func_icon1
        cmp    #02             ;delete function
        beq    ck_func_icon5
        cmp    #04             ;alarm func
        beq    ck_func_icon2
        cmp    #05             ;tone  func
        beq    ck_func_icon3   ;time  func
        cmp    #06
        beq    ck_func_icon4

ck_read_icon:
        rts

ck_func_icon1:
        flh_motor_icon
        flh_tone_icon
        rts

ck_func_icon2:
        flh_alm_icon
        rts

ck_func_icon3:
        flh_tone_icon
        rts

ck_func_icon4:
        flh_time_icon
        rts

ck_func_icon5:
        flh_del_icon
        rts
;;===================================
;enable int

enable_int:
        lda    #00000101b    ;enable the watch and scankey
        sta    int_en0
        lda    #00000110b    ;enable battery fail int and ant range
        sta    int_en1
        cli                  ; enable int flag of 6502
        rts
;;*************************************
;; check alarm time
;;*************************************
ck_alarm_time:
        lda    sec
        bne    ck_alm_end
        mbbs   f_alarm,ck_alm_end

        stz    mp2       ;high byte to zero

        bbr7   alm_h1,ck_alm2
        ldx    #01              ;as alarm number
        lda    #alm_h1
ck_alarm_time1
        sta    mp1
        jsr    comp_alm_time
        bcc    ck_alm2
        rts
ck_alm2:
        bbr7   alm_h2,ck_alm3
        ldx    #02
        lda    #alm_h2
        sta    mp1
        jsr    comp_alm_time
        bcc    ck_alm3
        rts
ck_alm3:
        bbr7   alm_h2,ck_alm_end
        ldx    #03
        lda    #alm_h3
        sta    mp1
        jsr    comp_alm_time
ck_alm_end
        rts
;;*************************************
;; compare alarm time subroutine
;;*************************************
comp_alm_time:
        lda    (mp1)
        and    #01111111b   ;mask alarm on/off bit
        cmp    hour
        bne    comp_alm_end
        inc    mp1
        lda    (mp1)
        cmp    min
        bne    comp_alm_end
        lda    #.LOW.alarm_scr   ;get tone of character start address
        sta    string_headl
        lda    #.HIGH.alarm_scr
        sta    string_headh
        jsr    disp_str
        stx    dsp_buf8         ;show alarm number
        jsr    clr_func
        flh_alm_icon
        jsr    lcd_dr

        lda    #03
        jsr    get_song_ptr1
        jsr    play_music2
        mrmb   stand_by
        msmb   f_alarm
        msmb   f_anykey
        sec
        rts

comp_alm_end
        clc
        rts
;;***********************************
 ;;trun off the decoder
trun_off_decoder:
        lda    dec_ctr2
        and    #01111111b
        sta    dec_ctr2
        rts

trun_on_decoder1:

        lda    dec_ctr2
        ora    #10000000b
        sta    dec_ctr2
        rts

;;***********************************
trun_on_decoder:
        lda    #01
        sta    red_co
        lda    #0eh
        sta    rea_addr
        lda    #addr_buf
        sta    mp1
        stz    mp2
        jsr    read_eeprom

        lda    addr_buf+1
        lsr    A
        lsr    A
        lsr    A
        lsr    A
        sta    lock_onff

        lda    #01111111b
        and    addr1_ctr0
        sta    addr1_ctr0

        lda    #01111111b
        and    addr2_ctr0
        sta    addr2_ctr0

        lda    #01111111b
        and    addr3_ctr0
        sta    addr3_ctr0

        lda    #01111111b
        and    addr4_ctr0
        sta    addr4_ctr0

        lda    #80h
        bbs0   addr_buf+1,en_addr1
        lda    #00h
en_addr1:
         ora   addr1_ctr0
         sta   addr1_ctr0

        lda    #80h
        bbs1   addr_buf+1,en_addr2
        lda    #00h
en_addr2:
         ora   addr2_ctr0
         sta   addr2_ctr0

        lda    #80h
        bbs2   addr_buf+1,en_addr3
        lda    #00h
en_addr3:
        ora   addr3_ctr0
        sta   addr3_ctr0

        lda    #80h
        bbs3   addr_buf+1,en_addr4
        lda    #00h
en_addr4:
        ora   addr4_ctr0
        sta   addr4_ctr0

        mrmb   ver_f
        bbr7   addr_buf,sel_mid
        msmb   ver_f
sel_mid:
        mrmb   m_id
        bbr6   addr_buf,sel_mid_end
        msmb   m_id
sel_mid_end:
 ;;trun on  the decoder

        lda    addr_buf
        and    #00111111b
        ora    #11000000b
        sta    dec_ctr2
        rts
;;***********************************
 ;;reset decoder
reset_decoder:
        lda    #00111111b
        and    dec_ctr2
        sta    dec_ctr2
        nop
        nop
        nop
        nop
        nop
       ;; lda    #40h
       ;; sta    dec_ctr2
        rts
;;**********************************
trun_on_decoder2:
        nop
        nop
        lda    #c0h
        ora    dec_ctr2
        sta    dec_ctr2
        rts

;;*****************************************
;;initial decoder from eeprom
;;76.8khz,two consecutive uncorredtable
;;codeword to  call temination
;;*****************************************
init_decoder:
         jsr    reset_decoder
         jsr    fill_addr
         jsr    fill_lock
         jsr    fill_re1_re3
      ;  jsr    fill_var
         jsr    trun_on_decoder
         enable int_msg
         enable int_ant
         rts

;;****** read re1 and re3 data *******
fill_re1_re3:
         lda    #01
         sta    red_co
         lda    #10h
         sta    rea_addr
         lda    #addr_buf
         sta    mp1
         stz    mp2
         jsr    read_eeprom
         lda    addr_buf
         sta    re1_ctr
         lda    addr_buf+1
         sta    re3_ctr
         rts
;;****** fill the decoder ************
init_lcd:

         lda    #01
         sta    red_co
         lda    #0fh
         sta    rea_addr
         lda    #addr_buf
         sta    mp1
         stz    mp2
         jsr    read_eeprom
         lda    addr_buf
         and    #11111100b
         sta    dec_ctr1

  ;;check auto option
         mrmb   auto_op      ;enable auto option
         bbr0   addr_buf,sel_auto_op
         msmb   auto_op      ;;disable auto option

sel_auto_op:

         mrmb   btlot
         bbr1   addr_buf,sel_btlot
         msmb   btlot

sel_btlot:
;;init lcd frame rate and selR(resistor)
         stz   lcd_bus
         lda   addr_buf+1
         lsr   A
         lsr   A
         lsr   A
         ora   #80h
         sta   lcd_ctl

;;init  operating voltage
;;bit6=>1:low_load,0:high load
;;bit0,1:select operating voltage
;;The option of 2.5v is not available in AR50P31
;;The default ck100 set to 1(100khz)
;;The ck100 is freqency of oscillation clock in the convert
         lda   addr_buf+1
         asl   A
         asl   A
         asl   A
         asl   A               ;;getting the LDST
         and   #01000000b
         sta   temp
         lda   addr_buf+1      ;;getting the operating voltage
         and   #00000011b
         ora   temp
         ora   #80h           ;;setting the ck100 to 100khz
         sta   volt_ctl

         mrmb  ma7x_lcd
         mrmb  lcd1
    ;;   mrmb  manual
    ;;   bbr2  addr_buf+1,sel_lcd0
    ;;   msmb  manual
sel_lcd0:
         bbr4  addr_buf+1,sel_lcd1
         msmb  ma7x_lcd
sel_lcd1:
         bbr5  addr_buf+1,sel_scr
         msmb  lcd1
sel_scr:
         bbr6  addr_buf+1,init_lcd_end
         msmb  scr_f
init_lcd_end:
       ;;  msmb  ma7x_lcd        ;;for test
       ;;  mrmb  lcd1
         rts

;;;******* fill pocsag address *******
fill_addr:

         lda    #00h
         sta    addr1_ctr2
         sta    addr1_ctr1
         lda    #80h
         sta    addr1_ctr0
         jsr    fill_addr1
         jsr    fill_addr2
         jsr    fill_addr3
         jsr    fill_addr4
         rts
;;*********** fill lock value ***********
swap_lock_num:
       ; swap   alock1
       ; sta    alock1
       ; swap   alock2
       ; sta    alock2

       ; swap   block1
       ; sta    block1
       ; swap   block2
       ; sta    block2

       ; swap   clock1
       ; sta    clock1
       ; swap   clock2
       ; sta    clock2

       ; swap   dlock1
       ; sta    dlock1
       ; swap   dlock2
       ; sta    dlock2
       ; rts

fill_lock:

         lda    #04
         sta    red_co
         lda    #08h
         sta    rea_addr
         lda    #alock1
         sta    mp1
         stz    mp2
         jsr    read_eeprom
      ;  jsr    swap_lock_num
         stz    lock_num1
         stz    lock_num2

         lda    #alock1
         sta    mp1
         jsr    chk_lock_num
         sta    lock_num1

         lda    #block1
         sta    mp1
         jsr    chk_lock_num
         swap
         ora    lock_num1
         sta    lock_num1

         lda    #clock1
         sta    mp1
         jsr    chk_lock_num
         sta    lock_num2

         lda    #dlock1
         sta    mp1
         jsr    chk_lock_num
         swap
         ora    lock_num2
         sta    lock_num2


         lda    #alock1
         sta    mp1
         lda    lock_num1
         and    #0fh
         jsr    lock_mode

         lda    #block1
         sta    mp1
         lda    lock_num1
         shift_right
         jsr    lock_mode

         lda    #clock1
         sta    mp1
         lda    lock_num2
         and    #0fh
         jsr    lock_mode

         lda    #dlock1
         sta    mp1
         lda    lock_num2
         shift_right
         jsr    lock_mode
         rts


lock_mode:
         cmp    #04
         beq    lock_mode4
         cmp    #03d
         beq    lock_mode3     ;;lock 3 digit
         cmp    #02d
         beq    lock_mode2     ;;lock 2 digit
         cmp    #01d
         beq    lock_mode1     ;;lock 1 digit
         rts

lock_mode4:

         lda    (mp1)
         swap
         sta    (mp1)
         inc    mp1
         lda    (mp1)
         swap
         sta    (mp1)
         rts

lock_mode3:

         lda    (mp1)
         and    #0fh
         sta    tempa

         inc    mp1
         lda    (mp1)
         and    #f0h
         ora    tempa
         dec    mp1
         sta    (mp1)
         rts

lock_mode2:

         inc    mp1
         lda    (mp1)
         swap
         dec    mp1
         sta    (mp1)
         rts

lock_mode1:
         inc    mp1
         lda    (mp1)
         and    #0fh
         dec    mp1
         sta    (mp1)
         rts
;;************ check lock number **********
chk_lock_num:
         stz    temp
         mrmb   t_flag
chk_lock_num1:
         lda    (mp1)
         and    #0fh
         cmp    #0ah
         beq    chk_lock_num2
         inc    temp
chk_lock_num2
         lda    (mp1)
         lsr    A
         lsr    A
         lsr    A
         lsr    A
         cmp    #0ah
         beq    chk_lock_num3
         inc    temp
chk_lock_num3:
         mbbr   t_flag,chk_lock_num4
         lda    temp
         rts
chk_lock_num4:
         inc    mp1
         msmb   t_flag
         bra    chk_lock_num1

;;******** fill lock on/off and main ID *********
;fill_var:

        ; lda    #01
        ; sta    red_co
        ; lda    #0ch
        ; sta    rea_addr
        ; lda    #lock_onff
        ; sta    mp1
        ; stz    mp2
        ; jsr    read_eeprom
        ; mrmb   ver_f
        ; bbr1   m_id,fill_var_end
        ; msmb   ver_f
;fill_var_end:
        ; rts
;;*********

⌨️ 快捷键说明

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