📄 pass1.dat
字号:
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-fetch_char_from_memory
INSTRUCTION-FETCH
OPERAND1-s0
OPERAND2-(s1)
COMMENT-;read character
LABEL-
INSTRUCTION-CALL
OPERAND1-upper_case
OPERAND2-
COMMENT-;convert to upper case
LABEL-
INSTRUCTION-ADD
OPERAND1-s1
OPERAND2-01
COMMENT-;increment memory pointer
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Read one character from the UART
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Character read will be returned in a register called 'UART_data' and will be
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;echoed to the UART transmitter.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The routine first tests the receiver FIFO buffer to see if data is present.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;If the FIFO is empty, the routine waits until there is a character to read.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;As this could take any amount of time the wait loop includes a call to the
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;subroutine which updates the real time clock.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0 and UART_data
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-read_from_UART
INSTRUCTION-INPUT
OPERAND1-s0
OPERAND2-UART_status_port
COMMENT-;test Rx_FIFO buffer
LABEL-
INSTRUCTION-TEST
OPERAND1-s0
OPERAND2-rx_data_present
COMMENT-
LABEL-
INSTRUCTION-JUMP
OPERAND1-NZ
OPERAND2-read_character
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-update_time
OPERAND2-
COMMENT-;Perform useful operation whilst waiting
LABEL-
INSTRUCTION-JUMP
OPERAND1-read_from_UART
OPERAND2-
COMMENT-
LABEL-read_character
INSTRUCTION-INPUT
OPERAND1-UART_data
OPERAND2-UART_read_port
COMMENT-;read from FIFO
LABEL-
INSTRUCTION-CALL
OPERAND1-send_to_UART
OPERAND2-
COMMENT-;echo received character
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Transmit one character to the UART
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Character supplied in register called 'UART_data'.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The routine first tests the transmit FIFO buffer to see if it is full.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;If the FIFO is full, the routine waits until there is space which could
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;be as long as it takes to transmit one complete character.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Baud Rate Time per Character (10 bits)
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 9600 1,024us
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 19200 521us
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 38400 260us
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 57600 174us
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 115200 87us
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Since this is a relatively long duration, the wait loop includes a
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;call to the subroutine which updates the real time clock.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-send_to_UART
INSTRUCTION-INPUT
OPERAND1-s0
OPERAND2-UART_status_port
COMMENT-;test Tx_FIFO buffer
LABEL-
INSTRUCTION-TEST
OPERAND1-s0
OPERAND2-tx_full
COMMENT-
LABEL-
INSTRUCTION-JUMP
OPERAND1-Z
OPERAND2-UART_write
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-update_time
OPERAND2-
COMMENT-;Perform useful operation whilst waiting
LABEL-
INSTRUCTION-JUMP
OPERAND1-send_to_UART
OPERAND2-
COMMENT-
LABEL-UART_write
INSTRUCTION-OUTPUT
OPERAND1-UART_data
OPERAND2-UART_write_port
COMMENT-
LABEL-
INSTRUCTION-RETURN
OPERAND1-
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-;Alarm output
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Uses the alarm status scratch pad memory to set or reset the alarm
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;control bit on the alarm output port.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-alarm_drive
INSTRUCTION-FETCH
OPERAND1-s0
OPERAND2-alarm_status
COMMENT-;read status
LABEL-
INSTRUCTION-AND
OPERAND1-s0
OPERAND2-alarm_active
COMMENT-;isolate bit0
LABEL-
INSTRUCTION-OUTPUT
OPERAND1-s0
OPERAND2-alarm_port
COMMENT-
LABEL-
INSTRUCTION-RETURN
OPERAND1-
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-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Transmit the time to the UART port in the format hh:mm:ss and end
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;with a carriage return.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The time to converted must be stored in 3 scratch pad memory locations as
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;defined below. A register named 'store_pointer' must provide the address of
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;first location.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Address Data
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; store_pointer ----> hours
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; store_pointer + 1 ----> minutes
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; store_pointer + 1 ----> seconds
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The routine first converts the time into an ASCII string stored in scratch
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The string will then be transmitted.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-transmit_time
INSTRUCTION-LOAD
OPERAND1-store_pointer
OPERAND2-real_time_hours
COMMENT-;locate current time in memory
LABEL-
INSTRUCTION-CALL
OPERAND1-time_to_ASCII
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-transmit_string
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Transmit the alarm time and status to the UART port in the format hh:mm:ss and
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;ending with carriage return.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The alarm time to converted must be stored in 3 scratch pad memory locations as
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;defined below. A register named 'store_pointer' must provide the address of
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;first location.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Address Data
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; store_pointer ----> hours
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; store_pointer + 1 ----> minutes
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; store_pointer + 1 ----> seconds
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The routine first converts the time into an ASCII string stored in scratch
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The string will then be transmitted.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-transmit_alarm_time
INSTRUCTION-LOAD
OPERAND1-store_pointer
OPERAND2-alarm_time_hours
COMMENT-;locate alarm time in memory
LABEL-
INSTRUCTION-CALL
OPERAND1-time_to_ASCII
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-transmit_string
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-send_Alarm
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-send_space
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-FETCH
OPERAND1-s0
OPERAND2-alarm_status
COMMENT-;read alarm status
LABEL-
INSTRUCTION-TEST
OPERAND1-s0
OPERAND2-alarm_active
COMMENT-;test for active
LABEL-
INSTRUCTION-JUMP
OPERAND1-Z
OPERAND2-test_armed
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-send_Active
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
LABEL-test_armed
INSTRUCTION-TEST
OPERAND1-s0
OPERAND2-alarm_armed
COMMENT-;test for on
LABEL-
INSTRUCTION-JUMP
OPERAND1-Z
OPERAND2-alarm_is_off
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-send_ON
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
LABEL-alarm_is_off
INSTRUCTION-CALL
OPERAND1-send_OFF
OPERAND2-
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -