File: testgensquares.py

package info (click to toggle)
gpsim 0.32.1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,640 kB
  • sloc: cpp: 121,258; asm: 54,223; ansic: 13,576; python: 9,708; sh: 4,695; makefile: 1,566; lex: 1,139; yacc: 854; pascal: 511; perl: 93; awk: 44; xml: 41
file content (80 lines) | stat: -rw-r--r-- 1,495 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Sample client program to communicate with gpsim

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("", 0x1234))


s.send("help\n")
print s.recv(20)

# helper functions
def ParseInt(buf):
    if buf[0:3] == "$03" :
        return eval("0x"+buf[3:11])

    return 0


# Symbol Command 
s.send("$"+"97"+"0205start")
r = s.recv(20)
start_adr = ParseInt(r)
print "Start address:"  + str(start_adr)

s.send("reset\n")
print s.recv(20)

s.send("step\n")
print s.recv(20)
s.send("step\n")
print s.recv(20)

# define an example input and send it to the simulator:
x=4
count="0300000020"
s.send("$"+"99"+ count + "03%08x"%x)

# another example of assigning a memory location 
r = s.recv(20)
s.send("$"+"99"+ "0300000040" + "03000000ff")
r = s.recv(20)

# Move the program counter (doesn't work right now)

PCL="0300000002"
# Assign RAM command
#s.send("$"+"99"+ PCL +"03" + "%08x"%start_adr)
#st = "%08x"%start_adr
#s.send("$"+"99"+ PCL + "030000002")
#r = s.recv(20)
#print r


# start the simulation:

s.send("run\n")
print s.recv(20)


# Examine the results
xsq_lo_adr = "0300000022"
s.send("$"+"91"+xsq_lo_adr)
r = s.recv(20)
xsq_lo = ParseInt(r)
print "received:" + r + " decoded as " + str(xsq_lo)

xsq_hi_adr = "0300000023"
s.send("$"+"91"+xsq_hi_adr)
r = s.recv(20)
xsq_hi = ParseInt(r)
print "received:" + r + " decoded as " + str(xsq_hi)

xsq = xsq_hi*256 + xsq_lo
print " Sent " + str(x)
print " Received " + str(xsq)

if x*x == xsq :
  print "PASSED"

s.close()