URL
https://opencores.org/ocsvn/a-z80/a-z80/trunk
[/] [a-z80/] [trunk/] [tools/] [dongle/] [daa/] [simulate-daa.py] - Diff between revs 3 and 8
Show entire file |
Details |
Blame |
View Log
Rev 3 |
Rev 8 |
Line 1... |
Line 1... |
#!/usr/bin/env python
|
#!/usr/bin/env python3
|
#
|
#
|
# This script simulates 'daa' calculation and generates values for numbers 0-255.
|
# This script simulates 'daa' calculation and generates values for numbers 0-255.
|
# These can be compared with a real Z80 run values.
|
# These can be compared with a real Z80 run values.
|
#
|
#
|
import sys
|
import sys
|
Line 13... |
Line 13... |
# F:00 A:00 -> 00 F:44
|
# F:00 A:00 -> 00 F:44
|
inF = int(line[2:4], 16)
|
inF = int(line[2:4], 16)
|
inA = int(line[7:9], 16)
|
inA = int(line[7:9], 16)
|
outA = int(line[13:15], 16)
|
outA = int(line[13:15], 16)
|
outF = int(line[18:20], 16)
|
outF = int(line[18:20], 16)
|
#print 'F:' + ("%0.2X" % inF) + ' A:' + ("%0.2X" % inA) + ' -> ' + ("%0.2X" % outA) + ' F:' + ("%0.2X" % outF)
|
#print ('F:' + ("%0.2X" % inF) + ' A:' + ("%0.2X" % inA) + ' -> ' + ("%0.2X" % outA) + ' F:' + ("%0.2X" % outF))
|
|
|
# Get the flags that will determine daa operation
|
# Get the flags that will determine daa operation
|
hf = (inF>>4) & 1
|
hf = (inF>>4) & 1
|
nf = (inF>>1) & 1
|
nf = (inF>>1) & 1
|
cf = (inF>>0) & 1
|
cf = (inF>>0) & 1
|
Line 57... |
Line 57... |
pf = (((finalA>>7)^(finalA>>6)^(finalA>>5)^(finalA>>4)^(finalA>>3)^(finalA>>2)^(finalA>>1)^(finalA>>0))&1)^1
|
pf = (((finalA>>7)^(finalA>>6)^(finalA>>5)^(finalA>>4)^(finalA>>3)^(finalA>>2)^(finalA>>1)^(finalA>>0))&1)^1
|
nf = (inF>>1) & 1 # Always unchanged
|
nf = (inF>>1) & 1 # Always unchanged
|
|
|
flags = (sf<<7) | (zf<<6) | (yf<<5) | (hf<<4) | (xf<<3) | (pf<<2) | (nf<<1) | (cf<<0)
|
flags = (sf<<7) | (zf<<6) | (yf<<5) | (hf<<4) | (xf<<3) | (pf<<2) | (nf<<1) | (cf<<0)
|
|
|
print 'F:' + ("%0.2X" % inF) + ' A:' + ("%0.2X" % inA) + ' -> ' + ("%0.2X" % finalA) + ' F:' + ("%0.2X" % flags)
|
print ('F:' + ("%0.2X" % inF) + ' A:' + ("%0.2X" % inA) + ' -> ' + ("%0.2X" % finalA) + ' F:' + ("%0.2X" % flags))
|
|
|
No newline at end of file
|
No newline at end of file
|
© copyright 1999-2025
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.