40 lines
No EOL
1.2 KiB
C
40 lines
No EOL
1.2 KiB
C
/*
|
|
Copyright 2019 Benji Dial
|
|
|
|
Permission to use, copy, modify, and/or distribute this
|
|
software for any purpose with or without fee is hereby
|
|
granted, provided that the above copyright notice and this
|
|
permission notice appear in all copies.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS
|
|
ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
|
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
|
|
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
|
OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifndef FILES_H
|
|
#define FILES_H
|
|
|
|
struct file_handle_info {
|
|
uint16_t first_sector;
|
|
uint16_t current_sector;
|
|
uint8_t *io_buffer;
|
|
uint32_t position;
|
|
};
|
|
|
|
#define FILE_HANDLES ((struct file_handle_info *)*(uint32_t *)0x0000050c)
|
|
uint16_t open_file(uint8_t *name);
|
|
void close_file(uint16_t handle);
|
|
void read_file(uint16_t handle, uint32_t length, void *buffer);
|
|
void write_file(uint16_t handle, uint32_t length, void *buffer);
|
|
void seek_file(uint16_t handle, int32_t by);
|
|
uint32_t get_size(uint16_t handle);
|
|
|
|
#endif |