This commit is contained in:
Daveo 2000-08-29 16:26:01 +00:00
commit 47aee91ef4
396 changed files with 32003 additions and 0 deletions

BIN
tools/psyq/bin/Blank.exe Normal file

Binary file not shown.

BIN
tools/psyq/bin/CDEXEC.CPE Normal file

Binary file not shown.

BIN
tools/psyq/bin/CPE2BIN.EXE Normal file

Binary file not shown.

BIN
tools/psyq/bin/DBUGPSX.EXE Normal file

Binary file not shown.

BIN
tools/psyq/bin/DEXBIOS.COM Normal file

Binary file not shown.

BIN
tools/psyq/bin/DMPSX.EXE Normal file

Binary file not shown.

BIN
tools/psyq/bin/H25BIOS.COM Normal file

Binary file not shown.

BIN
tools/psyq/bin/MESS1.COM Normal file

Binary file not shown.

BIN
tools/psyq/bin/MFR.EXE Normal file

Binary file not shown.

BIN
tools/psyq/bin/Psylib2.exe Normal file

Binary file not shown.

BIN
tools/psyq/bin/RESETPS.EXE Normal file

Binary file not shown.

BIN
tools/psyq/bin/RUN.EXE Normal file

Binary file not shown.

BIN
tools/psyq/bin/SELCD.CPE Normal file

Binary file not shown.

BIN
tools/psyq/bin/SELEMU.CPE Normal file

Binary file not shown.

BIN
tools/psyq/bin/SNPATCH.CPE Normal file

Binary file not shown.

BIN
tools/psyq/bin/SNPATCHJ.CPE Normal file

Binary file not shown.

BIN
tools/psyq/bin/SNPATCHW.CPE Normal file

Binary file not shown.

BIN
tools/psyq/bin/TESTMESS.COM Normal file

Binary file not shown.

BIN
tools/psyq/bin/asmpsx.exe Normal file

Binary file not shown.

BIN
tools/psyq/bin/aspsx.exe Normal file

Binary file not shown.

BIN
tools/psyq/bin/ccpsx.exe Normal file

Binary file not shown.

BIN
tools/psyq/bin/cpe2exe.exe Normal file

Binary file not shown.

341
tools/psyq/bin/egcs/a.txt Normal file
View file

@ -0,0 +1,341 @@
Usage: CC1PLPSX.EXE input [switches]
Switches:
-ffixed-<register> Mark <register> as being unavailable to the compiler
-fcall-used-<register> Mark <register> as being corrupted by function calls
-fcall-saved-<register> Mark <register> as being preserved across functions
-finline-limit-<number> Limits the size of inlined functions to <number>
-fident Process #ident directives
-fleading-underscore External symbols have a leading underscore
-finstrument-functions Instrument function entry/exit with profiling calls
-fdump-unnumbered Suppress output of instruction numbers and line number notes in debugging dumps
-fprefix-function-name Add a prefix to all function names
-fcheck-memory-usage Generate code to check every memory access
-fstrict-aliasing Assume strict aliasing rules apply
-fargument-noalias-global Assume arguments do not alias each other or globals
-fargument-noalias Assume arguments may alias globals but not each other
-fargument-alias Specify that arguments may alias each other & globals
-fstack-check Insert stack checking code into the program
-fpack-struct Pack structure members together without holes
-foptimize-register-move Do the full regmove optimization pass
-fregmove Enables a register move optimisation
-fgnu-linker Output GNU ld formatted global initialisers
-fverbose-asm Add extra commentry to assembler output
-fdata-sections place data items into their own section
-ffunction-sections place each function into its own section
-finhibit-size-directive Do not generate .size directives
-fcommon Do not put unitialised globals in the common section
-ffast-math Improve FP speed by violating ANSI & IEEE rules
-fbranch-probabilities Use profiling information for branch probabilities
-ftest-coverage Create data files needed by gcov
-fprofile-arcs Insert arc based program profiling code
-fasynchronous-exceptions Support asynchronous exceptions
-fsjlj-exceptions Use setjmp/longjmp to handle exceptions
-fnew-exceptions Use the new model for exception handling
-fexceptions Enable exception handling
-fpic Generate position independent code, if possible
-fbranch-count-reg Replace add,compare,branch with branch on count reg
-fschedule-insns2 Run two passes of the instruction scheduler
-fschedule-insns Reschedule instructions to avoid pipeline stalls
-fpretend-float Pretend that host and target use the same FP format
-frerun-loop-opt Run the loop optimiser twice
-frerun-cse-after-loop Run CSE pass after loop optimisations
-fgcse Perform the global common subexpression elimination
-fdelayed-branch Attempt to fill delay slots of branch instructions
-freg-struct-return Return 'short' aggregates in registers
-fpcc-struct-return Return 'short' aggregates in memory, not registers
-fcaller-saves Enable saving registers around function calls
-fshared-data Mark data as shared rather than private
-fsyntax-only Check for syntax errors, then stop
-fkeep-static-consts Emit static const variables even if they are not used
-finline Pay attention to the 'inline' keyword
-fkeep-inline-functions Generate code for funcs even if they are fully inlined
-finline-functions Integrate simple functions into their callers
-ffunction-cse Allow function addresses to be held in registers
-fforce-addr Copy memory address constants into regs before using
-fforce-mem Copy memory operands into registers before using
-fpeephole Enable machine specific peephole optimisations
-fwritable-strings Store strings in writable data section
-freduce-all-givs Strength reduce all loop general induction variables
-fmove-all-movables Force all loop invariant computations out of loops
-funroll-all-loops Perform loop unrolling for all loops
-funroll-loops Perform loop unrolling when iteration count is known
-fstrength-reduce Perform strength reduction optimisations
-fthread-jumps Perform jump threading optimisations
-fexpensive-optimizations Perform a number of minor, expensive optimisations
-fcse-skip-blocks When running CSE, follow conditional jumps
-fcse-follow-jumps When running CSE, follow jumps to their targets
-fomit-frame-pointer When possible do not generate stack frames
-fdefer-pop Defer popping functions args from stack until later
-fvolatile-static Consider all mem refs to static data to be volatile
-fvolatile-global Consider all mem refs to global data to be volatile
-fvolatile Consider all mem refs through pointers as volatile
-ffloat-store Do not store floats in registers
-O[number] Set optimisation level to [number]
-Os Optimise for space rather than speed
-pedantic Issue warnings needed by strict compliance to ANSI C
-pedantic-errors Like -pedantic except that errors are produced
-w Suppress warnings
-W Enable extra warnings
-Winline Warn when an inlined function cannot be inlined
-Wuninitialized Warn about unitialized automatic variables
-Wcast-align Warn about pointer casts which increase alignment
-Waggregate-return Warn about returning structures, unions or arrays
-Wswitch Warn about enumerated switches missing a specific case
-Wshadow Warn when one local variable shadows another
-Wunused Warn when a variable is unused
-Wid-clash-<num> Warn if 2 identifiers have the same first <num> chars
-Wlarger-than-<number> Warn if an object is larger than <number> bytes
-p Enable function profiling
-o <file> Place output into <file>
-G <number> Put global and static data smaller than <number>
bytes into a special section (on some targets)
-gcoff Generate COFF format debug output
-gstabs+ Generate extended STABS format debug output
-gstabs Generate STABS format debug output
-ggdb Generate default extended debug format output
-g Generate default debug format output
-aux-info <file> Emit declaration info into <file>.X
-quiet Do not display functions compiled or elapsed time
-version Display the compiler's version
-d[letters] Enable dumps from specific passes of the compiler
-dumpbase <file> Base name to be used for dumps from specific passes
-sched-verbose-<number> Set the verbosity level of the scheduler
--help Display this information
Language specific options:
-ansi Compile just for ANSI C
-fallow-single-precisio Do not promote floats to double if using -traditional
-std= Determine language standard
-funsigned-bitfields Make bitfields by unsigned by default
-fsigned-char Make 'char' be signed by default
-funsigned-char Make 'char' be unsigned by default
-traditional Attempt to support traditional K&R style C
-fno-asm Do not recognise the 'asm' keyword
-fno-builtin Do not recognise any built in functions
-fhosted Assume normal C execution environment
-ffreestanding Assume that standard libraries & main might not exist
-fcond-mismatch Allow different types as args of ? operator
-fdollars-in-identifier Allow the use of $ inside identifiers
-fshort-double Use the same size for double as for float
-fshort-enums Use the smallest fitting integer to hold enums
-Wall Enable most warning messages
-Wbad-function-cast Warn about casting functions to incompatible types
-Wmissing-noreturn Warn about functions which might be candidates for attribute noreturn
-Wcast-qual Warn about casts which discard qualifiers
-Wchar-subscripts Warn about subscripts whose type is 'char'
-Wcomment Warn if nested comments are detected
-Wcomments Warn if nested comments are detected
-Wconversion Warn about possibly confusing type conversions
-Wformat Warn about printf format anomalies
-Wimplicit-function-dec Warn about implicit function declarations
-Wimplicit-int Warn when a declaration does not specify a type
-Wimport Warn about the use of the #import directive
-Wno-long-long Do not warn about using 'long long' when -pedantic
-Wmain Warn about suspicious declarations of main
-Wmissing-braces Warn about possibly missing braces around initialisers
-Wmissing-declarations Warn about global funcs without previous declarations
-Wmissing-prototypes Warn about global funcs without prototypes
-Wmultichar Warn about use of multicharacter literals
-Wnested-externs Warn about externs not at file scope level
-Wparentheses Warn about possible missing parentheses
-Wpointer-arith Warn about function pointer arithmetic
-Wredundant-decls Warn about multiple declarations of the same object
-Wsign-compare Warn about signed/unsigned comparisons
-Wunknown-pragmas Warn about unrecognised pragmas
-Wstrict-prototypes Warn about non-prototyped function decls
-Wtraditional Warn about constructs whose meaning change in ANSI C
-Wtrigraphs Warn when trigraphs are encountered
-Wwrite-strings Mark strings as 'const char *'
Options for Objective C:
-gen-decls Dump decls to a .decl file
-fgnu-runtime Generate code for GNU runtime environment
-fnext-runtime Generate code for NeXT runtime environment
-Wselector Warn if a selector has multiple methods
-Wno-protocol Do not warn if inherited methods are unimplemented
-print-objc-runtime-inf Generate C header of platform specific features
Options for C++:
-fno-access-control Do not obey access control semantics
-fall-virtual Make all member functions virtual
-falt-external-template Change when template instances are emitted
-fcheck-new Check the return value of new
-fconserve-space Reduce size of object files
-fno-const-strings Make string literals `char[]' instead of `const char[]'
-fno-default-inline Do not inline member functions by default
-fno-rtti Do not generate run time type descriptor information
-fno-for-scope Scope of for-init-statement vars extends outside
-fguiding-decls Implement guiding declarations
-fno-gnu-keywords Do not recognise GNU defined keywords
-fhandle-signatures Handle signature language constructs
-fhonor-std Treat the namespace `std' as a normal namespace
-fhuge-objects Enable support for huge objects
-fno-implement-inlines Export functions even if they can be inlined
-fno-implicit-templates Only emit explicit template instatiations
-fno-implicit-inline-te Only emit explicit instatiations of inline templates
-finit-priority Handle the init_priority attribute
-flabels-ok Labels can be used as first class objects
-fnew-abi Enable experimental ABI changes
-fno-nonnull-objects Do not assume that a reference is always valid
-foperator-names Recognise and/bitand/bitor/compl/not/or/xor
-fno-optional-diags Disable optional diagnostics
-fpermissive Downgrade conformance errors to warnings
-frepo Enable automatic template instantiation
-fsquangle Enable squashed name mangling
-fstats Display statistics accumulated during compilation
-fno-strict-prototype Do not assume that empty prototype means no args
-ftemplate-depth- Specify maximum template instantiation depth
-fthis-is-variable Make 'this' not be type '* const'
-fvtable-gc Discard unused virtual functions
-fvtable-thunks Implement vtables using thunks
-fweak Emit common-like symbols as weak symbols
-fxref Emit cross referencing information
-Wreturn-type Warn about inconsistent return types
-Woverloaded-virtual Warn about overloaded virtual function names
-Wno-ctor-dtor-privacy Don't warn when all ctors/dtors are private
-Wnon-virtual-dtor Warn about non virtual destructors
-Wextern-inline Warn when a function is declared extern, then inline
-Wreorder Warn when the compiler reorders code
-Wsynth Warn when synthesis behaviour differs from Cfront
-Wno-pmf-conversions Don't warn when type converting pointers to member functions
-Weffc++ Warn about violations of Effective C++ style rules
-Wsign-promo Warn when overload promotes from unsigned to signed
-Wold-style-cast Warn if a C style cast is used in a program
-Wno-non-template-frien Don't warn when non-templatized friend functions are declared within a template
-Wno-deprecated Don't announce deprecation of compiler features
Options for Fortran:
-fversion Print g77-specific compiler version info, run internal tests
-ff66 Program is written in typical FORTRAN 66 dialect
-ff77 Program is written in typical Unix f77 dialect
-fno-f77 Program does not use Unix-f77 dialectal features
-ff90 Program is written in Fortran-90-ish dialect
-fno-automatic Treat local vars and COMMON blocks as if they were named in SAVE statements
-fdollar-ok Allow $ in symbol names
-fno-f2c f2c-compatible code need not be generated
-fno-f2c-library Unsupported; do not generate libf2c-calling code
-fflatten-arrays Unsupported; affects code-generation of arrays
-ffree-form Program is written in Fortran-90-ish free form
-fpedantic Warn about use of (only a few for now) Fortran extensions
-fvxt Program is written in VXT (Digital-like) FORTRAN
-fno-ugly Disallow all ugly features
-fno-ugly-args Hollerith and typeless constants not passed as arguments
-fugly-assign Allow ordinary copying of ASSIGN'ed vars
-fugly-assumed Dummy array dimensioned to (1) is assumed-size
-fugly-comma Trailing comma in procedure call denotes null argument
-fugly-complex Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z
-fno-ugly-init Initialization via DATA and PARAMETER is type-compatible
-fugly-logint Allow INTEGER and LOGICAL interchangeability
-fxyzzy Print internal debugging-related info
-finit-local-zero Initialize local vars and arrays to zero
-fno-backslash Backslashes in character/hollerith constants not special (C-style)
-femulate-complex Have front end emulate COMPLEX arithmetic to avoid bugs
-fno-underscoring Disable the appending of underscores to externals
-fno-second-underscore Never append a second underscore to externals
-fintrin-case-initcap Intrinsics spelled as e.g. SqRt
-fintrin-case-upper Intrinsics in uppercase
-fintrin-case-any Intrinsics letters in arbitrary cases
-fmatch-case-initcap Language keywords spelled as e.g. IOStat
-fmatch-case-upper Language keywords in uppercase
-fmatch-case-any Language keyword letters in arbitrary cases
-fsource-case-upper Internally convert most source to uppercase
-fsource-case-preserve Internally preserve source case
-fsymbol-case-initcap Symbol names spelled in mixed case
-fsymbol-case-upper Symbol names in uppercase
-fsymbol-case-lower Symbol names in lowercase
-fcase-strict-upper Program written in uppercase
-fcase-strict-lower Program written in lowercase
-fcase-initcap Program written in strict mixed-case
-fcase-upper Compile as if program written in uppercase
-fcase-lower Compile as if program written in lowercase
-fcase-preserve Preserve all spelling (case) used in program
-fbadu77-intrinsics-del Delete libU77 intrinsics with bad interfaces
-fbadu77-intrinsics-dis Disable libU77 intrinsics with bad interfaces
-fbadu77-intrinsics-hid Hide libU77 intrinsics with bad interfaces
-ff2c-intrinsics-delete Delete non-FORTRAN-77 intrinsics f2c supports
-ff2c-intrinsics-disabl Disable non-FORTRAN-77 intrinsics f2c supports
-ff2c-intrinsics-hide Hide non-FORTRAN-77 intrinsics f2c supports
-ff90-intrinsics-delete Delete non-FORTRAN-77 intrinsics F90 supports
-ff90-intrinsics-disabl Disable non-FORTRAN-77 intrinsics F90 supports
-ff90-intrinsics-hide Hide non-FORTRAN-77 intrinsics F90 supports
-fgnu-intrinsics-delete Delete non-FORTRAN-77 intrinsics g77 supports
-fgnu-intrinsics-disabl Disable non-FORTRAN 77 intrinsics F90 supports
-fgnu-intrinsics-hide Hide non-FORTRAN 77 intrinsics F90 supports
-fmil-intrinsics-delete Delete MIL-STD 1753 intrinsics
-fmil-intrinsics-disabl Disable MIL-STD 1753 intrinsics
-fmil-intrinsics-hide Hide MIL-STD 1753 intrinsics
-funix-intrinsics-delet Delete libU77 intrinsics
-funix-intrinsics-disab Disable libU77 intrinsics
-funix-intrinsics-hide Hide libU77 intrinsics
-fvxt-intrinsics-delete Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports
-fvxt-intrinsics-disabl Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports
-fvxt-intrinsics-hide Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports
-fzeros Treat initial values of 0 like non-zero values
-fdebug-kludge Emit special debugging information for COMMON and EQUIVALENCE
-fonetrip Take at least one trip through each iterative DO loop
-fno-silent Print names of program units as they are compiled
-fno-globals Disable fatal diagnostics about inter-procedural problems
-ftypeless-boz Make prefix-radix non-decimal constants be typeless
-fbounds-check Generate code to check subscript and substring bounds
-ffortran-bounds-check Fortran-specific form of -fbounds-check
-Wno-globals Disable warnings about inter-procedural problems
-Wsurprising Warn about constructs with surprising meanings
-I Add a directory for INCLUDE searching
-ffixed-line-length- Set the maximum line length
Target specific options:
-mno-check-range-divisi Don't trap on integer divide overflow
-mcheck-range-division Trap on integer divide overflow
-mno-check-zero-divisio Don't trap on integer divide by zero
-mcheck-zero-division Trap on integer divide by zero
-m3900 Optimize for 3900
-m4650 Optimize for 4650
-mno-fix4300 Don't work around early 4300 hardware bug
-mfix4300 Work around early 4300 hardware bug
-mno-mad Don't use multiply accumulate
-mmad Use multiply accumulate
-mdouble-float Don't use single (32-bit) FP only
-msingle-float Use single (32-bit) FP only
-mel Use little-endian byte order
-meb Use big-endian byte order
-mno-embedded-data Don't use ROM instead of RAM
-membedded-data Use ROM instead of RAM
-mno-embedded-pic Don't use embedded PIC
-membedded-pic Use embedded PIC
-mno-long-calls Don't use indirect calls
-mlong-calls Use indirect calls
-mno-half-pic Don't use OSF PIC
-mhalf-pic Use OSF PIC
-mno-abicalls Don't use Irix PIC
-mabicalls Use Irix PIC
-mgp32 Use 32-bit general registers
-mgp64 Use 64-bit general registers
-mfp32 Use 32-bit FP registers
-mfp64 Use 64-bit FP registers
-mhard-float Use hardware floating point
-msoft-float Use software floating point
-mno-mips-tfile Don't use mips-tfile asm postpass
-mmips-tfile Use mips-tfile asm postpass
-mno-memcpy Optimize block moves
-mmemcpy Don't optimize block moves
-mno-stats Don't output compiler statistics
-mstats Output compiler statistics
-mno-gpopt Don't use GP relative sdata/sbss sections
-mno-gpOPT Don't use GP relative sdata/sbss sections
-mgpopt Use GP relative sdata/sbss sections
-mgpOPT Use GP relative sdata/sbss sections
-mno-rnames Don't use symbolic register names
-mrnames Use symbolic register names
-mgas Use GNU as
-mmips-as Use MIPS as
-mno-split-addresses Don't optimize lui/addiu address loads
-msplit-addresses Optimize lui/addiu address loads
-mlong32 Use 32-bit long type
-mlong64 Use 64-bit long type
-mint64 Use 64-bit int type
-mno-mips16 Don't use MIPS16 instructions
-mentry Use mips16 entry/exit psuedo ops
-mips Specify MIPS ISA
-mcpu= Specify CPU for scheduling purposes
There are undocumented target specific options as well.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,4 @@
[ccpsx]
stdlib=
compiler_path=tools/psyq/bin/egcs
assembler_path=tools/psyq/bin

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,4 @@
[ccpsx]
stdlib=
compiler_path=tools/psyq/bin/gnu
assembler_path=tools/psyq/bin

BIN
tools/psyq/bin/psylib.exe Normal file

Binary file not shown.

BIN
tools/psyq/bin/slink.exe Normal file

Binary file not shown.

BIN
tools/psyq/bin/symmunge.exe Normal file

Binary file not shown.

24
tools/psyq/include/ABS.H Normal file
View file

@ -0,0 +1,24 @@
/*
* File:abs.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _ABS_H
#define _ABS_H
#ifndef ABS
#define ABS(x) (((x)>=0)?(x):(-(x)))
#endif /* abs */
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern int abs(int);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _ABS_H */

156
tools/psyq/include/ASM.H Normal file
View file

@ -0,0 +1,156 @@
/*
* File:asm.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _ASM_H
#define _ASM_H
#define R0 $0
#define R1 $1
#define R2 $2
#define R3 $3
#define R4 $4
#define R5 $5
#define R6 $6
#define R7 $7
#define R8 $8
#define R9 $9
#define R10 $10
#define R11 $11
#define R12 $12
#define R13 $13
#define R14 $14
#define R15 $15
#define R16 $16
#define R17 $17
#define R18 $18
#define R19 $19
#define R20 $20
#define R21 $21
#define R22 $22
#define R23 $23
#define R24 $24
#define R25 $25
#define R26 $26
#define R27 $27
#define R28 $28
#define R29 $29
#define R30 $30
#define R31 $31
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
#else
#define zero $0 /* wired zero */
#define AT $1 /* assembler temp */
#define v0 $2 /* return value */
#define v1 $3
#define a0 $4 /* argument registers */
#define a1 $5
#define a2 $6
#define a3 $7
#define t0 $8 /* caller saved */
#define t1 $9
#define t2 $10
#define t3 $11
#define t4 $12
#define t5 $13
#define t6 $14
#define t7 $15
#define s0 $16 /* callee saved */
#define s1 $17
#define s2 $18
#define s3 $19
#define s4 $20
#define s5 $21
#define s6 $22
#define s7 $23
#define t8 $24 /* code generator */
#define t9 $25
#define k0 $26 /* kernel temporary */
#define k1 $27
#define gp $28 /* global pointer */
#define sp $29 /* stack pointer */
#define fp $30 /* frame pointer */
#define ra $31 /* return address */
#endif
/* register offset */
#define R_R0 0
#define R_R1 1
#define R_R2 2
#define R_R3 3
#define R_R4 4
#define R_R5 5
#define R_R6 6
#define R_R7 7
#define R_R8 8
#define R_R9 9
#define R_R10 10
#define R_R11 11
#define R_R12 12
#define R_R13 13
#define R_R14 14
#define R_R15 15
#define R_R16 16
#define R_R17 17
#define R_R18 18
#define R_R19 19
#define R_R20 20
#define R_R21 21
#define R_R22 22
#define R_R23 23
#define R_R24 24
#define R_R25 25
#define R_R26 26
#define R_R27 27
#define R_R28 28
#define R_R29 29
#define R_R30 30
#define R_R31 31
#define R_EPC 32
#define R_MDHI 33
#define R_MDLO 34
#define R_SR 35
#define R_CAUSE 36
#define NREGS 40
/*
* compiler defined bindings
*/
#define R_ZERO R_R0
#define R_AT R_R1
#define R_V0 R_R2
#define R_V1 R_R3
#define R_A0 R_R4
#define R_A1 R_R5
#define R_A2 R_R6
#define R_A3 R_R7
#define R_T0 R_R8
#define R_T1 R_R9
#define R_T2 R_R10
#define R_T3 R_R11
#define R_T4 R_R12
#define R_T5 R_R13
#define R_T6 R_R14
#define R_T7 R_R15
#define R_S0 R_R16
#define R_S1 R_R17
#define R_S2 R_R18
#define R_S3 R_R19
#define R_S4 R_R20
#define R_S5 R_R21
#define R_S6 R_R22
#define R_S7 R_R23
#define R_T8 R_R24
#define R_T9 R_R25
#define R_K0 R_R26
#define R_K1 R_R27
#define R_GP R_R28
#define R_SP R_R29
#define R_FP R_R30
#define R_RA R_R31
#endif

View file

@ -0,0 +1,23 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/*
* File:assert.h
*/
#ifndef _ASSERT_H
#define _ASSERT_H
# ifdef NDEBUG
# define _assert(x)
# define assert(x)
# else
# define _assert(x) {if (!(x)){printf("Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);exit(1);}}
# define assert(x) _assert(x)
# endif
#endif /* _ASSERT_H */

View file

@ -0,0 +1,23 @@
/*
* File:convert.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _CONVERT_H
#define _CONVERT_H
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern int atoi(const char *);
extern long atol(const char *);
extern long strtol(const char *,char**, int);
extern unsigned long strtoul(const char *, char **, int);
extern long labs(long);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif

View file

@ -0,0 +1,49 @@
/*
* File:ctype.h
* character handling macro definitions
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _CTYPE_H
#define _CTYPE_H
#define _U 0x01 /* upper case letter */
#define _L 0x02 /* lower case letter */
#define _N 0x04 /* digit */
#define _S 0x08 /* space, tab, newline, vertical tab, formfeed, or
carriage return */
#define _P 0x10 /* punctuation character */
#define _C 0x20 /* control character or delete */
#define _X 0x40 /* hexadecimal digit [0-9a-fA-F]*/
#define _B 0x80 /* blank (space) */
extern char _ctype_[];
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern char toupper(char);
extern char tolower(char);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#define isalpha(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L))
#define isupper(c) ((_ctype_+1)[(unsigned char)(c)]&_U)
#define islower(c) ((_ctype_+1)[(unsigned char)(c)]&_L)
#define isdigit(c) ((_ctype_+1)[(unsigned char)(c)]&_N)
#define isxdigit(c) ((_ctype_+1)[(unsigned char)(c)]&(_X|_N))
#define isspace(c) ((_ctype_+1)[(unsigned char)(c)]&_S)
#define ispunct(c) ((_ctype_+1)[(unsigned char)(c)]&_P)
#define isalnum(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L|_N))
#define isprint(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N|_B))
#define isgraph(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N))
#define iscntrl(c) ((_ctype_+1)[(unsigned char)(c)]&_C)
#define isascii(c) ((unsigned)(c)<=0x7f)
#define toascii(c) ((unsigned char)(c)&0x7f)
#define _toupper(c) ((unsigned char)(c)-'a'+'A')
#define _tolower(c) ((unsigned char)(c)-'A'+'a')
#endif /* _CTYPE_H */

103
tools/psyq/include/FS.H Normal file
View file

@ -0,0 +1,103 @@
/*
* File:fs.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _FS_H
#define _FS_H
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
/* device table */
struct device_table {
char *dt_string; /* device name */
int dt_type; /* device "type" */
int dt_bsize; /* file system type */
char *dt_desc; /* device description */
int (*dt_init)(); /* device init routine */
int (*dt_open)(); /* device open routine */
int (*dt_strategy)(); /* device strategy routine, returns cnt */
int (*dt_close)(); /* device close routine */
int (*dt_ioctl)(); /* device ioctl routine */
int (*dt_read)(); /* fs read routine, returns count */
int (*dt_write)(); /* fs write routine, return count */
int (*dt_delete)(); /* file delete routine */
int (*dt_undelete)(); /* file delete routine */
int (*dt_firstfile)(); /* directory serach routine */
int (*dt_nextfile)(); /* directory serach routine */
int (*dt_format)();
int (*dt_cd)();
int (*dt_rename)();
int (*dt_remove)();
int (*dt_else)();
};
#endif /* LANGUAGE_C */
/* device types */
#define DTTYPE_CHAR 0x1 /* character device */
#define DTTYPE_CONS 0x2 /* can be console */
#define DTTYPE_BLOCK 0x4 /* block device */
#define DTTYPE_RAW 0x8 /* raw device that uses fs switch */
#define DTTYPE_FS 0x10
/* character device flags */
#define DB_RAW 0x1 /* don't interpret special chars */
#define DB_STOPPED 0x2 /* stop output */
#define DB_BREAK 0x4 /* cntl-c raise console interrpt */
/* character device buffer */
#define CBUFSIZE 256
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
struct device_buf {
int db_flags; /* character device flags */
char *db_in; /* pts at next free char */
char *db_out; /* pts at next filled char */
char db_buf[CBUFSIZE]; /* circular buffer for input */
};
#endif /* LANGUAGE_C */
/* circular buffer functions */
#define CIRC_EMPTY(x) ((x)->db_in == (x)->db_out)
#define CIRC_FLUSH(x) ((x)->db_in = (x)->db_out = (x)->db_buf)
#define CIRC_STOPPED(x) ((x)->db_flags & DB_STOPPED)
/* io block */
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
struct iob {
int i_flgs;
int i_unit; /* pseudo device unit */
char *i_ma; /* memory address of i/o buffer */
unsigned int i_cc; /* character count of transfer */
unsigned long i_offset; /* seek offset in file */
int i_fstype; /* file system type */
int i_errno; /* error # return */
struct device_table *i_dp; /* pointer into device_table */
unsigned long i_size;
long i_head;
long i_fd; /* file descriptor */
};
#endif /* LANGUAGE_C */
#ifndef NULL
#define NULL 0
#endif
/* Request codes */
#define READ 1
#define WRITE 2
#define NIOB 16 /* max number of open files */
/*
extern int _nulldev();
extern int _nodev();
*/
#endif /* _FS_H */

358
tools/psyq/include/GTEMAC.H Normal file
View file

@ -0,0 +1,358 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/*
* GTE inline functions(Simple)
*/
#define gte_RotTransPers(r1,r2,r3,r4,r5) \
{ gte_ldv0(r1); \
gte_rtps(); \
gte_stsxy(r2); \
gte_stdp(r3); \
gte_stflg(r4); \
gte_stszotz(r5); }
#define gte_RotTransPers3(r1,r2,r3,r4,r5,r6,r7,r8,r9) \
{ gte_ldv3(r1,r2,r3); \
gte_rtpt(); \
gte_stsxy3(r4,r5,r6); \
gte_stdp(r7); \
gte_stflg(r8); \
gte_stszotz(r9); }
#define gte_RotTrans(r1,r2,r3) \
{ gte_ldv0(r1); \
gte_rt(); \
gte_stlvnl(r2); \
gte_stflg(r3); }
#define gte_LocalLight(r1,r2) \
{ gte_ldv0(r1); \
gte_ll(); \
gte_stlvl(r2); }
#define gte_LightColor(r1,r2) \
{ gte_ldlvl(r1); \
gte_lc(); \
gte_stlvl(r2); }
#define gte_DpqColorLight(r1,r2,r3,r4) \
{ gte_ldlvl(r1); \
gte_ldrgb(r2); \
gte_lddp(r3); \
gte_dpcl(); \
gte_strgb(r4); }
#define gte_DpqColor(r1,r2,r3) \
{ gte_ldrgb(r1); \
gte_lddp(r2); \
gte_dpcs(); \
gte_strgb(r3); }
#define gte_DpqColor3(r1,r2,r3,r4,r5,r6,r7) \
{ gte_ldrgb3(r1,r2,r3); \
gte_lddp(r4); \
gte_dpct(); \
gte_strgb3(r5,r6,r7); }
#define gte_Intpl(r1,r2,r3) \
{ gte_ldlvl(r1); \
gte_lddp(r2); \
gte_intpl(); \
gte_strgb(r3); }
#define gte_Square12(r1,r2) \
{ gte_ldlvl(r1); \
gte_sqr12(); \
gte_stlvnl(r2); }
#define gte_Square0(r1,r2) \
{ gte_ldlvl(r1); \
gte_sqr0(); \
gte_stlvnl(r2); }
#define gte_NormalColor(r1,r2) \
{ gte_ldv0(r1); \
gte_ncs(); \
gte_strgb(r2); }
#define gte_NormalColor3(r1,r2,r3,r4,r5,r6) \
{ gte_ldv3(r1,r2,r3); \
gte_nct(); \
gte_strgb3(r4,r5,r6); }
#define gte_NormalColorDpq(r1,r2,r3,r4) \
{ gte_ldv0(r1); \
gte_ldrgb(r2); \
gte_lddp(r3); \
gte_ncds(); \
gte_strgb(r4); }
#define gte_NormalColorDpq3(r1,r2,r3,r4,r5,r6,r7,r8) \
{ gte_ldv3(r1,r2,r3); \
gte_ldrgb(r4); \
gte_lddp(r5); \
gte_ncdt(); \
gte_strgb3(r6,r7,r8); }
#define gte_NormalColorCol(r1,r2,r3) \
{ gte_ldv0(r1); \
gte_ldrgb(r2); \
gte_nccs(); \
gte_strgb(r3); }
#define gte_NormalColorCol3(r1,r2,r3,r4,r5,r6,r7) \
{ gte_ldv3(r1,r2,r3); \
gte_ldrgb(r4); \
gte_ncct(); \
gte_strgb3(r5,r6,r7); }
#define gte_ColorDpq(r1,r2,r3,r4) \
{ gte_ldlvl(r1); \
gte_ldrgb(r2); \
gte_lddp(r3); \
gte_cdp(); \
gte_strgb(r4); }
#define gte_ColorCol(r1,r2,r3) \
{ gte_ldlvl(r1); \
gte_ldrgb(r2); \
gte_cc(); \
gte_strgb(r3); }
#define gte_NormalClip(r1,r2,r3,r4) \
{ gte_ldsxy3(r1,r2,r3); \
gte_nclip(); \
gte_stopz(r4); }
#define gte_AverageZ3(r1,r2,r3,r4) \
{ gte_ldsz3(r1,r2,r3); \
gte_avsz3(); \
gte_stotz(r4); }
#define gte_AverageZ4(r1,r2,r3,r4,r5) \
{ gte_ldsz4(r1,r2,r3,r4); \
gte_avsz4(); \
gte_stotz(r5); }
#define gte_OuterProduct12(r1,r2,r3) \
{ gte_ldopv1(r1); \
gte_ldopv2(r2); \
gte_op12(); \
gte_stlvnl(r3); }
#define gte_OuterProduct0(r1,r2,r3) \
{ gte_ldopv1(r1); \
gte_ldopv2(r2); \
gte_op0(); \
gte_stlvnl(r3); }
#define gte_OuterProduct12SVL(r1,r2,r3) \
{ gte_ldopv1SV(r1); \
gte_ldopv2SV(r2); \
gte_op12(); \
gte_stlvnl(r3); }
#define gte_OuterProduct0SVL(r1,r2,r3) \
{ gte_ldopv1SV(r1); \
gte_ldopv2SV(r2); \
gte_op0(); \
gte_stlvnl(r3); }
#define gte_OuterProduct12SV(r1,r2,r3) \
{ gte_ldopv1SV(r1); \
gte_ldopv2SV(r2); \
gte_op12(); \
gte_stsv(r3); }
#define gte_OuterProduct0SV(r1,r2,r3) \
{ gte_ldopv1SV(r1); \
gte_ldopv2SV(r2); \
gte_op0(); \
gte_stsv(r3); }
#define gte_Lzc(r1,r2) \
{ gte_ldlzc(r1); \
gte_nop(); \
gte_nop(); \
gte_stlzc(r2); }
/*
* GTE inline functions(Combination)
* 4 vertices functions can't be replaced by equivalent macros
* because they use OR of flags after rtpt & rtps
* Please write directry in your program.
*/
#define gte_RotAverage3(r1,r2,r3,r4,r5,r6,r7,r8,r9) \
{ gte_ldv3(r1,r2,r3); \
gte_rtpt(); \
gte_stsxy3(r4,r5,r6); \
gte_stdp(r7); \
gte_stflg(r8); \
gte_avsz3(); \
gte_stotz(r9); }
#define gte_RotNclip3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) \
{ gte_ldv3(r1,r2,r3); \
gte_rtpt(); \
gte_stflg(r9); \
gte_nclip(); \
gte_stopz(r10); \
gte_stsxy3(r4,r5,r6); \
gte_stdp(r7); \
gte_stszotz(r8); }
#define gte_RotAverageNclip3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) \
{ gte_ldv3(r1,r2,r3); \
gte_rtpt(); \
gte_stflg(r9); \
gte_nclip(); \
gte_stopz(r10); \
gte_stsxy3(r4,r5,r6); \
gte_stdp(r7); \
gte_avsz3(); \
gte_stotz(r8); }
#define gte_RotColorDpq(r1,r2,r3,r4,r5,r6,r7) \
{ gte_ldv0(r1); \
gte_rtps(); \
gte_stsxy(r4); \
gte_stflg(r6); \
gte_ldv0(r2); \
gte_ldrgb(r3); \
gte_ncds(); \
gte_strgb(r5); \
gte_stszotz(r7); }
#define gte_RotColorDpq3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15) \
{ gte_ldv3(r1,r2,r3); \
gte_rtpt(); \
gte_stsxy3(r8,r9,r10); \
gte_stflg(r14); \
gte_ldv3(r4,r5,r6); \
gte_ldrgb(r7); \
gte_ncdt(); \
gte_strgb3(r11,r12,r13);\
gte_stszotz(r15); }
#define gte_RotAverageNclipColorDpq3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16) \
{ gte_ldv3(r1,r2,r3); \
gte_rtpt(); \
gte_stflg(r15); \
gte_nclip(); \
gte_stopz(r16); \
gte_ldv3(r4,r5,r6); \
gte_ldrgb(r7); \
gte_ncdt(); \
gte_stsxy3(r8,r9,r10); \
gte_strgb3(r11,r12,r13);\
gte_avsz3(); \
gte_stotz(r14); }
#define gte_RotAverageNclipColorCol3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16) \
{ gte_ldv3(r1,r2,r3); \
gte_rtpt(); \
gte_stflg(r15); \
gte_nclip(); \
gte_stopz(r16); \
gte_ldv3(r4,r5,r6); \
gte_ldrgb(r7); \
gte_ncct(); \
gte_stsxy3(r8,r9,r10); \
gte_strgb3(r11,r12,r13);\
gte_avsz3(); \
gte_stotz(r14); }
#define gte_LoadAverage12(r1,r2,r3,r4,r5) \
{ gte_lddp(r3); \
gte_ldlvl(r1); \
gte_gpf12(); \
gte_lddp(r4); \
gte_ldlvl(r2); \
gte_gpl12(); \
gte_stlvl(r5); }
#define gte_LoadAverage0(r1,r2,r3,r4,r5) \
{ gte_lddp(r3); \
gte_ldlvl(r1); \
gte_gpf0(); \
gte_lddp(r4); \
gte_ldlvl(r2); \
gte_gpl0(); \
gte_stlvl(r5); }
#define gte_LoadAverageShort12(r1,r2,r3,r4,r5) \
{ gte_lddp(r3); \
gte_ldsv(r1); \
gte_gpf12(); \
gte_lddp(r4); \
gte_ldsv(r2); \
gte_gpl12(); \
gte_stsv(r5); }
#define gte_LoadAverageShort0(r1,r2,r3,r4,r5) \
{ gte_lddp(r3); \
gte_ldsv(r1); \
gte_gpf0(); \
gte_lddp(r4); \
gte_ldsv(r2); \
gte_gpl0(); \
gte_stsv(r5); }
#define gte_LoadAverageByte(r1,r2,r3,r4,r5) \
{ gte_lddp(r3); \
gte_ldbv(r1); \
gte_gpf12(); \
gte_lddp(r4); \
gte_ldbv(r2); \
gte_gpl12(); \
gte_stbv(r5); }
#define gte_LoadAverageCol(r1,r2,r3,r4,r5) \
{ gte_lddp(r3); \
gte_ldcv(r1); \
gte_gpf12(); \
gte_lddp(r4); \
gte_ldcv(r2); \
gte_gpl12(); \
gte_stcv(r5); }
/*
*
*/
#define gte_MulMatrix0(r1,r2,r3) \
{ gte_SetRotMatrix(r1); \
gte_ldclmv(r2); \
gte_rtir(); \
gte_stclmv(r3); \
gte_ldclmv((char*)r2+2);\
gte_rtir(); \
gte_stclmv((char*)r3+2);\
gte_ldclmv((char*)r2+4);\
gte_rtir(); \
gte_stclmv((char*)r3+4); }
#define gte_ApplyMatrix(r1,r2,r3) \
{ gte_SetRotMatrix(r1); \
gte_ldv0(r2); \
gte_rtv0(); \
gte_stlvnl(r3); }
#define gte_ApplyMatrixSV(r1,r2,r3) \
{ gte_SetRotMatrix(r1); \
gte_ldv0(r2); \
gte_rtv0(); \
gte_stsv(r3); }
#define gte_CompMatrix(r1,r2,r3) \
{ gte_MulMatrix0(r1,r2,r3);\
gte_SetTransMatrix(r1); \
gte_ldlv0((char*)r2+20);\
gte_rt(); \
gte_stlvnl((char*)r3+20); }
#define gte_ApplyRotMatrix(r1,r2) \
{ gte_ldv0(r1); \
gte_rtv0(); \
gte_stlvnl(r2); }

167
tools/psyq/include/GTENOM.H Normal file
View file

@ -0,0 +1,167 @@
;
; $PSLibId: Run-time Library Release 4.7$
;
;
; gtenom.h
; Copyright(C) 1995,1996,1997 Sony Computer Entertainment Inc.
; All rights reserved.
;
read_sz_fifo3 macro reg1,reg2,reg3
mfc2 reg1,r17
mfc2 reg2,r18
mfc2 reg3,r19
nop
endm
read_sz_fifo4 macro reg1,reg2,reg3,reg4
mfc2 reg1,r16
mfc2 reg2,r17
mfc2 reg3,r18
mfc2 reg4,r19
nop
endm
read_szx macro reg1
mfc2 reg1,r16
nop
endm
read_sz0 macro reg1
mfc2 reg1,r17
nop
endm
read_sz1 macro reg1
mfc2 reg1,r18
nop
endm
read_sz2 macro reg1
mfc2 reg1,r19
nop
endm
read_sxsy_fifo3 macro reg1,reg2,reg3
mfc2 reg1,r12
mfc2 reg2,r13
mfc2 reg3,r14
nop
endm
read_sxsy0 macro reg1
mfc2 reg1,r12
nop
endm
read_sxsy1 macro reg1
mfc2 reg1,r13
nop
endm
read_sxsy2 macro reg1
mfc2 reg1,r14
nop
endm
read_rgb_fifo macro reg1,reg2,reg3
mfc2 reg1,r20
mfc2 reg2,r21
mfc2 reg3,r22
nop
endm
read_rgb0 macro reg1
mfc2 reg1,r20
nop
endm
read_rgb1 macro reg1
mfc2 reg1,r21
nop
endm
read_rgb2 macro reg1
mfc2 reg1,r22
nop
endm
read_flag macro reg1
cfc2 reg1,r31
nop
endm
read_p macro reg1
mfc2 reg1,r8
nop
endm
read_otz macro reg1
mfc2 reg1,r7
nop
endm
read_opz macro reg1
mfc2 reg1,r24
nop
endm
read_mt macro reg1,reg2,reg3
mfc2 reg1,r25
mfc2 reg2,r26
mfc2 reg3,r27
nop
endm
store_sxsy_fifo3 macro reg1,reg2,reg3
swc2 r12,(reg1)
swc2 r13,(reg2)
swc2 r14,(reg3)
nop
endm
store_sxsy0 macro reg1
swc2 r12,(reg1)
nop
endm
store_sxsy1 macro reg1
swc2 r13,(reg1)
nop
endm
store_sxsy2 macro reg1
swc2 r14,(reg1)
nop
endm
store_rgb_fifo macro reg1,reg2,reg3
swc2 r20,(reg1)
swc2 r21,(reg2)
swc2 r22,(reg3)
nop
endm
store_rgb0 macro reg1
swc2 r20,(reg1)
nop
endm
store_rgb1 macro reg1
swc2 r21,(reg1)
nop
endm
store_rgb2 macro reg1
swc2 r22,(reg1)
nop
endm
set_trans_matrix macro reg1,reg2,reg3
ctc2 reg1,r5
ctc2 reg2,r6
ctc2 reg3,r7
nop
endm

View file

@ -0,0 +1,87 @@
;
; $PSLibId: Run-time Library Release 4.7$
;
;
; gtereg.h
; Copyright(C) 1995,1996,1997 Sony Computer Entertainment Inc.
; All rights reserved.
;
;
; GTE data registers
;
C2_VXY0 equs "r0"
C2_VZ0 equs "r1"
C2_VXY1 equs "r2"
C2_VZ1 equs "r3"
C2_VXY2 equs "r4"
C2_VZ2 equs "r5"
C2_RGB equs "r6"
C2_OTZ equs "r7"
C2_IR0 equs "r8"
C2_IR1 equs "r9"
C2_IR2 equs "r10"
C2_IR3 equs "r11"
C2_SXY0 equs "r12"
C2_SXY1 equs "r13"
C2_SXY2 equs "r14"
C2_SXYP equs "r15"
C2_SZ0 equs "r16"
C2_SZ1 equs "r17"
C2_SZ2 equs "r18"
C2_SZ3 equs "r19"
C2_RGB0 equs "r20"
C2_RGB1 equs "r21"
C2_RGB2 equs "r22"
C2_MAC0 equs "r24"
C2_MAC1 equs "r25"
C2_MAC2 equs "r26"
C2_MAC3 equs "r27"
C2_IRGB equs "r28"
C2_ORGB equs "r29"
C2_LZCS equs "r30"
C2_LZCR equs "r31"
;
; GTE control registers
;
C2_R11R12 equs "r0"
C2_R13R21 equs "r1"
C2_R22R23 equs "r2"
C2_R31R32 equs "r3"
C2_R33 equs "r4"
C2_TRX equs "r5"
C2_TRY equs "r6"
C2_TRZ equs "r7"
C2_L11L12 equs "r8"
C2_L13L21 equs "r9"
C2_L22L23 equs "r10"
C2_L31L32 equs "r11"
C2_L33 equs "r12"
C2_RBK equs "r13"
C2_GBK equs "r14"
C2_BBK equs "r15"
C2_LR1LR2 equs "r16"
C2_LR3LG1 equs "r17"
C2_LG2LG3 equs "r18"
C2_LB1LB2 equs "r19"
C2_LB3 equs "r20"
C2_RFC equs "r21"
C2_GFC equs "r22"
C2_BFC equs "r23"
C2_OFX equs "r24"
C2_OFY equs "r25"
C2_H equs "r26"
C2_DQA equs "r27"
C2_DQB equs "r28"
C2_ZSF3 equs "r29"
C2_ZSF4 equs "r30"
C2_FLAG equs "r31"

View file

@ -0,0 +1,87 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/*
* gtereg_s.h
* Copyright(C) 1998 Sony Computer Entertainment Inc.
* All rights reserved.
*/
/*
* GTE data registers
*/
#define C2_VXY0 R0
#define C2_VZ0 R1
#define C2_VXY1 R2
#define C2_VZ1 R3
#define C2_VXY2 R4
#define C2_VZ2 R5
#define C2_RGB R6
#define C2_OTZ R7
#define C2_IR0 R8
#define C2_IR1 R9
#define C2_IR2 R10
#define C2_IR3 R11
#define C2_SXY0 R12
#define C2_SXY1 R13
#define C2_SXY2 R14
#define C2_SXYP R15
#define C2_SZ0 R16
#define C2_SZ1 R17
#define C2_SZ2 R18
#define C2_SZ3 R19
#define C2_RGB0 R20
#define C2_RGB1 R21
#define C2_RGB2 R22
#define C2_MAC0 R24
#define C2_MAC1 R25
#define C2_MAC2 R26
#define C2_MAC3 R27
#define C2_IRGB R28
#define C2_ORGB R29
#define C2_LZCS R30
#define C2_LZCR R31
/*
* GTE control Registers
*/
#define C2_R11R12 R0
#define C2_R13R21 R1
#define C2_R22R23 R2
#define C2_R31R32 R3
#define C2_R33 R4
#define C2_TRX R5
#define C2_TRY R6
#define C2_TRZ R7
#define C2_L11L12 R8
#define C2_L13L21 R9
#define C2_L22L23 R10
#define C2_L31L32 R11
#define C2_L33 R12
#define C2_RBK R13
#define C2_GBK R14
#define C2_BBK R15
#define C2_LR1LR2 R16
#define C2_LR3LG1 R17
#define C2_LG2LG3 R18
#define C2_LB1LB2 R19
#define C2_LB3 R20
#define C2_RFC R21
#define C2_GFC R22
#define C2_BFC R23
#define C2_OFX R24
#define C2_OFY R25
#define C2_H R26
#define C2_DQA R27
#define C2_DQB R28
#define C2_ZSF3 R29
#define C2_ZSF4 R30
#define C2_FLAG R31

View file

@ -0,0 +1,233 @@
; $PSLibId: Run-time Library Release 4.7$
;
; Macro definitions of DMPSX version 3 for Assembler programs
; inline_a.h
; Copyright(C) 1996, Sony Computer Entertainment Inc.
; All rights reserved.
;
;
; GTE commands with 2 nops
;
nRTPS macro
nop
nop
dw $0000007f
endm
nRTPT macro
nop
nop
dw $000000bf
endm
nDCPL macro
nop
nop
dw $00000dff
endm
nDPCS macro
nop
nop
dw $00000e3f
endm
nDPCT macro
nop
nop
dw $00000e7f
endm
nINTPL macro
nop
nop
dw $00000ebf
endm
nNCS macro
nop
nop
dw $00000f7f
endm
nNCT macro
nop
nop
dw $00000fbf
endm
nNCDS macro
nop
nop
dw $00000fff
endm
nNCDT macro
nop
nop
dw $0000103f
endm
nNCCS macro
nop
nop
dw $0000107f
endm
nNCCT macro
nop
nop
dw $000010bf
endm
nCDP macro
nop
nop
dw $000010ff
endm
nCC macro
nop
nop
dw $0000113f
endm
nNCLIP macro
nop
nop
dw $0000117f
endm
nAVSZ3 macro
nop
nop
dw $000011bf
endm
nAVSZ4 macro
nop
nop
dw $000011ff
endm
nMVMVA macro sf,mx,v,cv,lm
nop
nop
dw $000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18
endm
nSQR macro sf
nop
nop
dw $000013ff|sf<<25
endm
nOP macro sf
nop
nop
dw $0000143f|sf<<25
endm
nGPF macro sf
nop
nop
dw $0000147f|sf<<25
endm
nGPL macro sf
nop
nop
dw $000014bf|sf<<25
endm
;
; GTE commands without nops
;
RTPS macro
dw $0000007f
endm
RTPT macro
dw $000000bf
endm
DCPL macro
dw $00000dff
endm
DPCS macro
dw $00000e3f
endm
DPCT macro
dw $00000e7f
endm
INTPL macro
dw $00000ebf
endm
NCS macro
dw $00000f7f
endm
NCT macro
dw $00000fbf
endm
NCDS macro
dw $00000fff
endm
NCDT macro
dw $0000103f
endm
NCCS macro
dw $0000107f
endm
NCCT macro
dw $000010bf
endm
CDP macro
dw $000010ff
endm
CC macro
dw $0000113f
endm
NCLIP macro
dw $0000117f
endm
AVSZ3 macro
dw $000011bf
endm
AVSZ4 macro
dw $000011ff
endm
MVMVA macro sf,mx,v,cv,lm
dw $000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18
endm
SQR macro sf
dw $000013ff|sf<<25
endm
OP macro sf
dw $0000143f|sf<<25
endm
GPF macro sf
dw $0000147f|sf<<25
endm
GPL macro sf
dw $000014bf|sf<<25
endm

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,194 @@
/* $PSLibId: Run-time Library Release 4.7$
*
* Macro definitions of DMPSX version 3 for Assembler(aspsx) programs
* inline_s.h
* Copyright(C) 1998 Sony Computer Entertainment Inc.
* All rights reserved.
*/
/*
* GTE commands with 2 nops
*/
#define nRTPS \
nop; \
nop; \
.word 0x0000007f
#define nRTPT \
nop; \
nop; \
.word 0x000000bf
#define nDCPL \
nop; \
nop; \
.word 0x00000dff
#define nDPCS \
nop; \
nop; \
.word 0x00000e3f
#define nDPCT \
nop; \
nop; \
.word 0x00000e7f
#define nINTPL \
nop; \
nop; \
.word 0x00000ebf
#define nNCS \
nop; \
nop; \
.word 0x00000f7f
#define nNCT \
nop; \
nop; \
.word 0x00000fbf
#define nNCDS \
nop; \
nop; \
.word 0x00000fff
#define nNCDT \
nop; \
nop; \
.word 0x0000103f
#define nNCCS \
nop; \
nop; \
.word 0x0000107f
#define nNCCT \
nop; \
nop; \
.word 0x000010bf
#define nCDP \
nop; \
nop; \
.word 0x000010ff
#define nCC \
nop; \
nop; \
.word 0x0000113f
#define nNCLIP \
nop; \
nop; \
.word 0x0000117f
#define nAVSZ3 \
nop; \
nop; \
.word 0x000011bf
#define nAVSZ4 \
nop; \
nop; \
.word 0x000011ff
#define nMVMVA(sf,mx,v,cv,lm) \
nop; \
nop; \
.word 0x000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18
#define nSQR(sf) \
nop; \
nop; \
.word 0x000013ff|sf<<25
#define nOP(sf) \
nop; \
nop; \
.word 0x0000143f|sf<<25
#define nGPF(sf) \
nop; \
nop; \
.word 0x0000147f|sf<<25
#define nGPL(sf) \
nop; \
nop; \
.word 0x000014bf|sf<<25
/*
* GTE commands without nops
*/
#define RTPS \
.word 0x0000007f
#define RTPT \
.word 0x000000bf
#define DCPL \
.word 0x00000dff
#define DPCS \
.word 0x00000e3f
#define DPCT \
.word 0x00000e7f
#define INTPL \
.word 0x00000ebf
#define NCS \
.word 0x00000f7f
#define NCT \
.word 0x00000fbf
#define NCDS \
.word 0x00000fff
#define NCDT \
.word 0x0000103f
#define NCCS \
.word 0x0000107f
#define NCCT \
.word 0x000010bf
#define CDP \
.word 0x000010ff
#define CC \
.word 0x0000113f
#define NCLIP \
.word 0x0000117f
#define AVSZ3 \
.word 0x000011bf
#define AVSZ4 \
.word 0x000011ff
#define MVMVA(sf,mx,v,cv,lm) \
.word 0x000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18
#define SQR(sf) \
.word 0x000013ff|sf<<25
#define OP(sf) \
.word 0x0000143f|sf<<25
#define GPF(sf) \
.word 0x0000147f|sf<<25
#define GPL(sf) \
.word 0x000014bf|sf<<25

171
tools/psyq/include/KERNEL.H Normal file
View file

@ -0,0 +1,171 @@
#ifndef _KERNEL_H
#define _KERNEL_H
/*
* File:kernel.h Rev. 3
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _R3000_H
#include <r3000.h>
#endif
#ifndef _ASM_H
#include <asm.h>
#endif
/* don't change these macros and structures which is refereced in kernel code */
#define DescMask 0xff000000
#define DescTH DescMask
#define DescHW 0xf0000000
#define DescEV 0xf1000000
#define DescRC 0xf2000000
#define DescUEV 0xf3000000 /* User event */
#define DescSW 0xf4000000 /* BIOS */
#define HwVBLANK (DescHW|0x01) /* VBLANK */
#define HwGPU (DescHW|0x02) /* GPU */
#define HwCdRom (DescHW|0x03) /* CDROM Decorder */
#define HwDMAC (DescHW|0x04) /* DMA controller */
#define HwRTC0 (DescHW|0x05) /* RTC0 */
#define HwRTC1 (DescHW|0x06) /* RTC1 */
#define HwRTC2 (DescHW|0x07) /* RTC2 */
#define HwCNTL (DescHW|0x08) /* Controller */
#define HwSPU (DescHW|0x09) /* SPU */
#define HwPIO (DescHW|0x0a) /* PIO */
#define HwSIO (DescHW|0x0b) /* SIO */
#define HwCPU (DescHW|0x10) /* Exception */
#define HwCARD (DescHW|0x11) /* memory card */
#define HwCARD_0 (DescHW|0x12) /* memory card */
#define HwCARD_1 (DescHW|0x13) /* memory card */
#define SwCARD (DescSW|0x01) /* memory card */
#define SwMATH (DescSW|0x02) /* libmath */
#define RCntCNT0 (DescRC|0x00) /* display pixel */
#define RCntCNT1 (DescRC|0x01) /* horizontal sync */
#define RCntCNT2 (DescRC|0x02) /* one-eighth of system clock */
#define RCntCNT3 (DescRC|0x03) /* vertical sync target value fixed to 1 */
#define RCntMdINTR 0x1000
#define RCntMdNOINTR 0x2000
#define RCntMdSC 0x0001
#define RCntMdSP 0x0000
#define RCntMdFR 0x0000
#define RCntMdGATE 0x0010
#define EvSpCZ 0x0001 /* counter becomes zero */
#define EvSpINT 0x0002 /* interrupted */
#define EvSpIOE 0x0004 /* end of i/o */
#define EvSpCLOSE 0x0008 /* file was closed */
#define EvSpACK 0x0010 /* command acknowledged */
#define EvSpCOMP 0x0020 /* command completed */
#define EvSpDR 0x0040 /* data ready */
#define EvSpDE 0x0080 /* data end */
#define EvSpTIMOUT 0x0100 /* time out */
#define EvSpUNKNOWN 0x0200 /* unknown command */
#define EvSpIOER 0x0400 /* end of read buffer */
#define EvSpIOEW 0x0800 /* end of write buffer */
#define EvSpTRAP 0x1000 /* general interrupt */
#define EvSpNEW 0x2000 /* new device */
#define EvSpSYSCALL 0x4000 /* system call instruction */
#define EvSpERROR 0x8000 /* error happned */
#define EvSpPERROR 0x8001 /* previous write error happned */
#define EvSpEDOM 0x0301 /* domain error in libmath */
#define EvSpERANGE 0x0302 /* range error in libmath */
#define EvMdINTR 0x1000
#define EvMdNOINTR 0x2000
#define EvStUNUSED 0x0000
#define EvStWAIT 0x1000
#define EvStACTIVE 0x2000
#define EvStALREADY 0x4000
#define TcbMdRT 0x1000 /* reserved by system */
#define TcbMdPRI 0x2000 /* reserved by system */
#define TcbStUNUSED 0x1000
#define TcbStACTIVE 0x4000
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
struct ToT {
unsigned long *head;
long size;
};
struct TCBH {
struct TCB *entry; /* NULL */
long flag;
};
struct TCB {
long status;
long mode;
unsigned long reg[NREGS]; /* never change the offset of this */
long system[6]; /* reserved by system */
};
struct EvCB {
unsigned long desc;
long status;
long spec;
long mode;
long (*FHandler)();
long system[2]; /* reserved by system */
};
struct EXEC {
unsigned long pc0;
unsigned long gp0;
unsigned long t_addr;
unsigned long t_size;
unsigned long d_addr;
unsigned long d_size;
unsigned long b_addr;
unsigned long b_size;
unsigned long s_addr;
unsigned long s_size;
unsigned long sp,fp,gp,ret,base;
};
struct XF_HDR {
char key[8];
unsigned long text;
unsigned long data;
struct EXEC exec;
char title[60]; /* "PlayStation(tm) Executable A1" */
};
struct DIRENTRY {
char name[20];
long attr;
long size;
struct DIRENTRY *next;
long head;
char system[4];
};
extern struct ToT SysToT[32];
extern long SysClearRCnt[];
#ifndef NULL
#define NULL (0)
#endif
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)
#define delete erase
#endif /* LANGUAGE_C */
#endif /* LANGUAGE_C||_LANGUAGE_C_PLUS_PLUS||__cplusplus||c_plusplus */
#endif /* _KERNEL_H */

134
tools/psyq/include/LIBAPI.H Normal file
View file

@ -0,0 +1,134 @@
#ifndef _LIBAPI_H_
#define _LIBAPI_H_
/*
* File:libapi.h
* Copyright (C) 1997 by Sony Computer Entertainment Inc.
* All rights Reserved
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _KERNEL_H
#include "kernel.h"
#endif
/* don't change these macros and structures which is referred in controler code */
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
/* prototypes added by suzu 96/03/01 and changed by hakama 96/06/06*/
extern long SetRCnt(unsigned long, unsigned short, long);
extern long GetRCnt(unsigned long);
extern long ResetRCnt(unsigned long);
extern long StartRCnt(unsigned long);
extern long StopRCnt(unsigned long);
extern long OpenEvent(unsigned long,long,long,long (*func)());
extern long CloseEvent(long);
extern long WaitEvent(long);
extern long TestEvent(long);
extern long EnableEvent(long);
extern long DisableEvent(long);
extern void DeliverEvent(unsigned long, unsigned long);
extern void UnDeliverEvent(unsigned long, unsigned long);
extern long OpenTh(long (*func)(), unsigned long , unsigned long);
extern int CloseTh(long);
extern int ChangeTh(long);
extern long open(char *, unsigned long);
extern long close(long);
extern long lseek(long, long, long);
extern long read(long, void *, long);
extern long write(long, void *, long);
extern long ioctl(long, long, long);
extern struct DIRENTRY * firstfile(char *, struct DIRENTRY *);
extern struct DIRENTRY * nextfile(struct DIRENTRY *);
extern long erase(char *);
extern long undelete(char *);
extern long format(char *);
extern long rename(char *, char *);
extern long cd(char *);
extern long LoadTest(char *, struct EXEC *);
extern long Load(char *, struct EXEC *);
extern long Exec(struct EXEC *, long, char **);
extern long LoadExec(char *, unsigned long, unsigned long);
extern long InitPAD(char *,long ,char *,long);
extern long StartPAD(void);
extern void StopPAD(void);
extern void EnablePAD(void);
extern void DisablePAD(void);
extern void FlushCache(void);
extern void ReturnFromException(void);
extern int EnterCriticalSection(void);
extern void ExitCriticalSection(void);
extern void Exception(void);
extern void SwEnterCriticalSection(void);
extern void SwExitCriticalSection(void);
extern unsigned long SetSp(unsigned long);
extern unsigned long GetSp( void );
extern unsigned long GetGp( void );
extern unsigned long GetCr( void );
extern unsigned long GetSr( void );
extern unsigned long GetSysSp(void);
extern long SetConf(unsigned long,unsigned long,unsigned long);
extern void GetConf(unsigned long *,unsigned long *,unsigned long *);
extern long _get_errno(void);
extern long _get_error(long);
extern void SystemError( char, long);
extern void SetMem(long);
extern long Krom2RawAdd( unsigned long );
extern long Krom2RawAdd2(unsigned short);
extern void _96_init(void);
extern void _96_remove(void);
extern void _boot(void);
extern void ChangeClearPAD( long );
/* prototypes added by shino 96/05/22 */
extern void InitCARD(long val);
extern long StartCARD(void);
extern long StopCARD(void);
extern void _bu_init(void);
extern long _card_info(long chan);
extern long _card_clear(long chan);
extern long _card_load(long chan);
extern long _card_auto(long val);
extern void _new_card(void);
extern long _card_status(long drv);
extern long _card_wait(long drv);
extern unsigned long _card_chan(void);
extern long _card_write(long chan, long block, unsigned char *buf);
extern long _card_read(long chan, long block, unsigned char *buf);
extern long _card_format(long chan); /* added by iwano 98/03/24 */
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBAPI_H_ */
/* don't add stuff after this */

326
tools/psyq/include/LIBCD.H Normal file
View file

@ -0,0 +1,326 @@
/* $PSLibId: Run-time Library Release 4.7$ */
#ifndef _LIBCD_H_
#define _LIBCD_H_
/*
* (C) Copyright 1993/1994 Sony Computer Entertainment ,Tokyo,Japan.
* All Rights Reserved
*
* libcd.h: CD-ROM sub system hendler
*
* CD-ROM Primitive Command list:
*
* Symbol type Contents
* ------------------------------------------------------
* CdlNop B NOP
* CdlSetloc B Set position
* CdlPlay B CD-DA Play
* CdlForward B Forward
* CdlBackward B Backward
* CdlReadN B Read with retry
* CdlStanby N Standby
* CdlStop N Stop
* CdlPause N Pause
* CdlMute B Mute on
* CdlDemute B Mute off
* CdlSetfilter B Set SubHeader filter
* CdlSetmode B Set mode
* CdlGetlocL B Get logical position
* CdlGetlocP B Get phisycal position
* CdlSeekL N Logical Seek
* CdlSeekP N Phisical Seek
* CdlReadS B Read without retry
* ------------------------------------------------------
* B: Blocking, N: Non-Blocking operation
*
*
* Symbol arg result
* --------------------------------------------------------------
* CdlNop - status
* CdlSetloc min,sec,sector status
* CdlPlay - status
* CdlForward - status
* CdlBackward - status
* CdlReadN - status
* CdlStanby - status
* CdlStop - status
* CdlPause - status
* CdlMute - status
* CdlDemute - status
* CdlSetfilter file,chan status
* CdlSetmode mode status
* CdlGetlocL - min,sec,sector,mode,file, chan
* CdlGetlocP - track,index,min,sec,frame,
* amin,asec,aframe
* CdlSeekL - status
* CdlSeekP - status
* CdlReadS - status
* --------------------------------------------------------------
*/
/*
* CD-ROM Basic System
*/
/*
* CD-ROM Mode (used int CdlSetmode)
*/
#define CdlModeStream 0x100 /* Normal Streaming */
#define CdlModeStream2 0x120 /* SUB HEADER information includes */
#define CdlModeSpeed 0x80 /* 0: normal speed 1: double speed */
#define CdlModeRT 0x40 /* 0: ADPCM off 1: ADPCM on */
#define CdlModeSize1 0x20 /* 0: 2048 byte 1: 2340byte */
#define CdlModeSize0 0x10 /* 0: - 1: 2328byte */
#define CdlModeSF 0x08 /* 0: Channel off 1: Channel on */
#define CdlModeRept 0x04 /* 0: Report off 1: Report on */
#define CdlModeAP 0x02 /* 0: AutoPause off 1: AutoPause on */
#define CdlModeDA 0x01 /* 0: CD-DA off 1: CD-DA on */
/*
* Status Contents
*/
#define CdlStatPlay 0x80 /* playing CD-DA */
#define CdlStatSeek 0x40 /* seeking */
#define CdlStatRead 0x20 /* reading data sectors */
#define CdlStatShellOpen 0x10 /* once shell open */
#define CdlStatSeekError 0x04 /* seek error detected */
#define CdlStatStandby 0x02 /* spindle motor rotating */
#define CdlStatError 0x01 /* command error detected */
/*
* Macros for CdGetDiskType()
*/
#define CdlStatNoDisk 0
#define CdlOtherFormat 1
#define CdlCdromFormat 2
/*
* CD-ROM Primitive Commands
*/
#define CdlNop 0x01
#define CdlSetloc 0x02
#define CdlPlay 0x03
#define CdlForward 0x04
#define CdlBackward 0x05
#define CdlReadN 0x06
#define CdlStandby 0x07
#define CdlStop 0x08
#define CdlPause 0x09
#define CdlMute 0x0b
#define CdlDemute 0x0c
#define CdlSetfilter 0x0d
#define CdlSetmode 0x0e
#define CdlGetparam 0x0f
#define CdlGetlocL 0x10
#define CdlGetlocP 0x11
#define CdlGetTN 0x13
#define CdlGetTD 0x14
#define CdlSeekL 0x15
#define CdlSeekP 0x16
#define CdlReadS 0x1B
/*
* Interrupts
*/
#define CdlNoIntr 0x00 /* No interrupt */
#define CdlDataReady 0x01 /* Data Ready */
#define CdlComplete 0x02 /* Command Complete */
#define CdlAcknowledge 0x03 /* Acknowledge (reserved) */
#define CdlDataEnd 0x04 /* End of Data Detected */
#define CdlDiskError 0x05 /* Error Detected */
/*
* Library Macros
*/
#ifndef btoi
#define btoi(b) ((b)/16*10 + (b)%16) /* BCD to u_char */
#endif
#ifndef itob
#define itob(i) ((i)/10*16 + (i)%10) /* u_char to BCD */
#endif
#define CdSeekL(p) CdControl(CdlSeekL, (u_char *)p, 0)
#define CdSeekP(p) CdControl(CdlSeekP, (u_char *)p, 0)
#define CdStandby() CdControl(CdlStandby, 0, 0)
#define CdPause() CdControl(CdlPause, 0, 0)
#define CdStop() CdControl(CdlStop, 0, 0)
#define CdMute() CdControl(CdlMute, 0, 0)
#define CdDeMute() CdControl(CdlDemute, 0, 0)
#define CdForward() CdControl(CdlForward, 0, 0)
#define CdBackward() CdControl(CdlBackward, 0, 0)
/*
* Position
*/
#define CdlMAXTOC 100
/*
* Callback
*/
typedef void (*CdlCB)(u_char,u_char *);
/*
* Location
*/
typedef struct {
u_char minute; /* minute (BCD) */
u_char second; /* second (BCD) */
u_char sector; /* sector (BCD) */
u_char track; /* track (void) */
} CdlLOC;
/*
* ADPCM Filter
*/
typedef struct {
u_char file; /* file ID (always 1) */
u_char chan; /* channel ID */
u_short pad;
} CdlFILTER;
/*
* Attenuator
*/
typedef struct {
u_char val0; /* volume for CD(L) -> SPU (L) */
u_char val1; /* volume for CD(L) -> SPU (R) */
u_char val2; /* volume for CD(R) -> SPU (L) */
u_char val3; /* volume for CD(R) -> SPU (R) */
} CdlATV;
/*
* Low Level File System for CdSearchFile()
*/
#define CdlMAXFILE 64 /* max number of files in a directory */
#define CdlMAXDIR 128 /* max number of total directories */
#define CdlMAXLEVEL 8 /* max levels of directories */
typedef struct {
CdlLOC pos; /* file location */
u_long size; /* file size */
char name[16]; /* file name (body) */
} CdlFILE;
/*#define MULTI_INTERRUPT */
#ifndef MULTI_INTERRUPT
#define pauseMULI()
#define restartMULI()
#endif
#ifndef _LIBDS_H_
/*
* Streaming Structures
*/
typedef struct {
u_short id;
u_short type;
u_short secCount;
u_short nSectors;
u_long frameCount;
u_long frameSize;
u_short width;
u_short height;
u_long dummy1;
u_long dummy2;
CdlLOC loc;
} StHEADER; /* CD-ROM STR structure */
#define StFREE 0x0000
#define StREWIND 0x0001
#define StCOMPLETE 0x0002
#define StBUSY 0x0003
#define StLOCK 0x0004
#define EDC 0
#define SECTOR_SIZE (512) /* Sector Size (word) */
#define HEADER_SIZE (8) /* Header Size (word) */
#define StSTATUS 0x00
#define StVER 0x00
#define StTYPE 0x01
#define StSECTOR_OFFSET 0x02
#define StSECTOR_SIZE 0x03
#define StFRAME_NO 0x04
#define StFRAME_SIZE 0x06
#define StMOVIE_WIDTH 0x08
#define StMOVIE_HEIGHT 0x09
/*
* Prototypes for Streaming
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
void StSetRing(u_long *ring_addr,u_long ring_size);
void StClearRing(void);
void StUnSetRing(void);
void StSetStream(u_long mode,u_long start_frame,u_long end_frame,
void (*func1)(),void (*func2)());
void StSetEmulate(u_long *addr,u_long mode,u_long start_frame,
u_long end_frame,void (*func1)(),void (*func2)());
u_long StFreeRing(u_long *base);
u_long StGetNext(u_long **addr,u_long **header);
u_long StGetNextS(u_long **addr,u_long **header);
u_short StNextStatus(u_long **addr,u_long **header);
void StRingStatus(short *free_sectors,short *over_sectors);
void StSetMask(u_long mask,u_long start,u_long end);
void StCdInterrupt(void);
int StGetBackloc(CdlLOC *loc);
int StSetChannel(u_long channel);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* ifndef _LIBDS_H_ */
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
void CdFlush(void);
CdlFILE *CdSearchFile(CdlFILE *fp, char *name);
CdlLOC *CdIntToPos(int i, CdlLOC *p) ;
char *CdComstr(u_char com);
char *CdIntstr(u_char intr);
int CdControl(u_char com, u_char *param, u_char *result);
int CdControlB(u_char com, u_char *param, u_char *result);
int CdControlF(u_char com, u_char *param);
int CdGetSector(void *madr, int size);
int CdGetSector2( void* madr, int size );
int CdDataSync(int mode);
int CdGetToc(CdlLOC *loc) ;
int CdPlay(int mode, int *track, int offset);
int CdMix(CdlATV *vol);
int CdPosToInt(CdlLOC *p);
int CdRead(int sectors, u_long *buf, int mode);
int CdRead2(long mode);
int CdReadFile(char *file, u_long *addr, int nbyte);
int CdReadSync(int mode, u_char *result);
int CdReady(int mode, u_char *result) ;
int CdSetDebug(int level);
int CdSync(int mode, u_char *result) ;
void (*CdDataCallback(void (*func)()));
CdlCB CdReadCallback(CdlCB func);
CdlCB CdReadyCallback(CdlCB func);
CdlCB CdSyncCallback(CdlCB func);
int CdInit(void);
int CdReset(int mode);
int CdStatus(void);
int CdLastCom(void);
CdlLOC *CdLastPos(void);
int CdMode(void);
int CdDiskReady( int mode );
int CdGetDiskType( void );
struct EXEC *CdReadExec(char *file);
void CdReadBreak( void );
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBCD_H_ */

View file

@ -0,0 +1,67 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/*
* File:libcomb.h
*/
#ifndef _LIBCOMB_H_
#define _LIBCOMB_H_
/* Status bits */
#define COMB_CTS 0x100
#define COMB_DSR 0x80
#define COMB_FE 0x20
#define COMB_OE 0x10
#define COMB_PERROR 0x8
#define COMB_TXU 0x4
#define COMB_RXRDY 0x2
#define COMB_TXRDY 0x1
/* Control bits */
#define COMB_BIT_DTR 0x1
#define COMB_BIT_RTS 0x2
/* Macros */
#define CombSioStatus() _comb_control(0,0,0) /* Return serial controller status */
#define CombControlStatus() _comb_control(0,1,0) /* Return control line status */
#define CombGetMode() _comb_control(0,2,0) /* Return communication mode */
#define CombGetBPS() _comb_control(0,3,0) /* Return transfer rate */
#define CombGetPacketSize() _comb_control(0,4,0) /* Return current packet size */
#define CombBytesToWrite() _comb_control(0,5,0) /* Return # bytes remaining in write buffer */
#define CombBytesToRead() _comb_control(0,5,1) /* Return # bytes remaining to be read */
#define CombBytesRemaining(a) _comb_control(0,5,a) /* Return # bytes remaining to read or write */
#define CombAsyncRequest(a) _comb_control(0,6,a) /* Return async read/write request */
#define CombSetControl(a) _comb_control(1,1,a) /* Set the control line status */
#define CombSetMode(a) _comb_control(1,2,a) /* Sets communications mode */
#define CombSetBPS(a) _comb_control(1,3,a) /* Sets the transfer rate */
#define CombSetPacketSize(a) _comb_control(1,4,a) /* Sets the packet size */
#define CombReset() _comb_control(2,0,0) /* Reset serial controller */
#define CombResetError() _comb_control(2,1,0) /* Reset error bits */
#define CombCancelWrite() _comb_control(2,2,0) /* Cancel async write request */
#define CombCancelRead() _comb_control(2,3,0) /* Cancel async read request */
#define CombSetRTS(a) _comb_control(3,0,a) /* Set RTS to 'a' */
#define CombCTS() _comb_control(3,1,0) /* Return status of CTS */
#define CombWaitCallback(a) _comb_control(4,0,a) /* Install wait callback function */
#define CombResetVBLANK() _comb_control(5,0,0) /* Restart VBLANK signal */
/* Prototypes */
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern void AddCOMB(void);
extern void DelCOMB(void);
extern void ChangeClearSIO(long);
extern long _comb_control(unsigned long,unsigned long,unsigned long);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /*_LIBCOMB_H_*/

286
tools/psyq/include/LIBDS.H Normal file
View file

@ -0,0 +1,286 @@
/* $PSLibId: Run-time Library Release 4.7$ */
/*
* libds.h
* Copyright(C) 1996 1997, Sony Computer Entertainment Inc.
* All Rights Reserved.
*/
#ifndef _LIBDS_H_
#define _LIBDS_H_
#include <kernel.h>
/*
* CD-ROM Mode (used int CdlSetmode)
*/
#define DslModeStream 0x100 /* Normal Streaming */
#define DslModeStream2 0x120 /* SUB HEADER information includes */
#define DslModeSpeed 0x80 /* 0: normal speed 1: double speed */
#define DslModeRT 0x40 /* 0: ADPCM off 1: ADPCM on */
#define DslModeSize1 0x20 /* 0: 2048 byte 1: 2340byte */
#define DslModeSize0 0x10 /* 0: - 1: 2328byte */
#define DslModeSF 0x08 /* 0: Channel off 1: Channel on */
#define DslModeRept 0x04 /* 0: Report off 1: Report on */
#define DslModeAP 0x02 /* 0: AutoPause off 1: AutoPause on */
#define DslModeDA 0x01 /* 0: CD-DA off 1: CD-DA on */
/*
* Status contents
*/
#define DslStatPlay 0x80 /* playing CD-DA */
#define DslStatSeek 0x40 /* seeking */
#define DslStatRead 0x20 /* reading data sectors */
#define DslStatShellOpen 0x10 /* once shell open */
#define DslStatSeekError 0x04 /* seek error detected */
#define DslStatStandby 0x02 /* spindle motor rotating */
#define DslStatError 0x01 /* command error detected */
/*
* Macros for DsGetDiskType()
*/
#define DslStatNoDisk 0x01
#define DslOtherFormat 0x02
#define DslCdromFormat 0x04
/*
* CD-ROM Primitive Commands
*/
#define DslNop 0x01 /* no operation */
#define DslSetloc 0x02 /* set head position */
#define DslPlay 0x03 /* play CD-DA */
#define DslForward 0x04 /* forward DA play */
#define DslBackward 0x05 /* backward DA play */
#define DslReadN 0x06 /* read data with retry */
#define DslStandby 0x07 /* start spindle motor */
#define DslStop 0x08 /* stop spindle motor */
#define DslPause 0x09 /* pause */
#define DslMute 0x0b /* mute on */
#define DslDemute 0x0c /* mute off */
#define DslSetfilter 0x0d /* set subheader filter */
#define DslSetmode 0x0e /* set mode */
#define DslGetparam 0x0f /* get mode */
#define DslGetlocL 0x10 /* get head position (data sector) */
#define DslGetlocP 0x11 /* get head position (DA sector) */
#define DslGetTN 0x13 /* get number of TOC */
#define DslGetTD 0x14 /* get TOC data */
#define DslSeekL 0x15 /* logical seek */
#define DslSeekP 0x16 /* phisical seek */
#define DslReadS 0x1B /* read data without retry */
/*
* Interrupts
*/
#define DslNoIntr 0x00 /* No interrupt */
#define DslDataReady 0x01 /* Data Ready */
#define DslComplete 0x02 /* Command Complete */
#define DslAcknowledge 0x03 /* Acknowledge (reserved) */
#define DslDataEnd 0x04 /* End of Data Detected */
#define DslDiskError 0x05 /* Error Detected */
#define DslNoResult 0x06
#define DslFinished 0x07
#ifndef btoi
#define btoi( b ) ( ( b ) / 16 * 10 + ( b ) % 16 )
#endif
#ifndef itob
#define itob( i ) ( ( i ) / 10 * 16 + ( i ) % 10 )
#endif
/*
* Position
*/
#define DslMAXTOC 100
/*
* Callback
*/
typedef void ( *DslCB )( u_char, u_char* );
typedef void ( *DslRCB )( u_char, u_char*, u_long* );
/*
* Location
*/
typedef struct {
u_char minute; /* minute (BCD) */
u_char second; /* second (BCD) */
u_char sector; /* sector (BCD) */
u_char track; /* track (void) */
} DslLOC;
/*
* ADPCM Filter
*/
typedef struct {
u_char file; /* file ID (always 1) */
u_char chan; /* channel ID */
u_short pad;
} DslFILTER;
/*
* Attenuator
*/
typedef struct {
u_char val0; /* volume for CD(L) -> SPU (L) */
u_char val1; /* volume for CD(L) -> SPU (R) */
u_char val2; /* volume for CD(R) -> SPU (L) */
u_char val3; /* volume for CD(R) -> SPU (R) */
} DslATV;
/*
* Low Level File System for DsSearchFile()
*/
#define DslMAXFILE 64 /* max number of files in a directory */
#define DslMAXDIR 128 /* max number of total directories */
#define DslMAXLEVEL 8 /* max levels of directories */
typedef struct {
DslLOC pos; /* file location */
u_long size; /* file size */
char name[ 16 ]; /* file name (body) */
} DslFILE;
#ifndef _LIBCD_H_
/*
* Streaming Structures
*/
typedef struct {
u_short id;
u_short type;
u_short secCount;
u_short nSectors;
u_long frameCount;
u_long frameSize;
u_short width;
u_short height;
u_long dummy1;
u_long dummy2;
DslLOC loc;
} StHEADER; /* CD-ROM STR structure */
#define StFREE 0x0000
#define StREWIND 0x0001
#define StCOMPLETE 0x0002
#define StBUSY 0x0003
#define StLOCK 0x0004
#define EDC 0
#define SECTOR_SIZE ( 512 ) /* Sector Size (word) */
#define HEADER_SIZE ( 8 ) /* Header Size (word) */
#define StSTATUS 0x00
#define StVER 0x00
#define StTYPE 0x01
#define StSECTOR_OFFSET 0x02
#define StSECTOR_SIZE 0x03
#define StFRAME_NO 0x04
#define StFRAME_SIZE 0x06
#define StMOVIE_WIDTH 0x08
#define StMOVIE_HEIGHT 0x09
/*
* streaming library prototype declarations */
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
void StSetRing( u_long* ring_addr, u_long ring_size );
void StClearRing( void );
void StUnSetRing( void );
void StSetStream( u_long mode, u_long start_frame, u_long end_frame,
void ( *func1 )(), void ( *func2 )() );
void StSetEmulate( u_long* addr, u_long mode, u_long start_frame,
u_long end_frame, void ( *func1 )(), void ( *func2 )() );
u_long StFreeRing( u_long* base );
u_long StGetNext( u_long** addr, u_long** header );
u_long StGetNextS( u_long** addr, u_long** header );
u_short StNextStatus( u_long** addr, u_long** header );
void StRingStatus( short* free_sectors, short* over_sectors );
void StSetMask( u_long mask, u_long start, u_long end );
void StCdInterrupt( void );
int StGetBackloc( DslLOC* loc );
int StSetChannel( u_long channel );
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBCD_H_ */
/* **** system status **** */
#define DslReady 1
#define DslBusy 2
#define DslNoCD 3
/* **** maximum number of commands that can be added to the queue **** */
#define DslMaxCOMMANDS 8
/***** maximum number of command execution results **** */
#define DslMaxRESULTS 8
/***** DS function prototype **** */
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
int DsInit( void );
int DsReset( void );
void DsClose( void );
int DsCommand( u_char com, u_char* param, DslCB cbsync, int count );
int DsPacket( u_char mode, DslLOC* pos, u_char com, DslCB func, int count );
DslCB DsSyncCallback( DslCB func );
DslCB DsReadyCallback( DslCB func );
int DsSync( int id, u_char* result );
int DsReady( u_char* result );
void DsFlush( void );
int DsSystemStatus( void );
int DsQueueLen( void );
u_char DsStatus( void );
int DsShellOpen( void );
int DsMix( DslATV* vol );
int DsGetSector( void* madr, int size );
int DsGetSector2( void* madr, int size );
int DsGetToc( DslLOC* loc );
void ( *DsDataCallback( void ( *func )() ) );
int DsDataSync( int mode );
DslLOC* DsIntToPos( int i, DslLOC* p );
int DsPosToInt( DslLOC* p );
int DsSetDebug( int level );
DslLOC* DsLastPos( DslLOC* p );
u_char DsLastCom( void );
char* DsComstr( u_char com );
char* DsIntstr( u_char intr );
int DsStartReadySystem( DslRCB func, int count );
void DsEndReadySystem( void );
int DsReadySystemMode( int mode );
int DsControlF( u_char com, u_char* param );
int DsControl( u_char com, u_char* param, u_char* result );
int DsControlB( u_char com, u_char* param, u_char* result );
int DsRead( DslLOC* pos, int sectors, u_long* buf, int mode );
int DsReadSync( u_char* result );
DslCB DsReadCallback( DslCB func );
void DsReadBreak( void );
int DsRead2( DslLOC* pos, int mode );
DslFILE* DsSearchFile( DslFILE* fp, char* name );
int DsReadFile( char* file, u_long* addr, int nbyte );
struct EXEC* DsReadExec( char* file );
int DsPlay( int mode, int* tracks, int offset );
int DsGetDiskType( void );
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBDS_H_ */

View file

@ -0,0 +1,81 @@
/* $PSLibId: Run-time Library Release 4.7$ */
#ifndef _LIBETC_H_
#define _LIBETC_H_
/*
* (C) Copyright 1993/1994 Sony Corporation,Tokyo,Japan. All Rights Reserved
*
* libetc.h: Pad Interface
*/
extern int PadIdentifier;
/*
* PAD I/O (SIO Pad)
*/
#define PADLup (1<<12)
#define PADLdown (1<<14)
#define PADLleft (1<<15)
#define PADLright (1<<13)
#define PADRup (1<< 4)
#define PADRdown (1<< 6)
#define PADRleft (1<< 7)
#define PADRright (1<< 5)
#define PADi (1<< 9)
#define PADj (1<<10)
#define PADk (1<< 8)
#define PADl (1<< 3)
#define PADm (1<< 1)
#define PADn (1<< 2)
#define PADo (1<< 0)
#define PADh (1<<11)
#define PADL1 PADn
#define PADL2 PADo
#define PADR1 PADl
#define PADR2 PADm
#define PADstart PADh
#define PADselect PADk
#define MOUSEleft (1<<3)
#define MOUSEright (1<<2)
/*
* PAD utility macro: _PAD(x,y)
* x: controller ID (0 or 1)
* y: PAD assign macro
*
* Example: _PAD(0,PADstart) ... PADstart of controller 1
* _PAD(1,PADLup) ... PADLup of controller 2
*/
#define _PAD(x,y) ((y)<<((x)<<4))
/* scratch pad address 0x1f800000 - 0x1f800400 */
#define getScratchAddr(offset) ((u_long *)(0x1f800000+(offset)*4))
/*
* Video Mode: NTSC/PAL
*/
#define MODE_NTSC 0
#define MODE_PAL 1
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
int CheckCallback(void) ;
void PadInit(int mode);
int ResetCallback(void) ;
int RestartCallback(void) ;
int StopCallback(void) ;
int VSync(int mode);
int VSyncCallback(void (*f)(void)) ;
long GetVideoMode (void);
long SetVideoMode (long mode);
u_long PadRead(int id);
void PadStop(void);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBETC_H_ */

824
tools/psyq/include/LIBGPU.H Normal file
View file

@ -0,0 +1,824 @@
/* $PSLibId: Run-time Library Release 4.7$ */
#ifndef _LIBGPU_H_
#define _LIBGPU_H_
/*
* (C) Copyright 1993-1995 Sony Corporation,Tokyo,Japan. All Rights Reserved
*
* libgpu.h: Graphic Primitive Structures Database
*
* Primitive list:
*
* Name |Size*1|Shade |Vertex |Texture| Function
* ---------+------+-------+-------+-------+------------------------
* POLY_F3 | 5 |Flat | 3 |OFF | Flat Triangle
* POLY_FT3 | 8 |Flat | 3 |ON | Flat Textured Triangle
* POLY_G3 | 7 |Gouraud| 3 |OFF | Gouraud Triangle
* POLY_GT3 |10 |Gouraud| 3 |ON | Gouraud Textured Triangle
* POLY_F4 | 6 |Flat | 4 |OFF | Flat Quadrangle
* POLY_FT4 |10 |Flat | 4 |ON | Flat Textured Quadrangle
* POLY_G4 | 9 |Gouraud| 4 |OFF | Gouraud Quadrangle
* POLY_GT4 |13 |Gouraud| 4 |ON | Gouraud Textured Quadrangle
* ---------+------+-------+-------+-------+------------------------
* LINE_F2 | 4 |Flat | 2 | - | unconnected Flat Line
* LINE_G2 | 5 |Gouraud| 2 | - | unconnected Gouraud Line
* LINE_F3 | 6 |Flat | 3 | - | 3-connected Flat Line
* LINE_G3 | 8 |Gouraud| 3 | - | 3-connected Gouraud Line
* LINE_F4 | 7 |Flat | 4 | - | 4-connected Flat Line
* LINE_G4 |10 |Gouraud| 4 | - | 4-connected Gouraud Line
* ---------+------+-------+-------+-------+------------------------
* SPRT | 5 |Flat | 1 |ON | free size Sprite
* SPRT_16 | 4 |Flat | 1 |ON | 16x16 Sprite
* SPRT_8 | 4 |Flat | 1 |ON | 8x8 Sprite
* ---------+------+-------+-------+-------+------------------------
* TILE | 4 |Flat | 1 |OFF | free size Sprite
* TILE_16 | 3 |Flat | 1 |OFF | 16x16 Sprite
* TILE_8 | 3 |Flat | 1 |OFF | 8x8 Sprite
* TILE_1 | 3 |Flat | 1 |OFF | 1x1 Sprite
* ---------+------+-------+-------+-------+------------------------
* DR_TWIN | 3 | - | - | - | Texture Window
* DR_AREA | 3 | - | - | - | Drawing Area
* DR_OFFSET| 3 | - | - | - | Drawing Offset
* DR_MODE | 3 | - | - | - | Drawing Mode
* DR_ENV |16 | - | - | - | Drawing Environment
* DR_MOVE | 6 | - | - | - | MoveImage
* DR_LOAD |17 | - | - | - | LoadImage
* DR_TPAGE | 2 | - | - | - | Drawing TPage
* DR_STP | 3 | - | - | - | Drawing STP
*
* *1: in long-word
*
* Texture Attributes:
* abr: ambient rate
* abr 0 1 2 3
* -------------------------------------
* Front 0.5 1.0 0.5 -1.0
* Back 0.5 1.0 1.0 1.0
*
* tp: texture mode
* tp 0 1 2
* -----------------------------
* depth 4bit 8bit 16bit
* color CLUT CLUT DIRECT
*/
/*
* Externals
*/
extern int (*GPU_printf)(char *fmt, ...); /* printf() object */
/*
* Time-out Cycle
*/
#define WAIT_TIME 0x800000
/*
* General Macros
*/
#define limitRange(x, l, h) ((x)=((x)<(l)?(l):(x)>(h)?(h):(x)))
/*
* Set/Add Vector/Rectangle Attributes
*/
#define setVector(v, _x, _y, _z) \
(v)->vx = _x, (v)->vy = _y, (v)->vz = _z
#define applyVector(v, _x, _y, _z, op) \
(v)->vx op _x, (v)->vy op _y, (v)->vz op _z
#define copyVector(v0, v1) \
(v0)->vx = (v1)->vx, (v0)->vy = (v1)->vy, (v0)->vz = (v1)->vz
#define addVector(v0, v1) \
(v0)->vx += (v1)->vx, \
(v0)->vy += (v1)->vy, \
(v0)->vz += (v1)->vz
#define dumpVector(str, v) \
GPU_printf("%s=(%d,%d,%d)\n", str, (v)->vx, (v)->vy, (v)->vz)
#define dumpMatrix(x) \
GPU_printf("\t%5d,%5d,%5d\n",(x)->m[0][0],(x)->m[0][1],(x)->m[0][2]),\
GPU_printf("\t%5d,%5d,%5d\n",(x)->m[1][0],(x)->m[1][1],(x)->m[1][2]),\
GPU_printf("\t%5d,%5d,%5d\n",(x)->m[2][0],(x)->m[2][1],(x)->m[2][2])
#define setRECT(r, _x, _y, _w, _h) \
(r)->x = (_x),(r)->y = (_y),(r)->w = (_w),(r)->h = (_h)
/*
* Set Primitive Attributes
*/
#define setTPage(p,tp,abr,x,y) \
((p)->tpage = getTPage(tp,abr,x,y))
#define setClut(p,x,y) \
((p)->clut = getClut(x,y))
/*
* Set Primitive Colors
*/
#define setRGB0(p,_r0,_g0,_b0) \
(p)->r0 = _r0,(p)->g0 = _g0,(p)->b0 = _b0
#define setRGB1(p,_r1,_g1,_b1) \
(p)->r1 = _r1,(p)->g1 = _g1,(p)->b1 = _b1
#define setRGB2(p,_r2,_g2,_b2) \
(p)->r2 = _r2,(p)->g2 = _g2,(p)->b2 = _b2
#define setRGB3(p,_r3,_g3,_b3) \
(p)->r3 = _r3,(p)->g3 = _g3,(p)->b3 = _b3
/*
* Set Primitive Screen Points
*/
#define setXY0(p,_x0,_y0) \
(p)->x0 = (_x0), (p)->y0 = (_y0) \
#define setXY2(p,_x0,_y0,_x1,_y1) \
(p)->x0 = (_x0), (p)->y0 = (_y0), \
(p)->x1 = (_x1), (p)->y1 = (_y1)
#define setXY3(p,_x0,_y0,_x1,_y1,_x2,_y2) \
(p)->x0 = (_x0), (p)->y0 = (_y0), \
(p)->x1 = (_x1), (p)->y1 = (_y1), \
(p)->x2 = (_x2), (p)->y2 = (_y2)
#define setXY4(p,_x0,_y0,_x1,_y1,_x2,_y2,_x3,_y3) \
(p)->x0 = (_x0), (p)->y0 = (_y0), \
(p)->x1 = (_x1), (p)->y1 = (_y1), \
(p)->x2 = (_x2), (p)->y2 = (_y2), \
(p)->x3 = (_x3), (p)->y3 = (_y3)
#define setXYWH(p,_x0,_y0,_w,_h) \
(p)->x0 = (_x0), (p)->y0 = (_y0), \
(p)->x1 = (_x0)+(_w), (p)->y1 = (_y0), \
(p)->x2 = (_x0), (p)->y2 = (_y0)+(_h), \
(p)->x3 = (_x0)+(_w), (p)->y3 = (_y0)+(_h)
/*
* Set Primitive Width/Height
*/
#define setWH(p,_w,_h) (p)->w = _w, (p)->h = _h
/*
* Set Primitive Texture Points
*/
#define setUV0(p,_u0,_v0) \
(p)->u0 = (_u0), (p)->v0 = (_v0) \
#define setUV3(p,_u0,_v0,_u1,_v1,_u2,_v2) \
(p)->u0 = (_u0), (p)->v0 = (_v0), \
(p)->u1 = (_u1), (p)->v1 = (_v1), \
(p)->u2 = (_u2), (p)->v2 = (_v2)
#define setUV4(p,_u0,_v0,_u1,_v1,_u2,_v2,_u3,_v3) \
(p)->u0 = (_u0), (p)->v0 = (_v0), \
(p)->u1 = (_u1), (p)->v1 = (_v1), \
(p)->u2 = (_u2), (p)->v2 = (_v2), \
(p)->u3 = (_u3), (p)->v3 = (_v3)
#define setUVWH(p,_u0,_v0,_w,_h) \
(p)->u0 = (_u0), (p)->v0 = (_v0), \
(p)->u1 = (_u0)+(_w), (p)->v1 = (_v0), \
(p)->u2 = (_u0), (p)->v2 = (_v0)+(_h), \
(p)->u3 = (_u0)+(_w), (p)->v3 = (_v0)+(_h)
/*
* Dump Primivie Parameters
*/
#define dumpRECT(r) \
GPU_printf("(%d,%d)-(%d,%d)\n", (r)->x,(r)->y,(r)->w,(r)->h)
#define dumpWH(p) GPU_printf("(%d,%d)\n", (p)->w, (p)->h )
#define dumpXY0(p) GPU_printf("(%d,%d)\n", (p)->x0, (p)->y0)
#define dumpUV0(p) GPU_printf("(%d,%d)\n", (p)->u0, (p)->v0)
#define dumpXY2(p) \
GPU_printf("(%d,%d)-(%d,%d)\n", \
(p)->x0, (p)->y0, (p)->x1, (p)->y1)
#define dumpXY3(p) \
GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)\n", \
(p)->x0, (p)->y0, (p)->x1, (p)->y1, \
(p)->x2, (p)->y2)
#define dumpUV3(p) \
GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)\n", \
(p)->u0, (p)->v0, (p)->u1, (p)->v1, \
(p)->u2, (p)->v2)
#define dumpXY4(p) \
GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)\n", \
(p)->x0, (p)->y0, (p)->x1, (p)->y1, \
(p)->x2, (p)->y2, (p)->x3, (p)->y3)
#define dumpUV4(p) \
GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)\n", \
(p)->u0, (p)->v0, (p)->u1, (p)->v1, \
(p)->u2, (p)->v2, (p)->u3, (p)->v3)
#define dumpRGB0(p) \
GPU_printf("(%3d,%3d,%3d)\n", (p)->r0, (p)->g0, (p)->b0)
#define dumpRGB1(p) \
GPU_printf("(%3d,%3d,%3d)\n", (p)->r1, (p)->g1, (p)->b1)
#define dumpRGB2(p) \
GPU_printf("(%3d,%3d,%3d)\n", (p)->r2, (p)->g2, (p)->b2)
#define dumpRGB3(p) \
GPU_printf("(%3d,%3d,%3d)\n", (p)->r3, (p)->g3, (p)->b3)
/*
* Primitive Handling Macros
*/
#define setlen( p, _len) (((P_TAG *)(p))->len = (u_char)(_len))
#define setaddr(p, _addr) (((P_TAG *)(p))->addr = (u_long)(_addr))
#define setcode(p, _code) (((P_TAG *)(p))->code = (u_char)(_code))
#define getlen(p) (u_char)(((P_TAG *)(p))->len)
#define getcode(p) (u_char)(((P_TAG *)(p))->code)
#define getaddr(p) (u_long)(((P_TAG *)(p))->addr)
#define nextPrim(p) (void *)((((P_TAG *)(p))->addr)|0x80000000)
#define isendprim(p) ((((P_TAG *)(p))->addr)==0xffffff)
#define addPrim(ot, p) setaddr(p, getaddr(ot)), setaddr(ot, p)
#define addPrims(ot, p0, p1) setaddr(p1, getaddr(ot)),setaddr(ot, p0)
#define catPrim(p0, p1) setaddr(p0, p1)
#define termPrim(p) setaddr(p, 0xffffffff)
#define setSemiTrans(p, abe) \
((abe)?setcode(p, getcode(p)|0x02):setcode(p, getcode(p)&~0x02))
#define setShadeTex(p, tge) \
((tge)?setcode(p, getcode(p)|0x01):setcode(p, getcode(p)&~0x01))
#define getTPage(tp, abr, x, y) \
((((tp)&0x3)<<7)|(((abr)&0x3)<<5)|(((y)&0x100)>>4)|(((x)&0x3ff)>>6)| \
(((y)&0x200)<<2))
#define getClut(x, y) \
(((y)<<6)|(((x)>>4)&0x3f))
#define dumpTPage(tpage) \
GPU_printf("tpage: (%d,%d,%d,%d)\n", \
((tpage)>>7)&0x003,((tpage)>>5)&0x003, \
((tpage)<<6)&0x7c0, \
(((tpage)<<4)&0x100)+(((tpage)>>2)&0x200))
#define dumpClut(clut) \
GPU_printf("clut: (%d,%d)\n", (clut&0x3f)<<4, (clut>>6))
#define _get_mode(dfe, dtd, tpage) \
((0xe1000000)|((dtd)?0x0200:0)| \
((dfe)?0x0400:0)|((tpage)&0x9ff))
#define setDrawTPage(p, dfe, dtd, tpage) \
setlen(p, 1), \
((u_long *)(p))[1] = _get_mode(dfe, dtd, tpage)
#define _get_tw(tw) \
(tw ? ((0xe2000000)|((((tw)->y&0xff)>>3)<<15)| \
((((tw)->x&0xff)>>3)<<10)|(((~((tw)->h-1)&0xff)>>3)<<5)| \
(((~((tw)->w-1)&0xff)>>3))) : 0)
#define setTexWindow(p, tw) \
setlen(p, 2), \
((u_long *)(p))[1] = _get_tw(tw), \
((u_long *)(p))[2] = 0
#define _get_len(rect) \
(((rect)->w*(rect)->h+1)/2+4)
#define setDrawLoad(pt, rect) \
(_get_len(rect) <= 16) ? ( \
(setlen(pt, _get_len(rect))), \
((pt)->code[0] = 0xa0000000), \
((pt)->code[1] = *((u_long *)&(rect)->x)), \
((pt)->code[2] = *((u_long *)&(rect)->w)), \
((pt)->p[_get_len(rect)-4] = 0x01000000) \
) : ( \
(setlen(pt,0)) \
)
#define setDrawStp(p, pbw) \
setlen(p, 2), \
((u_long *)p)[1] = 0xe6000000|(pbw?0x01:0), \
((u_long *)p)[2] = 0
#define setDrawMode(p, dfe, dtd, tpage, tw) \
setlen(p, 2), \
((u_long *)p)[1] = _get_mode(dfe, dtd, tpage), \
((u_long *)p)[2] = _get_tw((RECT *)tw)
/* Primitive Lentgh Code */
/*-------------------------------------------------------------------- */
/* */
#define setPolyF3(p) setlen(p, 4), setcode(p, 0x20)
#define setPolyFT3(p) setlen(p, 7), setcode(p, 0x24)
#define setPolyG3(p) setlen(p, 6), setcode(p, 0x30)
#define setPolyGT3(p) setlen(p, 9), setcode(p, 0x34)
#define setPolyF4(p) setlen(p, 5), setcode(p, 0x28)
#define setPolyFT4(p) setlen(p, 9), setcode(p, 0x2c)
#define setPolyG4(p) setlen(p, 8), setcode(p, 0x38)
#define setPolyGT4(p) setlen(p, 12), setcode(p, 0x3c)
#define setSprt8(p) setlen(p, 3), setcode(p, 0x74)
#define setSprt16(p) setlen(p, 3), setcode(p, 0x7c)
#define setSprt(p) setlen(p, 4), setcode(p, 0x64)
#define setTile1(p) setlen(p, 2), setcode(p, 0x68)
#define setTile8(p) setlen(p, 2), setcode(p, 0x70)
#define setTile16(p) setlen(p, 2), setcode(p, 0x78)
#define setTile(p) setlen(p, 3), setcode(p, 0x60)
#define setLineF2(p) setlen(p, 3), setcode(p, 0x40)
#define setLineG2(p) setlen(p, 4), setcode(p, 0x50)
#define setLineF3(p) setlen(p, 5), setcode(p, 0x48),(p)->pad = 0x55555555
#define setLineG3(p) setlen(p, 7), setcode(p, 0x58),(p)->pad = 0x55555555, \
(p)->p2 = 0
#define setLineF4(p) setlen(p, 6), setcode(p, 0x4c),(p)->pad = 0x55555555
#define setLineG4(p) setlen(p, 9), setcode(p, 0x5c),(p)->pad = 0x55555555, \
(p)->p2 = 0, (p)->p3 = 0
/*
* Rectangle:
*/
typedef struct {
short x, y; /* offset point on VRAM */
short w, h; /* width and height */
} RECT;
typedef struct {
int x, y; /* offset point on VRAM */
int w, h; /* width and height */
} RECT32;
/*
* Environment
*/
typedef struct {
u_long tag;
u_long code[15];
} DR_ENV; /* Packed Drawing Environment */
typedef struct {
RECT clip; /* clip area */
short ofs[2]; /* drawing offset */
RECT tw; /* texture window */
u_short tpage; /* texture page */
u_char dtd; /* dither flag (0:off, 1:on) */
u_char dfe; /* flag to draw on display area (0:off 1:on) */
u_char isbg; /* enable to auto-clear */
u_char r0, g0, b0; /* initital background color */
DR_ENV dr_env; /* reserved */
} DRAWENV;
typedef struct {
RECT disp; /* display area */
RECT screen; /* display start point */
u_char isinter; /* interlace 0: off 1: on */
u_char isrgb24; /* RGB24 bit mode */
u_char pad0, pad1; /* reserved */
} DISPENV;
/*
* Polygon Primitive Definitions
*/
typedef struct {
unsigned addr: 24;
unsigned len: 8;
u_char r0, g0, b0, code;
} P_TAG;
typedef struct {
u_char r0, g0, b0, code;
} P_CODE;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short x1, y1;
short x2, y2;
} POLY_F3; /* Flat Triangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short x1, y1;
short x2, y2;
short x3, y3;
} POLY_F4; /* Flat Quadrangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
short x1, y1;
u_char u1, v1; u_short tpage;
short x2, y2;
u_char u2, v2; u_short pad1;
} POLY_FT3; /* Flat Textured Triangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
short x1, y1;
u_char u1, v1; u_short tpage;
short x2, y2;
u_char u2, v2; u_short pad1;
short x3, y3;
u_char u3, v3; u_short pad2;
} POLY_FT4; /* Flat Textured Quadrangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, pad1;
short x1, y1;
u_char r2, g2, b2, pad2;
short x2, y2;
} POLY_G3; /* Gouraud Triangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, pad1;
short x1, y1;
u_char r2, g2, b2, pad2;
short x2, y2;
u_char r3, g3, b3, pad3;
short x3, y3;
} POLY_G4; /* Gouraud Quadrangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
u_char r1, g1, b1, p1;
short x1, y1;
u_char u1, v1; u_short tpage;
u_char r2, g2, b2, p2;
short x2, y2;
u_char u2, v2; u_short pad2;
} POLY_GT3; /* Gouraud Textured Triangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
u_char r1, g1, b1, p1;
short x1, y1;
u_char u1, v1; u_short tpage;
u_char r2, g2, b2, p2;
short x2, y2;
u_char u2, v2; u_short pad2;
u_char r3, g3, b3, p3;
short x3, y3;
u_char u3, v3; u_short pad3;
} POLY_GT4; /* Gouraud Textured Quadrangle */
/*
* Line Primitive Definitions
*/
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short x1, y1;
} LINE_F2; /* Unconnected Flat Line */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, p1;
short x1, y1;
} LINE_G2; /* Unconnected Gouraud Line */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short x1, y1;
short x2, y2;
u_long pad;
} LINE_F3; /* 2 connected Flat Line */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, p1;
short x1, y1;
u_char r2, g2, b2, p2;
short x2, y2;
u_long pad;
} LINE_G3; /* 2 connected Gouraud Line */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short x1, y1;
short x2, y2;
short x3, y3;
u_long pad;
} LINE_F4; /* 3 connected Flat Line Quadrangle */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, p1;
short x1, y1;
u_char r2, g2, b2, p2;
short x2, y2;
u_char r3, g3, b3, p3;
short x3, y3;
u_long pad;
} LINE_G4; /* 3 connected Gouraud Line */
/*
* Sprite Primitive Definitions
*/
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
short w, h;
} SPRT; /* free size Sprite */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
} SPRT_16; /* 16x16 Sprite */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
} SPRT_8; /* 8x8 Sprite */
/*
* Tile Primitive Definitions
*/
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short w, h;
} TILE; /* free size Tile */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
} TILE_16; /* 16x16 Tile */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
} TILE_8; /* 8x8 Tile */
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
} TILE_1; /* 1x1 Tile */
/*
* Special Primitive Definitions
*/
typedef struct {
u_long tag;
u_long code[2];
} DR_MODE; /* Drawing Mode */
typedef struct {
u_long tag;
u_long code[2];
} DR_TWIN; /* Texture Window */
typedef struct {
u_long tag;
u_long code[2];
} DR_AREA; /* Drawing Area */
typedef struct {
u_long tag;
u_long code[2];
} DR_OFFSET; /* Drawing Offset */
typedef struct { /* MoveImage */
u_long tag;
u_long code[5];
} DR_MOVE;
typedef struct { /* LoadImage */
u_long tag;
u_long code[3];
u_long p[13];
} DR_LOAD;
typedef struct {
u_long tag;
u_long code[1];
} DR_TPAGE; /* Drawing TPage */
typedef struct {
u_long tag;
u_long code[2];
} DR_STP; /* Drawing STP */
/*
* Font Stream Parameters
*/
#define FNT_MAX_ID 8 /* max number of stream ID */
#define FNT_MAX_SPRT 1024 /* max number of sprites in all streams */
/*
* Multi-purpose Sony-TMD primitive
*/
typedef struct {
u_long id;
u_char r0, g0, b0, p0; /* Color of vertex 0 */
u_char r1, g1, b1, p1; /* Color of vertex 1 */
u_char r2, g2, b2, p2; /* Color of vertex 2 */
u_char r3, g3, b3, p3; /* Color of vertex 3 */
u_short tpage, clut; /* texture page ID, clut ID */
u_char u0, v0, u1, v1; /* texture corner point */
u_char u2, v2, u3, v3;
/* independent vertex model */
SVECTOR x0, x1, x2, x3; /* 3D corner point */
SVECTOR n0, n1, n2, n3; /* 3D corner normal vector */
/* Common vertex model */
SVECTOR *v_ofs; /* offset to vertex database */
SVECTOR *n_ofs; /* offset to normal database */
u_short vert0, vert1; /* index of vertex */
u_short vert2, vert3;
u_short norm0, norm1; /* index of normal */
u_short norm2, norm3;
} TMD_PRIM;
/*
* Multi-purpose TIM image
*/
typedef struct {
u_long mode; /* pixel mode */
RECT *crect; /* CLUT rectangle on frame buffer */
u_long *caddr; /* CLUT address on main memory */
RECT *prect; /* texture image rectangle on frame buffer */
u_long *paddr; /* texture image address on main memory */
} TIM_IMAGE;
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#ifndef _FNTPRINT_
#define _FNTPRINT_
extern int FntPrint(...);
#endif /* _FNTPRINT_ */
#ifndef _KANJIFNTPRINT_
#define _KANJIFNTPRINT_
extern int KanjiFntPrint(...);
#endif /* _KANJIFNTPRINT_ */
#else
#ifndef _FNTPRINT_
#define _FNTPRINT_
extern int FntPrint();
#endif /* _FNTPRINT_ */
#ifndef _KANJIFNTPRINT_
#define _KANJIFNTPRINT_
extern int KanjiFntPrint();
#endif /* _KANJIFNTPRINT_ */
#endif
extern DISPENV *GetDispEnv(DISPENV *env);
extern DISPENV *PutDispEnv(DISPENV *env);
extern DISPENV *SetDefDispEnv(DISPENV *env, int x, int y, int w, int h);
extern DRAWENV *GetDrawEnv(DRAWENV *env);
extern DRAWENV *PutDrawEnv(DRAWENV *env);
extern DRAWENV *SetDefDrawEnv(DRAWENV *env, int x, int y, int w, int h);
extern TIM_IMAGE *ReadTIM(TIM_IMAGE *timimg);
extern TMD_PRIM *ReadTMD(TMD_PRIM *tmdprim);
extern int CheckPrim(char *s, u_long *p);
extern int ClearImage(RECT *rect, u_char r, u_char g, u_char b);
extern int ClearImage2(RECT *rect, u_char r, u_char g, u_char b);
extern int DrawSync(int mode);
extern int FntOpen(int x, int y, int w, int h, int isbg, int n);
extern int GetGraphDebug(void) ;
extern int GetTimSize(u_char *sjis);
extern int IsEndPrim(void *p) ;
extern int KanjiFntOpen(int x, int y, int w, int h, int dx, int dy, int cx, int cy, int isbg, int n);
extern void KanjiFntClose(void);
extern int Krom2Tim(u_char *sjis, u_long *taddr, int dx, int dy, int cdx, int cdy, u_int fg, u_int bg);
extern int LoadImage(RECT *rect, u_long *p);
extern int MargePrim(void *p0, void *p1);
extern int MoveImage(RECT *rect, int x, int y);
extern int OpenTIM(u_long *addr);
extern int OpenTMD(u_long *tmd, int obj_no);
extern int ResetGraph(int mode);
extern int SetGraphDebug(int level);
extern int StoreImage(RECT *rect, u_long *p);
extern u_long *ClearOTag(u_long *ot, int n);
extern u_long *ClearOTagR(u_long *ot, int n);
extern u_long *FntFlush(int id);
extern u_long *KanjiFntFlush(int id);
extern u_long DrawSyncCallback(void (*func)(void));
extern u_short GetClut(int x, int y) ;
extern u_short GetTPage(int tp, int abr, int x, int y) ;
extern u_short LoadClut(u_long *clut, int x, int y);
extern u_short LoadClut2(u_long *clut, int x, int y);
extern u_short LoadTPage(u_long *pix, int tp, int abr, int x, int y, int w, int h);
extern void *NextPrim(void *p) ;
extern void AddPrim(void *ot, void *p) ;
extern void AddPrims(void *ot, void *p0, void *p1) ;
extern void CatPrim(void *p0, void *p1) ;
extern void DrawOTag(u_long *p);
extern void DrawOTagIO(u_long *p);
extern void DrawOTagEnv(u_long *p, DRAWENV *env);
extern void DrawPrim(void *p);
extern void DumpClut(u_short clut) ;
extern void DumpDispEnv(DISPENV *env);
extern void DumpDrawEnv(DRAWENV *env);
extern void DumpOTag(u_long *p);
extern void DumpTPage(u_short tpage) ;
extern void FntLoad(int tx, int ty);
extern void SetDispMask(int mask);
extern void SetDrawArea(DR_AREA *p, RECT *r);
extern void SetDrawEnv(DR_ENV *dr_env, DRAWENV *env);
extern void SetDrawLoad(DR_LOAD *p, RECT *rect);
extern void SetDrawMode(DR_MODE *p, int dfe, int dtd, int tpage, RECT *tw);
extern void SetDrawTPage(DR_TPAGE *p, int dfe, int dtd, int tpage);
extern void SetDrawMove(DR_MOVE *p, RECT *rect, int x, int y) ;
extern void SetDrawOffset(DR_OFFSET *p, u_short *ofs);
extern void SetDrawStp(DR_STP *p, int pbw);
extern void SetDumpFnt(int id);
extern void SetLineF2(LINE_F2 *p) ;
extern void SetLineF3(LINE_F3 *p) ;
extern void SetLineF4(LINE_F4 *p) ;
extern void SetLineG2(LINE_G2 *p) ;
extern void SetLineG3(LINE_G3 *p) ;
extern void SetLineG4(LINE_G4 *p) ;
extern void SetPolyF3(POLY_F3 *p) ;
extern void SetPolyF4(POLY_F4 *p) ;
extern void SetPolyFT3(POLY_FT3 *p) ;
extern void SetPolyFT4(POLY_FT4 *p) ;
extern void SetPolyG3(POLY_G3 *p) ;
extern void SetPolyG4(POLY_G4 *p) ;
extern void SetPolyGT3(POLY_GT3 *p) ;
extern void SetPolyGT4(POLY_GT4 *p) ;
extern void SetSemiTrans(void *p, int abe) ;
extern void SetShadeTex(void *p, int tge) ;
extern void SetSprt(SPRT *p) ;
extern void SetSprt16(SPRT_16 *p) ;
extern void SetSprt8(SPRT_8 *p) ;
extern void SetTexWindow(DR_TWIN *p, RECT *tw);
extern void SetTile(TILE *p) ;
extern void SetTile1(TILE_1 *p) ;
extern void SetTile16(TILE_16 *p) ;
extern void SetTile8(TILE_8 *p) ;
extern void TermPrim(void *p) ;
extern u_long *BreakDraw(void);
extern void ContinueDraw(u_long *insaddr, u_long *contaddr);
extern int IsIdleGPU(int max_count);
extern int GetODE(void);
extern int LoadImage2(RECT *rect, u_long *p);
extern int StoreImage2(RECT *rect, u_long *p);
extern int MoveImage2(RECT *rect, int x, int y);
extern int DrawOTag2(u_long *p);
extern void GetDrawMode(DR_MODE *p);
extern void GetTexWindow(DR_TWIN *p);
extern void GetDrawArea(DR_AREA *p);
extern void GetDrawOffset(DR_OFFSET *p);
extern void GetDrawEnv2(DR_ENV *p);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBGPU_H_ */

1467
tools/psyq/include/LIBGS.H Normal file

File diff suppressed because it is too large Load diff

766
tools/psyq/include/LIBGTE.H Normal file
View file

@ -0,0 +1,766 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _LIBGTE_H_
#define _LIBGTE_H_
/*
* (C) Copyright 1993/1994/1995 Sony Computer Entertainment ,Tokyo,Japan.
* All Rights Reserved
*
* libgte.h: Geometry Basic Structures Database
*
*$Id: libgte.h,v 1.35 1998/03/10 03:52:35 noda Exp $
*/
/*
* Geometry Structures:
*/
#define ONE 4096 /* GTE regards 4096 as 1.0 */
#define TMPVTXNUM 16 /* Clip Function Header */
#define OUTVTXNUM 10
#ifdef ASSEMBLER
/*
* GTE read macros
*/
#define read_sz_fifo3(r1,r2,r3) mfc2 r1,$17; \
mfc2 r2,$18; \
mfc2 r3,$19; \
nop
#define read_sz_fifo4(r1,r2,r3,r4) mfc2 r1,$16; \
mfc2 r2,$17; \
mfc2 r3,$18; \
mfc2 r4,$19; \
nop
#define read_szx(r1) mfc2 r1,$16; \
nop
#define read_sz0(r1) mfc2 r1,$17; \
nop
#define read_sz1(r1) mfc2 r1,$18; \
nop
#define read_sz2(r1) mfc2 r1,$19; \
nop
#define read_sxsy_fifo3(r1,r2,r3) mfc2 r1,$12; \
mfc2 r2,$13; \
mfc2 r3,$14; \
nop
#define read_sxsy0(r1) mfc2 r1,$12; \
nop
#define read_sxsy1(r1) mfc2 r1,$13; \
nop
#define read_sxsy2(r1) mfc2 r1,$14; \
nop
#define read_rgb_fifo(r1,r2,r3) mfc2 r1,$20; \
mfc2 r2,$21; \
mfc2 r3,$22; \
nop
#define read_rgb0(r1) mfc2 r1,$20; \
nop
#define read_rgb1(r1) mfc2 r1,$21; \
nop
#define read_rgb2(r1) mfc2 r1,$22; \
nop
#define read_flag(r1) cfc2 r1,$31; \
nop
#define read_p(r1) mfc2 r1,$8; \
nop
#define read_otz(r1) mfc2 r1,$7; \
nop
#define read_opz(r1) mfc2 r1,$24; \
nop
#define read_mt(r1,r2,r3) mfc2 r1,$25; \
mfc2 r2,$26; \
mfc2 r3,$27; \
nop
/*
* GTE store macros
*/
#define store_sxsy_fifo3(r1,r2,r3) swc2 $12,(r1); \
swc2 $13,(r2); \
swc2 $14,(r3); \
nop
#define store_sxsy0(r1) swc2 $12,(r1); \
nop
#define store_sxsy1(r1) swc2 $13,(r1); \
nop
#define store_sxsy2(r1) swc2 $14,(r1); \
nop
#define store_rgb_fifo(r1,r2,r3) swc2 $20,(r1); \
swc2 $21,(r2); \
swc2 $22,(r3); \
nop
#define store_rgb0(r1) swc2 $20,(r1); \
nop
#define store_rgb1(r1) swc2 $21,(r1); \
nop
#define store_rgb2(r1) swc2 $22,(r1); \
nop
/*
* GTE set macros
*/
#define set_trans_matrix(r1,r2,r3) ctc2 r1,$5; \
ctc2 r2,$6; \
ctc2 r3,$7; \
nop
#endif
#ifndef ASSEMBLER
typedef struct {
short m[3][3]; /* 3x3 rotation matrix */
long t[3]; /* transfer vector */
} MATRIX;
typedef struct { /* long word type 3D vector */
long vx, vy;
long vz, pad;
} VECTOR;
typedef struct { /* short word type 3D vector */
short vx, vy;
short vz, pad;
} SVECTOR;
typedef struct { /* color type vector */
u_char r, g, b, cd;
} CVECTOR;
typedef struct { /* 2D short vector */
short vx, vy;
} DVECTOR;
typedef struct {
SVECTOR v; /* Object(Local) 3D Vertex */
VECTOR sxyz; /* Screen 3D Vertex */
DVECTOR sxy; /* Screen 2D Vertex */
CVECTOR rgb; /* Vertex Color Data */
short txuv,pad; /* Texture Mapping Data */
long chx,chy; /* Clip Window Data */
} EVECTOR;
typedef struct {
SVECTOR v;
u_char uv[2]; u_short pad; /* */
CVECTOR c;
DVECTOR sxy;
u_long sz; /* clip z-data */
} RVECTOR; /* division vertex data vector */
typedef struct {
RVECTOR r01,r12,r20;
RVECTOR *r0,*r1,*r2;
u_long *rtn;
} CRVECTOR3; /* recursive vector for triangles */
typedef struct {
u_long ndiv; /* number of divisions */
u_long pih,piv; /* clipping area */
u_short clut,tpage;
CVECTOR rgbc;
u_long *ot;
RVECTOR r0,r1,r2;
CRVECTOR3 cr[5];
} DIVPOLYGON3; /* division buffer for triangles */
typedef struct {
RVECTOR r01,r02,r31,r32,rc;
RVECTOR *r0,*r1,*r2,*r3;
u_long *rtn;
} CRVECTOR4; /* recursive vector for four-sided polygons */
typedef struct {
u_long ndiv; /* number of divisions */
u_long pih,piv; /* clipping area */
u_short clut,tpage;
CVECTOR rgbc;
u_long *ot;
RVECTOR r0,r1,r2,r3;
CRVECTOR4 cr[5];
} DIVPOLYGON4; /* division buffer for four-sided polygons */
typedef struct {
short xy[3];
short uv[2];
short rgb[3];
} SPOL;
/*polygon: 41 bytes/1 polygon*/
typedef struct {
short sxy[4][2]; /*0..7*/
short sz[4][2]; /*8..15sz[][1] is dummy*/
short uv[4][2]; /*16..23*/
short rgb[4][3]; /*23..34*/
short code; /*35... F4:5,TF4:6,G4:7,TG4:8*/
} POL4;
typedef struct {
short sxy[3][2];
short sz[3][2]; /*sz[][1] is dummy*/
short uv[3][2];
short rgb[3][3];
short code; /*F3:1,TF3:2,G3:3,TG3:4*/
} POL3;
typedef struct {
SVECTOR *v; /*shared vertices*/
SVECTOR *n; /*shared normals*/
SVECTOR *u; /*shared texture addresses*/
CVECTOR *c; /*shared colors*/
u_long len; /*mesh length(=#vertex)*/
} TMESH;
typedef struct {
SVECTOR *v; /*shared vertices*/
SVECTOR *n; /*shared normals*/
SVECTOR *u; /*shared texture addresses*/
CVECTOR *c; /*shared colors*/
u_long lenv; /*mesh length_V(=#vertex_V)*/
u_long lenh; /*mesh length_H(=#vertex_H)*/
} QMESH;
/*
* ProtoTypes
*/
#ifndef NO_PROTOTYPE
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern void InitGeom();
extern void EigenMatrix(MATRIX *m, MATRIX *t);
extern int IsIdMatrix(MATRIX *m);
extern MATRIX *MulMatrix0(MATRIX *m0,MATRIX *m1,MATRIX *m2);
extern MATRIX *MulRotMatrix0(MATRIX *m0,MATRIX *m1);
extern MATRIX *MulMatrix(MATRIX *m0,MATRIX *m1);
extern MATRIX *MulMatrix2(MATRIX *m0,MATRIX *m1);
extern MATRIX *MulRotMatrix(MATRIX *m0);
extern MATRIX *SetMulMatrix(MATRIX *m0,MATRIX *m1);
extern MATRIX *SetMulRotMatrix(MATRIX *m0);
extern VECTOR *ApplyMatrix(MATRIX *m,SVECTOR *v0,VECTOR *v1);
extern VECTOR *ApplyRotMatrix(SVECTOR *v0,VECTOR *v1);
extern VECTOR *ApplyRotMatrixLV(VECTOR *v0,VECTOR *v1);
extern VECTOR *ApplyMatrixLV(MATRIX *m,VECTOR *v0,VECTOR *v1);
extern SVECTOR *ApplyMatrixSV(MATRIX *m,SVECTOR *v0,SVECTOR *v1);
extern VECTOR *ApplyTransposeMatrixLV(MATRIX *m,VECTOR *v0,VECTOR *v1);
extern MATRIX *RotMatrix(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixXZY(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixYXZ(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixYZX(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixZXY(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixZYX(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrix_gte(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixYXZ_gte(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixZYX_gte(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixX(long r,MATRIX *m);
extern MATRIX *RotMatrixY(long r,MATRIX *m);
extern MATRIX *RotMatrixZ(long r,MATRIX *m);
extern MATRIX *RotMatrixC(SVECTOR *r,MATRIX *m);
extern MATRIX *TransMatrix(MATRIX *m,VECTOR *v);
extern MATRIX *ScaleMatrix(MATRIX *m,VECTOR *v);
extern MATRIX *ScaleMatrixL(MATRIX *m,VECTOR *v);
extern MATRIX *TransposeMatrix(MATRIX *m0,MATRIX *m1);
extern MATRIX *CompMatrix(MATRIX *m0,MATRIX *m1,MATRIX *m2);
extern MATRIX *CompMatrixLV(MATRIX *m0,MATRIX *m1,MATRIX *m2);
extern void MatrixNormal(MATRIX *m, MATRIX *n);
extern void MatrixNormal_0(MATRIX *m, MATRIX *n);
extern void MatrixNormal_1(MATRIX *m, MATRIX *n);
extern void MatrixNormal_2(MATRIX *m, MATRIX *n);
extern void SetRotMatrix(MATRIX *m);
extern void SetLightMatrix(MATRIX *m);
extern void SetColorMatrix(MATRIX *m);
extern void SetTransMatrix(MATRIX *m);
extern void PushMatrix();
extern void PopMatrix();
extern void ReadRotMatrix(MATRIX *m);
extern void ReadLightMatrix(MATRIX *m);
extern void ReadColorMatrix(MATRIX *m);
extern void SetRGBcd(CVECTOR *v);
extern void SetBackColor(long rbk,long gbk,long bbk);
extern void SetFarColor(long rfc,long gfc,long bfc);
extern void SetGeomOffset(long ofx,long ofy);
extern void SetGeomScreen(long h);
extern void ReadSZfifo3(long *sz0,long *sz1,long *sz2);
extern void ReadSZfifo4(long *szx,long *sz0,long *sz1,long *sz2);
extern void ReadSXSYfifo(long *sxy0,long *sxy1,long *sxy2);
extern void ReadRGBfifo(CVECTOR *v0,CVECTOR *v1,CVECTOR *v2);
extern void ReadGeomOffset(long *ofx,long *ofy);
extern long ReadGeomScreen();
extern void TransRot_32(VECTOR *v0, VECTOR *v1, long *flag);
extern long TransRotPers(SVECTOR *v0, long *sxy, long *p, long *flag);
extern long TransRotPers3(SVECTOR *v0, SVECTOR *v1, SVECTOR *v2, long *sxy0,
long *sxy1, long *sxy2, long *p, long *flag);
extern void pers_map(int abuf, SVECTOR **vertex, int tex[4][2], u_short *dtext);
extern void PhongLine(int istart_x, int iend_x, int p, int q, u_short **pixx,
int fs, int ft, int i4, int det);
extern long RotTransPers(SVECTOR *v0,long *sxy,long *p,long *flag);
extern long RotTransPers3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
long *sxy0,long *sxy1,long *sxy2,long *p,long *flag);
extern void RotTrans(SVECTOR *v0,VECTOR *v1,long *flag);
extern void RotTransSV(SVECTOR *v0,SVECTOR *v1,long *flag);
extern void LocalLight(SVECTOR *v0,VECTOR *v1);
extern void LightColor(VECTOR *v0,VECTOR *v1);
extern void DpqColorLight(VECTOR *v0,CVECTOR *v1,long p,CVECTOR *v2);
extern void DpqColor(CVECTOR *v0,long p,CVECTOR *v1);
extern void DpqColor3(CVECTOR *v0,CVECTOR *v1,CVECTOR *v2,
long p,CVECTOR *v3,CVECTOR *v4,CVECTOR *v5);
extern void Intpl(VECTOR *v0,long p,CVECTOR *v1);
extern VECTOR *Square12(VECTOR *v0,VECTOR *v1);
extern VECTOR *Square0(VECTOR *v0,VECTOR *v1);
extern VECTOR *SquareSL12(SVECTOR *v0,VECTOR *v1);
extern VECTOR *SquareSL0(SVECTOR *v0,VECTOR *v1);
extern SVECTOR *SquareSS12(SVECTOR *v0,SVECTOR *v1);
extern SVECTOR *SquareSS0(SVECTOR *v0,SVECTOR *v1);
extern void NormalColor(SVECTOR *v0,CVECTOR *v1);
extern void NormalColor3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
CVECTOR *v3,CVECTOR *v4,CVECTOR *v5);
extern void NormalColorDpq(SVECTOR *v0,CVECTOR *v1,long p,CVECTOR *v2);
extern void NormalColorDpq3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,CVECTOR *v3,
long p,CVECTOR *v4,CVECTOR *v5,CVECTOR *v6);
extern void NormalColorCol(SVECTOR *v0,CVECTOR *v1,CVECTOR *v2);
extern void NormalColorCol3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,CVECTOR *v3,
CVECTOR *v4,CVECTOR *v5,CVECTOR *v6);
extern void ColorDpq(VECTOR *v0,CVECTOR *v1,long p,CVECTOR *v2);
extern void ColorCol(VECTOR *v0,CVECTOR *v1,CVECTOR *v2);
extern long NormalClip(long sxy0,long sxy1,long sxy2);
extern long AverageZ3(long sz0,long sz1,long sz2);
extern long AverageZ4(long sz0,long sz1,long sz2,long sz3);
extern void OuterProduct12(VECTOR *v0,VECTOR *v1,VECTOR *v2);
extern void OuterProduct0(VECTOR *v0,VECTOR *v1,VECTOR *v2);
extern long Lzc(long data);
extern long RotTransPers4(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
long *sxy0,long *sxy1,long *sxy2,long *sxy3,
long *p,long *flag);
extern void RotTransPersN(SVECTOR *v0,DVECTOR *v1,u_short *sz,u_short *p,
u_short *flag,long n);
extern void RotTransPers3N(SVECTOR *v0,DVECTOR *v1,u_short *sz,u_short *flag,
long n);
extern void RotMeshH(short *Yheight,DVECTOR *Vo,u_short *sz,u_short *flag,
short Xoffset,short Zoffset,short m,short n,
DVECTOR *base);
extern long RotAverage3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
long *sxy0,long *sxy1,long *sxy2,long *p,long *flag);
extern long RotAverage4(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
long *sxy0,long *sxy1,long *sxy2,long *sxy3,
long *p,long *flag);
extern long RotNclip3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
long *sxy0,long *sxy1,long *sxy2,long *p,long *otz,
long *flag);
extern long RotNclip4(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
long *sxy0,long *sxy1,long *sxy2,long *sxy3,
long *p,long *otz,long *flag);
extern long RotAverageNclip3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
long *sxy0,long *sxy1,long *sxy2,
long *p,long *otz,long *flag);
extern long RotAverageNclip4(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
long *sxy0,long *sxy1,long *sxy2,long *sxy3,
long *p,long *otz,long *flag);
extern long RotColorDpq(SVECTOR *v0,SVECTOR *v1,CVECTOR *v2,
long *sxy,CVECTOR *v3,long *flag);
extern long RotColorDpq3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6,
long *sxy0,long *sxy1,long *sxy2,
CVECTOR *v7,CVECTOR *v8,CVECTOR *v9,long *flag);
extern long RotAverageNclipColorDpq3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6,
long *sxy0,long *sxy1,long *sxy2,
CVECTOR *v7,CVECTOR *v8,CVECTOR *v9,
long *otz,long *flag);
extern long RotAverageNclipColorCol3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6,
long *sxy0,long *sxy1,long *sxy2,
CVECTOR *v7,CVECTOR *v8,CVECTOR *v9,
long *otz,long *flag);
extern long RotColorMatDpq(SVECTOR *v0,SVECTOR *v1,CVECTOR *v2,long *sxy,
CVECTOR *v3,long matc,long flag);
extern void ColorMatDpq(SVECTOR *v0,CVECTOR *v1,long p,CVECTOR *v2,long matc);
extern void ColorMatCol(SVECTOR *v0,CVECTOR *v1,CVECTOR *v2,long matc);
extern void LoadAverage12(VECTOR *v0,VECTOR *v1,long p0,long p1,VECTOR *v2);
extern void LoadAverageShort12(SVECTOR *v0,SVECTOR *v1,long p0,long p1,
SVECTOR *v2);
extern void LoadAverage0(VECTOR *v0,VECTOR *v1,long p0,long p1,VECTOR *v2);
extern void LoadAverageShort0(SVECTOR *v0,SVECTOR *v1,long p0,long p1,
SVECTOR *v2);
extern void LoadAverageByte(u_char *v0,u_char *v1,long p0,long p1,u_char *v2);
extern void LoadAverageCol(u_char *v0,u_char *v1,long p0,long p1,u_char *v2);
extern long VectorNormal(VECTOR *v0, VECTOR *v1);
extern long VectorNormalS(VECTOR *v0, SVECTOR *v1);
extern long VectorNormalSS(SVECTOR *v0, SVECTOR *v1);
extern long SquareRoot0(long a);
extern long SquareRoot12(long a);
extern void InvSquareRoot(long a, long *b, long *c);
extern void gteMIMefunc(SVECTOR *otp, SVECTOR *dfp, long n, long p);
extern void SetFogFar(long a,long h);
extern void SetFogNear(long a,long h);
extern void SetFogNearFar(long a,long b,long h);
extern void SubPol4(POL4 *p, SPOL *sp, int ndiv);
extern void SubPol3(POL3 *p, SPOL *sp, int ndiv);
extern int rcos(int a);
extern int rsin(int a);
extern int ccos(int a);
extern int csin(int a);
extern int cln(int a);
extern int csqrt(int a);
extern int catan(int a);
extern long ratan2(long y, long x);
extern void RotPMD_F3(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_G3(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_FT3(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_GT3(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_F4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_G4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_FT4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_GT4(long *pa,u_long *ot,int otlen,int id,int backc);
extern void RotPMD_SV_F3(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void RotPMD_SV_G3(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void RotPMD_SV_FT3(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void RotPMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void RotPMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void RotPMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void RotPMD_SV_FT4(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void RotPMD_SV_GT4(long *pa,long *va,u_long *ot,int otlen,int id,
int backc);
extern void InitClip(EVECTOR *evbfad,long hw,long vw,long h,long near,long far);
extern long Clip3F(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,EVECTOR **evmx);
extern long Clip3FP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,EVECTOR **evmx);
extern long Clip4F(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
EVECTOR **evmx);
extern long Clip4FP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
EVECTOR **evmx);
extern long Clip3FT(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
short *uv0,short *uv1,short *uv2,EVECTOR **evmx);
extern long Clip3FTP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
short *uv0,short *uv1,short *uv2,EVECTOR **evmx);
extern long Clip4FT(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
short *uv0,short *uv1,short *uv2,short *uv3,EVECTOR **evmx);
extern long Clip4FTP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
short *uv0,short *uv1,short *uv2,short *uv3,EVECTOR **evmx);
extern long Clip3G(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,EVECTOR **evmx);
extern long Clip3GP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,EVECTOR **evmx);
extern long Clip4G(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,CVECTOR *rgb3,
EVECTOR **evmx);
extern long Clip4GP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,CVECTOR *rgb3,
EVECTOR **evmx);
extern long Clip3GT(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
short *uv0,short *uv1,short *uv2,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,
EVECTOR **evmx);
extern long Clip3GTP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
short *uv0,short *uv1,short *uv2,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,
EVECTOR **evmx);
extern long Clip4GT(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
short *uv0,short *uv1,short *uv2,short *uv3,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,CVECTOR *rgb3,
EVECTOR **evmx);
extern long Clip4GTP(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3,
short *uv0,short *uv1,short *uv2,short *uv3,
CVECTOR *rgb0,CVECTOR *rgb1,CVECTOR *rgb2,CVECTOR *rgb3,
EVECTOR **evmx);
extern void RotTransPers_nom(SVECTOR *v0);
extern void RotTransPers3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void RotTransPers4_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,SVECTOR *v3);
extern void RotTrans_nom(SVECTOR *v0);
extern void RotAverage3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void RotNclip3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void RotAverageNclip3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void RotAverageNclipColorDpq3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6);
extern void RotAverageNclipColorCol3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6);
extern void RotColorDpq_nom(SVECTOR *v0,SVECTOR *v1,CVECTOR *v2);
extern long RotColorDpq3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
SVECTOR *v3,SVECTOR *v4,SVECTOR *v5,CVECTOR *v6);
extern void NormalColor_nom(SVECTOR *v0);
extern void NormalColor3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2);
extern void NormalColorDpq_nom(SVECTOR *v0,CVECTOR *v1,long p);
extern void NormalColorDpq3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
CVECTOR *v3,long p);
extern void NormalColorCol_nom(SVECTOR *v0,CVECTOR *v1);
extern void NormalColorCol3_nom(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,
CVECTOR *v3);
/*
extern u_long *DivideF3(SVECTOR *v0,SVECTOR *v1,SVECTOR *v2,CVECTOR *rgbc,
POLY *otp);
extern u_long *GsPrng n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTG3LB(TMD_P_TG3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_GT3 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTG3LFGB(TMD_P_TG3 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_GT3 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTG3NLB(TMD_P_TG3 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_GT3 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTNG3B(TMD_P_TNG3 *primtop,SVECTOR *vertop,
POLY_GT3 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTG4LB(TMD_P_TG4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_GT4 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTG4LFGB(TMD_P_TG4 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_GT4 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTG4NLB(TMD_P_TG4 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_GT4 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDfastTNG4B(TMD_P_TNG4 *primtop,SVECTOR *vertop,
POLY_GT4 *s,u_long n,u_long shift,GsOT *otp);
extern u_long *GsTMDdivF3LB(TMD_P_F3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_F3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivF3LFGB(TMD_P_F3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_F3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivF3NLB(TMD_P_F3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_F3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivNF3B(TMD_P_NF3 *primtop,SVECTOR *vertop,
POLY_F3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivF4LB(TMD_P_F4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_F4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivF4LFGB(TMD_P_F4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_F4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivF4NLB(TMD_P_F4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_F4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivNF4B(TMD_P_NF4 *primtop,SVECTOR *vertop,
POLY_F4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTF3LB(TMD_P_TF3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_FT3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTF3LFGB(TMD_P_TF3 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_FT3 *s,u_long n,u_long shift,
GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTF3NLB(TMD_P_TF3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_FT3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTNF3B(TMD_P_TNF3 *primtop,SVECTOR *vertop,
POLY_FT3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTF4LB(TMD_P_TF4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_FT4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTF4LFGB(TMD_P_TF4 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_FT4 *s,u_long n,u_long shift,
GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTF4NLB(TMD_P_TF4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_FT4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTNF4B(TMD_P_TNF4 *primtop,SVECTOR *vertop,
POLY_FT4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivG3LB(TMD_P_G3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_G3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivG3LFGB(TMD_P_G3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_G3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivG3NLB(TMD_P_G3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_G3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivNG3B(TMD_P_NG3 *primtop,SVECTOR *vertop,
POLY_G3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivG4LB(TMD_P_G4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_G4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivG4LFGB(TMD_P_G4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_G4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivG4NLB(TMD_P_G4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_G4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivNG4B(TMD_P_NG4 *primtop,SVECTOR *vertop,
POLY_G4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTG3LB(TMD_P_TG3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_GT3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTG3LFGB(TMD_P_TG3 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_GT3 *s,u_long n,u_long shift,
GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTG3NLB(TMD_P_TG3 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_GT3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTNG3B(TMD_P_TNG3 *primtop,SVECTOR *vertop,
POLY_GT3 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON3 *divp);
extern u_long *GsTMDdivTG4LB(TMD_P_TG4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_GT4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTG4LFGB(TMD_P_TG4 *primtop,SVECTOR *vertop,
SVECTOR *nortop,POLY_GT4 *s,u_long n,u_long shift,
GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTG4NLB(TMD_P_TG4 *primtop,SVECTOR *vertop,SVECTOR *nortop,
POLY_GT4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
extern u_long *GsTMDdivTNG4B(TMD_P_TNG4 *primtop,SVECTOR *vertop,
POLY_GT4 *s,u_long n,u_long shift,GsOT *otp,DIVPOLYGON4 *divp);
*/
extern void RotSMD_F3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_G3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_FT3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_GT3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_F4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_G4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_FT4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_GT4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_F3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_G3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_FT3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_FT4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotSMD_SV_GT4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_F3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_G3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_FT3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_GT3(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_F4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_G4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_FT4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_GT4(long *pa,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_F3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_G3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_FT3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_GT3(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_F4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_G4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_FT4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern void RotRMD_SV_GT4(long *pa,long *va,u_long *ot,int otlen,int id,
int sclip, int hclip, int vclip, int nclipmode);
extern long p2otz(long p, long projection);
extern long otz2p(long otz, long projection);
/*
extern void RotMeshPrimS_F3(TMESH *msh,POLY_F3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_G3(TMESH *msh,POLY_G3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_FC3(TMESH *msh,POLY_F3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_GC3(TMESH *msh,POLY_G3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_FT3(TMESH *msh,POLY_FT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_GT3(TMESH *msh,POLY_GT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_FCT3(TMESH *msh,POLY_FT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_GCT3(TMESH *msh,POLY_GT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimS_T3(TMESH *msh,POLY_FT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_F3(TMESH *msh,POLY_F3 *prim,u_long *ot,
u_long otlen,long dpq,u _long backc);
extern void RotMeshPrimR_G3(TMESH *msh,POLY_G3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_FC3(TMESH *msh,POLY_F3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_GC3(TMESH *msh,POLY_G3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_FT3(TMESH *msh,POLY_FT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_GT3(TMESH *msh,POLY_GT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_FCT3(TMESH *msh,POLY_FT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_GCT3(TMESH *msh,POLY_GT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimR_T3(TMESH *msh,POLY_FT3 *prim,u_long *ot,
u_long otlen,long dpq,u_long backc);
extern void RotMeshPrimQ_T(QMESH *msh,POLY_FT4 *prim,u_long *ot,
u_long otlen,long dpq,long backc);
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif
#endif
#endif /* _LIBGTE_H_ */

View file

@ -0,0 +1,25 @@
/* $PSLibId: Run-time Library Release 4.7$ */
#ifndef _LIBGUN_H_
#define _LIBGUN_H_
/*
* Copyright (C) 1996 Sony Computer Entertainment America. All Rights Reserved
* libetc.h: Light Gun Interface
*/
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
void InitGUN(char *bufA, long lenA, char *bufB, long lenB, char *buf1, char *buf2, long len);
void RemoveGUN(void);
void SelectGUN(int ch, unsigned char mask);
long StartGUN(void);
void StopGUN(void);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBGUN_H_ */

1121
tools/psyq/include/LIBHMD.H Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,44 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _LIBMATH_H_
#define _LIBMATH_H_
/*
libmath.h
*/
#define _ABS(x) ((x) < 0 ? -(x) : (x))
#define fabs(x) _ABS(x)
extern int math_errno;
extern int math_err_point;
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
double pow(double, double),exp(double);
double log(double), log10(double);
double floor(double), ceil(double);
double fmod(double,double),modf(double,double *);
double sin(double), cos(double), tan(double);
double asin(double), acos(double);
double atan(double), atan2(double, double);
double sinh(double), cosh(double), tanh(double);
double sqrt(double);
double hypot(double, double);
double ldexp(double, int), frexp(double, int *);
double atof(char *);
double strtod(char *, char **);
int printf2(char *, ...);
int sprintf2(char *, char *, ...);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBMATH_H_ */

View file

@ -0,0 +1,59 @@
#ifndef _MEMCARD_H_
#define _MEMCARD_H_
/*
* File:libmcrd.h Rev. 4.2
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#include <kernel.h>
typedef void (*MemCB)( long cmds, long rslt );
#define McFuncExist (1)
#define McFuncAccept (2)
#define McFuncReadFile (3)
#define McFuncWriteFile (4)
#define McFuncReadData (5)
#define McFuncWriteData (6)
#define McErrNone (0)
#define McErrCardNotExist (1)
#define McErrCardInvalid (2)
#define McErrNewCard (3)
#define McErrNotFormat (4)
#define McErrFileNotExist (5)
#define McErrAlreadyExist (6)
#define McErrBlockFull (7)
#define McErrExtend (0x8000)
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
void MemCardInit( long val );
void MemCardEnd( void );
void MemCardStart(void);
void MemCardStop(void);
long MemCardExist( long chan );
long MemCardAccept( long chan );
long MemCardOpen( long chan, char* file, long flag );
void MemCardClose(void);
long MemCardReadData( unsigned long* adrs, long ofs, long bytes );
long MemCardReadFile( long chan, char* file, unsigned long* adrs, long ofs, long bytes );
long MemCardWriteData( unsigned long* adrs, long ofs, long bytes );
long MemCardWriteFile( long chan, char* file, unsigned long* adrs, long ofs ,long bytes );
long MemCardCreateFile( long chan, char* file, long blocks );
long MemCardDeleteFile( long chan, char* file );
long MemCardFormat( long chan );
long MemCardUnformat(long chan);
long MemCardSync( long mode, long* cmds, long* rslt );
MemCB MemCardCallback( MemCB func );
long MemCardGetDirentry( long chan, char* name, struct DIRENTRY* dir, long* files, long ofs, long max );
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _MEMCARD_H_ */

101
tools/psyq/include/LIBMCX.H Normal file
View file

@ -0,0 +1,101 @@
#ifndef _LIBMCX_H_
#define _LIBMCX_H_
/*
* File:libmcx.h
* Copyright (C) 1998 by Sony Computer Entertainment Inc.
* All rights Reserved
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/* don't change these macros and structures which is referred in mcx code */
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef NULL
#define NULL 0
#endif
#ifndef ERROR
#define ERROR (-1)
#endif
#define McxFuncGetApl 1
#define McxFuncExecApl 2
#define McxFuncGetTime 3
#define McxFuncGetMem 4
#define McxFuncSetMem 5
#define McxFuncShowTrans 6
#define McxFuncHideTrans 7
#define McxFuncCurrCtrl 8
#define McxFuncSetLED 9
#define McxFuncGetSerial 10
#define McxFuncExecFlag 11
#define McxFuncAllInfo 12
#define McxFuncFlashAcs 13
#define McxFuncReadDev 14
#define McxFuncWriteDev 15
#define McxFuncGetUIFS 16
#define McxFuncSetUIFS 17
#define McxFuncSetTime 18
#define McxFuncCardType 19
#define McxSyncRun 0
#define McxSyncNone (-1)
#define McxSyncFin 1
#define McxErrSuccess 0
#define McxErrNoCard 1
#define McxErrInvalid 2
#define McxErrNewCard 3
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
void McxStartCom(void);
void McxStopCom(void);
int McxSync(int, long *, long *);
int McxGetApl(int , long *);
int McxExecApl(int, int, long);
int McxGetTime(int, unsigned char *);
int McxGetMem(int, unsigned char *, unsigned, unsigned);
int McxSetMem(int, unsigned char *, unsigned, unsigned);
int McxShowTrans(int, int, int);
int McxHideTrans(int);
int McxCurrCtrl(int, int, int, int);
int McxFlashAcs(int, int);
int McxGetSerial(int, unsigned long *);
int McxSetLED(int, int);
int McxAllInfo(int, unsigned char *);
int McxExecFlag(int, int, int);
int McxReadDev(int, int, unsigned char *, unsigned char *);
int McxWriteDev(int, int, unsigned char *, unsigned char *);
int McxSetTime(int, unsigned char *);
int McxGetUIFS(int, unsigned char *);
int McxSetUIFS(int, unsigned char *);
int McxCardType(int);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBMCX_H_ */
/* don't add stuff after this */

View file

@ -0,0 +1,82 @@
#ifndef _LIBPAD_H_
#define _LIBPAD_H_
/*
* File:libpad.h
* Copyright (C) 1997 by Sony Computer Entertainment Inc.
* All rights Reserved
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/* don't change these macros and structures which is referred in controler code */
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef NULL
#define NULL 0
#endif
#define PadStateDiscon 0
#define PadStateFindPad 1
#define PadStateFindCTP1 2
#define PadStateFindCTP2 3
#define PadStateReqInfo 4
#define PadStateExecCmd 5
#define PadStateStable 6
#define InfoModeCurID 1
#define InfoModeCurExID 2
#define InfoModeCurExOffs 3
#define InfoModeIdTable 4
#define InfoActFunc 1
#define InfoActSub 2
#define InfoActSize 3
#define InfoActCurr 4
#define InfoActSign 5
#define PadMaxCurr 60 /* PS maximum current supply */
#define PadCurrCTP1 10 /* SCPH-1150 biblator current */
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
void PadInitDirect(unsigned char *, unsigned char *);
void PadInitMtap(unsigned char *, unsigned char *);
void PadInitGun(unsigned char *, int);
int PadChkVsync(void);
void PadStartCom(void);
void PadStopCom(void);
unsigned PadEnableCom(unsigned);
void PadEnableGun(unsigned char);
void PadRemoveGun(void);
int PadGetState(int);
int PadInfoMode(int, int, int);
int PadInfoAct(int, int, int);
int PadInfoComb(int, int, int);
int PadSetActAlign(int, unsigned char *);
int PadSetMainMode(int socket, int offs, int lock);
void PadSetAct(int, unsigned char *, int);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBPAD_H_ */
/* don't add stuff after this */

View file

@ -0,0 +1,73 @@
/* $PSLibId: Run-time Library Release 4.7$ */
#ifndef _LIBPRESS_H_
#define _LIBPRESS_H_
/*
* (C) Copyright 1995 Sony Corporation,Tokyo,Japan. All Rights Reserved
*
* libpress.h: Prototypes for libpress
*
*/
/* DecDCTvlc Table */
typedef u_short DECDCTTAB[34816];
/* DecDCTEnv */
typedef struct {
u_char iq_y[64]; /* IQ (Y): zig-zag order */
u_char iq_c[64]; /* IQ (Cb,Cr): zig-zag order */
short dct[64]; /* IDCT coef (reserved) */
} DECDCTENV;
typedef struct {
short *src; /* 16-bit strait PCM */
short *dest; /* PlayStation original waveform data */
short *work; /* scratch pad or NULL */
long size; /* size (unit: byte) of source data */
long loop_start; /* loop start point (unit: byte) of source data */
char loop; /* whether loop or not */
char byte_swap; /* source data is 16-bit big endian (1) / little endian (0) */
char proceed; /* proceeding ? whole (0) / start (1) / cont. (2) / end (4) */
char quality; /* quality ? middle (0) / high (1) */
} ENCSPUENV;
#define ENCSPU_ENCODE_ERROR (-1)
#define ENCSPU_ENCODE_WHOLE 0
#define ENCSPU_ENCODE_START (1<<0)
#define ENCSPU_ENCODE_CONTINUE (1<<1)
#define ENCSPU_ENCODE_END (1<<2)
#define ENCSPU_ENCODE_LOOP 1
#define ENCSPU_ENCODE_NO_LOOP 0
#define ENCSPU_ENCODE_ENDIAN_LITTLE 0
#define ENCSPU_ENCODE_ENDIAN_BIG 1
#define ENCSPU_ENCODE_MIDDLE_QULITY 0
#define ENCSPU_ENCODE_HIGH_QULITY 1
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern void DecDCTReset(int mode);
extern DECDCTENV *DecDCTGetEnv(DECDCTENV *env);
extern DECDCTENV *DecDCTPutEnv(DECDCTENV *env);
extern int DecDCTBufSize(u_long *bs);
extern int DecDCTvlc(u_long *bs, u_long *buf);
extern int DecDCTvlc2(u_long *bs, u_long *buf, DECDCTTAB table);
extern int DecDCTvlcSize(int size);
extern int DecDCTvlcSize2(int size);
extern void DecDCTvlcBuild(u_short *table);
extern void DecDCTin(u_long *buf, int mode);
extern void DecDCTout(u_long *buf, int size);
extern int DecDCTinSync( int mode) ;
extern int DecDCToutSync( int mode) ;
extern int DecDCTinCallback(void (*func)());
extern int DecDCToutCallback(void (*func)());
extern long EncSPU (ENCSPUENV *env);
extern long EncSPU2(ENCSPUENV *env);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBPRESS_H_ */

View file

@ -0,0 +1,79 @@
/* $PSLibId: Run-time Library Release 4.7$ */
#ifndef _LIBSIO_H_
#define _LIBSIO_H_
/*
* Copyright (C) 1996,1997 Sony Computer Entertainment Inc. All Rights Reserved
* libsio.h: Sio Interface
*/
/* status bits */
#define SR_IRQ 0x200
#define SR_CTS 0x100
#define SR_DSR 0x80
#define SR_FE 0x20
#define SR_OE 0x10
#define SR_PERROR 0x8
#define SR_TXU 0x4
#define SR_RXRDY 0x2
#define SR_TXRDY 0x1
#define SIO_CTS 0x100
#define SIO_DSR 0x80
#define SIO_FE 0x20
#define SIO_OE 0x10
#define SIO_PERROR 0x8
#define SIO_TXU 0x4
#define SIO_RXRDY 0x2
#define SIO_TXRDY 0x1
/* control bits */
#define CR_DSRIEN 0x1000
#define CR_RXIEN 0x800
#define CR_TXIEN 0x400
#define CR_BUFSZ_1 0x0
#define CR_BUFSZ_2 0x100
#define CR_BUFSZ_4 0x200
#define CR_BUFSZ_8 0x300
#define CR_INTRST 0x40
#define CR_RTS 0x20
#define CR_ERRRST 0x10
#define CR_BRK 0x8
#define CR_RXEN 0x4
#define CR_DTR 0x2
#define CR_TXEN 0x1
#define SIO_BIT_DTR CR_DTR
#define SIO_BIT_RTS CR_RTS
/* mode bits */
#define MR_SB_00 0x0
#define MR_SB_01 0x40
#define MR_SB_10 0x80
#define MR_SB_11 0xC0
#define MR_P_EVEN 0x20
#define MR_PEN 0x10
#define MR_CHLEN_5 0x0
#define MR_CHLEN_6 0x4
#define MR_CHLEN_7 0x8
#define MR_CHLEN_8 0xC
#define MR_BR_1 0x1
#define MR_BR_16 0x2
#define MR_BR_64 0x3
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern long AddSIO(int baud);
extern long DelSIO(void);
extern long _sio_control(unsigned long cmd, unsigned long arg, unsigned long param);
extern int Sio1Callback (void (*func)());
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBSIO_H_ */

158
tools/psyq/include/LIBSN.H Normal file
View file

@ -0,0 +1,158 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _LIBSN_H_
#define _LIBSN_H_
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
/*
** LIBSN.H declare libary functions provided by LIBSN.LIB
**
** 05/02/94 ADB
** 21/03/94 ADB added user notes as comments
** 18/09/94 ADB added PCcreat() - it was missing before
** 31/05/95 ADB added PSYQpause() for new debug stub 4.04
** 20/09/95 ADB added SNFlushCache - but removed after email from Tom Boyd
** 27/03/97 GJ v2.00
C++ linkage
Call to global destructors in snmain.s
** 12.2.98 GJ v2.01
C++ structor functions added in ctors.c
snmain.s shuffled - __do_global_dtors removed
Compiler support functions moved to libsngcc.lib
** 18.2.98 GJ v2.02
C++ structor functions trimmed down because of assumptions about group names
** 24.3.98 GJ v2.03
Initialise GP from __SN_GP_BASE linker symbol
*/
#define pollhost() __asm__ ("break 1024") /* inline to keep variable scope */
#define PSYQpause() __asm__ ("break 1031") /* inline to keep variable scope */
/*
** C++ static class object functions
** These are here for when you can't use __SN_ENTRY_POINT (eg a final build)
** or when you need to instantiate static class objects from an overlay.
** Static class objects are those declared with non-function scope which
** have constructors. How do these get called? In the startup code, normally!
** But in final builds you can't link with our startup code, and the Sony
** startup objects don't have hooks for C++ initialisation. So:
** Call __sn_cpp_structors to initialise your standard static class
** objects, or to destroy them. Memory has already
** been allocated for these objects in the image; these functions just call
** the constructors to populate that memory appropriately.
** Call __sn_cpp_structors(section_obj, section_objend),
** supplying the obj and objend variables for a ctors section, to initialise
** the class objects referenced in that section. Or supply the obj and
** objend variables for a dtors section to call the corresponding
** destructors.
*/
extern void __sn_cpp_structors (long, long);
/*
** FILESERVER FUNCTIONS:
**
** NOTE: For PCread and PCwrite do not load files by passing extreme
** values for count as you might on UNIX as this will cause the full
** amount specified to be transferred - the file will be padded to
** that length with zeroes which may over-write memory beyond the
** end of the file.
**
** If you are unsure of the length of a file which you are about
** to read into memory then perform a
** len = PClseek( fd, 0, 2);
** This will set len to the length of the file which you can then
** pass to a PCread() function call.
**
*/
/*
** re-initialise PC filing system, close open files etc
**
** passed: void
**
** return: error code (0 if no error)
*/
int PCinit (void);
/*
** open a file on PC host
**
** passed: PC file pathname, open mode, permission flags
**
** return: file-handle or -1 if error
**
** note: perms should be zero (it is ignored)
**
** open mode: 0 => read only
** 1 => write only
** 2 => read/write
*/
int PCopen (char *name, int flags, int perms);
/*
** create (and open) a file on PC host
**
** passed: PC file pathname, open mode, permission flags
**
** return: file-handle or -1 if error
**
** note: perms should be zero (it is ignored)
*/
int PCcreat (char *name, int perms);
/*
** seek file pointer to new position in file
**
** passed: file-handle, seek offset, seek mode
**
** return: absolute value of new file pointer position
**
** (mode 0 = rel to start, mode 1 = rel to current fp, mode 2 = rel to end)
*/
int PClseek (int fd, int offset, int mode);
/*
** read bytes from file on PC
**
** passed: file-handle, buffer address, count
**
** return: count of number of bytes actually read
**
** note: unlike assembler function this provides for full 32 bit count
*/
int PCread (int fd, char *buff, int len);
/*
** write bytes to file on PC
**
** passed: file-handle, buffer address, count
**
** return: count of number of bytes actually written
**
** note: unlike assembler function this provides for full 32 bit count
*/
int PCwrite (int fd, char *buff, int len);
/*
** close an open file on PC
**
** passed: file-handle
**
** return: negative if error
**
*/
int PCclose (int fd);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBSN_H_ */

508
tools/psyq/include/LIBSND.H Normal file
View file

@ -0,0 +1,508 @@
#ifndef _LIBSND_H_
#define _LIBSND_H_
/*****************************************************************
*
* $RCSfile: libsnd.h,v $
*
* Copyright (C) 1994 by Sony Computer Entertainment Inc.
* All Rights Reserved.
*
* Sony Computer Entertainment Inc. Development Department
*
*****************************************************************/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#include <sys/types.h>
/*
* Macro
*/
#define SSPLAY_INFINITY 0
#define SS_NOTICK 0x1000
#define SS_NOTICK0 0
#define SS_TICK60 1
#define SS_TICK240 2
#define SS_TICK120 3
#define SS_TICK50 4
#define SS_TICKVSYNC 5
#define SS_TICKMODE_MAX 6
#define SSPLAY_PAUSE 0
#define SSPLAY_PLAY 1
#define SS_SOFF 0
#define SS_SON 1
#define SS_MIX 0
#define SS_REV 1
#define SS_SERIAL_A 0
#define SS_SERIAL_B 1
#define SS_MUTE_OFF 0
#define SS_MUTE_ON 1
#define SS_IMEDIATE 0
#define SS_IMMEDIATE 0
#define SS_WAIT_COMPLETED 1
#define SS_REV_TYPE_OFF 0
#define SS_REV_TYPE_ROOM 1
#define SS_REV_TYPE_STUDIO_A 2
#define SS_REV_TYPE_STUDIO_B 3
#define SS_REV_TYPE_STUDIO_C 4
#define SS_REV_TYPE_HALL 5
#define SS_REV_TYPE_SPACE 6
#define SS_REV_TYPE_ECHO 7
#define SS_REV_TYPE_DELAY 8
#define SS_REV_TYPE_PIPE 9
#define SSSKIP_TICK 0
#define SSSKIP_NOTE4 1
#define SSSKIP_NOTE8 2
#define SSSKIP_BAR 3
#define SS_SEQ_TABSIZ 176
#define SND_VOLL 1
#define SND_VOLR 2
#define SND_ADSR1 4
#define SND_ADSR2 8
#define SND_ADDR 16
#define SND_PITCH 32
#ifndef NULL
#define NULL 0
#endif
/*
* Vag & Vab Structure
*/
typedef struct VabHdr { /* VAB Bank Headdings */
long form; /* always 'VABp' */
long ver; /* VAB file version number */
long id; /* VAB id */
unsigned long fsize; /* VAB file size */
unsigned short reserved0; /* system reserved */
unsigned short ps; /* # of the programs in this bank */
unsigned short ts; /* # of the tones in this bank */
unsigned short vs; /* # of the vags in this bank */
unsigned char mvol; /* master volume for this bank */
unsigned char pan; /* master panning for this bank */
unsigned char attr1; /* bank attributes1 */
unsigned char attr2; /* bank attributes2 */
unsigned long reserved1; /* system reserved */
} VabHdr; /* 32 byte */
typedef struct ProgAtr { /* Program Headdings */
unsigned char tones; /* # of tones */
unsigned char mvol; /* program volume */
unsigned char prior; /* program priority */
unsigned char mode; /* program mode */
unsigned char mpan; /* program pan */
char reserved0; /* system reserved */
short attr; /* program attribute */
unsigned long reserved1; /* system reserved */
unsigned long reserved2; /* system reserved */
} ProgAtr; /* 16 byte */
typedef struct VagAtr { /* VAG Tone Headdings */
unsigned char prior; /* tone priority */
unsigned char mode; /* play mode */
unsigned char vol; /* tone volume*/
unsigned char pan; /* tone panning */
unsigned char center; /* center note */
unsigned char shift; /* center note fine tune */
unsigned char min; /* minimam note limit */
unsigned char max; /* maximam note limit */
unsigned char vibW; /* vibrate depth */
unsigned char vibT; /* vibrate duration */
unsigned char porW; /* portamento depth */
unsigned char porT; /* portamento duration */
unsigned char pbmin; /* under pitch bend max */
unsigned char pbmax; /* upper pitch bend max */
unsigned char reserved1; /* system reserved */
unsigned char reserved2; /* system reserved */
unsigned short adsr1; /* adsr1 */
unsigned short adsr2; /* adsr2 */
short prog; /* parent program*/
short vag; /* vag reference */
short reserved[4]; /* system reserved */
} VagAtr; /* 32 byte */
/*
* Volume Structure
*/
typedef struct {
unsigned short left; /* L Channel */
unsigned short right; /* R Channel */
} SndVolume;
typedef struct SndVolume2 {
short left;
short right;
} SndVolume2;
typedef struct SndRegisterAttr {
SndVolume2 volume;
short pitch;
short mask;
short addr;
short adsr1;
short adsr2;
} SndRegisterAttr;
typedef struct SndVoiceStats {
short vagId;
short vabId;
unsigned short pitch;
short note;
short tone;
short prog_num;
short prog_actual;
short vol;
short pan;
} SndVoiceStats;
/*
* CallBack
*/
typedef void (*SsMarkCallbackProc)(short, short, short);
/*
* Prototype
*/
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern short SsVabOpenHead(unsigned char*, short);
extern short SsVabOpenHeadSticky(unsigned char*, short, unsigned long);
extern short SsVabTransBody(unsigned char*, short);
extern short SsVabTransBodyPartly(unsigned char*, unsigned long, short);
extern short SsVabTransfer(unsigned char *, unsigned char *, short, short);
extern short SsVabTransCompleted(short);
extern void SsVabClose(short);
extern void SsInit(void);
extern void SsInitHot(void);
extern void SsSetTableSize(char*, short, short);
extern void SsSetTickMode(long);
extern int SsSetTickCallback(void (*cb)());
extern void SsStart(void);
extern void SsStart2(void);
extern void SsEnd(void);
extern void SsQuit(void);
extern void SsSeqCalledTbyT(void);
extern short SsSeqOpen(unsigned long*, short);
extern void SsSeqPlay(short, char, short);
extern void SsSeqPlayPtoP(short, short, unsigned char *, unsigned char *, char, short);
extern void SsSeqPause(short);
extern void SsSeqReplay(short);
extern int SsSeqSkip(short, short, char, short);
extern void SsSeqStop(short);
extern void SsSeqSetVol(short, short, short);
extern void SsSeqSetNext(short, short);
extern void SsSeqSetCrescendo(short, short, long);
extern void SsSeqSetDecrescendo(short, short, long);
extern void SsSeqSetAccelerando(short, long, long);
extern void SsSeqSetRitardando(short, long, long);
extern void SsSeqClose(short);
extern short SsSepOpen(unsigned long*, short, short);
extern void SsSepPlay(short, short, char, short);
extern void SsSepPause(short, short);
extern void SsSepReplay(short, short);
extern void SsSepStop(short, short);
extern void SsSepSetVol(short, short, short, short);
extern void SsSepSetCrescendo(short, short, short, long);
extern void SsSepSetDecrescendo(short, short, short, long);
extern void SsSepSetAccelerando(short, short, long, long);
extern void SsSepSetRitardando(short, short, long, long);
extern void SsSepClose(short);
extern long SsVoKeyOn(long, long, unsigned short, unsigned short);
extern long SsVoKeyOff(long, long);
extern void SsSetMVol(short, short);
extern void SsGetMVol(SndVolume*);
extern void SsSetRVol(short, short);
extern void SsGetRVol(SndVolume*);
extern void SsSetMute(char);
extern char SsGetMute(void);
extern void SsSetSerialAttr(char, char, char);
extern char SsGetSerialAttr(char, char);
extern void SsSetSerialVol(char, short, short);
extern void SsGetSerialVol(char, SndVolume*);
extern void SsSetNck(short);
extern short SsGetNck(void);
extern void SsSetNoiseOn(short, short);
extern void SsSetNoiseOff(void);
extern void SsSetMono(void);
extern void SsSetStereo(void);
extern void SsSetTempo(short, short, short);
extern void SsSetLoop(short, short, short);
extern short SsIsEos(short, short);
extern void SsPlayBack(short, short, short);
extern void SsSetMarkCallback(short, short, SsMarkCallbackProc);
extern char SsSetReservedVoice(char);
extern short SsUtKeyOn(short, short, short, short, short, short, short);
extern short SsUtKeyOff(short, short, short, short, short);
extern short SsUtKeyOnV(short voice, short vabId, short prog, short tone,
short note, short fine, short voll, short volr);
extern short SsUtKeyOffV(short voice);
extern short SsUtPitchBend(short, short, short, short, short);
extern short SsUtChangePitch(short, short, short, short, short,
short, short);
extern short SsUtChangeADSR(short, short, short, short,
unsigned short, unsigned short);
extern short SsUtSetVabHdr(short, VabHdr*);
extern short SsUtGetVabHdr(short, VabHdr*);
extern short SsUtSetProgAtr(short, short, ProgAtr*);
extern short SsUtGetProgAtr(short, short, ProgAtr*);
extern short SsUtSetVagAtr(short, short, short, VagAtr*);
extern short SsUtGetVagAtr(short, short, short, VagAtr*);
extern short SsUtSetDetVVol(short, short, short);
extern short SsUtGetDetVVol(short, short*, short*);
extern short SsUtSetVVol(short, short, short);
extern short SsUtGetVVol(short, short*, short*);
extern short SsUtAutoVol(short, short, short, short);
extern short SsUtAutoPan(short, short, short, short);
extern void SsUtReverbOn(void);
extern void SsUtReverbOff(void);
extern short SsUtSetReverbType(short);
extern short SsUtGetReverbType(void);
extern void SsUtSetReverbDepth(short, short);
extern void SsUtSetReverbFeedback(short);
extern void SsUtSetReverbDelay(short);
extern void SsUtAllKeyOff(short);
extern void SsSetAutoKeyOffMode (short mode);
extern void SsUtFlush(void);
extern short SsVabFakeHead(unsigned char*, short, unsigned long);
extern short SsVabFakeBody(short);
extern unsigned long SsUtGetVBaddrInSB(short);
extern long SsUtGetVagAddr(short vabId, short vagId);
extern unsigned long SsUtGetVagAddrFromTone(short vabId, short progId,
short toneId);
extern void SsSetNext(short, short, short, short);
extern void SsSeqGetVol(short, short, short*, short*);
extern void SsChannelMute(short, short, long);
extern short SsSeqOpenJ(unsigned long*, short);
extern short SsSepOpenJ(unsigned long*, short, short);
extern unsigned char* SsGetCurrentPoint(short, short);
extern int SsSetCurrentPoint(short, short, unsigned char *);
extern long SsGetChannelMute(short, short);
extern void SsSetVoiceMask(unsigned long);
extern unsigned long SsGetVoiceMask(void);
extern void SsQueueRegisters(long, SndRegisterAttr*);
extern void SsQueueKeyOn(long);
extern void SsQueueReverb(long, long);
extern short SsGetActualProgFromProg(short, short);
extern void SsSetVoiceSettings(long, SndVoiceStats*);
extern unsigned short SsPitchFromNote(short, short, unsigned char,
unsigned char);
extern short SsVoiceCheck(long, long, short);
extern char SsBlockVoiceAllocation(void);
extern char SsUnBlockVoiceAllocation(void);
extern long SsAllocateVoices(unsigned char, unsigned char);
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
}
#endif
/*
* for function table
*/
#define CC_NUMBER 0
#define CC_BANKCHANGE 1
#define CC_DATAENTRY 2
#define CC_MAINVOL 3
#define CC_PANPOT 4
#define CC_EXPRESSION 5
#define CC_DAMPER 6
#define CC_NRPN1 7
#define CC_NRPN2 8
#define CC_RPN1 9
#define CC_RPN2 10
#define CC_EXTERNAL 11
#define CC_RESETALL 12
#define DE_PRIORITY 0
#define DE_MODE 1
#define DE_LIMITL 2
#define DE_LIMITH 3
#define DE_ADSR_AR_L 4
#define DE_ADSR_AR_E 5
#define DE_ADSR_DR 6
#define DE_ADSR_SL 7
#define DE_ADSR_SR_L 8
#define DE_ADSR_SR_E 9
#define DE_ADSR_RR_L 10
#define DE_ADSR_RR_E 11
#define DE_ADSR_SR 12
#define DE_VIB_TIME 13
#define DE_PORTA_DEPTH 14
#define DE_REV_TYPE 15
#define DE_REV_DEPTH 16
#define DE_ECHO_FB 17
#define DE_ECHO_DELAY 18
#define DE_DELAY 19
typedef struct {
void (*noteon) ();
void (*programchange) ();
void (*pitchbend) ();
void (*metaevent) ();
void (*control[13]) ();
void (*ccentry[20]) ();
} _SsFCALL;
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern void _SsNoteOn (short, short, unsigned char, unsigned char);
extern void _SsSetProgramChange(short, short, unsigned char);
extern void _SsGetMetaEvent(short, short, unsigned char);
extern void _SsSetPitchBend(short, short);
extern void _SsSetControlChange(short, short, unsigned char);
extern void _SsContBankChange(short, short);
extern void _SsContDataEntry(short, short, unsigned char);
extern void _SsContMainVol(short, short, unsigned char);
extern void _SsContPanpot(short, short, unsigned char);
extern void _SsContExpression(short, short, unsigned char);
extern void _SsContDamper(short, short, unsigned char);
extern void _SsContExternal(short, short, unsigned char);
extern void _SsContNrpn1(short, short, unsigned char);
extern void _SsContNrpn2(short, short, unsigned char);
extern void _SsContRpn1(short, short, unsigned char);
extern void _SsContRpn2(short, short, unsigned char);
extern void _SsContResetAll(short, short);
extern void _SsSetNrpnVabAttr0(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr1(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr2(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr3(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr4(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr5(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr6(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr7(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr8(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr9(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr10(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr11(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr12(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr13(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr14(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr15(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr16(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr17(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr18(short, short, short, VagAtr, short, unsigned char);
extern void _SsSetNrpnVabAttr19(short, short, short, VagAtr, short, unsigned char);
extern void dmy_nothing1(short, short, unsigned char, unsigned char);
extern void dmy_SsNoteOn (short, short, unsigned char, unsigned char);
extern void dmy_SsSetProgramChange(short, short, unsigned char);
extern void dmy_SsGetMetaEvent(short, short, unsigned char);
extern void dmy_SsSetPitchBend(short, short);
extern void dmy_SsSetControlChange(short, short, unsigned char);
extern void dmy_SsContBankChange(short, short);
extern void dmy_SsContDataEntry(short, short, unsigned char);
extern void dmy_SsContMainVol(short, short, unsigned char);
extern void dmy_SsContPanpot(short, short, unsigned char);
extern void dmy_SsContExpression(short, short, unsigned char);
extern void dmy_SsContDamper(short, short, unsigned char);
extern void dmy_SsContExternal(short, short, unsigned char);
extern void dmy_SsContNrpn1(short, short, unsigned char);
extern void dmy_SsContNrpn2(short, short, unsigned char);
extern void dmy_SsContRpn1(short, short, unsigned char);
extern void dmy_SsContRpn2(short, short, unsigned char);
extern void dmy_SsContResetAll(short, short);
extern void dmy_SsSetNrpnVabAttr0(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr1(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr2(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr3(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr4(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr5(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr6(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr7(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr8(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr9(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr10(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr11(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr12(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr13(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr14(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr15(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr16(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr17(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr18(short, short, short, VagAtr, short, unsigned char);
extern void dmy_SsSetNrpnVabAttr19(short, short, short, VagAtr, short, unsigned char);
extern _SsFCALL SsFCALL;
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
}
#endif
#if 0
jt_SsInit ()
{
SsFCALL.noteon = (void (*)())_SsNoteOn;
SsFCALL.programchange = (void (*)())_SsSetProgramChange;
SsFCALL.metaevent = (void (*)())_SsGetMetaEvent;
SsFCALL.pitchbend = (void (*)())_SsSetPitchBend;
SsFCALL.control [CC_NUMBER] = (void (*)())_SsSetControlChange;
SsFCALL.control [CC_BANKCHANGE] = (void (*)())_SsContBankChange;
SsFCALL.control [CC_MAINVOL] = (void (*)())_SsContMainVol;
SsFCALL.control [CC_PANPOT] = (void (*)())_SsContPanpot;
SsFCALL.control [CC_EXPRESSION] = (void (*)())_SsContExpression;
SsFCALL.control [CC_DAMPER] = (void (*)())_SsContDamper;
SsFCALL.control [CC_NRPN1] = (void (*)())_SsContNrpn1;
SsFCALL.control [CC_NRPN2] = (void (*)())_SsContNrpn2;
SsFCALL.control [CC_RPN1] = (void (*)())_SsContRpn1;
SsFCALL.control [CC_RPN2] = (void (*)())_SsContRpn2;
SsFCALL.control [CC_EXTERNAL] = (void (*)())_SsContExternal;
SsFCALL.control [CC_RESETALL] = (void (*)())_SsContResetAll;
SsFCALL.control [CC_DATAENTRY] = (void (*)())_SsContDataEntry;
SsFCALL.ccentry [DE_PRIORITY] = (void (*)())_SsSetNrpnVabAttr0;
SsFCALL.ccentry [DE_MODE] = (void (*)())_SsSetNrpnVabAttr1;
SsFCALL.ccentry [DE_LIMITL] = (void (*)())_SsSetNrpnVabAttr2;
SsFCALL.ccentry [DE_LIMITH] = (void (*)())_SsSetNrpnVabAttr3;
SsFCALL.ccentry [DE_ADSR_AR_L] = (void (*)())_SsSetNrpnVabAttr4;
SsFCALL.ccentry [DE_ADSR_AR_E] = (void (*)())_SsSetNrpnVabAttr5;
SsFCALL.ccentry [DE_ADSR_DR] = (void (*)())_SsSetNrpnVabAttr6;
SsFCALL.ccentry [DE_ADSR_SL] = (void (*)())_SsSetNrpnVabAttr7;
SsFCALL.ccentry [DE_ADSR_SR_L] = (void (*)())_SsSetNrpnVabAttr8;
SsFCALL.ccentry [DE_ADSR_SR_E] = (void (*)())_SsSetNrpnVabAttr9;
SsFCALL.ccentry [DE_ADSR_RR_L] = (void (*)())_SsSetNrpnVabAttr10;
SsFCALL.ccentry [DE_ADSR_RR_E] = (void (*)())_SsSetNrpnVabAttr11;
SsFCALL.ccentry [DE_ADSR_SR] = (void (*)())_SsSetNrpnVabAttr12;
SsFCALL.ccentry [DE_VIB_TIME] = (void (*)())_SsSetNrpnVabAttr13;
SsFCALL.ccentry [DE_PORTA_DEPTH] = (void (*)())_SsSetNrpnVabAttr14;
SsFCALL.ccentry [DE_REV_TYPE] = (void (*)())_SsSetNrpnVabAttr15;
SsFCALL.ccentry [DE_REV_DEPTH] = (void (*)())_SsSetNrpnVabAttr16;
SsFCALL.ccentry [DE_ECHO_FB] = (void (*)())_SsSetNrpnVabAttr17;
SsFCALL.ccentry [DE_ECHO_DELAY] = (void (*)())_SsSetNrpnVabAttr18;
SsFCALL.ccentry [DE_DELAY] = (void (*)())_SsSetNrpnVabAttr19;
}
#endif
/* ----------------------------------------------------------------
* End on File
* ---------------------------------------------------------------- */
#endif /* _LIBSND_H_ */
/* DON'T ADD STUFF AFTER THIS */

552
tools/psyq/include/LIBSPU.H Normal file
View file

@ -0,0 +1,552 @@
#ifndef _LIBSPU_H_
#define _LIBSPU_H_
/*****************************************************************
* -*- c -*-
* $RCSfile: libspu.h,v $
*
* Copyright (c) 1993, 1994, 1995, 1996 Sony Computer Entertainment Inc.
* All Rights Reserved.
*
* This file is part of ``PlayStation(R)'' Programmer Tool /
* Runtime Library.
*
* R & D Division, Sony Computer Entertainment Inc.
*
* $Id: libspu.h,v 1.80 1997/06/24 11:14:04 kaol Exp $
*
*****************************************************************/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/* ----------------------------------------------------------------
* CONSTANT
* ---------------------------------------------------------------- */
#define SPU_SUCCESS 0
#define SPU_INVALID_ARGS (-3)
#define SPU_DIAG (-2)
#define SPU_CHECK (-1)
#define SPU_OFF 0
#define SPU_ON 1
#define SPU_CLEAR 2
#define SPU_RESET 3
#define SPU_DONT_CARE 4
#define SPU_ALL 0
#define SPU_CDONLY 5
#define SPU_VOICEONLY 6
#define SPU_CONT 7
#define SPU_BIT 8
#define SPU_NULL 0
/* Macros below will be obsoleted. */
#define SpuDiag SPU_DIAG
#define SpuCheck SPU_CHECK
#define SpuOff SPU_OFF
#define SpuOn SPU_ON
#define SpuClear SPU_CLEAR
#define SpuReset SPU_RESET
#define SpuDontCare SPU_DONT_CARE
#define SpuALL SPU_ALL
#define SpuCDOnly SPU_CDONLY
#define SpuVoiceOnly SPU_VOICEONLY
#define SpuCont SPU_CONT
#define SpuNull SPU_NULL
#define SPU_OFF_ENV_ON 2
#define SPU_ON_ENV_OFF 3
/* Macros below will be obsoleted. */
#define SpuOffEnvOn SPU_OFF_ENV_ON
#define SpuOnEnvOff SPU_ON_ENV_OFF
#define SPU_ERROR (-1)
/* Macros below will be obsoleted. */
#define SpuError SPU_ERROR
#define SPU_TRANSFER_BY_DMA 0L
#define SPU_TRANSFER_BY_IO 1L
/* Macros below will be obsoleted. */
#define SpuTransferByDMA SPU_TRANSFER_BY_DMA
#define SpuTransferByIO SPU_TRANSFER_BY_IO
#define SpuTransByDMA SpuTransferByDMA
#define SpuTransByIO SpuTransferByIO
#define SPU_TRANSFER_WAIT 1
#define SPU_TRANSFER_PEEK 0
#define SPU_TRANSFER_GLANCE SPU_TRANSFER_PEEK
/*
* Voice designate
*/
#ifndef __SPU_VOICE
#define __SPU_VOICE
#define SPU_00CH (0x1L<< 0)
#define SPU_01CH (0x1L<< 1)
#define SPU_02CH (0x1L<< 2)
#define SPU_03CH (0x1L<< 3)
#define SPU_04CH (0x1L<< 4)
#define SPU_05CH (0x1L<< 5)
#define SPU_06CH (0x1L<< 6)
#define SPU_07CH (0x1L<< 7)
#define SPU_08CH (0x1L<< 8)
#define SPU_09CH (0x1L<< 9)
#define SPU_10CH (0x1L<<10)
#define SPU_11CH (0x1L<<11)
#define SPU_12CH (0x1L<<12)
#define SPU_13CH (0x1L<<13)
#define SPU_14CH (0x1L<<14)
#define SPU_15CH (0x1L<<15)
#define SPU_16CH (0x1L<<16)
#define SPU_17CH (0x1L<<17)
#define SPU_18CH (0x1L<<18)
#define SPU_19CH (0x1L<<19)
#define SPU_20CH (0x1L<<20)
#define SPU_21CH (0x1L<<21)
#define SPU_22CH (0x1L<<22)
#define SPU_23CH (0x1L<<23)
#define SPU_0CH SPU_00CH
#define SPU_1CH SPU_01CH
#define SPU_2CH SPU_02CH
#define SPU_3CH SPU_03CH
#define SPU_4CH SPU_04CH
#define SPU_5CH SPU_05CH
#define SPU_6CH SPU_06CH
#define SPU_7CH SPU_07CH
#define SPU_8CH SPU_08CH
#define SPU_9CH SPU_09CH
#define SPU_ALLCH (SPU_00CH | SPU_01CH | SPU_02CH | SPU_03CH | SPU_04CH | \
SPU_05CH | SPU_06CH | SPU_07CH | SPU_08CH | SPU_09CH | \
SPU_10CH | SPU_11CH | SPU_12CH | SPU_13CH | SPU_14CH | \
SPU_15CH | SPU_16CH | SPU_17CH | SPU_18CH | SPU_19CH | \
SPU_20CH | SPU_21CH | SPU_22CH | SPU_23CH)
#define SPU_KEYCH(x) (0x1L<<(x))
#define SPU_VOICECH(x) SPU_KEYCH(x)
#endif /* __SPU_VOICE */
/* for Voice setting */
#define SPU_VOICE_VOLL (0x01 << 0) /* volume (left) */
#define SPU_VOICE_VOLR (0x01 << 1) /* volume (right) */
#define SPU_VOICE_VOLMODEL (0x01 << 2) /* volume mode (left) */
#define SPU_VOICE_VOLMODER (0x01 << 3) /* volume mode (right) */
#define SPU_VOICE_PITCH (0x01 << 4) /* tone (pitch setting) */
#define SPU_VOICE_NOTE (0x01 << 5) /* tone (note setting) */
#define SPU_VOICE_SAMPLE_NOTE (0x01 << 6) /* waveform data sample note */
#define SPU_VOICE_WDSA (0x01 << 7) /* waveform data start address */
#define SPU_VOICE_ADSR_AMODE (0x01 << 8) /* ADSR Attack rate mode */
#define SPU_VOICE_ADSR_SMODE (0x01 << 9) /* ADSR Sustain rate mode */
#define SPU_VOICE_ADSR_RMODE (0x01 << 10) /* ADSR Release rate mode */
#define SPU_VOICE_ADSR_AR (0x01 << 11) /* ADSR Attack rate */
#define SPU_VOICE_ADSR_DR (0x01 << 12) /* ADSR Decay rate */
#define SPU_VOICE_ADSR_SR (0x01 << 13) /* ADSR Sustain rate */
#define SPU_VOICE_ADSR_RR (0x01 << 14) /* ADSR Release rate */
#define SPU_VOICE_ADSR_SL (0x01 << 15) /* ADSR Sustain level */
#define SPU_VOICE_LSAX (0x01 << 16) /* start address for loop */
#define SPU_VOICE_ADSR_ADSR1 (0x01 << 17) /* ADSR adsr1 for `VagAtr' */
#define SPU_VOICE_ADSR_ADSR2 (0x01 << 18) /* ADSR adsr2 for `VagAtr' */
#define SPU_VOICE_DIRECT 0
#define SPU_VOICE_LINEARIncN 1
#define SPU_VOICE_LINEARIncR 2
#define SPU_VOICE_LINEARDecN 3
#define SPU_VOICE_LINEARDecR 4
#define SPU_VOICE_EXPIncN 5
#define SPU_VOICE_EXPIncR 6
#define SPU_VOICE_EXPDec 7
#define SPU_VOICE_EXPDecN SPU_VOICE_EXPDec
#define SPU_VOICE_EXPDecR SPU_VOICE_EXPDec
#define SPU_DECODED_FIRSTHALF 0
#define SPU_DECODED_SECONDHALF 1
#define SPU_DECODE_FIRSTHALF SPU_DECODED_FIRSTHALF
#define SPU_DECODE_SECONDHALF SPU_DECODED_SECONDHALF
#define SPU_COMMON_MVOLL (0x01 << 0) /* master volume (left) */
#define SPU_COMMON_MVOLR (0x01 << 1) /* master volume (right) */
#define SPU_COMMON_MVOLMODEL (0x01 << 2) /* master volume mode (left) */
#define SPU_COMMON_MVOLMODER (0x01 << 3) /* master volume mode (right) */
#define SPU_COMMON_RVOLL (0x01 << 4) /* reverb volume (left) */
#define SPU_COMMON_RVOLR (0x01 << 5) /* reverb volume (right) */
#define SPU_COMMON_CDVOLL (0x01 << 6) /* CD input volume (left) */
#define SPU_COMMON_CDVOLR (0x01 << 7) /* CD input volume (right) */
#define SPU_COMMON_CDREV (0x01 << 8) /* CD input reverb on/off */
#define SPU_COMMON_CDMIX (0x01 << 9) /* CD input on/off */
#define SPU_COMMON_EXTVOLL (0x01 << 10) /* external digital input volume (left) */
#define SPU_COMMON_EXTVOLR (0x01 << 11) /* external digital input volume (right) */
#define SPU_COMMON_EXTREV (0x01 << 12) /* external digital input reverb on/off */
#define SPU_COMMON_EXTMIX (0x01 << 13) /* external digital input on/off */
/* for Reverb setting */
#define SPU_REV_MODE (0x01 << 0) /* mode setting */
#define SPU_REV_DEPTHL (0x01 << 1) /* reverb depth (left) */
#define SPU_REV_DEPTHR (0x01 << 2) /* reverb depth (right) */
#define SPU_REV_DELAYTIME (0x01 << 3) /* Delay Time (ECHO, DELAY only) */
#define SPU_REV_FEEDBACK (0x01 << 4) /* Feedback (ECHO only) */
#define SPU_REV_MODE_CHECK (-1)
#define SPU_REV_MODE_OFF 0
#define SPU_REV_MODE_ROOM 1
#define SPU_REV_MODE_STUDIO_A 2
#define SPU_REV_MODE_STUDIO_B 3
#define SPU_REV_MODE_STUDIO_C 4
#define SPU_REV_MODE_HALL 5
#define SPU_REV_MODE_SPACE 6
#define SPU_REV_MODE_ECHO 7
#define SPU_REV_MODE_DELAY 8
#define SPU_REV_MODE_PIPE 9
#define SPU_REV_MODE_MAX 10
#define SPU_REV_MODE_CLEAR_WA 0x100
/* ----------------------------------------------------------------
* Event flushing
* ---------------------------------------------------------------- */
#define SPU_EVENT_KEY (0x01 << 0)
#define SPU_EVENT_PITCHLFO (0x01 << 1)
#define SPU_EVENT_NOISE (0x01 << 2)
#define SPU_EVENT_REVERB (0x01 << 3)
#define SPU_EVENT_ALL 0
/* ----------------------------------------------------------------
* Structure
* ---------------------------------------------------------------- */
typedef struct {
short left; /* Lch */
short right; /* Rch */
} SpuVolume;
typedef struct {
unsigned long voice; /* set voice:
SpuSetVoiceAttr: each voice is a bit array
SpuGetVoiceAttr: voice is a bit value */
unsigned long mask; /* settings attribute bit (invalid with Get) */
SpuVolume volume; /* volume */
SpuVolume volmode; /* volume mode */
SpuVolume volumex; /* current volume (invalid with Set) */
unsigned short pitch; /* tone (pitch setting) */
unsigned short note; /* tone (note setting) */
unsigned short sample_note; /* tone (note setting) */
short envx; /* current envelope value (invalid with Set) */
unsigned long addr; /* waveform data start address */
unsigned long loop_addr; /* loop start address */
long a_mode; /* Attack rate mode */
long s_mode; /* Sustain rate mode */
long r_mode; /* Release rate mode */
unsigned short ar; /* Attack rate */
unsigned short dr; /* Decay rate */
unsigned short sr; /* Sustain rate */
unsigned short rr; /* Release rate */
unsigned short sl; /* Sustain level */
unsigned short adsr1; /* adsr1 for `VagAtr' */
unsigned short adsr2; /* adsr2 for `VagAtr' */
} SpuVoiceAttr;
typedef struct {
short voiceNum; /* voice number */
short pad; /* padding */
SpuVoiceAttr attr; /* voice attribute */
} SpuLVoiceAttr;
typedef struct {
unsigned long mask; /* settings mask */
long mode; /* reverb mode */
SpuVolume depth; /* reverb depth */
long delay; /* Delay Time (ECHO, DELAY only) */
long feedback; /* Feedback (ECHO only) */
} SpuReverbAttr;
#define SPU_DECODEDDATA_SIZE 0x200
#define SPU_DECODEDATA_SIZE SPU_DECODEDDATA_SIZE
typedef struct {
short cd_left [SPU_DECODEDDATA_SIZE];
short cd_right [SPU_DECODEDDATA_SIZE];
short voice1 [SPU_DECODEDDATA_SIZE];
short voice3 [SPU_DECODEDDATA_SIZE];
} SpuDecodedData;
typedef SpuDecodedData SpuDecodeData;
typedef struct {
SpuVolume volume; /* volume */
long reverb; /* reverb on/off */
long mix; /* mixing on/off */
} SpuExtAttr;
typedef struct {
unsigned long mask; /* settings mask */
SpuVolume mvol; /* master volume */
SpuVolume mvolmode; /* master volume mode */
SpuVolume mvolx; /* current master volume */
SpuExtAttr cd; /* CD input attributes */
SpuExtAttr ext; /* external digital input attributes */
} SpuCommonAttr;
#ifndef __SPU_IRQCALLBACK_PROC
#define __SPU_IRQCALLBACK_PROC
typedef void (*SpuIRQCallbackProc)(void);
#endif /* __SPU_IRQCALLBACK_PROC */
#ifndef __SPU_TRANSFERCALLBACK_PROC
#define __SPU_TRANSFERCALLBACK_PROC
typedef void (*SpuTransferCallbackProc)(void);
#endif /* __SPU_TRANSFERCALLBACK_PROC */
/* ----------------------------------------------------------------
* for SPU Malloc (used in SpuInitMalloc())
* ---------------------------------------------------------------- */
#define SPU_MALLOC_RECSIZ 8
/* ----------------------------------------------------------------
* User specifiable global environment
* ---------------------------------------------------------------- */
typedef struct {
unsigned long mask;
unsigned long queueing;
} SpuEnv;
#define SPU_ENV_EVENT_QUEUEING (0x01 << 0)
/* ----------------------------------------------------------------
* prototype declaration
* ---------------------------------------------------------------- */
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern void SpuInit (void);
extern void SpuInitHot (void);
extern void SpuStart (void);
extern void SpuQuit (void);
extern long SpuSetMute (long on_off);
extern long SpuGetMute (void);
extern void SpuSetEnv (SpuEnv *env);
extern long SpuSetNoiseClock (long n_clock);
extern long SpuGetNoiseClock (void);
extern unsigned long SpuSetNoiseVoice (long on_off, unsigned long voice_bit);
extern unsigned long SpuGetNoiseVoice (void);
extern long SpuSetReverb (long on_off);
extern long SpuGetReverb (void);
extern long SpuSetReverbModeParam (SpuReverbAttr *attr);
extern void SpuGetReverbModeParam (SpuReverbAttr *attr);
extern long SpuSetReverbDepth (SpuReverbAttr *attr);
extern long SpuReserveReverbWorkArea (long on_off);
extern long SpuIsReverbWorkAreaReserved (long on_off);
extern unsigned long SpuSetReverbVoice (long on_off, unsigned long voice_bit);
extern unsigned long SpuGetReverbVoice (void);
extern long SpuClearReverbWorkArea (long mode);
extern unsigned long SpuWrite (unsigned char *addr, unsigned long size);
extern unsigned long SpuWrite0 (unsigned long size);
extern unsigned long SpuRead (unsigned char *addr, unsigned long size);
extern long SpuSetTransferMode (long mode);
#define SpuSetTransMode(mode) SpuSetTransferMode((mode))
extern long SpuGetTransferMode (void);
#define SpuGetTransMode() SpuGetTransferMode()
extern unsigned long SpuSetTransferStartAddr (unsigned long addr);
#define SpuSetTransStartAddr(addr) SpuSetTransferStartAddr((addr))
extern unsigned long SpuGetTransferStartAddr (void);
#define SpuGetTransStartAddr() SpuGetTransferStartAddr()
extern unsigned long SpuWritePartly (unsigned char *addr, unsigned long size);
extern long SpuIsTransferCompleted (long flag);
extern SpuTransferCallbackProc SpuSetTransferCallback (SpuTransferCallbackProc func);
extern long SpuReadDecodedData (SpuDecodedData *d_data, long flag);
#define SpuReadDecodeData(d_data,flag) SpuReadDecodedData((d_data), (flag))
extern long SpuSetIRQ (long on_off);
extern long SpuGetIRQ (void);
extern unsigned long SpuSetIRQAddr (unsigned long);
extern unsigned long SpuGetIRQAddr (void);
extern SpuIRQCallbackProc SpuSetIRQCallback (SpuIRQCallbackProc);
extern void SpuSetVoiceAttr (SpuVoiceAttr *arg);
extern void SpuGetVoiceAttr (SpuVoiceAttr *arg);
extern void SpuSetKey (long on_off, unsigned long voice_bit);
extern void SpuSetKeyOnWithAttr (SpuVoiceAttr *attr);
extern long SpuGetKeyStatus (unsigned long voice_bit);
extern void SpuGetAllKeysStatus (char *status);
extern unsigned long SpuFlush (unsigned long ev);
extern unsigned long SpuSetPitchLFOVoice (long on_off, unsigned long voice_bit);
extern unsigned long SpuGetPitchLFOVoice (void);
extern void SpuSetCommonAttr (SpuCommonAttr *attr);
extern void SpuGetCommonAttr (SpuCommonAttr *attr);
extern long SpuInitMalloc (long num, char *top);
extern long SpuMalloc (long size);
extern long SpuMallocWithStartAddr (unsigned long addr, long size);
extern void SpuFree (unsigned long addr);
extern long SpuRGetAllKeysStatus (long min_, long max_, char *status);
extern long SpuRSetVoiceAttr (long min_, long max_, SpuVoiceAttr *arg);
extern void SpuNSetVoiceAttr (int vNum, SpuVoiceAttr *arg);
extern void SpuNGetVoiceAttr (int vNum, SpuVoiceAttr *arg);
extern void SpuLSetVoiceAttr (int num, SpuLVoiceAttr *argList);
extern void SpuSetVoiceVolume (int vNum, short volL, short volR);
extern void SpuSetVoiceVolumeAttr (int vNum, short volL, short volR,
short volModeL, short volModeR);
extern void SpuSetVoicePitch (int vNum, unsigned short pitch);
extern void SpuSetVoiceNote (int vNum, unsigned short note);
extern void SpuSetVoiceSampleNote (int vNum, unsigned short sampleNote);
extern void SpuSetVoiceStartAddr (int vNum, unsigned long startAddr);
extern void SpuSetVoiceLoopStartAddr (int vNum, unsigned long lsa);
extern void SpuSetVoiceAR (int vNum, unsigned short AR);
extern void SpuSetVoiceDR (int vNum, unsigned short DR);
extern void SpuSetVoiceSR (int vNum, unsigned short SR);
extern void SpuSetVoiceRR (int vNum, unsigned short RR);
extern void SpuSetVoiceSL (int vNum, unsigned short SL);
extern void SpuSetVoiceARAttr (int vNum, unsigned short AR, long ARmode);
extern void SpuSetVoiceSRAttr (int vNum, unsigned short SR, long SRmode);
extern void SpuSetVoiceRRAttr (int vNum, unsigned short RR, long RRmode);
extern void SpuSetVoiceADSR (int vNum, unsigned short AR, unsigned short DR,
unsigned short SR, unsigned short RR,
unsigned short SL);
extern void SpuSetVoiceADSRAttr (int vNum,
unsigned short AR, unsigned short DR,
unsigned short SR, unsigned short RR,
unsigned short SL,
long ARmode, long SRmode, long RRmode);
extern void SpuGetVoiceVolume (int vNum, short *volL, short *volR);
extern void SpuGetVoiceVolumeAttr (int vNum, short *volL, short *volR,
short *volModeL, short *volModeR);
extern void SpuGetVoiceVolumeX (int vNum, short *volXL, short *volXR);
extern void SpuGetVoicePitch (int vNum, unsigned short *pitch);
extern void SpuGetVoiceNote (int vNum, unsigned short *note);
extern void SpuGetVoiceSampleNote (int vNum, unsigned short *sampleNote);
extern void SpuGetVoiceEnvelope (int vNum, short *envx);
extern void SpuGetVoiceStartAddr (int vNum, unsigned long *startAddr);
extern void SpuGetVoiceLoopStartAddr (int vNum, unsigned long *loopStartAddr);
extern void SpuGetVoiceAR (int vNum, unsigned short *AR);
extern void SpuGetVoiceDR (int vNum, unsigned short *DR);
extern void SpuGetVoiceSR (int vNum, unsigned short *SR);
extern void SpuGetVoiceRR (int vNum, unsigned short *RR);
extern void SpuGetVoiceSL (int vNum, unsigned short *SL);
extern void SpuGetVoiceARAttr (int vNum, unsigned short *AR, long *ARmode);
extern void SpuGetVoiceSRAttr (int vNum, unsigned short *SR, long *SRmode);
extern void SpuGetVoiceRRAttr (int vNum, unsigned short *RR, long *RRmode);
extern void SpuGetVoiceADSR (int vNum,
unsigned short *AR, unsigned short *DR,
unsigned short *SR, unsigned short *RR,
unsigned short *SL);
extern void SpuGetVoiceADSRAttr (int vNum,
unsigned short *AR, unsigned short *DR,
unsigned short *SR, unsigned short *RR,
unsigned short *SL,
long *ARmode, long *SRmode, long *RRmode);
extern void SpuGetVoiceEnvelopeAttr (int vNum, long *keyStat, short *envx );
extern void SpuSetCommonMasterVolume (short mvol_left, short mvol_right);
extern void SpuSetCommonMasterVolumeAttr (short mvol_left, short mvol_right,
short mvolmode_left,
short mvolmode_right);
extern void SpuSetCommonCDMix (long cd_mix);
extern void SpuSetCommonCDVolume (short cd_left, short cd_right);
extern void SpuSetCommonCDReverb (long cd_reverb);
extern void SpuGetCommonMasterVolume (short *mvol_left, short *mvol_right);
extern void SpuGetCommonMasterVolumeX (short *mvolx_left, short *mvolx_right);
extern void SpuGetCommonMasterVolumeAttr (short *mvol_left, short *mvol_right,
short *mvolmode_left,
short *mvolmode_right);
extern void SpuGetCommonCDMix (long *cd_mix);
extern void SpuGetCommonCDVolume (short *cd_left, short *cd_right);
extern void SpuGetCommonCDReverb (long *cd_reverb);
extern long SpuSetReverbModeType (long mode);
extern void SpuSetReverbModeDepth (short depth_left, short depth_right);
extern void SpuSetReverbModeDelayTime (long delay);
extern void SpuSetReverbModeFeedback (long feedback);
extern void SpuGetReverbModeType (long *mode);
extern void SpuGetReverbModeDepth (short *depth_left, short *depth_right);
extern void SpuGetReverbModeDelayTime (long *delay);
extern void SpuGetReverbModeFeedback (long *feedback);
extern void SpuSetESA( long revAddr );
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
}
#endif
/* ---------------------------------------------------------------- */
#define SPU_ST_NOT_AVAILABLE 0
#define SPU_ST_ACCEPT 1
#define SPU_ST_ERROR (-1)
#define SPU_ST_INVALID_ARGUMENT (-2)
#define SPU_ST_WRONG_STATUS (-3)
#define SPU_ST_STOP 2
#define SPU_ST_IDLE 3
#define SPU_ST_PREPARE 4
#define SPU_ST_START 5
#define SPU_ST_PLAY 6
#define SPU_ST_TRANSFER 7
#define SPU_ST_FINAL 8
/* VAG's header size */
#define SPU_ST_VAG_HEADER_SIZE 0x30
typedef struct {
char status; /* stream status */
char pad1; /* padding */
char pad2; /* padding */
char pad3; /* padding */
long last_size; /* the size of last transferring
(last_size <= (size / 2)) */
unsigned long buf_addr; /* The start address of stream buffer */
unsigned long data_addr; /* The start address of SPU streaming
data in main memory */
} SpuStVoiceAttr;
typedef struct {
long size; /* The size of stream buffer */
long low_priority; /* transfer priority */
SpuStVoiceAttr voice [24];
} SpuStEnv;
#ifndef __SPU_ST_TRANSFERCALLBACK_PROC
#define __SPU_ST_TRANSFERCALLBACK_PROC
typedef void (*SpuStCallbackProc)(unsigned long, long);
#endif /* __SPU_TRANSFERCALLBACK_PROC */
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern SpuStEnv *SpuStInit (long);
extern long SpuStQuit (void);
extern long SpuStGetStatus (void);
extern unsigned long SpuStGetVoiceStatus (void);
extern long SpuStTransfer (long flag, unsigned long voice_bit);
extern SpuStCallbackProc SpuStSetPreparationFinishedCallback (SpuStCallbackProc func);
extern SpuStCallbackProc SpuStSetTransferFinishedCallback (SpuStCallbackProc func);
extern SpuStCallbackProc SpuStSetStreamFinishedCallback (SpuStCallbackProc func);
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus)
}
#endif
/* ----------------------------------------------------------------
* End on File
* ---------------------------------------------------------------- */
#endif /* _LIBSPU_H_ */
/* DON'T ADD STUFF AFTER THIS */

View file

@ -0,0 +1,25 @@
/* $PSLibId: Run-time Library Release 4.7$ */
#ifndef _LIBTAP_H_
#define _LIBTAP_H_
/*
* Copyright (C) 1996 Sony Computer Entertainment Inc. All Rights Reserved
* libtap.h: Multi Tap Interface
*/
/*
* Prototypes
*/
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern void InitTAP(char *, long, char *, long);
extern void StartTAP(void);
extern void StopTAP(void);
extern void EnableTAP(void);
extern void DisableTAP(void);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _LIBTAP_H_ */

View file

@ -0,0 +1,38 @@
/*
* File:limits.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _LIMITS_H
#define _LIMITS_H
/*
* This file specifies the sizes of intergral types as required by the
* proposed ANSI C standard.
*/
#define CHAR_BIT 8
#define SCHAR_MIN (-128)
#define SCHAR_MAX 127
#define UCHAR_MAX 255
#define CHAR_MIN SCHAR_MIN
#define CHAR_MAX SCHAR_MAX
#define SHRT_MIN (-32768)
#define SHRT_MAX 32767
#define USHRT_MAX 65535
#define INT_MIN (-2147483647-1)
#define INT_MAX 2147483647
#define UINT_MAX 4294967295U
#define LONG_MIN (-2147483647-1)
#define LONG_MAX 2147483647
#define ULONG_MAX 4294967295UL
#define USI_MAX 4294967295 /* max decimal value of an "unsigned" */
#define WORD_BIT 32 /* # of bits in a "word" or "int" */
#ifndef MB_LEN_MAX
#define MB_LEN_MAX 4
#endif
#endif /* _LIMITS_H */

View file

@ -0,0 +1,41 @@
/*
* File:malloc.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _MALLOC_H
#define _MALLOC_H
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */
#endif
#ifndef NULL
#define NULL 0 /* null pointer constant */
#endif
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern void InitHeap (unsigned long *, unsigned long);
extern void free(void *);
extern void *malloc(size_t);
extern void *calloc(size_t, size_t);
extern void *realloc(void *, size_t);
extern void InitHeap2 (unsigned long *, unsigned long);
extern void free2(void *);
extern void *malloc2(size_t);
extern void *calloc2(size_t, size_t);
extern void *realloc2(void *, size_t);
extern void InitHeap3(unsigned long *, unsigned long);
extern void free3(void *);
extern void *malloc3(size_t);
extern void *calloc3(size_t, size_t);
extern void *realloc3(void *, size_t);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _MALLOC_H */

132
tools/psyq/include/MCGUI.H Normal file
View file

@ -0,0 +1,132 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _MCGUI_H_
#define _MCGUI_H_
#define NEGICON_A (0x20)
#define NEGICON_B (0x10)
#define MOUSE_LBUTTON (0x08)
#define MOUSE_RBUTTON (0x04)
#define MCGUI_INTERNAL_FONT (0)
#define MCGUI_EXTERNAL_FONT (1)
/* Texture Information Structure */
typedef struct {
unsigned long* addr;
} sMcGuiTexture;
/* Memory Card Information Structure */
typedef struct {
char file[21];
char title[65];
char frame;
char block;
long dataBytes;
unsigned long* iconAddr;
unsigned long* dataAddr;
} sMcGuiCards;
/* BG Information Structure */
typedef struct {
short mode;
signed char scrollDirect; /* 0:Up 1:Up&Left 2:Left 3:Down&left 4:Down ...*/
signed char scrollSpeed; /* 0:no scroll 1:1/60 2:1/30 3:1/20 */
unsigned long* timadr;
} sMcGuiBg;
/* Cursor Information Structure */
typedef struct {
char type;
unsigned char r;
unsigned char g;
unsigned char b;
} sMcGuiCursor;
/* BGM,Sound Effects Information Structure */
typedef struct {
int MVOL;
struct {
int isbgm;
unsigned long* seq;
unsigned long* vh;
unsigned long* vb;
int SVOL;
int isReverb;
int reverbType;
int reverbDepth;
} bgm;
struct {
int isse;
unsigned long* vh;
unsigned long* vb;
int vol;
int prog;
int TONE_OK;
int TONE_CANCEL;
int TONE_CURSOR;
int TONE_ERROR;
} se;
} sMcGuiSnd;
/* Controller Related Information Structure */
typedef struct {
volatile unsigned char* buf[2];
struct {
int flag;
unsigned long BUTTON_OK;
unsigned long BUTTON_CANCEL;
} type1;
struct {
int flag;
unsigned long BUTTON_OK;
unsigned long BUTTON_CANCEL;
} type2;
struct {
int flag;
unsigned long BUTTON_OK;
unsigned long BUTTON_CANCEL;
} type3;
struct {
int flag;
unsigned long BUTTON_OK;
unsigned long BUTTON_CANCEL;
} type4;
} sMcGuiController;
/* Memory Card Screen Configuration Structure */
typedef struct {
sMcGuiCards cards; /* Memory Card Information */
sMcGuiBg bg; /* BG Information */
sMcGuiController controller; /* Controller Related Information */
sMcGuiSnd sound; /* BGM Sound Effects Information */
sMcGuiTexture texture; /* Texture Information */
sMcGuiCursor cursor; /* Cursor Information */
} McGuiEnv;
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern int McGuiSave(McGuiEnv* env);
extern int McGuiLoad(McGuiEnv* env);
int McGuiSetExternalFont(McGuiEnv* env, int mode);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _MCGUI_H_ */

View file

@ -0,0 +1,44 @@
/*
* File:memory.h
* memory functions pseudo definition header
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _MEMORY_H
#define _MEMORY_H
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */
#endif
#ifndef NULL
#define NULL 0 /* null pointer constant */
#endif
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
/* To avoid conflicting */
extern void *memcpy (/* unsigned char *, unsigned char *, int */);
extern void *memmove(unsigned char *, const unsigned char *, int);
/* To avoid conflicting */
extern int memcmp (/* unsigned char *, unsigned char *, int */);
extern void *memchr (const unsigned char *, unsigned char, int);
extern void *memset (/* unsigned char *, unsigned char, int */);
extern void *bcopy(const unsigned char *, unsigned char *, int); /* src,dest */
extern void *bzero(unsigned char *, int);
extern int bcmp (const unsigned char *, const unsigned char *, int);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _MEMORY_H */

View file

@ -0,0 +1,30 @@
#define PROFMASK unsigned int
typedef struct _profentry
{
void* address;
unsigned int flags;
} profentry;
typedef struct _profhdr
{
void* start;
void* end;
profentry* buffptr;
profentry* buffend;
unsigned int flags;
unsigned int mask;
profentry* ptr;
} profhdr;
/*************************************************/
/* Profiler functions */
/*************************************************/
extern void INITprofile(void* ptr, unsigned int length);
extern void SETprofrange(PROFMASK mask, void* startpc, void* endpc);
extern PROFMASK SETprofileflags(PROFMASK flags);
extern PROFMASK CLRprofileflags(PROFMASK flags);
extern void SNprofile();

View file

@ -0,0 +1,30 @@
/*
* File:qsort.h
* memory functions pseudo definition header
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _QSORT_H
#define _QSORT_H
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */
#endif
#ifndef NULL
#define NULL 0 /* null pointer constant */
#endif
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern void qsort(void *, size_t, size_t, int (*)());
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _QSORT_H */

244
tools/psyq/include/R3000.H Normal file
View file

@ -0,0 +1,244 @@
/*
* File:r3000.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _R3000_H
#define _R3000_H
/*
* Segment base addresses and sizes
*/
#define K0BASE 0x80000000
#define K0SIZE 0x20000000
#define K1BASE 0xA0000000
#define K1SIZE 0x20000000
#define K2BASE 0xC0000000
#define K2SIZE 0x20000000
/*
* Exception vectors
*/
#define UT_VEC K0BASE /* utlbmiss vector */
#define E_VEC (K0BASE+0x80) /* exception vector */
#define R_VEC (K1BASE+0x1fc00000) /* reset vector */
/*
* Address conversion macros
*/
#define K0_TO_K1(x) ((unsigned)(x)|0xA0000000) /* kseg0 to kseg1 */
#define K1_TO_K0(x) ((unsigned)(x)&0x9FFFFFFF) /* kseg1 to kseg0 */
#define K0_TO_PHYS(x) ((unsigned)(x)&0x1FFFFFFF) /* kseg0 to physical */
#define K1_TO_PHYS(x) ((unsigned)(x)&0x1FFFFFFF) /* kseg1 to physical */
#define PHYS_TO_K0(x) ((unsigned)(x)|0x80000000) /* physical to kseg0 */
#define PHYS_TO_K1(x) ((unsigned)(x)|0xA0000000) /* physical to kseg1 */
/*
* Address predicates
*/
#define IS_KSEG0(x) ((unsigned)(x) >= K0BASE && (unsigned)(x) < K1BASE)
#define IS_KSEG1(x) ((unsigned)(x) >= K1BASE && (unsigned)(x) < K2BASE)
#define IS_KSEG2(x) ((unsigned)(x) >= K2BASE && (unsigned)(x) < KPTEBASE)
#define IS_KPTESEG(x) ((unsigned)(x) >= KPTEBASE)
#define IS_KUSEG(x) ((unsigned)(x) < K0BASE)
/*
* Cache size constants
*/
#define MINCACHE +(4*1024) /* leading plus for mas's benefit */
#define MAXCACHE +(64*1024) /* leading plus for mas's benefit */
/*
* Status register
*/
#define SR_CUMASK 0xf0000000 /* coproc usable bits */
#define SR_CU3 0x80000000 /* Coprocessor 3 usable */
#define SR_CU2 0x40000000 /* Coprocessor 2 usable */
#define SR_CU1 0x20000000 /* Coprocessor 1 usable */
#define SR_CU0 0x10000000 /* Coprocessor 0 usable */
#define SR_BEV 0x00400000 /* use boot exception vectors */
/* Cache control bits */
#define SR_TS 0x00200000 /* TLB shutdown */
#define SR_PE 0x00100000 /* cache parity error */
#define SR_CM 0x00080000 /* cache miss */
#define SR_PZ 0x00040000 /* cache parity zero */
#define SR_SWC 0x00020000 /* swap cache */
#define SR_ISC 0x00010000 /* Isolate data cache */
#define SR_MM_MODE 0x00010000 /* lwl/swl/etc become scache/etc */
#define lcache lwl
#define scache swl
#define flush lwr $0,
#define inval swr $0,
/*
* Interrupt enable bits
* (NOTE: bits set to 1 enable the corresponding level interrupt)
*/
#define SR_IMASK 0x0000ff00 /* Interrupt mask */
#define SR_IMASK8 0x00000000 /* mask level 8 */
#define SR_IMASK7 0x00008000 /* mask level 7 */
#define SR_IMASK6 0x0000c000 /* mask level 6 */
#define SR_IMASK5 0x0000e000 /* mask level 5 */
#define SR_IMASK4 0x0000f000 /* mask level 4 */
#define SR_IMASK3 0x0000f800 /* mask level 3 */
#define SR_IMASK2 0x0000fc00 /* mask level 2 */
#define SR_IMASK1 0x0000fe00 /* mask level 1 */
#define SR_IMASK0 0x0000ff00 /* mask level 0 */
#define SR_IBIT8 0x00008000 /* bit level 8 */
#define SR_IBIT7 0x00004000 /* bit level 7 */
#define SR_IBIT6 0x00002000 /* bit level 6 */
#define SR_IBIT5 0x00001000 /* bit level 5 */
#define SR_IBIT4 0x00000800 /* bit level 4 */
#define SR_IBIT3 0x00000400 /* bit level 3 */
#define SR_IBIT2 0x00000200 /* bit level 2 */
#define SR_IBIT1 0x00000100 /* bit level 1 */
#define SR_KUO 0x00000020 /* old kernel/user, 0 => k, 1 => u */
#define SR_IEO 0x00000010 /* old interrupt enable, 1 => enable */
#define SR_KUP 0x00000008 /* prev kernel/user, 0 => k, 1 => u */
#define SR_IEP 0x00000004 /* prev interrupt enable, 1 => enable */
#define SR_KUC 0x00000002 /* cur kernel/user, 0 => k, 1 => u */
#define SR_IEC 0x00000001 /* cur interrupt enable, 1 => enable */
#define SR_IMASKSHIFT 8
#define SR_FMT "\20\40BD\26TS\25PE\24CM\23PZ\22SwC\21IsC\20IM7\17IM6\16IM5\15IM4\14IM3\13IM2\12IM1\11IM0\6KUo\5IEo\4KUp\3IEp\2KUc\1IEc"
/*
* Cause Register
*/
#define CAUSE_BD 0x80000000 /* Branch delay slot */
#define CAUSE_CEMASK 0x30000000 /* coprocessor error */
#define CAUSE_CESHIFT 28
/* Interrupt pending bits */
#define CAUSE_IP8 0x00008000 /* External level 8 pending */
#define CAUSE_IP7 0x00004000 /* External level 7 pending */
#define CAUSE_IP6 0x00002000 /* External level 6 pending */
#define CAUSE_IP5 0x00001000 /* External level 5 pending */
#define CAUSE_IP4 0x00000800 /* External level 4 pending */
#define CAUSE_IP3 0x00000400 /* External level 3 pending */
#define CAUSE_SW2 0x00000200 /* Software level 2 pending */
#define CAUSE_SW1 0x00000100 /* Software level 1 pending */
#define CAUSE_IPMASK 0x0000FF00 /* Pending interrupt mask */
#define CAUSE_IPSHIFT 8
#define CAUSE_EXCMASK 0x0000003C /* Cause code bits */
#define CAUSE_EXCSHIFT 2
#define CAUSE_FMT "\20\40BD\36CE1\35CE0\20IP8\17IP7\16IP6\15IP5\14IP4\13IP3\12SW2\11SW1\1INT"
/* Cause register exception codes */
#define EXC_CODE(x) ((x)<<2)
/* Hardware exception codes */
#define EXC_INT EXC_CODE(0) /* interrupt */
#define EXC_MOD EXC_CODE(1) /* TLB mod */
#define EXC_RMISS EXC_CODE(2) /* Read TLB Miss */
#define EXC_WMISS EXC_CODE(3) /* Write TLB Miss */
#define EXC_RADE EXC_CODE(4) /* Read Address Error */
#define EXC_WADE EXC_CODE(5) /* Write Address Error */
#define EXC_IBE EXC_CODE(6) /* Instruction Bus Error */
#define EXC_DBE EXC_CODE(7) /* Data Bus Error */
#define EXC_SYSCALL EXC_CODE(8) /* SYSCALL */
#define EXC_BREAK EXC_CODE(9) /* BREAKpoint */
#define EXC_II EXC_CODE(10) /* Illegal Instruction */
#define EXC_CPU EXC_CODE(11) /* CoProcessor Unusable */
#define EXC_OV EXC_CODE(12) /* OVerflow */
/* software exception codes */
#define SEXC_SEGV EXC_CODE(16) /* Software detected seg viol */
#define SEXC_RESCHED EXC_CODE(17) /* resched request */
#define SEXC_PAGEIN EXC_CODE(18) /* page-in request */
#define SEXC_CPU EXC_CODE(19) /* coprocessor unusable */
/*
* Coprocessor 0 registers
*/
#define C0_INX $0 /* tlb index */
#define C0_RAND $1 /* tlb random */
#define C0_TLBLO $2 /* tlb entry low */
#define C0_CTXT $4 /* tlb context */
#define C0_PIDMASK $6 /* Mips2 */
#define C0_BADVADDR $8 /* bad virtual address */
#define C0_TLBHI $10 /* tlb entry hi */
#define C0_PID $10 /* Mips2 */
#define C0_SR $12 /* status register */
#define C0_CAUSE $13 /* exception cause */
#define C0_EPC $14 /* exception pc */
#define C0_PRID $15 /* revision identifier */
#define C0_ERREG $16 /* Mips2 */
/*
* Coprocessor 0 operations
*/
#define C0_READI 0x1 /* read ITLB entry addressed by C0_INDEX */
#define C0_WRITEI 0x2 /* write ITLB entry addressed by C0_INDEX */
#define C0_WRITER 0x6 /* write ITLB entry addressed by C0_RAND */
#define C0_PROBE 0x8 /* probe for ITLB entry addressed by TLBHI */
#define C0_RFE 0x10 /* restore for exception */
/*
* Flags for the nofault handler. 0 means no fault is expected.
*/
#define NF_BADADDR 1 /* badaddr, wbadaddr */
#define NF_COPYIO 2 /* copyin, copyout */
#define NF_ADDUPC 3 /* addupc */
#define NF_FSUMEM 4 /* fubyte, subyte, fuword, suword */
#define NF_USERACC 5 /* useracc */
#define NF_SOFTFP 6 /* softfp */
#define NF_REVID 7 /* revision ids */
#define NF_NENTRIES 8
/*
* TLB size constants
*/
#define TLBWIREDBASE 0 /* WAG for now */
#define NWIREDENTRIES 8 /* WAG for now */
#define TLBRANDOMBASE NWIREDENTRIES
#define NRANDOMENTRIES (NTLBENTRIES-NWIREDENTRIES)
#define NTLBENTRIES 64 /* WAG for now */
#define TLBRAND_RANDMASK 0x00003f00
#define TLBRAND_RANDSHIFT 8
/*
* Chip interrupt vector
*/
#define NC0VECS 8
#ifndef LOCORE
#ifdef KERNEL
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern int (*c0vec_tbl[])();
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif
#endif /* !LOCORE */
#define BRK_KERNEL 0xf1
#define EXCEPT_NORM 1
#define EXCEPT_UTLB 2
#define EXCEPT_BRKPT 3
#define EXCEPT_DB 4
#define EXCEPT_GDB 4
#define EXCEPT_INT 9
#define EXCEPT_ELSE 0xff
#endif /* _R3000_H */

22
tools/psyq/include/RAND.H Normal file
View file

@ -0,0 +1,22 @@
/*
* File:rand.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _RAND_H
#define _RAND_H
#define RAND_MAX 32767
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern int rand(void);
extern void srand(unsigned int);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _RAND_H */

View file

@ -0,0 +1,15 @@
/*
* romio.h
*
* rom monitor i/o
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _ROMIO_H
#define _ROMIO_H
#include <sys/file.h>
#endif /* _ROMIO_H */

View file

@ -0,0 +1,40 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/*
* File:setjmp.h
* simple non-local-jump for single task environment
*/
#ifndef _SETJMP_H
#define _SETJMP_H
/* jmp_buf indices */
#define JB_PC 0
#define JB_SP 1
#define JB_FP 2
#define JB_S0 3
#define JB_S1 4
#define JB_S2 5
#define JB_S3 6
#define JB_S4 7
#define JB_S5 8
#define JB_S6 9
#define JB_S7 10
#define JB_GP 11
#define JB_SIZE 12
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
typedef int jmp_buf[JB_SIZE];
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern int setjmp(jmp_buf);
extern void longjmp(jmp_buf, int);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif
#endif /* _SETJMP_H */

View file

@ -0,0 +1,27 @@
/*
* File:stdarg.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _STDARG_H
#define _STDARG_H
#define __va_rounded_size(TYPE) \
(((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
#define va_start(AP, LASTARG) \
(AP = ((char *)&(LASTARG) + __va_rounded_size(LASTARG)))
#define va_end(AP) AP = (char *)NULL
#define va_arg(AP, TYPE) \
(AP = ((char *) (AP)) += __va_rounded_size (TYPE), \
*((TYPE *) ((char *) (AP) - __va_rounded_size (TYPE))))
typedef void *va_list;
#endif /* _STDARG_H */

View file

@ -0,0 +1,50 @@
/*
* File:stddef.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _STDDEF_H
#define _STDDEF_H
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */
#endif
#ifndef _WCHAR_T
#define _WCHAR_T
typedef unsigned long wchar_t; /* type of a wide character */
#endif
#ifndef _UCHAR_T
#define _UCHAR_T
typedef unsigned char u_char;
#endif
#ifndef _USHORT_T
#define _USHORT_T
typedef unsigned short u_short;
#endif
#ifndef _UINT_T
#define _UINT_T
typedef unsigned int u_int;
#endif
#ifndef _ULONG_T
#define _ULONG_T
typedef unsigned long u_long;
#endif
#ifndef WEOF
#define WEOF 0xffffffff
#endif
#ifndef NULL
#define NULL 0 /* null pointer constant */
#endif
#endif /* _STDDEF_H */

View file

@ -0,0 +1,47 @@
/*
* $PSLibId: Run-time Library Release 4.7$
*/
/*
* File:stdio.h
*/
#ifndef _STDIO_H
#define _STDIO_H
#define BUFSIZ 1024
#define EOF (-1)
#ifndef SEEK_SET
#define SEEK_SET 0
#endif
#ifndef SEEK_CUR
#define SEEK_CUR 1
#endif
#ifndef SEEK_END
#define SEEK_END 2
#endif
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */
#endif
/* under constraction now */
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern int printf(const char *fmt, ...); /**/
extern int sprintf(char *buffer, const char *fmt, ...);
extern char getc(int); /**/
extern char getchar(void);
extern char *gets(char *);
extern void putc(char, int); /**/
extern void putchar(char);
extern void puts(const char *);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _STDIO_H */

View file

@ -0,0 +1,30 @@
/*
* File:stdlib.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _STDLIB_H
#define _STDLIB_H
#include <stddef.h>
#include <abs.h>
#include <convert.h>
#include <malloc.h>
#include <qsort.h>
#include <rand.h>
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern void *bsearch(const unsigned char *, const unsigned char *,
size_t, size_t, int (*)());
extern void exit();
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#endif /* _STDLIB_H */

View file

@ -0,0 +1,26 @@
#ifndef _STRING_H
#define _STRING_H
/*****************************************************************
* -*- c -*-
* $RCSfile$
*
* Copyright (C) 1994, 1995 by Sony Computer Entertainment Inc.
* All Rights Reserved.
*
* Sony Computer Entertainment Inc. R & D Division
*
* $Id$
*
*****************************************************************/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#include <strings.h>
/* ----------------------------------------------------------------
* End on File
* ---------------------------------------------------------------- */
#endif /* _STRING_H_ */
/* DON'T ADD STUFF AFTER THIS */

View file

@ -0,0 +1,52 @@
/*
* File:strings.h
* string functions pseudo definition header
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _STRINGS_H
#define _STRINGS_H
#define LMAX 256
#ifndef NULL
#define NULL 0 /* null pointer constant */
#endif
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */
#endif
#include <memory.h>
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
extern "C" {
#endif
extern char *strcat (char *, const char *);
extern char *strncat(char *, const char *, int);
extern int strcmp (/* char *, char * */); /* To avoid conflicting */
extern int strncmp(const char *,const char *, int);
extern char *strcpy (/* char *, char * */); /* To avoid conflicting */
extern char *strncpy(char *, const char *, int);
extern int strlen (/* char * */); /* To avoid conflicting */
extern char *index (const char *, char);
extern char *rindex (const char *, char);
extern char *strchr (const char *, char);
extern char *strrchr(const char *, char);
extern char *strpbrk(const char *, const char *);
extern int strspn (const char *, const char *);
extern int strcspn(const char *, const char *);
extern char *strtok (char *, const char *);
extern char *strstr (const char *, const char *);
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
#define strdup(p) ( strcpy(malloc(strlen(p)+1),p); )
#endif /* _STRINGS_H */

View file

@ -0,0 +1,59 @@
/*
* Error codes
* $RCSfile: errno.h,v $
* $Id: errno.h,v 1.3 1995/02/28 10:02:53 yoshi Exp $
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _ERRNO_H
#define _ERRNO_H
/* Error codes */
#define EPERM 1 /* Not owner */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such process */
#define EINTR 4 /* Interrupted system call */
#define EIO 5 /* I/O error */
#define ENXIO 6 /* No such device or address */
#define E2BIG 7 /* Arg list too long */
#define ENOEXEC 8 /* Exec format error */
#define EBADF 9 /* Bad file number */
#define ECHILD 10 /* No children */
#define EAGAIN 11 /* No more processes */
#define ENOMEM 12 /* Not enough core */
#define EACCES 13 /* Permission denied */
#define EFAULT 14 /* Bad address */
#define ENOTBLK 15 /* Block device required */
#define EBUSY 16 /* Mount device busy */
#define EEXIST 17 /* File exists */
#define EXDEV 18 /* Cross-device link */
#define ENODEV 19 /* No such device */
#define ENOTDIR 20 /* Not a directory*/
#define EISDIR 21 /* Is a directory */
#define EINVAL 22 /* Invalid argument */
#define ENFILE 23 /* File table overflow */
#define EMFILE 24 /* Too many open files */
#define ENOTTY 25 /* Not a typewriter */
#define ETXTBSY 26 /* Text file busy */
#define EFBIG 27 /* File too large */
#define ENOSPC 28 /* No space left on device */
#define ESPIPE 29 /* Illegal seek */
#define EROFS 30 /* Read-only file system */
#define EFORMAT 31 /* Bad file format */
#define EPIPE 32 /* Broken pipe */
/* math software */
#define EDOM 33 /* Argument too large */
#define ERANGE 34 /* Result too large */
/* non-blocking and interrupt i/o */
#define EWOULDBLOCK 35 /* Operation would block */
#define EINPROGRESS 36 /* Operation now in progress */
#define EALREADY 37 /* Operation already in progress */
extern int errno;
#endif /* _ERRNO_H */

View file

@ -0,0 +1,25 @@
/*
* File:fcntl.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _SYS_FCNTL_H
#define _SYS_FCNTL_H
/* flags */
#define FREAD 0x0001 /* readable */
#define FWRITE 0x0002 /* writable */
#define FNBLOCK 0x0004 /* non-blocking reads */
#define FRLOCK 0x0010 /* read locked (non-shared) */
#define FWLOCK 0x0020 /* write locked (non-shared) */
#define FAPPEND 0x0100 /* append on each write */
#define FCREAT 0x0200 /* create if nonexistant */
#define FTRUNC 0x0400 /* truncate to zero length */
#define FSCAN 0x1000 /* scan type */
#define FRCOM 0x2000 /* remote command entry */
#define FNBUF 0x4000 /* no ring buf. and console interrupt */
#define FASYNC 0x8000 /* asyncronous i/o */
#endif /* _SYS_FCNTL_H */

View file

@ -0,0 +1,33 @@
/*
* File:file.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _SYS_FILE_H
#define _SYS_FILE_H
#include <sys/fcntl.h>
/* Flag for open() */
#define O_RDONLY FREAD
#define O_WRONLY FWRITE
#define O_RDWR FREAD|FWRITE
#define O_CREAT FCREAT /* open with file create */
#define O_NOBUF FNBUF /* no device buffer and console interrupt */
#define O_NBLOCK FNBLOCK /* non blocking mode */
#define O_NOWAIT FASYNC /* asyncronous i/o */
#ifndef SEEK_SET
#define SEEK_SET 0
#endif
#ifndef SEEK_CUR
#define SEEK_CUR 1
#endif
#ifndef SEEK_END
#define SEEK_END 2
#endif
#endif /* _SYS_FILE_H */

View file

@ -0,0 +1,44 @@
/*
* File:ioctl.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _SYS_IOCTL_H
#define _SYS_IOCTL_H
#ifndef NULL
#define NULL 0
#endif
#ifndef EOF
#define EOF (-1) /* EOF from getc() */
#endif
/* general */
#define FIOCNBLOCK (('f'<<8)|1) /* set non-blocking io */
#define FIOCSCAN (('f'<<8)|2) /* scan for input */
/* tty and sio */
#define TIOCRAW (('t'<<8)|1) /* disable xon/xoff control */
#define TIOCFLUSH (('t'<<8)|2) /* flush input buffer */
#define TIOCREOPEN (('t'<<8)|3) /* reopen */
#define TIOCBAUD (('t'<<8)|4) /* set baud rate */
#define TIOCEXIT (('t'<<8)|5) /* console interrup */
#define TIOCDTR (('t'<<8)|6) /* control DTR line */
#define TIOCRTS (('t'<<8)|7) /* control RTS line */
#define TIOCLEN (('t'<<8)|8) /* stop<<16 | char */
/* stop 0:none 1:1 2:1.5 3:2bit */
/* char 0:5 1:6 2:7 3:8bit */
#define TIOCPARITY (('t'<<8)|9) /* parity 0:none 1:e 3:o */
#define TIOSTATUS (('t'<<8)|10) /* return status */
#define TIOERRRST (('t'<<8)|11) /* error reset */
#define TIOEXIST (('t'<<8)|12) /* exist test with DTR/CTS */
#define TIORLEN (('t'<<8)|13) /* receive buffer length */
/* disk */
#define DIOFORMAT (('d'<<8)|1) /* format */
#endif /* _SYS_IOCTL_H */

View file

@ -0,0 +1,80 @@
/*
* File:types.h
*/
/*
* $PSLibId: Run-time Library Release 4.7$
*/
#ifndef _SYS_TYPES_H
#define _SYS_TYPES_H
/*
* Basic system types and major/minor device constructing/busting macros.
*/
/* major part of a device */
#define major(x) ((int)(((unsigned)(x)>>8)&0377))
/* minor part of a device */
#define minor(x) ((int)((x)&0377))
/* make a device number */
#define makedev(x,y) ((dev_t)(((x)<<8) | (y)))
#ifndef _UCHAR_T
#define _UCHAR_T
typedef unsigned char u_char;
#endif
#ifndef _USHORT_T
#define _USHORT_T
typedef unsigned short u_short;
#endif
#ifndef _UINT_T
#define _UINT_T
typedef unsigned int u_int;
#endif
#ifndef _ULONG_T
#define _ULONG_T
typedef unsigned long u_long;
#endif
#ifndef _SYSIII_USHORT
#define _SYSIII_USHORT
typedef unsigned short ushort; /* sys III compat */
#endif
#ifndef __psx__
#ifndef _SYSV_UINT
#define _SYSV_UINT
typedef unsigned int uint; /* sys V compat */
#endif
#ifndef _SYSV_ULONG
#define _SYSV_ULONG
typedef unsigned long ulong; /* sys V compat */
#endif
#endif /* ! __psx__ */
typedef struct _physadr { int r[1]; } *physadr;
typedef struct label_t {
int val[12];
} label_t;
typedef struct _quad { long val[2]; } quad;
typedef long daddr_t;
typedef char * caddr_t;
typedef long * qaddr_t; /* should be typedef quad * qaddr_t; */
typedef u_long ino_t;
typedef long swblk_t;
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t;
#endif
typedef long time_t;
typedef short dev_t;
typedef long off_t;
typedef u_short uid_t;
typedef u_short gid_t;
#define NBBY 8 /* number of bits in a byte */
#endif /* _SYS_TYPES_H */

BIN
tools/psyq/lib/2MBYTE.OBJ Normal file

Binary file not shown.

BIN
tools/psyq/lib/8MBYTE.OBJ Normal file

Binary file not shown.

View file

@ -0,0 +1,2 @@
psylib2 /a ..\CMXboot.lib pure.obj snctors.obj SNDEF.OBJ

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tools/psyq/lib/CMXboot.lib Normal file

Binary file not shown.

BIN
tools/psyq/lib/LIBAPI.LIB Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more