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

📄 pass1.dat

📁 UART transmitter and receiver mocros
💻 DAT
📖 第 1 页 / 共 5 页
字号:
   OPERAND2-
    COMMENT-;transmit time to UART
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
   OPERAND2-
    COMMENT-
      LABEL-set_time_command
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_space
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-test_time_string
   OPERAND2-
    COMMENT-;interpret 'hh:mm:ss' string
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
   OPERAND2-prompt_input
    COMMENT-;test for invalid input
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s6
   OPERAND2-real_time_hours
    COMMENT-;set new time into clock
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s5
   OPERAND2-real_time_minutes
    COMMENT-
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s4
   OPERAND2-real_time_seconds
    COMMENT-
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s0
   OPERAND2-ms_time_lsb
    COMMENT-;clear 'ms' counter (s0=00)
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s0
   OPERAND2-ms_time_msb
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_time
   OPERAND2-
    COMMENT-;transmit new time to UART
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-test_for_ALARM
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_L
    COMMENT-;test for rest of 'ALARM'
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_A
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_R
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_M
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;now have a valid ALARM command to process
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_CR
    COMMENT-;carriage return means display alarm time
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-set_alarm_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_alarm_time
   OPERAND2-
    COMMENT-;transmit time to UART
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
   OPERAND2-
    COMMENT-
      LABEL-set_alarm_command
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_space
    COMMENT-;test for ON or OFF command
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_O
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-set_alarm_on_off
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s1
   OPERAND2-01
    COMMENT-;move memory pointer back to first character of 'hh:mm:ss' string
      LABEL-
INSTRUCTION-CALL
   OPERAND1-test_time_string
   OPERAND2-
    COMMENT-;interpret 'hh:mm:ss' string
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
   OPERAND2-prompt_input
    COMMENT-;test for invalid input
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s6
   OPERAND2-alarm_time_hours
    COMMENT-;set new time into clock
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s5
   OPERAND2-alarm_time_minutes
    COMMENT-
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s4
   OPERAND2-alarm_time_seconds
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_alarm_time
   OPERAND2-
    COMMENT-;transmit new alarm time and status
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
   OPERAND2-
    COMMENT-
      LABEL-set_alarm_on_off
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_N
    COMMENT-;test for 'ON'
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-test_OFF
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_CR
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-FETCH
   OPERAND1-s0
   OPERAND2-alarm_status
    COMMENT-;turn alarm on
      LABEL-
INSTRUCTION-OR
   OPERAND1-s0
   OPERAND2-alarm_armed
    COMMENT-
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s0
   OPERAND2-alarm_status
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_alarm_time
   OPERAND2-
    COMMENT-;transmit alarm time and status
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
   OPERAND2-
    COMMENT-
      LABEL-test_OFF
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_F
    COMMENT-;test for for 'OFF'
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_F
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_CR
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-bad_input_command
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-00
    COMMENT-;turn alarm off and stop an active alarm
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s0
   OPERAND2-alarm_status
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-alarm_drive
   OPERAND2-
    COMMENT-;turn off alarm
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_alarm_time
   OPERAND2-
    COMMENT-;transmit alarm time and status
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Read an 'hh:mm:ss' time string and provide new values.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The string must be provided in successive scratch pad memory locations
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;with the s1 register containing the location of the first character.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;A correct time specification will result in the return of new values
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;as follows:-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;       s6 = hours
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;       s5 = minutes
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;       s4 = seconds
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;If the syntax is incorrect or values are not in the correct ranges an
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;'Invalid Time' message will be transmitted and the CARRY flag will be set
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s6, s5 and s4
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-test_time_string
INSTRUCTION-CALL
   OPERAND1-2char_to_value
   OPERAND2-
    COMMENT-;obtain hours value
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
   OPERAND2-invalid_time
    COMMENT-;test for non-decimal characters
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s6
   OPERAND2-s2
    COMMENT-;remember hours
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s1
   OPERAND2-01
    COMMENT-;increment memory pointer past hours
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_colon
    COMMENT-;test for colon
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-invalid_time
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-2char_to_value
   OPERAND2-
    COMMENT-;obtain minutes value
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
   OPERAND2-invalid_time
    COMMENT-;test for non-decimal characters
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-s2
    COMMENT-;remember minutes
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s1
   OPERAND2-01
    COMMENT-;increment memory pointer past minutes
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_colon
    COMMENT-;test for colon
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-invalid_time
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-2char_to_value
   OPERAND2-
    COMMENT-;obtain seconds value
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
   OPERAND2-invalid_time
    COMMENT-;test for non-decimal characters
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-s2
    COMMENT-;remember minutes
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s1
   OPERAND2-01
    COMMENT-;increment memory pointer past seconds
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
   OPERAND2-character_CR
    COMMENT-;finish with carriage return
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-invalid_time
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Have values for hh:mm:ss but need to test if each is valid range.
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s6
   OPERAND2-hours_in_a_day
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NC
   OPERAND2-invalid_time
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s5
   OPERAND2-minutes_in_an_hour
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NC
   OPERAND2-invalid_time
    COMMENT-
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s4
   OPERAND2-seconds_in_a_minute
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NC
   OPERAND2-invalid_time
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s0
   OPERAND2-
    COMMENT-;reset CARRY flag (with s0=0)
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-;time string was OK
      LABEL-invalid_time
INSTRUCTION-CALL
   OPERAND1-send_Invalid
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_space
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_Time
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s0
   OPERAND2-
    COMMENT-;set CARRY flag
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-;time string was bad
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Fetch character from memory, convert to upper case
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;and increment memory pointer.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The memory pointer is provided in register s1.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The character obtained is returned in register s0.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0 and s1.
      LABEL-

⌨️ 快捷键说明

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