source: trunk/libs/newlib/src/libgloss/hp74x/hppa-defs.h @ 647

Last change on this file since 647 was 444, checked in by satin@…, 7 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 4.4 KB
Line 
1/*
2 * PDC support
3 */
4#define OPT_PDC_CACHE           5
5#define OPT_PDC_ADD_VALID       12
6#define OPT_PDC_CHASSIS         2       /* LED's */
7#define OPT_PDC_IODC            8       /* console I/O */
8#define IODC_CONSOLE_OUT        3       /* bytes out serial port */
9#define IODC_CONSOLE_IN         2       /* bytes in serial port */
10
11#define PGZ_MEM_PDC             0x0388  /* location of PDC_ENTRY in memory */
12#define PGZ_CONSOLE_STRUCT      0x3A0   /* console config info */
13#define CALL_PDC                (*(int (*)())((int *)(*((int *)PGZ_MEM_PDC))))
14
15#define putDebugChar outbyte
16#define getDebugChar inbyte
17
18/*
19 * IODC support
20 */
21#define MAX_BUS_CONVERTERS      6
22#define MAX_LAYERS              6
23#define IO_CONSOLE_INPUT        2
24#define IO_CONSOLE_OUTPUT       3
25
26struct _dev {
27        unsigned char   flags;                  /* auto-search and auto-boot  */
28        unsigned char   bus_convert[MAX_BUS_CONVERTERS];
29        unsigned char   pm;                     /* fixed field of HPA         */
30        unsigned int    layer[MAX_LAYERS];      /* device dependent layers    */
31        unsigned int    hpa;                    /* device HPA                 */
32        unsigned int    spa;                    /* device SPA                 */
33        unsigned int    *iodc_io;               /* address of ENTRY_IO in mem */
34        unsigned int    class;                  /* device class               */
35};
36
37/*
38 * Register defintions
39 */
40#define gr0     %r0                     /* always ZERO */
41#define gr1     %r1                     /* ADDIL results only */
42#define gr2     %r2                     /* return address */
43#define gr3     %r3                     /* scratch registers */
44#define gr4     %r4
45#define gr5     %r5
46#define gr6     %r6
47#define gr7     %r7
48#define gr8     %r8
49#define gr9     %r9
50#define gr10    %r10
51#define gr11    %r11
52#define gr12    %r12
53#define gr13    %r13
54#define gr14    %r14
55#define gr15    %r15
56#define gr16    %r16
57#define gr17    %r17
58#define gr18    %r18
59#define gr19    %r19                    /* 4th temp register */
60#define gr20    %r20                    /* 3rd temp register */
61#define gr21    %r21                    /* 2rd temp register */
62#define gr22    %r22                    /* 1rd temp register */
63#define gr23    %r23                    /* argument 3 */
64#define gr24    %r24                    /* argument 2 */
65#define gr25    %r25                    /* argument 1 */
66#define gr26    %r26                    /* argument 0 */
67#define gr27    %r27                    /* global data pointer */
68#define gr28    %r28                    /* return value */
69#define gr29    %r29                    /* return value, static link */
70#define gr30    %r30                    /* stack pointer */
71#define gr31    %r31                    /* millicode return pointer */
72
73/*
74 * extra definitions, calling conventions
75 */
76#define rp              gr2             /* return address */
77#define sp              gr30            /* stack pointer */
78#define dp              gr27            /* global data area pointer */
79
80/*
81 * extra definitions, argument passing
82 */
83#define Arg0            gr26            /* pdc function to perform */
84#define Arg1            gr25            /* args to the pdc function */
85#define Arg2            gr24
86#define Arg3            gr23
87
88/*
89 * Special Processor Registers
90 */
91#define SAR             %cr11           /* shift amount register */
92#define IVA             %cr14           /* Interruption Vector Address */
93#define EIEM            %cr15           /* EIEM reg */
94#define EIR             %cr23           /* EIR reg */
95#define TIMER           %cr16           /* interval timer */
96#define CCR             %cr10           /* coprocessor control reg. */
97
98/*
99 * ASCII escape code
100 */
101#define NULL    0x00    /* <break>      soft-reset      (input only) */
102#define DELP    0x03    /* <ctrl>C      del-collapse    (input only, non-std) */
103#define DELE    0x04    /* <ctrl>D      del-to_eol      (input only, non-std) */
104#define BELL    0x07    /* <ctrl>G      bell - audio */
105#define BS      0x08    /* <ctrl>H      back space      (left arrow) */
106#define HT      0x09    /* <ctrl>I      horizontal tab */
107#define LF      0x0a    /* <ctrl>J      line feed       (down arrow) */
108#define VT      0x0b    /* <ctrl>K      vertical tab    (up arrow) */
109#define FF      0x0c    /* <ctrl>L      form feed       (right arrow) */
110#define RTN     0x0d    /* <ctrl>M      carrage return */
111#define CR      0x0d    /* <ctrl>M      carrage return */
112
113#define INSC    0x0e    /* <ctrl>N      insert char     (input only, non-std) */
114#define XON     0x11    /* <ctrl>Q      DC1 - continue */
115#define BT      0x12    /* <ctrl>R      reverse tab     (input only, non-std) */
116#define XOFF    0x13    /* <ctrl>S      DC3 - wait */
117#define INSE    0x16    /* <ctrl>V      insert-expand   (input only, non-std) */
118#define DELC    0x18    /* <ctrl>X      delete char     (input only, non-std) */
119#define CLRH    0x1a    /* <ctrl>Z      clear/home      (input only) */
120#define ESC     0x1b    /* <ctrl>[      escape          (must call key again) */
121#define ENDL    0x1c    /* <ctrl>\      cursor-to-eol   (input only, non-std) */
122#define HOME    0x1e    /* <ctrl>^      cursor home     (input only) */
123#define DEL     0x7f    /* <shift>BS    destructive backspace */
Note: See TracBrowser for help on using the repository browser.