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

swtp6809 simulator being contributed to open-simh project (updated release candidate) #372

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

rfromafar
Copy link

I have taken some time to improve the swtp6809 simulator and make numerous bug fixes and enhance functionality. The doc file has been updated also. I have rebased my branch to pick up the latest changes in the master. The simulator is now working reliably with Flex 9.0 DSK images (reading and writing). Tested with applications including EDIT, ASMB, and BASIC. I am sure there is still room for improvement, but, this is a much better release candidate than my earlier pull request. Thank you for your consideration.

This is my initial commit of my swtp6809 emulator which is a modified version of the swtp6800 emulator.
The following changes are still outstanding:
- various code clean up tasks and removal of temporary comments
- bootrom.c - reset() appears to be performing attach() funtion, I plan to clean up soon
- mp-b3.c - want to add #define for 4 bytes per slot versus 16 bytes per slot
- dc-4.c - trying to understand the changes I made from the original dc-4.c in the swtp6800 emulator
- I will do additional testing, however, for now this boots Flex 9.0 and appears to be working fine
General clean up of code.
Removed unneeded test prints that were used for debugging.
Removed swtp_sbuge_bin.h which implemented BOOTROM code internally. Users should use "ATTACH BOOTROM <sbuge.bin filename>".
Added reset() routine to CPU.  If last line in INI file is "RESET CPU" then simulator goes straight into BOOTROM from reset vector at $FFFE.
Tested with several FLEX 9 DSK files.
Known issues are:
1) Backspace (BS) does not seem to work when running Flex 9.
2) When simulator starts up the PC has a value of $FFFF (and not $FFFE).
3) No DMAF1/DMAF2 disk emulation which is required for support of UniFlex.
4) No documentation has been written yet. However, I am more than willing to put something together.
Note this code was developed using Debian on Raspberry Pi 4. There may be Unix/DOS file conversion issues.
SWTP 6809 Simulator Usage guide.
… (Pull Request)

- updates to code while writing the simulator usage guide
- added copyright notice to relevant source code modules
- used unix2dos to format source files for DOS line terminator conventions
- source code files from swtp6800 with some changes: swtp_defs.h, dc-4.c
- source code files from swtp6800 that are unchanged: mp-s.
# This is the 1st commit message:

Richard Lukes - 18 FEB 2024
This is my initial commit of my swtp6809 emulator which is a modified version of the swtp6800 emulator.
The following changes are still outstanding:
- various code clean up tasks and removal of temporary comments
- bootrom.c - reset() appears to be performing attach() funtion, I plan to clean up soon
- mp-b3.c - want to add #define for 4 bytes per slot versus 16 bytes per slot
- dc-4.c - trying to understand the changes I made from the original dc-4.c in the swtp6800 emulator
- I will do additional testing, however, for now this boots Flex 9.0 and appears to be working fine

# This is the commit message open-simh#2:

In preparation of presenting for contribution as a "pull request".
General clean up of code.
Removed unneeded test prints that were used for debugging.
Removed swtp_sbuge_bin.h which implemented BOOTROM code internally. Users should use "ATTACH BOOTROM <sbuge.bin filename>".
Added reset() routine to CPU.  If last line in INI file is "RESET CPU" then simulator goes straight into BOOTROM from reset vector at $FFFE.
Tested with several FLEX 9 DSK files.
Known issues are:
1) Backspace (BS) does not seem to work when running Flex 9.
2) When simulator starts up the PC has a value of $FFFF (and not $FFFE).
3) No DMAF1/DMAF2 disk emulation which is required for support of UniFlex.
4) No documentation has been written yet. However, I am more than willing to put something together.
Note this code was developed using Debian on Raspberry Pi 4. There may be Unix/DOS file conversion issues.

# This is the commit message open-simh#3:

swtp6809 simulator being contributed to open-simh project open-simh#357 (Pull Request)
- updates to code while writing the simulator usage guide
- added copyright notice to relevant source code modules
- used unix2dos to format source files for DOS line terminator conventions
- source code files from swtp6800 with some changes: swtp_defs.h, dc-4.c
- source code files from swtp6800 that are unchanged: mp-s.

# This is the commit message open-simh#4:

CMake: Reduce excess quoting

cmake/cmake-builder.ps1 added quotes to arguments that contained spaces,
so that arguments printed correctly for progress output. This introduced
excess quotes that caused CMake (and likely other MS apps) confusion or
argument misinterpretation.

Instead of CMake seeing a single "Visual Studio 17 2022", CMake was
actually seeing "\"Visual Studio 17 2022\"".

This patch only adds the additional quotes when reporting progress or
emitting debug output. Otherwise, command line arguments are passed
unmolested.

# This is the commit message open-simh#5:

The user doc file for the swtp6809 simulator

SWTP 6809 Simulator Usage guide.
…significant changes from swtp6800 simulator. Added some device settings while updating the simulator usage doc file.
swtp6809: updated documentation after numerous bug fixes and enhancements to swtp6809 simulator
swtp6809: simulator doc file; updated table of contents
@markpizz
Copy link
Contributor

markpizz commented Apr 7, 2024

Hi Richard,

I spent some time yesterday and the day before to review what is in this Pull Request. Adding a variation of the SWTP family of systems is certainly a reasonable goal. After looking at your stuff I had a call with Bill Beech (the author of the existing SWTP simulators) to review his understanding of your efforts.

Bill was under the impression that there was a single file in common between his legacy swtp simulators and your new simulator. This single common file was the dc-4.c floppy disk simulator. When looking at your efforts it would be perfectly reasonable that your simulator might need some changes to this device, but the version you modified was definitely not the latest code in the open-simh/simh repository. The latest dc-4.c module had some changes made almost 2 years back contributed by Roberto Sancho Villa.

Apart from this, there were several other issues which should be cleaned up:

1 – All Simh source code has specifically had CRLF line endings (which all of your files actually have), AND they have tabs converted to spaces which a number of your files don’t. The open-simh/simh repository version all of the SWTP files had these fixed many years ago.

2 – Your new simulator is specifically very much related to the legacy 2 SWTP simulators and as such should share the directory in the source code. We absolutely don’t have different top level simulator directories for each simulator or we’d have some 78 separate directories with common code copied all over the place. Many directories that host the code for multiple simulators some examples are: 3B2, Interdata, NOVA, PDP10, PDP11, PDP18B, SEL32, SWTP, VAX. Your simulator’s source really should be in the swtp6800 directory with a swtp6809 subdirectory and leveraging common code between the multiple simulators in the existing common directory. Going down this path then shows that there are 2 other source modules which have some commonality between the 3 simulators contained in the swtp6800 directory. These are bootrom.c and mp-s.c. It would seem that mp-s.c is actually precisely the original file, but your bootrom.c is different from what was already in the common directory.

It would seem best that the "common" files actually work for all 3 of the SWTP simulators. If any of these are drastically different in function, then it should have a different name. To achieve this goal, minor modifications to potentially other existing SWTP source modules might be needed.

3 - Simulators should build error/warning free with the existing compilers using all the various build tool chains that are mentioned by build mechanisms in the repository. Feel free to contact me directly at mark@infocomm.com to get changed versions of your existing source modules with tabs removed and compiler warnings fixed.

4 - When this simulator is actually added to the open-simh/simh repository it will be done with a single commit. The details of the many commits in your development work shouldn’t be included.

  • Mark Pizzolato

jriwanek added a commit to jriwanek-forks/opensimh that referenced this pull request Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants