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

📄 pager 原代碼.txt

📁 机器上存的以前的
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;*********************************************************************
;;***********************************************************************
;;
;;  PROJECT     : POSCAGE NUMERIC PAGER
;;
;;  CUSTOMER    : stardard
;;
;;  MCU         : AR5030
;;
;;  ROM/RAM     : 32K 8000H-FFFFH / 1K 60H-45F
;;
;;  RF BAND     : 100MHz,200MHz
;;
;;  PROGRAMMER  : Morrise hsu
;;
;;  PERIPHERAL  :
;;
;;  DATE        : 1999.06.27
;;
;;  VERSION     : V1.0A
;;
;;**************************************************************************

                .CHIP   R65c02
                .PL     1000
                .LINKLIST
                .SYNTAX         6502
                .SYMBOLS
                .MACLIST ON
                .INCLUDE 5030.INC
                .INCLUDE VAR.INC
                .INCLUDE CONT.INC
                .INCLUDE MACRO.INC

;******************************************
;******************************************
        ORG     $8000h

.CODE

       .INCLUDE font1.INC
       .INCLUDE display.inc

reset:
        jsr     delay
        jsr     delay
        nop
        nop
        nop
        cld                     ;clear decimal
        sei                     ;disable int
        ldx     #stack_ini      ;initial stack to 003fh - 0100h
        txs
;====================================
        jsr    init_port
        jsr    initial_timer
        jsr    init_int
        jsr    initial_clk_gen
        jsr    init_bfd
        jsr    clr_lcd

;;init lcd,dec ctr1,volt,lcd flag,screen flag,burn code flag
        lda    dummy1
        cmp    #5ah
        bne    new_clear
        lda    dummy2
        cmp    #a5h
        bne    new_clear
        mrmb   batlow_f         ;;after reset detect battery low again
       ;; lda    #btlot1
        stz    batlow_cnt
        jsr    clr_func
        bra    reset1

new_clear
        jsr    clr_ram
        jsr    init_dummy
        jsr    init_ram_value
reset1
        jsr    check_eep
        jsr    init_lcd
        jsr    chk_scr_op
        jsr    enable_int
        jsr    power_on_test
        bcc    reset2
        jmp    prog_mode_start
reset2:
     ;;   lda    com1
    ;;    cmp    #05        ;;check if enter write default or not
    ;;    bne    reset3
    ;;    stz    dummy1      ;;new eeprom
    ;;    stz    dummy2
    ;;    bra    reset       ;reinitialize
reset3:
        jsr    check_eep_err
      ; jsr    fill_eep             ;;using the test
        jsr    init_decoder
        motor_off
        msmb   stand_by
        bra    main1

;;*****************************************
;;stand_by=1,system to enter stand by mode
;;stand_by=0,system out of stand by mode
;;*****************************************

main:
        jsr    chk_bat_low
        cpu_halt

main1
        mbbr   r_decoder,decoder_ok
        mrmb   r_decoder
        jsr    reset_decoder
        jsr    trun_on_decoder2

decoder_ok:
        mbbr   f_msg,main2
        jmp    read_msg           ;;have new message

main2:
        jsr    ck_alarm_time
        jsr    chk_auto_onff
        jsr    unread_tone
        jsr    chk_bat_low
        mbbr   stand_by,check_new_key

        mbbr   auto_onff,main3
        jmp    entry_off

main3:
        mbbr   rd_lcd,main
        jsr    stand_by_screen
     ;; jsr    dsp_msg_no
        jsr    show_up_digit
        jsr    lcd_dr
        bra    main

check_new_key:
;;check new key in

        lda    #16
        sta    light_cnt
        mbbr   f_newkey,no_key
        mbbs   f_anykey,esc_func
main4
        mrmb   f_newkey
        stz    cnt_05s
        bbr    read,key_code,read_key
        bbr    select,key_code,sel_key
        bbr    func,key_code,func_key

no_key:
        lda    cnt_05s
        cmp    #16d             ;check function screen timeout
        beq    esc_func
        mbbr   rd_lcd,main
        mbbr   read_mode,no_key1
        jsr    ck_system_icon

no_key1:
        jsr    lcd_dr
        bra    main
     ;; mbbr   read_mode,main
        jsr    dsp_msg_no
        jsr    show_up_digit
        bra    main

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

esc_func:

        jsr    clr_func
        jsr    stand_by_screen
        jsr    show_up_digit
        jsr    lcd_dr
        jmp    main
;;*************************************

entry_func:
         dot_icon_off
         mrmb    scren      ;clr func screen flag
         msmb    entry      ;set entry flag
         lda     funcnt
entry_func1:
         asl     A
         tax
         jmp     (func_addr,x)


;;**********************************
;;func:
;;bit0:function screen
;;bit1:entry function
;;bit2:read msg mode
;;bit3:read msg function
;;*************************************
read_key:
        mbbs   scren,esc_func
        mbbs   entry,esc_func
        mbbs   read_mode,read_key1
        jmp    read_msg           ;;jmp read mode

read_key1:
        jmp    for_read

sel_key:
        mbbs   read_mode,ck_msg_func
        mbbs   scren,entry_func
        mbbs   entry,entry_func
        bra    esc_func

ck_msg_func:
        jmp    ck_msg_func0

func_key:
        mbbs   read_mode,msg_func
        mbbs   adjust,adj_mode         ;check entry adj func
        mbbs   scren,func_sel1          ;check enter function select
        msmb   scren
        stz    funcnt
;;************************************
;;************************************
;;select enter function
;;index by x register
;;scren flag:for function screen select
;;entry flag: for entry function
;;************************************
func_sel:
         lda     funcnt
         cmp     #05
         beq     ck_tone_item        ;check tone func scr
         cmp     #03
         beq     ck_auto_item
         cmp     #02
         beq     ck_clrall_item
func_ck:

         lda     funcnt
         asl     A
         tax
         lda     func_table,x        ;get table start address
         sta     string_headl
         inx
         lda     func_table,x
         sta     string_headh
         mrmb    china_char         ;clr china ver
         jsr     disp_str

         mbbs    read_mode,don't_clr_icon
         jsr     clr_icon_buf
         jsr     clr_up_digit

don't_clr_icon:

         jsr     ck_func_icon
         lda     funcnt
         cmp     #01
         beq     chk_dot_icon
         lda     funcnt
         sec
         sbc     #8
         bcs     chk_dot_icon
         dot_icon_on

chk_dot_icon
         jsr     lcd_dr
         jmp     main


func_sel1:
         inc     funcnt
         lda     funcnt
         cmp     #08h
         bne     func_sel
         stz     funcnt
         jmp     esc_func



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

adj_mode:
         lda     funcnt
         asl     A
         tax
         jmp     (adj_table,x)
;;***********************************
;;************************************

ck_tone_item:
         mbbs    tone_mode,func_ck
         inc     funcnt
         bra     func_ck

ck_auto_item:
         mbbr    auto_op,func_ck    ;;enable auto option
         inc     funcnt
         bra     func_ck

ck_clrall_item:
         lda     msg_no
         bne     func_ck
         inc     funcnt
         bra     func_sel
;;***********************************
;;read mode function:
;;delet,protect and unprotect function
;;***********************************
msg_func:
         msmb   msgfunc
         inc    funcnt
         lda    funcnt
         cmp    #9
         beq    ck_protect_msg
         cmp    #11
         beq    msg_func2
         cmp    #10
         bne    msg_func1
msg_func2:
         lda    #08
         sta    funcnt

msg_func1:
         jsr    ck_unprotect_msg
         jmp    func_ck          ;display function name

ck_protect_msg:
         ldx    msg_inx
         lda    msg_stat_start,x
         sta    tempa
         bbr6   tempa,msg_func1   ;check lock icon
         inc    funcnt
         bra    msg_func1

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

;;***********************************
func_addr:
                dw      entry_alert
                dw      entry_off
                dw      entry_clrall
                dw      entry_auto
                dw      entry_alarm
                dw      entry_tone
                dw      entry_time
                dw      entry_date

adj_table:

                dw      adj_alert
                dw      adj_off
                dw      adj_clrall
                dw      adj_auto
                dw      adj_alarm
                dw      adj_tone
                dw      adj_time
                dw      adj_date

 ;;************* function screen table *************
func_table:
                dw      alert_sel_table
                dw      off_table
                dw      clr_all
                dw      auto_table
                dw      alarm_table
                dw      tone_table
                dw      time_table
                dw      date_table
                dw      delete_table     ;;8
                dw      protect_table    ;;9
                dw      unprotect_table  ;;10
;;******************************
;;function entry point
;;******************************
esc_alert_sel:
        jmp    esc_func

entry_alert:
        mbbs   adjust,esc_alert_sel
        msmb   adjust        ;enter adjust
entry_alert1:
        jsr    clr_icon_buf
        mbbs   motor_mode,act_motor
        mbbs   mute_mode,act_mute

        lda    #12
        jsr    get_song_ptr1
        jsr    play_music2

show_tone_scr:

        msmb   tone_mode
        tone_icon_on
        lda    #.LOW.tone_scr   ;get tone of character start address
        sta    string_headl
        lda    #.HIGH.tone_scr
        sta    string_headh
        jsr    disp_str
        jsr    lcd_dr

        lda    song_no
        inc    A
        bin_bcd
        cpy    #0
        beq    show_tone_scr1

        sty    dsp_buf+8
        sta    dsp_buf+9
        smb7   dsp_buf+8
        smb7   dsp_buf+9
      ; jsr    set_flh_bit
        jsr    lcd_dr
        jmp    main

show_tone_scr1:

        sta    dsp_buf+8
      ; jsr    set_flh_bit
        smb7   dsp_buf+8
        jsr    lcd_dr
        jmp    main

act_motor:

        lda    #.LOW.motor_scr   ;get tone of character start address
        sta    string_headl
        lda    #.HIGH.motor_scr
        sta    string_headh
        jsr    disp_str
        jsr    set_flh_bit
        jsr    lcd_dr
        motor_icon_on
     ;  msmb   f_motor
        lda    #14
        jsr    get_song_ptr1
        jsr    play_music2
        jmp    main

act_mute:

        lda    #.LOW.mute_scr   ;get tone of character start address
        sta    string_headl
        lda    #.HIGH.mute_scr
        sta    string_headh
        jsr    disp_str
        jsr    set_flh_bit
        jsr    lcd_dr
        jsr    clr_icon_buf
        jmp    main

;;********************************
;;entry adjust auto  function
;;********************************
entry_off:
        msmb   sys_off
        mrmb   auto_onff
        msmb   stand_by
        disable  int_msg
        disable  int_ant
        clr    int_msg
        jsr    trun_off_decoder
        jsr    clr_func

        jsr    show_watch_c
        jsr    show_off_scr
        jsr    ck_alarm_icon
        jsr    lcd_dr
        jsr    show_up_digit


off_halt:
        mbbs   f_alarm,off_halt1
        msmb   stand_by
off_halt1:
        jsr    chk_bat_low
        cpu_halt
        jsr    chk_bat_low
        jsr    ck_alarm_time
        jsr    chk_auto_onff
        mbbs   auto_onff,trun_on_pager

        mbbr   stand_by,checkoff_new_key
        mbbr   rd_lcd,off_halt

off_halt2:
        mrmb   f_anykey
        mrmb   f_alarm
        mrmb   music_ply
        disable int_tempo
        flh_alm_off
        buzzer_out_off
        motor_off
        jsr    ck_alarm_icon
        jsr    show_watch_c
        jsr    show_off_scr
        jsr    lcd_dr
     ;;   jsr    show_up_digit
        bra    off_halt
;;==================================
checkoff_new_key:
        mbbr   f_newkey,off_no_key
        mbbs   f_anykey,off_halt2
        bbr    read,key_code,trun_on_pager
off_no_key:
        mbbr   rd_lcd,off_halt
        jsr    lcd_dr
        bra    off_halt
;;;==================================
trun_on_pager:
       mrmb    auto_onff
       jsr     power_on_test
       bcc     trun_on_pager1      ;;check manual program mode
       jmp     prog_mode_start
trun_on_pager1
       jsr     init_decoder
       jsr     init_pll
trun_on_pager2:
       motor_off
       mrmb    sys_off
       enable  int_msg
       enable  int_ant
       jsr     show_up_digit
       msmb    stand_by
       jmp     main

;;;***********************************
;;;show off screen at page off

show_off_scr:

        lda    #FONT_LE
        sta    dsp_buf7
        lda    #FONT_O
        sta    dsp_buf8
        lda    #FONT_F
        sta    dsp_buf9
        sta    dsp_buf10
        lda    #FONT_RE
        sta    dsp_buf11
        rts
;;********************************
;;delete all message funcion
;;Don't delete message when it is
;;unreaded and locked
;;********************************
adj_clrall
entry_clrall:
        ldy    #0

entry_clrall1:
        lda    msg_stat_start,y
        and    #11000010b
        cmp    #10000000b
        bne    entry_clrall2
        lda    msg_type_start,y
        and    #0fh
        sta    max_num
        lda    #00
        sta    msg_type_start,y
        sta    msg_stat_start,y
        jsr    adj_clr_pager      ;using x index reagist
        lda    msg_no
        beq    entry_clrall2
        dec    msg_no
entry_clrall2
        iny
        cpy    #12
        bne    entry_clrall1
        jmp    esc_func

;;********************************
;;entry adjust auto  function
;;shift:bit7 as entry auto flag cycle
;;********************************
entry_auto:
        mbbs   adjust,auto_onff_chk
        msmb   adjust
entry_auto3:
        lda    #.LOW.auto_on_scr         ;get tone of character start address
        mbbs   auto_en,entry_auto1
        lda    #.LOW.auto_off_scr

entry_auto1:

        sta    string_headl
        lda    #.HIGH.auto_on_scr

⌨️ 快捷键说明

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