📄 pass1.dat
字号:
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 + -