mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-29 14:27:50 +00:00
Initial revision: imported RGBDS source code
The code comes from the RGBDS source and documentation zip files found on this website: http://www.otakunozoku.com/1999/08/01/rednex-gameboy-development-system/ The same website reports: "Best of all, it’s free! That’s right! Free! The executables are free to use, either for personal hobby use, or full blown commercial productions — I know of at least a dozen commercial games you can purchase that are written with RGBDS — and the source code is free to modify. "The only thing I ask is that you do not charge for either distributing the executables or source code, and any derivative works you give credit to the original authors of the tools. That means you have to say “Thanks” to the original authors SurfSmurf and Otaku." Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com>
This commit is contained in:
22
src/LINK/INCLUDE/ASSIGN.H
Normal file
22
src/LINK/INCLUDE/ASSIGN.H
Normal file
@@ -0,0 +1,22 @@
|
||||
#ifndef ASSIGN_H
|
||||
#define ASSIGN_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
enum eBankDefine
|
||||
{
|
||||
BANK_HOME=0,
|
||||
BANK_BSS=256,
|
||||
BANK_VRAM,
|
||||
BANK_HRAM
|
||||
};
|
||||
|
||||
#define MAXBANKS 259
|
||||
|
||||
extern SLONG area_Avail( SLONG bank );
|
||||
extern void AssignSections( void );
|
||||
extern void CreateSymbolTable( void );
|
||||
extern SLONG MaxBankUsed;
|
||||
extern SLONG MaxAvail[MAXBANKS];
|
||||
|
||||
#endif
|
||||
6
src/LINK/INCLUDE/LIBRARY.H
Normal file
6
src/LINK/INCLUDE/LIBRARY.H
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef LIBRARY_H
|
||||
#define LIBRARY_H
|
||||
|
||||
extern void AddNeededModules( void );
|
||||
|
||||
#endif
|
||||
21
src/LINK/INCLUDE/MAIN.H
Normal file
21
src/LINK/INCLUDE/MAIN.H
Normal file
@@ -0,0 +1,21 @@
|
||||
#ifndef MAIN_H
|
||||
#define MAIN_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern void PrintUsage( void );
|
||||
extern void fatalerror( char *s );
|
||||
extern char temptext[1024];
|
||||
extern SLONG fillchar;
|
||||
extern char smartlinkstartsymbol[256];
|
||||
|
||||
enum eOutputType
|
||||
{
|
||||
OUTPUT_GBROM,
|
||||
OUTPUT_PSION2
|
||||
};
|
||||
|
||||
extern enum eOutputType outputtype;
|
||||
|
||||
|
||||
#endif
|
||||
11
src/LINK/INCLUDE/MAPFILE.H
Normal file
11
src/LINK/INCLUDE/MAPFILE.H
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef MAPFILE_H
|
||||
#define MAPFILE_H
|
||||
|
||||
extern void SetMapfileName( char *name );
|
||||
extern void SetSymfileName( char *name );
|
||||
extern void CloseMapfile( void );
|
||||
extern void MapfileWriteSection( struct sSection *pSect );
|
||||
extern void MapfileInitBank( SLONG bank );
|
||||
extern void MapfileCloseBank( SLONG slack );
|
||||
|
||||
#endif
|
||||
119
src/LINK/INCLUDE/MYLINK.H
Normal file
119
src/LINK/INCLUDE/MYLINK.H
Normal file
@@ -0,0 +1,119 @@
|
||||
#ifndef LINK_H
|
||||
#define LINK_H 1
|
||||
|
||||
#if defined(AMIGA) || defined(__GNUC__)
|
||||
#define _MAX_PATH 512
|
||||
#endif
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern SLONG options;
|
||||
#define OPT_SMALL 0x01
|
||||
#define OPT_SMART_C_LINK 0x02
|
||||
|
||||
enum eRpnData
|
||||
{
|
||||
RPN_ADD=0,
|
||||
RPN_SUB,
|
||||
RPN_MUL,
|
||||
RPN_DIV,
|
||||
RPN_MOD,
|
||||
RPN_UNSUB,
|
||||
|
||||
RPN_OR,
|
||||
RPN_AND,
|
||||
RPN_XOR,
|
||||
RPN_UNNOT,
|
||||
|
||||
RPN_LOGAND,
|
||||
RPN_LOGOR,
|
||||
RPN_LOGUNNOT,
|
||||
|
||||
RPN_LOGEQ,
|
||||
RPN_LOGNE,
|
||||
RPN_LOGGT,
|
||||
RPN_LOGLT,
|
||||
RPN_LOGGE,
|
||||
RPN_LOGLE,
|
||||
|
||||
RPN_SHL,
|
||||
RPN_SHR,
|
||||
|
||||
RPN_BANK,
|
||||
|
||||
RPN_HRAM,
|
||||
|
||||
RPN_PCEZP,
|
||||
|
||||
RPN_RANGECHECK,
|
||||
|
||||
RPN_CONST=0x80,
|
||||
RPN_SYM=0x81
|
||||
};
|
||||
|
||||
enum eSectionType
|
||||
{
|
||||
SECT_BSS,
|
||||
SECT_VRAM,
|
||||
SECT_CODE,
|
||||
SECT_HOME,
|
||||
SECT_HRAM
|
||||
};
|
||||
|
||||
struct sSection
|
||||
{
|
||||
SLONG nBank;
|
||||
SLONG nOrg;
|
||||
BBOOL oAssigned;
|
||||
|
||||
SLONG nByteSize;
|
||||
enum eSectionType Type;
|
||||
UBYTE *pData;
|
||||
SLONG nNumberOfSymbols;
|
||||
struct sSymbol **tSymbols;
|
||||
struct sPatch *pPatches;
|
||||
struct sSection *pNext;
|
||||
};
|
||||
|
||||
enum eSymbolType
|
||||
{
|
||||
SYM_LOCAL,
|
||||
SYM_IMPORT,
|
||||
SYM_EXPORT
|
||||
};
|
||||
|
||||
struct sSymbol
|
||||
{
|
||||
char *pzName;
|
||||
enum eSymbolType Type;
|
||||
/* the following 3 items only valid when Type!=SYM_IMPORT */
|
||||
SLONG nSectionID; /* internal to object.c */
|
||||
struct sSection *pSection;
|
||||
SLONG nOffset;
|
||||
};
|
||||
|
||||
enum ePatchType
|
||||
{
|
||||
PATCH_BYTE=0,
|
||||
PATCH_WORD_L,
|
||||
PATCH_LONG_L,
|
||||
PATCH_WORD_B,
|
||||
PATCH_LONG_B
|
||||
};
|
||||
|
||||
struct sPatch
|
||||
{
|
||||
char *pzFilename;
|
||||
SLONG nLineNo;
|
||||
SLONG nOffset;
|
||||
enum ePatchType Type;
|
||||
SLONG nRPNSize;
|
||||
UBYTE *pRPN;
|
||||
struct sPatch *pNext;
|
||||
BBOOL oRelocPatch;
|
||||
};
|
||||
|
||||
extern struct sSection *pSections;
|
||||
extern struct sSection *pLibSections;
|
||||
|
||||
#endif
|
||||
7
src/LINK/INCLUDE/OBJECT.H
Normal file
7
src/LINK/INCLUDE/OBJECT.H
Normal file
@@ -0,0 +1,7 @@
|
||||
#ifndef OBJECT_H
|
||||
#define OBJECT_H
|
||||
|
||||
extern void obj_Readfile( char *tzObjectfile );
|
||||
extern void lib_Readfile( char *tzLibfile );
|
||||
|
||||
#endif
|
||||
7
src/LINK/INCLUDE/OUTPUT.H
Normal file
7
src/LINK/INCLUDE/OUTPUT.H
Normal file
@@ -0,0 +1,7 @@
|
||||
#ifndef OUTPUT_H
|
||||
#define OUTPUT_H
|
||||
|
||||
void out_Setname( char *tzOutputfile );
|
||||
void Output( void );
|
||||
|
||||
#endif
|
||||
9
src/LINK/INCLUDE/PATCH.H
Normal file
9
src/LINK/INCLUDE/PATCH.H
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef PATCH_H
|
||||
#define PATCH_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
void Patch( void );
|
||||
extern SLONG nPC;
|
||||
|
||||
#endif
|
||||
11
src/LINK/INCLUDE/SYMBOL.H
Normal file
11
src/LINK/INCLUDE/SYMBOL.H
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef SYMBOL_H
|
||||
#define SYMBOL_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
void sym_Init( void );
|
||||
void sym_CreateSymbol( char *tzName, SLONG nValue, SBYTE nBank );
|
||||
SLONG sym_GetValue( char *tzName );
|
||||
SLONG sym_GetBank( char *tzName );
|
||||
|
||||
#endif
|
||||
16
src/LINK/INCLUDE/TYPES.H
Normal file
16
src/LINK/INCLUDE/TYPES.H
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef TYPES_H
|
||||
#define TYPES_H 1
|
||||
|
||||
#if defined(AMIGA) || defined(__GNUC__)
|
||||
#define _MAX_PATH 512
|
||||
#endif
|
||||
|
||||
typedef unsigned char UBYTE;
|
||||
typedef signed char SBYTE;
|
||||
typedef unsigned short UWORD;
|
||||
typedef signed short SWORD;
|
||||
typedef unsigned long ULONG;
|
||||
typedef signed long SLONG;
|
||||
typedef signed char BBOOL;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user