FreeCalypso > hg > freecalypso-reveng
annotate frbl/test/main.c @ 400:5377f91aea97
compal/boot/c123-boot.disasm: annotate with symbols
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 14 Jan 2023 09:47:46 +0000 | 
| parents | cefa700d1b8f | 
| children | 
| rev | line source | 
|---|---|
| 323 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 #include <sys/types.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 #include <sys/file.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 #include <sys/ioctl.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 #include <stdint.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 #include <stdio.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 #include <stdlib.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 #include <string.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 #include <strings.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 #include <termios.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 #include <unistd.h> | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 #include "srecreader.h" | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 char *target_ttydev; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 int target_fd; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 int baudrate_code; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 struct termios target_termios; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 struct srecreader srimage; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 main(argc, argv) | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 char **argv; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 { | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 if (argc != 4) { | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 fprintf(stderr, "usage: %s ttyport baud image.srec\n", argv[0]); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 exit(1); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 } | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 target_ttydev = argv[1]; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 if (!strcmp(argv[2], "115200")) | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 baudrate_code = B115200; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 else if (!strcmp(argv[2], "230400")) | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 baudrate_code = B230400; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 else { | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 fprintf(stderr, | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 "error: baud rate argument must be 115200 or 230400\n"); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 exit(1); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 } | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 srimage.filename = argv[3]; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 target_fd = open(target_ttydev, O_RDWR|O_NONBLOCK); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 if (target_fd < 0) { | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 perror(target_ttydev); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 exit(1); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 } | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 ioctl(target_fd, TIOCEXCL); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 target_termios.c_iflag = IGNBRK; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 target_termios.c_oflag = 0; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 target_termios.c_cflag = CLOCAL|HUPCL|CREAD|CS8; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 target_termios.c_lflag = 0; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 target_termios.c_cc[VMIN] = 1; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 target_termios.c_cc[VTIME] = 0; | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 cfsetispeed(&target_termios, baudrate_code); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 cfsetospeed(&target_termios, baudrate_code); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 if (tcsetattr(target_fd, TCSAFLUSH, &target_termios) < 0) { | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 perror("tcsetattr"); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 exit(1); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 } | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 frbl_test_main(); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 tty_passthru(); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 exit(0); | 
| 
cefa700d1b8f
frbl: beginning of frbl2test
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 } | 
