├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ └── bug_report.yaml └── workflows │ └── SitePublish.yml ├── .gitignore ├── AppSettings.json ├── Artwork ├── Icon.png ├── Icon.psd ├── IconAbout.png └── LogoBig.psd ├── Bufdio ├── AudioDevice.cs ├── AudioFrame.cs ├── AudioStreamInfo.cs ├── Bindings │ └── PortAudio │ │ ├── PaBinding.Delegates.cs │ │ ├── PaBinding.Enums.cs │ │ ├── PaBinding.Structs.cs │ │ └── PaBinding.cs ├── Bufdio.csproj ├── BufdioLib.cs ├── Common │ └── ILogger.cs ├── Decoders │ ├── AudioDecoderResult.cs │ ├── FFmpeg │ │ ├── FFmpegDecoder.cs │ │ ├── FFmpegDecoderOptions.cs │ │ └── FFmpegResampler.cs │ └── IAudioDecoder.cs ├── Engines │ ├── AudioEngineOptions.cs │ ├── IAudioEngine.cs │ └── PortAudioEngine.cs ├── Exceptions │ ├── BufdioException.cs │ ├── FFmpegException.cs │ └── PortAudioException.cs ├── Interop │ ├── Kernel32.cs │ └── Libdl.cs ├── LICENSE.txt ├── Players │ ├── AudioPlayer.cs │ ├── IAudioPlayer.cs │ └── PlaybackState.cs ├── Processors │ ├── ISampleProcessor.cs │ ├── SampleProcessorBase.cs │ └── VolumeProcessor.cs ├── Properties │ └── AssemblyInfo.cs └── Utilities │ ├── Ensure.cs │ ├── Extensions │ ├── FFmpegExtensions.cs │ ├── NumberExtensions.cs │ ├── PortAudioExtensions.cs │ └── ThreadExtensions.cs │ ├── LibraryLoader.cs │ └── PlatformInfo.cs ├── Common ├── Common.csproj ├── DTools.cs ├── TAPTools.cs └── UI.cs ├── CoreSpectrum ├── AudioSamplers │ └── NullAudioSampler.cs ├── CoreSpectrum.csproj ├── Debug │ └── Breakpoint.cs ├── Enums │ ├── SpectrumColors.cs │ └── SpectrumKeys.cs ├── Hardware │ ├── AY8912.cs │ ├── AYSampler.cs │ ├── AccurateContentionSource.cs │ ├── Memory128k.cs │ ├── Memory48k.cs │ ├── SimpleContentionSource.cs │ ├── Spectrum128k.cs │ ├── Spectrum48k.cs │ ├── SpectrumBase.cs │ ├── TapePlayer.cs │ ├── ULA128k.cs │ ├── ULA48k.cs │ ├── ULABase.cs │ └── ULASampler.cs ├── Interfaces │ ├── IAudioSampler.cs │ ├── IAudioSource.cs │ ├── IContentionSource.cs │ ├── ISpectrumAudio.cs │ ├── ISpectrumMemory.cs │ ├── ISynchronizedExecution.cs │ └── IVideoRenderer.cs ├── Renderers │ ├── IndexedVideoRenderer.cs │ └── PaletizedVideoRenderer.cs └── SupportClasses │ ├── CalibrationTape.cs │ ├── ProgramImage.cs │ ├── TAPFile.cs │ ├── TZXFile.cs │ ├── Tape.cs │ ├── TapeBlock.cs │ ├── TapeStream.cs │ └── Z80File.cs ├── HeadlessEmulator ├── HeadlessEmulator.csproj ├── MainResources.Designer.cs ├── MainResources.resx ├── Program.cs ├── Properties │ └── launchSettings.json ├── Resources │ ├── 128k_0_rom.bin │ ├── 128k_1_rom.bin │ ├── 48k_rom.bin │ ├── Plus2_0_rom.bin │ └── Plus2_1_rom.bin └── overflow_i8_add.bin ├── LICENSE.txt ├── MsBox.Avalonia ├── Assets │ ├── battery.png │ ├── bluetooth.png │ ├── database.png │ ├── error.png │ ├── eye.ttf │ ├── folder.png │ ├── forbidden.png │ ├── info.png │ ├── lock.png │ ├── plus.png │ ├── question.png │ ├── setting.png │ ├── speakerless.png │ ├── speakermore.png │ ├── stop.png │ ├── stopwatch.png │ ├── success.png │ ├── warning.png │ └── wifi.png ├── AttachadProperty │ └── HyperLinkCommand.cs ├── Base │ ├── IClose.cs │ ├── ICopy.cs │ ├── IFullApi.cs │ ├── IInput.cs │ ├── IMsBox.cs │ ├── ISetCloseAction.cs │ └── ISetFullApi.cs ├── Controls │ ├── MsBoxCustomView.axaml │ ├── MsBoxCustomView.axaml.cs │ ├── MsBoxStandardView.axaml │ └── MsBoxStandardView.axaml.cs ├── Dto │ ├── AbstractMessageBoxParams.cs │ ├── MessageBoxCustomParams.cs │ └── MessageBoxStandardParams.cs ├── Enums │ ├── ButtonEnum.cs │ ├── ButtonResult.cs │ ├── ClickEnum.cs │ └── Icon.cs ├── MessageBoxManager.cs ├── Models │ └── ButtonDefinition.cs ├── MsBox.Avalonia.csproj ├── MsBox.cs ├── ViewModels │ ├── AbstractMsBoxViewModel.cs │ ├── Commands │ │ └── RelayCommand.cs │ ├── DesignDataContexts.cs │ ├── MsBoxCustomViewModel.cs │ └── MsBoxStandardViewModel.cs ├── Windows │ ├── MsBoxWindow.axaml │ └── MsBoxWindow.axaml.cs ├── icon.jpg └── strong-key.snk ├── README.md ├── Rom128Reconstructor ├── Program.cs ├── Rom128Reconstructor.csproj ├── Spectrum128_ROM0.asm ├── Spectrum128_ROM1.asm ├── SpectrumPlus2_ROM0.asm ├── SpectrumPlus2_ROM1.asm └── pasmo.exe ├── RomReconstructor ├── Program.cs ├── RomReconstructor.csproj ├── rom.asm └── rom.skool ├── TestZ80 ├── Program.cs └── TestZ80.csproj ├── Z80dotNet ├── .gitignore ├── Docs │ ├── Configuration.md │ ├── Dependencies.md │ ├── HowExecutionWorks.md │ ├── InstructionExecutionFlow.md │ ├── Interrupts.md │ ├── MemoryAccessFlow.md │ ├── State.md │ └── StopConditions.md ├── LICENSE.txt ├── MODIFICATIONS.txt ├── Main.Tests │ ├── BitTests.cs │ ├── ClockSynchronizationHelperTests.cs │ ├── HelloWorld.cs │ ├── Instructions Execution │ │ ├── ADC HL,rr .Tests.cs │ │ ├── ADD + ADC A,r + n + (HL) + (IX+d) + (IY+d) .Tests.cs │ │ ├── ADD rr,rr .Tests.cs │ │ ├── AND r + n + (HL) .Tests.cs │ │ ├── BIT .Tests.cs │ │ ├── CALL + CALL cc .Tests.cs │ │ ├── CCF .Tests.cs │ │ ├── CPL .Tests.cs │ │ ├── DAA .Tests.cs │ │ ├── DEC (HL) + DEC (IX+n) + DEC (IY+n) .Tests.cs │ │ ├── DEC r .Tests.cs │ │ ├── DEC rr .Tests.cs │ │ ├── DI + EI .Tests.cs │ │ ├── DJNZ .Tests.cs │ │ ├── EX (SP),HL + IX + IY .Tests.cs │ │ ├── EX AF,AF' .Tests.cs │ │ ├── EX DE,HL .Tests.cs │ │ ├── EXX .Tests.cs │ │ ├── HALT .Tests.cs │ │ ├── IM 0 + IM 1 + IM 2 .Tests.cs │ │ ├── IN A,(n) .Tests.cs │ │ ├── IN r,(C). .Tests.cs │ │ ├── INC (HL) + INC (IX+n) + INC (IY+n) .Tests.cs │ │ ├── INC r .Tests.cs │ │ ├── INC rr .Tests.cs │ │ ├── INI + IND + INIR + INDR + OUTI + OUTD + OTIR + OTDR .Tests.cs │ │ ├── JP (HL) + JP (IX) + JP (IY) .Tests.cs │ │ ├── JP + JP cc .Tests.cs │ │ ├── JR + JR cc .Tests.cs │ │ ├── LD (HL),n .Tests.cs │ │ ├── LD (IX+d),n + LD (IY+d),n .Tests.cs │ │ ├── LD (IX+d),r + LD (IY+d),r .Tests.cs │ │ ├── LD (aa),A .Tests.cs │ │ ├── LD (aa),rr .Tests.cs │ │ ├── LD (rr),r .Tests.cs │ │ ├── LD A,(aa) .Tests.cs │ │ ├── LD A,I + LD A,R .Tests.cs │ │ ├── LD I,A + LD I,R .Tests.cs │ │ ├── LD SP,HL + LD SP,IX + LD SP,IY .Tests.cs │ │ ├── LD r,(IX+d) + LD r,(IY+d) .Tests.cs │ │ ├── LD r,(rr) .Tests.cs │ │ ├── LD r,n .Tests.cs │ │ ├── LD r,r .Tests.cs │ │ ├── LD rr,(aa) .Tests.cs │ │ ├── LD rr,nn .Tests.cs │ │ ├── LDI + LDD + LDIR + LDDR .Tets.cs │ │ ├── NEG .Tests.cs │ │ ├── OR r + n + (HL) .Tests.cs │ │ ├── OUT (C),r. .Tests.cs │ │ ├── OUT (n),A .Tests.cs │ │ ├── POP rr .Tests.cs │ │ ├── PUSH rr .Tests.cs │ │ ├── RET + RET cc + RETI .Tests.cs │ │ ├── RETN .Tests.cs │ │ ├── RL .Tests.cs │ │ ├── RLA .Tests.cs │ │ ├── RLC .Tests.cs │ │ ├── RLCA .Tests.cs │ │ ├── RR .Tests.cs │ │ ├── RRA .Tests.cs │ │ ├── RRC .Tests.cs │ │ ├── RRCA .Tests.cs │ │ ├── RRD + RLD .Tests.cs │ │ ├── RST .Tests.cs │ │ ├── SBC HL,rr .Tests.cs │ │ ├── SCF .Tests.cs │ │ ├── SET + RES .Tests.cs │ │ ├── SLA .Tests.cs │ │ ├── SLL .Tests.cs │ │ ├── SRA .Tests.cs │ │ ├── SRL .Tests.cs │ │ ├── SUB + SBC + CPI + CPD + CP A,r + n + (HL) .Tests.cs │ │ ├── XOR r + n + (HL) .Tests.cs │ │ ├── _InstructionsExecutionTestsBase.cs │ │ └── _Z80InstructionsExecutor_core_tests.cs │ ├── InterruptSourceForTests.cs │ ├── Main.Tests.csproj │ ├── MainZ80RegistersTests.cs │ ├── NumberUtilsTests.cs │ ├── PlainMemoryTests.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── StringExtensions.cs │ ├── Z80ProcessorForTests.cs │ ├── Z80ProcessorTests_Configuration.cs │ ├── Z80ProcessorTests_InstructionExecution.cs │ ├── Z80ProcessorTests_Interrupts.cs │ ├── Z80ProcessorTests_MemoryAccess.cs │ ├── Z80ProcessorTests_Utils.cs │ ├── Z80RegistersTests.cs │ └── packages.config ├── Main │ ├── Custom Exceptions │ │ └── InstructionFetchFinishedEventNotFiredException.cs │ ├── Data Types and Utils │ │ ├── Bit.cs │ │ ├── InstructionExecutionContext.cs │ │ └── NumberUtils.cs │ ├── Dependencies Implementations │ │ ├── MainZ80Registers.cs │ │ ├── PlainIO.cs │ │ ├── PlainMemory.cs │ │ └── Z80Registers.cs │ ├── Dependencies Interfaces │ │ ├── IExecutionStopper.cs │ │ ├── IIO.cs │ │ ├── IMainZ80Registers.cs │ │ ├── IMemory.cs │ │ ├── ITStatesTarget.cs │ │ ├── IZ80InstructionExecutor.cs │ │ ├── IZ80InterruptSource.cs │ │ ├── IZ80ProcessorAgent.cs │ │ └── IZ80Registers.cs │ ├── Enums │ │ ├── MemoryAccessEventType.cs │ │ ├── MemoryAccessMode.cs │ │ ├── ProcessorState.cs │ │ └── StopReason.cs │ ├── EventArgs │ │ ├── BeforeInstructionFetchEventArgs.cs │ │ ├── InstructionFetchFinishedEventArgs.cs │ │ └── InstructionWaitStatesEventArgs.cs │ ├── IZ80Processor.cs │ ├── Instructions Execution │ │ ├── Core │ │ │ ├── Execute_xD_Instruction.cs │ │ │ ├── Execute_xD_Instruction.tt │ │ │ ├── InstructionsTable.CB.cs │ │ │ ├── InstructionsTable.DD.cs │ │ │ ├── InstructionsTable.DDCB.cs │ │ │ ├── InstructionsTable.ED.cs │ │ │ ├── InstructionsTable.FD.cs │ │ │ ├── InstructionsTable.FDCB.cs │ │ │ ├── InstructionsTable.SingleByte.cs │ │ │ ├── ParityTable.cs │ │ │ └── _Z80InstructionExecutor.Core.cs │ │ └── Instructions │ │ │ ├── ADC A,(HL) --see ADD A,r │ │ │ ├── ADC A,(IX+d) --see ADD A,r │ │ │ ├── ADC A,(IY+d) --see ADD A,r │ │ │ ├── ADC A,n --see ADD A,r │ │ │ ├── ADC A,r --see ADD A,r │ │ │ ├── ADC HL,rr + .cs │ │ │ ├── ADC HL,rr + .tt │ │ │ ├── ADD A,(HL) --see ADD A,r │ │ │ ├── ADD A,(IX+d) --see ADD A,r │ │ │ ├── ADD A,(IY+d) --see ADD A,r │ │ │ ├── ADD A,n --see ADD A,r │ │ │ ├── ADD A,r + .cs │ │ │ ├── ADD A,r + .tt │ │ │ ├── ADD rr,rr .cs │ │ │ ├── ADD rr,rr .tt │ │ │ ├── AND (HL) --see AND r │ │ │ ├── AND (IX+d) --see AND r │ │ │ ├── AND (IY+d) --see AND r │ │ │ ├── AND n --see AND r │ │ │ ├── AND r + .cs │ │ │ ├── AND r + .tt │ │ │ ├── BIT b,(HL) --see BIT B,r │ │ │ ├── BIT b,(IX+d) --see BIT B,r │ │ │ ├── BIT b,(IY+d) --see BIT B,r │ │ │ ├── BIT b,r + .cs │ │ │ ├── BIT b,r + .tt │ │ │ ├── CALL --see RET │ │ │ ├── CALL cc --see RET │ │ │ ├── CCF .cs │ │ │ ├── CP (HL) --see ADD A,r │ │ │ ├── CP (IX+d) --see ADD A,r │ │ │ ├── CP (IY+d) --see ADD A,r │ │ │ ├── CP n --see ADD A,r │ │ │ ├── CP r --see ADD A,r │ │ │ ├── CPD --see ADD A,r │ │ │ ├── CPDR --see ADD A,r │ │ │ ├── CPI --see ADD A,r │ │ │ ├── CPIR --see ADD A,r │ │ │ ├── CPL .cs │ │ │ ├── DAA .cs │ │ │ ├── DEC (HL) --see INC r │ │ │ ├── DEC (IX+n) --see INC r │ │ │ ├── DEC (IY+n) --see INC r │ │ │ ├── DEC r --see INC r │ │ │ ├── DEC rr --see INC rr │ │ │ ├── DI .cs │ │ │ ├── DJNZ .cs │ │ │ ├── EI .cs │ │ │ ├── EX (SP),HL + .cs │ │ │ ├── EX (SP),HL + .tt │ │ │ ├── EX (SP),IX --see EX (SP),HL │ │ │ ├── EX (SP),IY --see EX (SP),HL │ │ │ ├── EX AF,AF' .cs │ │ │ ├── EX DE,HL .cs │ │ │ ├── EXX .cs │ │ │ ├── HALT .cs │ │ │ ├── IM n .cs │ │ │ ├── IM n .tt │ │ │ ├── IN A,(n) .cs │ │ │ ├── IN r,(C) .cs │ │ │ ├── IN r,(C) .tt │ │ │ ├── INC (HL) --see INC r │ │ │ ├── INC (IX+n) --see INC r │ │ │ ├── INC (IY+n) --see INC r │ │ │ ├── INC r + .cs │ │ │ ├── INC r + .tt │ │ │ ├── INC rr + .cs │ │ │ ├── INC rr + .tt │ │ │ ├── IND --see INI │ │ │ ├── INDR --see INI │ │ │ ├── INI + .cs │ │ │ ├── INI + .tt │ │ │ ├── INIR --see INI │ │ │ ├── JP --see RET │ │ │ ├── JP (HL) + .cs │ │ │ ├── JP (HL) + .tt │ │ │ ├── JP (IX) --see JP (HL) │ │ │ ├── JP (IY) --see JP (HL) │ │ │ ├── JP cc --see RET │ │ │ ├── JR .cs │ │ │ ├── JR cc .cs │ │ │ ├── JR cc .tt │ │ │ ├── LD (HL),n + .cs │ │ │ ├── LD (HL),n + .tt │ │ │ ├── LD (IX+d),n --see LD (HL),n │ │ │ ├── LD (IX+d),r --see LD r,(rr) │ │ │ ├── LD (IY+d),n --see LD (HL),n │ │ │ ├── LD (IY+d),r --see LD r,(rr) │ │ │ ├── LD (aa),A .cs │ │ │ ├── LD (aa),rr .cs │ │ │ ├── LD (aa),rr .tt │ │ │ ├── LD A,(aa) .cs │ │ │ ├── LD A,I + .cs │ │ │ ├── LD A,I + .tt │ │ │ ├── LD A,R --see LD A,I │ │ │ ├── LD I,A + .cs │ │ │ ├── LD I,A + .tt │ │ │ ├── LD R,A --see LD I,A │ │ │ ├── LD SP,HL + .cs │ │ │ ├── LD SP,HL + .tt │ │ │ ├── LD SP,IX --see LD SP,HL │ │ │ ├── LD SP,IY --see LD SP,HL │ │ │ ├── LD r,(IX+d) --see LD r,(rr) │ │ │ ├── LD r,(IY+d) --see LD r,(rr) │ │ │ ├── LD r,(rr) + .cs │ │ │ ├── LD r,(rr) + .tt │ │ │ ├── LD r,n .cs │ │ │ ├── LD r,n .tt │ │ │ ├── LD r,r .cs │ │ │ ├── LD r,r .tt │ │ │ ├── LD rr,(aa) .cs │ │ │ ├── LD rr,(aa) .tt │ │ │ ├── LD rr,nn .cs │ │ │ ├── LD rr,nn .tt │ │ │ ├── LDD --see LDI │ │ │ ├── LDDR --see LDI - Copy │ │ │ ├── LDI + .cs │ │ │ ├── LDI + .tt │ │ │ ├── LDIR --see LDI │ │ │ ├── NEG .cs │ │ │ ├── NOP .cs │ │ │ ├── NOP2 .cs │ │ │ ├── OR (IX+d) --see AND r │ │ │ ├── OR (IY+d) --see AND r │ │ │ ├── OR n --see AND r │ │ │ ├── OR r --see AND r │ │ │ ├── OTDR --see INI │ │ │ ├── OTIR --see INI │ │ │ ├── OUT (C),r .cs │ │ │ ├── OUT (C),r .tt │ │ │ ├── OUT (n),A .cs │ │ │ ├── OUTD --see INI │ │ │ ├── OUTI --see INI │ │ │ ├── POP rr --see PUSH rr │ │ │ ├── PUSH rr + .cs │ │ │ ├── PUSH rr + .tt │ │ │ ├── RES b,(HL) --see SET B,r │ │ │ ├── RES b,(IX+d) --see SET B,r │ │ │ ├── RES b,(IY+d) --see SET B,r │ │ │ ├── RES b,r --see SET B,r │ │ │ ├── RET + .cs │ │ │ ├── RET + .tt │ │ │ ├── RET cc --see RET │ │ │ ├── RETN .cs │ │ │ ├── RETN .tt │ │ │ ├── RL (HL) --see RLCA │ │ │ ├── RL (IX+d) + ,r --see RLCA │ │ │ ├── RL (IY+d) + ,r --see RLCA │ │ │ ├── RL r --see RLCA │ │ │ ├── RLC (HL) --see RLCA │ │ │ ├── RLC (IX+d) + ,r --see RLCA │ │ │ ├── RLC (IY+d) + ,r --see RLCA │ │ │ ├── RLC r --see RLCA │ │ │ ├── RLCA + .cs │ │ │ ├── RLCA + .tt │ │ │ ├── RLD --see RRD │ │ │ ├── RR (HL) --see RLCA │ │ │ ├── RR (IX+d) + ,r --see RLCA │ │ │ ├── RR (IY+d) + ,r --see RLCA │ │ │ ├── RR r --see RLCA │ │ │ ├── RRC (HL) --see RLCA │ │ │ ├── RRC (IX+d)[ ,r] --see RLCA │ │ │ ├── RRC (IY+d)[ ,r] --see RLCA │ │ │ ├── RRC r --see RLCA │ │ │ ├── RRD + .cs │ │ │ ├── RRD + .tt │ │ │ ├── RST .cs │ │ │ ├── RST .tt │ │ │ ├── SBC A,(HL) --see ADD A,r │ │ │ ├── SBC A,(IX+d) --see ADD A,r │ │ │ ├── SBC A,(IY+d) --see ADD A,r │ │ │ ├── SBC A,n --see ADD A,r │ │ │ ├── SBC A,r --see ADD A,r │ │ │ ├── SBC HL,rr --see ADC HL,rr │ │ │ ├── SCF .cs │ │ │ ├── SET b,(HL) --see SET B,r │ │ │ ├── SET b,(IX+d) --see SET B,r │ │ │ ├── SET b,(IY+d) --see SET B,r │ │ │ ├── SET b,r + .cs │ │ │ ├── SET b,r + .tt │ │ │ ├── SLA (HL) --see RLCA │ │ │ ├── SLA (IX+d) --see RLCA │ │ │ ├── SLA (IY+d) --see RLCA │ │ │ ├── SLA r --see RLCA │ │ │ ├── SLL (HL) --see RLCA │ │ │ ├── SLL (IX+d) --see RLCA │ │ │ ├── SLL (IY+d) --see RLCA │ │ │ ├── SLL r --see RLCA │ │ │ ├── SRA (HL) --see RLCA │ │ │ ├── SRA (IX+d) --see RLCA │ │ │ ├── SRA (IY+d) --see RLCA │ │ │ ├── SRA r --see RLCA │ │ │ ├── SRL (HL) --see RLCA │ │ │ ├── SRL (IX+d) --see RLCA │ │ │ ├── SRL (IY+d) --see RLCA │ │ │ ├── SRL r --see RLCA │ │ │ ├── SUB A,(HL) --see ADD A,r │ │ │ ├── SUB A,(IX+d) --see ADD A,r │ │ │ ├── SUB A,(IY+d) --see ADD A,r │ │ │ ├── SUB A,n --see ADD A,r │ │ │ ├── SUB A,r --see ADD A,r │ │ │ ├── XOR (HL) --see AND r │ │ │ ├── XOR (IX+d) --see AND r │ │ │ ├── XOR (IY +d) --see AND r │ │ │ ├── XOR n --see AND r │ │ │ ├── XOR r --see AND r │ │ │ └── _Utils.t4 │ ├── Main.csproj │ ├── Main.nuspec │ ├── Properties │ │ └── AssemblyInfo.cs │ └── Z80Processor.cs ├── README.md ├── ReleaseNotes.txt ├── Z80dotNet.png ├── Z80dotNet.shfbproj ├── Z80dotNet.sln ├── Z80dotNet.sln.DotSettings └── ZexallTest │ ├── App.config │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── ZEXALL.txt │ ├── ZEXDOC.txt │ ├── ZexallTest.csproj │ ├── zexall.com │ └── zexdoc.com ├── ZXBStudio ├── .gitignore ├── App.axaml ├── App.axaml.cs ├── Assets │ ├── AssemblerIcon.png │ ├── DirectiveIcon.png │ ├── Icon.png │ ├── IconAbout.png │ ├── KeywordIcon.png │ ├── LogoBig.png │ ├── TypeIcon.png │ ├── asmFile.png │ ├── cfgFile.png │ ├── debug.png │ ├── folder.png │ ├── logoSmall.png │ ├── ramdiskBinFile.png │ ├── ramdiskFile.png │ ├── txtFile.png │ ├── unknFile.png │ ├── zxForms.png │ ├── zxGraphics_config.png │ ├── zxGraphics_fnt.png │ ├── zxGraphics_map.png │ ├── zxGraphics_spr.png │ ├── zxGraphics_til.png │ ├── zxGraphics_udg.png │ ├── zxbFile.png │ ├── zxbs.ico │ └── zxtFile.png ├── BuildSystem │ ├── ZXBasicLocation.cs │ ├── ZXBasicMap.cs │ ├── ZXCodeFile.cs │ ├── ZXCodeLine.cs │ ├── ZXMemoryMap.cs │ ├── ZXProgram.cs │ ├── ZXProjectBuilder.cs │ ├── ZXVariable.cs │ ├── ZXVariableHelper.cs │ └── ZXVariableMap.cs ├── Classes │ ├── BreakpointManager.cs │ ├── GLConsts.cs │ ├── GlobalKeybHandler.cs │ ├── MicroTimer.cs │ ├── ObjectTreeEventHandler.cs │ ├── SortableObservableCollection.cs │ ├── ZXApplicationFileProvider.cs │ ├── ZXBuildSettings.cs │ ├── ZXConstants.cs │ ├── ZXExportOptions.cs │ ├── ZXGlobalVariableMap.cs │ ├── ZXKeybCommand.cs │ ├── ZXKeybMapper.cs │ ├── ZXLayoutPersister.cs │ ├── ZXLocalVariableMap.cs │ ├── ZXLogTextWriter.cs │ ├── ZXOptions.cs │ ├── ZXProjectManager.cs │ ├── ZXStaticData.cs │ └── ZXWindowBase.cs ├── Common │ ├── DTools.cs │ ├── TAPTools │ │ ├── ITAPBlock.cs │ │ ├── TAPBlock.cs │ │ ├── TAPData.cs │ │ ├── TAPFile.cs │ │ ├── TAPHeader.cs │ │ └── TAPRawBlock.cs │ └── ZXSinclairBasic │ │ ├── ZXSinclairBasicInstruction.cs │ │ ├── ZXSinclairBasicLine.cs │ │ ├── ZXSinclairBasicProgram.cs │ │ └── ZXSinclairBasicToken.cs ├── Controls │ ├── DockSystem │ │ ├── IZXDockingContainer.cs │ │ ├── ZXCollapseButton.axaml │ │ ├── ZXCollapseButton.axaml.cs │ │ ├── ZXDockingContainer.cs │ │ ├── ZXDockingControl.axaml │ │ ├── ZXDockingControl.axaml.cs │ │ ├── ZXFloatController.cs │ │ ├── ZXFloatingWindow.axaml │ │ ├── ZXFloatingWindow.axaml.cs │ │ ├── ZXGrip.cs │ │ ├── ZXTabDockingButton.axaml │ │ ├── ZXTabDockingButton.axaml.cs │ │ ├── ZXTabDockingContainer.axaml │ │ └── ZXTabDockingContainer.axaml.cs │ ├── ZXLocalVariablesView.axaml │ ├── ZXLocalVariablesView.axaml.cs │ ├── ZXOutputLog.axaml │ ├── ZXOutputLog.axaml.cs │ ├── ZXProjectExplorer.axaml │ └── ZXProjectExplorer.axaml.cs ├── DebuggingTools │ ├── Flags │ │ └── Controls │ │ │ ├── ZXFlagsView.axaml │ │ │ └── ZXFlagsView.axaml.cs │ ├── Memory │ │ ├── Classes │ │ │ └── ZXMemoryRange.cs │ │ ├── Controls │ │ │ ├── ZXMemoryView.axaml │ │ │ └── ZXMemoryView.axaml.cs │ │ └── Dialogs │ │ │ ├── ZXMemoryGotoDialog.axaml │ │ │ ├── ZXMemoryGotoDialog.axaml.cs │ │ │ ├── ZXMemorySearchDialog.axaml │ │ │ └── ZXMemorySearchDialog.axaml.cs │ ├── Registers │ │ ├── Binding │ │ │ └── ZXRegister.cs │ │ └── Controls │ │ │ ├── ZXRegisterView.axaml │ │ │ ├── ZXRegisterView.axaml.cs │ │ │ ├── ZXRegistersView.axaml │ │ │ └── ZXRegistersView.axaml.cs │ ├── TStates │ │ └── Controls │ │ │ ├── ZXTStatesView.axaml │ │ │ └── ZXTStatesView.axaml.cs │ └── Variables │ │ └── Controls │ │ ├── ZXVariablePropertyView.axaml │ │ ├── ZXVariablePropertyView.axaml.cs │ │ ├── ZXVariablesView.axaml │ │ └── ZXVariablesView.axaml.cs ├── Dialogs │ ├── SplashScreen.axaml │ ├── SplashScreen.axaml.cs │ ├── ZXAboutDialog.axaml │ ├── ZXAboutDialog.axaml.cs │ ├── ZXBuildSettingsDialog.axaml │ ├── ZXBuildSettingsDialog.axaml.cs │ ├── ZXDumpMemoryDialog.axaml │ ├── ZXDumpMemoryDialog.axaml.cs │ ├── ZXExportDialog.axaml │ ├── ZXExportDialog.axaml.cs │ ├── ZXKeybMappingDialog.axaml │ ├── ZXKeybMappingDialog.axaml.cs │ ├── ZXNewFileDialog.axaml │ ├── ZXNewFileDialog.axaml.cs │ ├── ZXOptionsDialog.axaml │ └── ZXOptionsDialog.axaml.cs ├── DocumentEditors │ ├── NextDows │ │ ├── FormEditor.axaml │ │ ├── FormEditor.axaml.cs │ │ ├── ZXFormsControl.axaml │ │ ├── ZXFormsControl.axaml.cs │ │ ├── ZXFormsEditor.axaml │ │ ├── ZXFormsEditor.axaml.cs │ │ ├── dat │ │ │ └── DataLayer.cs │ │ ├── images │ │ │ ├── Box32.png │ │ │ ├── Button32.png │ │ │ ├── Check32.png │ │ │ ├── Circle32.png │ │ │ ├── Image32.png │ │ │ ├── Label32.png │ │ │ ├── Line32.png │ │ │ ├── List32.png │ │ │ ├── Modal32.png │ │ │ ├── Panel32.png │ │ │ ├── Pointer32.png │ │ │ ├── Radio32.png │ │ │ ├── Select32.png │ │ │ ├── Table32.png │ │ │ └── TextBox32.png │ │ ├── log │ │ │ ├── ExportManager.cs │ │ │ └── ServiceLayer.cs │ │ └── neg │ │ │ ├── AlignTypes.cs │ │ │ ├── ControlItem.cs │ │ │ ├── ControlProperties.cs │ │ │ ├── ControlProperty.cs │ │ │ ├── ControlsTypes.cs │ │ │ └── PaletteColor.cs │ ├── ZXGraphics │ │ ├── ColorPickerControl.axaml │ │ ├── ColorPickerControl.axaml.cs │ │ ├── ColorPickerDialog.axaml │ │ ├── ColorPickerDialog.axaml.cs │ │ ├── EditorControl.axaml │ │ ├── EditorControl.axaml.cs │ │ ├── FontGDUEditor.axaml │ │ ├── FontGDUEditor.axaml.cs │ │ ├── FontGDUExportDialog.axaml │ │ ├── FontGDUExportDialog.axaml.cs │ │ ├── IZXBitmap.cs │ │ ├── ImageViewImportControl.cs │ │ ├── PatternControl.axaml │ │ ├── PatternControl.axaml.cs │ │ ├── PreviewControl.axaml │ │ ├── PreviewControl.axaml.cs │ │ ├── SelectExportTypeControl.axaml │ │ ├── SelectExportTypeControl.axaml.cs │ │ ├── SpriteEditor.axaml │ │ ├── SpriteEditor.axaml.cs │ │ ├── SpriteExportDialog.axaml │ │ ├── SpriteExportDialog.axaml.cs │ │ ├── SpriteImportDialog.axaml │ │ ├── SpriteImportDialog.axaml.cs │ │ ├── SpritePatternControl.axaml │ │ ├── SpritePatternControl.axaml.cs │ │ ├── SpritePatternEditor.axaml │ │ ├── SpritePatternEditor.axaml.cs │ │ ├── SpritePreviewControl.axaml │ │ ├── SpritePreviewControl.axaml.cs │ │ ├── SpritePropertiesControl.axaml │ │ ├── SpritePropertiesControl.axaml.cs │ │ ├── ZXGridImageView.axaml │ │ ├── ZXGridImageView.axaml.cs │ │ ├── ZXPatternImage.cs │ │ ├── ZXSpriteImage.cs │ │ ├── dat │ │ │ └── DataLayer.cs │ │ ├── log │ │ │ ├── ExportManager.cs │ │ │ └── ServiceLayer.cs │ │ └── neg │ │ │ ├── AttributeColor.cs │ │ │ ├── ExportConfig.cs │ │ │ ├── ExportDataTypes.cs │ │ │ ├── ExportTypeDescrioptionItem.cs │ │ │ ├── ExportTypes.cs │ │ │ ├── FileTypeConfig.cs │ │ │ ├── FileTypes.cs │ │ │ ├── GraphicsModes.cs │ │ │ ├── Operation.cs │ │ │ ├── PaletteColor.cs │ │ │ ├── Pattern.cs │ │ │ ├── PointData.cs │ │ │ └── Sprite.cs │ ├── ZXRamDisk │ │ ├── Classes │ │ │ └── ZXRamDiskFile.cs │ │ └── Controls │ │ │ ├── ZXRamDiskEditor.axaml │ │ │ └── ZXRamDiskEditor.axaml.cs │ ├── ZXTapeBuilder │ │ ├── Classes │ │ │ ├── BoolToColorConverter.cs │ │ │ └── ZXTapeBuilderFile.cs │ │ └── Controls │ │ │ ├── ZXTapeBuilderEditor.axaml │ │ │ └── ZXTapeBuilderEditor.axaml.cs │ └── ZXTextEditor │ │ ├── Classes │ │ ├── Breakpoints │ │ │ ├── BreakpointMargin.cs │ │ │ └── PausedLineBackgroundRender.cs │ │ ├── Folding │ │ │ ├── AbstractFoldingStrategy.cs │ │ │ └── ZXBasicFoldingStrategy.cs │ │ └── LanguageDefinitions │ │ │ ├── LanguageDefinitionBase.cs │ │ │ ├── ZXAssemblerDefinition.cs │ │ │ ├── ZXBasicCompletionData.cs │ │ │ ├── ZXBasicDefinition.cs │ │ │ └── ZXJsonDefinition.cs │ │ └── Controls │ │ ├── ZXAssemblerEditor.cs │ │ ├── ZXBasicEditor.cs │ │ ├── ZXJsonEditor.cs │ │ ├── ZXTextEditor.axaml │ │ └── ZXTextEditor.axaml.cs ├── DocumentModel │ ├── Classes │ │ ├── ZXDocumentEditorBase.cs │ │ └── ZXDocumentProvider.cs │ ├── Enums │ │ ├── ZXBuildStage.cs │ │ └── ZXBuildType.cs │ └── Interfaces │ │ ├── IZXDocumentBuilder.cs │ │ ├── IZXDocumentFactory.cs │ │ └── IZXDocumentType.cs ├── Emulator │ ├── Binding │ │ └── ZXKey.cs │ ├── Classes │ │ ├── Connectors │ │ │ └── IEmulatorConnector.cs │ │ ├── ZXBinaryBank.cs │ │ ├── ZXBreakPoint.cs │ │ ├── ZXEmulatorAudio.cs │ │ ├── ZXEmulatorKeyboardMapper.cs │ │ ├── ZXSpectrumModelDefinitions.cs │ │ └── ZXVideoRenderer.cs │ └── Controls │ │ ├── ZXEmulator.axaml │ │ ├── ZXEmulator.axaml.cs │ │ ├── ZXKeyView.axaml │ │ ├── ZXKeyView.axaml.cs │ │ ├── ZXKeyboardView.axaml │ │ ├── ZXKeyboardView.axaml.cs │ │ ├── ZXScreen.axaml │ │ ├── ZXScreen.axaml.cs │ │ ├── ZXTapePlayer.axaml │ │ └── ZXTapePlayer.axaml.cs ├── Extensions │ └── TopLevelExtensions.cs ├── Fonts │ ├── AlmaMono-Bold.otf │ ├── AlmaMono-Heavy.otf │ ├── AlmaMono-Light.otf │ ├── AlmaMono-Regular.otf │ ├── AlmaMono-Thin.otf │ ├── BPmono.ttf │ ├── BPmonoBold.ttf │ ├── BPmonoItalics.ttf │ ├── BergenMono-Bold.otf │ ├── BergenMono-BoldItalic.otf │ ├── BergenMono-Italic.otf │ ├── BergenMono-Regular.otf │ ├── BergenMono-SemiBold.otf │ ├── BergenMono-SemiBoldItalic.otf │ ├── CascadiaMono-Bold.otf │ ├── CascadiaMono-BoldItalic.otf │ ├── CascadiaMono-ExtraLight.otf │ ├── CascadiaMono-ExtraLightItalic.otf │ ├── CascadiaMono-Italic.otf │ ├── CascadiaMono-Light.otf │ ├── CascadiaMono-LightItalic.otf │ ├── CascadiaMono-Regular.otf │ ├── CascadiaMono-SemiBold.otf │ ├── CascadiaMono-SemiBoldItalic.otf │ ├── CascadiaMono-SemiLight.otf │ ├── CascadiaMono-SemiLightItalic.otf │ ├── ConsolaMono-Bold.ttf │ ├── ConsolaMono.ttf │ ├── DroidSansMono.ttf │ ├── FiraCode-Regular.ttf │ ├── NimbusSanL-Bol.ttf │ ├── NimbusSanL-BolIta.ttf │ ├── NimbusSanL-Reg.ttf │ └── NimbusSanL-RegIta.ttf ├── IntegratedDocumentTypes │ ├── CodeDocuments │ │ ├── Assembler │ │ │ ├── ZXAssemblerDocument.cs │ │ │ └── ZXAssemblerDocumentFactory.cs │ │ ├── Basic │ │ │ ├── ZXBasicDocument.cs │ │ │ └── ZXBasicDocumentFactory.cs │ │ ├── Configuration │ │ │ ├── ZXConfigurationDocument.cs │ │ │ └── ZXConfigurationFactory.cs │ │ └── Text │ │ │ ├── ZXTextDocument.cs │ │ │ └── ZXTextDocumentFactory.cs │ ├── NextDows │ │ ├── ZXFormsDocument.cs │ │ └── ZXFormsDocumentFactory.cs │ ├── Resources │ │ └── ZXRamDisk │ │ │ ├── ZXRamDiskBinaryDocument.cs │ │ │ ├── ZXRamDiskBuilder.cs │ │ │ ├── ZXRamDiskDocument.cs │ │ │ └── ZXRamDiskFactory.cs │ ├── TapeDocuments │ │ └── ZXTapeBuilder │ │ │ ├── ZXTapeBuilderBuilder.cs │ │ │ ├── ZXTapeBuilderDocument.cs │ │ │ └── ZXTapeBuilderFactory.cs │ └── ZXGraphics │ │ ├── FontDocument.cs │ │ ├── FontDocumentFactory.cs │ │ ├── SpriteDocument.cs │ │ ├── SpriteDocumentFactory.cs │ │ ├── UDGDocument.cs │ │ └── UDGDocumentFactory.cs ├── MainWindow.axaml ├── MainWindow.axaml.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Resources │ ├── 128k_0_asm.asm │ ├── 128k_0_map.map │ ├── 128k_0_rom.bin │ ├── 128k_1_asm.asm │ ├── 128k_1_map.map │ ├── 128k_1_rom.bin │ ├── 48k_asm.asm │ ├── 48k_map.map │ ├── 48k_rom.bin │ ├── Plus2_0_asm.asm │ ├── Plus2_0_map.map │ ├── Plus2_0_rom.bin │ ├── Plus2_1_asm.asm │ ├── Plus2_1_map.map │ ├── Plus2_1_rom.bin │ ├── PortAudio.Designer.cs │ ├── PortAudio.resx │ ├── ZXSpectrum.Designer.cs │ ├── ZXSpectrum.resx │ ├── libportaudio.dll │ ├── libportaudio.dylib │ ├── libportaudio.so │ └── sysvars.inc ├── Roots.xml ├── Svg │ ├── Cancel.svg │ ├── Copy.svg │ ├── Cut.svg │ ├── Documents │ │ ├── file-font.svg │ │ ├── file-map.svg │ │ ├── file-sprite.svg │ │ ├── file-text.svg │ │ ├── file-tile.svg │ │ ├── file-udg.svg │ │ ├── file-zxasm.svg │ │ ├── file-zxbasic.svg │ │ ├── file-zxforms.svg │ │ ├── file-zxramdisk.svg │ │ └── file-zxtape.svg │ ├── Export.svg │ ├── HMirror.svg │ ├── ImageImport.svg │ ├── Invert.svg │ ├── Mask.svg │ ├── MoveRight.svg │ ├── Paste.svg │ ├── RotateLeft.svg │ ├── RotateRight.svg │ ├── Seal.svg │ ├── ShiftRight.svg │ ├── VMirror.svg │ ├── White │ │ ├── backward-solid.svg │ │ ├── backward-step-solid.svg │ │ ├── box-open-solid.svg │ │ ├── box-solid.svg │ │ ├── boxes-stacked-solid.svg │ │ ├── bug-solid.svg │ │ ├── caret-down-solid.svg │ │ ├── caret-up-solid.svg │ │ ├── cassette-solid.svg │ │ ├── circle-info-solid.svg │ │ ├── circle-minus-solid.svg │ │ ├── circle-question-solid.svg │ │ ├── circle-xmark-solid.svg │ │ ├── clock-rotate-left-solid.svg │ │ ├── comment-dots-solid.svg │ │ ├── comment-slash-solid.svg │ │ ├── copy-solid.svg │ │ ├── diagram-project-cross-solid.svg │ │ ├── diagram-project-plus-solid.svg │ │ ├── diagram-project-solid.svg │ │ ├── display-lines-solid.svg │ │ ├── dumpster-solid.svg │ │ ├── eject-solid.svg │ │ ├── eraser-solid.svg │ │ ├── exit-solid.svg │ │ ├── file-arrow-down-solid.svg │ │ ├── file-circle-minus-solid.svg │ │ ├── file-circle-plus-solid.svg │ │ ├── file-circle-xmark-solid.svg │ │ ├── file-export-solid.svg │ │ ├── floppy-disk-solid.svg │ │ ├── folder-open-solid.svg │ │ ├── folder-plus-solid.svg │ │ ├── forward-fast-solid.svg │ │ ├── forward-solid.svg │ │ ├── forward-step-solid.svg │ │ ├── gears-solid.svg │ │ ├── github.svg │ │ ├── hashtag-solid.svg │ │ ├── keyboard-regular.svg │ │ ├── layout-alltools-solid.svg │ │ ├── layout-debug-solid.svg │ │ ├── layout-explorer-solid.svg │ │ ├── layout-full-solid.svg │ │ ├── layout-play-solid.svg │ │ ├── list-ol-solid.svg │ │ ├── magnifying-glass-location-solid.svg │ │ ├── maximize-solid.svg │ │ ├── minimize-solid.svg │ │ ├── minus-solid.svg │ │ ├── open-last-project-solid.svg │ │ ├── paste-solid.svg │ │ ├── pause-solid.svg │ │ ├── play-solid.svg │ │ ├── power-off-solid.svg │ │ ├── rectangle-list-solid.svg │ │ ├── rectangle-xmark-solid.svg │ │ ├── scissors-solid.svg │ │ ├── square-minus-solid.svg │ │ ├── square-plus-solid.svg │ │ ├── stop-solid.svg │ │ ├── tag-solid.svg │ │ ├── thumbtack-solid.svg │ │ ├── thumbtack-vertical-solid.svg │ │ ├── trash-can-regular.svg │ │ ├── trash-solid.svg │ │ └── truck-fast-solid.svg │ ├── backward-solid.svg │ ├── backward-step-solid.svg │ ├── binary.svg │ ├── box-open-solid.svg │ ├── box-solid.svg │ ├── boxes-stacked-solid.svg │ ├── bug-solid.svg │ ├── buildexport.svg │ ├── caret-down-solid.svg │ ├── caret-up-solid.svg │ ├── cassette-solid.svg │ ├── cassette.svg │ ├── check-alt-svgrepo-com.svg │ ├── circle-info-solid.svg │ ├── circle-minus-solid.svg │ ├── circle-question-solid.svg │ ├── circle-xmark-solid.svg │ ├── clock-rotate-left-solid.svg │ ├── comment-dots-solid.svg │ ├── comment-slash-solid.svg │ ├── copy-solid.svg │ ├── diagram-project-cross-solid.svg │ ├── diagram-project-plus-solid.svg │ ├── diagram-project-solid.svg │ ├── display-lines-solid.svg │ ├── dumpster-solid.svg │ ├── eject-solid.svg │ ├── eraser-solid.svg │ ├── file-arrow-down-solid.svg │ ├── file-circle-minus-solid.svg │ ├── file-circle-plus-solid.svg │ ├── file-circle-xmark-solid.svg │ ├── file-export-solid.svg │ ├── floppy-disk-solid.svg │ ├── floppy-multiple-disk-solid.svg │ ├── folder-open-solid.svg │ ├── folder-plus-solid.svg │ ├── font-decrease.svg │ ├── font-increase.svg │ ├── forward-fast-solid.svg │ ├── forward-solid.svg │ ├── forward-step-solid.svg │ ├── gears-solid.svg │ ├── github.svg │ ├── hashtag-solid.svg │ ├── invert-color-svgrepo-com.svg │ ├── invert-mode-svgrepo-com.svg │ ├── keyboard-regular.svg │ ├── layout-alltools-solid.svg │ ├── layout-debug-solid.svg │ ├── layout-explorer-solid.svg │ ├── layout-full-solid.svg │ ├── layout-play-solid.svg │ ├── list-ol-solid.svg │ ├── magnifying-glass-arrow-right-solid.svg │ ├── magnifying-glass-location-solid.svg │ ├── magnifying-glass-solid.svg │ ├── maximize-solid.svg │ ├── minimize-solid.svg │ ├── minus-solid.svg │ ├── open-last-project-solid.svg │ ├── paste-solid.svg │ ├── pause-solid.svg │ ├── play-solid.svg │ ├── power-off-solid.svg │ ├── rectangle-list-solid.svg │ ├── rectangle-xmark-solid.svg │ ├── redo.svg │ ├── scissors-solid.svg │ ├── square-minus-solid.svg │ ├── square-plus-solid.svg │ ├── stop-solid.svg │ ├── tag-solid.svg │ ├── text-asm.svg │ ├── text-data.svg │ ├── text-dim.svg │ ├── thumbtack-solid.svg │ ├── trash-can-regular.svg │ ├── trash-solid.svg │ ├── truck-fast-solid.svg │ ├── undo.svg │ └── x-svgrepo-com.svg ├── ZXBasicStudio.csproj ├── app.manifest └── zxbs.ico ├── ZXBasicStudio.sln ├── ZXBasicStudioSite ├── App.razor ├── Pages │ ├── Counter.razor │ ├── FetchData.razor │ └── Index.razor ├── Program.cs ├── Properties │ └── launchSettings.json ├── Shared │ ├── MainLayout.razor │ ├── MainLayout.razor.css │ ├── NavMenu.razor │ ├── NavMenu.razor.css │ └── SurveyPrompt.razor ├── ZXBasicStudioSite.csproj ├── _Imports.razor └── wwwroot │ ├── css │ ├── app.css │ ├── bootstrap │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ └── open-iconic │ │ ├── FONT-LICENSE │ │ ├── ICON-LICENSE │ │ ├── README.md │ │ └── font │ │ ├── css │ │ └── open-iconic-bootstrap.min.css │ │ └── fonts │ │ ├── open-iconic.eot │ │ ├── open-iconic.otf │ │ ├── open-iconic.svg │ │ ├── open-iconic.ttf │ │ └── open-iconic.woff │ ├── favicon.png │ ├── icon-192.png │ ├── index.html │ └── sample-data │ └── weather.json ├── ZXBasicStudioTest ├── UnitTest1.cs └── ZXBasicStudioTest.csproj ├── grid.png ├── libportaudio.dll └── zxbs.ico /AppSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppName": "ZXBasicStudio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", 3 | "WindowSettings": { 4 | "ZXBasicStudio.MainWindow": { 5 | "Width": 1024.0, 6 | "Height": 670.0, 7 | "State": 0 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /Artwork/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Artwork/Icon.png -------------------------------------------------------------------------------- /Artwork/Icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Artwork/Icon.psd -------------------------------------------------------------------------------- /Artwork/IconAbout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Artwork/IconAbout.png -------------------------------------------------------------------------------- /Artwork/LogoBig.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Artwork/LogoBig.psd -------------------------------------------------------------------------------- /Bufdio/Bufdio.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | True 8 | AnyCPU;x64 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Bufdio/Common/ILogger.cs: -------------------------------------------------------------------------------- 1 | namespace Bufdio.Common; 2 | 3 | /// 4 | /// An interface for simple logging operations. 5 | /// 6 | public interface ILogger 7 | { 8 | /// 9 | /// Logs an information message. 10 | /// 11 | /// A string represents log message. 12 | void LogInfo(string message); 13 | 14 | /// 15 | /// Logs a warning message. 16 | /// 17 | /// A string represents log message. 18 | void LogWarning(string message); 19 | 20 | /// 21 | /// Logs an error message. 22 | /// 23 | /// A string represents log message. 24 | void LogError(string message); 25 | } 26 | -------------------------------------------------------------------------------- /Bufdio/Engines/IAudioEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Bufdio.Engines; 4 | 5 | /// 6 | /// An interface to interact with output audio device. 7 | /// Implements: . 8 | /// 9 | public interface IAudioEngine : IDisposable 10 | { 11 | /// 12 | /// Sends audio samples to the output device (this is should be a blocking calls). 13 | /// 14 | /// Audio samples in Float32 format. 15 | void Send(Span samples); 16 | } 17 | -------------------------------------------------------------------------------- /Bufdio/Exceptions/BufdioException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Bufdio.Exceptions; 4 | 5 | /// 6 | /// An exception that is thrown when an error occured during Bufdio-specific operations. 7 | /// Implements: . 8 | /// 9 | public class BufdioException : Exception 10 | { 11 | /// 12 | /// Initializes . 13 | /// 14 | public BufdioException() 15 | { 16 | } 17 | 18 | /// 19 | /// Initializes by specifying exception message. 20 | /// 21 | /// A string represents exception message. 22 | public BufdioException(string message) : base(message) 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Bufdio/Interop/Kernel32.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Bufdio.Interop; 5 | 6 | internal static class Kernel32 7 | { 8 | private const string LibraryName = "kernel32"; 9 | 10 | [DllImport(LibraryName)] 11 | public static extern IntPtr LoadLibrary(string fileName); 12 | 13 | [DllImport(LibraryName)] 14 | public static extern IntPtr GetProcAddress(IntPtr module, string procName); 15 | 16 | [DllImport(LibraryName)] 17 | public static extern int FreeLibrary(IntPtr module); 18 | } 19 | -------------------------------------------------------------------------------- /Bufdio/Interop/Libdl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Bufdio.Interop; 5 | 6 | internal static class Libdl 7 | { 8 | private const string LibraryName = "libdl"; 9 | 10 | [DllImport(LibraryName)] 11 | public static extern IntPtr dlopen(string fileName, int flags); 12 | 13 | [DllImport(LibraryName)] 14 | public static extern IntPtr dlsym(IntPtr handle, string symbol); 15 | 16 | [DllImport(LibraryName)] 17 | public static extern int dlclose(IntPtr handle); 18 | } 19 | -------------------------------------------------------------------------------- /Bufdio/Players/PlaybackState.cs: -------------------------------------------------------------------------------- 1 | namespace Bufdio.Players; 2 | 3 | /// 4 | /// Enumeration represents audio playback state. 5 | /// 6 | public enum PlaybackState 7 | { 8 | /// 9 | /// Indicates that the playback state is currently idle. 10 | /// 11 | Idle, 12 | 13 | /// 14 | /// Indicates that the playback state is currently playing an audio. 15 | /// 16 | Playing, 17 | 18 | /// 19 | /// Indicates that the playback is currently buferring. 20 | /// 21 | Buffering, 22 | 23 | /// 24 | /// Indicates that the playback state is currently paused. 25 | /// 26 | Paused 27 | } 28 | -------------------------------------------------------------------------------- /Bufdio/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | 3 | [assembly:InternalsVisibleTo("Bufdio.UnitTests")] 4 | -------------------------------------------------------------------------------- /Bufdio/Utilities/Ensure.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | 4 | namespace Bufdio.Utilities; 5 | 6 | [DebuggerStepThrough] 7 | internal static class Ensure 8 | { 9 | public static void That(bool condition, string message = null) where TException : Exception 10 | { 11 | if (!condition) 12 | { 13 | throw string.IsNullOrEmpty(message) 14 | ? Activator.CreateInstance() 15 | : (TException)Activator.CreateInstance(typeof(TException), message); 16 | } 17 | } 18 | 19 | public static void NotNull(T argument, string name) where T : class 20 | { 21 | if (argument == null) 22 | { 23 | throw new ArgumentNullException(name); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Bufdio/Utilities/Extensions/NumberExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Bufdio.Utilities.Extensions; 4 | 5 | internal static class NumberExtensions 6 | { 7 | public static TimeSpan Milliseconds(this double value) 8 | { 9 | return TimeSpan.FromMilliseconds(value); 10 | } 11 | 12 | public static float VerifyVolume(this float volume) 13 | { 14 | return volume switch 15 | { 16 | > 1.0f => 1.0f, 17 | < 0.0f => 0.0f, 18 | _ => volume 19 | }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Bufdio/Utilities/Extensions/ThreadExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | 4 | namespace Bufdio.Utilities.Extensions; 5 | 6 | internal static class ThreadExtensions 7 | { 8 | public static void EnsureThreadDone(this Thread thread, Func breaker = default) 9 | { 10 | while (thread.IsAlive) 11 | { 12 | if (breaker != null && breaker()) 13 | { 14 | break; 15 | } 16 | 17 | Thread.Sleep(10); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Bufdio/Utilities/PlatformInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | namespace Bufdio.Utilities; 4 | 5 | internal static class PlatformInfo 6 | { 7 | public static bool IsWindows => RuntimeInformation.IsOSPlatform(OSPlatform.Windows); 8 | 9 | public static bool IsLinux => RuntimeInformation.IsOSPlatform(OSPlatform.Linux); 10 | 11 | public static bool IsOSX => RuntimeInformation.IsOSPlatform(OSPlatform.OSX); 12 | } 13 | -------------------------------------------------------------------------------- /Common/TAPTools.cs: -------------------------------------------------------------------------------- 1 | namespace Common 2 | { 3 | /// 4 | /// Class to manage .tap files 5 | /// 6 | public static class TAPTools 7 | { 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /CoreSpectrum/AudioSamplers/NullAudioSampler.cs: -------------------------------------------------------------------------------- 1 | using CoreSpectrum.Interfaces; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace CoreSpectrum.AudioSamplers 9 | { 10 | public class NullAudioSampler : IAudioSampler 11 | { 12 | public void AddSample(ulong TStates, byte Value) 13 | { 14 | 15 | } 16 | 17 | public void Pause() 18 | { 19 | 20 | } 21 | public void Resume(ulong TStates) 22 | { 23 | 24 | } 25 | public void Play() 26 | { 27 | 28 | } 29 | 30 | public void Stop() { } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /CoreSpectrum/CoreSpectrum.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | True 8 | AnyCPU;x64 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /CoreSpectrum/Debug/Breakpoint.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.Debug 8 | { 9 | public class Breakpoint 10 | { 11 | public string? Id { get; set; } 12 | public object? Tag { get; set; } 13 | public ushort Address { get; set; } 14 | public bool Temporary { get; set; } 15 | public bool Executed { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /CoreSpectrum/Enums/SpectrumColors.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.Enums 8 | { 9 | public enum SpectrumColors 10 | { 11 | Black, 12 | Blue, 13 | Red, 14 | Magenta, 15 | Green, 16 | Cyan, 17 | Yellow, 18 | White, 19 | BrightBlack, 20 | BrightBlue, 21 | BrightRed, 22 | BrightMagenta, 23 | BrightGreen, 24 | BrightCyan, 25 | BrightYellow, 26 | BrightWhite 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /CoreSpectrum/Enums/SpectrumKeys.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.Enums 8 | { 9 | public enum SpectrumKeys 10 | { 11 | A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z, 12 | D0,D1,D2,D3,D4,D5,D6,D7,D8,D9, 13 | Caps,Sym,Space,Enter,None 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /CoreSpectrum/Interfaces/IAudioSampler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.Interfaces 8 | { 9 | public interface IAudioSampler 10 | { 11 | void AddSample(ulong TStates, byte Value); 12 | void Play(); 13 | void Pause(); 14 | void Resume(ulong TStates); 15 | void Stop(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /CoreSpectrum/Interfaces/IAudioSource.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.Interfaces 8 | { 9 | public interface IAudioSource 10 | { 11 | int AudioThreshold { get; } 12 | event EventHandler AudioChanged; 13 | 14 | } 15 | 16 | public class AudioEventArgs : EventArgs 17 | { 18 | public required byte AudioLevel { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CoreSpectrum/Interfaces/IContentionSource.cs: -------------------------------------------------------------------------------- 1 | using Konamiman.Z80dotNet; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace CoreSpectrum.Interfaces 9 | { 10 | internal interface IContentionSource 11 | { 12 | int GetContentionStates(ulong InitialState, int ExecutionStates, byte[] OpCode, ushort[] MemoryAccesses, (byte PortHi, byte PortLo)[] PortAccesses, IMemory Memory); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /CoreSpectrum/Interfaces/ISpectrumAudio.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.Interfaces 8 | { 9 | public interface ISpectrumAudio 10 | { 11 | int GetSamples(float[] Buffer); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /CoreSpectrum/Interfaces/ISpectrumMemory.cs: -------------------------------------------------------------------------------- 1 | using Konamiman.Z80dotNet; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace CoreSpectrum.Interfaces 9 | { 10 | public interface ISpectrumMemory : IMemory 11 | { 12 | void ClearRAM(); 13 | Span GetVideoMemory(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /CoreSpectrum/Interfaces/ISynchronizedExecution.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.Interfaces 8 | { 9 | public interface ISynchronizedExecution 10 | { 11 | void Start(); 12 | 13 | void Stop(); 14 | 15 | void Pause(); 16 | 17 | void Resume(); 18 | 19 | void Reset(); 20 | 21 | void Turbo(bool Enable); 22 | 23 | void Step(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /CoreSpectrum/Interfaces/IVideoRenderer.cs: -------------------------------------------------------------------------------- 1 | using Konamiman.Z80dotNet; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace CoreSpectrum.Interfaces 9 | { 10 | public interface IVideoRenderer 11 | { 12 | void RenderLine(Span Memory, byte FirstScan, byte BorderColor, bool FlashInvert, int LineNumber); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /CoreSpectrum/SupportClasses/CalibrationTape.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.SupportClasses 8 | { 9 | public class CalibrationTape : Tape 10 | { 11 | public CalibrationTape() : base(new TapeBlock[] { new TapeBlock(96863) }) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /CoreSpectrum/SupportClasses/ProgramImage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CoreSpectrum.SupportClasses 8 | { 9 | public class ProgramImage 10 | { 11 | public required ushort Org { get; set; } 12 | public required byte InitialBank { get; set; } 13 | public required ImageChunk[] Chunks { get; set; } 14 | } 15 | 16 | public class ImageChunk 17 | { 18 | public ushort Address { get; set; } 19 | public byte Bank { get; set; } 20 | public required byte[] Data { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /HeadlessEmulator/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "HeadlessEmulator": { 4 | "commandName": "Project", 5 | "commandLineArgs": "-b overflow_i8_add.bin -a 32768 -m M128k -p 8 10" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /HeadlessEmulator/Resources/128k_0_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/HeadlessEmulator/Resources/128k_0_rom.bin -------------------------------------------------------------------------------- /HeadlessEmulator/Resources/128k_1_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/HeadlessEmulator/Resources/128k_1_rom.bin -------------------------------------------------------------------------------- /HeadlessEmulator/Resources/48k_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/HeadlessEmulator/Resources/48k_rom.bin -------------------------------------------------------------------------------- /HeadlessEmulator/Resources/Plus2_0_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/HeadlessEmulator/Resources/Plus2_0_rom.bin -------------------------------------------------------------------------------- /HeadlessEmulator/Resources/Plus2_1_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/HeadlessEmulator/Resources/Plus2_1_rom.bin -------------------------------------------------------------------------------- /HeadlessEmulator/overflow_i8_add.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/HeadlessEmulator/overflow_i8_add.bin -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/battery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/battery.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/bluetooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/bluetooth.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/database.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/error.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/eye.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/eye.ttf -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/folder.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/forbidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/forbidden.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/info.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/lock.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/plus.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/question.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/setting.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/speakerless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/speakerless.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/speakermore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/speakermore.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/stop.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/stopwatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/stopwatch.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/success.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/warning.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Assets/wifi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/Assets/wifi.png -------------------------------------------------------------------------------- /MsBox.Avalonia/Base/IClose.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Base; 2 | 3 | public interface IClose 4 | { 5 | void Close(); 6 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Base/ICopy.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace MsBox.Avalonia.Base; 4 | 5 | public interface ICopy 6 | { 7 | Task Copy(); 8 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Base/IFullApi.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Base; 2 | 3 | public interface IFullApi: IClose//ICopy, IClose 4 | { 5 | void SetButtonResult(T bdName); 6 | T GetButtonResult(); 7 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Base/IInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace MsBox.Avalonia.Base 6 | { 7 | public interface IInput 8 | { 9 | string InputValue { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /MsBox.Avalonia/Base/IMsBox.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Avalonia.Controls; 3 | 4 | namespace MsBox.Avalonia.Base; 5 | 6 | public interface IMsBox 7 | { 8 | Task ShowAsync(); 9 | Task ShowWindowAsync(); 10 | Task ShowWindowDialogAsync(Window owner); 11 | Task ShowAsPopupAsync(ContentControl owner); 12 | Task ShowAsPopupAsync(Window owner); 13 | string InputValue { get; } 14 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Base/ISetCloseAction.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MsBox.Avalonia.Base; 4 | 5 | public interface ISetCloseAction 6 | { 7 | void SetCloseAction(Action closeAction); 8 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Base/ISetFullApi.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Base; 2 | 3 | public interface ISetFullApi 4 | { 5 | void SetFullApi(IFullApi fullApi); 6 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Dto/MessageBoxCustomParams.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Avalonia.Media.Imaging; 4 | using MsBox.Avalonia.Models; 5 | using MsBox.Avalonia.Enums; 6 | 7 | namespace MsBox.Avalonia.Dto; 8 | 9 | public class MessageBoxCustomParams : AbstractMessageBoxParams 10 | { 11 | /// 12 | /// Image of window 13 | /// Only if Icon is None 14 | /// 15 | public Bitmap ImageIcon { get; set; } 16 | 17 | /// 18 | /// Icon of window 19 | /// Higher priority than ImageIcon 20 | /// 21 | public Icon Icon { get; set; } = Icon.None; 22 | 23 | /// 24 | /// Buttons 25 | /// 26 | public IEnumerable ButtonDefinitions { get; set; } 27 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Dto/MessageBoxStandardParams.cs: -------------------------------------------------------------------------------- 1 | using MsBox.Avalonia.Enums; 2 | 3 | namespace MsBox.Avalonia.Dto; 4 | 5 | public class MessageBoxStandardParams : AbstractMessageBoxParams 6 | { 7 | /// 8 | /// Icon of window 9 | /// 10 | public Icon Icon { get; set; } = Icon.None; 11 | 12 | /// 13 | /// Default buttons 14 | /// 15 | public ButtonEnum ButtonDefinitions { get; set; } = ButtonEnum.Ok; 16 | 17 | public ClickEnum EnterDefaultButton { get; set; } = ClickEnum.Default; 18 | public ClickEnum EscDefaultButton { get; set; } = ClickEnum.Default; 19 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Enums/ButtonEnum.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Enums; 2 | 3 | /// 4 | /// Buttons in message box window 5 | /// 6 | public enum ButtonEnum 7 | { 8 | Ok, 9 | 10 | YesNo, 11 | 12 | OkCancel, 13 | 14 | OkAbort, 15 | 16 | YesNoCancel, 17 | 18 | YesNoAbort 19 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Enums/ButtonResult.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Enums; 2 | 3 | /// 4 | /// Result on click in message box button 5 | /// 6 | public enum ButtonResult 7 | { 8 | Ok, 9 | Yes, 10 | No, 11 | Abort, 12 | Cancel, 13 | None 14 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Enums/ClickEnum.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Enums; 2 | 3 | public enum ClickEnum 4 | { 5 | Ok, 6 | Yes, 7 | No, 8 | Abort, 9 | Cancel, 10 | None, 11 | Default 12 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Enums/Icon.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Enums; 2 | 3 | public enum Icon 4 | { 5 | None = 0, 6 | Battery, 7 | Database, 8 | Error, 9 | Folder, 10 | Forbidden, 11 | Info, 12 | Plus, 13 | Question, 14 | Setting, 15 | SpeakerLess, 16 | SpeakerMore, 17 | Stop, 18 | Stopwatch, 19 | Success, 20 | Warning, 21 | Wifi, 22 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Models/ButtonDefinition.cs: -------------------------------------------------------------------------------- 1 | namespace MsBox.Avalonia.Models; 2 | 3 | public class ButtonDefinition 4 | { 5 | /// 6 | /// Text in button 7 | /// 8 | public string Name { get; set; } = "OK"; 9 | 10 | /// 11 | /// When true and if ENTER key is pressed, the button will be called 12 | /// 13 | public bool IsDefault { get; set; } 14 | 15 | /// 16 | /// When true and if ESC key is pressed, the button will be called 17 | /// 18 | public bool IsCancel { get; set; } 19 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/Windows/MsBoxWindow.axaml: -------------------------------------------------------------------------------- 1 | 15 | 16 | -------------------------------------------------------------------------------- /MsBox.Avalonia/Windows/MsBoxWindow.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | using Avalonia.Threading; 3 | 4 | namespace MsBox.Avalonia.Windows; 5 | 6 | public partial class MsBoxWindow : Window 7 | { 8 | public MsBoxWindow() 9 | { 10 | InitializeComponent(); 11 | ShowInTaskbar = false; 12 | CanResize = false; 13 | } 14 | 15 | public async void CloseSafe() 16 | { 17 | await Dispatcher.UIThread.InvokeAsync(Close); 18 | } 19 | } -------------------------------------------------------------------------------- /MsBox.Avalonia/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/icon.jpg -------------------------------------------------------------------------------- /MsBox.Avalonia/strong-key.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/MsBox.Avalonia/strong-key.snk -------------------------------------------------------------------------------- /Rom128Reconstructor/pasmo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Rom128Reconstructor/pasmo.exe -------------------------------------------------------------------------------- /RomReconstructor/RomReconstructor.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net8.0 6 | enable 7 | enable 8 | AnyCPU;x64 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | PreserveNewest 18 | 19 | 20 | PreserveNewest 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /TestZ80/Program.cs: -------------------------------------------------------------------------------- 1 | // See https://aka.ms/new-console-template for more information 2 | Console.WriteLine("Hello, World!"); 3 | -------------------------------------------------------------------------------- /TestZ80/TestZ80.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net7.0 6 | enable 7 | enable 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Z80dotNet/MODIFICATIONS.txt: -------------------------------------------------------------------------------- 1 | The package has been modified in order to support the 16 bit ports of the Z80. -------------------------------------------------------------------------------- /Z80dotNet/Main.Tests/HelloWorld.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace Konamiman.Z80dotNet.Tests 4 | { 5 | public class HelloWorld 6 | { 7 | [Test] 8 | public void HelloWorldTest() 9 | { 10 | var Sut = new Z80Processor(); 11 | Sut.AutoStopOnRetWithStackEmpty = true; 12 | 13 | var program = new byte[] 14 | { 15 | 0x3E, 0x07, //LD A,7 16 | 0xC6, 0x04, //ADD A,4 17 | 0x3C, //INC A 18 | 0xC9 //RET 19 | }; 20 | Sut.Memory.SetContents(0, program); 21 | //hola 22 | 23 | Sut.Start(); 24 | 25 | Assert.AreEqual(12, Sut.Registers.A); 26 | Assert.AreEqual(28, Sut.TStatesElapsedSinceStart); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Z80dotNet/Main.Tests/InterruptSourceForTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Konamiman.Z80dotNet.Tests 4 | { 5 | public class InterruptSourceForTests : IZ80InterruptSource 6 | { 7 | public void FireNmi() 8 | { 9 | if(NmiInterruptPulse != null) 10 | NmiInterruptPulse(this, EventArgs.Empty); 11 | } 12 | 13 | public event EventHandler NmiInterruptPulse; 14 | public bool IntLineIsActive { get; set; } 15 | public byte? ValueOnDataBus { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Z80dotNet/Main.Tests/StringExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Konamiman.Z80dotNet.Tests 4 | { 5 | public static class StringExtensions 6 | { 7 | public static byte AsBinaryByte(this string binaryString) 8 | { 9 | return (byte)Convert.ToInt32(binaryString.Replace(" ", ""), 2); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Z80dotNet/Main.Tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Dependencies Implementations/PlainIO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Konamiman.Z80dotNet 8 | { 9 | public class PlainIO : IIO 10 | { 11 | public byte this[byte port, byte upperPart] 12 | { 13 | get 14 | { 15 | return 0; 16 | } 17 | 18 | set 19 | { 20 | 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Dependencies Interfaces/IIO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Konamiman.Z80dotNet 8 | { 9 | public interface IIO 10 | { 11 | byte this[byte portLo, byte portHi] { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Dependencies Interfaces/ITStatesTarget.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Main.Dependencies_Interfaces 8 | { 9 | public interface ITStatesTarget 10 | { 11 | ulong TStates { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Z80dotNet/Main/EventArgs/InstructionWaitStatesEventArgs.cs: -------------------------------------------------------------------------------- 1 | using Konamiman.Z80dotNet; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Main.EventArgs 9 | { 10 | public class InstructionWaitStatesEventArgs : System.EventArgs 11 | { 12 | public ulong InitialState { get; set; } 13 | public int ExecutionStates { get; set; } 14 | public byte[] OpCode { get; set; } 15 | public ushort[] MemoryAccesses { get; set; } 16 | public (byte PortHi, byte PortLo)[] PortAccesses { get; set; } 17 | public int WaitStates { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Core/ParityTable.cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | private Bit[] Parity; 6 | 7 | private void GenerateParityTable() 8 | { 9 | Parity = new Bit[256]; 10 | 11 | for(var result = 0; result <= 255; result++) 12 | { 13 | var ones = 0; 14 | var temp = result; 15 | for(var i = 0; i <= 7; i++) 16 | { 17 | ones += (temp & 1); 18 | temp >>= 1; 19 | } 20 | Parity[result] = (ones & 1) ^ 1; 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADC A,(HL) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADC A,(IX+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADC A,(IY+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADC A,n --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADC A,r --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADD A,(HL) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADD A,(IX+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADD A,(IY+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/ADD A,n --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/AND (HL) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/AND (IX+d) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/AND (IY+d) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/AND n --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/BIT b,(HL) --see BIT B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/BIT b,(IX+d) --see BIT B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/BIT b,(IY+d) --see BIT B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CALL --see RET: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CALL cc --see RET: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CCF .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The CCF instruction. 7 | /// 8 | byte CCF() 9 | { 10 | FetchFinished(); 11 | 12 | var oldCF = Registers.CF; 13 | Registers.NF = 0; 14 | Registers.HF = oldCF; 15 | Registers.CF = !oldCF; 16 | SetFlags3and5From(Registers.A); 17 | 18 | return 4; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CP (HL) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CP (IX+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CP (IY+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CP n --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CP r --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CPD --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CPDR --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CPI --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CPIR --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/CPL .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The CPL instruction. 7 | /// 8 | byte CPL() 9 | { 10 | FetchFinished(); 11 | 12 | Registers.A = (byte)(Registers.A ^ 0xFF); 13 | 14 | Registers.HF = 1; 15 | Registers.NF = 1; 16 | SetFlags3and5From(Registers.A); 17 | 18 | return 4; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/DEC (HL) --see INC r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/DEC (IX+n) --see INC r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/DEC (IY+n) --see INC r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/DEC r --see INC r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/DEC rr --see INC rr: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/DI .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The DI instruction. 7 | /// 8 | byte DI() 9 | { 10 | FetchFinished(isEiOrDi: true); 11 | 12 | Registers.IFF1 = 0; 13 | Registers.IFF2 = 0; 14 | 15 | return 4; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/DJNZ .cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Konamiman.Z80dotNet 4 | { 5 | public partial class Z80InstructionExecutor 6 | { 7 | /// 8 | /// The DJNZ d instruction. 9 | /// 10 | byte DJNZ_d() 11 | { 12 | var offset = ProcessorAgent.FetchNextOpcode(); 13 | FetchFinished(); 14 | 15 | var oldValue = Registers.B; 16 | Registers.B = (byte)(oldValue - 1); 17 | 18 | if(oldValue == 1) 19 | return 8; 20 | 21 | Registers.PC = (ushort)(Registers.PC + (SByte)offset); 22 | return 13; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/EI .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The EI instruction. 7 | /// 8 | byte EI() 9 | { 10 | FetchFinished(isEiOrDi: true); 11 | 12 | Registers.IFF1 = 1; 13 | Registers.IFF2 = 1; 14 | 15 | return 4; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/EX (SP),IX --see EX (SP),HL: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/EX (SP),IY --see EX (SP),HL: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/EX AF,AF' .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The EX AF,AF' instruction 7 | /// 8 | byte EX_AF_AF() 9 | { 10 | FetchFinished(); 11 | 12 | var temp = Registers.AF; 13 | Registers.AF = Registers.Alternate.AF; 14 | Registers.Alternate.AF = temp; 15 | 16 | return 4; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/EX DE,HL .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The EX DE,HL instruction 7 | /// 8 | byte EX_DE_HL() 9 | { 10 | FetchFinished(); 11 | 12 | var temp = Registers.DE; 13 | Registers.DE = Registers.HL; 14 | Registers.HL = temp; 15 | 16 | return 4; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/EXX .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The EXX instruction. 7 | /// 8 | byte EXX() 9 | { 10 | FetchFinished(); 11 | 12 | var tempBC = Registers.BC; 13 | var tempDE = Registers.DE; 14 | var tempHL = Registers.HL; 15 | 16 | Registers.BC = Registers.Alternate.BC; 17 | Registers.DE = Registers.Alternate.DE; 18 | Registers.HL = Registers.Alternate.HL; 19 | 20 | Registers.Alternate.BC = tempBC; 21 | Registers.Alternate.DE = tempDE; 22 | Registers.Alternate.HL = tempHL; 23 | 24 | return 4; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/HALT .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The HALT instruction. 7 | /// 8 | byte HALT() 9 | { 10 | FetchFinished(isHalt: true); 11 | 12 | return 4; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/IN A,(n) .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The IN A,(n) instruction. 7 | /// 8 | byte IN_A_n() 9 | { 10 | var portNumber = ProcessorAgent.FetchNextOpcode(); 11 | FetchFinished(); 12 | 13 | Registers.A = ProcessorAgent.ReadFromPort(portNumber, Registers.A); 14 | return 11; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/INC (HL) --see INC r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/INC (IX+n) --see INC r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/INC (IY+n) --see INC r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/IND --see INI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/INDR --see INI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/INIR --see INI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/JP --see RET: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/JP (IX) --see JP (HL): -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/JP (IY) --see JP (HL): -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/JP cc --see RET: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/JR .cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Konamiman.Z80dotNet 4 | { 5 | public partial class Z80InstructionExecutor 6 | { 7 | /// 8 | /// The JR d instruction. 9 | /// 10 | byte JR_d() 11 | { 12 | var offset = ProcessorAgent.FetchNextOpcode(); 13 | FetchFinished(); 14 | 15 | Registers.PC = (ushort)(Registers.PC + (SByte)offset); 16 | 17 | return 12; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD (IX+d),n --see LD (HL),n: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD (IX+d),r --see LD r,(rr): -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD (IY+d),n --see LD (HL),n: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD (IY+d),r --see LD r,(rr): -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD (aa),A .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The LD (nn),A instruction. 7 | /// 8 | private byte LD_aa_A() 9 | { 10 | var address = (ushort)FetchWord(); 11 | FetchFinished(); 12 | 13 | ProcessorAgent.WriteToMemory(address, Registers.A); 14 | 15 | return 13; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD A,(aa) .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The LD A,(nn) instruction. 7 | /// 8 | private byte LD_A_aa() 9 | { 10 | var address = (ushort)FetchWord(); 11 | FetchFinished(); 12 | 13 | Registers.A = ProcessorAgent.ReadFromMemory(address); 14 | 15 | return 13; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD A,R --see LD A,I: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD R,A --see LD I,A: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD SP,IX --see LD SP,HL: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD SP,IY --see LD SP,HL: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD r,(IX+d) --see LD r,(rr): -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LD r,(IY+d) --see LD r,(rr): -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LDD --see LDI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LDDR --see LDI - Copy: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/LDIR --see LDI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/NOP .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The NOP instruction. 7 | /// 8 | byte NOP() 9 | { 10 | FetchFinished(); 11 | return 4; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/NOP2 .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The NOP2 instruction (equivalent to two NOPs, used for unsupported instructions). 7 | /// 8 | byte NOP2() 9 | { 10 | FetchFinished(); 11 | return 8; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OR (IX+d) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OR (IY+d) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OR n --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OR r --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OTDR --see INI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OTIR --see INI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OUT (n),A .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | /// 6 | /// The OUT (n),A instruction. 7 | /// 8 | byte OUT_n_A() 9 | { 10 | var portNumber = ProcessorAgent.FetchNextOpcode(); 11 | FetchFinished(); 12 | 13 | ProcessorAgent.WriteToPort(portNumber, Registers.A, Registers.A); 14 | 15 | return 11; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OUTD --see INI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/OUTI --see INI: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/POP rr --see PUSH rr: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RES b,(HL) --see SET B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RES b,(IX+d) --see SET B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RES b,(IY+d) --see SET B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RES b,r --see SET B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RET cc --see RET: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RL (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RL (IX+d) + ,r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RL (IY+d) + ,r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RL r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RLC (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RLC (IX+d) + ,r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RLC (IY+d) + ,r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RLC r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RLD --see RRD: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RR (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RR (IX+d) + ,r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RR (IY+d) + ,r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RR r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RRC (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RRC (IX+d)[ ,r] --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RRC (IY+d)[ ,r] --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/RRC r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SBC A,(HL) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SBC A,(IX+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SBC A,(IY+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SBC A,n --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SBC A,r --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SBC HL,rr --see ADC HL,rr: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SCF .cs: -------------------------------------------------------------------------------- 1 | namespace Konamiman.Z80dotNet 2 | { 3 | public partial class Z80InstructionExecutor 4 | { 5 | private const int HF_NF_reset = 0xED; 6 | private const int CF_set = 1; 7 | 8 | /// 9 | /// The SCF instruction. 10 | /// 11 | byte SCF() 12 | { 13 | FetchFinished(); 14 | 15 | Registers.F = (byte)(Registers.F & HF_NF_reset | CF_set); 16 | SetFlags3and5From(Registers.A); 17 | 18 | return 4; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SET b,(HL) --see SET B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SET b,(IX+d) --see SET B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SET b,(IY+d) --see SET B,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLA (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLA (IX+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLA (IY+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLA r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLL (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLL (IX+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLL (IY+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SLL r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRA (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRA (IX+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRA (IY+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRA r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRL (HL) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRL (IX+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRL (IY+d) --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SRL r --see RLCA: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SUB A,(HL) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SUB A,(IX+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SUB A,(IY+d) --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SUB A,n --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/SUB A,r --see ADD A,r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/XOR (HL) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/XOR (IX+d) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/XOR (IY +d) --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/XOR n --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Main/Instructions Execution/Instructions/XOR r --see AND r: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Z80dotNet/Z80dotNet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Z80dotNet/Z80dotNet.png -------------------------------------------------------------------------------- /Z80dotNet/ZexallTest/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Z80dotNet/ZexallTest/zexall.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Z80dotNet/ZexallTest/zexall.com -------------------------------------------------------------------------------- /Z80dotNet/ZexallTest/zexdoc.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/Z80dotNet/ZexallTest/zexdoc.com -------------------------------------------------------------------------------- /ZXBStudio/Assets/AssemblerIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/AssemblerIcon.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/DirectiveIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/DirectiveIcon.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/Icon.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/IconAbout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/IconAbout.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/KeywordIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/KeywordIcon.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/LogoBig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/LogoBig.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/TypeIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/TypeIcon.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/asmFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/asmFile.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/cfgFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/cfgFile.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/debug.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/folder.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/logoSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/logoSmall.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/ramdiskBinFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/ramdiskBinFile.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/ramdiskFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/ramdiskFile.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/txtFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/txtFile.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/unknFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/unknFile.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxForms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxForms.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxGraphics_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxGraphics_config.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxGraphics_fnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxGraphics_fnt.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxGraphics_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxGraphics_map.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxGraphics_spr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxGraphics_spr.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxGraphics_til.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxGraphics_til.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxGraphics_udg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxGraphics_udg.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxbFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxbFile.png -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxbs.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxbs.ico -------------------------------------------------------------------------------- /ZXBStudio/Assets/zxtFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Assets/zxtFile.png -------------------------------------------------------------------------------- /ZXBStudio/BuildSystem/ZXBasicLocation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.BuildSystem 8 | { 9 | public class ZXBasicLocation 10 | { 11 | public required string File { get; set; } 12 | public ZXBasicLocationType LocationType { get; set; } 13 | public required string Name { get; set; } 14 | public int FirstLine { get; set; } 15 | public int LastLine { get; set; } 16 | } 17 | 18 | public enum ZXBasicLocationType 19 | { 20 | Sub, 21 | Function 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ZXBStudio/BuildSystem/ZXCodeLine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.BuildSystem 8 | { 9 | public class ZXCodeLine 10 | { 11 | public ZXCodeLine(ZXFileType FileType, string File, int LineNumber, ushort Address) 12 | { 13 | this.FileType = FileType; 14 | this.File = File; 15 | this.LineNumber = LineNumber; 16 | this.Address = Address; 17 | } 18 | public string File { get; set; } 19 | public ZXFileType FileType { get; set; } 20 | public int LineNumber { get; set; } 21 | public ushort Address { get; set; } 22 | } 23 | 24 | public enum ZXFileType 25 | { 26 | Basic, 27 | Assembler 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ZXBStudio/Classes/ZXKeybCommand.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Input; 2 | using CommunityToolkit.Mvvm.ComponentModel; 3 | using System; 4 | using System.ComponentModel; 5 | 6 | namespace ZXBasicStudio.Classes 7 | { 8 | public partial class ZXKeybCommand : ObservableObject 9 | { 10 | public required Guid CommandId { get; set; } 11 | 12 | [ObservableProperty] 13 | string commandName = ""; 14 | 15 | [ObservableProperty] 16 | Key key = Key.None; 17 | 18 | [ObservableProperty] 19 | KeyModifiers modifiers = KeyModifiers.None; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ZXBStudio/Common/TAPTools/ITAPBlock.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.Common.TAPTools 8 | { 9 | /// 10 | /// Interface that must be implemented by any kind of tape block 11 | /// 12 | public interface ITAPBlock 13 | { 14 | /// 15 | /// Serializes the block as a byte array 16 | /// 17 | /// The block as a byte array 18 | byte[] Serialize(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ZXBStudio/Controls/DockSystem/IZXDockingContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.Controls.DockSystem 8 | { 9 | public interface IZXDockingContainer 10 | { 11 | event EventHandler? DockingControlsChanged; 12 | string? DockingGroup { get; } 13 | IEnumerable DockingControls { get; } 14 | void AddToStart(ZXDockingControl Element); 15 | void AddToEnd(ZXDockingControl Element); 16 | void InsertAt(int Index, ZXDockingControl Element); 17 | void Remove(ZXDockingControl Element); 18 | void Select(ZXDockingControl Element); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ZXBStudio/Controls/DockSystem/ZXCollapseButton.axaml: -------------------------------------------------------------------------------- 1 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /ZXBStudio/DebuggingTools/Memory/Classes/ZXMemoryRange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DebuggingTools.Memory.Classes 8 | { 9 | public class ZXMemoryRange 10 | { 11 | public required int StartAddress { get; set; } 12 | public required int EndAddress { get; set; } 13 | 14 | public bool Contains(int Address) => Address >= StartAddress && Address <= EndAddress; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ZXBStudio/DebuggingTools/TStates/Controls/ZXTStatesView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | using ExCSS; 3 | 4 | namespace ZXBasicStudio.DebuggingTools.TStates.Controls 5 | { 6 | public partial class ZXTStatesView : UserControl 7 | { 8 | ulong lastStates = 0; 9 | public ZXTStatesView() 10 | { 11 | InitializeComponent(); 12 | } 13 | 14 | public void Update(ulong NewTStates) 15 | { 16 | tbTotal.Text = NewTStates.ToString(); 17 | tbStep.Text = (NewTStates - lastStates).ToString(); 18 | lastStates = NewTStates; 19 | } 20 | 21 | public void Clear() 22 | { 23 | tbTotal.Text = "--"; 24 | tbStep.Text = "--"; 25 | lastStates = 0; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ZXBStudio/Dialogs/SplashScreen.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | using System.Reflection; 3 | 4 | namespace ZXBasicStudio.Dialogs 5 | { 6 | public partial class SplashScreen : Window 7 | { 8 | public SplashScreen() 9 | { 10 | InitializeComponent(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/FormEditor.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Box32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Box32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Button32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Button32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Check32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Check32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Circle32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Circle32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Image32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Image32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Label32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Label32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Line32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Line32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/List32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/List32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Modal32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Modal32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Panel32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Panel32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Pointer32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Pointer32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Radio32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Radio32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Select32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Select32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/Table32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/Table32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/images/TextBox32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/DocumentEditors/NextDows/images/TextBox32.png -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/neg/AlignTypes.cs: -------------------------------------------------------------------------------- 1 | namespace ZXBasicStudio.DocumentEditors.NextDows.neg 2 | { 3 | internal enum AlignTypes 4 | { 5 | Left = 0, 6 | Center = 1, 7 | Right = 2, 8 | 9 | Up = 0, 10 | Middle = 1, 11 | Down = 2 12 | } 13 | } -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/NextDows/neg/ControlProperty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DocumentEditors.NextDows.neg 8 | { 9 | public class ControlProperty 10 | { 11 | public ControlProperties Property { get; set; } 12 | public string Value { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/EditorControl.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/IZXBitmap.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Media; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics 10 | { 11 | public interface IZXBitmap : IImage 12 | { 13 | public PixelSize PixelSize { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/SpritePatternEditor.axaml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/ZXGridImageView.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/neg/ExportDataTypes.cs: -------------------------------------------------------------------------------- 1 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics.neg 2 | { 3 | /// 4 | /// Types of data format for sprite export 5 | /// 6 | public enum ExportDataTypes 7 | { 8 | /// 9 | /// Array in Basic 10 | /// 11 | DIM = 0, 12 | /// 13 | /// DEFB inside ASM block 14 | /// 15 | ASM = 1, 16 | /// 17 | /// .bin file (INCBIN) 18 | /// 19 | BIN = 2, 20 | // .tap file (LOAD "" CODE) 21 | TAP = 3 22 | } 23 | } -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/neg/ExportTypeDescrioptionItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics.neg 8 | { 9 | public class ExportTypeDescrioptionItem 10 | { 11 | public ExportTypes ExportType { get; set; } 12 | public string Name { get; set; } 13 | public string Image { get; set; } 14 | public string Description { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/neg/ExportTypes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics.neg 8 | { 9 | /// 10 | /// Defines the pòssible export types for ZXGraphics 11 | /// 12 | public enum ExportTypes 13 | { 14 | None, 15 | 16 | // Fonts and UDGs/GDUs 17 | Bin, 18 | Tap, 19 | Asm, 20 | Dim, 21 | Data, 22 | 23 | // Sprites 24 | PutChars, 25 | GUSprite, 26 | FourSprites 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/neg/GraphicsModes.cs: -------------------------------------------------------------------------------- 1 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics.neg 2 | { 3 | /// 4 | /// Enumerates the types of graphics supported 5 | /// 6 | public enum GraphicsModes 7 | { 8 | /// 9 | /// Black and white, no attributes 10 | /// 11 | Monochrome = 0, 12 | /// 13 | /// Classic ZX Spectrum attributes, 15 colors for every 8x8 cell 14 | /// 15 | ZXSpectrum = 1, 16 | /// 17 | /// ZX Spectrum Next 16x16 (256 colors) 18 | /// 19 | Next = 2, 20 | } 21 | } -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/neg/Operation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics.neg 8 | { 9 | public class Operation 10 | { 11 | public int X { get; set; } 12 | public int Y { get; set; } 13 | public int ColorIndex { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/neg/PaletteColor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics.neg 8 | { 9 | /// 10 | /// Represents a color 11 | /// 12 | public class PaletteColor 13 | { 14 | /// 15 | /// Red level 16 | /// 17 | public byte Red { get; set; } 18 | /// 19 | /// Green level 20 | /// 21 | public byte Green { get; set; } 22 | /// 23 | /// Blue level 24 | /// 25 | public byte Blue { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentEditors/ZXGraphics/neg/PointData.cs: -------------------------------------------------------------------------------- 1 | namespace ZXBasicStudio.DocumentEditors.ZXGraphics.neg 2 | { 3 | /// 4 | /// Defines a point into the GDU/Font/Sprite/Tile data 5 | /// 6 | public class PointData 7 | { 8 | /// 9 | /// X coord 10 | /// 11 | public int X { get; set; } 12 | /// 13 | /// Y coord 14 | /// 15 | public int Y { get; set; } 16 | /// 17 | /// Color index 18 | /// For ZX classic 0 or 1 19 | /// For others like Next, color index 20 | /// 21 | public int ColorIndex { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /ZXBStudio/DocumentModel/Enums/ZXBuildStage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DocumentModel.Enums 8 | { 9 | /// 10 | /// Build stage of documents 11 | /// 12 | [Flags] 13 | public enum ZXBuildStage 14 | { 15 | /// 16 | /// Documents must be built before the project is compiled 17 | /// 18 | PreBuild = 1, 19 | /// 20 | /// Documents must be built after the project is compiled 21 | /// 22 | PostBuild = 2 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ZXBStudio/DocumentModel/Enums/ZXBuildType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.DocumentModel.Enums 8 | { 9 | public enum ZXBuildType 10 | { 11 | Debug, 12 | Release 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ZXBStudio/Emulator/Classes/ZXBinaryBank.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.Emulator.Classes 8 | { 9 | public class ZXBinaryBank 10 | { 11 | public string? Identifier { get; set; } 12 | public ZXMemoryBank Bank { get; set; } 13 | public required byte[] Data { get; set; } 14 | } 15 | public enum ZXMemoryBank 16 | { 17 | Bank1 = 1, 18 | Bank2 = 2, 19 | Bank3 = 3, 20 | Bank4 = 4, 21 | Bank5 = 5, 22 | Bank6 = 6, 23 | Bank7 = 7 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /ZXBStudio/Emulator/Classes/ZXBreakPoint.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace ZXBasicStudio.Emulator.Classes 8 | { 9 | public class ZXBreakPoint 10 | { 11 | public ZXBreakPoint(string File, int Line) 12 | { 13 | this.File = File; 14 | this.Line = Line; 15 | } 16 | public string File { get; set; } 17 | public int Line { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ZXBStudio/Emulator/Controls/ZXScreen.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /ZXBStudio/Fonts/AlmaMono-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/AlmaMono-Bold.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/AlmaMono-Heavy.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/AlmaMono-Heavy.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/AlmaMono-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/AlmaMono-Light.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/AlmaMono-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/AlmaMono-Regular.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/AlmaMono-Thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/AlmaMono-Thin.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BPmono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BPmono.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BPmonoBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BPmonoBold.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BPmonoItalics.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BPmonoItalics.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BergenMono-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BergenMono-Bold.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BergenMono-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BergenMono-BoldItalic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BergenMono-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BergenMono-Italic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BergenMono-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BergenMono-Regular.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BergenMono-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BergenMono-SemiBold.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/BergenMono-SemiBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/BergenMono-SemiBoldItalic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-Bold.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-BoldItalic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-ExtraLight.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-ExtraLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-ExtraLightItalic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-Italic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-Light.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-LightItalic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-Regular.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-SemiBold.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-SemiBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-SemiBoldItalic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-SemiLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-SemiLight.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/CascadiaMono-SemiLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/CascadiaMono-SemiLightItalic.otf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/ConsolaMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/ConsolaMono-Bold.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/ConsolaMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/ConsolaMono.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/DroidSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/DroidSansMono.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/FiraCode-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/FiraCode-Regular.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/NimbusSanL-Bol.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/NimbusSanL-Bol.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/NimbusSanL-BolIta.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/NimbusSanL-BolIta.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/NimbusSanL-Reg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/NimbusSanL-Reg.ttf -------------------------------------------------------------------------------- /ZXBStudio/Fonts/NimbusSanL-RegIta.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Fonts/NimbusSanL-RegIta.ttf -------------------------------------------------------------------------------- /ZXBStudio/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "ZXBasicStudio": { 4 | "commandName": "Project" 5 | }, 6 | "WSL": { 7 | "commandName": "WSL2", 8 | "distributionName": "" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /ZXBStudio/Resources/128k_0_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/128k_0_rom.bin -------------------------------------------------------------------------------- /ZXBStudio/Resources/128k_1_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/128k_1_rom.bin -------------------------------------------------------------------------------- /ZXBStudio/Resources/48k_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/48k_rom.bin -------------------------------------------------------------------------------- /ZXBStudio/Resources/Plus2_0_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/Plus2_0_rom.bin -------------------------------------------------------------------------------- /ZXBStudio/Resources/Plus2_1_rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/Plus2_1_rom.bin -------------------------------------------------------------------------------- /ZXBStudio/Resources/libportaudio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/libportaudio.dll -------------------------------------------------------------------------------- /ZXBStudio/Resources/libportaudio.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/libportaudio.dylib -------------------------------------------------------------------------------- /ZXBStudio/Resources/libportaudio.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/libportaudio.so -------------------------------------------------------------------------------- /ZXBStudio/Resources/sysvars.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/Resources/sysvars.inc -------------------------------------------------------------------------------- /ZXBStudio/Roots.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/Cancel.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/Copy.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/MoveRight.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/Paste.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/backward-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/backward-step-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/box-open-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/box-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/boxes-stacked-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/caret-down-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/caret-up-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/circle-info-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/circle-minus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/circle-question-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/circle-xmark-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/clock-rotate-left-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/comment-dots-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/copy-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/diagram-project-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/dumpster-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/eject-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/exit-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/file-arrow-down-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/file-circle-minus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/file-circle-plus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/file-circle-xmark-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/file-export-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/floppy-disk-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/folder-open-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/folder-plus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/forward-fast-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/forward-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/forward-step-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/hashtag-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/layout-alltools-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/layout-debug-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/layout-explorer-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/layout-full-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/layout-play-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/magnifying-glass-location-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/minus-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/open-last-project-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/paste-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/pause-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/play-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/power-off-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/rectangle-list-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/rectangle-xmark-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/scissors-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/square-minus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/square-plus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/stop-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/tag-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/thumbtack-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/thumbtack-vertical-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/White/trash-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/backward-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/backward-step-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/binary.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/box-open-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/box-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/boxes-stacked-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/caret-down-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/caret-up-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/cassette.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/check-alt-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/circle-info-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/circle-minus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/circle-question-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/circle-xmark-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/clock-rotate-left-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/comment-dots-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/comment-slash-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/copy-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/diagram-project-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/display-lines-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/dumpster-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/eject-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/file-arrow-down-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/file-circle-minus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/file-circle-plus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/file-circle-xmark-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/file-export-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/floppy-disk-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/folder-open-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/folder-plus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/font-increase.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/forward-fast-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/forward-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/forward-step-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/hashtag-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/invert-color-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/invert-mode-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/layout-alltools-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/layout-debug-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/layout-explorer-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/layout-full-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/layout-play-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/magnifying-glass-arrow-right-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/magnifying-glass-location-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/magnifying-glass-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/maximize-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/minus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/open-last-project-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/paste-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/pause-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/play-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/power-off-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/rectangle-list-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/rectangle-xmark-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/redo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/scissors-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/square-minus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/square-plus-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/stop-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/tag-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/thumbtack-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/trash-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/undo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ZXBStudio/Svg/x-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ZXBStudio/zxbs.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBStudio/zxbs.ico -------------------------------------------------------------------------------- /ZXBasicStudioSite/App.razor: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Not found 8 | 9 |

Sorry, there's nothing at this address.

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/Pages/Counter.razor: -------------------------------------------------------------------------------- 1 | @page "/counter" 2 | 3 | Counter 4 | 5 |

Counter

6 | 7 |

Current count: @currentCount

8 | 9 | 10 | 11 | @code { 12 | private int currentCount = 0; 13 | 14 | private void IncrementCount() 15 | { 16 | currentCount++; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 | Index 4 | 5 |

Hello, world! asa

6 | 7 | Welcome to your new app. 8 | 9 | 10 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Components.Web; 2 | using Microsoft.AspNetCore.Components.WebAssembly.Hosting; 3 | using ZXBasicStudioSite; 4 | 5 | var builder = WebAssemblyHostBuilder.CreateDefault(args); 6 | builder.RootComponents.Add("#app"); 7 | builder.RootComponents.Add("head::after"); 8 | 9 | builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); 10 | 11 | await builder.Build().RunAsync(); 12 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
4 | 7 | 8 |
9 |
10 | About 11 |
12 | 13 |
14 | @Body 15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/Shared/SurveyPrompt.razor: -------------------------------------------------------------------------------- 1 | 
2 | 3 | @Title 4 | 5 | 6 | Please take our 7 | brief survey 8 | 9 | and tell us what you think. 10 |
11 | 12 | @code { 13 | // Demonstrates how a parent component can supply parameters 14 | [Parameter] 15 | public string? Title { get; set; } 16 | } 17 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/ZXBasicStudioSite.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using System.Net.Http 2 | @using System.Net.Http.Json 3 | @using Microsoft.AspNetCore.Components.Forms 4 | @using Microsoft.AspNetCore.Components.Routing 5 | @using Microsoft.AspNetCore.Components.Web 6 | @using Microsoft.AspNetCore.Components.Web.Virtualization 7 | @using Microsoft.AspNetCore.Components.WebAssembly.Http 8 | @using Microsoft.JSInterop 9 | @using ZXBasicStudioSite 10 | @using ZXBasicStudioSite.Shared 11 | -------------------------------------------------------------------------------- /ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBasicStudioSite/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /ZXBasicStudioSite/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBasicStudioSite/wwwroot/favicon.png -------------------------------------------------------------------------------- /ZXBasicStudioSite/wwwroot/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/ZXBasicStudioSite/wwwroot/icon-192.png -------------------------------------------------------------------------------- /ZXBasicStudioSite/wwwroot/sample-data/weather.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "date": "2022-01-06", 4 | "temperatureC": 1, 5 | "summary": "Freezing" 6 | }, 7 | { 8 | "date": "2022-01-07", 9 | "temperatureC": 14, 10 | "summary": "Bracing" 11 | }, 12 | { 13 | "date": "2022-01-08", 14 | "temperatureC": -13, 15 | "summary": "Freezing" 16 | }, 17 | { 18 | "date": "2022-01-09", 19 | "temperatureC": -16, 20 | "summary": "Balmy" 21 | }, 22 | { 23 | "date": "2022-01-10", 24 | "temperatureC": -2, 25 | "summary": "Chilly" 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /ZXBasicStudioTest/UnitTest1.cs: -------------------------------------------------------------------------------- 1 | namespace ZXBasicStudioTest 2 | { 3 | public class UnitTest1 4 | { 5 | [Fact] 6 | public void Test1() 7 | { 8 | int a = 10; 9 | int b = 20; 10 | 11 | Assert.NotEqual(a, b); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/grid.png -------------------------------------------------------------------------------- /libportaudio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/libportaudio.dll -------------------------------------------------------------------------------- /zxbs.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gusmanb/ZXBasicStudio/45b151450e9b35e47d43b84df9e8397abf1cd6b1/zxbs.ico --------------------------------------------------------------------------------