ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
atari.h
Go to the documentation of this file.
1#ifndef __UGBC_ATARI__
2#define __UGBC_ATARI__
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
36#define JOY_COUNT 4
37#define JOYSTICK_0 0
38#define JOYSTICK_1 1
39#define JOYSTICK_2 2
40#define JOYSTICK_3 3
41#define JOYSTICK_COUNT 4
42
43#define JOY_UP 1
44#define JOY_DOWN 2
45#define JOY_LEFT 3
46#define JOY_RIGHT 4
47#define JOY_FIRE 0
48
49#define JOYSTICK_CONFIG_DEFAULT_SYNC 1
50
51#define KEY_NONE 255
52#define KEY_L 0
53#define KEY_J 1
54#define KEY_SEMICOMMA 2
55#define KEY_K 5
56#define KEY_PLUS 6
57#define KEY_ASTERISK 7
58#define KEY_O 8
59#define KEY_P 10
60#define KEY_U 11
61#define KEY_RETURN 12
62#define KEY_I 13
63#define KEY_MINUS 14
64#define KEY_EQUAL 15
65#define KEY_V 16
66#define KEY_C 18
67#define KEY_B 21
68#define KEY_X 22
69#define KEY_Z 23
70#define KEY_4 24
71#define KEY_3 26
72#define KEY_6 27
73#define KEY_ESC 28
74#define KEY_5 29
75#define KEY_2 30
76#define KEY_1 31
77#define KEY_COMMA 32
78#define KEY_SPACE 33
79#define KEY_PERIOD 31
80#define KEY_N 35
81#define KEY_M 37
82#define KEY_SLASH 38
83#define KEY_INV 39
84#define KEY_R 40
85#define KEY_E 42
86#define KEY_Y 43
87#define KEY_TAB 44
88#define KEY_T 45
89#define KEY_W 46
90#define KEY_Q 47
91#define KEY_9 48
92#define KEY_0 50
93#define KEY_7 51
94#define KEY_DEL 52
95#define KEY_8 53
96#define KEY_LESS_THAN 54
97#define KEY_GREATER_THAN 55
98#define KEY_F 56
99#define KEY_H 57
100#define KEY_D 58
101#define KEY_CAP 60
102#define KEY_G 61
103#define KEY_S 62
104#define KEY_A 63
105#define KEY_F1 0 // ?
106#define KEY_F2 0 // ?
107#define KEY_F3 0 // ?
108#define KEY_F4 0 // ?
109#define KEY_F5 0 // ?
110#define KEY_F6 0 // ?
111#define KEY_F7 0 // ?
112#define KEY_F8 0 // ?
113#define KEY_AT 0 // ?
114#define KEY_CLEAR 0 // ?
115#define KEY_COLON 0 // ?
116#define KEY_COMMODORE 0 // ?
117#define KEY_CONTROL 0 // ?
118#define KEY_CRSR_LEFT_RIGHT 0 // ?
119#define KEY_CRSR_UP_DOWN 0 // ?
120#define KEY_DELETE 0 // ?
121#define KEY_HOME 0 // ?
122#define KEY_INSERT 0 // ?
123#define KEY_LEFT_ARROW 0 // ?
124#define KEY_UP_ARROW 0 // ?
125#define KEY_POUND 0 // ?
126#define KEY_RUNSTOP 0 // ?
127#define KEY_SEMICOLON 0 // ?
128#define KEY_UP 0 // ?
129#define KEY_DOWN 0 // ?
130#define KEY_LEFT 0 // ?
131#define KEY_RIGHT 0 // ?
132
133#define INPUT_DEFAULT_SEPARATOR ','
134#define INPUT_DEFAULT_SIZE 32
135#define INPUT_DEFAULT_CURSOR 95
136#define INPUT_DEFAULT_RATE 16
137#define INPUT_DEFAULT_DELAY 64
138
139#define KEYBOARD_CONFIG_DEFAULT_SYNC 0
140
141#define SCREEN_CAPABILITIES ( ( 1<<TILEMAP_NATIVE ) | ( 1<<BITMAP_NATIVE ) )
142
143#define DEFAULT_PAINT_BUCKET_SIZE 512
144
145#define BANK_COUNT 1
146#define BANK_SIZE 4096
147#define BANK_BASE_ADDRESS 0
148
149#define MAX_AUDIO_CHANNELS 4
150
151#define DSTRING_DEFAULT_COUNT 255
152#define DSTRING_DEFAULT_SPACE 1024
153
154void atari_xpen( Environment * _environment, char * _destination );
155void atari_ypen( Environment * _environment, char * _destination );
156
157void atari_wait_key( Environment * _environment, int _release );
158void atari_wait_fire( Environment * _environment, int _port, int _release );
159void atari_wait_fire_semivar( Environment * _environment, char * _port, int _release );
160void atari_wait_key_or_fire( Environment * _environment, int _port, int _release );
161void atari_wait_key_or_fire_semivar( Environment * _environment, char * _port, int _release );
162void atari_key_state( Environment * _environment, char *_scancode, char * _result );
163void atari_scancode( Environment * _environment, char * _scacode );
164void atari_asciicode( Environment * _environment, char * _asciicode );
165void atari_inkey( Environment * _environment, char * _key );
166void atari_key_pressed( Environment * _environment, char *_scancode, char * _result );
167void atari_put_key( Environment * _environment, char *_string, char * _size );
168
169void atari_scanshift( Environment * _environment, char * _shifts );
170void atari_keyshift( Environment * _environment, char * _shifts );
171void atari_clear_key( Environment * _environment );
172
173void atari_sys_call( Environment * _environment, int _destination );
174
175void atari_timer_set_status_on( Environment * _environment, char * _timer );
176void atari_timer_set_status_off( Environment * _environment, char * _timer );
177void atari_timer_set_counter( Environment * _environment, char * _timer, char * _counter );
178void atari_timer_set_init( Environment * _environment, char * _timer, char * _init );
179void atari_timer_set_address( Environment * _environment, char * _timer, char * _address );
180void atari_dload( Environment * _environment, char * _filename, char * _offset, char * _address, char * _size );
181void atari_dsave( Environment * _environment, char * _filename, char * _offset, char * _address, char * _size );
182
183void atari_dojo_ready( Environment * _environment, char * _value );
184void atari_dojo_read_byte( Environment * _environment, char * _value );
185void atari_dojo_write_byte( Environment * _environment, char * _value );
186
187void atari_serial_read( Environment * _environment, char * _address, char * _size );
188void atari_serial_write( Environment * _environment, char * _address, char * _size, char * _result );
189
190void atari_dojo_serial_put_request0( Environment * _environment, int _command, char * _param1, char * _param2, char * _result );
191void atari_dojo_serial_put_request( Environment * _environment, int _command, char * _param1, char * _param2, char * _address, char * _size, char * _result );
192void atari_dojo_serial_put_requestd( Environment * _environment, int _command, char * _param1, char * _param2, char * _data, char * _size, char * _result );
193void atari_dojo_serial_put_requestds( Environment * _environment, int _command, char * _param1, char * _param2, char * _data, int _size, char * _result );
194void atari_dojo_serial_get_response0( Environment * _environment, char * _status );
195void atari_dojo_serial_get_response( Environment * _environment, char * _status, char * _address, char * _size );
196void atari_dojo_serial_get_responsed( Environment * _environment, char * _status, char * _data, char * _size );
197void atari_dojo_serial_get_response_size( Environment * _environment, char * _status, char * _data );
198void atari_dojo_serial_get_response_payload( Environment * _environment, char * _address );
199void atari_dojo_serial_get_response_payloadd( Environment * _environment, char * _data );
200
201void atari_dojo_fujinet_put_request0( Environment * _environment, int _command, char * _param1, char * _param2, char * _result );
202void atari_dojo_fujinet_put_request( Environment * _environment, int _command, char * _param1, char * _param2, char * _address, char * _size, char * _result );
203void atari_dojo_fujinet_put_requestd( Environment * _environment, int _command, char * _param1, char * _param2, char * _data, char * _size, char * _result );
204void atari_dojo_fujinet_put_requestds( Environment * _environment, int _command, char * _param1, char * _param2, char * _data, int _size, char * _result );
205void atari_dojo_fujinet_get_response0( Environment * _environment, char * _status );
206void atari_dojo_fujinet_get_response( Environment * _environment, char * _status, char * _address, char * _size );
207void atari_dojo_fujinet_get_responsed( Environment * _environment, char * _status, char * _data, char * _size );
208void atari_dojo_fujinet_get_response_size( Environment * _environment, char * _status, char * _data );
209void atari_dojo_fujinet_get_response_payload( Environment * _environment, char * _address );
210void atari_dojo_fujinet_get_response_payloadd( Environment * _environment, char * _data );
211
212void atari_fujinet_set_device( Environment * _environment, int _device_id );
213void atari_fujinet_set_device_var( Environment * _environment, char * _device_id );
214void atari_fujinet_get_bytes_waiting( Environment * _environment, char * _bytes_waiting );
215void atari_fujinet_is_connected( Environment * _environment, char * _is_connected );
216void atari_fujinet_get_error( Environment * _environment, char * _error );
217void atari_fujinet_is_ready( Environment * _environment, char * _ready );
218void atari_fujinet_open( Environment * _environment, char * _url, char * _size, char * _mode, char * _trans, char * _result );
219void atari_fujinet_close( Environment * _environment );
220void atari_fujinet_get_status( Environment * _environment );
221void atari_fujinet_read( Environment * _environment, char * _buffer, char * _size );
222void atari_fujinet_write( Environment * _environment, char * _buffer, char * _size, char * _result );
223void atari_fujinet_writed( Environment * _environment, char * _buffer, char * _size, char * _result );
224void atari_fujinet_writeds( Environment * _environment, char * _buffer, int _size, char * _result );
225
226void atari_fujinet_set_channel_mode( Environment * _environment, int _mode, char * _result );
227void atari_fujinet_set_channel_mode_var( Environment * _environment, char * _mode, char * _result );
228void atari_fujinet_parse_json( Environment * _environment, char * _result );
229void atari_fujinet_json_query( Environment * _environment, char * _query, char * _size );
230void atari_fujinet_login( Environment * _environment, char * _login, char * _size );
231void atari_fujinet_password( Environment * _environment, char * _password, char * _size );
232
233void atari_chain( Environment * _environment, char * _filename );
234
235#endif
void atari_inkey(Environment *_environment, char *_key)
Definition atari.c:66
void atari_timer_set_status_off(Environment *_environment, char *_timer)
Definition atari.c:272
void atari_fujinet_get_status(Environment *_environment)
Definition atari.c:649
void atari_fujinet_get_error(Environment *_environment, char *_error)
Definition atari.c:588
void atari_chain(Environment *_environment, char *_filename)
Definition atari.c:1255
void atari_dojo_ready(Environment *_environment, char *_value)
void atari_fujinet_write(Environment *_environment, char *_buffer, char *_size, char *_result)
Definition atari.c:674
void atari_dojo_fujinet_get_response(Environment *_environment, char *_status, char *_address, char *_size)
Definition atari.c:1046
void atari_keyshift(Environment *_environment, char *_shifts)
Definition atari.c:233
void atari_dojo_serial_get_response0(Environment *_environment, char *_status)
Definition atari.c:823
void atari_dojo_fujinet_put_request0(Environment *_environment, int _command, char *_param1, char *_param2, char *_result)
Definition atari.c:1134
void atari_fujinet_writeds(Environment *_environment, char *_buffer, int _size, char *_result)
Definition atari.c:714
void atari_fujinet_get_bytes_waiting(Environment *_environment, char *_bytes_waiting)
Definition atari.c:570
void atari_fujinet_password(Environment *_environment, char *_password, char *_size)
Definition atari.c:807
void atari_put_key(Environment *_environment, char *_string, char *_size)
Definition atari.c:513
void atari_fujinet_set_channel_mode(Environment *_environment, int _mode, char *_result)
Definition atari.c:734
void atari_dojo_fujinet_get_response0(Environment *_environment, char *_status)
Definition atari.c:1033
void atari_timer_set_counter(Environment *_environment, char *_timer, char *_counter)
Definition atari.c:286
void atari_fujinet_close(Environment *_environment)
Definition atari.c:640
void atari_wait_fire_semivar(Environment *_environment, char *_port, int _release)
Definition atari.c:141
void atari_ypen(Environment *_environment, char *_destination)
Definition atari.c:55
void atari_dojo_read_byte(Environment *_environment, char *_value)
void atari_dojo_fujinet_get_responsed(Environment *_environment, char *_status, char *_data, char *_size)
Definition atari.c:1067
void atari_dojo_write_byte(Environment *_environment, char *_value)
void atari_dojo_serial_get_response(Environment *_environment, char *_status, char *_address, char *_size)
Definition atari.c:835
void atari_timer_set_init(Environment *_environment, char *_timer, char *_init)
Definition atari.c:309
void atari_scancode(Environment *_environment, char *_scacode)
Definition atari.c:172
void atari_fujinet_is_ready(Environment *_environment, char *_ready)
Definition atari.c:597
void atari_scanshift(Environment *_environment, char *_shifts)
Definition atari.c:215
void atari_dojo_fujinet_put_requestds(Environment *_environment, int _command, char *_param1, char *_param2, char *_data, int _size, char *_result)
Definition atari.c:1223
void atari_wait_key_or_fire_semivar(Environment *_environment, char *_port, int _release)
Definition atari.c:108
void atari_fujinet_writed(Environment *_environment, char *_buffer, char *_size, char *_result)
Definition atari.c:694
void atari_fujinet_set_device(Environment *_environment, int _device_id)
Definition atari.c:552
void atari_xpen(Environment *_environment, char *_destination)
Definition atari.c:43
void atari_serial_read(Environment *_environment, char *_address, char *_size)
Definition atari.c:524
void atari_key_pressed(Environment *_environment, char *_scancode, char *_result)
Definition atari.c:201
void atari_clear_key(Environment *_environment)
Definition atari.c:244
void atari_dojo_serial_put_requestds(Environment *_environment, int _command, char *_param1, char *_param2, char *_data, int _size, char *_result)
Definition atari.c:1001
void atari_sys_call(Environment *_environment, int _destination)
Definition atari.c:252
void atari_fujinet_open(Environment *_environment, char *_url, char *_size, char *_mode, char *_trans, char *_result)
Definition atari.c:607
void atari_dojo_serial_get_response_size(Environment *_environment, char *_status, char *_data)
Definition atari.c:875
void atari_wait_key(Environment *_environment, int _release)
Definition atari.c:77
void atari_fujinet_set_channel_mode_var(Environment *_environment, char *_mode, char *_result)
Definition atari.c:750
void atari_dload(Environment *_environment, char *_filename, char *_offset, char *_address, char *_size)
Definition atari.c:343
void atari_fujinet_parse_json(Environment *_environment, char *_result)
Definition atari.c:764
void atari_fujinet_login(Environment *_environment, char *_login, char *_size)
Definition atari.c:791
void atari_timer_set_address(Environment *_environment, char *_timer, char *_address)
Definition atari.c:326
void atari_fujinet_is_connected(Environment *_environment, char *_is_connected)
Definition atari.c:579
void atari_dojo_fujinet_put_requestd(Environment *_environment, int _command, char *_param1, char *_param2, char *_data, char *_size, char *_result)
Definition atari.c:1191
void atari_dojo_serial_get_responsed(Environment *_environment, char *_status, char *_data, char *_size)
Definition atari.c:855
void atari_serial_write(Environment *_environment, char *_address, char *_size, char *_result)
Definition atari.c:538
void atari_fujinet_set_device_var(Environment *_environment, char *_device_id)
Definition atari.c:561
void atari_dojo_serial_get_response_payloadd(Environment *_environment, char *_data)
Definition atari.c:904
void atari_dojo_serial_put_requestd(Environment *_environment, int _command, char *_param1, char *_param2, char *_data, char *_size, char *_result)
Definition atari.c:971
void atari_wait_key_or_fire(Environment *_environment, int _port, int _release)
Definition atari.c:91
void atari_fujinet_read(Environment *_environment, char *_buffer, char *_size)
Definition atari.c:658
void atari_wait_fire(Environment *_environment, int _port, int _release)
Definition atari.c:125
void atari_dojo_fujinet_put_request(Environment *_environment, int _command, char *_param1, char *_param2, char *_address, char *_size, char *_result)
Definition atari.c:1159
void atari_dojo_serial_put_request(Environment *_environment, int _command, char *_param1, char *_param2, char *_address, char *_size, char *_result)
Definition atari.c:941
void atari_dojo_fujinet_get_response_payloadd(Environment *_environment, char *_data)
Definition atari.c:1119
void atari_dojo_serial_put_request0(Environment *_environment, int _command, char *_param1, char *_param2, char *_result)
Definition atari.c:918
void atari_dojo_fujinet_get_response_size(Environment *_environment, char *_status, char *_data)
Definition atari.c:1088
void atari_fujinet_json_query(Environment *_environment, char *_query, char *_size)
Definition atari.c:775
void atari_dsave(Environment *_environment, char *_filename, char *_offset, char *_address, char *_size)
Definition atari.c:428
void atari_dojo_fujinet_get_response_payload(Environment *_environment, char *_address)
Definition atari.c:1104
void atari_key_state(Environment *_environment, char *_scancode, char *_result)
Definition atari.c:157
void atari_dojo_serial_get_response_payload(Environment *_environment, char *_address)
Definition atari.c:890
void atari_asciicode(Environment *_environment, char *_asciicode)
Definition atari.c:190
void atari_timer_set_status_on(Environment *_environment, char *_timer)
Definition atari.c:258
struct _Environment Environment
Structure of compilation environment.