-#if 0
-command_ret_t do_clock(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
-{
- long freq;
- char *endp;
-
- (void) cmdtp; (void) flag;
-
- if (argc == 2) {
- if (toupper(argv[1][0]) == 'L')
- freq = 0;
- else if (toupper(argv[1][0]) == 'H')
- freq = LONG_MAX;
- else {
- freq = strtol(argv[1], &endp, 10);
- switch (*endp) {
- case 'M':
- freq *= 1000;
- case 'K':
- freq *= 1000;
- endp++;
- case '\0':
- if (*endp == '\0')
- break;
- default:
- printf_P(PSTR("invalid value\n"));
- return CMD_RET_USAGE;
- }
-
- if (freq == 0) {
- printf_P(PSTR("CPU clock cannot be 0\n"));
- return CMD_RET_USAGE;
- }
-
-
-/* if (freq > (long) F_CPU / 2) {
- printf_P(PSTR("Max CPU clock freq. is: %luHz\n"), F_CPU/2);
- return CMD_RET_USAGE;
- }
-*/
- }
- if (z80_clock_set(freq) < 0) {
- printf_P(PSTR("Setting CPU clock freq. to %luHz failed.\n"),
- freq);
- }
- }
-
- printf_P(PSTR("CPU clock: %luHz\n"), z80_clock_get());
-
-
- return CMD_RET_SUCCESS;
-}
-
-command_ret_t do_clock2(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
-{
- long value;
- char *endp;
- uint8_t div_flag = 0;
-
- (void) cmdtp; (void) flag;
-
- if (argc >= 2) {
- if (argv[1][0] == '-' && argv[1][1] == 'd') {
- div_flag = 1;
- argc--;
- argv++;
- }
- }
-
- if (argc == 2) {
- if (toupper(argv[1][0]) == 'L')
- value = 0;
- else if (toupper(argv[1][0]) == 'H')
- value = LONG_MAX;
- else {
- value = strtol(argv[1], &endp, 10);
- switch (*endp) {
- case 'M':
- value *= 1000;
- case 'K':
- value *= 1000;
- endp++;
- case '\0':
- if (*endp == '\0')
- break;
- default:
- printf_P(PSTR("invalid value\n"));
- return CMD_RET_USAGE;
- }
-
- if (value == 0) {
- printf_P(PSTR("clk2 cannot be 0\n"));
- return CMD_RET_USAGE;
- }
-
- if (div_flag) {
- if (value > 256*1024L) {
- printf_P(PSTR("Max clk2 divider is: %lu\n"), 256*1024L);
- return CMD_RET_USAGE;
- }
- } else {
- if (value > (long) F_CPU / 2) {
- printf_P(PSTR("Max clk2 freq. is: %luHz\n"), F_CPU/2);
- return CMD_RET_USAGE;
- }
- }
- }
- if (div_flag ? z80_clock2_divset(value) : z80_clock2_set(value) < 0) {
- printf_P(PSTR("Setting clk2 freq. to %luHz failed.\n"),
- value);
- }
- }
-
- printf_P(PSTR("clk2: %luHz\n"), z80_clock2_get());
-
-
- return CMD_RET_SUCCESS;
-}
-#endif
-
-// {INPUT, INPUT_PULLUP, OUTPUT, OUTPUT_TIMER} pinmode_t;
-
-
-static void print_blanks(uint_fast8_t count)
-{
- while(count--)
- putchar(' ');
-}
-
-static const FLASH char * const FLASH pinconf_str[] = {
- FSTR("?"),
- FSTR("Input"),
- FSTR("Pullup"),
- FSTR("Output"),
- FSTR("Clock"),
- };
-
-static const FLASH char * const FLASH pinlevel_str[] = {
- FSTR("Low"),
- FSTR("High"),
- FSTR(""),
- };
-
-int print_pin(int pin, int multi)
-{
- int pinconf;
- const FLASH char *levelp;
- long div;
-
- pinconf = pin_config_get(pin);
- if (pinconf == OUTPUT_TIMER) {
- div = pin_clockdiv_get(pin);
- levelp = pinlevel_str[2];
- } else
- levelp = pinlevel_str[pin_read(pin)];
-
- if (multi) {
- printf_P(PSTR("%3d "), pin);
- my_puts_P(pinconf_str[pinconf]);
- print_blanks(8 - strlen_P(pinconf_str[pinconf]));
- my_puts_P(levelp);
- print_blanks(6 - strlen_P(levelp));
- if (pinconf == OUTPUT_TIMER)
- printf_P(PSTR("%7ld %8ld"),
- div, F_CPU/div);
- } else {
- printf_P(PSTR("Pin %d: "), pin);
- my_puts_P(pinconf_str[pinconf]);
- printf_P(PSTR(", "));
- my_puts_P(levelp);
-
- if (pinconf == OUTPUT_TIMER)
- printf_P(PSTR("divide by %ld (%ldHz)"),
- div, F_CPU/div);
- }
- printf_P(PSTR("\n"));
-
- return 0;