📄 pass4.dat
字号:
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;**************************************************************************************
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The main program is centred on the task of editing the frequency. It waits until the
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; rotary control is used and then makes the appropriate changes. If the actual digit
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; digit value is changed then the calculation to drive the DDS is performed each time.
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The start state is that of allowing the edit cursor position to be moved. Rotary
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; inputs are detected by the interrupt service routine and set a flag bit which the
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; main program then uses to adjust the cursor position and pointer to the corresponding
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; BCD digit in memory.
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; A press of the rotary control is detected by polling and used to change to the digit
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; editing mode.
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;**************************************************************************************
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Display frequency on top line of the LCD and DDS data on the lower line
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;**************************************************************************************
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The BCD value should be stored in scratch pad memory in 9 ascending locations
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; called BCD_digit0 to BCD_digit8.
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The value is displayed in the format xxx.xxx xxxMHz
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; However, the most significant 2 digits will be blanked if zero.
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; registers used s0,s1,s2,s3,s4,s5,s6,s7
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-00D
LABEL-display_3_digits
INSTRUCTION-LOAD
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-03
OP2 VALUE-03
COMMENT-;3 digits to display
ADDRESS-00E
LABEL-3digit_loop
INSTRUCTION-FETCH
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-(s2)
OP2 VALUE-(s2)
COMMENT-
ADDRESS-00F
LABEL-
INSTRUCTION-CALL
OPERAND1-display_digit
OP1 VALUE-014
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-010
LABEL-
INSTRUCTION-SUB
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-01
OP2 VALUE-01
COMMENT-;decrement digit pointer
ADDRESS-011
LABEL-
INSTRUCTION-SUB
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-01
OP2 VALUE-01
COMMENT-;count digits displayed
ADDRESS-012
LABEL-
INSTRUCTION-JUMP
OPERAND1-NZ
OP1 VALUE-NZ
OPERAND2-3digit_loop
OP2 VALUE-00E
COMMENT-
ADDRESS-013
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-014
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-014
LABEL-display_digit
INSTRUCTION-ADD
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-30
OP2 VALUE-30
COMMENT-;convert BCD to ASCII character
ADDRESS-015
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_data
OP1 VALUE-097
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-016
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-017
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-017
LABEL-display_space
INSTRUCTION-LOAD
OPERAND1-s5
OP1 VALUE-s5
OPERAND2-character_space
OP2 VALUE-20
COMMENT-
ADDRESS-018
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_data
OP1 VALUE-097
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-019
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;**************************************************************************************
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Routines to display hexadecimal values on LCD display
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;**************************************************************************************
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Convert hexadecimal value provided in register s0 into ASCII characters
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The value provided must can be any value in the range 00 to FF and will be converted into
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; two ASCII characters.
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The upper nibble will be represented by an ASCII character returned in register s3.
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; The lower nibble will be represented by an ASCII character returned in register s2.
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
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
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; added to the actual decimal value. The ASCII representations of 'A' to 'F' are 41 to 46
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; hexadecimal requiring a further addition of 07 to the 30 already added.
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Registers used s0, s2 and s3.
ADDRESS-01A
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-01A
LABEL-hex_byte_to_ASCII
INSTRUCTION-LOAD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s0
OP2 VALUE-s0
COMMENT-;remember value supplied
ADDRESS-01B
LABEL-
INSTRUCTION-SR0
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-
OP2 VALUE-
COMMENT-;isolate upper nibble
ADDRESS-01C
LABEL-
INSTRUCTION-SR0
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-01D
LABEL-
INSTRUCTION-SR0
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-01E
LABEL-
INSTRUCTION-SR0
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-01F
LABEL-
INSTRUCTION-CALL
OPERAND1-hex_to_ASCII
OP1 VALUE-026
OPERAND2-
OP2 VALUE-
COMMENT-;convert
ADDRESS-020
LABEL-
INSTRUCTION-LOAD
OPERAND1-s3
OP1 VALUE-s3
OPERAND2-s0
OP2 VALUE-s0
COMMENT-;upper nibble value in s3
ADDRESS-021
LABEL-
INSTRUCTION-LOAD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-s2
OP2 VALUE-s2
COMMENT-;restore complete value
ADDRESS-022
LABEL-
INSTRUCTION-AND
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-0F
OP2 VALUE-0F
COMMENT-;isolate lower nibble
ADDRESS-023
LABEL-
INSTRUCTION-CALL
OPERAND1-hex_to_ASCII
OP1 VALUE-026
OPERAND2-
OP2 VALUE-
COMMENT-;convert
ADDRESS-024
LABEL-
INSTRUCTION-LOAD
OPERAND1-s2
OP1 VALUE-s2
OPERAND2-s0
OP2 VALUE-s0
COMMENT-;lower nibble value in s2
ADDRESS-025
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-026
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-026
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-; Convert hexadecimal value provided in register s0 into ASCII character
ADDRESS-026
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-026
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;Register used s0
ADDRESS-026
LABEL-
INSTRUCTION-
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-;
ADDRESS-026
LABEL-hex_to_ASCII
INSTRUCTION-SUB
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-0A
OP2 VALUE-0A
COMMENT-;test if value is in range 0 to 9
ADDRESS-027
LABEL-
INSTRUCTION-JUMP
OPERAND1-C
OP1 VALUE-C
OPERAND2-number_char
OP2 VALUE-029
COMMENT-
ADDRESS-028
LABEL-
INSTRUCTION-ADD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-07
OP2 VALUE-07
COMMENT-;ASCII char A to F in range 41 to 46
ADDRESS-029
LABEL-number_char
INSTRUCTION-ADD
OPERAND1-s0
OP1 VALUE-s0
OPERAND2-3A
OP2 VALUE-3A
COMMENT-;ASCII char 0 to 9 in range 30 to 40
ADDRESS-02A
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OP1 VALUE-
OPERAND2-
OP2 VALUE-
COMMENT-
ADDRESS-02B
LABEL-
INSTRUCTION-
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -