llvm-mos-sdk
Classes | Macros | Functions
rp6502.h File Reference

Go to the source code of this file.

Classes

struct  f_stat_t
 
struct  vga_mode1_config_t
 
struct  vga_mode2_config_t
 
struct  vga_mode3_config_t
 
struct  vga_mode4_sprite_t
 
struct  vga_mode4_asprite_t
 

Macros

#define RIA   (*(volatile struct __RP6502 *)0xFFE0)
 
#define RIA_READY_TX_BIT   0x80
 
#define RIA_READY_RX_BIT   0x40
 
#define RIA_BUSY_BIT   0x80
 
#define ria_push_char(v)   RIA.xstack = v
 
#define ria_pop_char()   RIA.xstack
 
#define ria_set_a(v)   RIA.a = v
 
#define RIA_OP_EXIT   0xFF
 
#define RIA_OP_ZXSTACK   0x00
 
#define RIA_OP_XREG   0x01
 
#define RIA_OP_PHI2   0x02
 
#define RIA_OP_CODE_PAGE   0x03
 
#define RIA_OP_LRAND   0x04
 
#define RIA_OP_STDIN_OPT   0x05
 
#define RIA_OP_ERRNO_OPT   0x06
 
#define RIA_OP_CLOCK   0x0F
 
#define RIA_OP_CLOCK_GETRES   0x10
 
#define RIA_OP_CLOCK_GETTIME   0x11
 
#define RIA_OP_CLOCK_SETTIME   0x12
 
#define RIA_OP_CLOCK_GETTIMEZONE   0x13
 
#define RIA_OP_OPEN   0x14
 
#define RIA_OP_CLOSE   0x15
 
#define RIA_OP_READ_XSTACK   0x16
 
#define RIA_OP_READ_XRAM   0x17
 
#define RIA_OP_WRITE_XSTACK   0x18
 
#define RIA_OP_WRITE_XRAM   0x19
 
#define RIA_OP_LSEEK_CC65   0x1A
 
#define RIA_OP_UNLINK   0x1B
 
#define RIA_OP_RENAME   0x1C
 
#define RIA_OP_LSEEK   0x1D
 
#define RIA_OP_LSEEK_LLVM   0x1D
 
#define RIA_OP_SYNCFS   0x1E
 
#define RIA_OP_STAT   0x1F
 
#define RIA_OP_OPENDIR   0x20
 
#define RIA_OP_READDIR   0x21
 
#define RIA_OP_CLOSEDIR   0x22
 
#define RIA_OP_TELLDIR   0x23
 
#define RIA_OP_SEEKDIR   0x24
 
#define RIA_OP_REWINDDIR   0x25
 
#define RIA_OP_CHMOD   0x26
 
#define RIA_OP_UTIME   0x27
 
#define RIA_OP_MKDIR   0x28
 
#define RIA_OP_CHDIR   0x29
 
#define RIA_OP_CHDRIVE   0x2A
 
#define RIA_OP_GETCWD   0x2B
 
#define RIA_OP_SETLABEL   0x2C
 
#define RIA_OP_GETLABEL   0x2D
 
#define RIA_OP_GETFREE   0x2E
 
#define xreg__(_16, _15, _14, _13, _12, _11, _10, _9, _8, _7, _6, _5, _4, _3, _2, _1, count, ...)    count
 
#define xreg_(...)    xreg__(__VA_ARGS__, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
 
#define xreg(d, c, a, ...)   xregn(d, c, a, xreg_(__VA_ARGS__), __VA_ARGS__)
 
#define xreg_ria_keyboard(...)   xreg(0, 0, 0, __VA_ARGS__)
 
#define xreg_ria_mouse(...)   xreg(0, 0, 1, __VA_ARGS__)
 
#define xreg_ria_gamepad(...)   xreg(0, 0, 2, __VA_ARGS__)
 
#define xreg_vga_canvas(...)   xreg(1, 0, 0, __VA_ARGS__)
 
#define xreg_vga_mode(...)   xreg(1, 0, 1, __VA_ARGS__)
 
#define xram0_struct_set(addr, type, member, val)
 
#define xram1_struct_set(addr, type, member, val)
 

Functions

void ria_push_long (unsigned long val)
 
void ria_push_int (unsigned int val)
 
long ria_pop_long (void)
 
int ria_pop_int (void)
 
void ria_set_axsreg (unsigned long axsreg)
 
void ria_set_ax (unsigned int ax)
 
int ria_call_int (unsigned char op)
 
long ria_call_long (unsigned char op)
 
int xregn (char device, char channel, unsigned char address, unsigned count,...)
 
int phi2 (void)
 
int code_page (int)
 
long lrand (void)
 
int stdin_opt (unsigned long ctrl_bits, unsigned char str_length)
 
int read_xstack (void *buf, unsigned count, int fildes)
 
int read_xram (unsigned buf, unsigned count, int fildes)
 
int write_xstack (const void *buf, unsigned count, int fildes)
 
int write_xram (unsigned buf, unsigned count, int fildes)
 
long f_lseek (long offset, int whence, int fildes)
 
int f_stat (const char *path, f_stat_t *dirent)
 
int f_opendir (const char *name)
 
int f_readdir (f_stat_t *dirent, int dirdes)
 
int f_closedir (int dirdes)
 
long f_telldir (int dirdes)
 
int f_seekdir (long offs, int dirdes)
 
int f_rewinddir (int dirdes)
 
int f_chmod (const char *path, unsigned char attr, unsigned char mask)
 
int f_utime (const char *path, unsigned fdate, unsigned ftime, unsigned crdate, unsigned crtime)
 
int f_mkdir (const char *name)
 
int f_chdrive (const char *name)
 
int f_getcwd (char *name, int size)
 
int f_setlabel (const char *name)
 
int f_getlabel (const char *path, char *label)
 
int f_getfree (const char *name, unsigned long *free, unsigned long *total)
 

Macro Definition Documentation

◆ RIA

#define RIA   (*(volatile struct __RP6502 *)0xFFE0)

◆ RIA_BUSY_BIT

#define RIA_BUSY_BIT   0x80

◆ RIA_OP_CHDIR

#define RIA_OP_CHDIR   0x29

◆ RIA_OP_CHDRIVE

#define RIA_OP_CHDRIVE   0x2A

◆ RIA_OP_CHMOD

#define RIA_OP_CHMOD   0x26

◆ RIA_OP_CLOCK

#define RIA_OP_CLOCK   0x0F

◆ RIA_OP_CLOCK_GETRES

#define RIA_OP_CLOCK_GETRES   0x10

◆ RIA_OP_CLOCK_GETTIME

#define RIA_OP_CLOCK_GETTIME   0x11

◆ RIA_OP_CLOCK_GETTIMEZONE

#define RIA_OP_CLOCK_GETTIMEZONE   0x13

◆ RIA_OP_CLOCK_SETTIME

#define RIA_OP_CLOCK_SETTIME   0x12

◆ RIA_OP_CLOSE

#define RIA_OP_CLOSE   0x15

◆ RIA_OP_CLOSEDIR

#define RIA_OP_CLOSEDIR   0x22

◆ RIA_OP_CODE_PAGE

#define RIA_OP_CODE_PAGE   0x03

◆ RIA_OP_ERRNO_OPT

#define RIA_OP_ERRNO_OPT   0x06

◆ RIA_OP_EXIT

#define RIA_OP_EXIT   0xFF

◆ RIA_OP_GETCWD

#define RIA_OP_GETCWD   0x2B

◆ RIA_OP_GETFREE

#define RIA_OP_GETFREE   0x2E

◆ RIA_OP_GETLABEL

#define RIA_OP_GETLABEL   0x2D

◆ RIA_OP_LRAND

#define RIA_OP_LRAND   0x04

◆ RIA_OP_LSEEK

#define RIA_OP_LSEEK   0x1D

◆ RIA_OP_LSEEK_CC65

#define RIA_OP_LSEEK_CC65   0x1A

◆ RIA_OP_LSEEK_LLVM

#define RIA_OP_LSEEK_LLVM   0x1D

◆ RIA_OP_MKDIR

#define RIA_OP_MKDIR   0x28

◆ RIA_OP_OPEN

#define RIA_OP_OPEN   0x14

◆ RIA_OP_OPENDIR

#define RIA_OP_OPENDIR   0x20

◆ RIA_OP_PHI2

#define RIA_OP_PHI2   0x02

◆ RIA_OP_READ_XRAM

#define RIA_OP_READ_XRAM   0x17

◆ RIA_OP_READ_XSTACK

#define RIA_OP_READ_XSTACK   0x16

◆ RIA_OP_READDIR

#define RIA_OP_READDIR   0x21

◆ RIA_OP_RENAME

#define RIA_OP_RENAME   0x1C

◆ RIA_OP_REWINDDIR

#define RIA_OP_REWINDDIR   0x25

◆ RIA_OP_SEEKDIR

#define RIA_OP_SEEKDIR   0x24

◆ RIA_OP_SETLABEL

#define RIA_OP_SETLABEL   0x2C

◆ RIA_OP_STAT

#define RIA_OP_STAT   0x1F

◆ RIA_OP_STDIN_OPT

#define RIA_OP_STDIN_OPT   0x05

◆ RIA_OP_SYNCFS

#define RIA_OP_SYNCFS   0x1E

◆ RIA_OP_TELLDIR

#define RIA_OP_TELLDIR   0x23

◆ RIA_OP_UNLINK

#define RIA_OP_UNLINK   0x1B

◆ RIA_OP_UTIME

#define RIA_OP_UTIME   0x27

◆ RIA_OP_WRITE_XRAM

#define RIA_OP_WRITE_XRAM   0x19

◆ RIA_OP_WRITE_XSTACK

#define RIA_OP_WRITE_XSTACK   0x18

◆ RIA_OP_XREG

#define RIA_OP_XREG   0x01

◆ RIA_OP_ZXSTACK

#define RIA_OP_ZXSTACK   0x00

◆ ria_pop_char

#define ria_pop_char ( )    RIA.xstack

◆ ria_push_char

#define ria_push_char (   v)    RIA.xstack = v

◆ RIA_READY_RX_BIT

#define RIA_READY_RX_BIT   0x40

◆ RIA_READY_TX_BIT

#define RIA_READY_TX_BIT   0x80

◆ ria_set_a

#define ria_set_a (   v)    RIA.a = v

◆ xram0_struct_set

#define xram0_struct_set (   addr,
  type,
  member,
  val 
)
Value:
RIA.addr0 = (unsigned)(&((type *)0)->member) + (unsigned)addr; \
switch (sizeof(((type *)0)->member)) { \
case 1: \
RIA.rw0 = val; \
break; \
case 2: \
RIA.step0 = 1; \
RIA.rw0 = val & 0xff; \
RIA.rw0 = (val >> 8) & 0xff; \
break; \
case 4: \
RIA.step0 = 1; \
RIA.rw0 = (unsigned long)val & 0xff; \
RIA.rw0 = ((unsigned long)val >> 8) & 0xff; \
RIA.rw0 = ((unsigned long)val >> 16) & 0xff; \
RIA.rw0 = ((unsigned long)val >> 24) & 0xff; \
break; \
}
#define RIA
Definition: rp6502.h:33

◆ xram1_struct_set

#define xram1_struct_set (   addr,
  type,
  member,
  val 
)
Value:
RIA.addr1 = (unsigned)(&((type *)0)->member) + (unsigned)addr; \
switch (sizeof(((type *)0)->member)) { \
case 1: \
RIA.rw1 = val; \
break; \
case 2: \
RIA.step1 = 1; \
RIA.rw1 = val & 0xff; \
RIA.rw1 = (val >> 8) & 0xff; \
break; \
case 4: \
RIA.step1 = 1; \
RIA.rw1 = (unsigned long)val & 0xff; \
RIA.rw1 = ((unsigned long)val >> 8) & 0xff; \
RIA.rw1 = ((unsigned long)val >> 16) & 0xff; \
RIA.rw1 = ((unsigned long)val >> 24) & 0xff; \
break; \
}

◆ xreg

#define xreg (   d,
  c,
  a,
  ... 
)    xregn(d, c, a, xreg_(__VA_ARGS__), __VA_ARGS__)

◆ xreg_

#define xreg_ (   ...)     xreg__(__VA_ARGS__, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)

◆ xreg__

#define xreg__ (   _16,
  _15,
  _14,
  _13,
  _12,
  _11,
  _10,
  _9,
  _8,
  _7,
  _6,
  _5,
  _4,
  _3,
  _2,
  _1,
  count,
  ... 
)     count

◆ xreg_ria_gamepad

#define xreg_ria_gamepad (   ...)    xreg(0, 0, 2, __VA_ARGS__)

◆ xreg_ria_keyboard

#define xreg_ria_keyboard (   ...)    xreg(0, 0, 0, __VA_ARGS__)

◆ xreg_ria_mouse

#define xreg_ria_mouse (   ...)    xreg(0, 0, 1, __VA_ARGS__)

◆ xreg_vga_canvas

#define xreg_vga_canvas (   ...)    xreg(1, 0, 0, __VA_ARGS__)

◆ xreg_vga_mode

#define xreg_vga_mode (   ...)    xreg(1, 0, 1, __VA_ARGS__)

Function Documentation

◆ code_page()

int code_page ( int  )

◆ f_chdrive()

int f_chdrive ( const char *  name)

◆ f_chmod()

int f_chmod ( const char *  path,
unsigned char  attr,
unsigned char  mask 
)

◆ f_closedir()

int f_closedir ( int  dirdes)

◆ f_getcwd()

int f_getcwd ( char *  name,
int  size 
)

◆ f_getfree()

int f_getfree ( const char *  name,
unsigned long *  free,
unsigned long *  total 
)

◆ f_getlabel()

int f_getlabel ( const char *  path,
char *  label 
)

◆ f_lseek()

long f_lseek ( long  offset,
int  whence,
int  fildes 
)

◆ f_mkdir()

int f_mkdir ( const char *  name)

◆ f_opendir()

int f_opendir ( const char *  name)

◆ f_readdir()

int f_readdir ( f_stat_t dirent,
int  dirdes 
)

◆ f_rewinddir()

int f_rewinddir ( int  dirdes)

◆ f_seekdir()

int f_seekdir ( long  offs,
int  dirdes 
)

◆ f_setlabel()

int f_setlabel ( const char *  name)

◆ f_stat()

int f_stat ( const char *  path,
f_stat_t dirent 
)

◆ f_telldir()

long f_telldir ( int  dirdes)

◆ f_utime()

int f_utime ( const char *  path,
unsigned  fdate,
unsigned  ftime,
unsigned  crdate,
unsigned  crtime 
)

◆ lrand()

long lrand ( void  )

◆ phi2()

int phi2 ( void  )

◆ read_xram()

int read_xram ( unsigned  buf,
unsigned  count,
int  fildes 
)

◆ read_xstack()

int read_xstack ( void *  buf,
unsigned  count,
int  fildes 
)

◆ ria_call_int()

int ria_call_int ( unsigned char  op)

◆ ria_call_long()

long ria_call_long ( unsigned char  op)

◆ ria_pop_int()

int ria_pop_int ( void  )

◆ ria_pop_long()

long ria_pop_long ( void  )

◆ ria_push_int()

void ria_push_int ( unsigned int  val)

◆ ria_push_long()

void ria_push_long ( unsigned long  val)

◆ ria_set_ax()

void ria_set_ax ( unsigned int  ax)

◆ ria_set_axsreg()

void ria_set_axsreg ( unsigned long  axsreg)

◆ stdin_opt()

int stdin_opt ( unsigned long  ctrl_bits,
unsigned char  str_length 
)

◆ write_xram()

int write_xram ( unsigned  buf,
unsigned  count,
int  fildes 
)

◆ write_xstack()

int write_xstack ( const void *  buf,
unsigned  count,
int  fildes 
)

◆ xregn()

int xregn ( char  device,
char  channel,
unsigned char  address,
unsigned  count,
  ... 
)