misc: Cleanup & typos
[simavr] / simavr / sim / avr_flash.c
index 05f3e87..2a17839 100644 (file)
@@ -32,13 +32,6 @@ static avr_cycle_count_t avr_progen_clear(struct avr_t * avr, avr_cycle_count_t
        return 0;
 }
 
-static uint8_t avr_flash_read(struct avr_t * avr, avr_io_addr_t addr, void * param)
-{
-       avr_flash_t * p = (avr_flash_t *)param;
-       uint8_t v = avr_core_watch_read(avr, addr);
-       printf("avr_flash_read %02x\n", v);
-       return v;
-}
 
 static void avr_flash_write(avr_t * avr, avr_io_addr_t addr, uint8_t v, void * param)
 {
@@ -61,6 +54,8 @@ static int avr_flash_ioctl(struct avr_io_t * port, uint32_t ctl, void * io_param
        avr_t * avr = p->io.avr;
 
        uint16_t z = avr->data[R_ZL] | (avr->data[R_ZH] << 8);
+       if (avr->rampz)
+               z |= avr->data[avr->rampz] << 16;
        uint16_t r01 = avr->data[0] | (avr->data[1] << 8);
 
 //     printf("AVR_IOCTL_FLASH_SPM %02x Z:%04x R01:%04x\n", avr->data[p->r_spm], z,r01);
@@ -75,11 +70,11 @@ static int avr_flash_ioctl(struct avr_io_t * port, uint32_t ctl, void * io_param
                z &= ~1;
                printf("Writing page %04x (%d)\n", (z / p->spm_pagesize), p->spm_pagesize);
        } else if (avr_regbit_get(avr, p->blbset)) {
-               printf("Settting lock bits (ignored)\n");
+               printf("Setting lock bits (ignored)\n");
        } else {
                z &= ~1;
                avr->flash[z++] = r01;
-               avr->flash[z++] = r01 >> 8;
+               avr->flash[z] = r01 >> 8;
        }
        return 0;
 }
@@ -92,12 +87,11 @@ static      avr_io_t        _io = {
 void avr_flash_init(avr_t * avr, avr_flash_t * p)
 {
        p->io = _io;
-       printf("%s init SPM %04x\n", __FUNCTION__, p->r_spm);
+//     printf("%s init SPM %04x\n", __FUNCTION__, p->r_spm);
 
        avr_register_io(avr, &p->io);
        avr_register_vector(avr, &p->flash);
 
        avr_register_io_write(avr, p->r_spm, avr_flash_write, p);
-//     avr_register_io_read(avr, p->r_spm, avr_flash_read, p);
 }