Changeset 6
- Timestamp:
- Apr 19, 2026, 10:45:05 AM (8 days ago)
- Location:
- trunk
- Files:
-
- 5 added
- 2 deleted
- 12 edited
-
Core.lfm (modified) (1 diff)
-
Core.pas (modified) (5 diffs)
-
CpuZ80.pas (deleted)
-
Disassembler.pas (modified) (1 diff)
-
Forms/Base.pas (modified) (1 diff)
-
Forms/FormCpu.pas (modified) (1 diff)
-
Forms/FormDisassembler.pas (modified) (4 diffs)
-
Forms/FormMain.lfm (modified) (2 diffs)
-
Forms/FormMain.pas (modified) (2 diffs)
-
Instructions.pas (deleted)
-
Memory.pas (modified) (2 diffs)
-
SharpMz800.pas (modified) (7 diffs)
-
Z80 (added)
-
Z80/InstructionSetGen.pas (added)
-
Z80/Z80.pas (added)
-
Z80/Z80InstructionInfo.pas (added)
-
Z80/Z80Instructions.pas (added)
-
mzxemu.lpi (modified) (6 diffs)
-
mzxemu.lpr (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Core.lfm
r5 r6 96 96 OnExecute = AViewMessagesExecute 97 97 end 98 object AInstructionSetGen: TAction 99 Category = 'Tools' 100 Caption = 'Generate instruction set' 101 OnExecute = AInstructionSetGenExecute 102 end 98 103 end 99 104 object ImageList1: TImageList -
trunk/Core.pas
r5 r6 12 12 13 13 TCore = class(TDataModule) 14 AInstructionSetGen: TAction; 14 15 AViewMessages: TAction; 15 16 AGoToAddress: TAction; … … 32 33 procedure AExitExecute(Sender: TObject); 33 34 procedure AGoToAddressExecute(Sender: TObject); 35 procedure AInstructionSetGenExecute(Sender: TObject); 34 36 procedure APauseExecute(Sender: TObject); 35 37 procedure AResetExecute(Sender: TObject); … … 70 72 71 73 uses 72 CpuZ80, FormGoToAddress;74 Z80, FormGoToAddress, InstructionSetGen; 73 75 74 76 { TCore } … … 104 106 end; 105 107 108 procedure TCore.AInstructionSetGenExecute(Sender: TObject); 109 var 110 InstructionSetGen: TInstructionSetGen; 111 begin 112 InstructionSetGen := TInstructionSetGen.Create; 113 InstructionSetGen.Generate('Z80/InstructionSet.html'); 114 InstructionSetGen.Free; 115 end; 116 106 117 procedure TCore.APauseExecute(Sender: TObject); 107 118 begin … … 169 180 FormDisassembler := TFormDisassembler.Create(nil); 170 181 FormDisassembler.Disassembler.Memory := SharpMz800.MappedMemory; 182 SharpMz800.OnMemoryMappingChange := FormDisassembler.Disassemble; 171 183 end; 172 184 FormDisassembler.Show; 185 FormMessages.AddMessage(FormDisassembler.Disassembler.InstructionSet.Check(SharpMz800.Cpu.Instructions)); 173 186 end; 174 187 -
trunk/Disassembler.pas
r5 r6 4 4 5 5 uses 6 Classes, SysUtils, CpuZ80, Instructions, StrUtils, Memory, Generics.Collections; 6 Classes, SysUtils, Z80Instructions, Z80InstructionInfo, StrUtils, Memory, 7 Generics.Collections; 7 8 8 9 type -
trunk/Forms/Base.pas
r5 r6 11 11 TMessageEvent = procedure (Text: string) of object; 12 12 13 13 14 implementation 14 15 -
trunk/Forms/FormCpu.pas
r5 r6 5 5 uses 6 6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ValEdit, 7 ExtCtrls, CpuZ80;7 ExtCtrls, Z80; 8 8 9 9 type -
trunk/Forms/FormDisassembler.pas
r5 r6 4 4 5 5 uses 6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,ComCtrls,6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, 7 7 ExtCtrls, Disassembler; 8 8 … … 20 20 public 21 21 Disassembler: TDisassembler; 22 procedure Disassemble(Sender: TObject); 22 23 procedure SelectAddress(Address: Word); 23 24 procedure ReloadList; … … 51 52 procedure TFormDisassembler.FormShow(Sender: TObject); 52 53 begin 53 Disassembler.Disassemble; 54 ReloadList; 54 Disassemble(nil); 55 55 end; 56 56 … … 65 65 Item.SubItems.Add(Parameters); 66 66 end; 67 end; 68 69 procedure TFormDisassembler.Disassemble; 70 begin 71 Disassembler.Disassemble; 72 ReloadList; 67 73 end; 68 74 -
trunk/Forms/FormMain.lfm
r5 r6 4 4 Top = 509 5 5 Width = 1061 6 Caption = ' SHARP MZ-800 emulator'6 Caption = 'MZXEmu' 7 7 ClientHeight = 716 8 8 ClientWidth = 1061 … … 126 126 end 127 127 end 128 object MenuItemTools: TMenuItem 129 Caption = 'Tools' 130 object MenuItem5: TMenuItem 131 Action = Core.AInstructionSetGen 132 end 133 end 128 134 end 129 135 end -
trunk/Forms/FormMain.pas
r5 r6 14 14 MenuItem1: TMenuItem; 15 15 MenuItem2: TMenuItem; 16 MenuItem5: TMenuItem; 17 MenuItemTools: TMenuItem; 16 18 Separator1: TMenuItem; 17 19 MenuItemFile: TMenuItem; … … 68 70 procedure TFormMain.DockInit; 69 71 begin 72 Core.Core.AViewMessages.Execute; 70 73 Core.Core.AViewCpu.Execute; 71 74 Core.Core.AViewScreen.Execute; 72 75 Core.Core.AViewDissssembler.Execute; 73 Core.Core.AViewMessages.Execute;74 76 DockForm(Core.Core.FormScreen, PanelCenter); 75 77 DockForm(Core.Core.FormCpu, PanelRight); -
trunk/Memory.pas
r5 r6 13 13 private 14 14 function GetSize: Integer; virtual; 15 procedure SetSize(AValue: Integer); virtual; 15 procedure SetSize(AValue: Integer); virtual; abstract; 16 16 public 17 17 Title: string; … … 213 213 end; 214 214 215 procedure TMemory.SetSize(AValue: Integer);216 begin217 218 end;219 220 215 function TMemory.Read(Address: Word): Byte; 221 216 begin -
trunk/SharpMz800.pas
r5 r6 4 4 5 5 uses 6 Classes, SysUtils, CpuZ80, Memory, Base;6 Classes, SysUtils, Z80, Memory, Base; 7 7 8 8 type … … 14 14 TSharpMz800 = class 15 15 private 16 FOnMemoryMappingChange: TNotifyEvent; 16 17 WriteFormatRegister: Byte; // WF 17 18 ReadFormatRegister: Byte; // RF … … 27 28 procedure MesssageExecute(Text: string); 28 29 procedure UpdateMemoryMapping; 30 procedure DoMemoryMappingChange; 29 31 public 30 32 Cpu: TCpuZ80; … … 41 43 destructor Destroy; override; 42 44 property OnMessage: TMessageEvent read FOnMessage write FOnMessage; 45 property OnMemoryMappingChange: TNotifyEvent read FOnMemoryMappingChange 46 write FOnMemoryMappingChange; 43 47 end; 44 48 … … 75 79 end; 76 80 $e0..$e6: MemoryBankControl[Address - $e0] := Data; 81 else MesssageExecute('Unsupported I/O port ' + IntToHex(Address, 4) + ' data ' + IntToHex(Data, 2)); 77 82 end; 78 83 end; … … 102 107 end; 103 108 MappedMemory.Areas.AddNew($0, Memory); 109 if Assigned(Cpu) then 110 TThread.Synchronize(Cpu.Thread, DoMemoryMappingChange); 111 end; 112 113 procedure TSharpMz800.DoMemoryMappingChange; 114 begin 115 if Assigned(OnMemoryMappingChange) then 116 FOnMemoryMappingChange(nil); 104 117 end; 105 118 … … 141 154 MappedIO.Size := 8; 142 155 MappedIO.BasePort := $d0; 156 MappedIO.OnInput := CpuInput; 157 MappedIO.OnOutput := CpuOutput; 143 158 UpdateMemoryMapping; 144 159 Cpu := TCpuZ80.Create; -
trunk/mzxemu.lpi
r5 r6 24 24 <SearchPaths> 25 25 <IncludeFiles Value="$(ProjOutDir)"/> 26 <OtherUnitFiles Value="Forms "/>26 <OtherUnitFiles Value="Forms;Z80"/> 27 27 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 28 28 </SearchPaths> … … 85 85 </Unit> 86 86 <Unit> 87 <Filename Value=" CpuZ80.pas"/>87 <Filename Value="Z80/Z80.pas"/> 88 88 <IsPartOfProject Value="True"/> 89 89 </Unit> … … 111 111 </Unit> 112 112 <Unit> 113 <Filename Value=" Instructions.pas"/>113 <Filename Value="Z80/Z80InstructionInfo.pas"/> 114 114 <IsPartOfProject Value="True"/> 115 115 </Unit> … … 143 143 <IsPartOfProject Value="True"/> 144 144 <ComponentName Value="FormGoToAddress"/> 145 <HasResources Value="True"/> 145 146 <ResourceBaseClass Value="Form"/> 146 147 </Unit> … … 149 150 <IsPartOfProject Value="True"/> 150 151 <ComponentName Value="FormMessages"/> 152 <HasResources Value="True"/> 151 153 <ResourceBaseClass Value="Form"/> 152 154 </Unit> 153 155 <Unit> 154 156 <Filename Value="Forms/Base.pas"/> 157 <IsPartOfProject Value="True"/> 158 </Unit> 159 <Unit> 160 <Filename Value="Z80/Z80Instructions.pas"/> 161 <IsPartOfProject Value="True"/> 162 </Unit> 163 <Unit> 164 <Filename Value="Z80/InstructionSetGen.pas"/> 155 165 <IsPartOfProject Value="True"/> 156 166 </Unit> … … 164 174 <SearchPaths> 165 175 <IncludeFiles Value="$(ProjOutDir)"/> 166 <OtherUnitFiles Value="Forms "/>176 <OtherUnitFiles Value="Forms;Z80"/> 167 177 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 168 178 </SearchPaths> -
trunk/mzxemu.lpr
r5 r6 11 11 {$ENDIF} 12 12 SysUtils, Interfaces, // this includes the LCL widgetset 13 Forms, FormMain, FormMemory, FormDisassembler, CpuZ80, SharpMz800, Memory, 14 Core, Instructions, Disassembler, FormCpu, FormScreen, FormGoToAddress, 15 FormMessages, Base 16 { you can add units after this }; 13 Forms, FormMain, FormMemory, FormDisassembler, Z80, SharpMz800, Memory, Core, 14 Z80InstructionInfo, Z80Instructions, Disassembler, FormCpu, FormScreen, 15 FormGoToAddress, FormMessages, Base, InstructionSetGen; 17 16 18 17 {$if declared(UseHeapTrace)}
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)