/*
|
/*
|
* start.h -- ECO32 ROM monitor startup and support routines
|
* start.h -- ECO32 ROM monitor startup and support routines
|
*/
|
*/
|
|
|
|
|
#ifndef _START_H_
|
#ifndef _START_H_
|
#define _START_H_
|
#define _START_H_
|
|
|
|
|
typedef struct {
|
typedef struct {
|
Word reg[32]; /* general purpose registers */
|
Word reg[32]; /* general purpose registers */
|
Word psw; /* PSW */
|
Word psw; /* PSW */
|
Word tlbIndex; /* TLB index register */
|
Word tlbIndex; /* TLB index register */
|
Word tlbHi; /* TLB EntryHi register */
|
Word tlbHi; /* TLB EntryHi register */
|
Word tlbLo; /* TLB EntryLo register */
|
Word tlbLo; /* TLB EntryLo register */
|
Word badAddr; /* bad address register */
|
Word badAddr; /* bad address register */
|
Word badAccs; /* bad access register */
|
Word badAccs; /* bad access register */
|
} UserContext;
|
} UserContext;
|
|
|
typedef struct {
|
typedef struct {
|
Word r31; /* return address */
|
Word r31; /* return address */
|
Word r29; /* stack pointer */
|
Word r29; /* stack pointer */
|
Word r16; /* local variable */
|
Word r16; /* local variable */
|
Word r17; /* local variable */
|
Word r17; /* local variable */
|
Word r18; /* local variable */
|
Word r18; /* local variable */
|
Word r19; /* local variable */
|
Word r19; /* local variable */
|
Word r20; /* local variable */
|
Word r20; /* local variable */
|
Word r21; /* local variable */
|
Word r21; /* local variable */
|
Word r22; /* local variable */
|
Word r22; /* local variable */
|
Word r23; /* local variable */
|
Word r23; /* local variable */
|
} MonitorState;
|
} MonitorState;
|
|
|
|
|
|
void setcon(Byte ctl);
|
int cinchk(void);
|
int cinchk(void);
|
int cin(void);
|
char cin(void);
|
int coutchk(void);
|
int coutchk(void);
|
void cout(char c);
|
void cout(char c);
|
|
|
int sinchk(void);
|
|
int sin(void);
|
|
int soutchk(void);
|
|
void sout(char c);
|
|
|
|
int dskcap(int dskno);
|
int dskcap(int dskno);
|
int dskio(int dskno, char cmd, int sct, Word addr, int nscts);
|
int dskio(int dskno, char cmd, int sct, Word addr, int nscts);
|
|
|
Word getTLB_HI(int index);
|
Word getTLB_HI(int index);
|
Word getTLB_LO(int index);
|
Word getTLB_LO(int index);
|
void setTLB(int index, Word entryHi, Word entryLo);
|
void setTLB(int index, Word entryHi, Word entryLo);
|
|
|
Bool saveState(MonitorState *msp);
|
Bool saveState(MonitorState *msp);
|
|
|
extern MonitorState *monitorReturn;
|
extern MonitorState *monitorReturn;
|
extern UserContext userContext;
|
extern UserContext userContext;
|
|
|
void resume(void);
|
void resume(void);
|
|
|
|
|
#endif /* _START_H_ */
|
#endif /* _START_H_ */
|
|
|