Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull from Windows branch into MacOS #9

Open
wants to merge 101 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
5ad20af
Disable joystick when switching model to Master ET
chrisn Jul 5, 2024
82ea0d3
Removed unused function
chrisn Jul 6, 2024
1f9b671
Refactored serial port code
chrisn Jul 7, 2024
0a4edd6
Rewrote the Windows serial port implementation
chrisn Jul 8, 2024
a6573cd
Fixed some compiler warnings
chrisn Jul 8, 2024
e87b30d
Disable compiler warnings from zlib files
chrisn Jul 9, 2024
d805e6d
Updated help documentation for serial port emulation
chrisn Jul 9, 2024
98ce22d
Fixed TubeType preferences setting
chrisn Jul 10, 2024
f6b403e
Fixed printer output to clipboard
chrisn Jul 11, 2024
d15f618
Add some error handling
chrisn Jul 12, 2024
131905b
Removed unnecessary variable to fix compiler warning
chrisn Jul 13, 2024
ef92f75
Fixed emulator slow down when debugger window is open
chrisn Jul 13, 2024
c18ed40
Renamed variables
chrisn Jul 13, 2024
3440eee
Simplified code
chrisn Jul 13, 2024
e82b5db
Renamed functions
chrisn Jul 13, 2024
c1a66b3
Fixed minor consistency issues in OS 1.2 memory map
chrisn Jul 16, 2024
ecd71a1
Replaced _MAX_PATH with MAX_PATH
chrisn Jul 30, 2024
bf769dd
Use size_t data type
chrisn Jul 30, 2024
57c90ea
Renamed AVIWriter to AviWriter
chrisn Jul 30, 2024
bb7ab0d
Removed unused function
chrisn Jul 30, 2024
43f1e4d
Added ToHexDigit() function
chrisn Jul 30, 2024
9eee1d5
Added comments
chrisn Jul 30, 2024
cf553d5
Removed unnecessary #includes
chrisn Jul 30, 2024
edcba55
Use inline functions
chrisn Jul 30, 2024
472d625
Updated comments
chrisn Jul 30, 2024
6a1268a
Added CentreMessageBox() function
chrisn Jul 30, 2024
040176f
Removed using namespace directive
chrisn Jul 30, 2024
0ebd9fe
Minor refactoring
chrisn Jul 30, 2024
a573c1d
Added missing #includes
chrisn Aug 3, 2024
fafeacc
Add Wordwise+2 and beebug master rom support.
sai2791 Aug 8, 2024
5f165b5
Changed BeebWin::LoadFDC() to return success or failure
chrisn Aug 14, 2024
d1e5416
Disable rounded corners on Windows 11
chrisn Aug 14, 2024
88b8c7e
Fixed LoadHardwarePreferences() and LoadTubePreferences()
chrisn Aug 15, 2024
cc66730
Fixed ARM coprocessor emulation
chrisn Aug 15, 2024
d9e36f0
Fixed Edit/Copy command
chrisn Aug 15, 2024
dbf63b4
Removed unused code from Arm.cpp
chrisn Aug 16, 2024
6436e38
Improved ARM coprocessor
chrisn Aug 24, 2024
0fb1f57
Refactored RTC emulation
chrisn Aug 24, 2024
a7dddd8
Added more portable file name handling
chrisn Aug 24, 2024
4be6c7f
Fixed compiler warnings
chrisn Aug 24, 2024
374b3e2
Added const
chrisn Aug 24, 2024
a3da814
Fixed compiler warnings
chrisn Aug 24, 2024
c0e2028
Removed unused code
chrisn Aug 24, 2024
0af9aae
Use StrCaseCmp() function
chrisn Aug 24, 2024
a8db138
Fixed BeebWin::LoadCapturePreferences()
chrisn Aug 24, 2024
f89d78a
Fixed compiler warnings
chrisn Aug 24, 2024
667b6a9
Improved socket code portability
chrisn Aug 24, 2024
ce59afd
Moved MonitorType and SoundStreamerType to their own files
chrisn Aug 24, 2024
481a6a3
Minor refactoring
chrisn Aug 24, 2024
3ecbc09
Fixed compiler warnings
chrisn Aug 24, 2024
141add6
Fixed 1770 FDC emulation
chrisn Aug 24, 2024
c1f1996
Minor tidy up
chrisn Aug 24, 2024
cca990d
Fixed compiler warning on switch fall through
chrisn Aug 24, 2024
752f8d3
Use KEYMAP_SIZE constant
chrisn Aug 24, 2024
300a86e
Use built-in data types
chrisn Aug 24, 2024
9863a66
Added command line parameter length check
chrisn Aug 25, 2024
06307de
Added check for OS ROM file size
chrisn Aug 25, 2024
23afc0e
Added check for ARM7TDMI co-processor ROM size
chrisn Aug 25, 2024
5fd68dc
Fixed ConnectSocket()
chrisn Dec 18, 2024
d5e7a94
Fixed econet CTS status bit
chrisn Dec 19, 2024
686466c
Updated Master MOS ROM image
chrisn Dec 19, 2024
dc2da72
Fixed Master 512 80186 co-pro timing table
chrisn Dec 23, 2024
8a75b5a
Added error checking reading ROM files
chrisn Dec 23, 2024
3d54909
Fixed compiler warning
chrisn Dec 23, 2024
811f209
A few minor changes
chrisn Dec 27, 2024
6443aa9
Fixed printer enable at startup
chrisn Dec 27, 2024
97b6056
Added error handling reading CSW files
chrisn Dec 27, 2024
9d35b0f
Added error handling reading UEF savetate files
chrisn Dec 27, 2024
536a8fc
Report error if failed to load Z80 copro ROM file
chrisn Dec 27, 2024
dff8f37
Simplified code that reads Torch Z80 ROM file
chrisn Dec 27, 2024
bf5e4e0
Renamed Z80 functions
chrisn Dec 28, 2024
8f70e13
Set parent window for tape control dialog box
chrisn Dec 28, 2024
1f5b904
Fixed resource ids
chrisn Dec 28, 2024
b0acffe
Fixed recording to an existing tape image
chrisn Dec 28, 2024
2f6eec7
Disable save state while tape is recording
chrisn Feb 9, 2025
acabbec
Updated CHANGES.md
chrisn Feb 12, 2025
c18b65d
Open printer capture file in append mode
chrisn Feb 13, 2025
f0fc477
Fixed Save As dialog box for printer capture file
chrisn Feb 15, 2025
1fab4ff
Fixed sound muting when the BeebEm window loses focus
chrisn Feb 15, 2025
0556d3b
Fixed teletext mode character alignment
chrisn Feb 15, 2025
f3639f2
Update CHANGES.md
chrisn Feb 15, 2025
d1d1f95
Added GetFileNameFromPath() function
chrisn Feb 15, 2025
1ac1e3e
Updated copyright date
chrisn Feb 16, 2025
7cf5b05
Add command line option validation
chrisn Feb 16, 2025
10d2ade
Fixed Preferences.cfg
chrisn Feb 16, 2025
4813371
Updated file type registrations
chrisn Feb 16, 2025
09076e9
Replace list with vector
chrisn Feb 16, 2025
9d3b85c
Added ToggleEconet() function
chrisn Feb 23, 2025
bbcc677
Use SUCCEEDED and FAILED macros
chrisn Feb 27, 2025
8ef28c0
Use AppendPath() function
chrisn Mar 1, 2025
328b7da
Added SetWindowStyle() function
chrisn Mar 1, 2025
45bb468
Fixed BeebEm window topmost state after exiting fullscreen
chrisn Mar 1, 2025
3eb6e18
Refactored variable declarations
chrisn Mar 1, 2025
69a34bd
Fixed address wraparound in 'file' debug command
chrisn Mar 1, 2025
5265d87
Fixed UserPortRTCWrite()
chrisn Mar 1, 2025
2a99bea
Replaced Z80 Input and Output macros
chrisn Mar 1, 2025
77bd263
Use iostreams for reading debug script files
chrisn Mar 1, 2025
32fc8ab
Added debugger command documentation
chrisn Mar 1, 2025
e966448
Fixed Hide Menu command
chrisn Mar 2, 2025
8cff77d
Added #include
chrisn Mar 2, 2025
3f78f63
Fixed layout in help documentation
chrisn Mar 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ Unreleased changes
------------

Contributors: Chris Needham, Mauro Varischetti, Bill Carr, Daniel Beardsmore,
Steve Inglis, Alistair Cree, Ken Lowe, Mark Usher, Martin Mather, Tom Seddon
Steve Inglis, Alistair Cree, Ken Lowe, Mark Usher, Martin Mather, Tom Seddon,
Andrew Hague

* Added support for FSD format disk images. This currently only works
with the 8271 and not the 1770 disk controller.
Expand All @@ -25,6 +26,7 @@ Steve Inglis, Alistair Cree, Ken Lowe, Mark Usher, Martin Mather, Tom Seddon
- Fixed potential buffer overflow bug.
- Added support for immediate operations, used by the *VIEW and *NOTIFY
commands. These currently only work under Master series emulation.
- Fixed CTS status bit.
* Added Master ET support.
* ROM config files (e.g., Roms.cfg) can now include comments. Note that
files with comments are not backwards compatible with older BeebEm
Expand All @@ -40,10 +42,14 @@ Steve Inglis, Alistair Cree, Ken Lowe, Mark Usher, Martin Mather, Tom Seddon
* Tape emulation improvements:
- Improved tape input data carrier detect emulation.
- Tape state is now preserved when loading and saving savestate files,
for both UEF and CSW files.
for both UEF and CSW files. Saving state is disabled while the tape
is recording.
- Fixed loading CSW files from the command line.
- Fixed recording (appending) to existing tape image files.
* Improved serial port emulation, and fixed data loss when using
serial over a TCP connection.
* Rewrote the Windows serial port implementation. Received characters
are now buffered to prevent being lost.
* Added Set Keyboard Links command, which allows you to change the default
screen mode and other options (Model B/B+ only).
* Fixed installer to not delete Econet and key map config files.
Expand Down Expand Up @@ -81,8 +87,11 @@ Steve Inglis, Alistair Cree, Ken Lowe, Mark Usher, Martin Mather, Tom Seddon
rendering after the host PC resumes from being suspended or in some cases
enter a loop continually resetting the screen mode on entering full screen.
* Fixed sound register reinitialisation after changing the sound sample rate.
* Fixed sound muting when the BeebEm window loses focus.
* Fixed teletext mode character alignment.
* Fixed printing to the Windows clipboard, which would previously cause the
emulator to slow down or stall.
* When printing to file, the file is now appended to, not overwritten.
* Lots of help documentation improvements.

Version 4.19 (1 May 2023)
Expand Down
2 changes: 1 addition & 1 deletion Help/65c02copro.html
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ <h1>Acorn 65C02 Co-Processor</h1>
</main>

<footer>
<p>Copyright &copy; 2024 BeebEm contributors</p>
<p>Copyright &copy; 2025 BeebEm contributors</p>
</footer>
</body>
</html>
2 changes: 1 addition & 1 deletion Help/accessibility.html
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ <h2>Text to Speech</h2>
</main>

<footer>
<p>Copyright &copy; 2024 BeebEm contributors</p>
<p>Copyright &copy; 2025 BeebEm contributors</p>
</footer>
</body>
</html>
62 changes: 56 additions & 6 deletions Help/armcopro.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,26 @@ <h1>Acorn ARM Second Processor</h1>
Processor</span> on the <span class="ui">Hardware &rarr; Second
Processor</span> menu. The ARM Second Processor has no operating system
but relies on a sideways ROM to provide a command line prompt to the
user. Once you see the <span class="cmd">A*</span> prompt, type <span
user.
</p>

<p>
Once you see the <span class="cmd">A*</span> prompt, type <span
class="cmd">*HELP SUPERVISOR</span> to see what in-built commands are
available.
</p>

<p>
The ARM Evaluation System came with 6 discs full of software. Disc 3 is
included in the 'DiscIms' folder which contains ARM Basic. Load the
armdisc3.adl disc image (ensuring you are in ADFS mode), type <span
class="cmd">*MOUNT 4</span> and <span class="cmd">*AB</span> to load
ARM Basic. The remaining disc images plus a hard disc image containing
included in the <span class="file">DiscIms</span> folder which contains
ARM Basic. Load the <span class="file">armdisc3.adl</span> disc image
(ensuring you are in ADFS mode), type <span class="cmd">*MOUNT 4</span>
and <span class="cmd">*AB</span> to load ARM Basic. Type <span
class="cmd">HELP .</span> to list all BASIC commands.
</p>

<p>
The remaining disc images plus a hard disc image containing
all 6 disc images can be downloaded from Jon Welch's website:
<a href="http://www.g7jjf.com/acornArm_disc_images.htm">Acorn ARM
Discs</a>.
Expand All @@ -92,10 +101,51 @@ <h1>Acorn ARM Second Processor</h1>
site as well. If you have any manuals or other disc images that Jon
does not have feel free to send them to Jon to add to the library.
</p>

<p>To use the hard disc image:</p>

<ul>
<li>
While BeebEm is not running,
<a href="https://www.g7jjf.com/acornArm_disc_images.htm">download</a>
the hard disc image and copy the file <span class="file">scsi1.dat</span>
to your <span class="file">DiscIms</span> folder.
</li>
<li>
Start BeebEm.
</li>
<li>
Type <span class="cmd">CONFIGURE TUBE</span> to use the ARM
co-processor by default.
</li>
<li>
Type <span class="cmd">CONFIGURE FILE 13</span> to make ADFS the
default filing system (so you can read the disc image).
</li>
<li>
Type <span class="cmd">CONFIGURE MODE 0</span> to switch to a
screen mode with smaller font.
</li>
<li>
Press <kbd>Ctrl</kbd> + <kbd>F12</kbd> to reset the machine so
configuration changes take effect (presses <kbd>Ctrl</kbd> +
<kbd>Break</kbd> in the emulator).
</li>
<li>
Type <span class="cmd">MOUNT 1</span> to mount the hard disc image
as drive 1.
</li>
</ul>

<p>
To make sure all your settings are saved for next time so you don't
have to repeat the process, select the <span class="ui">Options &rarr;
Save Preferences</span> menu item.
</p>
</main>

<footer>
<p>Copyright &copy; 2024 BeebEm contributors</p>
<p>Copyright &copy; 2025 BeebEm contributors</p>
</footer>
</body>
</html>
4 changes: 2 additions & 2 deletions Help/commandline.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ <h1>Command Line Options</h1>
The following command line options can be passed to BeebEm:
</p>

<table>
<table class="syntax">
<tr>
<th>Option</th>
<th>Description</th>
Expand Down Expand Up @@ -403,7 +403,7 @@ <h2>Startup Key Sequence</h2>
</main>

<footer>
<p>Copyright &copy; 2024 BeebEm contributors</p>
<p>Copyright &copy; 2025 BeebEm contributors</p>
</footer>
</body>
</html>
2 changes: 1 addition & 1 deletion Help/contents.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ <h1>Help Contents</h1>
</main>

<footer>
<p>Copyright &copy; 2024 BeebEm contributors</p>
<p>Copyright &copy; 2025 BeebEm contributors</p>
</footer>
</body>
</html>
200 changes: 193 additions & 7 deletions Help/debugger.html
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,6 @@ <h1>Built in Debugger</h1>
</tr>
</table>

<p>
To get a list of the debug commands available type ? into the
<span class="ui">Execute Command</span> box. Note that all values are
specified in hex!
</p>

<p>
The disassembler shows the following information:
</p>
Expand All @@ -145,10 +139,202 @@ <h1>Built in Debugger</h1>
Parasite instructions are shifted right so it's easier to follow both
host and parasite when debugging tube code.
</p>

<h2>Debugger Commands</h2>

<p>
Parameters in <span class="cmd">[]</span> are optional.
<span class="cmd">p</span> can be specified in some commands to specify
the parasite processor. Words preceded with a <span class="cmd">.</span>
are interpreted as labels and may be used in place of addresses.
</p>


<table class="syntax">
<tr>
<th>Command</th>
<th>Aliases</th>
<th>Description</th>
</tr>

<tr>
<td><span class="cmd">breakpoint &lt;start&gt;[-&lt;end&gt;] [&lt;name&gt;]</span></td>
<td><span class="cmd">b</span>, <span class="cmd">bp</span></td>
<td>
Set or clear a breakpoint or break range
</td>
</tr>

<tr>
<td><span class="cmd">labels &lt;load|show&gt; [filename]</span></td>
<td><span class="cmd">l</span></td>
<td>
Load labels from VICE file, or display known labels
</td>
</tr>

<tr>
<td><span class="cmd">help &lt;item&gt;</span></td>
<td><span class="cmd">?</span>, <span class="cmd">q</span></td>
<td>
Display help for the specified command or memory address
</td>
</tr>

<tr>
<td><span class="cmd">break</span></td>
<td><span class="cmd">.</span></td>
<td>
Break or continue
</td>
</tr>

<tr>
<td><span class="cmd">set &lt;option&gt; &lt;on|off&gt; </span></td>
<td></td>
<td>
Turn various UI checkboxes on or off. The <span class="cmd">option</span>
parameter should be one of the following:
<span class="cmd">host</span>,
<span class="cmd">parasite</span>,
<span class="cmd">rom</span>,
<span class="cmd">os</span>,
<span class="cmd">endian</span>,
<span class="cmd">breakpoints</span>,
<span class="cmd">decimal</span>,
<span class="cmd">brk</span>
</td>
</tr>

<tr>
<td><span class="cmd">next [&lt;count&gt;]</span></td>
<td><span class="cmd">n</span></td>
<td>
Execute the specified number instructions, default 1
</td>
</tr>

<tr>
<td><span class="cmd">over</span></td>
<td><span class="cmd">o</span></td>
<td>
Step over JSR (host only)
</td>
</tr>

<tr>
<td><span class="cmd">peek [p] [&lt;start&gt;] [&lt;count&gt;]</span></td>
<td><span class="cmd">m</span></td>
<td>
Dump memory to the console
</td>
</tr>

<tr>
<td><span class="cmd">code [p] [&lt;start&gt;] [&lt;count&gt;]</span></td>
<td><span class="cmd">d</span></td>
<td>
Disassemble the specified memory range
</td>
</tr>

<tr>
<td><span class="cmd">watch [p] &lt;addr&gt; [&lt;b|w|d&gt;] [&lt;name&gt;]</span></td>
<td><span class="cmd">e</span></td>
<td>
Set or clear a byte, word, or dword memory watch at a given address
</td>
</tr>

<tr>
<td><span class="cmd">state &lt;device&gt;</span></td>
<td><span class="cmd">s</span></td>
<td>
Display device state. The <span class="cmd">device</span> option is
one of:
<span class="cmd">v</span> (video),
<span class="cmd">u</span> (user VIA),
<span class="cmd">s</span> (system VIA),
<span class="cmd">e</span> (serial),
<span class="cmd">t</span> (Tube),
<span class="cmd">m</span> (memory),
<span class="cmd">r</span> (ROMs)
</td>
</tr>

<tr>
<td><span class="cmd">save [&lt;count&gt;] [&lt;filename&gt;]</span></td>
<td><span class="cmd">w</span></td>
<td>
Write console lines to file. If <span class="cmd">filename</span>
is not given, a file prompt is shown
</td>
</tr>

<tr>
<td><span class="cmd">poke [p] &lt;start&gt; &lt;byte&gt; [&lt;byte&gt; ...]</span></td>
<td><span class="cmd">c</span></td>
<td>
Write bytes to memory
</td>
</tr>

<tr>
<td><span class="cmd">goto [p] &lt;addr&gt;</span></td>
<td><span class="cmd">g</span></td>
<td>
Jump to address
</td>
</tr>

<tr>
<td><span class="cmd">file &lt;r|w&gt; &lt;addr&gt; [&lt;count&gt;] [&lt;filename&gt;]</span></td>
<td><span class="cmd">f</span></td>
<td>
Read or write memory at address from/to file. If <span
class="cmd">filename</span> is not given, a file prompt is shown
</td>
</tr>

<tr>
<td><span class="cmd">echo &lt;string&gt;</span></td>
<td><span class="cmd">!</span></td>
<td>
Write the given string to the console
</td>
</tr>

<tr>
<td><span class="cmd">script [&lt;filename&gt;]</span></td>
<td></td>
<td>
Execute a debugger script. If <span
class="cmd">filename</span> is not given, a file prompt is shown
</td>
</tr>

<tr>
<td><span class="cmd">clear</span></td>
<td></td>
<td>
Clear the console
</td>
</tr>
</table>

<h2>Scripting</h2>

<p>
Batches of debugger commands can be executed from script files, using
the <span class="cmd">script</span> command or the
<a href="commandline.html"><span class="cmd">-DebugScript</span></a>
command line option. Script files can contain comments, preceded by
either <span class="cmd">#</span> or <span class="cmd">;</span>.
</p>
</main>

<footer>
<p>Copyright &copy; 2024 BeebEm contributors</p>
<p>Copyright &copy; 2025 BeebEm contributors</p>
</footer>
</body>
</html>
Loading