mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2024-06-19 14:29:39 +00:00
visicalc bug
This commit is contained in:
parent
bff1e8de2d
commit
d84b4c4528
|
@ -15,9 +15,9 @@ import com.bytezone.diskbrowser.utilities.HexFormatter;
|
|||
|
||||
class CodeManager extends AbstractFile
|
||||
{
|
||||
Header header;
|
||||
int codeSize;
|
||||
Map<Integer, Routine> routines = new TreeMap<Integer, Routine> ();
|
||||
private final Header header;
|
||||
private int codeSize;
|
||||
private final Map<Integer, Routine> routines = new TreeMap<Integer, Routine> ();
|
||||
|
||||
public CodeManager (Header header)
|
||||
{
|
||||
|
@ -60,7 +60,7 @@ class CodeManager extends AbstractFile
|
|||
return blocks;
|
||||
}
|
||||
|
||||
public void addMissingRoutines ()
|
||||
void addMissingRoutines ()
|
||||
{
|
||||
System.out.printf ("%nWalking the code block%n%n");
|
||||
int total = 0;
|
||||
|
@ -125,12 +125,12 @@ class CodeManager extends AbstractFile
|
|||
return text.toString ();
|
||||
}
|
||||
|
||||
public boolean containsRoutineAt (int address)
|
||||
boolean containsRoutineAt (int address)
|
||||
{
|
||||
return (routines.containsKey (address));
|
||||
}
|
||||
|
||||
public void addCodeRoutines ()
|
||||
void addCodeRoutines ()
|
||||
{
|
||||
List<Integer> routines = header.objectManager.getCodeRoutines ();
|
||||
System.out.println ("Adding " + routines.size () + " code routines");
|
||||
|
@ -138,7 +138,7 @@ class CodeManager extends AbstractFile
|
|||
addRoutine (address, 0);
|
||||
}
|
||||
|
||||
public void addActionRoutines ()
|
||||
void addActionRoutines ()
|
||||
{
|
||||
List<Integer> routines = header.grammar.getActionRoutines ();
|
||||
System.out.println ("Adding " + routines.size () + " action routines");
|
||||
|
@ -146,7 +146,7 @@ class CodeManager extends AbstractFile
|
|||
addRoutine (address, 0);
|
||||
}
|
||||
|
||||
public Routine addRoutine (int address, int caller)
|
||||
Routine addRoutine (int address, int caller)
|
||||
{
|
||||
if (address == 0) // stack-based call
|
||||
return null;
|
||||
|
@ -174,7 +174,7 @@ class CodeManager extends AbstractFile
|
|||
return r;
|
||||
}
|
||||
|
||||
public Routine getRoutine (int address)
|
||||
Routine getRoutine (int address)
|
||||
{
|
||||
return routines.get (address);
|
||||
}
|
||||
|
|
|
@ -22,13 +22,13 @@ class Header extends InfocomAbstractFile
|
|||
int checksum;
|
||||
int stringPointer;
|
||||
|
||||
Abbreviations abbreviations;
|
||||
Dictionary dictionary;
|
||||
ObjectManager objectManager;
|
||||
StringManager stringManager;
|
||||
CodeManager codeManager;
|
||||
Globals globals;
|
||||
Grammar grammar;
|
||||
final Abbreviations abbreviations;
|
||||
final Dictionary dictionary;
|
||||
final ObjectManager objectManager;
|
||||
final StringManager stringManager;
|
||||
final CodeManager codeManager;
|
||||
final Globals globals;
|
||||
final Grammar grammar;
|
||||
|
||||
public Header (String name, byte[] buffer, Disk disk)
|
||||
{
|
||||
|
|
|
@ -195,7 +195,7 @@ class Cell implements Comparable<Cell>, Value
|
|||
@Override
|
||||
public boolean isError ()
|
||||
{
|
||||
assert isValue () : "Cell type: " + type;
|
||||
// assert isValue () : "Cell type: " + type;
|
||||
return value.isError ();
|
||||
}
|
||||
|
||||
|
@ -211,7 +211,12 @@ class Cell implements Comparable<Cell>, Value
|
|||
@Override
|
||||
public Value calculate ()
|
||||
{
|
||||
assert type == CellType.VALUE;
|
||||
if (!isValue ())
|
||||
{
|
||||
System.out.println ("Not a value");
|
||||
return this;
|
||||
}
|
||||
assert isValue () : "Cell type: " + type + " @ " + address;
|
||||
if (expressionText == null)
|
||||
{
|
||||
System.out.printf ("%s null expression text %n", address);
|
||||
|
|
|
@ -124,7 +124,7 @@ class Expression implements Value
|
|||
@Override
|
||||
public Value calculate ()
|
||||
{
|
||||
// System.out.printf ("Calculating: %s%n", text);
|
||||
System.out.printf ("Calculating: %s%n", text);
|
||||
// if (text.equals ("@NA"))
|
||||
// Utility.printStackTrace ();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user