Monitor now does CALL and EXEC.
[goodfet] / client / GoodFET.py
index cfc2079..562c654 100755 (executable)
@@ -40,8 +40,12 @@ class GoodFET:
             parity = serial.PARITY_NONE
             )
         
-        #Explicitly set RTS
+        #This might cause problems, but it makes failure graceful.
+        #self.serialport._timeout = 5;
+        
+        #Explicitly set RTS and DTR to halt board.
         self.serialport.setRTS(1);
+        self.serialport.setDTR(1);
         #Drop DTR, which is !RST, low to begin the app.
         self.serialport.setDTR(0);
         self.serialport.flushInput()
@@ -145,6 +149,10 @@ class GoodFET:
     def dir(self,byte):
         """Write a byte to P5DIR."""
         self.writecmd(0,0xA0,1,[byte]);
+    def call(self,adr):
+        """Call to an address."""
+        self.writecmd(0,0x30,2,
+                      [adr&0xFF,(adr>>8)&0xFF]);
     def peekbyte(self,address):
         """Read a byte of memory from the monitor."""
         self.data=[address&0xff,address>>8];