10 cl_port::cl_port(class cl_box *ipos, int iid, char *iname, class cl_app *iapp):
11 cl_view(ipos, iname, iapp)
22 int x, y, mask, hc, nc;
26 nc= hc= get_color(C_WIN_NORMAL);
27 if (state & SF_SELECTED)
28 hc= get_color(C_WIN_SELECTED);
29 mvwprintw(window, 0,0, "SFR PORT PIN");
30 for (x= 0, mask= 0x80, y= 1; mask; mask>>= 1,y++)
32 wattrset(window, (curs_x)?nc:(curs_y==y-1?hc:nc));
33 mvwprintw(window, y,x, " %c", (sfr&mask)?'1':'0');
36 for (x= 5, mask= 0x80, y= 1; mask; mask>>= 1,y++)
37 mvwprintw(window, y,x, "%c", (sfr&pin&mask)?'1':'0');
38 for (x=9, mask= 0x80, y= 1; mask; mask>>= 1,y++)
40 wattrset(window, curs_x?(curs_y==y-1?hc:nc):nc);
41 mvwprintw(window, y,x, "%c ", (pin&mask)?'1':'0');
44 mvwprintw(window, 9,0, "0x%02x 0x%02x", sfr, pin);
45 mvwprintw(window, 10,4, "0x%02x", sfr&pin);
51 cl_port::handle_event(struct t_event *event)
53 if (event->what == EV_KEY)
54 switch (event->event.key)
57 curs_y= 0; draw(); return(1);
59 curs_x= curs_y= 0; draw(); return(1);
61 curs_y= 0; curs_x= 1; draw(); return(1);
63 curs_x= 0; curs_y= 7; draw(); return(1);
65 curs_x= 1; curs_y= 7; draw(); return(1);
66 case KEY_LEFT: case KEY_RIGHT: case 'j': case 'k': case 'l': case 'r':
73 case KEY_UP: case 'u':
79 case KEY_DOWN: case 'd':
85 case ' ': case '\n': case '\r':
92 return(cl_view::handle_event(event));
96 cl_port::toggle_sfr(int bitnr)
105 cl_port::toggle_pin(int bitnr)
114 * Window to show port viewer
115 ******************************************************************************
118 cl_portw::cl_portw(class cl_box *ipos, int iid, char *ititle,
120 cl_win(ipos, ititle, iapp)
126 cl_portw::mk_intern(class cl_box *ipos)
130 sprintf(n, "port%dviewer", id);
131 class cl_view *v= new cl_port(ipos, id, n, app);
137 cl_portw::handle_event(struct t_event *event)
139 return(cl_win::handle_event(event));
143 /* End of gui.src/portmap.src/port.cc */