Changeset 5 for trunk/Memory.pas
- Timestamp:
- Apr 18, 2026, 7:24:02 PM (9 days ago)
- File:
-
- 1 edited
-
trunk/Memory.pas (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Memory.pas
r2 r5 4 4 5 5 uses 6 Classes, SysUtils, Generics.Collections ;6 Classes, SysUtils, Generics.Collections, Base; 7 7 8 8 type … … 15 15 procedure SetSize(AValue: Integer); virtual; 16 16 public 17 Title: string; 17 18 Position: Integer; 18 19 function Read(Address: Word): Byte; virtual; … … 34 35 procedure Write(Address: Word; Data: Byte); override; 35 36 procedure LoadFromFile(FileName: string); override; 37 end; 38 39 { TMemoryIO } 40 41 TMemoryIO = class(TMemory) 42 private 43 FOnInput: TReadEvent; 44 FOnOutput: TWriteEvent; 45 FSize: Integer; 46 public 47 BasePort: Byte; 48 function GetSize: Integer; override; 49 procedure SetSize(AValue: Integer); override; 50 function Read(Address: Word): Byte; override; 51 procedure Write(Address: Word; Data: Byte); override; 52 property OnInput: TReadEvent read FOnInput write FOnInput; 53 property OnOutput: TWriteEvent read FOnOutput write FOnOutput; 36 54 end; 37 55 … … 166 184 end; 167 185 186 { TMemoryIO } 187 188 function TMemoryIO.GetSize: Integer; 189 begin 190 Result := FSize; 191 end; 192 193 procedure TMemoryIO.SetSize(AValue: Integer); 194 begin 195 FSize := AVAlue; 196 end; 197 198 function TMemoryIO.Read(Address: Word): Byte; 199 begin 200 if Assigned(FOnInput) then FOnInput(BasePort + Address); 201 end; 202 203 procedure TMemoryIO.Write(Address: Word; Data: Byte); 204 begin 205 if Assigned(FOnOutput) then FOnOutput(BasePort + Address, Data); 206 end; 207 168 208 { TMemory } 169 209
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/mzxemu/chrome/site/your_project_logo.png)