* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_2;
+package org.altusmetrum.altoslib_7;
import java.io.*;
public static final byte GET_CHIP_ID = 0x68;
- AltosLink link;
+ private AltosLink link;
boolean debug_mode;
- void ensure_debug_mode() {
+ void ensure_debug_mode() throws InterruptedException {
if (!debug_mode) {
link.printf("D\n");
- try {
- link.flush_input();
- } catch (InterruptedException ie) {
- }
+ link.flush_input();
debug_mode = true;
}
}
}
public void close() {
- link.close();
+ try {
+ link.close();
+ } catch (InterruptedException ie) {
+ }
}
/*
* Write target memory
*/
- public void write_memory(int address, byte[] bytes, int start, int len) {
+ public void write_memory(int address, byte[] bytes, int start, int len) throws InterruptedException {
ensure_debug_mode();
// dump_memory("write_memory", address, bytes, start, len);
link.printf("O %x %x\n", len, address);
link.printf("%02x", bytes[start + i]);
}
- public void write_memory(int address, byte[] bytes) {
+ public void write_memory(int address, byte[] bytes) throws InterruptedException {
write_memory(address, bytes, 0, bytes.length);
}
int i = 0;
int start = 0;
while (i < length) {
- String line = link.get_reply().trim();
+ String line = link.get_reply();
+ if (line == null)
+ throw new IOException("No reply");
+
+ line = line.trim();
if (!AltosLib.ishex(line) || line.length() % 2 != 0)
throw new IOException(
String.format
/*
* Write raw bytes to the debug link using the 'P' command
*/
- public void write_bytes(byte[] bytes) throws IOException {
+ public void write_bytes(byte[] bytes) throws IOException, InterruptedException {
int i = 0;
ensure_debug_mode();
while (i < bytes.length) {
}
}
- public void write_byte(byte b) throws IOException {
+ public void write_byte(byte b) throws IOException, InterruptedException {
byte[] bytes = { b };
write_bytes(bytes);
}
return true;
}
- public AltosRomconfig romconfig() {
+ public AltosRomconfig romconfig() throws InterruptedException {
try {
byte[] bytes = read_memory(0xa0, 10);
- return new AltosRomconfig(bytes, 0);
+ AltosHexfile hexfile = new AltosHexfile (bytes, 0xa0);
+ return new AltosRomconfig(hexfile);
} catch (IOException ie) {
- } catch (InterruptedException ie) {
}
return new AltosRomconfig();
}
public AltosDebug (AltosLink link) {
this.link = link;
}
-}
\ No newline at end of file
+}