Subversion Repositories Kolibri OS

Rev

Rev 692 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 halyavin 1
 
2
; Copyright (c) 1999-2009, Tomasz Grysztar.
1039 heavyiron 3
; All rights reserved.
31 halyavin 4
5
 
6
	push	_out_of_memory
692 heavyiron 7
	jmp	fatal_error
8
stack_overflow:
31 halyavin 9
	push	_stack_overflow
692 heavyiron 10
	jmp	fatal_error
11
main_file_not_found:
31 halyavin 12
	push	_main_file_not_found
692 heavyiron 13
	jmp	fatal_error
14
unexpected_end_of_file:
31 halyavin 15
	push	_unexpected_end_of_file
692 heavyiron 16
	jmp	fatal_error
17
code_cannot_be_generated:
31 halyavin 18
	push	_code_cannot_be_generated
692 heavyiron 19
	jmp	fatal_error
20
format_limitations_exceeded:
31 halyavin 21
	push	_format_limitations_exceeded
692 heavyiron 22
	jmp	fatal_error
23
invalid_definition:
24
	push	_invalid_definition
25
	jmp	fatal_error
26
write_failed:
31 halyavin 27
	push	_write_failed
692 heavyiron 28
	jmp	fatal_error
29
30
 
31 halyavin 31
	push	_file_not_found
692 heavyiron 32
	jmp	assembler_error
33
error_reading_file:
31 halyavin 34
	push	_error_reading_file
692 heavyiron 35
	jmp	assembler_error
36
invalid_file_format:
31 halyavin 37
	push	_invalid_file_format
692 heavyiron 38
	jmp	assembler_error
39
invalid_macro_arguments:
31 halyavin 40
	push	_invalid_macro_arguments
692 heavyiron 41
	jmp	assembler_error
42
incomplete_macro:
31 halyavin 43
	push	_incomplete_macro
692 heavyiron 44
	jmp	assembler_error
45
unexpected_characters:
31 halyavin 46
	push	_unexpected_characters
692 heavyiron 47
	jmp	assembler_error
48
invalid_argument:
31 halyavin 49
	push	_invalid_argument
692 heavyiron 50
	jmp	assembler_error
51
illegal_instruction:
31 halyavin 52
	push	_illegal_instruction
692 heavyiron 53
	jmp	assembler_error
54
invalid_operand:
31 halyavin 55
	push	_invalid_operand
692 heavyiron 56
	jmp	assembler_error
57
invalid_operand_size:
31 halyavin 58
	push	_invalid_operand_size
692 heavyiron 59
	jmp	assembler_error
60
operand_size_not_specified:
31 halyavin 61
	push	_operand_size_not_specified
692 heavyiron 62
	jmp	assembler_error
63
operand_sizes_do_not_match:
31 halyavin 64
	push	_operand_sizes_do_not_match
692 heavyiron 65
	jmp	assembler_error
66
invalid_address_size:
31 halyavin 67
	push	_invalid_address_size
692 heavyiron 68
	jmp	assembler_error
69
address_sizes_do_not_agree:
31 halyavin 70
	push	_address_sizes_do_not_agree
692 heavyiron 71
	jmp	assembler_error
72
prefix_conflict:
31 halyavin 73
	push	_prefix_conflict
692 heavyiron 74
	jmp	assembler_error
75
long_immediate_not_encodable:
31 halyavin 76
	push	_long_immediate_not_encodable
692 heavyiron 77
	jmp	assembler_error
78
relative_jump_out_of_range:
31 halyavin 79
	push	_relative_jump_out_of_range
692 heavyiron 80
	jmp	assembler_error
81
invalid_expression:
31 halyavin 82
	push	_invalid_expression
692 heavyiron 83
	jmp	assembler_error
84
invalid_address:
31 halyavin 85
	push	_invalid_address
692 heavyiron 86
	jmp	assembler_error
87
invalid_value:
31 halyavin 88
	push	_invalid_value
692 heavyiron 89
	jmp	assembler_error
90
value_out_of_range:
31 halyavin 91
	push	_value_out_of_range
692 heavyiron 92
	jmp	assembler_error
93
undefined_symbol:
31 halyavin 94
	mov	edi,message
692 heavyiron 95
	mov	esi,_undefined_symbol
96
	call	copy_asciiz
97
	push	message
98
	cmp	[error_info],0
99
	je	assembler_error
100
	mov	byte [edi-1],20h
101
	call	write_quoted_symbol_name
102
	jmp	assembler_error
103
    copy_asciiz:
104
	lods	byte [esi]
105
	stos	byte [edi]
106
	test	al,al
107
	jnz	copy_asciiz
108
	ret
109
    write_quoted_symbol_name:
110
	mov	al,27h
111
	stosb
112
	mov	esi,[error_info]
113
	movzx	ecx,byte [esi-1]
114
	rep	movs byte [edi],[esi]
115
	mov	ax,27h
116
	stosw
117
	ret
118
symbol_out_of_scope:
119
	mov	edi,message
120
	mov	esi,_symbol_out_of_scope_1
121
	call	copy_asciiz
122
	cmp	[error_info],0
123
	je	finish_symbol_out_of_scope_message
124
	mov	byte [edi-1],20h
125
	call	write_quoted_symbol_name
126
    finish_symbol_out_of_scope_message:
127
	mov	byte [edi-1],20h
128
	mov	esi,_symbol_out_of_scope_2
129
	call	copy_asciiz
130
	push	message
131
	jmp	assembler_error
132
invalid_use_of_symbol:
31 halyavin 133
	push	_invalid_use_of_symbol
692 heavyiron 134
	jmp	assembler_error
135
name_too_long:
31 halyavin 136
	push	_name_too_long
692 heavyiron 137
	jmp	assembler_error
138
invalid_name:
31 halyavin 139
	push	_invalid_name
692 heavyiron 140
	jmp	assembler_error
141
reserved_word_used_as_symbol:
31 halyavin 142
	push	_reserved_word_used_as_symbol
692 heavyiron 143
	jmp	assembler_error
144
symbol_already_defined:
31 halyavin 145
	push	_symbol_already_defined
692 heavyiron 146
	jmp	assembler_error
147
missing_end_quote:
31 halyavin 148
	push	_missing_end_quote
692 heavyiron 149
	jmp	assembler_error
150
missing_end_directive:
31 halyavin 151
	push	_missing_end_directive
692 heavyiron 152
	jmp	assembler_error
153
unexpected_instruction:
31 halyavin 154
	push	_unexpected_instruction
692 heavyiron 155
	jmp	assembler_error
156
extra_characters_on_line:
31 halyavin 157
	push	_extra_characters_on_line
692 heavyiron 158
	jmp	assembler_error
159
section_not_aligned_enough:
31 halyavin 160
	push	_section_not_aligned_enough
692 heavyiron 161
	jmp	assembler_error
162
setting_already_specified:
31 halyavin 163
	push	_setting_already_specified
692 heavyiron 164
	jmp	assembler_error
165
data_already_defined:
31 halyavin 166
	push	_data_already_defined
692 heavyiron 167
	jmp	assembler_error
168
too_many_repeats:
31 halyavin 169
	push	_too_many_repeats
692 heavyiron 170
	jmp	assembler_error
171
invoked_error:
1039 heavyiron 172
	push	_invoked_error
173
	jmp	assembler_error
174