X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fcpu8051.h;h=f11122a89ef92369cf4be69499a8cea338927d3f;hb=60f3340a9f321271f5ea96df2ccfc248f67bfd2f;hp=942d64a618ef61431c9f524676fa851cb814753b;hpb=b1fbb635cdd64e96bf36a62dc6b59d6724f5ad57;p=emu8051.git diff --git a/src/cpu8051.h b/src/cpu8051.h index 942d64a..f11122a 100644 --- a/src/cpu8051.h +++ b/src/cpu8051.h @@ -1,17 +1,39 @@ -/* cpu8051.h */ - +/* + * cpu8051.h + * + * Copyright (C) 1999 Jonathan St-André + * Copyright (C) 1999 Hugo Villeneuve + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + */ #ifndef CPU8051_H #define CPU8051_H 1 +#include -typedef struct cpu8051_t -{ - unsigned int pc; - unsigned long clock; - int active_priority; -} cpu8051_t; +/* Maximum number of BreakPoints */ +#define MAXBP 32 +struct cpu8051_t { + unsigned int pc; /* Program counter */ + unsigned long clock; + int active_priority; + int bp_count; + unsigned int bp[MAXBP]; /* List of breakpoints */ +}; /* Exported variables */ #undef _SCOPE_ @@ -21,59 +43,51 @@ typedef struct cpu8051_t # define _SCOPE_ extern #endif -_SCOPE_ cpu8051_t cpu8051; +_SCOPE_ struct cpu8051_t cpu8051; +int +IsBreakpoint(unsigned int Address); void -cpu8051_init( void ); +ShowBreakpoints(void); void -cpu8051_Exec( void ); +SetBreakpoint(unsigned int Address); void -cpu8051_Reset( void ); +ClearBreakpoint(unsigned int Address); void -cpu8051_WriteD( unsigned int Address, unsigned char Value ); +ToggleBreakpoint(unsigned int Address); void -cpu8051_WriteInt( unsigned int Address, unsigned char Value ); +cpu8051_init(void); void -cpu8051_WriteI( unsigned int Address, unsigned char Value ); - -unsigned char -cpu8051_ReadD( unsigned int Address ); - -unsigned char -cpu8051_ReadInt( unsigned int Address ); - -unsigned char -cpu8051_ReadI( unsigned int Address ); - -unsigned int -cpu8051_GetNextAddress( void ); +cpu8051_Exec(void); void -cpu8051_WriteB( unsigned int BitAddress, unsigned char Value ); +cpu8051_Reset(void); -unsigned char -cpu8051_ReadB( unsigned int BitAddress ); +void +cpu8051_WriteD(unsigned int Address, unsigned char Value); void -cpu8051_CheckInterrupts( void ); +cpu8051_WriteI(unsigned int Address, unsigned char Value); void -cpu8051_DoTimers( void ); +cpu8051_WriteB(uint8_t bit_address, uint8_t value); -int -cpu8051_SFRMemInfo( unsigned int Address, char *Text ); +unsigned char +cpu8051_ReadD(unsigned int Address); -void -cpu8051_IntMemBitInfo( unsigned int BitAddress, char *Text ); +unsigned char +cpu8051_ReadI(unsigned int Address); -int -cpu8051_Disasm( unsigned int Address, char *Text ); +unsigned char +cpu8051_ReadB(uint8_t bit_address); +int +cpu8051_Disasm(unsigned int Address, char *Text); #endif /* CPU8051_H */