41 lines
		
	
	
		
			733 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			733 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include "sys.h"
 | 
						|
 | 
						|
int main() {
 | 
						|
  uint16_t addr;
 | 
						|
  uint8_t len;
 | 
						|
  uint16_t val;
 | 
						|
 | 
						|
  led0->output = 1;
 | 
						|
 | 
						|
  while(1) {
 | 
						|
    uint8_t c = uart_read(uart0);
 | 
						|
    if (c == 'c') {
 | 
						|
      c = uart_read(uart0);
 | 
						|
      addr = c << 8;
 | 
						|
      c = uart_read(uart0);
 | 
						|
      addr |= c;
 | 
						|
 | 
						|
      len = uart_read(uart0);
 | 
						|
      for (int i = 0; i < len; i += 2) {
 | 
						|
        c = uart_read(uart0);
 | 
						|
        val = c << 8;
 | 
						|
        c = uart_read(uart0);
 | 
						|
        val |= c;
 | 
						|
 | 
						|
        *((uint16_t*)(addr + i)) = val;
 | 
						|
      }
 | 
						|
 | 
						|
      uart_write(uart0, 'a');
 | 
						|
      uart_write(uart0, len);
 | 
						|
      led0->output = 0xf0;
 | 
						|
    } else if (c == 'j') {
 | 
						|
      c = uart_read(uart0);
 | 
						|
      addr = c << 8;
 | 
						|
      c = uart_read(uart0);
 | 
						|
      addr |= c;
 | 
						|
 | 
						|
      ((void (*)())addr)();
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |