@@ -15,6 +15,7 @@ function WordPeekSymbol(Symbol: String): Integer; |
| 15 |
procedure WordPokeSymbol(Symbol: String; Value: Word); |
15 |
procedure WordPokeSymbol(Symbol: String; Value: Word); |
| 16 |
function PeekSymbol(Symbol: String): Integer; |
16 |
function PeekSymbol(Symbol: String): Integer; |
| 17 |
procedure PokeSymbol(Symbol: String; Value: Byte); |
17 |
procedure PokeSymbol(Symbol: String; Value: Byte); |
|
|
18 |
procedure WriteBufferToSymbol(Symbol: String; const Buffer; Count: Integer); |
| 18 |
|
19 |
|
| 19 |
procedure ParseSymFile(F: String); |
20 |
procedure ParseSymFile(F: String); |
| 20 |
|
21 |
|
@@ -25,16 +26,25 @@ uses machine; |
| 25 |
var |
26 |
var |
| 26 |
SymbolTable: TSymbolMap; |
27 |
SymbolTable: TSymbolMap; |
| 27 |
|
28 |
|
|
|
29 |
procedure WriteBufferToSymbol(Symbol: String; const Buffer; Count: Integer); |
|
|
30 |
var |
|
|
31 |
I: Integer; |
|
|
32 |
Addr: Integer; |
|
|
33 |
begin |
|
|
34 |
Addr := SymbolAddress(Symbol); |
|
|
35 |
|
|
|
36 |
for I := 0 to Count-1 do |
|
|
37 |
spokeb(Addr+I, PByte(@Buffer)[I]); |
|
|
38 |
end; |
|
|
39 |
|
| 28 |
procedure ParseSymFile(F: String); |
40 |
procedure ParseSymFile(F: String); |
| 29 |
var |
41 |
var |
| 30 |
SL: TStringList; |
42 |
SL: TStringList; |
| 31 |
SA: TStringArray; |
43 |
SA: TStringArray; |
| 32 |
S: String; |
44 |
S: String; |
| 33 |
begin |
45 |
begin |
| 34 |
if Assigned(SymbolTable) then |
46 |
SymbolTable.Clear; |
| 35 |
SymbolTable.Free; |
|
|
| 36 |
|
47 |
|
| 37 |
SymbolTable := TSymbolMap.Create; |
|
|
| 38 |
SL := TStringList.Create; |
48 |
SL := TStringList.Create; |
| 39 |
try |
49 |
try |
| 40 |
SL.LoadFromFile(F); |
50 |
SL.LoadFromFile(F); |
@@ -62,7 +72,6 @@ end; |
| 62 |
|
72 |
|
| 63 |
function PeekSymbol(Symbol: String): Integer; |
73 |
function PeekSymbol(Symbol: String): Integer; |
| 64 |
begin |
74 |
begin |
| 65 |
if SymbolTable = nil then exit(0); |
|
|
| 66 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
75 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
| 67 |
WriteLn(StdErr, '[WARNING] Attempting to peek unloaded symbol: ', symbol); |
76 |
WriteLn(StdErr, '[WARNING] Attempting to peek unloaded symbol: ', symbol); |
| 68 |
Exit(0); |
77 |
Exit(0); |
@@ -73,7 +82,6 @@ end; |
| 73 |
|
82 |
|
| 74 |
procedure PokeSymbol(Symbol: String; Value: Byte); |
83 |
procedure PokeSymbol(Symbol: String; Value: Byte); |
| 75 |
begin |
84 |
begin |
| 76 |
if SymbolTable = nil then exit; |
|
|
| 77 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
85 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
| 78 |
WriteLn(StdErr, '[WARNING] Attempting to poke unloaded symbol: ', symbol); |
86 |
WriteLn(StdErr, '[WARNING] Attempting to poke unloaded symbol: ', symbol); |
| 79 |
Exit; |
87 |
Exit; |
@@ -83,7 +91,6 @@ end; |
| 83 |
|
91 |
|
| 84 |
function WordPeekSymbol(Symbol: String): Integer; |
92 |
function WordPeekSymbol(Symbol: String): Integer; |
| 85 |
begin |
93 |
begin |
| 86 |
if SymbolTable = nil then exit(0); |
|
|
| 87 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
94 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
| 88 |
WriteLn(StdErr, '[WARNING] Attempting to wordpeek unloaded symbol: ', symbol); |
95 |
WriteLn(StdErr, '[WARNING] Attempting to wordpeek unloaded symbol: ', symbol); |
| 89 |
Exit(0); |
96 |
Exit(0); |
@@ -94,7 +101,6 @@ end; |
| 94 |
|
101 |
|
| 95 |
procedure WordPokeSymbol(Symbol: String; Value: Word); |
102 |
procedure WordPokeSymbol(Symbol: String; Value: Word); |
| 96 |
begin |
103 |
begin |
| 97 |
if SymbolTable = nil then exit; |
|
|
| 98 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
104 |
if SymbolTable.IndexOf(Symbol) = -1 then begin |
| 99 |
WriteLn(StdErr, '[WARNING] Attempting to wordpoke unloaded symbol: ', symbol); |
105 |
WriteLn(StdErr, '[WARNING] Attempting to wordpoke unloaded symbol: ', symbol); |
| 100 |
Exit; |
106 |
Exit; |
@@ -102,5 +108,7 @@ begin |
| 102 |
wordpoke(SymbolTable.KeyData[Symbol], Value); |
108 |
wordpoke(SymbolTable.KeyData[Symbol], Value); |
| 103 |
end; |
109 |
end; |
| 104 |
|
110 |
|
|
|
111 |
begin |
|
|
112 |
SymbolTable := TSymbolMap.Create; |
| 105 |
end. |
113 |
end. |
| 106 |
|
114 |
|