89 lines
3.8 KiB
C
89 lines
3.8 KiB
C
/* pdp11_td.h: TU58 cartridge controller API
|
|
------------------------------------------------------------------------------
|
|
|
|
Copyright (c) 2015, Mark Pizzolato
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
Except as contained in this notice, the name of the author shall not be
|
|
used in advertising or otherwise to promote the sale, use or other dealings
|
|
in this Software without prior written authorization from the author.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Modification history:
|
|
|
|
20-Sep-15 MP Initial Version
|
|
|
|
------------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef PDP11_TD_H
|
|
#define PDP11_TD_H
|
|
|
|
#include "sim_defs.h"
|
|
|
|
typedef struct CTLR CTLR;
|
|
|
|
|
|
t_stat td_connect_console_device (DEVICE *dptr,
|
|
void (*rx_set_int) (int32 ctlr_num, t_bool val),
|
|
void (*tx_set_int) (int32 ctlr_num, t_bool val));
|
|
|
|
t_stat td_rd_i_csr (CTLR *ctlr, int32 *data);
|
|
t_stat td_rd_i_buf (CTLR *ctlr, int32 *data);
|
|
t_stat td_rd_o_csr (CTLR *ctlr, int32 *data);
|
|
t_stat td_rd_o_buf (CTLR *ctlr, int32 *data);
|
|
|
|
t_stat td_wr_i_csr (CTLR *ctlr, int32 data);
|
|
t_stat td_wr_i_buf (CTLR *ctlr, int32 data);
|
|
t_stat td_wr_o_csr (CTLR *ctlr, int32 data);
|
|
t_stat td_wr_o_buf (CTLR *ctlr, int32 data);
|
|
|
|
/* Debug detail levels */
|
|
|
|
#define TDDEB_OPS 00001 /* transactions */
|
|
#define TDDEB_IRD 00002 /* input reg reads */
|
|
#define TDDEB_ORD 00004 /* output reg reads */
|
|
#define TDDEB_RRD 00006 /* reg reads */
|
|
#define TDDEB_IWR 00010 /* input reg writes */
|
|
#define TDDEB_OWR 00020 /* output reg writes */
|
|
#define TDDEB_RWR 00030 /* reg writes */
|
|
#define TDDEB_TRC 00040 /* trace */
|
|
#define TDDEB_INT 00100 /* interrupts */
|
|
#define TDDEB_PKT 00200 /* packet */
|
|
#define TDDEB_DAT 00400 /* data */
|
|
#define TDDEB_ERR 01000 /* errors */
|
|
|
|
static DEBTAB td_deb[] = {
|
|
{ "OPS", TDDEB_OPS, "transactions" },
|
|
{ "PKT", TDDEB_PKT, "packet" },
|
|
{ "RRD", TDDEB_RRD, "reg reads"},
|
|
{ "IRD", TDDEB_IRD, "input reg reads" },
|
|
{ "ORD", TDDEB_ORD, "output reg reads" },
|
|
{ "RWR", TDDEB_RWR, "reg writes" },
|
|
{ "IWR", TDDEB_IWR, "input reg writes" },
|
|
{ "OWR", TDDEB_OWR, "output reg writes" },
|
|
{ "INT", TDDEB_INT, "interrupts" },
|
|
{ "TRC", TDDEB_TRC, "trace" },
|
|
{ "DAT", TDDEB_DAT, "data" },
|
|
{ "ERR", TDDEB_ERR, "errors" },
|
|
{ NULL, 0 }
|
|
};
|
|
|
|
#endif /* _PDP11_TD_H */
|