├── roms ├── readme.txt ├── basic_generic.rom ├── kernal_generic.rom └── chargen_openroms.rom ├── img ├── mega.png ├── rom.png ├── favicon.ico ├── vc64web.png ├── icon-72x72.png ├── icon-96x96.png ├── rom_empty.png ├── rom_mega65.png ├── icon-128x128.png ├── icon-144x144.png ├── icon-152x152.png ├── icon-192x192.png ├── icon-384x384.png ├── icon-512x512.png └── rom_patched.png ├── sounds ├── step.mp3 ├── eject.mp3 ├── insert.mp3 ├── key_space.mp3 ├── key_standard.mp3 └── key_backspace.mp3 ├── .github └── FUNDING.yml ├── css ├── C64_Pro_Mono-STYLE.ttf └── cm │ └── show-hint.css ├── start.sh ├── mainsdl.h ├── README.md ├── js ├── cm │ ├── addon │ │ ├── display │ │ │ ├── fullscreen.css │ │ │ ├── fullscreen.js │ │ │ └── autorefresh.js │ │ ├── search │ │ │ └── matchesonscrollbar.css │ │ ├── fold │ │ │ ├── foldgutter.css │ │ │ ├── markdown-fold.js │ │ │ └── indent-fold.js │ │ ├── dialog │ │ │ └── dialog.css │ │ ├── hint │ │ │ ├── show-hint.css │ │ │ └── anyword-hint.js │ │ ├── mode │ │ │ └── multiplex_test.js │ │ ├── edit │ │ │ └── trailingspace.js │ │ ├── tern │ │ │ └── worker.js │ │ ├── lint │ │ │ ├── yaml-lint.js │ │ │ ├── css-lint.js │ │ │ ├── json-lint.js │ │ │ └── coffeescript-lint.js │ │ ├── runmode │ │ │ └── colorize.js │ │ └── scroll │ │ │ ├── simplescrollbars.css │ │ │ └── scrollpastend.js │ └── mode │ │ └── javascript │ │ └── typescript.html └── ringbuffer.js ├── Emulator ├── Peripherals │ ├── Network │ │ ├── CMakeLists.txt │ │ └── RS232Types.h │ ├── Monitor │ │ └── CMakeLists.txt │ ├── Paddle │ │ ├── CMakeLists.txt │ │ └── PaddleTypes.h │ ├── Datasette │ │ ├── CMakeLists.txt │ │ └── DatasetteTypes.h │ ├── Joystick │ │ └── CMakeLists.txt │ ├── Keyboard │ │ ├── CMakeLists.txt │ │ └── KeyboardTypes.h │ ├── Mouse │ │ ├── CMakeLists.txt │ │ └── MouseTypes.h │ ├── Drive │ │ ├── CMakeLists.txt │ │ ├── DiskAnalyzerTypes.h │ │ ├── ParCableTypes.h │ │ └── DriveMemoryBase.cpp │ └── CMakeLists.txt ├── Misc │ ├── RegressionTester │ │ ├── CMakeLists.txt │ │ ├── RegressionTesterTypes.h │ │ └── RegressionTesterBase.cpp │ ├── Recorder │ │ ├── CMakeLists.txt │ │ ├── NamedPipe.h │ │ ├── FFmpeg.h │ │ └── NamedPipe.cpp │ ├── CMakeLists.txt │ ├── RemoteServers │ │ ├── CMakeLists.txt │ │ ├── RshServer.h │ │ └── RemoteManagerTypes.h │ └── RetroShell │ │ ├── CMakeLists.txt │ │ └── TextStorage.h ├── Base │ ├── HostTypes.h │ ├── CMakeLists.txt │ ├── Suspendable.cpp │ ├── Inspectable.cpp │ ├── Serializable.cpp │ ├── Synchronizable.cpp │ ├── Dumpable.cpp │ ├── Wakeable.h │ ├── CoreObject.cpp │ ├── Wakeable.cpp │ ├── Suspendable.h │ ├── Error.h │ ├── Dumpable.h │ ├── CmdQueue.cpp │ ├── Synchronizable.h │ ├── CoreComponentTypes.h │ ├── CmdQueue.h │ ├── ThreadTypes.h │ ├── SubComponent.cpp │ ├── MsgQueue.h │ ├── Configurable.h │ └── SubComponent.h ├── Components │ ├── CPU │ │ ├── CMakeLists.txt │ │ ├── Peddle │ │ │ ├── CMakeLists.txt │ │ │ ├── PeddleUtils.cpp │ │ │ ├── PeddleDebuggerTypes.h │ │ │ └── PeddleUtils.h │ │ └── CPUTypes.h │ ├── CIA │ │ ├── CMakeLists.txt │ │ ├── TODTypes.h │ │ └── TODBase.cpp │ ├── Memory │ │ ├── CMakeLists.txt │ │ └── Heatmap.h │ ├── SID │ │ ├── CMakeLists.txt │ │ └── resid │ │ │ ├── CMakeLists.txt │ │ │ ├── version.cc │ │ │ ├── resid-config.h │ │ │ ├── pot.cc │ │ │ ├── dac.h │ │ │ └── pot.h │ ├── VICII │ │ ├── CMakeLists.txt │ │ ├── VICIIInfo.cpp │ │ └── BusTypes.h │ ├── CMakeLists.txt │ └── Ports │ │ ├── CMakeLists.txt │ │ ├── SerialPortTypes.h │ │ ├── VideoPortTypes.h │ │ ├── UserPort.cpp │ │ ├── SerialPortBase.cpp │ │ ├── AudioPortTypes.h │ │ ├── ControlPortBase.cpp │ │ ├── ControlPortTypes.h │ │ ├── ExpansionPortTypes.h │ │ ├── UserPortTypes.h │ │ ├── VideoPortBase.cpp │ │ ├── PowerPortTypes.h │ │ ├── PowerPortBase.cpp │ │ ├── PowerPort.cpp │ │ ├── VideoPort.cpp │ │ └── UserPortBase.cpp ├── FileSystems │ └── CMakeLists.txt ├── Media │ ├── Cartridges │ │ ├── CMakeLists.txt │ │ └── CustomCartridges │ │ │ ├── CMakeLists.txt │ │ │ ├── Dinamic.cpp │ │ │ ├── Westermann.cpp │ │ │ ├── Gmod2.cpp │ │ │ ├── Dinamic.h │ │ │ ├── MikroAss.cpp │ │ │ ├── Funplay.h │ │ │ ├── Ocean.h │ │ │ ├── Rex.h │ │ │ ├── Rex.cpp │ │ │ ├── MikroAss.h │ │ │ ├── Westermann.h │ │ │ ├── StructuredBasic.h │ │ │ ├── SimonsBasic.cpp │ │ │ ├── Funplay.cpp │ │ │ ├── Zaxxon.h │ │ │ ├── Gmod2.h │ │ │ ├── Ocean.cpp │ │ │ ├── SimonsBasic.h │ │ │ ├── Comal80.h │ │ │ ├── Mach5.h │ │ │ ├── CustomCartridges.h │ │ │ ├── MagicDesk.h │ │ │ ├── Kingsoft.h │ │ │ ├── SuperGames.cpp │ │ │ ├── Mach5.cpp │ │ │ ├── Comal80.cpp │ │ │ ├── StructuredBasic.cpp │ │ │ ├── Zaxxon.cpp │ │ │ ├── WarpSpeed.h │ │ │ ├── FreezeFrame.h │ │ │ ├── WarpSpeed.cpp │ │ │ ├── Kcs.h │ │ │ ├── SuperGames.h │ │ │ ├── MagicDesk.cpp │ │ │ ├── FreezeFrame.cpp │ │ │ └── GameKiller.h │ ├── CMakeLists.txt │ ├── Script.cpp │ ├── AnyCollection.cpp │ ├── Script.h │ ├── Folder.cpp │ ├── AnyCollection.h │ └── PRGFile.cpp ├── Utilities │ ├── CMakeLists.txt │ ├── Concurrency.cpp │ ├── Concurrency.h │ ├── Checksum.h │ ├── BasicTypes.h │ └── Exception.h ├── VirtualC64Types.h └── Headless.h ├── .gitignore └── manifest.json /roms/readme.txt: -------------------------------------------------------------------------------- 1 | place your roms which should be embedded here 2 | -------------------------------------------------------------------------------- /img/mega.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/mega.png -------------------------------------------------------------------------------- /img/rom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/rom.png -------------------------------------------------------------------------------- /img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/favicon.ico -------------------------------------------------------------------------------- /img/vc64web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/vc64web.png -------------------------------------------------------------------------------- /sounds/step.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/sounds/step.mp3 -------------------------------------------------------------------------------- /img/icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-72x72.png -------------------------------------------------------------------------------- /img/icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-96x96.png -------------------------------------------------------------------------------- /img/rom_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/rom_empty.png -------------------------------------------------------------------------------- /img/rom_mega65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/rom_mega65.png -------------------------------------------------------------------------------- /sounds/eject.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/sounds/eject.mp3 -------------------------------------------------------------------------------- /sounds/insert.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/sounds/insert.mp3 -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [vc64web] 4 | -------------------------------------------------------------------------------- /img/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-128x128.png -------------------------------------------------------------------------------- /img/icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-144x144.png -------------------------------------------------------------------------------- /img/icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-152x152.png -------------------------------------------------------------------------------- /img/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-192x192.png -------------------------------------------------------------------------------- /img/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-384x384.png -------------------------------------------------------------------------------- /img/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/icon-512x512.png -------------------------------------------------------------------------------- /img/rom_patched.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/img/rom_patched.png -------------------------------------------------------------------------------- /sounds/key_space.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/sounds/key_space.mp3 -------------------------------------------------------------------------------- /roms/basic_generic.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/roms/basic_generic.rom -------------------------------------------------------------------------------- /roms/kernal_generic.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/roms/kernal_generic.rom -------------------------------------------------------------------------------- /sounds/key_standard.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/sounds/key_standard.mp3 -------------------------------------------------------------------------------- /roms/chargen_openroms.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/roms/chargen_openroms.rom -------------------------------------------------------------------------------- /sounds/key_backspace.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/sounds/key_backspace.mp3 -------------------------------------------------------------------------------- /css/C64_Pro_Mono-STYLE.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vc64web/virtualc64web/HEAD/css/C64_Pro_Mono-STYLE.ttf -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #python -m SimpleHTTPServer 8080 2 | 3 | #python3 use this 4 | python3 -m http.server 8080 5 | 6 | -------------------------------------------------------------------------------- /mainsdl.h: -------------------------------------------------------------------------------- 1 | #include "C64.h" 2 | 3 | /* emulation of macos mach_absolute_time() function. */ 4 | extern uint64_t mach_absolute_time(); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
4 | -------------------------------------------------------------------------------- /js/cm/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Network/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | RS232.cpp 6 | RS232Base.cpp 7 | 8 | ) 9 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Monitor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Monitor.cpp 6 | MonitorBase.cpp 7 | 8 | ) 9 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Paddle/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Paddle.cpp 6 | PaddleBase.cpp 7 | 8 | ) 9 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Datasette/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Datasette.cpp 6 | DatasetteBase.cpp 7 | 8 | ) 9 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Joystick/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Joystick.cpp 6 | JoystickBase.cpp 7 | 8 | ) 9 | -------------------------------------------------------------------------------- /Emulator/Misc/RegressionTester/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | RegressionTester.cpp 6 | RegressionTesterBase.cpp 7 | 8 | ) 9 | -------------------------------------------------------------------------------- /Emulator/Base/HostTypes.h: -------------------------------------------------------------------------------- 1 | // 2 | // HostTypes.h 3 | // VirtualC64 4 | // 5 | // Created by Dirk Hoffmann on 21.06.24. 6 | // 7 | 8 | #ifndef HostTypes_h 9 | #define HostTypes_h 10 | 11 | 12 | #endif /* HostTypes_h */ 13 | -------------------------------------------------------------------------------- /Emulator/Misc/Recorder/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | FFmpeg.cpp 6 | NamedPipe.cpp 7 | Recorder.cpp 8 | 9 | ) 10 | 11 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Keyboard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | C64Key.cpp 6 | Keyboard.cpp 7 | KeyboardBase.cpp 8 | 9 | ) 10 | -------------------------------------------------------------------------------- /Emulator/Components/CPU/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | CPU.cpp 6 | CPUBase.cpp 7 | 8 | ) 9 | 10 | add_subdirectory(Peddle) 11 | -------------------------------------------------------------------------------- /Emulator/Misc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | add_subdirectory(RemoteServers) 4 | add_subdirectory(RegressionTester) 5 | add_subdirectory(RetroShell) 6 | add_subdirectory(Recorder) 7 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Mouse/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Mouse.cpp 6 | Mouse1350.cpp 7 | Mouse1351.cpp 8 | NeosMouse.cpp 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /Emulator/Components/CIA/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | CIA.cpp 6 | CIABase.cpp 7 | CIARegs.cpp 8 | TOD.cpp 9 | TODBase.cpp 10 | 11 | ) 12 | -------------------------------------------------------------------------------- /Emulator/Components/Memory/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Memory.cpp 6 | MemoryBase.cpp 7 | MemoryDebugger.cpp 8 | Heatmap.cpp 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /Emulator/FileSystems/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | FSDescriptors.cpp 6 | FileSystem.cpp 7 | FSBlock.cpp 8 | FSDirEntry.cpp 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /Emulator/Misc/RemoteServers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | RemoteManager.cpp 6 | RemoteServer.cpp 7 | RshServer.cpp 8 | Socket.cpp 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /js/cm/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /Emulator/Components/CPU/Peddle/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Peddle.cpp 6 | PeddleDebugger.cpp 7 | PeddleDisassembler.cpp 8 | StrWriter.cpp 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /Emulator/Components/SID/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | ReSID.cpp 6 | SID.cpp 7 | SIDBase.cpp 8 | SIDBridge.cpp 9 | 10 | ) 11 | 12 | add_subdirectory(resid) 13 | -------------------------------------------------------------------------------- /Emulator/Misc/RetroShell/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Command.cpp 6 | Console.cpp 7 | CommandConsole.cpp 8 | DebugConsole.cpp 9 | RetroShell.cpp 10 | TextStorage.cpp 11 | 12 | ) 13 | -------------------------------------------------------------------------------- /Emulator/Media/Cartridges/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Cartridge.cpp 6 | CartridgeBase.cpp 7 | CartridgeRom.cpp 8 | FlashRom.cpp 9 | 10 | ) 11 | 12 | add_subdirectory(CustomCartridges) 13 | -------------------------------------------------------------------------------- /Emulator/Utilities/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Buffer.cpp 6 | Chrono.cpp 7 | Concurrency.cpp 8 | MemUtils.cpp 9 | Checksum.cpp 10 | StringUtils.cpp 11 | IOUtils.cpp 12 | Parser.cpp 13 | ) 14 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Drive/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | Drive.cpp 6 | DriveBase.cpp 7 | DriveMemory.cpp 8 | DriveMemoryBase.cpp 9 | VIA.cpp 10 | PIA.cpp 11 | ParCable.cpp 12 | Disk.cpp 13 | DiskAnalyzer.cpp 14 | 15 | ) 16 | -------------------------------------------------------------------------------- /Emulator/Components/VICII/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | VICII.cpp 6 | VICIIBase.cpp 7 | VICIIDraw.cpp 8 | VICIISprites.cpp 9 | VICIIMemory.cpp 10 | VICIICycles.cpp 11 | VICIITable.cpp 12 | DmaDebugger.cpp 13 | DmaDebuggerBase.cpp 14 | 15 | ) 16 | -------------------------------------------------------------------------------- /Emulator/Peripherals/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | ) 6 | 7 | add_subdirectory(Drive) 8 | add_subdirectory(Datasette) 9 | add_subdirectory(Joystick) 10 | add_subdirectory(Keyboard) 11 | add_subdirectory(Monitor) 12 | add_subdirectory(Mouse) 13 | add_subdirectory(Network) 14 | add_subdirectory(Paddle) 15 | -------------------------------------------------------------------------------- /Emulator/Components/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 3 | 4 | target_sources(vc64Core PRIVATE 5 | 6 | C64.cpp 7 | C64Base.cpp 8 | Emulator.cpp 9 | EmulatorBase.cpp 10 | 11 | ) 12 | 13 | add_subdirectory(CPU) 14 | add_subdirectory(CIA) 15 | add_subdirectory(Ports) 16 | add_subdirectory(Memory) 17 | add_subdirectory(SID) 18 | add_subdirectory(VICII) 19 | -------------------------------------------------------------------------------- /Emulator/Components/CPU/Peddle/PeddleUtils.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of Peddle - A MOS 65xx CPU emulator 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // Published under the terms of the MIT License 6 | // ----------------------------------------------------------------------------- 7 | 8 | #include "Peddle.h" 9 | -------------------------------------------------------------------------------- /Emulator/Components/SID/resid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | add_library(resid 4 | 5 | envelope.cc 6 | pot.cc 7 | voice.cc 8 | sid.cc 9 | filter.cc 10 | dac.cc 11 | extfilt.cc 12 | wave.cc 13 | version.cc 14 | ) 15 | 16 | if(MSVC) 17 | target_compile_options(resid PUBLIC /wd5055) 18 | else() 19 | target_compile_options(resid PUBLIC -w) 20 | endif() 21 | -------------------------------------------------------------------------------- /Emulator/Media/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | MediaFile.cpp 6 | AnyCollection.cpp 7 | AnyFile.cpp 8 | 9 | CRTFile.cpp 10 | D64File.cpp 11 | Folder.cpp 12 | G64File.cpp 13 | PRGFile.cpp 14 | P00File.cpp 15 | RomFile.cpp 16 | Script.cpp 17 | Snapshot.cpp 18 | TAPFile.cpp 19 | T64File.cpp 20 | 21 | ) 22 | 23 | add_subdirectory(Cartridges) 24 | -------------------------------------------------------------------------------- /Emulator/Components/Ports/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | AudioPort.cpp 6 | AudioPortBase.cpp 7 | ControlPort.cpp 8 | ControlPortBase.cpp 9 | ExpansionPort.cpp 10 | ExpansionPortBase.cpp 11 | PowerPort.cpp 12 | PowerPortBase.cpp 13 | SerialPort.cpp 14 | SerialPortBase.cpp 15 | UserPort.cpp 16 | UserPortBase.cpp 17 | VideoPort.cpp 18 | VideoPortBase.cpp 19 | 20 | ) 21 | -------------------------------------------------------------------------------- /Emulator/Base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | CmdQueue.cpp 6 | Colors.cpp 7 | Configurable.cpp 8 | CoreObject.cpp 9 | CoreComponent.cpp 10 | Defaults.cpp 11 | Dumpable.cpp 12 | Error.cpp 13 | Host.cpp 14 | Inspectable.cpp 15 | MsgQueue.cpp 16 | Option.cpp 17 | SubComponent.cpp 18 | Synchronizable.cpp 19 | Serializable.cpp 20 | Suspendable.cpp 21 | Thread.cpp 22 | Wakeable.cpp 23 | 24 | ) 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | b 2 | .DS_Store 3 | vC64.js 4 | vC64.wasm 5 | index.html 6 | 7 | #roms 8 | *.bin 9 | 10 | # Prerequisites 11 | *.d 12 | 13 | # Compiled Object files 14 | *.slo 15 | *.lo 16 | *.o 17 | *.obj 18 | 19 | # Precompiled Headers 20 | *.gch 21 | *.pch 22 | 23 | # Compiled Dynamic libraries 24 | *.so 25 | *.dylib 26 | *.dll 27 | 28 | # Fortran module files 29 | *.mod 30 | *.smod 31 | 32 | # Compiled Static libraries 33 | *.lai 34 | *.la 35 | *.a 36 | *.lib 37 | 38 | # Executables 39 | *.exe 40 | *.out 41 | *.app 42 | -------------------------------------------------------------------------------- /js/cm/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /Emulator/Base/Suspendable.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "Suspendable.h" 15 | -------------------------------------------------------------------------------- /Emulator/Peripherals/Keyboard/KeyboardTypes.h: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #pragma once 14 | 15 | #include "C64Key.h" 16 | -------------------------------------------------------------------------------- /Emulator/Base/Inspectable.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "Inspectable.h" 15 | 16 | namespace vc64 { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Emulator/Base/Serializable.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "Serializable.h" 15 | 16 | namespace vc64 { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Emulator/Base/Synchronizable.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "Synchronizable.h" 15 | 16 | namespace vc64 { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Emulator/Utilities/Concurrency.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "Concurrency.h" 15 | 16 | namespace vc64::util { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /js/cm/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: inherit; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: inherit; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /Emulator/Media/Cartridges/CustomCartridges/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_include_directories(vc64Core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 2 | 3 | target_sources(vc64Core PRIVATE 4 | 5 | ActionReplay.cpp 6 | Comal80.cpp 7 | Dinamic.cpp 8 | EasyFlash.cpp 9 | Epyx.cpp 10 | Expert.cpp 11 | FinalIII.cpp 12 | FreezeFrame.cpp 13 | Funplay.cpp 14 | GameKiller.cpp 15 | GeoRam.cpp 16 | Gmod2.cpp 17 | Isepic.cpp 18 | Kcs.cpp 19 | Kingsoft.cpp 20 | Mach5.cpp 21 | MagicDesk.cpp 22 | MikroAss.cpp 23 | Ocean.cpp 24 | PageFox.cpp 25 | Reu.cpp 26 | Rex.cpp 27 | SimonsBasic.cpp 28 | StarDos.cpp 29 | StructuredBasic.cpp 30 | SuperGames.cpp 31 | WarpSpeed.cpp 32 | Westermann.cpp 33 | Zaxxon.cpp 34 | 35 | ) 36 | -------------------------------------------------------------------------------- /Emulator/Components/VICII/VICIIInfo.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "VICII.h" 15 | #include "C64.h" 16 | 17 | namespace vc64 { 18 | 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Emulator/Components/Ports/SerialPortTypes.h: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | /// @file 13 | 14 | #pragma once 15 | 16 | #include "Reflection.h" 17 | 18 | namespace vc64 { 19 | 20 | typedef struct 21 | { 22 | // Bus idle time measured in frames 23 | i64 idle; 24 | } 25 | SerialPortStats; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /css/cm/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 2000; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | white-space: pre; 29 | color: black; 30 | cursor: pointer; 31 | } 32 | 33 | li.CodeMirror-hint-active { 34 | background: #08f; 35 | color: white; 36 | } 37 | -------------------------------------------------------------------------------- /js/cm/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | white-space: pre; 29 | color: black; 30 | cursor: pointer; 31 | } 32 | 33 | li.CodeMirror-hint-active { 34 | background: #08f; 35 | color: white; 36 | } 37 | -------------------------------------------------------------------------------- /Emulator/Misc/RegressionTester/RegressionTesterTypes.h: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | /// @file 13 | 14 | #pragma once 15 | 16 | #include "Reflection.h" 17 | 18 | namespace vc64 { 19 | 20 | 21 | // 22 | // Structures 23 | // 24 | 25 | typedef struct 26 | { 27 | bool debugcart; 28 | i64 watchdog; 29 | } 30 | RegressionTesterConfig; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Emulator/Components/Ports/VideoPortTypes.h: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #pragma once 14 | 15 | #include "BasicTypes.h" 16 | 17 | namespace vc64 { 18 | 19 | // 20 | // Structures 21 | // 22 | 23 | typedef struct 24 | { 25 | bool whiteNoise; 26 | } 27 | 28 | VideoPortConfig; 29 | 30 | typedef struct 31 | { 32 | 33 | } 34 | VideoPortInfo; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Emulator/Base/Dumpable.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "Dumpable.h" 15 | 16 | namespace vc64 { 17 | 18 | void 19 | Dumpable::dump(Category category, std::ostream& ss) const 20 | { 21 | _dump(category, ss); 22 | } 23 | 24 | void 25 | Dumpable::dump(Category category) const 26 | { 27 | dump(category, std::cout); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Emulator/Media/Cartridges/CustomCartridges/Dinamic.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "C64.h" 15 | 16 | namespace vc64 { 17 | 18 | u8 19 | Dinamic::peekIO1(u16 addr) 20 | { 21 | if (addr <= 0xDE0F) bankIn(addr & 0xF); 22 | return 0; 23 | } 24 | 25 | u8 26 | Dinamic::spypeekIO1(u16 addr) const 27 | { 28 | return 0; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Emulator/Misc/Recorder/NamedPipe.h: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #pragma once 14 | 15 | #include "BasicTypes.h" 16 | 17 | namespace vc64 { 18 | 19 | class NamedPipe final { 20 | 21 | int pipe = -1; 22 | string name; 23 | 24 | public: 25 | 26 | bool create(const string &name); 27 | bool open(); 28 | bool isOpen(); 29 | bool close(); 30 | isize write(u8 *buffer, isize length); 31 | }; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Emulator/Media/Cartridges/CustomCartridges/Westermann.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "C64.h" 15 | 16 | namespace vc64 { 17 | 18 | u8 19 | Westermann::peekIO2(u16 addr) 20 | { 21 | // Reading from I/O 2 switched the cartridge on 22 | expansionPort.setCartridgeMode(CRTMODE_8K); 23 | return 0; 24 | } 25 | 26 | u8 27 | Westermann::spypeekIO2(u16 addr) const 28 | { 29 | return 0; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Emulator/Base/Wakeable.h: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #pragma once 14 | 15 | #include "Concurrency.h" 16 | 17 | namespace vc64 { 18 | 19 | class Wakeable 20 | { 21 | static constexpr auto timeout = std::chrono::milliseconds(100); 22 | 23 | std::mutex condMutex; 24 | std::condition_variable condVar; 25 | bool ready = false; 26 | 27 | public: 28 | 29 | void waitForWakeUp(util::Time timeout); 30 | void wakeUp(); 31 | }; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Emulator/Components/CIA/TODTypes.h: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #pragma once 14 | 15 | #include "BasicTypes.h" 16 | 17 | // 18 | // Structures 19 | // 20 | 21 | typedef union 22 | { 23 | struct { 24 | u8 tenth; 25 | u8 sec; 26 | u8 min; 27 | u8 hour; 28 | }; 29 | u32 value; 30 | } 31 | TimeOfDay; 32 | 33 | typedef struct 34 | { 35 | TimeOfDay time; 36 | TimeOfDay latch; 37 | TimeOfDay alarm; 38 | } 39 | TODInfo; 40 | -------------------------------------------------------------------------------- /js/cm/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /Emulator/Base/CoreObject.cpp: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is part of VirtualC64 3 | // 4 | // Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de 5 | // This FILE is dual-licensed. You are free to choose between: 6 | // 7 | // - The GNU General Public License v3 (or any later version) 8 | // - The Mozilla Public License v2 9 | // 10 | // SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0 11 | // ----------------------------------------------------------------------------- 12 | 13 | #include "config.h" 14 | #include "CoreObject.h" 15 | #include