droid48-gwh/jni/rpl.h
2010-09-18 01:13:52 +02:00

140 lines
5 KiB
C

/*
* This file is part of x48, an emulator of the HP-48sx Calculator.
* Copyright (C) 1994 Eddie C. Dost (ecd@dressler.de)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Log: rpl.h,v $
* Revision 1.3 1995/01/11 18:20:01 ecd
* major update to support HP48 G/GX
*
* Revision 1.2 1994/12/07 20:16:41 ecd
* more functions added
*
* Revision 1.2 1994/12/07 20:16:41 ecd
* more functions added
*
* Revision 1.1 1994/12/07 10:16:15 ecd
* Initial revision
*
*
* $Id: rpl.h,v 1.3 1995/01/11 18:20:01 ecd Exp ecd $
*/
#ifndef _RPL_H
#define _RPL_H 1
#include "global.h"
#include "hp48.h"
/*
* Addresses in SX ROM
*/
#define ROMPTAB_SX 0x707d9
#define ROMPTAB_GX 0x809a3
#define TEMPOB 0x806E9
#define TEMPTOP 0x806EE
#define RSKTOP 0x806F3
#define DSKTOP 0x806F8
#define AVMEM 0x807ED
#define INTRPPTR 0x8072F
#define SYSTEMFLAGS 0x80843
/*
* Object Prologs
*/
#define DOBINT 0x02911 /* System Binary */
#define DOREAL 0x02933 /* Real */
#define DOEREL 0x02955 /* Extended Real */
#define DOEREAL 0x02955 /* Extended Real */
#define DOCMP 0x02977 /* Complex */
#define DOECMP 0x0299d /* Extended Complex */
#define DOCHAR 0x029bf /* Character */
#define DOARRY 0x029e8 /* Array */
#define DOLNKARRY 0x02a0a /* Linked Array */
#define DOCSTR 0x02a2c /* String */
#define DOHSTR 0x02a4e /* Binary Integer */
#define DOLIST 0x02a74 /* List */
#define DORRP 0x02a96 /* Directory */
#define DOSYMB 0x02ab8 /* Algebraic */
#define DOEXT 0x02ada /* Unit */
#define DOTAG 0x02afc /* Tagged */
#define DOGROB 0x02b1e /* Graphic Object */
#define DOLIB 0x02b40 /* Library */
#define DOBAK 0x02b62 /* Backup */
#define DOEXT0 0x02b88 /* Library Data */
#define DOACPTR 0x02baa /* */
#define DOEXT1 0x02BAA /* Extended Pointer */
#define DOEXT2 0x02bcc /* */
#define DOEXT3 0x02bee /* */
#define DOEXT4 0x02c10 /* */
#define DOCOL 0x02d9d /* Program */
#define DOCODE 0x02dcc /* Code */
#define DOIDNT 0x02e48 /* Global Name */
#define DOLAM 0x02e6d /* Local Name */
#define DOROMP 0x02e92 /* XLib Name */
/*
* Terminates composite objects
*/
#define SEMI 0x0312b /* Semi */
/*
* Unit Operators
*/
#define UM_MUL 0x10b5e /* Unit Operator * */
#define UM_DIV 0x10b68 /* Unit Operator / */
#define UM_POW 0x10b72 /* Unit Operator ^ */
#define UM_PRE 0x10b7c /* Unit Operator prefix */
#define UM_END 0x10b86 /* Unit Operator _ */
typedef struct hp_real {
word_20 x;
word_32 ml;
word_32 mh;
word_4 m;
word_1 s;
} hp_real;
extern char *decode_rpl_obj __ProtoType__((word_20 addr, char *buf));
extern void decode_rpl_obj_2 __ProtoType__((word_20 addr, char *typ, char *dat));
extern char *skip_ob __ProtoType__((word_20 *addr, char *string));
extern char *dec_rpl_obj __ProtoType__((word_20 *addr, char *string));
extern char *dec_bin_int __ProtoType__((word_20 *addr, char *string));
extern char *dec_real __ProtoType__((word_20 *addr, char *string));
extern char *dec_long_real __ProtoType__((word_20 *addr, char *string));
extern char *dec_complex __ProtoType__((word_20 *addr, char *string));
extern char *dec_long_complex __ProtoType__((word_20 *addr, char *string));
extern char *dec_char __ProtoType__((word_20 *addr, char *string));
extern char *dec_array __ProtoType__((word_20 *addr, char *string));
extern char *dec_lnk_array __ProtoType__((word_20 *addr, char *string));
extern char *dec_string __ProtoType__((word_20 *addr, char *string));
extern char *dec_hex_string __ProtoType__((word_20 *addr, char *string));
extern char *dec_list __ProtoType__((word_20 *addr, char *string));
extern char *dec_symb __ProtoType__((word_20 *addr, char *string));
extern char *dec_unit __ProtoType__((word_20 *addr, char *string));
extern char *dec_library __ProtoType__((word_20 *addr, char *string));
extern char *dec_library_data __ProtoType__((word_20 *addr, char *string));
extern char *dec_acptr __ProtoType__((word_20 *addr, char *string));
extern char *dec_prog __ProtoType__((word_20 *addr, char *string));
extern char *dec_code __ProtoType__((word_20 *addr, char *string));
extern char *dec_global_ident __ProtoType__((word_20 *addr, char *string));
extern char *dec_local_ident __ProtoType__((word_20 *addr, char *string));
extern char *dec_xlib_name __ProtoType__((word_20 *addr, char *string));
extern char *dec_unit_op __ProtoType__((word_20 *addr, char *string));
#endif /* !_RPL_H */