Files
vhdl/projects/PicoBlaze/ise/Assembler/PASS5.DAT
T
jens d61b3c2e0c - added
git-svn-id: http://moon:8086/svn/vhdl/trunk@1416 cc03376c-175c-47c8-b038-4cd826a8556b
2021-03-21 10:58:54 +00:00

10081 lines
199 KiB
Plaintext

ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;KCPSM3 Program - Real Time Clock with UART communication.
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Ken Chapman - Xilinx Ltd - October 2003
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Port definitions
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT UART_status_port, 00
LOGFORMAT-CONSTANT UART_status_port, 00
INSTRUCTION-CONSTANT
OPERAND1-UART_status_port
OP1 VALUE-UART_status_port
OPERAND2-00
OP2 VALUE-00
COMMENT-;UART status input
ADDRESS-000
LABEL-
FORMATTED-CONSTANT tx_half_full, 01
LOGFORMAT-CONSTANT tx_half_full, 01
INSTRUCTION-CONSTANT
OPERAND1-tx_half_full
OP1 VALUE-tx_half_full
OPERAND2-01
OP2 VALUE-01
COMMENT-; Transmitter half full - bit0
ADDRESS-000
LABEL-
FORMATTED-CONSTANT tx_full, 02
LOGFORMAT-CONSTANT tx_full, 02
INSTRUCTION-CONSTANT
OPERAND1-tx_full
OP1 VALUE-tx_full
OPERAND2-02
OP2 VALUE-02
COMMENT-; FIFO full - bit1
ADDRESS-000
LABEL-
FORMATTED-CONSTANT rx_half_full, 04
LOGFORMAT-CONSTANT rx_half_full, 04
INSTRUCTION-CONSTANT
OPERAND1-rx_half_full
OP1 VALUE-rx_half_full
OPERAND2-04
OP2 VALUE-04
COMMENT-; Receiver half full - bit2
ADDRESS-000
LABEL-
FORMATTED-CONSTANT rx_full, 08
LOGFORMAT-CONSTANT rx_full, 08
INSTRUCTION-CONSTANT
OPERAND1-rx_full
OP1 VALUE-rx_full
OPERAND2-08
OP2 VALUE-08
COMMENT-; FIFO full - bit3
ADDRESS-000
LABEL-
FORMATTED-CONSTANT rx_data_present, 10
LOGFORMAT-CONSTANT rx_data_present, 10
INSTRUCTION-CONSTANT
OPERAND1-rx_data_present
OP1 VALUE-rx_data_present
OPERAND2-10
OP2 VALUE-10
COMMENT-; data present - bit4
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT UART_read_port, 01
LOGFORMAT-CONSTANT UART_read_port, 01
INSTRUCTION-CONSTANT
OPERAND1-UART_read_port
OP1 VALUE-UART_read_port
OPERAND2-01
OP2 VALUE-01
COMMENT-;UART Rx data input
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT UART_write_port, 01
LOGFORMAT-CONSTANT UART_write_port, 01
INSTRUCTION-CONSTANT
OPERAND1-UART_write_port
OP1 VALUE-UART_write_port
OPERAND2-01
OP2 VALUE-01
COMMENT-;UART Tx data output
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_port, 00
LOGFORMAT-CONSTANT alarm_port, 00
INSTRUCTION-CONSTANT
OPERAND1-alarm_port
OP1 VALUE-alarm_port
OPERAND2-00
OP2 VALUE-00
COMMENT-;Alarm output
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_control, 01
LOGFORMAT-CONSTANT alarm_control, 01
INSTRUCTION-CONSTANT
OPERAND1-alarm_control
OP1 VALUE-alarm_control
OPERAND2-01
OP2 VALUE-01
COMMENT-; bit0
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Special Register usage
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-NAMEREG sF, UART_data
LOGFORMAT-NAMEREG sF, UART_data
INSTRUCTION-NAMEREG
OPERAND1-sF
OP1 VALUE-sF
OPERAND2-UART_data
OP2 VALUE-UART_data
COMMENT-;used to pass data to and from the UART
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-NAMEREG sE, store_pointer
LOGFORMAT-NAMEREG sE, store_pointer
INSTRUCTION-NAMEREG
OPERAND1-sE
OP1 VALUE-sE
OPERAND2-store_pointer
OP2 VALUE-store_pointer
COMMENT-;used to pass location of data in scratch pad memory
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Two registers to form a 16-bit counter used to count
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;interrupt pulses generated at 1us intervals.
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-NAMEREG sD, int_counter_lsb
LOGFORMAT-NAMEREG sD, int_counter_lsb
INSTRUCTION-NAMEREG
OPERAND1-sD
OP1 VALUE-sD
OPERAND2-int_counter_lsb
OP2 VALUE-int_counter_lsb
COMMENT-;lower 8-bits
ADDRESS-000
LABEL-
FORMATTED-NAMEREG sC, int_counter_msb
LOGFORMAT-NAMEREG sC, int_counter_msb
INSTRUCTION-NAMEREG
OPERAND1-sC
OP1 VALUE-sC
OPERAND2-int_counter_msb
OP2 VALUE-int_counter_msb
COMMENT-;upper 8-bits
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Scratch Pad Memory Locations
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT us_time_stamp_lsb, 00
LOGFORMAT-CONSTANT us_time_stamp_lsb, 00
INSTRUCTION-CONSTANT
OPERAND1-us_time_stamp_lsb
OP1 VALUE-us_time_stamp_lsb
OPERAND2-00
OP2 VALUE-00
COMMENT-;16-bit micro-second time stamp
ADDRESS-000
LABEL-
FORMATTED-CONSTANT us_time_stamp_msb, 01
LOGFORMAT-CONSTANT us_time_stamp_msb, 01
INSTRUCTION-CONSTANT
OPERAND1-us_time_stamp_msb
OP1 VALUE-us_time_stamp_msb
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT us_time_lsb, 02
LOGFORMAT-CONSTANT us_time_lsb, 02
INSTRUCTION-CONSTANT
OPERAND1-us_time_lsb
OP1 VALUE-us_time_lsb
OPERAND2-02
OP2 VALUE-02
COMMENT-;16-bit micro-second real time value
ADDRESS-000
LABEL-
FORMATTED-CONSTANT us_time_msb, 03
LOGFORMAT-CONSTANT us_time_msb, 03
INSTRUCTION-CONSTANT
OPERAND1-us_time_msb
OP1 VALUE-us_time_msb
OPERAND2-03
OP2 VALUE-03
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT ms_time_lsb, 04
LOGFORMAT-CONSTANT ms_time_lsb, 04
INSTRUCTION-CONSTANT
OPERAND1-ms_time_lsb
OP1 VALUE-ms_time_lsb
OPERAND2-04
OP2 VALUE-04
COMMENT-;16-bit milli-second real time value
ADDRESS-000
LABEL-
FORMATTED-CONSTANT ms_time_msb, 05
LOGFORMAT-CONSTANT ms_time_msb, 05
INSTRUCTION-CONSTANT
OPERAND1-ms_time_msb
OP1 VALUE-ms_time_msb
OPERAND2-05
OP2 VALUE-05
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT real_time_hours, 06
LOGFORMAT-CONSTANT real_time_hours, 06
INSTRUCTION-CONSTANT
OPERAND1-real_time_hours
OP1 VALUE-real_time_hours
OPERAND2-06
OP2 VALUE-06
COMMENT-;Current clock time
ADDRESS-000
LABEL-
FORMATTED-CONSTANT real_time_minutes, 07
LOGFORMAT-CONSTANT real_time_minutes, 07
INSTRUCTION-CONSTANT
OPERAND1-real_time_minutes
OP1 VALUE-real_time_minutes
OPERAND2-07
OP2 VALUE-07
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-CONSTANT real_time_seconds, 08
LOGFORMAT-CONSTANT real_time_seconds, 08
INSTRUCTION-CONSTANT
OPERAND1-real_time_seconds
OP1 VALUE-real_time_seconds
OPERAND2-08
OP2 VALUE-08
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_time_hours, 09
LOGFORMAT-CONSTANT alarm_time_hours, 09
INSTRUCTION-CONSTANT
OPERAND1-alarm_time_hours
OP1 VALUE-alarm_time_hours
OPERAND2-09
OP2 VALUE-09
COMMENT-;Alarm time
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_time_minutes, 0A
LOGFORMAT-CONSTANT alarm_time_minutes, 0A
INSTRUCTION-CONSTANT
OPERAND1-alarm_time_minutes
OP1 VALUE-alarm_time_minutes
OPERAND2-0A
OP2 VALUE-0A
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_time_seconds, 0B
LOGFORMAT-CONSTANT alarm_time_seconds, 0B
INSTRUCTION-CONSTANT
OPERAND1-alarm_time_seconds
OP1 VALUE-alarm_time_seconds
OPERAND2-0B
OP2 VALUE-0B
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_status, 0C
LOGFORMAT-CONSTANT alarm_status, 0C
INSTRUCTION-CONSTANT
OPERAND1-alarm_status
OP1 VALUE-alarm_status
OPERAND2-0C
OP2 VALUE-0C
COMMENT-;Alarm status
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_active, 01
LOGFORMAT-CONSTANT alarm_active, 01
INSTRUCTION-CONSTANT
OPERAND1-alarm_active
OP1 VALUE-alarm_active
OPERAND2-01
OP2 VALUE-01
COMMENT-; bit0 - Alarm is active
ADDRESS-000
LABEL-
FORMATTED-CONSTANT alarm_armed, 02
LOGFORMAT-CONSTANT alarm_armed, 02
INSTRUCTION-CONSTANT
OPERAND1-alarm_armed
OP1 VALUE-alarm_armed
OPERAND2-02
OP2 VALUE-02
COMMENT-; bit1 - Alarm is armed
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT time_preserve0, 10
LOGFORMAT-CONSTANT time_preserve0, 10
INSTRUCTION-CONSTANT
OPERAND1-time_preserve0
OP1 VALUE-time_preserve0
OPERAND2-10
OP2 VALUE-10
COMMENT-;storage for protection of registers
ADDRESS-000
LABEL-
FORMATTED-CONSTANT time_preserve1, 11
LOGFORMAT-CONSTANT time_preserve1, 11
INSTRUCTION-CONSTANT
OPERAND1-time_preserve1
OP1 VALUE-time_preserve1
OPERAND2-11
OP2 VALUE-11
COMMENT-;used by the real time clock routine.
ADDRESS-000
LABEL-
FORMATTED-CONSTANT time_preserve2, 12
LOGFORMAT-CONSTANT time_preserve2, 12
INSTRUCTION-CONSTANT
OPERAND1-time_preserve2
OP1 VALUE-time_preserve2
OPERAND2-12
OP2 VALUE-12
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-CONSTANT time_preserve3, 13
LOGFORMAT-CONSTANT time_preserve3, 13
INSTRUCTION-CONSTANT
OPERAND1-time_preserve3
OP1 VALUE-time_preserve3
OPERAND2-13
OP2 VALUE-13
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-CONSTANT time_preserve4, 14
LOGFORMAT-CONSTANT time_preserve4, 14
INSTRUCTION-CONSTANT
OPERAND1-time_preserve4
OP1 VALUE-time_preserve4
OPERAND2-14
OP2 VALUE-14
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-CONSTANT time_preserve5, 15
LOGFORMAT-CONSTANT time_preserve5, 15
INSTRUCTION-CONSTANT
OPERAND1-time_preserve5
OP1 VALUE-time_preserve5
OPERAND2-15
OP2 VALUE-15
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;UART character strings will be stored in scratch pad memory ending in carriage return.
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;A string can be up to 16 characters with the start location defined by this constant.
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-CONSTANT string_start, 20
LOGFORMAT-CONSTANT string_start, 20
INSTRUCTION-CONSTANT
OPERAND1-string_start
OP1 VALUE-string_start
OPERAND2-20
OP2 VALUE-20
COMMENT-
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Initialise the system
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-000
LABEL-cold_start
FORMATTED-LOAD s0, 00
LOGFORMAT-LOAD s0, 00
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-00
OP2 VALUE-00
COMMENT-;clear all time values
ADDRESS-001
LABEL-
FORMATTED-STORE s0, us_time_stamp_lsb
LOGFORMAT-STORE s0, us_time_stamp_lsb[00]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-us_time_stamp_lsb
OP2 VALUE-00
COMMENT-
ADDRESS-002
LABEL-
FORMATTED-STORE s0, us_time_stamp_msb
LOGFORMAT-STORE s0, us_time_stamp_msb[01]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-us_time_stamp_msb
OP2 VALUE-01
COMMENT-
ADDRESS-003
LABEL-
FORMATTED-STORE s0, us_time_lsb
LOGFORMAT-STORE s0, us_time_lsb[02]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-us_time_lsb
OP2 VALUE-02
COMMENT-
ADDRESS-004
LABEL-
FORMATTED-STORE s0, us_time_msb
LOGFORMAT-STORE s0, us_time_msb[03]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-us_time_msb
OP2 VALUE-03
COMMENT-
ADDRESS-005
LABEL-
FORMATTED-STORE s0, ms_time_lsb
LOGFORMAT-STORE s0, ms_time_lsb[04]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-ms_time_lsb
OP2 VALUE-04
COMMENT-
ADDRESS-006
LABEL-
FORMATTED-STORE s0, ms_time_msb
LOGFORMAT-STORE s0, ms_time_msb[05]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-ms_time_msb
OP2 VALUE-05
COMMENT-
ADDRESS-007
LABEL-
FORMATTED-STORE s0, real_time_hours
LOGFORMAT-STORE s0, real_time_hours[06]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-real_time_hours
OP2 VALUE-06
COMMENT-
ADDRESS-008
LABEL-
FORMATTED-STORE s0, real_time_minutes
LOGFORMAT-STORE s0, real_time_minutes[07]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-real_time_minutes
OP2 VALUE-07
COMMENT-
ADDRESS-009
LABEL-
FORMATTED-STORE s0, real_time_seconds
LOGFORMAT-STORE s0, real_time_seconds[08]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-real_time_seconds
OP2 VALUE-08
COMMENT-
ADDRESS-00A
LABEL-
FORMATTED-STORE s0, alarm_time_hours
LOGFORMAT-STORE s0, alarm_time_hours[09]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_time_hours
OP2 VALUE-09
COMMENT-
ADDRESS-00B
LABEL-
FORMATTED-STORE s0, alarm_time_minutes
LOGFORMAT-STORE s0, alarm_time_minutes[0A]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_time_minutes
OP2 VALUE-0A
COMMENT-
ADDRESS-00C
LABEL-
FORMATTED-STORE s0, alarm_time_seconds
LOGFORMAT-STORE s0, alarm_time_seconds[0B]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_time_seconds
OP2 VALUE-0B
COMMENT-
ADDRESS-00D
LABEL-
FORMATTED-STORE s0, alarm_status
LOGFORMAT-STORE s0, alarm_status[0C]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-;clear and disable alarm
ADDRESS-00E
LABEL-
FORMATTED-CALL alarm_drive
LOGFORMAT-CALL alarm_drive[0A4]
INSTRUCTION-CALL
OPERAND1-alarm_drive
OP1 VALUE-0A4
OPERAND2-
OP2 VALUE-
COMMENT-;turn off alarm control output port
ADDRESS-00F
LABEL-
FORMATTED-LOAD int_counter_lsb, 00
LOGFORMAT-LOAD int_counter_lsb[sD], 00
INSTRUCTION-LOAD
OPERAND1-int_counter_lsb
OP1 VALUE-sD
OPERAND2-00
OP2 VALUE-00
COMMENT-;clear 'us' interrupt counter
ADDRESS-010
LABEL-
FORMATTED-LOAD int_counter_msb, 00
LOGFORMAT-LOAD int_counter_msb[sC], 00
INSTRUCTION-LOAD
OPERAND1-int_counter_msb
OP1 VALUE-sC
OPERAND2-00
OP2 VALUE-00
COMMENT-
ADDRESS-011
LABEL-
FORMATTED-ENABLE INTERRUPT
LOGFORMAT-ENABLE INTERRUPT
INSTRUCTION-ENABLE
OPERAND1-INTERRUPT
OP1 VALUE-INTERRUPT
OPERAND2-
OP2 VALUE-
COMMENT-;enable the 1us interrupts
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Start of the main program loop.
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;A prompt is transmitted to the UART transmitter and then
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;a command can be entered and interpreted.
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-012
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-012
LABEL-prompt_input
FORMATTED-CALL send_prompt
LOGFORMAT-CALL send_prompt[115]
INSTRUCTION-CALL
OPERAND1-send_prompt
OP1 VALUE-115
OPERAND2-
OP2 VALUE-
COMMENT-;Prompt 'KCPSM3>'
ADDRESS-013
LABEL-
FORMATTED-CALL receive_string
LOGFORMAT-CALL receive_string[0C3]
INSTRUCTION-CALL
OPERAND1-receive_string
OP1 VALUE-0C3
OPERAND2-
OP2 VALUE-
COMMENT-;obtain input string and maintain the time
ADDRESS-014
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-014
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-014
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Parse the string and perform actions as required
ADDRESS-014
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-014
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-014
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-014
LABEL-
FORMATTED-LOAD s1, string_start
LOGFORMAT-LOAD s1, string_start[20]
INSTRUCTION-LOAD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-string_start
OP2 VALUE-20
COMMENT-
ADDRESS-015
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-016
LABEL-
FORMATTED-COMPARE s0, character_CR
LOGFORMAT-COMPARE s0, character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-;carriage return does nothing
ADDRESS-017
LABEL-
FORMATTED-JUMP Z, prompt_input
LOGFORMAT-JUMP Z, prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-prompt_input
OP2 VALUE-012
COMMENT-
ADDRESS-018
LABEL-
FORMATTED-COMPARE s0, character_T
LOGFORMAT-COMPARE s0, character_T[54]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_T
OP2 VALUE-54
COMMENT-;start of 'TIME' command?
ADDRESS-019
LABEL-
FORMATTED-JUMP Z, test_for_TIME
LOGFORMAT-JUMP Z, test_for_TIME[01E]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-test_for_TIME
OP2 VALUE-01E
COMMENT-
ADDRESS-01A
LABEL-
FORMATTED-COMPARE s0, character_A
LOGFORMAT-COMPARE s0, character_A[41]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_A
OP2 VALUE-41
COMMENT-;start of 'ALARM' command?
ADDRESS-01B
LABEL-
FORMATTED-JUMP Z, test_for_ALARM
LOGFORMAT-JUMP Z, test_for_ALARM[037]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-test_for_ALARM
OP2 VALUE-037
COMMENT-
ADDRESS-01C
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01C
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;trap other command starts here
ADDRESS-01C
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01C
LABEL-bad_input_command
FORMATTED-CALL send_Syntax_Error
LOGFORMAT-CALL send_Syntax_Error[0ED]
INSTRUCTION-CALL
OPERAND1-send_Syntax_Error
OP1 VALUE-0ED
OPERAND2-
OP2 VALUE-
COMMENT-;no valid command
ADDRESS-01D
LABEL-
FORMATTED-JUMP Z, prompt_input
LOGFORMAT-JUMP Z, prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-prompt_input
OP2 VALUE-012
COMMENT-
ADDRESS-01E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01E
LABEL-test_for_TIME
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-01F
LABEL-
FORMATTED-COMPARE s0, character_I
LOGFORMAT-COMPARE s0, character_I[49]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_I
OP2 VALUE-49
COMMENT-;test for rest of 'TIME'
ADDRESS-020
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-021
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-022
LABEL-
FORMATTED-COMPARE s0, character_M
LOGFORMAT-COMPARE s0, character_M[4D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_M
OP2 VALUE-4D
COMMENT-
ADDRESS-023
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-024
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-025
LABEL-
FORMATTED-COMPARE s0, character_E
LOGFORMAT-COMPARE s0, character_E[45]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_E
OP2 VALUE-45
COMMENT-
ADDRESS-026
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-027
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;now have a valid TIME command to process
ADDRESS-027
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-028
LABEL-
FORMATTED-COMPARE s0, character_CR
LOGFORMAT-COMPARE s0, character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-;carriage return means display time
ADDRESS-029
LABEL-
FORMATTED-JUMP NZ, set_time_command
LOGFORMAT-JUMP NZ, set_time_command[02C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-set_time_command
OP2 VALUE-02C
COMMENT-
ADDRESS-02A
LABEL-
FORMATTED-CALL transmit_time
LOGFORMAT-CALL transmit_time[0A8]
INSTRUCTION-CALL
OPERAND1-transmit_time
OP1 VALUE-0A8
OPERAND2-
OP2 VALUE-
COMMENT-;transmit time to UART
ADDRESS-02B
LABEL-
FORMATTED-JUMP prompt_input
LOGFORMAT-JUMP prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-prompt_input
OP1 VALUE-012
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-02C
LABEL-set_time_command
FORMATTED-COMPARE s0, character_space
LOGFORMAT-COMPARE s0, character_space[20]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_space
OP2 VALUE-20
COMMENT-
ADDRESS-02D
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-02E
LABEL-
FORMATTED-CALL test_time_string
LOGFORMAT-CALL test_time_string[06D]
INSTRUCTION-CALL
OPERAND1-test_time_string
OP1 VALUE-06D
OPERAND2-
OP2 VALUE-
COMMENT-;interpret 'hh:mm:ss' string
ADDRESS-02F
LABEL-
FORMATTED-JUMP C, prompt_input
LOGFORMAT-JUMP C, prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-prompt_input
OP2 VALUE-012
COMMENT-;test for invalid input
ADDRESS-030
LABEL-
FORMATTED-STORE s6, real_time_hours
LOGFORMAT-STORE s6, real_time_hours[06]
INSTRUCTION-STORE
OPERAND1-s6
OP1 VALUE-s6
OPERAND2-real_time_hours
OP2 VALUE-06
COMMENT-;set new time into clock
ADDRESS-031
LABEL-
FORMATTED-STORE s5, real_time_minutes
LOGFORMAT-STORE s5, real_time_minutes[07]
INSTRUCTION-STORE
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-real_time_minutes
OP2 VALUE-07
COMMENT-
ADDRESS-032
LABEL-
FORMATTED-STORE s4, real_time_seconds
LOGFORMAT-STORE s4, real_time_seconds[08]
INSTRUCTION-STORE
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-real_time_seconds
OP2 VALUE-08
COMMENT-
ADDRESS-033
LABEL-
FORMATTED-STORE s0, ms_time_lsb
LOGFORMAT-STORE s0, ms_time_lsb[04]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-ms_time_lsb
OP2 VALUE-04
COMMENT-;clear 'ms' counter (s0=00)
ADDRESS-034
LABEL-
FORMATTED-STORE s0, ms_time_msb
LOGFORMAT-STORE s0, ms_time_msb[05]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-ms_time_msb
OP2 VALUE-05
COMMENT-
ADDRESS-035
LABEL-
FORMATTED-CALL transmit_time
LOGFORMAT-CALL transmit_time[0A8]
INSTRUCTION-CALL
OPERAND1-transmit_time
OP1 VALUE-0A8
OPERAND2-
OP2 VALUE-
COMMENT-;transmit new time to UART
ADDRESS-036
LABEL-
FORMATTED-JUMP prompt_input
LOGFORMAT-JUMP prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-prompt_input
OP1 VALUE-012
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-037
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-037
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-037
LABEL-test_for_ALARM
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-038
LABEL-
FORMATTED-COMPARE s0, character_L
LOGFORMAT-COMPARE s0, character_L[4C]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_L
OP2 VALUE-4C
COMMENT-;test for rest of 'ALARM'
ADDRESS-039
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-03A
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-03B
LABEL-
FORMATTED-COMPARE s0, character_A
LOGFORMAT-COMPARE s0, character_A[41]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_A
OP2 VALUE-41
COMMENT-
ADDRESS-03C
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-03D
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-03E
LABEL-
FORMATTED-COMPARE s0, character_R
LOGFORMAT-COMPARE s0, character_R[52]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_R
OP2 VALUE-52
COMMENT-
ADDRESS-03F
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-040
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-041
LABEL-
FORMATTED-COMPARE s0, character_M
LOGFORMAT-COMPARE s0, character_M[4D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_M
OP2 VALUE-4D
COMMENT-
ADDRESS-042
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-043
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;now have a valid ALARM command to process
ADDRESS-043
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-044
LABEL-
FORMATTED-COMPARE s0, character_CR
LOGFORMAT-COMPARE s0, character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-;carriage return means display alarm time
ADDRESS-045
LABEL-
FORMATTED-JUMP NZ, set_alarm_command
LOGFORMAT-JUMP NZ, set_alarm_command[048]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-set_alarm_command
OP2 VALUE-048
COMMENT-
ADDRESS-046
LABEL-
FORMATTED-CALL transmit_alarm_time
LOGFORMAT-CALL transmit_alarm_time[0AC]
INSTRUCTION-CALL
OPERAND1-transmit_alarm_time
OP1 VALUE-0AC
OPERAND2-
OP2 VALUE-
COMMENT-;transmit time to UART
ADDRESS-047
LABEL-
FORMATTED-JUMP prompt_input
LOGFORMAT-JUMP prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-prompt_input
OP1 VALUE-012
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-048
LABEL-set_alarm_command
FORMATTED-COMPARE s0, character_space
LOGFORMAT-COMPARE s0, character_space[20]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_space
OP2 VALUE-20
COMMENT-;test for ON or OFF command
ADDRESS-049
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-04A
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-04B
LABEL-
FORMATTED-COMPARE s0, character_O
LOGFORMAT-COMPARE s0, character_O[4F]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_O
OP2 VALUE-4F
COMMENT-
ADDRESS-04C
LABEL-
FORMATTED-JUMP Z, set_alarm_on_off
LOGFORMAT-JUMP Z, set_alarm_on_off[055]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-set_alarm_on_off
OP2 VALUE-055
COMMENT-
ADDRESS-04D
LABEL-
FORMATTED-SUB s1, 01
LOGFORMAT-SUB s1, 01
INSTRUCTION-SUB
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;move memory pointer back to first character of 'hh:mm:ss' string
ADDRESS-04E
LABEL-
FORMATTED-CALL test_time_string
LOGFORMAT-CALL test_time_string[06D]
INSTRUCTION-CALL
OPERAND1-test_time_string
OP1 VALUE-06D
OPERAND2-
OP2 VALUE-
COMMENT-;interpret 'hh:mm:ss' string
ADDRESS-04F
LABEL-
FORMATTED-JUMP C, prompt_input
LOGFORMAT-JUMP C, prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-prompt_input
OP2 VALUE-012
COMMENT-;test for invalid input
ADDRESS-050
LABEL-
FORMATTED-STORE s6, alarm_time_hours
LOGFORMAT-STORE s6, alarm_time_hours[09]
INSTRUCTION-STORE
OPERAND1-s6
OP1 VALUE-s6
OPERAND2-alarm_time_hours
OP2 VALUE-09
COMMENT-;set new time into clock
ADDRESS-051
LABEL-
FORMATTED-STORE s5, alarm_time_minutes
LOGFORMAT-STORE s5, alarm_time_minutes[0A]
INSTRUCTION-STORE
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-alarm_time_minutes
OP2 VALUE-0A
COMMENT-
ADDRESS-052
LABEL-
FORMATTED-STORE s4, alarm_time_seconds
LOGFORMAT-STORE s4, alarm_time_seconds[0B]
INSTRUCTION-STORE
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-alarm_time_seconds
OP2 VALUE-0B
COMMENT-
ADDRESS-053
LABEL-
FORMATTED-CALL transmit_alarm_time
LOGFORMAT-CALL transmit_alarm_time[0AC]
INSTRUCTION-CALL
OPERAND1-transmit_alarm_time
OP1 VALUE-0AC
OPERAND2-
OP2 VALUE-
COMMENT-;transmit new alarm time and status
ADDRESS-054
LABEL-
FORMATTED-JUMP prompt_input
LOGFORMAT-JUMP prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-prompt_input
OP1 VALUE-012
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-055
LABEL-set_alarm_on_off
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-056
LABEL-
FORMATTED-COMPARE s0, character_N
LOGFORMAT-COMPARE s0, character_N[4E]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_N
OP2 VALUE-4E
COMMENT-;test for 'ON'
ADDRESS-057
LABEL-
FORMATTED-JUMP NZ, test_OFF
LOGFORMAT-JUMP NZ, test_OFF[060]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-test_OFF
OP2 VALUE-060
COMMENT-
ADDRESS-058
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-059
LABEL-
FORMATTED-COMPARE s0, character_CR
LOGFORMAT-COMPARE s0, character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-
ADDRESS-05A
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-05B
LABEL-
FORMATTED-FETCH s0, alarm_status
LOGFORMAT-FETCH s0, alarm_status[0C]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-;turn alarm on
ADDRESS-05C
LABEL-
FORMATTED-OR s0, alarm_armed
LOGFORMAT-OR s0, alarm_armed[02]
INSTRUCTION-OR
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_armed
OP2 VALUE-02
COMMENT-
ADDRESS-05D
LABEL-
FORMATTED-STORE s0, alarm_status
LOGFORMAT-STORE s0, alarm_status[0C]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-
ADDRESS-05E
LABEL-
FORMATTED-CALL transmit_alarm_time
LOGFORMAT-CALL transmit_alarm_time[0AC]
INSTRUCTION-CALL
OPERAND1-transmit_alarm_time
OP1 VALUE-0AC
OPERAND2-
OP2 VALUE-
COMMENT-;transmit alarm time and status
ADDRESS-05F
LABEL-
FORMATTED-JUMP prompt_input
LOGFORMAT-JUMP prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-prompt_input
OP1 VALUE-012
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-060
LABEL-test_OFF
FORMATTED-COMPARE s0, character_F
LOGFORMAT-COMPARE s0, character_F[46]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_F
OP2 VALUE-46
COMMENT-;test for for 'OFF'
ADDRESS-061
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-062
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-063
LABEL-
FORMATTED-COMPARE s0, character_F
LOGFORMAT-COMPARE s0, character_F[46]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_F
OP2 VALUE-46
COMMENT-
ADDRESS-064
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-065
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-066
LABEL-
FORMATTED-COMPARE s0, character_CR
LOGFORMAT-COMPARE s0, character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-
ADDRESS-067
LABEL-
FORMATTED-JUMP NZ, bad_input_command
LOGFORMAT-JUMP NZ, bad_input_command[01C]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-bad_input_command
OP2 VALUE-01C
COMMENT-
ADDRESS-068
LABEL-
FORMATTED-LOAD s0, 00
LOGFORMAT-LOAD s0, 00
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-00
OP2 VALUE-00
COMMENT-;turn alarm off and stop an active alarm
ADDRESS-069
LABEL-
FORMATTED-STORE s0, alarm_status
LOGFORMAT-STORE s0, alarm_status[0C]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-
ADDRESS-06A
LABEL-
FORMATTED-CALL alarm_drive
LOGFORMAT-CALL alarm_drive[0A4]
INSTRUCTION-CALL
OPERAND1-alarm_drive
OP1 VALUE-0A4
OPERAND2-
OP2 VALUE-
COMMENT-;turn off alarm
ADDRESS-06B
LABEL-
FORMATTED-CALL transmit_alarm_time
LOGFORMAT-CALL transmit_alarm_time[0AC]
INSTRUCTION-CALL
OPERAND1-transmit_alarm_time
OP1 VALUE-0AC
OPERAND2-
OP2 VALUE-
COMMENT-;transmit alarm time and status
ADDRESS-06C
LABEL-
FORMATTED-JUMP prompt_input
LOGFORMAT-JUMP prompt_input[012]
INSTRUCTION-JUMP
OPERAND1-prompt_input
OP1 VALUE-012
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Read an 'hh:mm:ss' time string and provide new values.
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The string must be provided in successive scratch pad memory locations
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;with the s1 register containing the location of the first character.
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;A correct time specification will result in the return of new values
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;as follows:-
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; s6 = hours
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; s5 = minutes
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; s4 = seconds
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;If the syntax is incorrect or values are not in the correct ranges an
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;'Invalid Time' message will be transmitted and the CARRY flag will be set
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0, s1, s6, s5 and s4
ADDRESS-06D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-06D
LABEL-test_time_string
FORMATTED-CALL 2char_to_value
LOGFORMAT-CALL 2char_to_value[1EC]
INSTRUCTION-CALL
OPERAND1-2char_to_value
OP1 VALUE-1EC
OPERAND2-
OP2 VALUE-
COMMENT-;obtain hours value
ADDRESS-06E
LABEL-
FORMATTED-JUMP C, invalid_time
LOGFORMAT-JUMP C, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-;test for non-decimal characters
ADDRESS-06F
LABEL-
FORMATTED-LOAD s6, s2
LOGFORMAT-LOAD s6, s2
INSTRUCTION-LOAD
OPERAND1-s6
OP1 VALUE-s6
OPERAND2-s2
OP2 VALUE-s2
COMMENT-;remember hours
ADDRESS-070
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment memory pointer past hours
ADDRESS-071
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-072
LABEL-
FORMATTED-COMPARE s0, character_colon
LOGFORMAT-COMPARE s0, character_colon[3A]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_colon
OP2 VALUE-3A
COMMENT-;test for colon
ADDRESS-073
LABEL-
FORMATTED-JUMP NZ, invalid_time
LOGFORMAT-JUMP NZ, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-
ADDRESS-074
LABEL-
FORMATTED-CALL 2char_to_value
LOGFORMAT-CALL 2char_to_value[1EC]
INSTRUCTION-CALL
OPERAND1-2char_to_value
OP1 VALUE-1EC
OPERAND2-
OP2 VALUE-
COMMENT-;obtain minutes value
ADDRESS-075
LABEL-
FORMATTED-JUMP C, invalid_time
LOGFORMAT-JUMP C, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-;test for non-decimal characters
ADDRESS-076
LABEL-
FORMATTED-LOAD s5, s2
LOGFORMAT-LOAD s5, s2
INSTRUCTION-LOAD
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-s2
OP2 VALUE-s2
COMMENT-;remember minutes
ADDRESS-077
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment memory pointer past minutes
ADDRESS-078
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-079
LABEL-
FORMATTED-COMPARE s0, character_colon
LOGFORMAT-COMPARE s0, character_colon[3A]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_colon
OP2 VALUE-3A
COMMENT-;test for colon
ADDRESS-07A
LABEL-
FORMATTED-JUMP NZ, invalid_time
LOGFORMAT-JUMP NZ, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-
ADDRESS-07B
LABEL-
FORMATTED-CALL 2char_to_value
LOGFORMAT-CALL 2char_to_value[1EC]
INSTRUCTION-CALL
OPERAND1-2char_to_value
OP1 VALUE-1EC
OPERAND2-
OP2 VALUE-
COMMENT-;obtain seconds value
ADDRESS-07C
LABEL-
FORMATTED-JUMP C, invalid_time
LOGFORMAT-JUMP C, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-;test for non-decimal characters
ADDRESS-07D
LABEL-
FORMATTED-LOAD s4, s2
LOGFORMAT-LOAD s4, s2
INSTRUCTION-LOAD
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-s2
OP2 VALUE-s2
COMMENT-;remember minutes
ADDRESS-07E
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment memory pointer past seconds
ADDRESS-07F
LABEL-
FORMATTED-CALL fetch_char_from_memory
LOGFORMAT-CALL fetch_char_from_memory[091]
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OP1 VALUE-091
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-080
LABEL-
FORMATTED-COMPARE s0, character_CR
LOGFORMAT-COMPARE s0, character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-;finish with carriage return
ADDRESS-081
LABEL-
FORMATTED-JUMP NZ, invalid_time
LOGFORMAT-JUMP NZ, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-
ADDRESS-082
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Have values for hh:mm:ss but need to test if each is valid range.
ADDRESS-082
LABEL-
FORMATTED-COMPARE s6, hours_in_a_day
LOGFORMAT-COMPARE s6, hours_in_a_day[18]
INSTRUCTION-COMPARE
OPERAND1-s6
OP1 VALUE-s6
OPERAND2-hours_in_a_day
OP2 VALUE-18
COMMENT-
ADDRESS-083
LABEL-
FORMATTED-JUMP NC, invalid_time
LOGFORMAT-JUMP NC, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-NC
OP1 VALUE-NC
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-
ADDRESS-084
LABEL-
FORMATTED-COMPARE s5, minutes_in_an_hour
LOGFORMAT-COMPARE s5, minutes_in_an_hour[3C]
INSTRUCTION-COMPARE
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-minutes_in_an_hour
OP2 VALUE-3C
COMMENT-
ADDRESS-085
LABEL-
FORMATTED-JUMP NC, invalid_time
LOGFORMAT-JUMP NC, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-NC
OP1 VALUE-NC
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-
ADDRESS-086
LABEL-
FORMATTED-COMPARE s4, seconds_in_a_minute
LOGFORMAT-COMPARE s4, seconds_in_a_minute[3C]
INSTRUCTION-COMPARE
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-seconds_in_a_minute
OP2 VALUE-3C
COMMENT-
ADDRESS-087
LABEL-
FORMATTED-JUMP NC, invalid_time
LOGFORMAT-JUMP NC, invalid_time[08B]
INSTRUCTION-JUMP
OPERAND1-NC
OP1 VALUE-NC
OPERAND2-invalid_time
OP2 VALUE-08B
COMMENT-
ADDRESS-088
LABEL-
FORMATTED-LOAD s0, 00
LOGFORMAT-LOAD s0, 00
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-00
OP2 VALUE-00
COMMENT-
ADDRESS-089
LABEL-
FORMATTED-SR0 s0
LOGFORMAT-SR0 s0
INSTRUCTION-SR0
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-
OP2 VALUE-
COMMENT-;reset CARRY flag (with s0=0)
ADDRESS-08A
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;time string was OK
ADDRESS-08B
LABEL-invalid_time
FORMATTED-CALL send_Invalid
LOGFORMAT-CALL send_Invalid[125]
INSTRUCTION-CALL
OPERAND1-send_Invalid
OP1 VALUE-125
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-08C
LABEL-
FORMATTED-CALL send_space
LOGFORMAT-CALL send_space[0E7]
INSTRUCTION-CALL
OPERAND1-send_space
OP1 VALUE-0E7
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-08D
LABEL-
FORMATTED-CALL send_Time
LOGFORMAT-CALL send_Time[134]
INSTRUCTION-CALL
OPERAND1-send_Time
OP1 VALUE-134
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-08E
LABEL-
FORMATTED-LOAD s0, 01
LOGFORMAT-LOAD s0, 01
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-08F
LABEL-
FORMATTED-SR0 s0
LOGFORMAT-SR0 s0
INSTRUCTION-SR0
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-
OP2 VALUE-
COMMENT-;set CARRY flag
ADDRESS-090
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;time string was bad
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Fetch character from memory, convert to upper case
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;and increment memory pointer.
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The memory pointer is provided in register s1.
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The character obtained is returned in register s0.
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0 and s1.
ADDRESS-091
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-091
LABEL-fetch_char_from_memory
FORMATTED-FETCH s0, (s1)
LOGFORMAT-FETCH s0, (s1)
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s1)
OP2 VALUE-(s1)
COMMENT-;read character
ADDRESS-092
LABEL-
FORMATTED-CALL upper_case
LOGFORMAT-CALL upper_case[1E2]
INSTRUCTION-CALL
OPERAND1-upper_case
OP1 VALUE-1E2
OPERAND2-
OP2 VALUE-
COMMENT-;convert to upper case
ADDRESS-093
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment memory pointer
ADDRESS-094
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Read one character from the UART
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Character read will be returned in a register called 'UART_data' and will be
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;echoed to the UART transmitter.
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The routine first tests the receiver FIFO buffer to see if data is present.
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;If the FIFO is empty, the routine waits until there is a character to read.
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;As this could take any amount of time the wait loop includes a call to the
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;subroutine which updates the real time clock.
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0 and UART_data
ADDRESS-095
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-095
LABEL-read_from_UART
FORMATTED-INPUT s0, UART_status_port
LOGFORMAT-INPUT s0, UART_status_port[00]
INSTRUCTION-INPUT
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-UART_status_port
OP2 VALUE-00
COMMENT-;test Rx_FIFO buffer
ADDRESS-096
LABEL-
FORMATTED-TEST s0, rx_data_present
LOGFORMAT-TEST s0, rx_data_present[10]
INSTRUCTION-TEST
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-rx_data_present
OP2 VALUE-10
COMMENT-
ADDRESS-097
LABEL-
FORMATTED-JUMP NZ, read_character
LOGFORMAT-JUMP NZ, read_character[09A]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-read_character
OP2 VALUE-09A
COMMENT-
ADDRESS-098
LABEL-
FORMATTED-CALL update_time
LOGFORMAT-CALL update_time[185]
INSTRUCTION-CALL
OPERAND1-update_time
OP1 VALUE-185
OPERAND2-
OP2 VALUE-
COMMENT-;Perform useful operation whilst waiting
ADDRESS-099
LABEL-
FORMATTED-JUMP read_from_UART
LOGFORMAT-JUMP read_from_UART[095]
INSTRUCTION-JUMP
OPERAND1-read_from_UART
OP1 VALUE-095
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-09A
LABEL-read_character
FORMATTED-INPUT UART_data, UART_read_port
LOGFORMAT-INPUT UART_data[sF], UART_read_port[01]
INSTRUCTION-INPUT
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-UART_read_port
OP2 VALUE-01
COMMENT-;read from FIFO
ADDRESS-09B
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-;echo received character
ADDRESS-09C
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Transmit one character to the UART
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Character supplied in register called 'UART_data'.
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The routine first tests the transmit FIFO buffer to see if it is full.
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;If the FIFO is full, the routine waits until there is space which could
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;be as long as it takes to transmit one complete character.
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Baud Rate Time per Character (10 bits)
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; 9600 1,024us
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; 19200 521us
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; 38400 260us
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; 57600 174us
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; 115200 87us
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Since this is a relatively long duration, the wait loop includes a
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;call to the subroutine which updates the real time clock.
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0
ADDRESS-09D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-09D
LABEL-send_to_UART
FORMATTED-INPUT s0, UART_status_port
LOGFORMAT-INPUT s0, UART_status_port[00]
INSTRUCTION-INPUT
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-UART_status_port
OP2 VALUE-00
COMMENT-;test Tx_FIFO buffer
ADDRESS-09E
LABEL-
FORMATTED-TEST s0, tx_full
LOGFORMAT-TEST s0, tx_full[02]
INSTRUCTION-TEST
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-tx_full
OP2 VALUE-02
COMMENT-
ADDRESS-09F
LABEL-
FORMATTED-JUMP Z, UART_write
LOGFORMAT-JUMP Z, UART_write[0A2]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-UART_write
OP2 VALUE-0A2
COMMENT-
ADDRESS-0A0
LABEL-
FORMATTED-CALL update_time
LOGFORMAT-CALL update_time[185]
INSTRUCTION-CALL
OPERAND1-update_time
OP1 VALUE-185
OPERAND2-
OP2 VALUE-
COMMENT-;Perform useful operation whilst waiting
ADDRESS-0A1
LABEL-
FORMATTED-JUMP send_to_UART
LOGFORMAT-JUMP send_to_UART[09D]
INSTRUCTION-JUMP
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0A2
LABEL-UART_write
FORMATTED-OUTPUT UART_data, UART_write_port
LOGFORMAT-OUTPUT UART_data[sF], UART_write_port[01]
INSTRUCTION-OUTPUT
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-UART_write_port
OP2 VALUE-01
COMMENT-
ADDRESS-0A3
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Alarm output
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Uses the alarm status scratch pad memory to set or reset the alarm
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;control bit on the alarm output port.
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0
ADDRESS-0A4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A4
LABEL-alarm_drive
FORMATTED-FETCH s0, alarm_status
LOGFORMAT-FETCH s0, alarm_status[0C]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-;read status
ADDRESS-0A5
LABEL-
FORMATTED-AND s0, alarm_active
LOGFORMAT-AND s0, alarm_active[01]
INSTRUCTION-AND
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_active
OP2 VALUE-01
COMMENT-;isolate bit0
ADDRESS-0A6
LABEL-
FORMATTED-OUTPUT s0, alarm_port
LOGFORMAT-OUTPUT s0, alarm_port[00]
INSTRUCTION-OUTPUT
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_port
OP2 VALUE-00
COMMENT-
ADDRESS-0A7
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Transmit the time to the UART port in the format hh:mm:ss and end
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;with a carriage return.
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The time to converted must be stored in 3 scratch pad memory locations as
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;defined below. A register named 'store_pointer' must provide the address of
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;first location.
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Address Data
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer ----> hours
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer + 1 ----> minutes
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer + 1 ----> seconds
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The routine first converts the time into an ASCII string stored in scratch
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The string will then be transmitted.
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
ADDRESS-0A8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0A8
LABEL-transmit_time
FORMATTED-LOAD store_pointer, real_time_hours
LOGFORMAT-LOAD store_pointer[sE], real_time_hours[06]
INSTRUCTION-LOAD
OPERAND1-store_pointer
OP1 VALUE-sE
OPERAND2-real_time_hours
OP2 VALUE-06
COMMENT-;locate current time in memory
ADDRESS-0A9
LABEL-
FORMATTED-CALL time_to_ASCII
LOGFORMAT-CALL time_to_ASCII[160]
INSTRUCTION-CALL
OPERAND1-time_to_ASCII
OP1 VALUE-160
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0AA
LABEL-
FORMATTED-CALL transmit_string
LOGFORMAT-CALL transmit_string[0BC]
INSTRUCTION-CALL
OPERAND1-transmit_string
OP1 VALUE-0BC
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0AB
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Transmit the alarm time and status to the UART port in the format hh:mm:ss and
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;ending with carriage return.
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The alarm time to converted must be stored in 3 scratch pad memory locations as
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;defined below. A register named 'store_pointer' must provide the address of
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;first location.
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Address Data
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer ----> hours
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer + 1 ----> minutes
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer + 1 ----> seconds
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The routine first converts the time into an ASCII string stored in scratch
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The string will then be transmitted.
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
ADDRESS-0AC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0AC
LABEL-transmit_alarm_time
FORMATTED-LOAD store_pointer, alarm_time_hours
LOGFORMAT-LOAD store_pointer[sE], alarm_time_hours[09]
INSTRUCTION-LOAD
OPERAND1-store_pointer
OP1 VALUE-sE
OPERAND2-alarm_time_hours
OP2 VALUE-09
COMMENT-;locate alarm time in memory
ADDRESS-0AD
LABEL-
FORMATTED-CALL time_to_ASCII
LOGFORMAT-CALL time_to_ASCII[160]
INSTRUCTION-CALL
OPERAND1-time_to_ASCII
OP1 VALUE-160
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0AE
LABEL-
FORMATTED-CALL transmit_string
LOGFORMAT-CALL transmit_string[0BC]
INSTRUCTION-CALL
OPERAND1-transmit_string
OP1 VALUE-0BC
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0AF
LABEL-
FORMATTED-CALL send_Alarm
LOGFORMAT-CALL send_Alarm[13D]
INSTRUCTION-CALL
OPERAND1-send_Alarm
OP1 VALUE-13D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0B0
LABEL-
FORMATTED-CALL send_space
LOGFORMAT-CALL send_space[0E7]
INSTRUCTION-CALL
OPERAND1-send_space
OP1 VALUE-0E7
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0B1
LABEL-
FORMATTED-FETCH s0, alarm_status
LOGFORMAT-FETCH s0, alarm_status[0C]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-;read alarm status
ADDRESS-0B2
LABEL-
FORMATTED-TEST s0, alarm_active
LOGFORMAT-TEST s0, alarm_active[01]
INSTRUCTION-TEST
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_active
OP2 VALUE-01
COMMENT-;test for active
ADDRESS-0B3
LABEL-
FORMATTED-JUMP Z, test_armed
LOGFORMAT-JUMP Z, test_armed[0B6]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-test_armed
OP2 VALUE-0B6
COMMENT-
ADDRESS-0B4
LABEL-
FORMATTED-CALL send_Active
LOGFORMAT-CALL send_Active[153]
INSTRUCTION-CALL
OPERAND1-send_Active
OP1 VALUE-153
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0B5
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0B6
LABEL-test_armed
FORMATTED-TEST s0, alarm_armed
LOGFORMAT-TEST s0, alarm_armed[02]
INSTRUCTION-TEST
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_armed
OP2 VALUE-02
COMMENT-;test for on
ADDRESS-0B7
LABEL-
FORMATTED-JUMP Z, alarm_is_off
LOGFORMAT-JUMP Z, alarm_is_off[0BA]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-alarm_is_off
OP2 VALUE-0BA
COMMENT-
ADDRESS-0B8
LABEL-
FORMATTED-CALL send_ON
LOGFORMAT-CALL send_ON[14E]
INSTRUCTION-CALL
OPERAND1-send_ON
OP1 VALUE-14E
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0B9
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0BA
LABEL-alarm_is_off
FORMATTED-CALL send_OFF
LOGFORMAT-CALL send_OFF[148]
INSTRUCTION-CALL
OPERAND1-send_OFF
OP1 VALUE-148
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0BB
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Transmit ASCII string to UART
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;An ASCII string must be provided in scratch pad memory commencing at the
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;location specified by a constant named 'string_start'. The string must
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;end with a carriage return (0D).
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s1 and 'UART_data'.
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; s0 is then used in subroutine 'send_to_UART'
ADDRESS-0BC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0BC
LABEL-transmit_string
FORMATTED-LOAD s1, string_start
LOGFORMAT-LOAD s1, string_start[20]
INSTRUCTION-LOAD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-string_start
OP2 VALUE-20
COMMENT-;locate start of string
ADDRESS-0BD
LABEL-next_char_tx
FORMATTED-FETCH UART_data, (s1)
LOGFORMAT-FETCH UART_data[sF], (s1)
INSTRUCTION-FETCH
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-(s1)
OP2 VALUE-(s1)
COMMENT-;read character from memory
ADDRESS-0BE
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-;transmit character
ADDRESS-0BF
LABEL-
FORMATTED-COMPARE UART_data, character_CR
LOGFORMAT-COMPARE UART_data[sF], character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-;test for last character
ADDRESS-0C0
LABEL-
FORMATTED-RETURN Z
LOGFORMAT-RETURN Z
INSTRUCTION-RETURN
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0C1
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;move to next character
ADDRESS-0C2
LABEL-
FORMATTED-JUMP next_char_tx
LOGFORMAT-JUMP next_char_tx[0BD]
INSTRUCTION-JUMP
OPERAND1-next_char_tx
OP1 VALUE-0BD
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Receive ASCII string from UART
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;An ASCII string will be read from the UART and stored in scratch pad memory
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;commencing at the location specified by a constant named 'string_start'.
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The string will will have a maximum length of 16 characters including a
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;carriage return (0D) denoting the end of the string.
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;As each character is read, it is echoed to the UART transmitter.
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Some minor editing is supported using backspace (BS=08) which is used
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;to adjust what is stored in scratch pad memory and adjust the display
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;on the terminal screen using characters sent to the UART transmitter.
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;A test is made for the receiver FIFO becoming full. A full status is treated as
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;a potential error situation and will result in a 'Overflow Error' message being
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;transmitted to the UART, the receiver FIFO being purged of all data and an
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;empty string being stored (carriage return at first location).
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0, s1, s2 and 'UART_data'.
ADDRESS-0C3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0C3
LABEL-receive_string
FORMATTED-LOAD s1, string_start
LOGFORMAT-LOAD s1, string_start[20]
INSTRUCTION-LOAD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-string_start
OP2 VALUE-20
COMMENT-;locate start of string
ADDRESS-0C4
LABEL-
FORMATTED-LOAD s2, s1
LOGFORMAT-LOAD s2, s1
INSTRUCTION-LOAD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s1
OP2 VALUE-s1
COMMENT-;compute 16 character address
ADDRESS-0C5
LABEL-
FORMATTED-ADD s2, 10
LOGFORMAT-ADD s2, 10
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-10
OP2 VALUE-10
COMMENT-
ADDRESS-0C6
LABEL-receive_full_test
FORMATTED-INPUT s0, UART_status_port
LOGFORMAT-INPUT s0, UART_status_port[00]
INSTRUCTION-INPUT
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-UART_status_port
OP2 VALUE-00
COMMENT-;test Rx_FIFO buffer for full
ADDRESS-0C7
LABEL-
FORMATTED-TEST s0, rx_full
LOGFORMAT-TEST s0, rx_full[08]
INSTRUCTION-TEST
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-rx_full
OP2 VALUE-08
COMMENT-
ADDRESS-0C8
LABEL-
FORMATTED-JUMP NZ, read_error
LOGFORMAT-JUMP NZ, read_error[0DB]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-read_error
OP2 VALUE-0DB
COMMENT-
ADDRESS-0C9
LABEL-
FORMATTED-CALL read_from_UART
LOGFORMAT-CALL read_from_UART[095]
INSTRUCTION-CALL
OPERAND1-read_from_UART
OP1 VALUE-095
OPERAND2-
OP2 VALUE-
COMMENT-;obtain and echo character
ADDRESS-0CA
LABEL-
FORMATTED-STORE UART_data, (s1)
LOGFORMAT-STORE UART_data[sF], (s1)
INSTRUCTION-STORE
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-(s1)
OP2 VALUE-(s1)
COMMENT-;write to memory
ADDRESS-0CB
LABEL-
FORMATTED-COMPARE UART_data, character_CR
LOGFORMAT-COMPARE UART_data[sF], character_CR[0D]
INSTRUCTION-COMPARE
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-;test for end of string
ADDRESS-0CC
LABEL-
FORMATTED-RETURN Z
LOGFORMAT-RETURN Z
INSTRUCTION-RETURN
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0CD
LABEL-
FORMATTED-COMPARE UART_data, character_BS
LOGFORMAT-COMPARE UART_data[sF], character_BS[08]
INSTRUCTION-COMPARE
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_BS
OP2 VALUE-08
COMMENT-;test for back space
ADDRESS-0CE
LABEL-
FORMATTED-JUMP Z, BS_edit
LOGFORMAT-JUMP Z, BS_edit[0D3]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-BS_edit
OP2 VALUE-0D3
COMMENT-
ADDRESS-0CF
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment memory pointer
ADDRESS-0D0
LABEL-
FORMATTED-COMPARE s1, s2
LOGFORMAT-COMPARE s1, s2
INSTRUCTION-COMPARE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-s2
OP2 VALUE-s2
COMMENT-;test for pointer exceeding 16 characters
ADDRESS-0D1
LABEL-
FORMATTED-JUMP NZ, receive_full_test
LOGFORMAT-JUMP NZ, receive_full_test[0C6]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-receive_full_test
OP2 VALUE-0C6
COMMENT-;next character
ADDRESS-0D2
LABEL-
FORMATTED-CALL send_backspace
LOGFORMAT-CALL send_backspace[0EA]
INSTRUCTION-CALL
OPERAND1-send_backspace
OP1 VALUE-0EA
OPERAND2-
OP2 VALUE-
COMMENT-;hold end of string position on terminal display
ADDRESS-0D3
LABEL-BS_edit
FORMATTED-SUB s1, 01
LOGFORMAT-SUB s1, 01
INSTRUCTION-SUB
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;memory pointer back one
ADDRESS-0D4
LABEL-
FORMATTED-COMPARE s1, string_start
LOGFORMAT-COMPARE s1, string_start[20]
INSTRUCTION-COMPARE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-string_start
OP2 VALUE-20
COMMENT-;test for under flow
ADDRESS-0D5
LABEL-
FORMATTED-JUMP C, string_start_again
LOGFORMAT-JUMP C, string_start_again[0D9]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-string_start_again
OP2 VALUE-0D9
COMMENT-
ADDRESS-0D6
LABEL-
FORMATTED-CALL send_space
LOGFORMAT-CALL send_space[0E7]
INSTRUCTION-CALL
OPERAND1-send_space
OP1 VALUE-0E7
OPERAND2-
OP2 VALUE-
COMMENT-;clear character at current position
ADDRESS-0D7
LABEL-
FORMATTED-CALL send_backspace
LOGFORMAT-CALL send_backspace[0EA]
INSTRUCTION-CALL
OPERAND1-send_backspace
OP1 VALUE-0EA
OPERAND2-
OP2 VALUE-
COMMENT-;position cursor
ADDRESS-0D8
LABEL-
FORMATTED-JUMP receive_full_test
LOGFORMAT-JUMP receive_full_test[0C6]
INSTRUCTION-JUMP
OPERAND1-receive_full_test
OP1 VALUE-0C6
OPERAND2-
OP2 VALUE-
COMMENT-;next character
ADDRESS-0D9
LABEL-string_start_again
FORMATTED-CALL send_greater_than
LOGFORMAT-CALL send_greater_than[122]
INSTRUCTION-CALL
OPERAND1-send_greater_than
OP1 VALUE-122
OPERAND2-
OP2 VALUE-
COMMENT-;restore '>' at prompt
ADDRESS-0DA
LABEL-
FORMATTED-JUMP receive_string
LOGFORMAT-JUMP receive_string[0C3]
INSTRUCTION-JUMP
OPERAND1-receive_string
OP1 VALUE-0C3
OPERAND2-
OP2 VALUE-
COMMENT-;begin again
ADDRESS-0DB
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Receiver buffer overflow condition
ADDRESS-0DB
LABEL-read_error
FORMATTED-CALL send_CR
LOGFORMAT-CALL send_CR[0E4]
INSTRUCTION-CALL
OPERAND1-send_CR
OP1 VALUE-0E4
OPERAND2-
OP2 VALUE-
COMMENT-;Transmit error message
ADDRESS-0DC
LABEL-
FORMATTED-STORE UART_data, string_start
LOGFORMAT-STORE UART_data[sF], string_start[20]
INSTRUCTION-STORE
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-string_start
OP2 VALUE-20
COMMENT-;empty string in memory (start with CR)
ADDRESS-0DD
LABEL-
FORMATTED-CALL send_Overflow_Error
LOGFORMAT-CALL send_Overflow_Error[0FA]
INSTRUCTION-CALL
OPERAND1-send_Overflow_Error
OP1 VALUE-0FA
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0DE
LABEL-
FORMATTED-CALL send_CR
LOGFORMAT-CALL send_CR[0E4]
INSTRUCTION-CALL
OPERAND1-send_CR
OP1 VALUE-0E4
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0DF
LABEL-clear_UART_Rx_loop
FORMATTED-INPUT s0, UART_status_port
LOGFORMAT-INPUT s0, UART_status_port[00]
INSTRUCTION-INPUT
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-UART_status_port
OP2 VALUE-00
COMMENT-;test Rx_FIFO buffer for data
ADDRESS-0E0
LABEL-
FORMATTED-TEST s0, rx_data_present
LOGFORMAT-TEST s0, rx_data_present[10]
INSTRUCTION-TEST
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-rx_data_present
OP2 VALUE-10
COMMENT-
ADDRESS-0E1
LABEL-
FORMATTED-RETURN Z
LOGFORMAT-RETURN Z
INSTRUCTION-RETURN
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-
OP2 VALUE-
COMMENT-;finish when buffer is empty
ADDRESS-0E2
LABEL-
FORMATTED-INPUT UART_data, UART_read_port
LOGFORMAT-INPUT UART_data[sF], UART_read_port[01]
INSTRUCTION-INPUT
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-UART_read_port
OP2 VALUE-01
COMMENT-;read from FIFO and ignore
ADDRESS-0E3
LABEL-
FORMATTED-JUMP clear_UART_Rx_loop
LOGFORMAT-JUMP clear_UART_Rx_loop[0DF]
INSTRUCTION-JUMP
OPERAND1-clear_UART_Rx_loop
OP1 VALUE-0DF
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0E4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send Carriage Return to the UART
ADDRESS-0E4
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E4
LABEL-send_CR
FORMATTED-LOAD UART_data, character_CR
LOGFORMAT-LOAD UART_data[sF], character_CR[0D]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-
ADDRESS-0E5
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0E6
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0E7
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E7
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E7
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E7
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send a space to the UART
ADDRESS-0E7
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0E7
LABEL-send_space
FORMATTED-LOAD UART_data, character_space
LOGFORMAT-LOAD UART_data[sF], character_space[20]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_space
OP2 VALUE-20
COMMENT-
ADDRESS-0E8
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0E9
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0EA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0EA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0EA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send a back space to the UART
ADDRESS-0EA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0EA
LABEL-send_backspace
FORMATTED-LOAD UART_data, character_BS
LOGFORMAT-LOAD UART_data[sF], character_BS[08]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_BS
OP2 VALUE-08
COMMENT-
ADDRESS-0EB
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0EC
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0ED
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0ED
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'Syntax Error' to the UART
ADDRESS-0ED
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0ED
LABEL-send_Syntax_Error
FORMATTED-LOAD UART_data, character_S
LOGFORMAT-LOAD UART_data[sF], character_S[53]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_S
OP2 VALUE-53
COMMENT-
ADDRESS-0EE
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0EF
LABEL-
FORMATTED-LOAD UART_data, character_y
LOGFORMAT-LOAD UART_data[sF], character_y[79]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_y
OP2 VALUE-79
COMMENT-
ADDRESS-0F0
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0F1
LABEL-
FORMATTED-LOAD UART_data, character_n
LOGFORMAT-LOAD UART_data[sF], character_n[6E]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_n
OP2 VALUE-6E
COMMENT-
ADDRESS-0F2
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0F3
LABEL-
FORMATTED-LOAD UART_data, character_t
LOGFORMAT-LOAD UART_data[sF], character_t[74]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_t
OP2 VALUE-74
COMMENT-
ADDRESS-0F4
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0F5
LABEL-
FORMATTED-LOAD UART_data, character_a
LOGFORMAT-LOAD UART_data[sF], character_a[61]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_a
OP2 VALUE-61
COMMENT-
ADDRESS-0F6
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0F7
LABEL-
FORMATTED-LOAD UART_data, character_x
LOGFORMAT-LOAD UART_data[sF], character_x[78]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_x
OP2 VALUE-78
COMMENT-
ADDRESS-0F8
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0F9
LABEL-
FORMATTED-JUMP send_space_Error
LOGFORMAT-JUMP send_space_Error[10A]
INSTRUCTION-JUMP
OPERAND1-send_space_Error
OP1 VALUE-10A
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'Overflow Error' to the UART
ADDRESS-0FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-0FA
LABEL-send_Overflow_Error
FORMATTED-LOAD UART_data, character_O
LOGFORMAT-LOAD UART_data[sF], character_O[4F]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_O
OP2 VALUE-4F
COMMENT-
ADDRESS-0FB
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0FC
LABEL-
FORMATTED-LOAD UART_data, character_v
LOGFORMAT-LOAD UART_data[sF], character_v[76]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_v
OP2 VALUE-76
COMMENT-
ADDRESS-0FD
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-0FE
LABEL-
FORMATTED-LOAD UART_data, character_e
LOGFORMAT-LOAD UART_data[sF], character_e[65]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_e
OP2 VALUE-65
COMMENT-
ADDRESS-0FF
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-100
LABEL-
FORMATTED-LOAD UART_data, character_r
LOGFORMAT-LOAD UART_data[sF], character_r[72]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_r
OP2 VALUE-72
COMMENT-
ADDRESS-101
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-102
LABEL-
FORMATTED-LOAD UART_data, character_f
LOGFORMAT-LOAD UART_data[sF], character_f[66]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_f
OP2 VALUE-66
COMMENT-
ADDRESS-103
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-104
LABEL-
FORMATTED-LOAD UART_data, character_l
LOGFORMAT-LOAD UART_data[sF], character_l[6C]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_l
OP2 VALUE-6C
COMMENT-
ADDRESS-105
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-106
LABEL-
FORMATTED-LOAD UART_data, character_o
LOGFORMAT-LOAD UART_data[sF], character_o[6F]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_o
OP2 VALUE-6F
COMMENT-
ADDRESS-107
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-108
LABEL-
FORMATTED-LOAD UART_data, character_w
LOGFORMAT-LOAD UART_data[sF], character_w[77]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_w
OP2 VALUE-77
COMMENT-
ADDRESS-109
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-10A
LABEL-send_space_Error
FORMATTED-CALL send_space
LOGFORMAT-CALL send_space[0E7]
INSTRUCTION-CALL
OPERAND1-send_space
OP1 VALUE-0E7
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-10B
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-10B
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'Error' to the UART
ADDRESS-10B
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-10B
LABEL-send_Error
FORMATTED-LOAD UART_data, character_E
LOGFORMAT-LOAD UART_data[sF], character_E[45]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_E
OP2 VALUE-45
COMMENT-
ADDRESS-10C
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-10D
LABEL-
FORMATTED-LOAD UART_data, character_r
LOGFORMAT-LOAD UART_data[sF], character_r[72]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_r
OP2 VALUE-72
COMMENT-
ADDRESS-10E
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-10F
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-110
LABEL-
FORMATTED-LOAD UART_data, character_o
LOGFORMAT-LOAD UART_data[sF], character_o[6F]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_o
OP2 VALUE-6F
COMMENT-
ADDRESS-111
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-112
LABEL-
FORMATTED-LOAD UART_data, character_r
LOGFORMAT-LOAD UART_data[sF], character_r[72]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_r
OP2 VALUE-72
COMMENT-
ADDRESS-113
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-114
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-115
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-115
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'KCPSM3>' prompt to the UART
ADDRESS-115
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-115
LABEL-send_prompt
FORMATTED-CALL send_CR
LOGFORMAT-CALL send_CR[0E4]
INSTRUCTION-CALL
OPERAND1-send_CR
OP1 VALUE-0E4
OPERAND2-
OP2 VALUE-
COMMENT-;start new line
ADDRESS-116
LABEL-
FORMATTED-LOAD UART_data, character_K
LOGFORMAT-LOAD UART_data[sF], character_K[4B]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_K
OP2 VALUE-4B
COMMENT-
ADDRESS-117
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-118
LABEL-
FORMATTED-LOAD UART_data, character_C
LOGFORMAT-LOAD UART_data[sF], character_C[43]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_C
OP2 VALUE-43
COMMENT-
ADDRESS-119
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-11A
LABEL-
FORMATTED-LOAD UART_data, character_P
LOGFORMAT-LOAD UART_data[sF], character_P[50]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_P
OP2 VALUE-50
COMMENT-
ADDRESS-11B
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-11C
LABEL-
FORMATTED-LOAD UART_data, character_S
LOGFORMAT-LOAD UART_data[sF], character_S[53]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_S
OP2 VALUE-53
COMMENT-
ADDRESS-11D
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-11E
LABEL-
FORMATTED-LOAD UART_data, character_M
LOGFORMAT-LOAD UART_data[sF], character_M[4D]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_M
OP2 VALUE-4D
COMMENT-
ADDRESS-11F
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-120
LABEL-
FORMATTED-LOAD UART_data, character_3
LOGFORMAT-LOAD UART_data[sF], character_3[33]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_3
OP2 VALUE-33
COMMENT-
ADDRESS-121
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-122
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-122
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send '>' character to the UART
ADDRESS-122
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-122
LABEL-send_greater_than
FORMATTED-LOAD UART_data, character_greater_than
LOGFORMAT-LOAD UART_data[sF], character_greater_than[3E]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_greater_than
OP2 VALUE-3E
COMMENT-
ADDRESS-123
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-124
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-125
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-125
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'Invalid' string to the UART
ADDRESS-125
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-125
LABEL-send_Invalid
FORMATTED-LOAD UART_data, character_I
LOGFORMAT-LOAD UART_data[sF], character_I[49]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_I
OP2 VALUE-49
COMMENT-
ADDRESS-126
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-127
LABEL-
FORMATTED-LOAD UART_data, character_n
LOGFORMAT-LOAD UART_data[sF], character_n[6E]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_n
OP2 VALUE-6E
COMMENT-
ADDRESS-128
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-129
LABEL-
FORMATTED-LOAD UART_data, character_v
LOGFORMAT-LOAD UART_data[sF], character_v[76]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_v
OP2 VALUE-76
COMMENT-
ADDRESS-12A
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-12B
LABEL-
FORMATTED-LOAD UART_data, character_a
LOGFORMAT-LOAD UART_data[sF], character_a[61]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_a
OP2 VALUE-61
COMMENT-
ADDRESS-12C
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-12D
LABEL-
FORMATTED-LOAD UART_data, character_l
LOGFORMAT-LOAD UART_data[sF], character_l[6C]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_l
OP2 VALUE-6C
COMMENT-
ADDRESS-12E
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-12F
LABEL-
FORMATTED-LOAD UART_data, character_i
LOGFORMAT-LOAD UART_data[sF], character_i[69]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_i
OP2 VALUE-69
COMMENT-
ADDRESS-130
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-131
LABEL-
FORMATTED-LOAD UART_data, character_d
LOGFORMAT-LOAD UART_data[sF], character_d[64]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_d
OP2 VALUE-64
COMMENT-
ADDRESS-132
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-133
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-134
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-134
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'Time' string to the UART
ADDRESS-134
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-134
LABEL-send_Time
FORMATTED-LOAD UART_data, character_T
LOGFORMAT-LOAD UART_data[sF], character_T[54]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_T
OP2 VALUE-54
COMMENT-
ADDRESS-135
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-136
LABEL-
FORMATTED-LOAD UART_data, character_i
LOGFORMAT-LOAD UART_data[sF], character_i[69]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_i
OP2 VALUE-69
COMMENT-
ADDRESS-137
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-138
LABEL-
FORMATTED-LOAD UART_data, character_m
LOGFORMAT-LOAD UART_data[sF], character_m[6D]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_m
OP2 VALUE-6D
COMMENT-
ADDRESS-139
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-13A
LABEL-
FORMATTED-LOAD UART_data, character_e
LOGFORMAT-LOAD UART_data[sF], character_e[65]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_e
OP2 VALUE-65
COMMENT-
ADDRESS-13B
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-13C
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-13D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-13D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'Alarm' string to the UART
ADDRESS-13D
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-13D
LABEL-send_Alarm
FORMATTED-LOAD UART_data, character_A
LOGFORMAT-LOAD UART_data[sF], character_A[41]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_A
OP2 VALUE-41
COMMENT-
ADDRESS-13E
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-13F
LABEL-
FORMATTED-LOAD UART_data, character_l
LOGFORMAT-LOAD UART_data[sF], character_l[6C]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_l
OP2 VALUE-6C
COMMENT-
ADDRESS-140
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-141
LABEL-
FORMATTED-LOAD UART_data, character_a
LOGFORMAT-LOAD UART_data[sF], character_a[61]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_a
OP2 VALUE-61
COMMENT-
ADDRESS-142
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-143
LABEL-
FORMATTED-LOAD UART_data, character_r
LOGFORMAT-LOAD UART_data[sF], character_r[72]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_r
OP2 VALUE-72
COMMENT-
ADDRESS-144
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-145
LABEL-
FORMATTED-LOAD UART_data, character_m
LOGFORMAT-LOAD UART_data[sF], character_m[6D]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_m
OP2 VALUE-6D
COMMENT-
ADDRESS-146
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-147
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-148
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-148
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'OFF' string to the UART
ADDRESS-148
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-148
LABEL-send_OFF
FORMATTED-LOAD UART_data, character_O
LOGFORMAT-LOAD UART_data[sF], character_O[4F]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_O
OP2 VALUE-4F
COMMENT-
ADDRESS-149
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-14A
LABEL-
FORMATTED-LOAD UART_data, character_F
LOGFORMAT-LOAD UART_data[sF], character_F[46]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_F
OP2 VALUE-46
COMMENT-
ADDRESS-14B
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-14C
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-14D
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-14E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-14E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'ON' string to the UART
ADDRESS-14E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-14E
LABEL-send_ON
FORMATTED-LOAD UART_data, character_O
LOGFORMAT-LOAD UART_data[sF], character_O[4F]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_O
OP2 VALUE-4F
COMMENT-
ADDRESS-14F
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-150
LABEL-
FORMATTED-LOAD UART_data, character_N
LOGFORMAT-LOAD UART_data[sF], character_N[4E]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_N
OP2 VALUE-4E
COMMENT-
ADDRESS-151
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-152
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-153
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-153
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Send 'Active' string to the UART
ADDRESS-153
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-153
LABEL-send_Active
FORMATTED-LOAD UART_data, character_A
LOGFORMAT-LOAD UART_data[sF], character_A[41]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_A
OP2 VALUE-41
COMMENT-
ADDRESS-154
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-155
LABEL-
FORMATTED-LOAD UART_data, character_c
LOGFORMAT-LOAD UART_data[sF], character_c[63]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_c
OP2 VALUE-63
COMMENT-
ADDRESS-156
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-157
LABEL-
FORMATTED-LOAD UART_data, character_t
LOGFORMAT-LOAD UART_data[sF], character_t[74]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_t
OP2 VALUE-74
COMMENT-
ADDRESS-158
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-159
LABEL-
FORMATTED-LOAD UART_data, character_i
LOGFORMAT-LOAD UART_data[sF], character_i[69]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_i
OP2 VALUE-69
COMMENT-
ADDRESS-15A
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-15B
LABEL-
FORMATTED-LOAD UART_data, character_v
LOGFORMAT-LOAD UART_data[sF], character_v[76]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_v
OP2 VALUE-76
COMMENT-
ADDRESS-15C
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-15D
LABEL-
FORMATTED-LOAD UART_data, character_e
LOGFORMAT-LOAD UART_data[sF], character_e[65]
INSTRUCTION-LOAD
OPERAND1-UART_data
OP1 VALUE-sF
OPERAND2-character_e
OP2 VALUE-65
COMMENT-
ADDRESS-15E
LABEL-
FORMATTED-CALL send_to_UART
LOGFORMAT-CALL send_to_UART[09D]
INSTRUCTION-CALL
OPERAND1-send_to_UART
OP1 VALUE-09D
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-15F
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Convert time to ASCII string in scratch pad memory.
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The time to converted must be stored in 3 scratch pad memory locations as
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;defined below. A register named 'store_pointer' must provide the address of
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;first location.
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Address Data
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer ----> hours
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer + 1 ----> minutes
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; store_pointer + 1 ----> seconds
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The resulting ASCII string will be stored in scratch pad memory starting at
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;a location specified by a constant named 'string_start'. The string will
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;take the format hh:mm:ss and end with a carriage return.
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0, s1, s2 and 'store_pointer'.
ADDRESS-160
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-160
LABEL-time_to_ASCII
FORMATTED-LOAD s2, string_start
LOGFORMAT-LOAD s2, string_start[20]
INSTRUCTION-LOAD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-string_start
OP2 VALUE-20
COMMENT-;location for string
ADDRESS-161
LABEL-
FORMATTED-FETCH s0, (store_pointer)
LOGFORMAT-FETCH s0, (store_pointer)[(sE)]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(store_pointer)
OP2 VALUE-(sE)
COMMENT-;read hours value
ADDRESS-162
LABEL-
FORMATTED-CALL decimal_to_ASCII
LOGFORMAT-CALL decimal_to_ASCII[17E]
INSTRUCTION-CALL
OPERAND1-decimal_to_ASCII
OP1 VALUE-17E
OPERAND2-
OP2 VALUE-
COMMENT-;convert to ASCII
ADDRESS-163
LABEL-
FORMATTED-STORE s1, (s2)
LOGFORMAT-STORE s1, (s2)
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-;write hours to string
ADDRESS-164
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-165
LABEL-
FORMATTED-STORE s0, (s2)
LOGFORMAT-STORE s0, (s2)
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-
ADDRESS-166
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-167
LABEL-
FORMATTED-LOAD s0, character_colon
LOGFORMAT-LOAD s0, character_colon[3A]
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_colon
OP2 VALUE-3A
COMMENT-;write ':' to string
ADDRESS-168
LABEL-
FORMATTED-STORE s0, (s2)
LOGFORMAT-STORE s0, (s2)
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-
ADDRESS-169
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-16A
LABEL-
FORMATTED-ADD store_pointer, 01
LOGFORMAT-ADD store_pointer[sE], 01
INSTRUCTION-ADD
OPERAND1-store_pointer
OP1 VALUE-sE
OPERAND2-01
OP2 VALUE-01
COMMENT-;move to minutes
ADDRESS-16B
LABEL-
FORMATTED-FETCH s0, (store_pointer)
LOGFORMAT-FETCH s0, (store_pointer)[(sE)]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(store_pointer)
OP2 VALUE-(sE)
COMMENT-;read minutes value
ADDRESS-16C
LABEL-
FORMATTED-CALL decimal_to_ASCII
LOGFORMAT-CALL decimal_to_ASCII[17E]
INSTRUCTION-CALL
OPERAND1-decimal_to_ASCII
OP1 VALUE-17E
OPERAND2-
OP2 VALUE-
COMMENT-;convert to ASCII
ADDRESS-16D
LABEL-
FORMATTED-STORE s1, (s2)
LOGFORMAT-STORE s1, (s2)
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-;write minutes to string
ADDRESS-16E
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-16F
LABEL-
FORMATTED-STORE s0, (s2)
LOGFORMAT-STORE s0, (s2)
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-
ADDRESS-170
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-171
LABEL-
FORMATTED-LOAD s0, character_colon
LOGFORMAT-LOAD s0, character_colon[3A]
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_colon
OP2 VALUE-3A
COMMENT-;write ':' to string
ADDRESS-172
LABEL-
FORMATTED-STORE s0, (s2)
LOGFORMAT-STORE s0, (s2)
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-
ADDRESS-173
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-174
LABEL-
FORMATTED-ADD store_pointer, 01
LOGFORMAT-ADD store_pointer[sE], 01
INSTRUCTION-ADD
OPERAND1-store_pointer
OP1 VALUE-sE
OPERAND2-01
OP2 VALUE-01
COMMENT-;move to seconds
ADDRESS-175
LABEL-
FORMATTED-FETCH s0, (store_pointer)
LOGFORMAT-FETCH s0, (store_pointer)[(sE)]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(store_pointer)
OP2 VALUE-(sE)
COMMENT-;read seconds value
ADDRESS-176
LABEL-
FORMATTED-CALL decimal_to_ASCII
LOGFORMAT-CALL decimal_to_ASCII[17E]
INSTRUCTION-CALL
OPERAND1-decimal_to_ASCII
OP1 VALUE-17E
OPERAND2-
OP2 VALUE-
COMMENT-;convert to ASCII
ADDRESS-177
LABEL-
FORMATTED-STORE s1, (s2)
LOGFORMAT-STORE s1, (s2)
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-;write seconds to string
ADDRESS-178
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-179
LABEL-
FORMATTED-STORE s0, (s2)
LOGFORMAT-STORE s0, (s2)
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-
ADDRESS-17A
LABEL-
FORMATTED-ADD s2, 01
LOGFORMAT-ADD s2, 01
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-
ADDRESS-17B
LABEL-
FORMATTED-LOAD s0, character_CR
LOGFORMAT-LOAD s0, character_CR[0D]
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-character_CR
OP2 VALUE-0D
COMMENT-;finish string with carriage return
ADDRESS-17C
LABEL-
FORMATTED-STORE s0, (s2)
LOGFORMAT-STORE s0, (s2)
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-
ADDRESS-17D
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Convert value provided in register s0 into ASCII characters
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The value provided must in the range 0 to 99 and will be converted into
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;two ASCII characters.
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The number of 'tens' will be representd by an ASCII character returned in register s1.
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The number of 'units' will be representd by an ASCII character returned in register s0.
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The ASCII representations of '0' to '9' are 30 to 39 hexadecimal which is simply 30 hex added to
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;the actual decimal value.
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0 and s1.
ADDRESS-17E
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-17E
LABEL-decimal_to_ASCII
FORMATTED-LOAD s1, 30
LOGFORMAT-LOAD s1, 30
INSTRUCTION-LOAD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-30
OP2 VALUE-30
COMMENT-;load 'tens' counter with ASCII for '0'
ADDRESS-17F
LABEL-test_for_ten
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment 'tens' value
ADDRESS-180
LABEL-
FORMATTED-SUB s0, 0A
LOGFORMAT-SUB s0, 0A
INSTRUCTION-SUB
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-0A
OP2 VALUE-0A
COMMENT-;try to subtract 10 from the supplied value
ADDRESS-181
LABEL-
FORMATTED-JUMP NC, test_for_ten
LOGFORMAT-JUMP NC, test_for_ten[17F]
INSTRUCTION-JUMP
OPERAND1-NC
OP1 VALUE-NC
OPERAND2-test_for_ten
OP2 VALUE-17F
COMMENT-;repeat if subtraction was possible without underflow.
ADDRESS-182
LABEL-
FORMATTED-SUB s1, 01
LOGFORMAT-SUB s1, 01
INSTRUCTION-SUB
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;'tens' value one less ten due to underflow
ADDRESS-183
LABEL-
FORMATTED-ADD s0, 3A
LOGFORMAT-ADD s0, 3A
INSTRUCTION-ADD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-3A
OP2 VALUE-3A
COMMENT-;restore units value (the remainder) and convert to ASCII
ADDRESS-184
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Real Time Clock
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Uses the 1us interrupt counter [int_counter_msb,int_counter_lsb] to determine how many
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;micro-seconds have elapsed since the last update. This allows for just over 65ms between
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;updates. Complete multiples of 1000us are used to update a 16-bit milli-second counter held
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;in scratch pad memory locations [ms_time_stamp_msb,ms_time_stamp_msb] which in turn
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;is used to update the real time hours, minutes and seconds clock held in scratch pad
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;memory locations 'real_time_hours', 'real_time_minutes' and 'real_time_seconds'.
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The routine uses default register names s0,s1,s2,s3,s4,s5. These are preserved in scratch pad
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;memory during the routine and restored before returning.
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Useful constants for real time clock operations
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-
FORMATTED-CONSTANT count_1000_lsb, E8
LOGFORMAT-CONSTANT count_1000_lsb, E8
INSTRUCTION-CONSTANT
OPERAND1-count_1000_lsb
OP1 VALUE-count_1000_lsb
OPERAND2-E8
OP2 VALUE-E8
COMMENT-;lower 8-bits of 1000 count value
ADDRESS-185
LABEL-
FORMATTED-CONSTANT count_1000_msb, 03
LOGFORMAT-CONSTANT count_1000_msb, 03
INSTRUCTION-CONSTANT
OPERAND1-count_1000_msb
OP1 VALUE-count_1000_msb
OPERAND2-03
OP2 VALUE-03
COMMENT-;upper 8-bits of 1000 count value
ADDRESS-185
LABEL-
FORMATTED-CONSTANT hours_in_a_day, 18
LOGFORMAT-CONSTANT hours_in_a_day, 18
INSTRUCTION-CONSTANT
OPERAND1-hours_in_a_day
OP1 VALUE-hours_in_a_day
OPERAND2-18
OP2 VALUE-18
COMMENT-;24 hours in a day
ADDRESS-185
LABEL-
FORMATTED-CONSTANT minutes_in_an_hour, 3C
LOGFORMAT-CONSTANT minutes_in_an_hour, 3C
INSTRUCTION-CONSTANT
OPERAND1-minutes_in_an_hour
OP1 VALUE-minutes_in_an_hour
OPERAND2-3C
OP2 VALUE-3C
COMMENT-;60 minutes in an hour
ADDRESS-185
LABEL-
FORMATTED-CONSTANT seconds_in_a_minute, 3C
LOGFORMAT-CONSTANT seconds_in_a_minute, 3C
INSTRUCTION-CONSTANT
OPERAND1-seconds_in_a_minute
OP1 VALUE-seconds_in_a_minute
OPERAND2-3C
OP2 VALUE-3C
COMMENT-;60 seconds in a minute
ADDRESS-185
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-185
LABEL-update_time
FORMATTED-STORE s0, time_preserve0
LOGFORMAT-STORE s0, time_preserve0[10]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-time_preserve0
OP2 VALUE-10
COMMENT-;preserve contents of registers used during routine
ADDRESS-186
LABEL-
FORMATTED-STORE s1, time_preserve1
LOGFORMAT-STORE s1, time_preserve1[11]
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-time_preserve1
OP2 VALUE-11
COMMENT-
ADDRESS-187
LABEL-
FORMATTED-STORE s2, time_preserve2
LOGFORMAT-STORE s2, time_preserve2[12]
INSTRUCTION-STORE
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-time_preserve2
OP2 VALUE-12
COMMENT-
ADDRESS-188
LABEL-
FORMATTED-STORE s3, time_preserve3
LOGFORMAT-STORE s3, time_preserve3[13]
INSTRUCTION-STORE
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-time_preserve3
OP2 VALUE-13
COMMENT-
ADDRESS-189
LABEL-
FORMATTED-STORE s4, time_preserve4
LOGFORMAT-STORE s4, time_preserve4[14]
INSTRUCTION-STORE
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-time_preserve4
OP2 VALUE-14
COMMENT-
ADDRESS-18A
LABEL-
FORMATTED-STORE s5, time_preserve5
LOGFORMAT-STORE s5, time_preserve5[15]
INSTRUCTION-STORE
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-time_preserve5
OP2 VALUE-15
COMMENT-
ADDRESS-18B
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-18B
LABEL-
FORMATTED-FETCH s2, us_time_stamp_lsb
LOGFORMAT-FETCH s2, us_time_stamp_lsb[00]
INSTRUCTION-FETCH
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-us_time_stamp_lsb
OP2 VALUE-00
COMMENT-;read the previous 'us' time stamp into [s3,s2]
ADDRESS-18C
LABEL-
FORMATTED-FETCH s3, us_time_stamp_msb
LOGFORMAT-FETCH s3, us_time_stamp_msb[01]
INSTRUCTION-FETCH
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-us_time_stamp_msb
OP2 VALUE-01
COMMENT-
ADDRESS-18D
LABEL-
FORMATTED-DISABLE INTERRUPT
LOGFORMAT-DISABLE INTERRUPT
INSTRUCTION-DISABLE
OPERAND1-INTERRUPT
OP1 VALUE-INTERRUPT
OPERAND2-
OP2 VALUE-
COMMENT-;Read and store current 'us' time stamp provided by the interrupt
ADDRESS-18E
LABEL-
FORMATTED-STORE int_counter_lsb, us_time_stamp_lsb
LOGFORMAT-STORE int_counter_lsb[sD], us_time_stamp_lsb[00]
INSTRUCTION-STORE
OPERAND1-int_counter_lsb
OP1 VALUE-sD
OPERAND2-us_time_stamp_lsb
OP2 VALUE-00
COMMENT-;counter. Interrupts are disabled to ensure that both bytes relate
ADDRESS-18F
LABEL-
FORMATTED-STORE int_counter_msb, us_time_stamp_msb
LOGFORMAT-STORE int_counter_msb[sC], us_time_stamp_msb[01]
INSTRUCTION-STORE
OPERAND1-int_counter_msb
OP1 VALUE-sC
OPERAND2-us_time_stamp_msb
OP2 VALUE-01
COMMENT-;to the same count value.
ADDRESS-190
LABEL-
FORMATTED-ENABLE INTERRUPT
LOGFORMAT-ENABLE INTERRUPT
INSTRUCTION-ENABLE
OPERAND1-INTERRUPT
OP1 VALUE-INTERRUPT
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-191
LABEL-
FORMATTED-FETCH s4, us_time_stamp_lsb
LOGFORMAT-FETCH s4, us_time_stamp_lsb[00]
INSTRUCTION-FETCH
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-us_time_stamp_lsb
OP2 VALUE-00
COMMENT-;read the new 'us' time stamp in [s5,s4]
ADDRESS-192
LABEL-
FORMATTED-FETCH s5, us_time_stamp_msb
LOGFORMAT-FETCH s5, us_time_stamp_msb[01]
INSTRUCTION-FETCH
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-us_time_stamp_msb
OP2 VALUE-01
COMMENT-;
ADDRESS-193
LABEL-
FORMATTED-SUB s4, s2
LOGFORMAT-SUB s4, s2
INSTRUCTION-SUB
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-s2
OP2 VALUE-s2
COMMENT-;calculate 'us' time difference [s5,s4] = [s5,s4] - [s3,s2]
ADDRESS-194
LABEL-
FORMATTED-SUBCY s5, s3
LOGFORMAT-SUBCY s5, s3
INSTRUCTION-SUBCY
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-s3
OP2 VALUE-s3
COMMENT-; (This works correctly even if counter has rolled over)
ADDRESS-195
LABEL-
FORMATTED-FETCH s2, us_time_lsb
LOGFORMAT-FETCH s2, us_time_lsb[02]
INSTRUCTION-FETCH
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-us_time_lsb
OP2 VALUE-02
COMMENT-;read current 'us' time into [s3,s2]
ADDRESS-196
LABEL-
FORMATTED-FETCH s3, us_time_msb
LOGFORMAT-FETCH s3, us_time_msb[03]
INSTRUCTION-FETCH
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-us_time_msb
OP2 VALUE-03
COMMENT-
ADDRESS-197
LABEL-
FORMATTED-ADD s2, s4
LOGFORMAT-ADD s2, s4
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s4
OP2 VALUE-s4
COMMENT-;add on the elapsed 'us' value [s3,s2] = [s3,s2] + [s5,s4]
ADDRESS-198
LABEL-
FORMATTED-ADDCY s3, s5
LOGFORMAT-ADDCY s3, s5
INSTRUCTION-ADDCY
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-s5
OP2 VALUE-s5
COMMENT-
ADDRESS-199
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;determine how many 1000us (1ms) units there are (if any) in current 'us' time
ADDRESS-199
LABEL-
FORMATTED-LOAD s0, 00
LOGFORMAT-LOAD s0, 00
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-00
OP2 VALUE-00
COMMENT-;reset 'ms' counter
ADDRESS-19A
LABEL-test_1000us
FORMATTED-SUB s2, count_1000_lsb
LOGFORMAT-SUB s2, count_1000_lsb[E8]
INSTRUCTION-SUB
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-count_1000_lsb
OP2 VALUE-E8
COMMENT-;subtract 1000 from [s3,s2]
ADDRESS-19B
LABEL-
FORMATTED-SUBCY s3, count_1000_msb
LOGFORMAT-SUBCY s3, count_1000_msb[03]
INSTRUCTION-SUBCY
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-count_1000_msb
OP2 VALUE-03
COMMENT-
ADDRESS-19C
LABEL-
FORMATTED-JUMP C, store_us_time
LOGFORMAT-JUMP C, store_us_time[19F]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-store_us_time
OP2 VALUE-19F
COMMENT-;Carry indicates [s3,s2] was less than 1000us
ADDRESS-19D
LABEL-
FORMATTED-ADD s0, 01
LOGFORMAT-ADD s0, 01
INSTRUCTION-ADD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment 'ms' elapsed because [s3,s2] was more or equal to 1000us
ADDRESS-19E
LABEL-
FORMATTED-JUMP test_1000us
LOGFORMAT-JUMP test_1000us[19A]
INSTRUCTION-JUMP
OPERAND1-test_1000us
OP1 VALUE-19A
OPERAND2-
OP2 VALUE-
COMMENT-;repeat to see if more than 1ms has elapsed
ADDRESS-19F
LABEL-store_us_time
FORMATTED-ADD s2, count_1000_lsb
LOGFORMAT-ADD s2, count_1000_lsb[E8]
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-count_1000_lsb
OP2 VALUE-E8
COMMENT-;add 1000 to restore 'us' value
ADDRESS-1A0
LABEL-
FORMATTED-ADDCY s3, count_1000_msb
LOGFORMAT-ADDCY s3, count_1000_msb[03]
INSTRUCTION-ADDCY
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-count_1000_msb
OP2 VALUE-03
COMMENT-
ADDRESS-1A1
LABEL-
FORMATTED-STORE s2, us_time_lsb
LOGFORMAT-STORE s2, us_time_lsb[02]
INSTRUCTION-STORE
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-us_time_lsb
OP2 VALUE-02
COMMENT-;store the current value of 'us'
ADDRESS-1A2
LABEL-
FORMATTED-STORE s3, us_time_msb
LOGFORMAT-STORE s3, us_time_msb[03]
INSTRUCTION-STORE
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-us_time_msb
OP2 VALUE-03
COMMENT-
ADDRESS-1A3
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;s0 holds the number of 'ms' elapsed since last update (if any).
ADDRESS-1A3
LABEL-
FORMATTED-FETCH s2, ms_time_lsb
LOGFORMAT-FETCH s2, ms_time_lsb[04]
INSTRUCTION-FETCH
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-ms_time_lsb
OP2 VALUE-04
COMMENT-;read current 'ms' time into [s3,s2]
ADDRESS-1A4
LABEL-
FORMATTED-FETCH s3, ms_time_msb
LOGFORMAT-FETCH s3, ms_time_msb[05]
INSTRUCTION-FETCH
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-ms_time_msb
OP2 VALUE-05
COMMENT-
ADDRESS-1A5
LABEL-
FORMATTED-ADD s2, s0
LOGFORMAT-ADD s2, s0
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s0
OP2 VALUE-s0
COMMENT-;add on the elapsed 'ms' value [s3,s2] = [s3,s2] + s0
ADDRESS-1A6
LABEL-
FORMATTED-ADDCY s3, 00
LOGFORMAT-ADDCY s3, 00
INSTRUCTION-ADDCY
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-00
OP2 VALUE-00
COMMENT-
ADDRESS-1A7
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;determine if there are now more than 1000ms to form 1 second.
ADDRESS-1A7
LABEL-
FORMATTED-LOAD s0, 00
LOGFORMAT-LOAD s0, 00
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-00
OP2 VALUE-00
COMMENT-;reset 'second' counter
ADDRESS-1A8
LABEL-
FORMATTED-SUB s2, count_1000_lsb
LOGFORMAT-SUB s2, count_1000_lsb[E8]
INSTRUCTION-SUB
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-count_1000_lsb
OP2 VALUE-E8
COMMENT-;subtract 1000 from [s3,s2]
ADDRESS-1A9
LABEL-
FORMATTED-SUBCY s3, count_1000_msb
LOGFORMAT-SUBCY s3, count_1000_msb[03]
INSTRUCTION-SUBCY
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-count_1000_msb
OP2 VALUE-03
COMMENT-
ADDRESS-1AA
LABEL-
FORMATTED-JUMP C, restore_ms_time
LOGFORMAT-JUMP C, restore_ms_time[1AD]
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-restore_ms_time
OP2 VALUE-1AD
COMMENT-;Carry indicates [s3,s2] was less than 1000ms
ADDRESS-1AB
LABEL-
FORMATTED-ADD s0, 01
LOGFORMAT-ADD s0, 01
INSTRUCTION-ADD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment 'second' elapsed because [s3,s2] was more or equal to 1000ms
ADDRESS-1AC
LABEL-
FORMATTED-JUMP store_ms_time
LOGFORMAT-JUMP store_ms_time[1AF]
INSTRUCTION-JUMP
OPERAND1-store_ms_time
OP1 VALUE-1AF
OPERAND2-
OP2 VALUE-
COMMENT-;new value of 'ms' is remainder of subtraction
ADDRESS-1AD
LABEL-restore_ms_time
FORMATTED-ADD s2, count_1000_lsb
LOGFORMAT-ADD s2, count_1000_lsb[E8]
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-count_1000_lsb
OP2 VALUE-E8
COMMENT-;add 1000 to restore 'ms' value
ADDRESS-1AE
LABEL-
FORMATTED-ADDCY s3, count_1000_msb
LOGFORMAT-ADDCY s3, count_1000_msb[03]
INSTRUCTION-ADDCY
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-count_1000_msb
OP2 VALUE-03
COMMENT-
ADDRESS-1AF
LABEL-store_ms_time
FORMATTED-STORE s2, ms_time_lsb
LOGFORMAT-STORE s2, ms_time_lsb[04]
INSTRUCTION-STORE
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-ms_time_lsb
OP2 VALUE-04
COMMENT-;store the current value of 'ms'
ADDRESS-1B0
LABEL-
FORMATTED-STORE s3, ms_time_msb
LOGFORMAT-STORE s3, ms_time_msb[05]
INSTRUCTION-STORE
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-ms_time_msb
OP2 VALUE-05
COMMENT-
ADDRESS-1B1
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;s0 currently determines if one second needs to be added to the hh:mm:ss clock time
ADDRESS-1B1
LABEL-
FORMATTED-FETCH s1, real_time_seconds
LOGFORMAT-FETCH s1, real_time_seconds[08]
INSTRUCTION-FETCH
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_seconds
OP2 VALUE-08
COMMENT-;read seconds
ADDRESS-1B2
LABEL-
FORMATTED-ADD s1, s0
LOGFORMAT-ADD s1, s0
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-s0
OP2 VALUE-s0
COMMENT-;add one second if required by s0
ADDRESS-1B3
LABEL-
FORMATTED-COMPARE s1, seconds_in_a_minute
LOGFORMAT-COMPARE s1, seconds_in_a_minute[3C]
INSTRUCTION-COMPARE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-seconds_in_a_minute
OP2 VALUE-3C
COMMENT-;test for 1 minute
ADDRESS-1B4
LABEL-
FORMATTED-JUMP Z, inc_minutes
LOGFORMAT-JUMP Z, inc_minutes[1B7]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-inc_minutes
OP2 VALUE-1B7
COMMENT-
ADDRESS-1B5
LABEL-
FORMATTED-STORE s1, real_time_seconds
LOGFORMAT-STORE s1, real_time_seconds[08]
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_seconds
OP2 VALUE-08
COMMENT-;store updated seconds
ADDRESS-1B6
LABEL-
FORMATTED-JUMP time_update_complete
LOGFORMAT-JUMP time_update_complete[1C9]
INSTRUCTION-JUMP
OPERAND1-time_update_complete
OP1 VALUE-1C9
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1B7
LABEL-inc_minutes
FORMATTED-LOAD s1, 00
LOGFORMAT-LOAD s1, 00
INSTRUCTION-LOAD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-00
OP2 VALUE-00
COMMENT-;seconds become zero
ADDRESS-1B8
LABEL-
FORMATTED-STORE s1, real_time_seconds
LOGFORMAT-STORE s1, real_time_seconds[08]
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_seconds
OP2 VALUE-08
COMMENT-
ADDRESS-1B9
LABEL-
FORMATTED-FETCH s1, real_time_minutes
LOGFORMAT-FETCH s1, real_time_minutes[07]
INSTRUCTION-FETCH
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_minutes
OP2 VALUE-07
COMMENT-;read minutes
ADDRESS-1BA
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment minutes
ADDRESS-1BB
LABEL-
FORMATTED-COMPARE s1, minutes_in_an_hour
LOGFORMAT-COMPARE s1, minutes_in_an_hour[3C]
INSTRUCTION-COMPARE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-minutes_in_an_hour
OP2 VALUE-3C
COMMENT-;test for 1 hour
ADDRESS-1BC
LABEL-
FORMATTED-JUMP Z, inc_hours
LOGFORMAT-JUMP Z, inc_hours[1BF]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-inc_hours
OP2 VALUE-1BF
COMMENT-
ADDRESS-1BD
LABEL-
FORMATTED-STORE s1, real_time_minutes
LOGFORMAT-STORE s1, real_time_minutes[07]
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_minutes
OP2 VALUE-07
COMMENT-;store updated minutes
ADDRESS-1BE
LABEL-
FORMATTED-JUMP time_update_complete
LOGFORMAT-JUMP time_update_complete[1C9]
INSTRUCTION-JUMP
OPERAND1-time_update_complete
OP1 VALUE-1C9
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1BF
LABEL-inc_hours
FORMATTED-LOAD s1, 00
LOGFORMAT-LOAD s1, 00
INSTRUCTION-LOAD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-00
OP2 VALUE-00
COMMENT-;minutes become zero
ADDRESS-1C0
LABEL-
FORMATTED-STORE s1, real_time_minutes
LOGFORMAT-STORE s1, real_time_minutes[07]
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_minutes
OP2 VALUE-07
COMMENT-
ADDRESS-1C1
LABEL-
FORMATTED-FETCH s1, real_time_hours
LOGFORMAT-FETCH s1, real_time_hours[06]
INSTRUCTION-FETCH
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_hours
OP2 VALUE-06
COMMENT-;read hours
ADDRESS-1C2
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;increment hours
ADDRESS-1C3
LABEL-
FORMATTED-COMPARE s1, hours_in_a_day
LOGFORMAT-COMPARE s1, hours_in_a_day[18]
INSTRUCTION-COMPARE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-hours_in_a_day
OP2 VALUE-18
COMMENT-;test for 24 hours
ADDRESS-1C4
LABEL-
FORMATTED-JUMP Z, reset_hours
LOGFORMAT-JUMP Z, reset_hours[1C7]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-reset_hours
OP2 VALUE-1C7
COMMENT-
ADDRESS-1C5
LABEL-
FORMATTED-STORE s1, real_time_hours
LOGFORMAT-STORE s1, real_time_hours[06]
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_hours
OP2 VALUE-06
COMMENT-;store updated hours
ADDRESS-1C6
LABEL-
FORMATTED-JUMP time_update_complete
LOGFORMAT-JUMP time_update_complete[1C9]
INSTRUCTION-JUMP
OPERAND1-time_update_complete
OP1 VALUE-1C9
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1C7
LABEL-reset_hours
FORMATTED-LOAD s1, 00
LOGFORMAT-LOAD s1, 00
INSTRUCTION-LOAD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-00
OP2 VALUE-00
COMMENT-;hours become zero
ADDRESS-1C8
LABEL-
FORMATTED-STORE s1, real_time_hours
LOGFORMAT-STORE s1, real_time_hours[06]
INSTRUCTION-STORE
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-real_time_hours
OP2 VALUE-06
COMMENT-
ADDRESS-1C9
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1C9
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;With the time updated, there is then a test for time=alarm time
ADDRESS-1C9
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1C9
LABEL-time_update_complete
FORMATTED-FETCH s0, real_time_hours
LOGFORMAT-FETCH s0, real_time_hours[06]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-real_time_hours
OP2 VALUE-06
COMMENT-
ADDRESS-1CA
LABEL-
FORMATTED-FETCH s1, alarm_time_hours
LOGFORMAT-FETCH s1, alarm_time_hours[09]
INSTRUCTION-FETCH
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-alarm_time_hours
OP2 VALUE-09
COMMENT-;compare hours
ADDRESS-1CB
LABEL-
FORMATTED-COMPARE s0, s1
LOGFORMAT-COMPARE s0, s1
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-s1
OP2 VALUE-s1
COMMENT-
ADDRESS-1CC
LABEL-
FORMATTED-JUMP NZ, finish_update
LOGFORMAT-JUMP NZ, finish_update[1DB]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-finish_update
OP2 VALUE-1DB
COMMENT-
ADDRESS-1CD
LABEL-
FORMATTED-FETCH s0, real_time_minutes
LOGFORMAT-FETCH s0, real_time_minutes[07]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-real_time_minutes
OP2 VALUE-07
COMMENT-;compare minutes
ADDRESS-1CE
LABEL-
FORMATTED-FETCH s1, alarm_time_minutes
LOGFORMAT-FETCH s1, alarm_time_minutes[0A]
INSTRUCTION-FETCH
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-alarm_time_minutes
OP2 VALUE-0A
COMMENT-
ADDRESS-1CF
LABEL-
FORMATTED-COMPARE s0, s1
LOGFORMAT-COMPARE s0, s1
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-s1
OP2 VALUE-s1
COMMENT-
ADDRESS-1D0
LABEL-
FORMATTED-JUMP NZ, finish_update
LOGFORMAT-JUMP NZ, finish_update[1DB]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-finish_update
OP2 VALUE-1DB
COMMENT-
ADDRESS-1D1
LABEL-
FORMATTED-FETCH s0, real_time_seconds
LOGFORMAT-FETCH s0, real_time_seconds[08]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-real_time_seconds
OP2 VALUE-08
COMMENT-;compare seconds
ADDRESS-1D2
LABEL-
FORMATTED-FETCH s1, alarm_time_seconds
LOGFORMAT-FETCH s1, alarm_time_seconds[0B]
INSTRUCTION-FETCH
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-alarm_time_seconds
OP2 VALUE-0B
COMMENT-
ADDRESS-1D3
LABEL-
FORMATTED-COMPARE s0, s1
LOGFORMAT-COMPARE s0, s1
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-s1
OP2 VALUE-s1
COMMENT-
ADDRESS-1D4
LABEL-
FORMATTED-JUMP NZ, finish_update
LOGFORMAT-JUMP NZ, finish_update[1DB]
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-finish_update
OP2 VALUE-1DB
COMMENT-
ADDRESS-1D5
LABEL-
FORMATTED-FETCH s0, alarm_status
LOGFORMAT-FETCH s0, alarm_status[0C]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-;test if alarm is turned on
ADDRESS-1D6
LABEL-
FORMATTED-TEST s0, alarm_armed
LOGFORMAT-TEST s0, alarm_armed[02]
INSTRUCTION-TEST
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_armed
OP2 VALUE-02
COMMENT-
ADDRESS-1D7
LABEL-
FORMATTED-JUMP Z, finish_update
LOGFORMAT-JUMP Z, finish_update[1DB]
INSTRUCTION-JUMP
OPERAND1-Z
OP1 VALUE-Z
OPERAND2-finish_update
OP2 VALUE-1DB
COMMENT-;alarm was off
ADDRESS-1D8
LABEL-
FORMATTED-OR s0, alarm_active
LOGFORMAT-OR s0, alarm_active[01]
INSTRUCTION-OR
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_active
OP2 VALUE-01
COMMENT-;activate alarm
ADDRESS-1D9
LABEL-
FORMATTED-STORE s0, alarm_status
LOGFORMAT-STORE s0, alarm_status[0C]
INSTRUCTION-STORE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-alarm_status
OP2 VALUE-0C
COMMENT-
ADDRESS-1DA
LABEL-
FORMATTED-CALL alarm_drive
LOGFORMAT-CALL alarm_drive[0A4]
INSTRUCTION-CALL
OPERAND1-alarm_drive
OP1 VALUE-0A4
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1DB
LABEL-finish_update
FORMATTED-FETCH s0, time_preserve0
LOGFORMAT-FETCH s0, time_preserve0[10]
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-time_preserve0
OP2 VALUE-10
COMMENT-;restore the register contents
ADDRESS-1DC
LABEL-
FORMATTED-FETCH s1, time_preserve1
LOGFORMAT-FETCH s1, time_preserve1[11]
INSTRUCTION-FETCH
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-time_preserve1
OP2 VALUE-11
COMMENT-
ADDRESS-1DD
LABEL-
FORMATTED-FETCH s2, time_preserve2
LOGFORMAT-FETCH s2, time_preserve2[12]
INSTRUCTION-FETCH
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-time_preserve2
OP2 VALUE-12
COMMENT-
ADDRESS-1DE
LABEL-
FORMATTED-FETCH s3, time_preserve3
LOGFORMAT-FETCH s3, time_preserve3[13]
INSTRUCTION-FETCH
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-time_preserve3
OP2 VALUE-13
COMMENT-
ADDRESS-1DF
LABEL-
FORMATTED-FETCH s4, time_preserve4
LOGFORMAT-FETCH s4, time_preserve4[14]
INSTRUCTION-FETCH
OPERAND1-s4
OP1 VALUE-s4
OPERAND2-time_preserve4
OP2 VALUE-14
COMMENT-
ADDRESS-1E0
LABEL-
FORMATTED-FETCH s5, time_preserve5
LOGFORMAT-FETCH s5, time_preserve5[15]
INSTRUCTION-FETCH
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-time_preserve5
OP2 VALUE-15
COMMENT-
ADDRESS-1E1
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Convert character to upper case
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The character supplied in register s0.
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;If the character is in the range 'a' to 'z', it is converted
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;to the equivalent upper case character in the range 'A' to 'Z'.
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;All other characters remain unchanged.
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0.
ADDRESS-1E2
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E2
LABEL-upper_case
FORMATTED-COMPARE s0, 61
LOGFORMAT-COMPARE s0, 61
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-61
OP2 VALUE-61
COMMENT-;eliminate character codes below 'a' (61 hex)
ADDRESS-1E3
LABEL-
FORMATTED-RETURN C
LOGFORMAT-RETURN C
INSTRUCTION-RETURN
OPERAND1-C
OP1 VALUE-C
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1E4
LABEL-
FORMATTED-COMPARE s0, 7B
LOGFORMAT-COMPARE s0, 7B
INSTRUCTION-COMPARE
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-7B
OP2 VALUE-7B
COMMENT-;eliminate character codes above 'z' (7A hex)
ADDRESS-1E5
LABEL-
FORMATTED-RETURN NC
LOGFORMAT-RETURN NC
INSTRUCTION-RETURN
OPERAND1-NC
OP1 VALUE-NC
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1E6
LABEL-
FORMATTED-AND s0, DF
LOGFORMAT-AND s0, DF
INSTRUCTION-AND
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-DF
OP2 VALUE-DF
COMMENT-;mask bit5 to convert to upper case
ADDRESS-1E7
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Convert character '0' to '9' to numerical value in range 0 to 9
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The character supplied in register s0. If the character is in the
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;range '0' to '9', it is converted to the equivalent decimal value.
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Characters not in the range '0' to '9' are signified by the return
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;with the CARRY flag set.
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0.
ADDRESS-1E8
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1E8
LABEL-1char_to_value
FORMATTED-ADD s0, C6
LOGFORMAT-ADD s0, C6
INSTRUCTION-ADD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-C6
OP2 VALUE-C6
COMMENT-;reject character codes above '9' (39 hex)
ADDRESS-1E9
LABEL-
FORMATTED-RETURN C
LOGFORMAT-RETURN C
INSTRUCTION-RETURN
OPERAND1-C
OP1 VALUE-C
OPERAND2-
OP2 VALUE-
COMMENT-;carry flag is set
ADDRESS-1EA
LABEL-
FORMATTED-SUB s0, F6
LOGFORMAT-SUB s0, F6
INSTRUCTION-SUB
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-F6
OP2 VALUE-F6
COMMENT-;reject character codes below '0' (30 hex)
ADDRESS-1EB
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;carry is set if value not in range
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Determine the numerical value of a two character decimal string held in
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;scratch pad memory such the result is in the range 0 to 99 (00 to 63 hex).
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The string must be stored as in two consecutive memory locations and the
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;location of the first (tens) character supplied in the s1 register.
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The result is provided in register s2. Strings not using characters in the
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;range '0' to '9' are signified by the return with the CARRY flag set.
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Registers used s0, s1 and s2.
ADDRESS-1EC
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1EC
LABEL-2char_to_value
FORMATTED-FETCH s0, (s1)
LOGFORMAT-FETCH s0, (s1)
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s1)
OP2 VALUE-(s1)
COMMENT-;read 'tens' character
ADDRESS-1ED
LABEL-
FORMATTED-CALL 1char_to_value
LOGFORMAT-CALL 1char_to_value[1E8]
INSTRUCTION-CALL
OPERAND1-1char_to_value
OP1 VALUE-1E8
OPERAND2-
OP2 VALUE-
COMMENT-;convert to numerical value
ADDRESS-1EE
LABEL-
FORMATTED-RETURN C
LOGFORMAT-RETURN C
INSTRUCTION-RETURN
OPERAND1-C
OP1 VALUE-C
OPERAND2-
OP2 VALUE-
COMMENT-;bad character - CARRY set
ADDRESS-1EF
LABEL-
FORMATTED-LOAD s2, s0
LOGFORMAT-LOAD s2, s0
INSTRUCTION-LOAD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s0
OP2 VALUE-s0
COMMENT-
ADDRESS-1F0
LABEL-
FORMATTED-SL0 s2
LOGFORMAT-SL0 s2
INSTRUCTION-SL0
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-
OP2 VALUE-
COMMENT-;multiply 'tens' value by 10 (0A hex)
ADDRESS-1F1
LABEL-
FORMATTED-SL0 s2
LOGFORMAT-SL0 s2
INSTRUCTION-SL0
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1F2
LABEL-
FORMATTED-ADD s2, s0
LOGFORMAT-ADD s2, s0
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s0
OP2 VALUE-s0
COMMENT-
ADDRESS-1F3
LABEL-
FORMATTED-SL0 s2
LOGFORMAT-SL0 s2
INSTRUCTION-SL0
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1F4
LABEL-
FORMATTED-ADD s1, 01
LOGFORMAT-ADD s1, 01
INSTRUCTION-ADD
OPERAND1-s1
OP1 VALUE-s1
OPERAND2-01
OP2 VALUE-01
COMMENT-;read 'units' character
ADDRESS-1F5
LABEL-
FORMATTED-FETCH s0, (s1)
LOGFORMAT-FETCH s0, (s1)
INSTRUCTION-FETCH
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-(s1)
OP2 VALUE-(s1)
COMMENT-
ADDRESS-1F6
LABEL-
FORMATTED-CALL 1char_to_value
LOGFORMAT-CALL 1char_to_value[1E8]
INSTRUCTION-CALL
OPERAND1-1char_to_value
OP1 VALUE-1E8
OPERAND2-
OP2 VALUE-
COMMENT-;convert to numerical value
ADDRESS-1F7
LABEL-
FORMATTED-RETURN C
LOGFORMAT-RETURN C
INSTRUCTION-RETURN
OPERAND1-C
OP1 VALUE-C
OPERAND2-
OP2 VALUE-
COMMENT-;bad character - CARRY set
ADDRESS-1F8
LABEL-
FORMATTED-ADD s2, s0
LOGFORMAT-ADD s2, s0
INSTRUCTION-ADD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s0
OP2 VALUE-s0
COMMENT-;add units to result and clear CARRY flag
ADDRESS-1F9
LABEL-
FORMATTED-RETURN
LOGFORMAT-RETURN
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Interrupt service routine (ISR)
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The interrupt is used to increment a 16-bit counter formed with two registers
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;called [int_counter_msb,int_counter_lsb]. This provides a count of the number
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;of micro-seconds elapsed. The counter is 'free running' in that it will count
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;up to 65,535 and then roll over to zero. The count value is then used in other
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;parts of the program as required and where it is less time critical.
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;The ISR only uses the specified counter registers
ADDRESS-1FA
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FC
LABEL-
FORMATTED-ADDRESS 3FC
LOGFORMAT-ADDRESS 3FC
INSTRUCTION-ADDRESS
OPERAND1-3FC
OP1 VALUE-3FC
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-3FC
LABEL-ISR
FORMATTED-ADD int_counter_lsb, 01
LOGFORMAT-ADD int_counter_lsb[sD], 01
INSTRUCTION-ADD
OPERAND1-int_counter_lsb
OP1 VALUE-sD
OPERAND2-01
OP2 VALUE-01
COMMENT-;add 1us to 16-bit counter
ADDRESS-3FD
LABEL-
FORMATTED-ADDCY int_counter_msb, 00
LOGFORMAT-ADDCY int_counter_msb[sC], 00
INSTRUCTION-ADDCY
OPERAND1-int_counter_msb
OP1 VALUE-sC
OPERAND2-00
OP2 VALUE-00
COMMENT-
ADDRESS-3FE
LABEL-
FORMATTED-RETURNI ENABLE
LOGFORMAT-RETURNI ENABLE
INSTRUCTION-RETURNI
OPERAND1-ENABLE
OP1 VALUE-ENABLE
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Interrupt vector
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FF
LABEL-
FORMATTED-ADDRESS 3FF
LOGFORMAT-ADDRESS 3FF
INSTRUCTION-ADDRESS
OPERAND1-3FF
OP1 VALUE-3FF
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-JUMP ISR
LOGFORMAT-JUMP ISR[3FC]
INSTRUCTION-JUMP
OPERAND1-ISR
OP1 VALUE-3FC
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Useful constants
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;ASCII table
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_a, 61
LOGFORMAT-CONSTANT character_a, 61
INSTRUCTION-CONSTANT
OPERAND1-character_a
OP1 VALUE-character_a
OPERAND2-61
OP2 VALUE-61
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_b, 62
LOGFORMAT-CONSTANT character_b, 62
INSTRUCTION-CONSTANT
OPERAND1-character_b
OP1 VALUE-character_b
OPERAND2-62
OP2 VALUE-62
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_c, 63
LOGFORMAT-CONSTANT character_c, 63
INSTRUCTION-CONSTANT
OPERAND1-character_c
OP1 VALUE-character_c
OPERAND2-63
OP2 VALUE-63
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_d, 64
LOGFORMAT-CONSTANT character_d, 64
INSTRUCTION-CONSTANT
OPERAND1-character_d
OP1 VALUE-character_d
OPERAND2-64
OP2 VALUE-64
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_e, 65
LOGFORMAT-CONSTANT character_e, 65
INSTRUCTION-CONSTANT
OPERAND1-character_e
OP1 VALUE-character_e
OPERAND2-65
OP2 VALUE-65
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_f, 66
LOGFORMAT-CONSTANT character_f, 66
INSTRUCTION-CONSTANT
OPERAND1-character_f
OP1 VALUE-character_f
OPERAND2-66
OP2 VALUE-66
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_g, 67
LOGFORMAT-CONSTANT character_g, 67
INSTRUCTION-CONSTANT
OPERAND1-character_g
OP1 VALUE-character_g
OPERAND2-67
OP2 VALUE-67
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_h, 68
LOGFORMAT-CONSTANT character_h, 68
INSTRUCTION-CONSTANT
OPERAND1-character_h
OP1 VALUE-character_h
OPERAND2-68
OP2 VALUE-68
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_i, 69
LOGFORMAT-CONSTANT character_i, 69
INSTRUCTION-CONSTANT
OPERAND1-character_i
OP1 VALUE-character_i
OPERAND2-69
OP2 VALUE-69
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_j, 6A
LOGFORMAT-CONSTANT character_j, 6A
INSTRUCTION-CONSTANT
OPERAND1-character_j
OP1 VALUE-character_j
OPERAND2-6A
OP2 VALUE-6A
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_k, 6B
LOGFORMAT-CONSTANT character_k, 6B
INSTRUCTION-CONSTANT
OPERAND1-character_k
OP1 VALUE-character_k
OPERAND2-6B
OP2 VALUE-6B
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_l, 6C
LOGFORMAT-CONSTANT character_l, 6C
INSTRUCTION-CONSTANT
OPERAND1-character_l
OP1 VALUE-character_l
OPERAND2-6C
OP2 VALUE-6C
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_m, 6D
LOGFORMAT-CONSTANT character_m, 6D
INSTRUCTION-CONSTANT
OPERAND1-character_m
OP1 VALUE-character_m
OPERAND2-6D
OP2 VALUE-6D
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_n, 6E
LOGFORMAT-CONSTANT character_n, 6E
INSTRUCTION-CONSTANT
OPERAND1-character_n
OP1 VALUE-character_n
OPERAND2-6E
OP2 VALUE-6E
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_o, 6F
LOGFORMAT-CONSTANT character_o, 6F
INSTRUCTION-CONSTANT
OPERAND1-character_o
OP1 VALUE-character_o
OPERAND2-6F
OP2 VALUE-6F
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_p, 70
LOGFORMAT-CONSTANT character_p, 70
INSTRUCTION-CONSTANT
OPERAND1-character_p
OP1 VALUE-character_p
OPERAND2-70
OP2 VALUE-70
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_q, 71
LOGFORMAT-CONSTANT character_q, 71
INSTRUCTION-CONSTANT
OPERAND1-character_q
OP1 VALUE-character_q
OPERAND2-71
OP2 VALUE-71
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_r, 72
LOGFORMAT-CONSTANT character_r, 72
INSTRUCTION-CONSTANT
OPERAND1-character_r
OP1 VALUE-character_r
OPERAND2-72
OP2 VALUE-72
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_s, 73
LOGFORMAT-CONSTANT character_s, 73
INSTRUCTION-CONSTANT
OPERAND1-character_s
OP1 VALUE-character_s
OPERAND2-73
OP2 VALUE-73
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_t, 74
LOGFORMAT-CONSTANT character_t, 74
INSTRUCTION-CONSTANT
OPERAND1-character_t
OP1 VALUE-character_t
OPERAND2-74
OP2 VALUE-74
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_u, 75
LOGFORMAT-CONSTANT character_u, 75
INSTRUCTION-CONSTANT
OPERAND1-character_u
OP1 VALUE-character_u
OPERAND2-75
OP2 VALUE-75
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_v, 76
LOGFORMAT-CONSTANT character_v, 76
INSTRUCTION-CONSTANT
OPERAND1-character_v
OP1 VALUE-character_v
OPERAND2-76
OP2 VALUE-76
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_w, 77
LOGFORMAT-CONSTANT character_w, 77
INSTRUCTION-CONSTANT
OPERAND1-character_w
OP1 VALUE-character_w
OPERAND2-77
OP2 VALUE-77
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_x, 78
LOGFORMAT-CONSTANT character_x, 78
INSTRUCTION-CONSTANT
OPERAND1-character_x
OP1 VALUE-character_x
OPERAND2-78
OP2 VALUE-78
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_y, 79
LOGFORMAT-CONSTANT character_y, 79
INSTRUCTION-CONSTANT
OPERAND1-character_y
OP1 VALUE-character_y
OPERAND2-79
OP2 VALUE-79
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_z, 7A
LOGFORMAT-CONSTANT character_z, 7A
INSTRUCTION-CONSTANT
OPERAND1-character_z
OP1 VALUE-character_z
OPERAND2-7A
OP2 VALUE-7A
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_A, 41
LOGFORMAT-CONSTANT character_A, 41
INSTRUCTION-CONSTANT
OPERAND1-character_A
OP1 VALUE-character_A
OPERAND2-41
OP2 VALUE-41
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_B, 42
LOGFORMAT-CONSTANT character_B, 42
INSTRUCTION-CONSTANT
OPERAND1-character_B
OP1 VALUE-character_B
OPERAND2-42
OP2 VALUE-42
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_C, 43
LOGFORMAT-CONSTANT character_C, 43
INSTRUCTION-CONSTANT
OPERAND1-character_C
OP1 VALUE-character_C
OPERAND2-43
OP2 VALUE-43
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_D, 44
LOGFORMAT-CONSTANT character_D, 44
INSTRUCTION-CONSTANT
OPERAND1-character_D
OP1 VALUE-character_D
OPERAND2-44
OP2 VALUE-44
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_E, 45
LOGFORMAT-CONSTANT character_E, 45
INSTRUCTION-CONSTANT
OPERAND1-character_E
OP1 VALUE-character_E
OPERAND2-45
OP2 VALUE-45
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_F, 46
LOGFORMAT-CONSTANT character_F, 46
INSTRUCTION-CONSTANT
OPERAND1-character_F
OP1 VALUE-character_F
OPERAND2-46
OP2 VALUE-46
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_G, 47
LOGFORMAT-CONSTANT character_G, 47
INSTRUCTION-CONSTANT
OPERAND1-character_G
OP1 VALUE-character_G
OPERAND2-47
OP2 VALUE-47
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_H, 48
LOGFORMAT-CONSTANT character_H, 48
INSTRUCTION-CONSTANT
OPERAND1-character_H
OP1 VALUE-character_H
OPERAND2-48
OP2 VALUE-48
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_I, 49
LOGFORMAT-CONSTANT character_I, 49
INSTRUCTION-CONSTANT
OPERAND1-character_I
OP1 VALUE-character_I
OPERAND2-49
OP2 VALUE-49
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_J, 4A
LOGFORMAT-CONSTANT character_J, 4A
INSTRUCTION-CONSTANT
OPERAND1-character_J
OP1 VALUE-character_J
OPERAND2-4A
OP2 VALUE-4A
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_K, 4B
LOGFORMAT-CONSTANT character_K, 4B
INSTRUCTION-CONSTANT
OPERAND1-character_K
OP1 VALUE-character_K
OPERAND2-4B
OP2 VALUE-4B
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_L, 4C
LOGFORMAT-CONSTANT character_L, 4C
INSTRUCTION-CONSTANT
OPERAND1-character_L
OP1 VALUE-character_L
OPERAND2-4C
OP2 VALUE-4C
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_M, 4D
LOGFORMAT-CONSTANT character_M, 4D
INSTRUCTION-CONSTANT
OPERAND1-character_M
OP1 VALUE-character_M
OPERAND2-4D
OP2 VALUE-4D
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_N, 4E
LOGFORMAT-CONSTANT character_N, 4E
INSTRUCTION-CONSTANT
OPERAND1-character_N
OP1 VALUE-character_N
OPERAND2-4E
OP2 VALUE-4E
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_O, 4F
LOGFORMAT-CONSTANT character_O, 4F
INSTRUCTION-CONSTANT
OPERAND1-character_O
OP1 VALUE-character_O
OPERAND2-4F
OP2 VALUE-4F
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_P, 50
LOGFORMAT-CONSTANT character_P, 50
INSTRUCTION-CONSTANT
OPERAND1-character_P
OP1 VALUE-character_P
OPERAND2-50
OP2 VALUE-50
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_Q, 51
LOGFORMAT-CONSTANT character_Q, 51
INSTRUCTION-CONSTANT
OPERAND1-character_Q
OP1 VALUE-character_Q
OPERAND2-51
OP2 VALUE-51
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_R, 52
LOGFORMAT-CONSTANT character_R, 52
INSTRUCTION-CONSTANT
OPERAND1-character_R
OP1 VALUE-character_R
OPERAND2-52
OP2 VALUE-52
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_S, 53
LOGFORMAT-CONSTANT character_S, 53
INSTRUCTION-CONSTANT
OPERAND1-character_S
OP1 VALUE-character_S
OPERAND2-53
OP2 VALUE-53
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_T, 54
LOGFORMAT-CONSTANT character_T, 54
INSTRUCTION-CONSTANT
OPERAND1-character_T
OP1 VALUE-character_T
OPERAND2-54
OP2 VALUE-54
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_U, 55
LOGFORMAT-CONSTANT character_U, 55
INSTRUCTION-CONSTANT
OPERAND1-character_U
OP1 VALUE-character_U
OPERAND2-55
OP2 VALUE-55
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_V, 56
LOGFORMAT-CONSTANT character_V, 56
INSTRUCTION-CONSTANT
OPERAND1-character_V
OP1 VALUE-character_V
OPERAND2-56
OP2 VALUE-56
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_W, 57
LOGFORMAT-CONSTANT character_W, 57
INSTRUCTION-CONSTANT
OPERAND1-character_W
OP1 VALUE-character_W
OPERAND2-57
OP2 VALUE-57
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_X, 58
LOGFORMAT-CONSTANT character_X, 58
INSTRUCTION-CONSTANT
OPERAND1-character_X
OP1 VALUE-character_X
OPERAND2-58
OP2 VALUE-58
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_Y, 59
LOGFORMAT-CONSTANT character_Y, 59
INSTRUCTION-CONSTANT
OPERAND1-character_Y
OP1 VALUE-character_Y
OPERAND2-59
OP2 VALUE-59
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_Z, 5A
LOGFORMAT-CONSTANT character_Z, 5A
INSTRUCTION-CONSTANT
OPERAND1-character_Z
OP1 VALUE-character_Z
OPERAND2-5A
OP2 VALUE-5A
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_0, 30
LOGFORMAT-CONSTANT character_0, 30
INSTRUCTION-CONSTANT
OPERAND1-character_0
OP1 VALUE-character_0
OPERAND2-30
OP2 VALUE-30
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_1, 31
LOGFORMAT-CONSTANT character_1, 31
INSTRUCTION-CONSTANT
OPERAND1-character_1
OP1 VALUE-character_1
OPERAND2-31
OP2 VALUE-31
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_2, 32
LOGFORMAT-CONSTANT character_2, 32
INSTRUCTION-CONSTANT
OPERAND1-character_2
OP1 VALUE-character_2
OPERAND2-32
OP2 VALUE-32
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_3, 33
LOGFORMAT-CONSTANT character_3, 33
INSTRUCTION-CONSTANT
OPERAND1-character_3
OP1 VALUE-character_3
OPERAND2-33
OP2 VALUE-33
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_4, 34
LOGFORMAT-CONSTANT character_4, 34
INSTRUCTION-CONSTANT
OPERAND1-character_4
OP1 VALUE-character_4
OPERAND2-34
OP2 VALUE-34
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_5, 35
LOGFORMAT-CONSTANT character_5, 35
INSTRUCTION-CONSTANT
OPERAND1-character_5
OP1 VALUE-character_5
OPERAND2-35
OP2 VALUE-35
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_6, 36
LOGFORMAT-CONSTANT character_6, 36
INSTRUCTION-CONSTANT
OPERAND1-character_6
OP1 VALUE-character_6
OPERAND2-36
OP2 VALUE-36
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_7, 37
LOGFORMAT-CONSTANT character_7, 37
INSTRUCTION-CONSTANT
OPERAND1-character_7
OP1 VALUE-character_7
OPERAND2-37
OP2 VALUE-37
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_8, 38
LOGFORMAT-CONSTANT character_8, 38
INSTRUCTION-CONSTANT
OPERAND1-character_8
OP1 VALUE-character_8
OPERAND2-38
OP2 VALUE-38
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_9, 39
LOGFORMAT-CONSTANT character_9, 39
INSTRUCTION-CONSTANT
OPERAND1-character_9
OP1 VALUE-character_9
OPERAND2-39
OP2 VALUE-39
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_colon, 3A
LOGFORMAT-CONSTANT character_colon, 3A
INSTRUCTION-CONSTANT
OPERAND1-character_colon
OP1 VALUE-character_colon
OPERAND2-3A
OP2 VALUE-3A
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_semi_colon, 3B
LOGFORMAT-CONSTANT character_semi_colon, 3B
INSTRUCTION-CONSTANT
OPERAND1-character_semi_colon
OP1 VALUE-character_semi_colon
OPERAND2-3B
OP2 VALUE-3B
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_less_than, 3C
LOGFORMAT-CONSTANT character_less_than, 3C
INSTRUCTION-CONSTANT
OPERAND1-character_less_than
OP1 VALUE-character_less_than
OPERAND2-3C
OP2 VALUE-3C
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_greater_than, 3E
LOGFORMAT-CONSTANT character_greater_than, 3E
INSTRUCTION-CONSTANT
OPERAND1-character_greater_than
OP1 VALUE-character_greater_than
OPERAND2-3E
OP2 VALUE-3E
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_equals, 3D
LOGFORMAT-CONSTANT character_equals, 3D
INSTRUCTION-CONSTANT
OPERAND1-character_equals
OP1 VALUE-character_equals
OPERAND2-3D
OP2 VALUE-3D
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_space, 20
LOGFORMAT-CONSTANT character_space, 20
INSTRUCTION-CONSTANT
OPERAND1-character_space
OP1 VALUE-character_space
OPERAND2-20
OP2 VALUE-20
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_CR, 0D
LOGFORMAT-CONSTANT character_CR, 0D
INSTRUCTION-CONSTANT
OPERAND1-character_CR
OP1 VALUE-character_CR
OPERAND2-0D
OP2 VALUE-0D
COMMENT-;carriage return
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_question, 3F
LOGFORMAT-CONSTANT character_question, 3F
INSTRUCTION-CONSTANT
OPERAND1-character_question
OP1 VALUE-character_question
OPERAND2-3F
OP2 VALUE-3F
COMMENT-;'?'
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_dollar, 24
LOGFORMAT-CONSTANT character_dollar, 24
INSTRUCTION-CONSTANT
OPERAND1-character_dollar
OP1 VALUE-character_dollar
OPERAND2-24
OP2 VALUE-24
COMMENT-
ADDRESS-3FF
LABEL-
FORMATTED-CONSTANT character_BS, 08
LOGFORMAT-CONSTANT character_BS, 08
INSTRUCTION-CONSTANT
OPERAND1-character_BS
OP1 VALUE-character_BS
OPERAND2-08
OP2 VALUE-08
COMMENT-;Back Space command character
ADDRESS-3FF
LABEL-
FORMATTED-
LOGFORMAT-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;