void sim_main() { u2_t i; #ifdef BUS_TEST printf("TESTING...\n\n"); void bus_test(); bus_test(); #endif for (i = 0; i < DEV_SIZE; i++) { dev_io_t *devp = &dev_io[i]; if ((i >= ADDR_ARM(0)) && (i <= ADDR_ARM(0xf))) { devp->dev_read = handler_dev_arm_read; devp->dev_write = handler_dev_arm_write; } else if ((i >= ADDR_DSP(0)) && (i <= ADDR_DSP(0x1f))) { devp->dev_read = handler_dev_display_read; devp->dev_write = handler_dev_display_write; } else if ((i >= ADDR_HPIB(0)) && (i <= ADDR_HPIB(3))) { devp->dev_read = handler_dev_hpib_read; devp->dev_write = handler_dev_hpib_write; #ifdef DEBUG } else { devp->dev_read = handler_dev_read_bad; devp->dev_write = handler_dev_write_bad; #endif } } sim_running = TRUE; sim_processor(); sim_running = FALSE; }
void uart_test () { volatile int loop; int looplim; int int_id; unsigned long* reg_ptr; int i, baud; /*11/01/00 */ char info[] = {"Move Console Cable back to Connector J9 and hit <CR> to exit test"}; int index; looplim = 400000; /* perform tests on both UARTs */ for (uart_unit = 0; uart_unit < 2; uart_unit++) { if (uart_unit == 0) int_id = UART1_INT_ID; else int_id = UART2_INT_ID; if (!bus_test ()) printf ("\nERROR: bus_test for UART Unit %d failed\n", uart_unit); else { printf ("\nbus_test for UART Unit %d passed\n", uart_unit); uart_int = 0; isr_connect (int_id, uart_isr, 0); if (enable_external_interrupt(int_id) != OK) printf("ERROR enabling UART UINT %d interrupt!\n", uart_unit); init_uart (); loop = 0; while (!uart_int && (loop < looplim)) loop++; if (!uart_int) printf ("UART Unit %d INTERRUPT test failed %X\n", uart_unit, loop) ; else printf ("UART Unit %d INTERRUPT test passed\n", uart_unit); serial_putc(' '); } /* disable UART interrupt */ if (disable_external_interrupt(int_id)!= OK) printf("ERROR disabling UART UNIT %d interrupt!\n", uart_unit); /* disconnect test handler */ isr_disconnect (int_id); } /* 11/01/00 */ /* #if 0 */ /* writing to port 2 doesnt work yet... */ #if 1 /* writing to port 2 doesnt work yet... */ /* printf ("\nMove the Console Cable to the 2nd Serial Port,\n"); printf ("Connector J10,\n"); printf ("and Hit <CR> when the cable is connected.\n\n"); printf ("After alphabet prints, move Console Cable back to 1st Serial Port,\n"); printf ("Connector J9,\n"); printf ("and hit <CR> to exit test\n"); */ /* 10/30/00 */ uart_unit = DFLTPORT; /* test J10, the PCI-700 GDB port */ printf ("\nMove the Console Cable to the 2nd Serial Port, Connector J10,\n"); printf ("and Hit <CR> when the cable is connected.\n"); printf ("The alphabet should print on the screen.\n\n"); /* 11/01/00 */ /* printf ("After alphabet prints, move Console Cable back to 1st Serial Port,\n"); printf ("Connector J9,\n"); printf ("and hit <CR> to exit test\n"); */ baud = 115200; serial_init(); serial_set(baud?baud:115200L); /* while (serial_getc() == -1); */ while (serial_getc() != 0x0d); /* wait for a carriage return character to start test */ /* while (1) { for ( i = 65; i <= 90; i++ ) serial_putc(i); } */ for ( i = 65; i <= 90; i++ ) /* transmit the alphabet */ serial_putc(i); serial_putc(10); /* transmit a New Line */ serial_putc(13); /* transmit a Carriage Return */ serial_putc(10); /* transmit a New Line */ for (index=0; info[index] != '\0'; index++) /* transmit some instructions to the user */ { serial_putc(info[index]); } /* point at default port before returning */ /* uart_unit = DFLTPORT; */ (void)hexIn(); #endif printf ("\n\nUART tests done.\n"); printf ("Press return to continue.\n"); (void) hexIn(); }