ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
cpu.h
Go to the documentation of this file.
1#ifndef __UGBC_CPU__
2#define __UGBC_CPU__
3
4/*****************************************************************************
5 * ugBASIC - an isomorphic BASIC language compiler for retrocomputers *
6 *****************************************************************************
7 * Copyright 2021-2026 Marco Spedaletti (asimov@mclink.it)
8 *
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 * http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 *----------------------------------------------------------------------------
21 * Concesso in licenza secondo i termini della Licenza Apache, versione 2.0
22 * (la "Licenza"); è proibito usare questo file se non in conformità alla
23 * Licenza. Una copia della Licenza è disponibile all'indirizzo:
24 *
25 * http://www.apache.org/licenses/LICENSE-2.0
26 *
27 * Se non richiesto dalla legislazione vigente o concordato per iscritto,
28 * il software distribuito nei termini della Licenza è distribuito
29 * "COSì COM'è", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o
30 * implicite. Consultare la Licenza per il testo specifico che regola le
31 * autorizzazioni e le limitazioni previste dalla medesima.
32 ****************************************************************************/
33
34#include "../ugbc.h"
35
36void cpu_init( Environment * _environment );
37
38void cpu_nop( Environment * _environment );
39void cpu_ztoa( Environment * _environment );
40void cpu_ctoa( Environment * _environment );
41void cpu_beq( Environment * _environment, char * _label );
42void cpu_bneq( Environment * _environment, char * _label );
43void cpu_busy_wait( Environment * _environment, char * _timing );
44void cpu_bveq( Environment * _environment, char * _value, char * _label );
45void cpu_bvneq( Environment * _environment, char * _value, char * _label );
46void cpu_combine_nibbles( Environment * _environment, char * _low_nibble, char * _hi_nibble, char * _byte );
47void cpu_compare_16bit( Environment * _environment, char *_source, char *_destination, char *_name, int _positive );
48void cpu_compare_16bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive );
49void cpu_compare_32bit( Environment * _environment, char *_source, char *_destination, char *_name, int _positive );
50void cpu_compare_32bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive );
51void cpu_compare_nbit( Environment * _environment, char *_source, char *_destination, char *_name, int _positive, int _bits );
52void cpu_compare_nbit_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive, int _bits );
53void cpu_compare_8bit( Environment * _environment, char *_source, char *_destination, char *_name, int _positive );
54void cpu_compare_8bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive );
55void cpu_prepare_for_compare_and_branch_8bit( Environment * _environment, char *_source );
56void cpu_compare_and_branch_8bit( Environment * _environment, char *_source, char * _destination, char *_name, int _positive );
57void cpu_compare_and_branch_8bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive );
58void cpu_execute_compare_and_branch_8bit_const( Environment * _environment, int _destination, char *_name, int _positive );
59void cpu_compare_and_branch_16bit( Environment * _environment, char *_source, char * _destination, char *_name, int _positive );
60void cpu_compare_and_branch_16bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive );
61void cpu_compare_and_branch_32bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive );
62void cpu_compare_and_branch_char_const( Environment * _environment, char *_source, int _destination, char *_name, int _positive );
63void cpu_di( Environment * _environment );
64void cpu_ei( Environment * _environment );
65void cpu_inc( Environment * _environment, char * _variable );
66void cpu_inc_16bit( Environment * _environment, char * _variable );
67void cpu_inc_32bit( Environment * _environment, char * _variable );
68void cpu_inc_nbit( Environment * _environment, char * _variable, int _bits );
69void cpu_dec( Environment * _environment, char * _variable );
70void cpu_dec_16bit( Environment * _environment, char * _variable );
71void cpu_dec_32bit( Environment * _environment, char * _variable );
72void cpu_dec_nbit( Environment * _environment, char * _variable, int _bits );
73void cpu_less_than_nbit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _bits );
74void cpu_less_than_16bit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _signed );
75void cpu_less_than_32bit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _signed );
76void cpu_less_than_8bit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _signed );
77void cpu_less_than_nbit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _bits );
78void cpu_less_than_16bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _signed );
79void cpu_less_than_32bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _signed );
80void cpu_less_than_8bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _signed );
81void cpu_less_than_and_branch_8bit_const( Environment * _environment, char *_source, int _destination, char *_label, int _equal, int _signed );
82void cpu_greater_than_16bit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _signed );
83void cpu_greater_than_32bit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _signed );
84void cpu_greater_than_8bit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _signed );
85void cpu_greater_than_nbit( Environment * _environment, char *_source, char *_destination, char *_name, int _equal, int _bits );
86void cpu_greater_than_16bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _signed );
87void cpu_greater_than_32bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _signed );
88void cpu_greater_than_8bit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _signed );
89void cpu_greater_than_nbit_const( Environment * _environment, char *_source, int _destination, char *_name, int _equal, int _bits );
90void cpu_fill( Environment * _environment, char * _address, char * _bytes, int _bytes_width, char * _pattern );
91void cpu_fill_size( Environment * _environment, char * _address, int _bytes, char * _pattern );
92void cpu_fill_size_value( Environment * _environment, char * _address, int _bytes, int _pattern );
93void cpu_fill_direct( Environment * _environment, char * _address, char * _blocks, char * _pattern );
94void cpu_fill_direct_size( Environment * _environment, char * _address, int _bytes, char * _pattern );
95void cpu_fill_direct_size_value( Environment * _environment, char * _address, int _bytes, int _pattern );
96void cpu_fill_blocks( Environment * _environment, char * _address, char * _blocks, char * _pattern );
97void cpu_halt( Environment * _environment );
98void cpu_end( Environment * _environment );
99void cpu_jump( Environment * _environment, char * _label );
100void cpu_jump_indirect( Environment * _environment, char * _value );
101void cpu_call_addr( Environment * _environment, int _address );
102void cpu_call( Environment * _environment, char * _label );
103void cpu_call_indirect( Environment * _environment, char * _value );
104void cpu_set_asmio( Environment * _environment, int _asmio, int _value );
105void cpu_set_asmio_indirect( Environment * _environment, int _asmio, char * _value );
106void cpu_get_asmio_indirect( Environment * _environment, int _asmio, char * _value );
107int cpu_register_decode( Environment * _environment, char * _register );
108void cpu_pop( Environment * _environment );
109void cpu_port_out( Environment * _environment, char * _port, char * _value );
110void cpu_return( Environment * _environment );
111void cpu_label( Environment * _environment, char * _label );
112void cpu_limit_16bit( Environment * _environment, char * _variable, int _value );
113void cpu_logical_and_8bit( Environment * _environment, char * _left, char * _right, char * _result );
114void cpu_logical_or_8bit( Environment * _environment, char * _left, char * _right, char * _result );
115void cpu_logical_not_8bit( Environment * _environment, char * _value, char * _result );
116void cpu_and_8bit( Environment * _environment, char * _left, char * _right, char * _result );
117void cpu_and_8bit_const( Environment * _environment, char * _left, int _right, char * _result );
118void cpu_or_8bit( Environment * _environment, char * _left, char * _right, char * _result );
119void cpu_or_8bit_const( Environment * _environment, char * _left, int _right, char * _result );
120void cpu_xor_8bit( Environment * _environment, char * _left, char * _right, char * _result );
121void cpu_xor_8bit_const( Environment * _environment, char * _left, int _right, char * _result );
122void cpu_not_8bit( Environment * _environment, char * _value, char * _result );
123void cpu_swap_8bit( Environment * _environment, char * _left, char * _right );
124void cpu_and_16bit( Environment * _environment, char * _left, char * _right, char * _result );
125void cpu_or_16bit( Environment * _environment, char * _left, char * _right, char * _result );
126void cpu_xor_16bit( Environment * _environment, char * _left, char * _right, char * _result );
127void cpu_xor_16bit_const( Environment * _environment, char * _left, int _right, char * _result );
128void cpu_not_16bit( Environment * _environment, char * _value, char * _result );
129void cpu_swap_16bit( Environment * _environment, char * _left, char * _right );
130void cpu_and_32bit( Environment * _environment, char * _left, char * _right, char * _result );
131void cpu_or_32bit( Environment * _environment, char * _left, char * _right, char * _result );
132void cpu_xor_32bit( Environment * _environment, char * _left, char * _right, char * _result );
133void cpu_xor_32bit_const( Environment * _environment, char * _left, int _right, char * _result );
134void cpu_not_32bit( Environment * _environment, char * _value, char * _result );
135void cpu_swap_32bit( Environment * _environment, char * _left, char * _right );
136void cpu_math_add_nbit( Environment * _environment, char *_source, char *_destination, char *_name, int _bits );
137void cpu_math_add_nbit_const( Environment * _environment, char *_source, int _destination, char *_name, int _bits );
138void cpu_math_add_16bit( Environment * _environment, char *_source, char *_destination, char *_name );
139void cpu_math_add_16bit_const( Environment * _environment, char *_source, int _destination, char *_name );
140void cpu_math_add_16bit_with_16bit( Environment * _environment, char *_source, char *_destination, char *_name );
141void cpu_math_add_16bit_with_8bit( Environment * _environment, char *_source, char *_destination, char *_name );
142void cpu_math_add_32bit( Environment * _environment, char *_source, char *_destination, char *_name );
143void cpu_math_add_32bit_const( Environment * _environment, char *_source, int _destination, char *_name );
144void cpu_math_add_8bit( Environment * _environment, char *_source, char *_destination, char *_name );
145void cpu_math_add_8bit_const( Environment * _environment, char *_source, int _destination, char *_name );
146void cpu_math_and_const_16bit( Environment * _environment, char *_source, int _mask );
147void cpu_math_and_const_32bit( Environment * _environment, char *_source, int _mask );
148void cpu_math_and_const_8bit( Environment * _environment, char *_source, int _mask );
149void cpu_math_complement_const_16bit( Environment * _environment, char *_source, int _value );
150void cpu_math_complement_const_32bit( Environment * _environment, char *_source, int _value );
151void cpu_math_complement_const_8bit( Environment * _environment, char *_source, int _value );
152void cpu_math_div2_const_nbit( Environment * _environment, char *_source, int _value, int _bits, char * _remainder );
153void cpu_math_div2_const_16bit( Environment * _environment, char *_source, int _value, int _signed, char * _remainder );
154void cpu_math_div2_const_32bit( Environment * _environment, char *_source, int _value, int _signed, char * _remainder );
155void cpu_math_div2_const_8bit( Environment * _environment, char *_source, int _value, int _signed, char * _remainder );
156void cpu_math_double_16bit( Environment * _environment, char *_source, char *_name, int _signed );
157void cpu_math_double_32bit( Environment * _environment, char *_source, char *_name, int _signed );
158void cpu_math_double_8bit( Environment * _environment, char *_source, char *_name, int _signed );
159void cpu_math_mul_nbit_to_nbit( Environment * _environment, char *_source, char *_destination, char *_name, int _bits );
160void cpu_math_mul_16bit_to_32bit( Environment * _environment, char *_source, char *_destination, char *_name, int _signed );
161void cpu_math_mul_8bit_to_16bit( Environment * _environment, char *_source, char *_destination, char *_name, int _signed );
162void cpu_math_div_nbit_to_nbit( Environment * _environment, char *_source, char *_destination, char *_other, char * _other_remainder, int _bits );
163void cpu_math_div_32bit_to_16bit( Environment * _environment, char *_source, char *_destination, char *_other, char * _other_remainder, int _signed );
164void cpu_math_div_nbit_to_nbit_const( Environment * _environment, char *_source, int _destination, char *_other, char * _other_remainder, int _bits );
165void cpu_math_div_32bit_to_16bit_const( Environment * _environment, char *_source, int _destination, char *_other, char * _other_remainder, int _signed );
166void cpu_math_div_16bit_to_16bit( Environment * _environment, char *_source, char *_destination, char *_other, char * _other_remainder, int _signed );
167void cpu_math_div_16bit_to_16bit_const( Environment * _environment, char *_source, int _destination, char *_other, char * _other_remainder, int _signed );
168void cpu_math_div_8bit_to_8bit( Environment * _environment, char *_source, char *_destination, char *_other, char * _other_remainder, int _signed );
169void cpu_math_div_8bit_to_8bit_const( Environment * _environment, char *_source, int _destination, char *_other, char * _other_remainder, int _signed );
170void cpu_math_mul2_const_nbit( Environment * _environment, char *_source, int _value, int _bits );
171void cpu_math_mul2_const_16bit( Environment * _environment, char *_source, int _value, int _signed );
172void cpu_math_mul2_const_32bit( Environment * _environment, char *_source, int _value, int _signed );
173void cpu_math_mul2_const_8bit( Environment * _environment, char *_source, int _value, int _signed );
174void cpu_math_sub_nbit( Environment * _environment, char *_source, char *_destination, char *_name, int _bits );
175void cpu_math_sub_16bit( Environment * _environment, char *_source, char *_destination, char *_name );
176void cpu_math_sub_32bit( Environment * _environment, char *_source, char *_destination, char *_name );
177void cpu_math_sub_8bit( Environment * _environment, char *_source, char *_destination, char *_name );
178void cpu_math_sub_16bit_with_8bit( Environment * _environment, char *_source, char *_destination, char *_name );
179void cpu_move_16bit( Environment * _environment, char *_source, char *_destination );
180void cpu_addressof_16bit( Environment * _environment, char *_source, char *_destination );
181void cpu_move_32bit( Environment * _environment, char *_source, char *_destination );
182void cpu_move_8bit( Environment * _environment, char *_source, char *_destination );
183
184void cpu_move_8bit_signed_16bit_signed( Environment * _environment, char *_source, char *_destination );
185void cpu_move_8bit_signed_16bit_unsigned( Environment * _environment, char *_source, char *_destination );
186void cpu_move_8bit_unsigned_16bit_signed( Environment * _environment, char *_source, char *_destination );
187void cpu_move_8bit_unsigned_16bit_unsigned( Environment * _environment, char *_source, char *_destination );
188
189void cpu_move_8bit_signed_32bit_signed( Environment * _environment, char *_source, char *_destination );
190void cpu_move_8bit_signed_32bit_unsigned( Environment * _environment, char *_source, char *_destination );
191void cpu_move_8bit_unsigned_32bit_signed( Environment * _environment, char *_source, char *_destination );
192void cpu_move_8bit_unsigned_32bit_unsigned( Environment * _environment, char *_source, char *_destination );
193
194void cpu_move_16bit_signed_8bit_signed( Environment * _environment, char *_source, char *_destination );
195void cpu_move_16bit_signed_8bit_unsigned( Environment * _environment, char *_source, char *_destination );
196void cpu_move_16bit_unsigned_8bit_signed( Environment * _environment, char *_source, char *_destination );
197void cpu_move_16bit_unsigned_8bit_unsigned( Environment * _environment, char *_source, char *_destination );
198
199void cpu_move_16bit_signed_32bit_signed( Environment * _environment, char *_source, char *_destination );
200void cpu_move_16bit_signed_32bit_unsigned( Environment * _environment, char *_source, char *_destination );
201void cpu_move_16bit_unsigned_32bit_signed( Environment * _environment, char *_source, char *_destination );
202void cpu_move_16bit_unsigned_32bit_unsigned( Environment * _environment, char *_source, char *_destination );
203
204void cpu_move_32bit_signed_8bit_signed( Environment * _environment, char *_source, char *_destination );
205void cpu_move_32bit_signed_8bit_unsigned( Environment * _environment, char *_source, char *_destination );
206void cpu_move_32bit_unsigned_8bit_signed( Environment * _environment, char *_source, char *_destination );
207void cpu_move_32bit_unsigned_8bit_unsigned( Environment * _environment, char *_source, char *_destination );
208
209void cpu_move_32bit_signed_16bit_signed( Environment * _environment, char *_source, char *_destination );
210void cpu_move_32bit_signed_16bit_unsigned( Environment * _environment, char *_source, char *_destination );
211void cpu_move_32bit_unsigned_16bit_signed( Environment * _environment, char *_source, char *_destination );
212void cpu_move_32bit_unsigned_16bit_unsigned( Environment * _environment, char *_source, char *_destination );
213
214void cpu_move_nbit( Environment * _environment, int _n, char *_source, char *_destination );
215void cpu_peek( Environment * _environment, char * _address, char * _target );
216void cpu_poke( Environment * _environment, char * _address, char * _value );
217void cpu_poke_const( Environment * _environment, char * _address, int _value );
218void cpu_peekw( Environment * _environment, char * _address, char * _target );
219void cpu_pokew( Environment * _environment, char * _address, char * _value );
220void cpu_pokew_const( Environment * _environment, char * _address, int _value );
221void cpu_peekd( Environment * _environment, char * _address, char * _target );
222void cpu_poked( Environment * _environment, char * _address, char * _value );
223void cpu_poked_const( Environment * _environment, char * _address, int _value );
224void cpu_random( Environment * _environment, char * _entropy );
225void cpu_random_16bit( Environment * _environment, char * _entropy, char * _result );
226void cpu_random_32bit( Environment * _environment, char * _entropy, char * _result );
227void cpu_random_8bit( Environment * _environment, char * _entropy, char * _result );
228void cpu_store_char( Environment * _environment, char *_source, int _value );
229void cpu_store_8bit( Environment * _environment, char *_source, int _value );
230void cpu_store_16bit( Environment * _environment, char *_source, int _value );
231void cpu_store_32bit( Environment * _environment, char *_source, int _value );
232void cpu_store_nbit( Environment * _environment, char *_source, int _n, int _value[] );
233void cpu_mem_move( Environment * _environment, char *_source, char *_destination, char *_size );
234void cpu_mem_move_16bit( Environment * _environment, char *_source, char *_destination, char *_size );
235void cpu_mem_move_direct( Environment * _environment, char *_source, char *_destination, char *_size );
236void cpu_mem_move_direct2( Environment * _environment, char *_source, char *_destination, char *_size );
237void cpu_mem_move_direct2_size( Environment * _environment, char *_source, char *_destination, int _size );
238void cpu_mem_move_size( Environment * _environment, char *_source, char *_destination, int _size );
239void cpu_mem_move_direct_size( Environment * _environment, char *_source, char *_destination, int _size );
240void cpu_mem_move_direct_indirect_size( Environment * _environment, char *_source, char *_destination, int _size );
241void cpu_mem_move_indirect_direct_size( Environment * _environment, char *_source, char *_destination, int _size );
242void cpu_compare_memory( Environment * _environment, char *_source, char *_destination, char *_size, char *_result, int _equal );
243void cpu_compare_memory_size( Environment * _environment, char *_source, char *_destination, int _size, char *_result, int _equal );
244void cpu_less_than_memory( Environment * _environment, char *_source, char *_destination, char *_size, char *_result, int _equal );
245void cpu_less_than_memory_size( Environment * _environment, char *_source, char *_destination, int _size, char *_result, int _equal );
246void cpu_greater_than_memory( Environment * _environment, char *_source, char *_destination, char *_size, char *_result, int _equal );
247void cpu_greater_than_memory_size( Environment * _environment, char *_source, char *_destination, int _size, char *_result, int _equal );
248void cpu_uppercase( Environment * _environment, char *_source, char *_size, char *_result );
249void cpu_lowercase( Environment * _environment, char *_source, char *_size, char *_result );
250void cpu_convert_string_into_8bit( Environment * _environment, char * _string, char * _len, char * _value );
251void cpu_convert_string_into_16bit( Environment * _environment, char * _string, char * _len, char * _value );
252void cpu_fill_indirect( Environment * _environment, char * _address, char * _size, char * _pattern, int _size_size );
253void cpu_flip_8bit( Environment * _environment, char * _source, char * _destination );
254void cpu_flip( Environment * _environment, char * _source, char * _size, char * _destination );
255void cpu_move_8bit_indirect( Environment * _environment, char *_source, char * _value );
256void cpu_move_8bit_indirect2( Environment * _environment, char * _value, char *_source );
257void cpu_move_8bit_indirect2_8bit( Environment * _environment, char * _value, char * _offset, char *_source );
258void cpu_move_8bit_indirect2_16bit( Environment * _environment, char * _value, char * _offset, char *_source );
259void cpu_move_16bit_indirect( Environment * _environment, char *_source, char * _value );
260void cpu_move_16bit_indirect2( Environment * _environment, char * _value, char *_source );
261void cpu_move_16bit_indirect2_8bit( Environment * _environment, char * _value, char *_source, char * _index );
262void cpu_move_32bit_indirect( Environment * _environment, char *_source, char * _value );
263void cpu_move_32bit_indirect2( Environment * _environment, char * _value, char *_source );
264void cpu_move_nbit_indirect( Environment * _environment, int _n, char *_source, char * _value );
265void cpu_move_nbit_indirect2( Environment * _environment, int _n, char *_source, char * _value );
266void cpu_bit_check( Environment * _environment, char * _value, int _position, char *_result, int _bitwidth );
267void cpu_bit_check_extended( Environment * _environment, char * _value, char * _position, char *_result, int _bitwidth );
268void cpu_bit_inplace_8bit( Environment * _environment, char * _value, int _position, int * _bit );
269void cpu_bit_inplace_8bit_extended_indirect( Environment * _environment, char * address, char * _position, char * _bit );
270void cpu_number_to_string( Environment * _environment, char * _number, char * _string, char * _string_size, int _bits, int _Signed );
271void cpu_bits_to_string( Environment * _environment, char * _number, char * _string, char * _string_size, int _bits, char * _zero, char * _one );
272void cpu_hex_to_string( Environment * _environment, char * _number, char * _string, char * _size, int _separator );
273void cpu_hex_to_string_calc_string( Environment * _environment, char * _size, int _separator, char * _string_size );
274void cpu_hex_to_string_calc_string_size( Environment * _environment, int _size, int _separator, char * _string_size );
275void cpu_move_8bit_indirect_with_offset2( Environment * _environment, char *_source, char * _value, char * _offset );
276void cpu_dsdefine( Environment * _environment, char * _string, char * _index );
277void cpu_dsfill( Environment * _environment, char * _string, char * _value );
278void cpu_dsfill_value( Environment * _environment, char * _string, int _value );
279void cpu_dsalloc( Environment * _environment, char * _size, char * _index );
280void cpu_dsalloc_size( Environment * _environment, int _size, char * _index );
281void cpu_dsfree( Environment * _environment, char * _index );
282void cpu_dswrite( Environment * _environment, char * _index );
283void cpu_dsresize( Environment * _environment, char * _index, char * _size );
284void cpu_dsresize_size( Environment * _environment, char * _index, int _size );
285void cpu_dsassign( Environment * _environment, char * _original, char * _copy );
286void cpu_dsassign_string( Environment * _environment, char * _string, char * _copy );
287void cpu_dsgc( Environment * _environment );
288void cpu_dsinit( Environment * _environment );
289void cpu_dsdescriptor( Environment * _environment, char * _index, char * _address, char * _size );
290void cpu_move_8bit_indirect_with_offset( Environment * _environment, char *_source, char * _value, int _offset );
291void cpu_move_8bit_with_offset2( Environment * _environment, char *_source, char * _value, char * _offset );
292void cpu_store_8bit_with_offset( Environment * _environment, char *_destination, int _value, int _offset );
293void cpu_store_8bit_with_offset2( Environment * _environment, char *_destination, char * _offset, int _value );
294void cpu_complement2_8bit( Environment * _environment, char * _source, char * _destination );
295void cpu_complement2_16bit( Environment * _environment, char * _source, char * _destination );
296void cpu_complement2_32bit( Environment * _environment, char * _source, char * _destination );
297void cpu_complement2_nbit( Environment * _environment, char * _source, char * _destination, int _bits );
298void cpu_sqroot( Environment * _environment, char * _number, char * _result );
299void cpu_dstring_vars( Environment * _environment );
300void cpu_set_callback( Environment * _environment, char * _callback, char * _label );
301void cpu_out( Environment * _environment, char * _port, char * _value );
302void cpu_in( Environment * _environment, char * _port, char * _value );
303void cpu_out_direct( Environment * _environment, char * _port, char * _value );
304void cpu_in_direct( Environment * _environment, char * _port, char * _value );
305void cpu_string_sub( Environment * _environment, char * _source, char * _source_size, char * _pattern, char * _pattern_size, char * _destination, char * _destination_size );
306
307void cpu_protothread_vars( Environment * _environment );
308void cpu_protothread_loop( Environment * _environment );
309void cpu_protothread_register_at( Environment * _environment, char * _index, char * _label );
310void cpu_protothread_register( Environment * _environment, char * _label, char * _index );
311void cpu_protothread_unregister( Environment * _environment, char * _index );
312void cpu_protothread_save( Environment * _environment, char * _index, int _step );
313void cpu_protothread_restore( Environment * _environment, char * _index, char * _step );
314void cpu_protothread_set_state( Environment * _environment, char * _index, int _state );
315void cpu_protothread_get_state( Environment * _environment, char * _index, char * _state );
316void cpu_protothread_current( Environment * _environment, char * _current );
317void cpu_protothread_get_address( Environment * _environment, char * _index, char * _address );
318
319void cpu_msc1_uncompress_direct_direct( Environment * _environment, char * _input, char * _output );
320void cpu_msc1_uncompress_direct_indirect( Environment * _environment, char * _input, char * _output );
321void cpu_msc1_uncompress_indirect_direct( Environment * _environment, char * _input, char * _output );
322void cpu_msc1_uncompress_indirect_indirect( Environment * _environment, char * _input, char * _output );
323
324void cpu_blit_initialize( Environment * _environment );
325char*cpu_blit_register_name( Environment * _environment, int _register );
326int cpu_blit_alloc_register( Environment * _environment );
327void cpu_blit_free_register( Environment * _environment, int _register );
328void cpu_blit_finalize( Environment * _environment );
329
330void cpu_address_table_build( Environment * _environment, char * _table, int * _values, char *_address[], int _count );
331void cpu_address_table_lookup( Environment * _environment, char * _table, int _count );
332void cpu_address_table_call( Environment * _environment, char * _table, char * _value, char * _address );
333
334// FAST FP (24 bit)
335
336void cpu_float_fast_from_double_to_int_array( Environment * _environment, double _value, int _result[] );
337void cpu_float_fast_from_int_array_to_double( Environment * _environment, int _value[], double * _result );
338void cpu_float_fast_to_string( Environment * _environment, char * _x, char * _string, char * _string_size );
339void cpu_float_fast_from_16( Environment * _environment, char * _value, char * _result, int _signed );
340void cpu_float_fast_from_8( Environment * _environment, char * _value, char * _result, int _signed );
341void cpu_float_fast_to_16( Environment * _environment, char * _value, char * _result, int _signed );
342void cpu_float_fast_to_8( Environment * _environment, char * _value, char * _result, int _signed );
343void cpu_float_fast_add( Environment * _environment, char * _x, char * _y, char * _result );
344void cpu_float_fast_sub( Environment * _environment, char * _x, char * _y, char * _result );
345void cpu_float_fast_mul( Environment * _environment, char * _x, char * _y, char * _result );
346void cpu_float_fast_div( Environment * _environment, char * _x, char * _y, char * _result );
347void cpu_float_fast_cmp( Environment * _environment, char * _x, char * _y, char * _result );
348void cpu_float_fast_sin( Environment * _environment, char * _angle, char * _result );
349void cpu_float_fast_cos( Environment * _environment, char * _angle, char * _result );
350void cpu_float_fast_tan( Environment * _environment, char * _angle, char * _result );
351void cpu_float_fast_log( Environment * _environment, char * _value, char * _result );
352void cpu_float_fast_exp( Environment * _environment, char * _value, char * _result );
353
354// SINGLE FP (32 bit) IEEE-754
355
356void cpu_float_single_from_double_to_int_array( Environment * _environment, double _value, int _result[] );
357void cpu_float_single_from_int_array_to_double( Environment * _environment, int _value[], double * _result );
358void cpu_float_single_to_string( Environment * _environment, char * _x, char * _string, char * _string_size );
359void cpu_float_single_from_16( Environment * _environment, char * _value, char * _result, int _signed );
360void cpu_float_single_from_8( Environment * _environment, char * _value, char * _result, int _signed );
361void cpu_float_single_to_16( Environment * _environment, char * _value, char * _result, int _signed );
362void cpu_float_single_to_8( Environment * _environment, char * _value, char * _result, int _signed );
363void cpu_float_single_add( Environment * _environment, char * _x, char * _y, char * _result );
364void cpu_float_single_sub( Environment * _environment, char * _x, char * _y, char * _result );
365void cpu_float_single_mul( Environment * _environment, char * _x, char * _y, char * _result );
366void cpu_float_single_div( Environment * _environment, char * _x, char * _y, char * _result );
367void cpu_float_single_cmp( Environment * _environment, char * _x, char * _y, char * _result );
368void cpu_float_single_sin( Environment * _environment, char * _angle, char * _result );
369void cpu_float_single_cos( Environment * _environment, char * _angle, char * _result );
370void cpu_float_single_tan( Environment * _environment, char * _angle, char * _result );
371void cpu_float_single_log( Environment * _environment, char * _value, char * _result );
372void cpu_float_single_exp( Environment * _environment, char * _value, char * _result );
373
374void cpu_f32add( char * _x, char * _y, char * _result );
375void cpu_f32div( char * _x, char * _y, char * _result );
376void cpu_f32exp( char * _x, char * _result );
377void cpu_f32ln( char * _x, char * _result );
378void cpu_f32log10( char * _x, char * _result );
379void cpu_f32mul( char * _x, char * _y, char * _result );
380void cpu_f32sub( char * _x, char * _y, char * _result );
381
382void cpu_encrypt( Environment * _environment, char * _data, char * _data_size, char * _key, char * _key_size, char * _output );
383void cpu_decrypt( Environment * _environment, char * _data, char * _data_size, char * _key, char * _key_size, char * _output, char * _result );
384void cpu_hex_to_bin( Environment * _environment, char * _value_address, char * _value_size, char * _variable_address, char * _variable_size, char * _result );
385
386#endif
void cpu_math_add_16bit_const(Environment *_environment, char *_source, int _destination, char *_name)
CPU 6502: emit code to add two 16 bit values
Definition 6309.c:1674
void cpu_and_32bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4258
void cpu_float_single_cos(Environment *_environment, char *_angle, char *_result)
Definition 6309.c:7272
void cpu_protothread_get_state(Environment *_environment, char *_index, char *_state)
Definition 6309.c:6237
void cpu_math_add_16bit(Environment *_environment, char *_source, char *_destination, char *_name)
CPU 6309: emit code to add two 16 bit values
Definition 6309.c:1661
void cpu_f32add(char *_x, char *_y, char *_result)
void cpu_math_div2_const_8bit(Environment *_environment, char *_source, int _value, int _signed, char *_remainder)
CPU 6309: emit code to halves for several times a 8 bit value
Definition 6309.c:1329
void cpu_set_callback(Environment *_environment, char *_callback, char *_label)
Definition 6309.c:6270
void cpu_move_32bit_indirect2(Environment *_environment, char *_value, char *_source)
Definition 6309.c:5398
void cpu_dsfree(Environment *_environment, char *_index)
Definition 6309.c:5917
void cpu_less_than_memory_size(Environment *_environment, char *_source, char *_destination, int _size, char *_result, int _equal)
Definition 6309.c:5034
void cpu_hex_to_string_calc_string(Environment *_environment, char *_size, int _separator, char *_string_size)
Definition 6309.c:5831
void cpu_move_8bit_signed_32bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7424
void cpu_float_fast_from_8(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7043
void cpu_compare_32bit(Environment *_environment, char *_source, char *_destination, char *_name, int _positive)
CPU 6309: emit code to compare two 32 bit values
Definition 6309.c:2769
void cpu_in(Environment *_environment, char *_port, char *_value)
Definition 6309.c:6357
void cpu_hex_to_string_calc_string_size(Environment *_environment, int _size, int _separator, char *_string_size)
Definition 6309.c:5848
void cpu_move_32bit_signed_16bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7548
void cpu_combine_nibbles(Environment *_environment, char *_low_nibble, char *_hi_nibble, char *_byte)
Z80: emit code to combine nibbles
Definition 6309.c:3724
char * cpu_blit_register_name(Environment *_environment, int _register)
Definition 6309.c:6417
void cpu_di(Environment *_environment)
Definition 6309.c:4547
void cpu_compare_8bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 8 bit values
Definition 6309.c:831
void cpu_float_fast_tan(Environment *_environment, char *_angle, char *_result)
Definition 6309.c:7287
void cpu_protothread_restore(Environment *_environment, char *_index, char *_step)
Definition 6309.c:6214
void cpu_msc1_uncompress_indirect_indirect(Environment *_environment, char *_input, char *_output)
Definition 6309.c:6337
void cpu_not_16bit(Environment *_environment, char *_value, char *_result)
Definition 6309.c:4517
void cpu_pokew_const(Environment *_environment, char *_address, int _value)
Definition 6309.c:421
void cpu_f32exp(char *_x, char *_result)
void cpu_move_8bit_unsigned_32bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7434
void cpu_math_div_16bit_to_16bit(Environment *_environment, char *_source, char *_destination, char *_other, char *_other_remainder, int _signed)
Definition 6309.c:2009
void cpu_move_16bit_signed_32bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7478
void cpu_move_8bit_unsigned_16bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7398
void cpu_swap_32bit(Environment *_environment, char *_left, char *_right)
Definition 6309.c:4479
void cpu_float_fast_from_16(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7066
void cpu_bveq(Environment *_environment, char *_value, char *_label)
Definition 6309.c:334
void cpu_move_nbit_indirect(Environment *_environment, int _n, char *_source, char *_value)
Definition 6309.c:6626
void cpu_math_div_8bit_to_8bit_const(Environment *_environment, char *_source, int _destination, char *_other, char *_other_remainder, int _signed)
Definition 6309.c:1242
void cpu_bit_check_extended(Environment *_environment, char *_value, char *_position, char *_result, int _bitwidth)
Definition 6309.c:5605
void cpu_math_div_32bit_to_16bit(Environment *_environment, char *_source, char *_destination, char *_other, char *_other_remainder, int _signed)
Definition 6309.c:2554
void cpu_float_fast_div(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7228
void cpu_move_32bit_signed_16bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7541
void cpu_execute_compare_and_branch_8bit_const(Environment *_environment, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 8 bit values and jump if they are equal/different
Definition 6309.c:901
void cpu_move_32bit_unsigned_8bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7534
void cpu_uppercase(Environment *_environment, char *_source, char *_size, char *_result)
Definition 6309.c:5414
void cpu_address_table_build(Environment *_environment, char *_table, int *_values, char *_address[], int _count)
Definition 6309.c:7344
void cpu_mem_move(Environment *_environment, char *_source, char *_destination, char *_size)
Definition 6309.c:4692
void cpu_less_than_16bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _signed)
Definition 6309.c:1613
void cpu_set_asmio_indirect(Environment *_environment, int _asmio, char *_value)
Definition 6309.c:3904
void cpu_msc1_uncompress_direct_indirect(Environment *_environment, char *_input, char *_output)
Definition 6309.c:6305
void cpu_math_div2_const_nbit(Environment *_environment, char *_source, int _value, int _bits, char *_remainder)
Definition 6309.c:3503
void cpu_xor_32bit_const(Environment *_environment, char *_left, int _right, char *_result)
Definition 6309.c:4432
void cpu_compare_16bit(Environment *_environment, char *_source, char *_destination, char *_name, int _positive)
CPU 6309: emit code to compare two 16 bit values
Definition 6309.c:1523
void cpu_fill_direct(Environment *_environment, char *_address, char *_blocks, char *_pattern)
CPU 6309: emit code to fill up a memory area
Definition 6309.c:643
void cpu_protothread_save(Environment *_environment, char *_index, int _step)
Definition 6309.c:6203
void cpu_math_complement_const_32bit(Environment *_environment, char *_source, int _value)
CPU 6309: emit code to calculate a 32 bit complement of a number
Definition 6309.c:3352
void cpu_and_8bit_const(Environment *_environment, char *_left, int _right, char *_result)
Definition 6309.c:4230
void cpu_dsassign(Environment *_environment, char *_original, char *_copy)
Definition 6309.c:5997
void cpu_complement2_8bit(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:6045
void cpu_msc1_uncompress_indirect_direct(Environment *_environment, char *_input, char *_output)
Definition 6309.c:6321
void cpu_compare_and_branch_16bit(Environment *_environment, char *_source, char *_destination, char *_name, int _positive)
Definition 6309.c:1552
void cpu_less_than_memory(Environment *_environment, char *_source, char *_destination, char *_size, char *_result, int _equal)
Definition 6309.c:4969
void cpu_math_sub_32bit(Environment *_environment, char *_source, char *_destination, char *_name)
CPU 6309: emit code to subtract two 32 bit values
Definition 6309.c:3304
void cpu_less_than_nbit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _bits)
Definition 6309.c:3065
void cpu_dsalloc_size(Environment *_environment, int _size, char *_index)
Definition 6309.c:5906
void cpu_get_asmio_indirect(Environment *_environment, int _asmio, char *_value)
Definition 6309.c:3967
void cpu_move_16bit_unsigned_8bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7471
void cpu_float_fast_cos(Environment *_environment, char *_angle, char *_result)
Definition 6309.c:7268
void cpu_protothread_set_state(Environment *_environment, char *_index, int _state)
Definition 6309.c:6226
void cpu_math_div_nbit_to_nbit(Environment *_environment, char *_source, char *_destination, char *_other, char *_other_remainder, int _bits)
Definition 6309.c:2571
void cpu_float_single_add(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7155
void cpu_float_single_sub(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7134
void cpu_move_8bit_unsigned_32bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7443
void cpu_move_8bit_indirect(Environment *_environment, char *_source, char *_value)
Definition 6309.c:5239
void cpu_string_sub(Environment *_environment, char *_source, char *_source_size, char *_pattern, char *_pattern_size, char *_destination, char *_destination_size)
Definition 6309.c:6370
void cpu_f32div(char *_x, char *_y, char *_result)
void cpu_math_and_const_32bit(Environment *_environment, char *_source, int _mask)
CPU 6309: emit code to mask with "and" a value of 32 bit
Definition 6309.c:3698
void cpu_math_mul2_const_nbit(Environment *_environment, char *_source, int _value, int _bits)
Definition 6309.c:3664
void cpu_fill_direct_size(Environment *_environment, char *_address, int _bytes, char *_pattern)
CPU 6309: emit code to fill up a memory area
Definition 6309.c:675
void cpu_addressof_16bit(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:1485
void cpu_dec_16bit(Environment *_environment, char *_variable)
Definition 6309.c:4640
void cpu_dsgc(Environment *_environment)
Definition 6309.c:5959
void cpu_move_16bit_signed_32bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7488
void cpu_inc(Environment *_environment, char *_variable)
Definition 6309.c:4555
void cpu_jump_indirect(Environment *_environment, char *_value)
Definition 6309.c:3783
void cpu_math_complement_const_8bit(Environment *_environment, char *_source, int _value)
CPU 6309: emit code to calculate an 8 bit complement of a number
Definition 6309.c:1432
void cpu_dsdefine(Environment *_environment, char *_string, char *_index)
Definition 6309.c:5884
void cpu_store_nbit(Environment *_environment, char *_source, int _n, int _value[])
CPU 6309: emit code to store n bit
Definition 6309.c:6499
void cpu_f32ln(char *_x, char *_result)
void cpu_math_complement_const_16bit(Environment *_environment, char *_source, int _value)
CPU 6309: emit code to calculate a 16 bit complement of a number
Definition 6309.c:2337
void cpu_move_16bit_unsigned_32bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7507
void cpu_float_single_exp(Environment *_environment, char *_value, char *_result)
Definition 6309.c:7329
void cpu_move_32bit(Environment *_environment, char *_source, char *_destination)
CPU 6309: emit code to move 32 bit
Definition 6309.c:2520
void cpu_fill_size(Environment *_environment, char *_address, int _bytes, char *_pattern)
CPU 6309: emit code to fill up a memory area
Definition 6309.c:575
void cpu_dsfill(Environment *_environment, char *_string, char *_value)
Definition 6309.c:7610
void cpu_fill_direct_size_value(Environment *_environment, char *_address, int _bytes, int _pattern)
CPU 6309: emit code to fill up a memory area
Definition 6309.c:712
void cpu_dec_32bit(Environment *_environment, char *_variable)
Definition 6309.c:4652
void cpu_math_sub_nbit(Environment *_environment, char *_source, char *_destination, char *_name, int _bits)
Definition 6309.c:3325
void cpu_math_sub_16bit_with_8bit(Environment *_environment, char *_source, char *_destination, char *_name)
Definition 6309.c:2317
void cpu_protothread_get_address(Environment *_environment, char *_index, char *_address)
Definition 6309.c:6258
void cpu_poke(Environment *_environment, char *_address, char *_value)
Definition 6309.c:377
void cpu_greater_than_8bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _signed)
Definition 6309.c:999
void cpu_bit_inplace_8bit(Environment *_environment, char *_value, int _position, int *_bit)
Definition 6309.c:5633
void cpu_store_32bit(Environment *_environment, char *_source, int _value)
CPU 6309: emit code to store 32 bit
Definition 6309.c:2540
void cpu_protothread_vars(Environment *_environment)
Definition 6309.c:6143
void cpu_move_nbit_indirect2(Environment *_environment, int _n, char *_source, char *_value)
Definition 6309.c:6681
void cpu_float_fast_from_int_array_to_double(Environment *_environment, int _value[], double *_result)
Definition 6502.c:8705
void cpu_poked(Environment *_environment, char *_address, char *_value)
Definition 6309.c:445
void cpu_move_32bit_indirect(Environment *_environment, char *_source, char *_value)
Definition 6309.c:5382
void cpu_dswrite(Environment *_environment, char *_index)
Definition 6309.c:5927
void cpu_complement2_nbit(Environment *_environment, char *_source, char *_destination, int _bits)
Definition 6309.c:6093
void cpu_or_16bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4320
void cpu_fill(Environment *_environment, char *_address, char *_bytes, int _bytes_width, char *_pattern)
CPU 6309: emit code to fill up a memory area
Definition 6309.c:534
void cpu_math_add_16bit_with_8bit(Environment *_environment, char *_source, char *_destination, char *_name)
Definition 6309.c:1708
void cpu_move_16bit_indirect(Environment *_environment, char *_source, char *_value)
Definition 6309.c:5339
void cpu_limit_16bit(Environment *_environment, char *_variable, int _value)
Definition 6309.c:4164
void cpu_move_8bit_indirect_with_offset2(Environment *_environment, char *_source, char *_value, char *_offset)
Definition 6309.c:5262
void cpu_f32sub(char *_x, char *_y, char *_result)
void cpu_compare_and_branch_8bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 8 bit values and jump if they are equal/different
Definition 6309.c:876
void cpu_math_double_8bit(Environment *_environment, char *_source, char *_name, int _signed)
CPU 6309: emit code to double a 8 bit value
Definition 6309.c:1068
void cpu_and_8bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4216
void cpu_float_single_log(Environment *_environment, char *_value, char *_result)
Definition 6309.c:7310
void cpu_mem_move_direct_indirect_size(Environment *_environment, char *_source, char *_destination, int _size)
Definition 6309.c:4815
void cpu_dec_nbit(Environment *_environment, char *_variable, int _bits)
Definition 6309.c:4672
void cpu_math_and_const_16bit(Environment *_environment, char *_source, int _mask)
CPU 6309: emit code to mask with "and" a value of 16 bit
Definition 6309.c:2496
void cpu_compare_32bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 32 bit values
Definition 6309.c:2871
void cpu_move_8bit_indirect2_8bit(Environment *_environment, char *_value, char *_offset, char *_source)
Definition 6309.c:5307
void cpu_float_single_from_16(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7070
void cpu_greater_than_32bit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _signed)
CPU 6309: emit code to compare two 8 bit values
Definition 6309.c:3117
void cpu_less_than_and_branch_8bit_const(Environment *_environment, char *_source, int _destination, char *_label, int _equal, int _signed)
Definition 6309.c:970
void cpu_fill_indirect(Environment *_environment, char *_address, char *_size, char *_pattern, int _size_size)
Definition 6309.c:5517
void cpu_mem_move_indirect_direct_size(Environment *_environment, char *_source, char *_destination, int _size)
Definition 6309.c:4832
void cpu_float_fast_sin(Environment *_environment, char *_angle, char *_result)
Definition 6309.c:7249
void cpu_number_to_string(Environment *_environment, char *_number, char *_string, char *_string_size, int _bits, int _Signed)
Definition 6309.c:5688
void cpu_label(Environment *_environment, char *_label)
Definition 6309.c:356
void cpu_dec(Environment *_environment, char *_variable)
Definition 6309.c:4630
void cpu_poked_const(Environment *_environment, char *_address, int _value)
Definition 6309.c:458
void cpu_and_16bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4244
void cpu_less_than_32bit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _signed)
CPU 6309: emit code to compare two 32 bit values
Definition 6309.c:2949
void cpu_float_fast_log(Environment *_environment, char *_value, char *_result)
Definition 6309.c:7306
void cpu_move_nbit(Environment *_environment, int _n, char *_source, char *_destination)
CPU cpu6309: emit code to store n bit
Definition 6309.c:6563
void cpu_address_table_call(Environment *_environment, char *_table, char *_value, char *_address)
Definition 6309.c:7374
void cpu_float_single_from_int_array_to_double(Environment *_environment, int _value[], double *_result)
Definition 6502.c:8709
void cpu_logical_not_8bit(Environment *_environment, char *_value, char *_result)
Definition 6309.c:4493
void cpu_f32log10(char *_x, char *_result)
void cpu_logical_and_8bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4198
void cpu_or_8bit_const(Environment *_environment, char *_left, int _right, char *_result)
Definition 6309.c:4306
void cpu_halt(Environment *_environment)
Definition 6309.c:4050
void cpu_end(Environment *_environment)
Definition 6309.c:4064
void cpu_float_fast_from_double_to_int_array(Environment *_environment, double _value, int _result[])
Definition 6309.c:6743
void cpu_compare_memory(Environment *_environment, char *_source, char *_destination, char *_size, char *_result, int _equal)
Definition 6309.c:4849
void cpu_math_add_16bit_with_16bit(Environment *_environment, char *_source, char *_destination, char *_name)
CPU 6309: emit code to add two 16 bit values
Definition 6309.c:1696
void cpu_math_add_32bit_const(Environment *_environment, char *_source, int _destination, char *_name)
Definition 6309.c:3257
void cpu_greater_than_nbit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _bits)
Definition 6309.c:3200
void cpu_math_double_16bit(Environment *_environment, char *_source, char *_name, int _signed)
CPU 6309: emit code to double a 16 bit value
Definition 6309.c:1728
void cpu_complement2_16bit(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:6057
void cpu_dsinit(Environment *_environment)
Definition 6309.c:5968
void cpu_xor_8bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4354
void cpu_protothread_unregister(Environment *_environment, char *_index)
Definition 6309.c:6193
void cpu_math_sub_16bit(Environment *_environment, char *_source, char *_destination, char *_name)
CPU 6309: emit code to subtract two 16 bit values
Definition 6309.c:2305
void cpu_compare_and_branch_16bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 8 bit values and jump if they are equal/different
Definition 6309.c:1578
void cpu_dsresize(Environment *_environment, char *_index, char *_size)
Definition 6309.c:5937
void cpu_decrypt(Environment *_environment, char *_data, char *_data_size, char *_key, char *_key_size, char *_output, char *_result)
Definition 6309.c:7582
void cpu_complement2_32bit(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:6070
void cpu_protothread_register_at(Environment *_environment, char *_index, char *_label)
Definition 6309.c:6170
void cpu_math_double_32bit(Environment *_environment, char *_source, char *_name, int _signed)
CPU 6309: emit code to double a 32 bit value
Definition 6309.c:3279
void cpu_math_mul_8bit_to_16bit(Environment *_environment, char *_source, char *_destination, char *_name, int _signed)
CPU 6309: emit code to multiply two 8bit values in a 16 bit register
Definition 6309.c:1088
void cpu_blit_free_register(Environment *_environment, int _register)
Definition 6309.c:6460
void cpu_lowercase(Environment *_environment, char *_source, char *_size, char *_result)
Definition 6309.c:5451
void cpu_float_single_to_8(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7092
void cpu_move_16bit(Environment *_environment, char *_source, char *_destination)
CPU 6309: emit code to move 16 bit
Definition 6309.c:1474
void cpu_move_8bit_with_offset2(Environment *_environment, char *_source, char *_value, char *_offset)
Definition 6309.c:5278
void cpu_out(Environment *_environment, char *_port, char *_value)
Definition 6309.c:6353
void cpu_move_16bit_unsigned_8bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7465
void cpu_blit_finalize(Environment *_environment)
Definition 6309.c:6410
void cpu_encrypt(Environment *_environment, char *_data, char *_data_size, char *_key, char *_key_size, char *_output)
Definition 6309.c:7569
void cpu_bneq(Environment *_environment, char *_label)
CPU 6309: emit code to make long conditional jump
Definition 6309.c:324
void cpu_move_16bit_indirect2(Environment *_environment, char *_value, char *_source)
Definition 6309.c:5352
void cpu_pokew(Environment *_environment, char *_address, char *_value)
Definition 6309.c:410
void cpu_math_add_nbit(Environment *_environment, char *_source, char *_destination, char *_name, int _bits)
Definition 6309.c:3238
void cpu_float_fast_cmp(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7172
void cpu_math_sub_8bit(Environment *_environment, char *_source, char *_destination, char *_name)
CPU 6309: emit code to subtract two 8 bit values
Definition 6309.c:1049
void cpu_float_fast_mul(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7207
void cpu_bits_to_string(Environment *_environment, char *_number, char *_string, char *_string_size, int _bits, char *_zero, char *_one)
Definition 6309.c:5777
void cpu_compare_and_branch_32bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 32 bit values and jump if they are equal/different
Definition 6309.c:2914
void cpu_math_mul_16bit_to_32bit(Environment *_environment, char *_source, char *_destination, char *_name, int _signed)
CPU 6309: emit code to multiply two 16 bit values in a 32 bit register
Definition 6309.c:1752
void cpu_dsalloc(Environment *_environment, char *_size, char *_index)
Definition 6309.c:5895
void cpu_store_8bit(Environment *_environment, char *_source, int _value)
CPU 6309: emit code to store 8 bit
Definition 6309.c:761
void cpu_port_out(Environment *_environment, char *_port, char *_value)
Z80: emit code to send one byte throught a I/O port
Definition 8086.c:2979
void cpu_not_32bit(Environment *_environment, char *_value, char *_result)
Definition 6309.c:4530
void cpu_float_single_from_double_to_int_array(Environment *_environment, double _value, int _result[])
Definition 6309.c:6747
void cpu_float_single_to_16(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7113
void cpu_greater_than_memory_size(Environment *_environment, char *_source, char *_destination, int _size, char *_result, int _equal)
Definition 6309.c:5170
void cpu_less_than_8bit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _signed)
CPU 6309: emit code to compare two 8 bit values
Definition 6309.c:950
void cpu_hex_to_string(Environment *_environment, char *_number, char *_string, char *_size, int _separator)
Definition 6309.c:5865
void cpu_or_8bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4292
void cpu_store_8bit_with_offset2(Environment *_environment, char *_destination, char *_offset, int _value)
Definition 6309.c:6029
void cpu_move_8bit_indirect2_16bit(Environment *_environment, char *_value, char *_offset, char *_source)
Definition 6309.c:5323
void cpu_store_16bit(Environment *_environment, char *_source, int _value)
CPU 6309: emit code to store 16 bit
Definition 6309.c:1503
void cpu_move_8bit_indirect_with_offset(Environment *_environment, char *_source, char *_value, int _offset)
Definition 6309.c:5250
void cpu_sqroot(Environment *_environment, char *_number, char *_result)
Definition 6309.c:6113
void cpu_peekd(Environment *_environment, char *_address, char *_target)
Definition 6309.c:432
void cpu_in_direct(Environment *_environment, char *_port, char *_value)
Definition 6309.c:6365
void cpu_call_indirect(Environment *_environment, char *_value)
Definition 6309.c:3765
void cpu_less_than_nbit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _bits)
Definition 6309.c:3021
void cpu_call(Environment *_environment, char *_label)
Definition 6309.c:3755
void cpu_random_8bit(Environment *_environment, char *_entropy, char *_result)
Definition 6309.c:4129
void cpu_xor_8bit_const(Environment *_environment, char *_left, int _right, char *_result)
Definition 6309.c:4368
void cpu_math_div2_const_16bit(Environment *_environment, char *_source, int _value, int _signed, char *_remainder)
CPU 6309: emit code to halves for several times a 16 bit value
Definition 6309.c:2356
void cpu_move_16bit_signed_8bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7459
void cpu_mem_move_direct(Environment *_environment, char *_source, char *_destination, char *_size)
Definition 6309.c:4728
void cpu_move_16bit_indirect2_8bit(Environment *_environment, char *_value, char *_source, char *_index)
Definition 6309.c:5365
void cpu_swap_8bit(Environment *_environment, char *_left, char *_right)
Definition 6309.c:4451
void cpu_float_fast_to_8(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7088
void cpu_greater_than_16bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _signed)
Definition 6309.c:1642
void cpu_mem_move_direct2(Environment *_environment, char *_source, char *_destination, char *_size)
Definition 6309.c:4764
void cpu_init(Environment *_environment)
Definition 6309.c:62
void cpu_dstring_vars(Environment *_environment)
Definition 6309.c:6128
void cpu_math_mul2_const_32bit(Environment *_environment, char *_source, int _value, int _signed)
CPU 6309: emit code to double for several times a 32 bit value
Definition 6309.c:3547
void cpu_protothread_loop(Environment *_environment)
Definition 6309.c:6162
void cpu_float_single_div(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7232
void cpu_hex_to_bin(Environment *_environment, char *_value_address, char *_value_size, char *_variable_address, char *_variable_size, char *_result)
Definition 6309.c:7597
void cpu_out_direct(Environment *_environment, char *_port, char *_value)
Definition 6309.c:6361
void cpu_protothread_current(Environment *_environment, char *_current)
Definition 6309.c:6249
void cpu_float_fast_to_16(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7109
void cpu_mem_move_16bit(Environment *_environment, char *_source, char *_destination, char *_size)
Definition 6309.c:4711
void cpu_set_asmio(Environment *_environment, int _asmio, int _value)
Definition 6309.c:3838
void cpu_jump(Environment *_environment, char *_label)
Definition 6309.c:3739
void cpu_move_16bit_unsigned_32bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7499
void cpu_bit_inplace_8bit_extended_indirect(Environment *_environment, char *address, char *_position, char *_bit)
Definition 6309.c:5663
int cpu_blit_alloc_register(Environment *_environment)
Definition 6309.c:6426
void cpu_move_32bit_signed_8bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7522
void cpu_mem_move_size(Environment *_environment, char *_source, char *_destination, int _size)
Definition 6309.c:4781
void cpu_fill_blocks(Environment *_environment, char *_address, char *_blocks, char *_pattern)
CPU 6309: emit code to fill up a memory area
Definition 6309.c:484
void cpu_bvneq(Environment *_environment, char *_value, char *_label)
Definition 6309.c:345
void cpu_float_single_mul(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7211
void cpu_poke_const(Environment *_environment, char *_address, int _value)
Definition 6309.c:388
void cpu_float_fast_exp(Environment *_environment, char *_value, char *_result)
Definition 6309.c:7325
void cpu_move_16bit_signed_8bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7453
void cpu_math_div2_const_32bit(Environment *_environment, char *_source, int _value, int _signed, char *_remainder)
CPU 6309: emit code to halves for several times a 32 bit value
Definition 6309.c:3376
void cpu_fill_size_value(Environment *_environment, char *_address, int _bytes, int _pattern)
CPU 6309: emit code to fill up a memory area
Definition 6309.c:611
void cpu_greater_than_32bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _signed)
Definition 6309.c:3153
void cpu_call_addr(Environment *_environment, int _address)
Definition 6309.c:3749
void cpu_math_div_16bit_to_16bit_const(Environment *_environment, char *_source, int _destination, char *_other, char *_other_remainder, int _signed)
Definition 6309.c:2153
void cpu_compare_and_branch_8bit(Environment *_environment, char *_source, char *_destination, char *_name, int _positive)
Definition 6309.c:851
void cpu_bit_check(Environment *_environment, char *_value, int _position, char *_result, int _bitwidth)
Definition 6309.c:5577
void cpu_protothread_register(Environment *_environment, char *_label, char *_index)
Definition 6309.c:6181
void cpu_move_32bit_signed_8bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7516
void cpu_float_single_to_string(Environment *_environment, char *_x, char *_string, char *_string_size)
Definition 6309.c:7023
void cpu_math_div_nbit_to_nbit_const(Environment *_environment, char *_source, int _destination, char *_other, char *_other_remainder, int _bits)
Definition 6309.c:2701
void cpu_float_single_tan(Environment *_environment, char *_angle, char *_result)
Definition 6309.c:7291
void cpu_compare_nbit(Environment *_environment, char *_source, char *_destination, char *_name, int _positive, int _bits)
CPU Z80: emit code to compare n bit
Definition 6309.c:2804
void cpu_nop(Environment *_environment)
Definition 6309.c:256
void cpu_random_32bit(Environment *_environment, char *_entropy, char *_result)
Definition 6309.c:4151
void cpu_move_32bit_unsigned_16bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7562
void cpu_prepare_for_compare_and_branch_8bit(Environment *_environment, char *_source)
Z80: emit code to compare two 8 bit values and jump if they are equal/different
Definition 6309.c:841
void cpu_mem_move_direct2_size(Environment *_environment, char *_source, char *_destination, int _size)
Definition 6309.c:4747
void cpu_math_and_const_8bit(Environment *_environment, char *_source, int _mask)
CPU 6309: emit code to mask with "and" a value of 8 bit
Definition 6309.c:1451
void cpu_move_32bit_unsigned_16bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7555
void cpu_msc1_uncompress_direct_direct(Environment *_environment, char *_input, char *_output)
Definition 6309.c:6279
void cpu_store_char(Environment *_environment, char *_source, int _value)
CPU 6309: emit code to store 8 bit
Definition 6309.c:785
void cpu_f32mul(char *_x, char *_y, char *_result)
void cpu_inc_32bit(Environment *_environment, char *_variable)
Definition 6309.c:4586
void cpu_move_8bit_signed_16bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7382
void cpu_mem_move_direct_size(Environment *_environment, char *_source, char *_destination, int _size)
Definition 6309.c:4798
void cpu_float_fast_sub(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7130
void cpu_xor_32bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4413
void cpu_return(Environment *_environment)
Definition 6309.c:4030
void cpu_move_8bit_indirect2(Environment *_environment, char *_value, char *_source)
Definition 6309.c:5294
void cpu_inc_nbit(Environment *_environment, char *_variable, int _bits)
Definition 6309.c:4613
void cpu_pop(Environment *_environment)
Definition 6309.c:4040
void cpu_random_16bit(Environment *_environment, char *_entropy, char *_result)
Definition 6309.c:4140
void cpu_ei(Environment *_environment)
Definition 6309.c:4551
int cpu_register_decode(Environment *_environment, char *_register)
Definition 6309.c:3793
void cpu_or_32bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4335
void cpu_convert_string_into_8bit(Environment *_environment, char *_string, char *_len, char *_value)
Definition 6309.c:5487
void cpu_inc_16bit(Environment *_environment, char *_variable)
Definition 6309.c:4565
void cpu_logical_or_8bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4275
void cpu_address_table_lookup(Environment *_environment, char *_table, int _count)
Definition 6309.c:7353
void cpu_ztoa(Environment *_environment)
Definition 6309.c:262
void cpu_random(Environment *_environment, char *_entropy)
Definition 6309.c:4075
void cpu_math_add_32bit(Environment *_environment, char *_source, char *_destination, char *_name)
CPU 6309: emit code to add two 32 bit values
Definition 6309.c:3219
void cpu_dsresize_size(Environment *_environment, char *_index, int _size)
Definition 6309.c:5948
void cpu_move_32bit_unsigned_8bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7528
void cpu_ctoa(Environment *_environment)
Definition 6309.c:279
void cpu_math_add_8bit_const(Environment *_environment, char *_source, int _destination, char *_name)
CPU 6502: emit code to add two 8 bit values
Definition 6309.c:1029
void cpu_float_single_from_8(Environment *_environment, char *_value, char *_result, int _signed)
Definition 6309.c:7047
void cpu_less_than_16bit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _signed)
CPU 6309: emit code to compare two 8 bit values
Definition 6309.c:1603
void cpu_less_than_8bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _signed)
Definition 6309.c:960
void cpu_compare_and_branch_char_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 8 bit values and jump if they are equal/different
Definition 6309.c:925
void cpu_float_single_cmp(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7176
void cpu_greater_than_nbit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _bits)
Definition 6309.c:3189
void cpu_move_8bit_signed_32bit_signed(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7414
void cpu_store_8bit_with_offset(Environment *_environment, char *_destination, int _value, int _offset)
Definition 6309.c:6021
void cpu_busy_wait(Environment *_environment, char *_timing)
Definition 6309.c:4183
void cpu_greater_than_memory(Environment *_environment, char *_source, char *_destination, char *_size, char *_result, int _equal)
Definition 6309.c:5105
void cpu_math_add_nbit_const(Environment *_environment, char *_source, int _destination, char *_name, int _bits)
Definition 6502.c:4242
void cpu_math_mul2_const_16bit(Environment *_environment, char *_source, int _value, int _signed)
CPU 6309: emit code to halves for several times a 8 bit value
Definition 6309.c:2461
void cpu_peekw(Environment *_environment, char *_address, char *_target)
Definition 6309.c:399
void cpu_greater_than_16bit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _signed)
CPU 6309: emit code to compare two 8 bit values
Definition 6309.c:1632
void cpu_flip(Environment *_environment, char *_source, char *_size, char *_destination)
Definition 6309.c:5562
void cpu_move_8bit(Environment *_environment, char *_source, char *_destination)
CPU 6309: emit code to move 8 bit
Definition 6309.c:743
void cpu_beq(Environment *_environment, char *_label)
CPU 6309: emit code to make long conditional jump
Definition 6309.c:308
void cpu_compare_16bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
CPU 6309: emit code to compare two 16 bit values
Definition 6309.c:1542
void cpu_peek(Environment *_environment, char *_address, char *_target)
Definition 6309.c:366
void cpu_float_fast_add(Environment *_environment, char *_x, char *_y, char *_result)
Definition 6309.c:7151
void cpu_convert_string_into_16bit(Environment *_environment, char *_string, char *_len, char *_value)
Definition 6309.c:5502
void cpu_float_single_sin(Environment *_environment, char *_angle, char *_result)
Definition 6309.c:7253
void cpu_not_8bit(Environment *_environment, char *_value, char *_result)
Definition 6309.c:4505
void cpu_math_div_8bit_to_8bit(Environment *_environment, char *_source, char *_destination, char *_other, char *_other_remainder, int _signed)
Definition 6309.c:1163
void cpu_math_mul_nbit_to_nbit(Environment *_environment, char *_source, char *_destination, char *_name, int _bits)
Definition 6309.c:1886
void cpu_dsdescriptor(Environment *_environment, char *_index, char *_address, char *_size)
Definition 6309.c:5977
void cpu_xor_16bit(Environment *_environment, char *_left, char *_right, char *_result)
Definition 6309.c:4382
void cpu_xor_16bit_const(Environment *_environment, char *_left, int _right, char *_result)
Definition 6309.c:4397
void cpu_compare_nbit_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive, int _bits)
CPU 6502: emit code to compare two 32 bit values
Definition 6309.c:2836
void cpu_swap_16bit(Environment *_environment, char *_left, char *_right)
Definition 6309.c:4465
void cpu_math_mul2_const_8bit(Environment *_environment, char *_source, int _value, int _signed)
CPU 6309: emit code to double for several times a 8 bit value
Definition 6309.c:1397
void cpu_math_div_32bit_to_16bit_const(Environment *_environment, char *_source, int _destination, char *_other, char *_other_remainder, int _signed)
Definition 6309.c:2734
void cpu_math_add_8bit(Environment *_environment, char *_source, char *_destination, char *_name)
CPU 6309: emit code to add two 8 bit values
Definition 6309.c:1017
void cpu_float_fast_to_string(Environment *_environment, char *_x, char *_string, char *_string_size)
Definition 6309.c:7019
void cpu_dsfill_value(Environment *_environment, char *_string, int _value)
Definition 6309.c:7621
void cpu_dsassign_string(Environment *_environment, char *_string, char *_copy)
Definition 6309.c:6009
void cpu_less_than_32bit_const(Environment *_environment, char *_source, int _destination, char *_name, int _equal, int _signed)
Definition 6309.c:2985
void cpu_move_8bit_signed_16bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7390
void cpu_move_8bit_unsigned_16bit_unsigned(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:7406
void cpu_compare_memory_size(Environment *_environment, char *_source, char *_destination, int _size, char *_result, int _equal)
Definition 6309.c:4906
void cpu_flip_8bit(Environment *_environment, char *_source, char *_destination)
Definition 6309.c:5544
void cpu_greater_than_8bit(Environment *_environment, char *_source, char *_destination, char *_name, int _equal, int _signed)
CPU 6309: emit code to compare two 8 bit values
Definition 6309.c:989
void cpu_blit_initialize(Environment *_environment)
Definition 6309.c:6403
void cpu_compare_8bit(Environment *_environment, char *_source, char *_destination, char *_name, int _positive)
CPU 6309: emit code to compare two 8 bit values
Definition 6309.c:811
struct _Environment Environment
Structure of compilation environment.