*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_1;
+package org.altusmetrum.altoslib_14;
import java.io.*;
-public class AltosFlash {
+public class AltosFlash extends AltosProgrammer {
File file;
FileInputStream input;
AltosHexfile image;
clock_init();
int remain = image.data.length;
- int flash_addr = image.address;
+ int flash_addr = (int) image.address;
int image_start = 0;
- action("start", 0);
+ action(AltosFlashListener.flash_start, 0);
action(0, image.data.length);
while (remain > 0 && !aborted) {
int this_time = remain;
action(image.data.length - remain, image.data.length);
}
if (!aborted) {
- action("done", 100);
+ action(AltosFlashListener.flash_done, 100);
if (debug != null) {
- debug.set_pc(image.address);
+ debug.set_pc((int) image.address);
debug.resume();
}
}
close();
}
- public boolean check_rom_config() {
+ public boolean check_rom_config() throws InterruptedException {
if (debug == null)
return true;
if (rom_config == null)
rom_config = romconfig;
}
- public AltosRomconfig romconfig() {
+ public AltosRomconfig target_romconfig(AltosUsbId usb_id, String usb_product) throws InterruptedException {
if (!check_rom_config())
return null;
+ if (rom_config.usb_id == null)
+ rom_config.usb_id = usb_id;
+ if (rom_config.usb_product == null)
+ rom_config.usb_product = usb_product;
return rom_config;
}
+ public AltosRomconfig image_romconfig() {
+ return new AltosRomconfig(image);
+ }
+
public AltosFlash(File file, AltosLink link, AltosFlashListener listener)
throws IOException, FileNotFoundException, InterruptedException {
this.file = file;
debug = new AltosDebug(link);
input = new FileInputStream(file);
image = new AltosHexfile(input);
- if (debug != null && !debug.check_connection()) {
+
+ boolean connection_ok = true;
+
+ if (debug != null) {
+ try {
+ connection_ok = debug.check_connection();
+ } catch (IOException ie) {
+ debug.close();
+ throw ie;
+ } catch (InterruptedException ie) {
+ debug.close();
+ throw ie;
+ }
+ }
+ if (!connection_ok) {
debug.close();
throw new IOException("Debug port not connected");
}
}
-}
\ No newline at end of file
+}