Compare commits

...

No commits in common. "master" and "gh-pages" have entirely different histories.

817 changed files with 584 additions and 207076 deletions

View file

@ -1,180 +0,0 @@
name: Release
on:
push:
branches:
- master
schedule:
- cron: '0 0 * * *'
jobs:
build_rpm:
env:
REPO_URL: ${{ github.server_url }}/audetto/AppleWin
runs-on: ubuntu-18.04
strategy:
matrix:
include:
- os_name: fedora
os_codename: '34'
build_type: 'QT'
- os_name: fedora
os_codename: '35'
build_type: 'QT'
container: ${{ matrix.os_name }}:${{ matrix.os_codename }}
steps:
- run: dnf -y update && dnf -y install git ca-certificates curl gpg rsync file && dnf clean all
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v4
with:
gpg_private_key: ${{ secrets.PACKAGE_SIGNING_KEY }}
passphrase: ''
- run: git config --global --add safe.directory /__w/AppleWin/AppleWin && git init && git remote add origin "$REPO_URL" && git fetch origin ${{ github.ref }} && git checkout ${{ github.ref_name }} && git submodule init && git submodule update
- run: CPACK_TYPE=RPM INSTALL_DEPS=${{ matrix.build_type }} bash ./source/linux/build.sh
- run: cd build/packages && rm -rf ./_CPack_Packages
- run: cd build/packages && dpkg-scanpackages --multiversion . > Packages
- run: cd build/packages && gzip -k -f Packages
- run: cd build/packages && apt-ftparchive release . > Release
- run: cd build/packages && gpg --default-key "${{ secrets.PACKAGE_SIGNING_EMAIL }}" -abs -o - Release > Release.gpg
- run: cd build/packages && gpg --default-key "${{ secrets.PACKAGE_SIGNING_EMAIL }}" --clearsign -o - Release > InRelease
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.os_name }}-${{ matrix.os_codename }}
path: ./build/packages/**/*
build_deb:
env:
DEBIAN_FRONTEND: noninteractive
REPO_URL: ${{ github.server_url }}/audetto/AppleWin
runs-on: ubuntu-18.04
strategy:
matrix:
include:
- os_name: debian
os_codename: bullseye
build_type: 'QT'
has_backports: backports
- os_name: debian
os_codename: bookworm
build_type: 'QT'
- os_name: ubuntu
os_codename: bionic
is_lts: lts
build_type: 'WITHOUT_QT'
- os_name: ubuntu
os_codename: focal
is_lts: lts
build_type: 'QT'
- os_name: ubuntu
os_codename: hirsute
build_type: 'QT'
- os_name: ubuntu
os_codename: impish
build_type: 'QT'
container: ${{ matrix.os_name }}:${{ matrix.os_codename }}
steps:
- run: apt-get update && apt-get install -y --no-install-recommends git ca-certificates apt-transport-https curl gpg gpg-agent lsb-release dpkg-dev apt-utils rsync file
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v4
with:
gpg_private_key: ${{ secrets.PACKAGE_SIGNING_KEY }}
passphrase: ''
- if: matrix.has_backports == 'backports'
run: echo 'deb http://deb.debian.org/debian ${{ matrix.os_codename }}-backports main' >> /etc/apt/sources.list
- if: matrix.is_lts == 'lts'
run: curl -L https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
- if: matrix.is_lts == 'lts'
run: echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/${{ matrix.os_name }}/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/kitware.list >/dev/null
- run: git config --global --add safe.directory /__w/AppleWin/AppleWin && git init && git remote add origin "$REPO_URL" && git fetch origin ${{ github.ref }} && git checkout ${{ github.ref_name }} && git submodule init && git submodule update
- run: INSTALL_DEPS=${{ matrix.build_type }} bash ./source/linux/build.sh
- run: cd build/packages && rm -rf ./_CPack_Packages
- run: cd build/packages && dpkg-scanpackages --multiversion . > Packages
- run: cd build/packages && gzip -k -f Packages
- run: cd build/packages && apt-ftparchive release . > Release
- run: cd build/packages && gpg --default-key "${{ secrets.PACKAGE_SIGNING_EMAIL }}" -abs -o - Release > Release.gpg
- run: cd build/packages && gpg --default-key "${{ secrets.PACKAGE_SIGNING_EMAIL }}" --clearsign -o - Release > InRelease
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.os_name }}-${{ matrix.os_codename }}
path: ./build/packages/**/*
deploy:
needs:
- build_deb
- build_rpm
runs-on: ubuntu-18.04
strategy:
max-parallel: 1
matrix:
include:
- os_name: fedora
os_codename: '34'
- os_name: fedora
os_codename: '35'
- os_name: debian
os_codename: bullseye
- os_name: debian
os_codename: bookworm
- os_name: ubuntu
os_codename: bionic
- os_name: ubuntu
os_codename: focal
- os_name: ubuntu
os_codename: hirsute
- os_name: ubuntu
os_codename: impish
steps:
- uses: actions/checkout@v3
with:
repository: audetto/AppleWin
fetch-depth: 1
ref: ${{ github.event.inputs.tag }}
- uses: actions/download-artifact@v2
with:
name: ${{ matrix.os_name }}-${{ matrix.os_codename }}
path: packages
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.3.0
with:
branch: gh-pages
folder: packages
target-folder: packages/${{ matrix.os_name }}/dists/${{ matrix.os_codename }}

3
.gitignore vendored
View file

@ -134,9 +134,6 @@ publish/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# If using the old MSBuild-Integrated Package Restore, uncomment this:
#!**/packages/repositories.config

9
.gitmodules vendored
View file

@ -1,9 +0,0 @@
[submodule "source/frontends/qt/QHexView"]
path = source/frontends/qt/QHexView
url = ../../Dax89/QHexView.git
[submodule "source/frontends/sdl/imgui/imgui"]
path = source/frontends/sdl/imgui/imgui
url = ../../ocornut/imgui
[submodule "source/frontends/sdl/imgui/imgui_club"]
path = source/frontends/sdl/imgui/imgui_club
url = ../../ocornut/imgui_club

View file

@ -1,38 +0,0 @@
language: cpp
branches:
only:
- master
matrix:
include:
# disabled as too expensive
# - name: "AppleWin on Windows"
# os: windows
# script: ./CIBuild.bat
- name: "AppleWin on Linux"
os: linux
dist: focal
arch: amd64
script: source/linux/build.sh
addons:
apt:
packages:
- cmake
- libyaml-dev
- libminizip-dev
- qtbase5-dev
- qtmultimedia5-dev
- libqt5gamepad5-dev
- libboost-program-options-dev
- libncurses-dev
- libevdev-dev
- libsdl2-dev
- libsdl2-image-dev
- libgles-dev
- libpcap-dev
- libslirp-dev

View file

@ -1,57 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Applewin", "AppleWinExpress2008.vcproj", "{1DA0C491-B5F4-4EC8-B1D2-CF6BE635DADC}"
ProjectSection(ProjectDependencies) = postProject
{5CE8051A-3F0C-4C39-B1C0-3338E48BA60F} = {5CE8051A-3F0C-4C39-B1C0-3338E48BA60F}
{7935B998-C713-42AE-8F6D-9FF9080A1B1B} = {7935B998-C713-42AE-8F6D-9FF9080A1B1B}
{2CC8CA9F-E37E-41A4-BFAD-77E54EB783A2} = {2CC8CA9F-E37E-41A4-BFAD-77E54EB783A2}
{709278B8-C583-4BD8-90DE-4E4F35A3BD8B} = {709278B8-C583-4BD8-90DE-4E4F35A3BD8B}
{0AE28CF0-15B0-4DDF-B6D2-4562D8E456BB} = {0AE28CF0-15B0-4DDF-B6D2-4562D8E456BB}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib-Express2008.vcproj", "{7935B998-C713-42AE-8F6D-9FF9080A1B1B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zip_lib", "zip_lib\zip_lib2008.vcproj", "{709278B8-C583-4BD8-90DE-4E4F35A3BD8B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCPU6502", "test\TestCPU6502\TestCPU6502-vs2008.vcproj", "{2CC8CA9F-E37E-41A4-BFAD-77E54EB783A2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yaml", "libyaml\win32\yaml2008.vcproj", "{5CE8051A-3F0C-4C39-B1C0-3338E48BA60F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDebugger", "test\TestDebugger\TestDebugger.vcproj", "{0AE28CF0-15B0-4DDF-B6D2-4562D8E456BB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1DA0C491-B5F4-4EC8-B1D2-CF6BE635DADC}.Debug|Win32.ActiveCfg = Debug|Win32
{1DA0C491-B5F4-4EC8-B1D2-CF6BE635DADC}.Debug|Win32.Build.0 = Debug|Win32
{1DA0C491-B5F4-4EC8-B1D2-CF6BE635DADC}.Release|Win32.ActiveCfg = Release|Win32
{1DA0C491-B5F4-4EC8-B1D2-CF6BE635DADC}.Release|Win32.Build.0 = Release|Win32
{7935B998-C713-42AE-8F6D-9FF9080A1B1B}.Debug|Win32.ActiveCfg = Debug|Win32
{7935B998-C713-42AE-8F6D-9FF9080A1B1B}.Debug|Win32.Build.0 = Debug|Win32
{7935B998-C713-42AE-8F6D-9FF9080A1B1B}.Release|Win32.ActiveCfg = Release|Win32
{7935B998-C713-42AE-8F6D-9FF9080A1B1B}.Release|Win32.Build.0 = Release|Win32
{709278B8-C583-4BD8-90DE-4E4F35A3BD8B}.Debug|Win32.ActiveCfg = Debug|Win32
{709278B8-C583-4BD8-90DE-4E4F35A3BD8B}.Debug|Win32.Build.0 = Debug|Win32
{709278B8-C583-4BD8-90DE-4E4F35A3BD8B}.Release|Win32.ActiveCfg = Release|Win32
{709278B8-C583-4BD8-90DE-4E4F35A3BD8B}.Release|Win32.Build.0 = Release|Win32
{2CC8CA9F-E37E-41A4-BFAD-77E54EB783A2}.Debug|Win32.ActiveCfg = Debug|Win32
{2CC8CA9F-E37E-41A4-BFAD-77E54EB783A2}.Debug|Win32.Build.0 = Debug|Win32
{2CC8CA9F-E37E-41A4-BFAD-77E54EB783A2}.Release|Win32.ActiveCfg = Release|Win32
{2CC8CA9F-E37E-41A4-BFAD-77E54EB783A2}.Release|Win32.Build.0 = Release|Win32
{5CE8051A-3F0C-4C39-B1C0-3338E48BA60F}.Debug|Win32.ActiveCfg = Debug|Win32
{5CE8051A-3F0C-4C39-B1C0-3338E48BA60F}.Debug|Win32.Build.0 = Debug|Win32
{5CE8051A-3F0C-4C39-B1C0-3338E48BA60F}.Release|Win32.ActiveCfg = Release|Win32
{5CE8051A-3F0C-4C39-B1C0-3338E48BA60F}.Release|Win32.Build.0 = Release|Win32
{0AE28CF0-15B0-4DDF-B6D2-4562D8E456BB}.Debug|Win32.ActiveCfg = Debug|Win32
{0AE28CF0-15B0-4DDF-B6D2-4562D8E456BB}.Debug|Win32.Build.0 = Debug|Win32
{0AE28CF0-15B0-4DDF-B6D2-4562D8E456BB}.Release|Win32.ActiveCfg = Release|Win32
{0AE28CF0-15B0-4DDF-B6D2-4562D8E456BB}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load diff

View file

@ -1,99 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29201.188
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AppleWin", "AppleWinExpress2019.vcxproj", "{0A960136-A00A-4D4B-805F-664D9950D2CA}"
ProjectSection(ProjectDependencies) = postProject
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45} = {CF5A49BF-62A5-41BB-B10C-F34D556A7A45}
{0212E0DF-06DA-4080-BD1D-F3B01599F70F} = {0212E0DF-06DA-4080-BD1D-F3B01599F70F}
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D} = {509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E} = {9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zip_lib", "zip_lib\zip_lib2019.vcxproj", "{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib-Express2019.vcxproj", "{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yaml", "libyaml\win32\yaml2019.vcxproj", "{0212E0DF-06DA-4080-BD1D-F3B01599F70F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCPU6502", "test\TestCPU6502\TestCPU6502-vs2019.vcxproj", "{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug NoDX|Win32 = Debug NoDX|Win32
Debug v141_xp|Win32 = Debug v141_xp|Win32
Debug|Win32 = Debug|Win32
Release NoDX|Win32 = Release NoDX|Win32
Release v141_xp|Win32 = Release v141_xp|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Debug NoDX|Win32.ActiveCfg = Debug NoDX|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Debug NoDX|Win32.Build.0 = Debug NoDX|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Debug v141_xp|Win32.ActiveCfg = Debug v141_xp|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Debug v141_xp|Win32.Build.0 = Debug v141_xp|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Debug|Win32.ActiveCfg = Debug|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Debug|Win32.Build.0 = Debug|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Release NoDX|Win32.ActiveCfg = Release NoDX|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Release NoDX|Win32.Build.0 = Release NoDX|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Release v141_xp|Win32.ActiveCfg = Release v141_xp|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Release v141_xp|Win32.Build.0 = Release v141_xp|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Release|Win32.ActiveCfg = Release|Win32
{0A960136-A00A-4D4B-805F-664D9950D2CA}.Release|Win32.Build.0 = Release|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Debug NoDX|Win32.ActiveCfg = Debug|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Debug NoDX|Win32.Build.0 = Debug|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Debug v141_xp|Win32.ActiveCfg = Debug v141_xp|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Debug v141_xp|Win32.Build.0 = Debug v141_xp|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Debug|Win32.ActiveCfg = Debug|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Debug|Win32.Build.0 = Debug|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Release NoDX|Win32.ActiveCfg = Release|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Release NoDX|Win32.Build.0 = Release|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Release v141_xp|Win32.ActiveCfg = Release v141_xp|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Release v141_xp|Win32.Build.0 = Release v141_xp|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Release|Win32.ActiveCfg = Release|Win32
{509739E7-0AF3-4C09-A1A9-F0B1BC31B39D}.Release|Win32.Build.0 = Release|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Debug NoDX|Win32.ActiveCfg = Debug|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Debug NoDX|Win32.Build.0 = Debug|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Debug v141_xp|Win32.ActiveCfg = Debug v141_xp|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Debug v141_xp|Win32.Build.0 = Debug v141_xp|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Debug|Win32.ActiveCfg = Debug|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Debug|Win32.Build.0 = Debug|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Release NoDX|Win32.ActiveCfg = Release|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Release NoDX|Win32.Build.0 = Release|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Release v141_xp|Win32.ActiveCfg = Release v141_xp|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Release v141_xp|Win32.Build.0 = Release v141_xp|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Release|Win32.ActiveCfg = Release|Win32
{9B32A6E7-1237-4F36-8903-A3FD51DF9C4E}.Release|Win32.Build.0 = Release|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Debug NoDX|Win32.ActiveCfg = Debug|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Debug NoDX|Win32.Build.0 = Debug|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Debug v141_xp|Win32.ActiveCfg = Debug v141_xp|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Debug v141_xp|Win32.Build.0 = Debug v141_xp|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Debug|Win32.ActiveCfg = Debug|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Debug|Win32.Build.0 = Debug|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Release NoDX|Win32.ActiveCfg = Release|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Release NoDX|Win32.Build.0 = Release|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Release v141_xp|Win32.ActiveCfg = Release v141_xp|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Release v141_xp|Win32.Build.0 = Release v141_xp|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Release|Win32.ActiveCfg = Release|Win32
{0212E0DF-06DA-4080-BD1D-F3B01599F70F}.Release|Win32.Build.0 = Release|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Debug NoDX|Win32.ActiveCfg = Debug|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Debug NoDX|Win32.Build.0 = Debug|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Debug v141_xp|Win32.ActiveCfg = Debug v141_xp|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Debug v141_xp|Win32.Build.0 = Debug v141_xp|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Debug|Win32.ActiveCfg = Debug|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Debug|Win32.Build.0 = Debug|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Release NoDX|Win32.ActiveCfg = Release|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Release NoDX|Win32.Build.0 = Release|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Release v141_xp|Win32.ActiveCfg = Release v141_xp|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Release v141_xp|Win32.Build.0 = Release v141_xp|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Release|Win32.ActiveCfg = Release|Win32
{CF5A49BF-62A5-41BB-B10C-F34D556A7A45}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6D58FFC0-8F43-4085-967C-EDE80FB2808C}
EndGlobalSection
EndGlobal

View file

@ -1,639 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug NoDX|Win32">
<Configuration>Debug NoDX</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug v141_xp|Win32">
<Configuration>Debug v141_xp</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release NoDX|Win32">
<Configuration>Release NoDX</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release v141_xp|Win32">
<Configuration>Release v141_xp</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource\resource.h" />
<ClInclude Include="resource\winres.h" />
<ClInclude Include="source\6522.h" />
<ClInclude Include="source\6821.h" />
<ClInclude Include="source\AY8910.h" />
<ClInclude Include="source\Card.h" />
<ClInclude Include="source\CardManager.h" />
<ClInclude Include="source\CmdLine.h" />
<ClInclude Include="source\Common.h" />
<ClInclude Include="source\CommonVICE\6510core.h" />
<ClInclude Include="source\CommonVICE\interrupt.h" />
<ClInclude Include="source\CommonVICE\mem.h" />
<ClInclude Include="source\CommonVICE\types.h" />
<ClInclude Include="source\Configuration\About.h" />
<ClInclude Include="source\Configuration\Config.h" />
<ClInclude Include="source\Configuration\IPropertySheet.h" />
<ClInclude Include="source\Configuration\IPropertySheetPage.h" />
<ClInclude Include="source\Configuration\PageAdvanced.h" />
<ClInclude Include="source\Configuration\PageConfig.h" />
<ClInclude Include="source\Configuration\PageConfigTfe.h" />
<ClInclude Include="source\Configuration\PageDisk.h" />
<ClInclude Include="source\Configuration\PageInput.h" />
<ClInclude Include="source\Configuration\PageSound.h" />
<ClInclude Include="source\Configuration\PropertySheet.h" />
<ClInclude Include="source\Configuration\PropertySheetDefs.h" />
<ClInclude Include="source\Configuration\PropertySheetHelper.h" />
<ClInclude Include="source\Core.h" />
<ClInclude Include="source\CPU.h" />
<ClInclude Include="source\CPU\cpu6502.h" />
<ClInclude Include="source\CPU\cpu65C02.h" />
<ClInclude Include="source\Debugger\Debug.h" />
<ClInclude Include="source\Debugger\DebugDefs.h" />
<ClInclude Include="source\Debugger\Debugger_Assembler.h" />
<ClInclude Include="source\Debugger\Debugger_Color.h" />
<ClInclude Include="source\Debugger\Debugger_Console.h" />
<ClInclude Include="source\Debugger\Debugger_Disassembler.h" />
<ClInclude Include="source\Debugger\Debugger_DisassemblerData.h" />
<ClInclude Include="source\Debugger\Debugger_Display.h" />
<ClInclude Include="source\Debugger\Debugger_Help.h" />
<ClInclude Include="source\Debugger\Debugger_Parser.h" />
<ClInclude Include="source\Debugger\Debugger_Range.h" />
<ClInclude Include="source\Debugger\Debugger_Symbols.h" />
<ClInclude Include="source\Debugger\Debugger_Types.h" />
<ClInclude Include="source\Debugger\Debugger_Win32.h" />
<ClInclude Include="source\Debugger\Util_MemoryTextFile.h" />
<ClInclude Include="source\Debugger\Util_Text.h" />
<ClInclude Include="source\Disk.h" />
<ClInclude Include="source\Disk2CardManager.h" />
<ClInclude Include="source\DiskDefs.h" />
<ClInclude Include="source\DiskFormatTrack.h" />
<ClInclude Include="source\DiskImage.h" />
<ClInclude Include="source\DiskImageHelper.h" />
<ClInclude Include="source\DiskLog.h" />
<ClInclude Include="source\FourPlay.h" />
<ClInclude Include="source\FrameBase.h" />
<ClInclude Include="source\Harddisk.h" />
<ClInclude Include="source\Interface.h" />
<ClInclude Include="source\Joystick.h" />
<ClInclude Include="source\Keyboard.h" />
<ClInclude Include="source\LanguageCard.h" />
<ClInclude Include="source\Log.h" />
<ClInclude Include="source\Memory.h" />
<ClInclude Include="source\Mockingboard.h" />
<ClInclude Include="source\MouseInterface.h" />
<ClInclude Include="source\NoSlotClock.h" />
<ClInclude Include="source\NTSC.h" />
<ClInclude Include="source\NTSC_CharSet.h" />
<ClInclude Include="source\ParallelPrinter.h" />
<ClInclude Include="source\Pravets.h" />
<ClInclude Include="source\Registry.h" />
<ClInclude Include="source\RGBMonitor.h" />
<ClInclude Include="source\Riff.h" />
<ClInclude Include="source\SAM.h" />
<ClInclude Include="source\SaveState.h" />
<ClInclude Include="source\SaveState_Structs_common.h" />
<ClInclude Include="source\SaveState_Structs_v1.h" />
<ClInclude Include="source\SerialComms.h" />
<ClInclude Include="source\SNESMAX.h" />
<ClInclude Include="source\SoundCore.h" />
<ClInclude Include="source\Speaker.h" />
<ClInclude Include="source\Speech.h" />
<ClInclude Include="source\SSI263.h" />
<ClInclude Include="source\SSI263Phonemes.h" />
<ClInclude Include="source\StdAfx.h" />
<ClInclude Include="source\StrFormat.h" />
<ClInclude Include="source\SynchronousEventManager.h" />
<ClInclude Include="source\Tape.h" />
<ClInclude Include="source\Tfe\IPRaw.h" />
<ClInclude Include="source\Tfe\NetworkBackend.h" />
<ClInclude Include="source\Tfe\Bpf.h" />
<ClInclude Include="source\Tfe\Ip6_misc.h" />
<ClInclude Include="source\Tfe\Pcap.h" />
<ClInclude Include="source\Tfe\PCapBackend.h" />
<ClInclude Include="source\Tfe\tfearch.h" />
<ClInclude Include="source\Tfe\tfesupp.h" />
<ClInclude Include="source\Tfe\Uilib.h" />
<ClInclude Include="source\Uthernet1.h" />
<ClInclude Include="source\Uthernet2.h" />
<ClInclude Include="source\Utilities.h" />
<ClInclude Include="source\Video.h" />
<ClInclude Include="Source\VidHD.h" />
<ClInclude Include="source\W5100.h" />
<ClInclude Include="source\Windows\AppleWin.h" />
<ClInclude Include="source\Windows\DirectInput.h" />
<ClInclude Include="source\Windows\HookFilter.h" />
<ClInclude Include="source\Windows\Win32Frame.h" />
<ClInclude Include="source\YamlHelper.h" />
<ClInclude Include="source\z80emu.h" />
<ClInclude Include="source\Z80VICE\daa.h" />
<ClInclude Include="source\Z80VICE\z80.h" />
<ClInclude Include="source\Z80VICE\z80mem.h" />
<ClInclude Include="source\Z80VICE\z80regs.h" />
</ItemGroup>
<ItemGroup>
<Text Include="docs\CodingConventions.txt" />
<Text Include="docs\Debugger_Changelog.txt" />
<Text Include="docs\FAQ.txt" />
<Text Include="bin\History.txt" />
<Text Include="docs\ToDo.txt" />
<Text Include="docs\Video_Cleanup.txt" />
<Text Include="docs\Wishlist.txt" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="source\6522.cpp" />
<ClCompile Include="source\6821.cpp" />
<ClCompile Include="source\AY8910.cpp" />
<ClCompile Include="source\Card.cpp" />
<ClCompile Include="source\CardManager.cpp" />
<ClCompile Include="source\CmdLine.cpp" />
<ClCompile Include="source\Configuration\About.cpp" />
<ClCompile Include="source\Configuration\PageAdvanced.cpp" />
<ClCompile Include="source\Configuration\PageConfig.cpp" />
<ClCompile Include="source\Configuration\PageConfigTfe.cpp" />
<ClCompile Include="source\Configuration\PageDisk.cpp" />
<ClCompile Include="source\Configuration\PageInput.cpp" />
<ClCompile Include="source\Configuration\PageSound.cpp" />
<ClCompile Include="source\Configuration\PropertySheet.cpp" />
<ClCompile Include="source\Configuration\PropertySheetHelper.cpp" />
<ClCompile Include="source\Core.cpp" />
<ClCompile Include="source\CPU.cpp" />
<ClCompile Include="source\Debugger\Debugger_Disassembler.cpp" />
<ClCompile Include="source\Debugger\Debugger_Win32.cpp" />
<ClCompile Include="source\Disk2CardManager.cpp" />
<ClCompile Include="source\FourPlay.cpp" />
<ClCompile Include="source\FrameBase.cpp" />
<ClCompile Include="source\RGBMonitor.cpp" />
<ClCompile Include="source\SAM.cpp" />
<ClCompile Include="source\Debugger\Debug.cpp" />
<ClCompile Include="source\Debugger\Debugger_Assembler.cpp" />
<ClCompile Include="source\Debugger\Debugger_Color.cpp" />
<ClCompile Include="source\Debugger\Debugger_Commands.cpp" />
<ClCompile Include="source\Debugger\Debugger_Console.cpp" />
<ClCompile Include="source\Debugger\Debugger_DisassemblerData.cpp" />
<ClCompile Include="source\Debugger\Debugger_Display.cpp" />
<ClCompile Include="source\Debugger\Debugger_Help.cpp" />
<ClCompile Include="source\Debugger\Debugger_Parser.cpp" />
<ClCompile Include="source\Debugger\Debugger_Range.cpp" />
<ClCompile Include="source\Debugger\Debugger_Symbols.cpp" />
<ClCompile Include="source\Debugger\Util_MemoryTextFile.cpp" />
<ClCompile Include="source\Disk.cpp" />
<ClCompile Include="source\DiskFormatTrack.cpp" />
<ClCompile Include="source\DiskImage.cpp" />
<ClCompile Include="source\DiskImageHelper.cpp" />
<ClCompile Include="source\Harddisk.cpp" />
<ClCompile Include="source\Joystick.cpp" />
<ClCompile Include="source\Keyboard.cpp" />
<ClCompile Include="source\LanguageCard.cpp" />
<ClCompile Include="source\Log.cpp" />
<ClCompile Include="source\Memory.cpp" />
<ClCompile Include="source\Mockingboard.cpp" />
<ClCompile Include="source\MouseInterface.cpp" />
<ClCompile Include="source\NoSlotClock.cpp" />
<ClCompile Include="source\NTSC.cpp" />
<ClCompile Include="source\NTSC_CharSet.cpp" />
<ClCompile Include="source\ParallelPrinter.cpp" />
<ClCompile Include="source\Pravets.cpp" />
<ClCompile Include="source\Registry.cpp" />
<ClCompile Include="source\Riff.cpp" />
<ClCompile Include="source\SaveState.cpp" />
<ClCompile Include="source\SerialComms.cpp" />
<ClCompile Include="source\SNESMAX.cpp" />
<ClCompile Include="source\SoundCore.cpp" />
<ClCompile Include="source\Speaker.cpp" />
<ClCompile Include="source\Speech.cpp" />
<ClCompile Include="source\SSI263.cpp" />
<ClCompile Include="source\StdAfx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="source\StrFormat.cpp" />
<ClCompile Include="source\SynchronousEventManager.cpp" />
<ClCompile Include="source\Tape.cpp" />
<ClCompile Include="source\Tfe\IPRaw.cpp" />
<ClCompile Include="source\Tfe\NetworkBackend.cpp" />
<ClCompile Include="source\Tfe\PCapBackend.cpp" />
<ClCompile Include="source\Tfe\tfearch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="source\Tfe\tfesupp.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="source\Tfe\Uilib.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="source\Uthernet1.cpp" />
<ClCompile Include="source\Uthernet2.cpp" />
<ClCompile Include="source\Utilities.cpp" />
<ClCompile Include="source\Video.cpp" />
<ClCompile Include="Source\VidHD.cpp" />
<ClCompile Include="source\Windows\AppleWin.cpp" />
<ClCompile Include="source\Windows\DirectInput.cpp" />
<ClCompile Include="source\Windows\HookFilter.cpp" />
<ClCompile Include="source\Windows\Win32Frame.cpp" />
<ClCompile Include="source\Windows\WinFrame.cpp" />
<ClCompile Include="source\YamlHelper.cpp" />
<ClCompile Include="source\z80emu.cpp" />
<ClCompile Include="source\Z80VICE\daa.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="source\Z80VICE\z80.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="source\Z80VICE\z80mem.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="resource\Apple2.rom" />
<None Include="resource\Apple2e.rom" />
<None Include="resource\Apple2e_Enhanced.rom" />
<None Include="resource\Apple2_JPlus.rom" />
<None Include="resource\Apple2_JPlus_Video.rom" />
<None Include="resource\Apple2_Plus.rom" />
<None Include="resource\Base64A.rom" />
<None Include="resource\Base64A_German_Video.rom" />
<None Include="resource\Disk2-13sector.rom" />
<None Include="resource\DISK2.rom" />
<None Include="resource\Freezes_Non-autostart_F8_Rom.rom" />
<None Include="resource\Hddrvr.bin" />
<None Include="resource\Mockingboard-D.rom" />
<None Include="resource\MouseInterface.rom" />
<None Include="resource\Parallel.rom" />
<None Include="resource\PRAVETS82.ROM" />
<None Include="resource\PRAVETS8C.ROM" />
<None Include="resource\PRAVETS8M.ROM" />
<None Include="resource\SSC.rom" />
<None Include="resource\ThunderClockPlus.rom" />
<None Include="resource\TK3000e.rom" />
<None Include="resource\TKClock.rom" />
<None Include="source\CPU\cpu_general.inl" />
<None Include="source\CPU\cpu_instructions.inl" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="zip_lib\zip_lib2019.vcxproj">
<Project>{509739e7-0af3-4c09-a1a9-f0b1bc31b39d}</Project>
</ProjectReference>
<ProjectReference Include="zlib\zlib-Express2019.vcxproj">
<Project>{9b32a6e7-1237-4f36-8903-a3fd51df9c4e}</Project>
</ProjectReference>
<ProjectReference Include="libyaml\win32\yaml2019.vcxproj">
<Project>{0212e0df-06da-4080-bd1d-f3b01599f70f}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Image Include="resource\Applewin.bmp" />
<Image Include="resource\APPLEWIN.ICO" />
<Image Include="resource\ApplewinLogo.bmp" />
<Image Include="resource\CAPSOFF.BMP" />
<Image Include="resource\CAPSOFF_P8.BMP" />
<Image Include="resource\CAPSON.BMP" />
<Image Include="resource\CAPSON_P8.BMP" />
<Image Include="resource\CHARSET4.BMP" />
<Image Include="resource\CHARSET82.bmp" />
<Image Include="resource\CHARSET8C.bmp" />
<Image Include="resource\CHARSET8M.bmp" />
<Image Include="resource\COLOR.BMP" />
<Image Include="resource\DEBUG.BMP" />
<Image Include="resource\Debug_Font.bmp" />
<Image Include="resource\DISK.ICO" />
<Image Include="resource\DISKOFF.BMP" />
<Image Include="resource\DISKPROT.BMP" />
<Image Include="resource\DISKREAD.BMP" />
<Image Include="resource\DISKWRIT.BMP" />
<Image Include="resource\DRIVE1.BMP" />
<Image Include="resource\DRIVE2.BMP" />
<Image Include="resource\DriveSwap.bmp" />
<Image Include="resource\FULLSCR.BMP" />
<Image Include="resource\HELP.BMP" />
<Image Include="resource\LATOFF.BMP" />
<Image Include="resource\LATON.BMP" />
<Image Include="resource\LED_CAPS_OFF.BMP" />
<Image Include="resource\LED_CAPS_OFF_LAT.BMP" />
<Image Include="resource\LED_CAPS_OFF_P8.BMP" />
<Image Include="resource\LED_CAPS_ON.BMP" />
<Image Include="resource\LED_CAPS_ON_LAT.BMP" />
<Image Include="resource\LED_CAPS_ON_P8.BMP" />
<Image Include="resource\RUN.BMP" />
<Image Include="resource\RUN3000E.bmp" />
<Image Include="resource\RUNBASE64A.BMP" />
<Image Include="resource\RUNP.BMP" />
<Image Include="resource\SETUP.BMP" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="resource\Applewin.rc" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0A960136-A00A-4D4B-805F-664D9950D2CA}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>AppleWin</RootNamespace>
<ProjectName>AppleWin</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141_xp</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;NO_DSHOW_STRSAFE;YAML_DECLARE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>source;source\cpu;source\debugger;zlib;zip_lib;libyaml\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>iphlpapi.lib;htmlhelp.lib;comctl32.lib;winmm.lib;dsound.lib;dxguid.lib;version.lib;strmiids.lib;dinput8.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;comdlg32.lib;ole32.lib;wsock32.lib;shlwapi.lib;ddraw.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalManifestDependencies>"type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"</AdditionalManifestDependencies>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
</Link>
<PreBuildEvent>
<Command>.\Debug\TestCPU6502.exe</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Performing unit-test: TestCPU6502</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug v141_xp|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;NO_DSHOW_STRSAFE;YAML_DECLARE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>source;source\cpu;source\debugger;zlib;zip_lib;libyaml\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<DisableSpecificWarnings>4995</DisableSpecificWarnings>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>iphlpapi.lib;htmlhelp.lib;comctl32.lib;winmm.lib;dsound.lib;ddraw_lib\x86\dxguid.lib;version.lib;strmiids.lib;dinput8.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;comdlg32.lib;ole32.lib;wsock32.lib;shlwapi.lib;ddraw_lib\x86\ddraw.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalManifestDependencies>"type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"</AdditionalManifestDependencies>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
</Link>
<PreBuildEvent>
<Command>echo Performing unit-test: TestCPU6502
.\Debug\TestCPU6502.exe</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Performing unit-test: TestCPU6502</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug NoDX|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;NO_DSHOW_STRSAFE;NO_DIRECT_X;YAML_DECLARE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>source;source\cpu;source\debugger;zlib;zip_lib;libyaml\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>iphlpapi.lib;htmlhelp.lib;comctl32.lib;winmm.lib;dsound.lib;dxguid.lib;version.lib;strmiids.lib;dinput8.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;comdlg32.lib;ole32.lib;wsock32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalManifestDependencies>"type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"</AdditionalManifestDependencies>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
</Link>
<PreBuildEvent>
<Command>.\Debug\TestCPU6502.exe</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Performing unit-test: TestCPU6502</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;NO_DSHOW_STRSAFE;YAML_DECLARE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>source;source\cpu;source\debugger;zlib;zip_lib;libyaml\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>iphlpapi.lib;htmlhelp.lib;comctl32.lib;winmm.lib;dsound.lib;dxguid.lib;version.lib;strmiids.lib;dinput8.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;comdlg32.lib;ole32.lib;wsock32.lib;shlwapi.lib;ddraw.lib;%(AdditionalDependencies)</AdditionalDependencies>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<AdditionalManifestDependencies>"type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"</AdditionalManifestDependencies>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
</Link>
<PreBuildEvent>
<Command>.\Release\TestCPU6502.exe</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Performing unit-test: TestCPU6502</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release v141_xp|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;NO_DSHOW_STRSAFE;YAML_DECLARE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>source;source\cpu;source\debugger;zlib;zip_lib;libyaml\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4995</DisableSpecificWarnings>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>iphlpapi.lib;htmlhelp.lib;comctl32.lib;winmm.lib;dsound.lib;ddraw_lib\x86\dxguid.lib;version.lib;strmiids.lib;dinput8.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;comdlg32.lib;ole32.lib;wsock32.lib;shlwapi.lib;ddraw_lib\x86\ddraw.lib;%(AdditionalDependencies)</AdditionalDependencies>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<AdditionalManifestDependencies>"type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"</AdditionalManifestDependencies>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
</Link>
<PreBuildEvent>
<Command>echo Performing unit-test: TestCPU6502
.\Release\TestCPU6502.exe</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Performing unit-test: TestCPU6502</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release NoDX|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;NO_DSHOW_STRSAFE;NO_DIRECT_X;YAML_DECLARE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>source;source\cpu;source\debugger;zlib;zip_lib;libyaml\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>iphlpapi.lib;htmlhelp.lib;comctl32.lib;winmm.lib;dsound.lib;dxguid.lib;version.lib;strmiids.lib;dinput8.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;comdlg32.lib;ole32.lib;wsock32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<AdditionalManifestDependencies>"type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"</AdditionalManifestDependencies>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
</Link>
<PreBuildEvent>
<Command>.\Release\TestCPU6502.exe</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Performing unit-test: TestCPU6502</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -1,864 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="source\6821.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\About.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\AY8910.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\CPU.cpp">
<Filter>Source Files\CPU</Filter>
</ClCompile>
<ClCompile Include="source\Z80VICE\daa.cpp">
<Filter>Source Files\Z80VICE</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debug.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Assembler.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Color.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Commands.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Console.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_DisassemblerData.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Display.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Help.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Parser.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Range.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Symbols.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Disk.cpp">
<Filter>Source Files\Disk</Filter>
</ClCompile>
<ClCompile Include="source\DiskFormatTrack.cpp">
<Filter>Source Files\Disk</Filter>
</ClCompile>
<ClCompile Include="source\DiskImage.cpp">
<Filter>Source Files\Disk</Filter>
</ClCompile>
<ClCompile Include="source\DiskImageHelper.cpp">
<Filter>Source Files\Disk</Filter>
</ClCompile>
<ClCompile Include="source\Harddisk.cpp">
<Filter>Source Files\Disk</Filter>
</ClCompile>
<ClCompile Include="source\Joystick.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Keyboard.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\LanguageCard.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Log.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Memory.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Mockingboard.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\MouseInterface.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\NoSlotClock.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PageAdvanced.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PageConfig.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PageConfigTfe.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PageDisk.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PageInput.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PageSound.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\ParallelPrinter.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PropertySheet.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\Configuration\PropertySheetHelper.cpp">
<Filter>Source Files\Configuration</Filter>
</ClCompile>
<ClCompile Include="source\Registry.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Riff.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\SaveState.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\SerialComms.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\SoundCore.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Speaker.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Speech.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\StdAfx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\Tape.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Tfe\tfearch.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
<ClCompile Include="source\Tfe\tfesupp.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
<ClCompile Include="source\Tfe\Uilib.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
<ClCompile Include="source\Video.cpp">
<Filter>Source Files\Video</Filter>
</ClCompile>
<ClCompile Include="source\Z80VICE\z80.cpp">
<Filter>Source Files\Z80VICE</Filter>
</ClCompile>
<ClCompile Include="source\Z80VICE\z80mem.cpp">
<Filter>Source Files\Z80VICE</Filter>
</ClCompile>
<ClCompile Include="source\z80emu.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Util_MemoryTextFile.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\NTSC.cpp">
<Filter>Source Files\Video</Filter>
</ClCompile>
<ClCompile Include="source\NTSC_CharSet.cpp">
<Filter>Source Files\Video</Filter>
</ClCompile>
<ClCompile Include="source\Pravets.cpp">
<Filter>Source Files\Model</Filter>
</ClCompile>
<ClCompile Include="source\SAM.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\YamlHelper.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\RGBMonitor.cpp">
<Filter>Source Files\Video</Filter>
</ClCompile>
<ClCompile Include="source\CardManager.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Disk2CardManager.cpp">
<Filter>Source Files\Disk</Filter>
</ClCompile>
<ClCompile Include="source\SynchronousEventManager.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Windows\DirectInput.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="source\Windows\WinFrame.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="source\Core.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\Utilities.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\Windows\AppleWin.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="source\CmdLine.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\FrameBase.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\Windows\Win32Frame.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="source\SSI263.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Disassembler.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Debugger\Debugger_Win32.cpp">
<Filter>Source Files\Debugger</Filter>
</ClCompile>
<ClCompile Include="source\Windows\HookFilter.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="source\FourPlay.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\SNESMAX.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\Card.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="Source\VidHD.cpp">
<Filter>Source Files\Video</Filter>
</ClCompile>
<ClCompile Include="source\6522.cpp">
<Filter>Source Files\Emulator</Filter>
</ClCompile>
<ClCompile Include="source\StrFormat.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\Uthernet1.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
<ClCompile Include="source\Tfe\NetworkBackend.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
<ClCompile Include="source\Tfe\PCapBackend.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
<ClCompile Include="source\Uthernet2.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
<ClCompile Include="source\Tfe\IPRaw.cpp">
<Filter>Source Files\Uthernet</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="source\CommonVICE\6510core.h">
<Filter>Source Files\CommonVICE</Filter>
</ClInclude>
<ClInclude Include="source\6821.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\About.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\AY8910.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\Bpf.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Common.h">
<Filter>Source Files\_Headers</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\Config.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\CPU.h">
<Filter>Source Files\CPU</Filter>
</ClInclude>
<ClInclude Include="source\CPU\cpu6502.h">
<Filter>Source Files\CPU</Filter>
</ClInclude>
<ClInclude Include="source\CPU\cpu65C02.h">
<Filter>Source Files\CPU</Filter>
</ClInclude>
<ClInclude Include="source\Z80VICE\daa.h">
<Filter>Source Files\Z80VICE</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Types.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debug.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Assembler.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Color.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Console.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_DisassemblerData.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Display.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Help.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Parser.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Range.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Symbols.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Disk.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\DiskFormatTrack.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\DiskImage.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\DiskImageHelper.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\DiskLog.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\Harddisk.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\CommonVICE\interrupt.h">
<Filter>Source Files\CommonVICE</Filter>
</ClInclude>
<ClInclude Include="source\CommonVICE\mem.h">
<Filter>Source Files\CommonVICE</Filter>
</ClInclude>
<ClInclude Include="source\CommonVICE\types.h">
<Filter>Source Files\CommonVICE</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\Ip6_misc.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\IPropertySheet.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\IPropertySheetPage.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Joystick.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Keyboard.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\LanguageCard.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Log.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Memory.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Mockingboard.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\MouseInterface.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\NoSlotClock.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PageAdvanced.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PageConfig.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PageConfigTfe.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PageDisk.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PageInput.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PageSound.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\ParallelPrinter.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\Pcap.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PropertySheet.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PropertySheetDefs.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Configuration\PropertySheetHelper.h">
<Filter>Source Files\Configuration</Filter>
</ClInclude>
<ClInclude Include="source\Registry.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="resource\resource.h">
<Filter>Source Files\_Headers</Filter>
</ClInclude>
<ClInclude Include="source\Riff.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\SaveState.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\SerialComms.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\SoundCore.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Speaker.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Speech.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\SSI263Phonemes.h">
<Filter>Source Files\_Headers</Filter>
</ClInclude>
<ClInclude Include="source\StdAfx.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="source\Tape.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\tfearch.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\tfesupp.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\Uilib.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Video.h">
<Filter>Source Files\Video</Filter>
</ClInclude>
<ClInclude Include="resource\winres.h">
<Filter>Resource Files</Filter>
</ClInclude>
<ClInclude Include="source\Z80VICE\z80.h">
<Filter>Source Files\Z80VICE</Filter>
</ClInclude>
<ClInclude Include="source\Z80VICE\z80mem.h">
<Filter>Source Files\Z80VICE</Filter>
</ClInclude>
<ClInclude Include="source\Z80VICE\z80regs.h">
<Filter>Source Files\Z80VICE</Filter>
</ClInclude>
<ClInclude Include="source\z80emu.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\DebugDefs.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Util_MemoryTextFile.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Util_Text.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\DiskDefs.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\NTSC.h">
<Filter>Source Files\Video</Filter>
</ClInclude>
<ClInclude Include="source\NTSC_CharSet.h">
<Filter>Source Files\Video</Filter>
</ClInclude>
<ClInclude Include="source\Pravets.h">
<Filter>Source Files\Model</Filter>
</ClInclude>
<ClInclude Include="source\SAM.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\YamlHelper.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\SaveState_Structs_common.h">
<Filter>Source Files\_Headers</Filter>
</ClInclude>
<ClInclude Include="source\SaveState_Structs_v1.h">
<Filter>Source Files\_Headers</Filter>
</ClInclude>
<ClInclude Include="source\RGBMonitor.h">
<Filter>Source Files\Video</Filter>
</ClInclude>
<ClInclude Include="source\CardManager.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Disk2CardManager.h">
<Filter>Source Files\Disk</Filter>
</ClInclude>
<ClInclude Include="source\Card.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\SynchronousEventManager.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Windows\DirectInput.h">
<Filter>Source Files\Windows</Filter>
</ClInclude>
<ClInclude Include="source\Core.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="source\Utilities.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="source\Windows\AppleWin.h">
<Filter>Source Files\Windows</Filter>
</ClInclude>
<ClInclude Include="source\CmdLine.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="source\Interface.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="source\FrameBase.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="source\Windows\Win32Frame.h">
<Filter>Source Files\Windows</Filter>
</ClInclude>
<ClInclude Include="source\SSI263.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Disassembler.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Debugger\Debugger_Win32.h">
<Filter>Source Files\Debugger</Filter>
</ClInclude>
<ClInclude Include="source\Windows\HookFilter.h">
<Filter>Source Files\Windows</Filter>
</ClInclude>
<ClInclude Include="source\FourPlay.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\SNESMAX.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="Source\VidHD.h">
<Filter>Source Files\Video</Filter>
</ClInclude>
<ClInclude Include="source\6522.h">
<Filter>Source Files\Emulator</Filter>
</ClInclude>
<ClInclude Include="source\StrFormat.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="source\Uthernet1.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\NetworkBackend.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\PCapBackend.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\W5100.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Uthernet2.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
<ClInclude Include="source\Tfe\IPRaw.h">
<Filter>Source Files\Uthernet</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Image Include="resource\Applewin.bmp">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\APPLEWIN.ICO">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CAPSOFF.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CAPSOFF_P8.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CAPSON.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CAPSON_P8.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CHARSET4.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CHARSET8C.bmp">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CHARSET8M.bmp">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\CHARSET82.bmp">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\COLOR.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DEBUG.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\Debug_Font.bmp">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DISK.ICO">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\FULLSCR.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\HELP.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LATOFF.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LATON.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LED_CAPS_OFF.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LED_CAPS_OFF_LAT.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LED_CAPS_OFF_P8.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LED_CAPS_ON.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LED_CAPS_ON_LAT.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\LED_CAPS_ON_P8.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DISKOFF.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DISKPROT.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DISKREAD.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DISKWRIT.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DRIVE1.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DRIVE2.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\DriveSwap.bmp">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\RUN.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\RUNP.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\SETUP.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\RUN3000E.bmp">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\RUNBASE64A.BMP">
<Filter>Resource Files</Filter>
</Image>
<Image Include="resource\ApplewinLogo.bmp">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<None Include="resource\Apple2.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Apple2_Plus.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Apple2e.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Apple2e_Enhanced.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="source\CPU\cpu_general.inl">
<Filter>Source Files\CPU</Filter>
</None>
<None Include="source\CPU\cpu_instructions.inl">
<Filter>Source Files\CPU</Filter>
</None>
<None Include="resource\DISK2.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Freezes_Non-autostart_F8_Rom.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Hddrvr.bin">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Mockingboard-D.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\MouseInterface.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Parallel.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\PRAVETS8C.ROM">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\PRAVETS8M.ROM">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\PRAVETS82.ROM">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\SSC.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\ThunderClockPlus.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\TK3000e.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\TKClock.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Base64A.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Base64A_German_Video.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Apple2_JPlus.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Apple2_JPlus_Video.rom">
<Filter>Resource Files</Filter>
</None>
<None Include="resource\Disk2-13sector.rom">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
<ItemGroup>
<Text Include="docs\CodingConventions.txt">
<Filter>Docs</Filter>
</Text>
<Text Include="docs\Debugger_Changelog.txt">
<Filter>Docs</Filter>
</Text>
<Text Include="docs\FAQ.txt">
<Filter>Docs</Filter>
</Text>
<Text Include="docs\ToDo.txt">
<Filter>Docs</Filter>
</Text>
<Text Include="docs\Video_Cleanup.txt">
<Filter>Docs</Filter>
</Text>
<Text Include="docs\Wishlist.txt">
<Filter>Docs</Filter>
</Text>
<Text Include="bin\History.txt" />
</ItemGroup>
<ItemGroup>
<Filter Include="Docs">
<UniqueIdentifier>{88e8853b-7cec-4a16-9dd9-5a2b96bf3c8b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{c8f186d6-7988-4d45-87c5-d9ea62c75953}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\_Headers">
<UniqueIdentifier>{fa2685fb-1686-4525-9ac1-bcca3310c473}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\CommonVICE">
<UniqueIdentifier>{8578fca7-e2e4-488a-995e-bc1fd1c4286e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Configuration">
<UniqueIdentifier>{dd629946-2094-409f-83a7-791ceff4bec2}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\CPU">
<UniqueIdentifier>{30a9b810-6ebd-4505-a45d-6ed212c3ba5a}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Debugger">
<UniqueIdentifier>{66471c82-8e9b-4c65-9514-600cfbd2d4c1}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Disk">
<UniqueIdentifier>{6a0a220b-e39c-486c-9f04-828b4ba6ace2}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Emulator">
<UniqueIdentifier>{6b2abcf9-39f7-4b19-ab2a-bab66c3ed4bd}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Z80VICE">
<UniqueIdentifier>{ea6eab89-9568-4f06-99e7-5d1fe99a8578}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Uthernet">
<UniqueIdentifier>{8ea2437f-ac40-4ef6-9b68-7f5244480457}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Video">
<UniqueIdentifier>{f535a998-5bc0-43a6-a96e-65918c92b8fc}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{b5c6889e-727d-4339-96c8-e4284e1d6e0f}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Model">
<UniqueIdentifier>{15b450e4-f89f-4d80-9c44-48b32f33f3e3}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Windows">
<UniqueIdentifier>{95d0abc3-4007-4eb0-8222-4579b565de23}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="resource\Applewin.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View file

@ -1,10 +0,0 @@
rem Commands to build AppleWin on travis
setlocal
choco install visualstudio2019community
choco install visualstudio2019-workload-nativedesktop
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsMSBuildCmd.bat"
MSBuild.exe /p:Configuration=Release AppleWinExpress2019.sln

View file

@ -1,94 +0,0 @@
cmake_minimum_required(VERSION 3.13)
project(applewin HOMEPAGE_URL "https://github.com/audetto/AppleWin")
option(BUILD_APPLEN "build ncurses frontend")
option(BUILD_QAPPLE "build Qt5 frontend")
option(BUILD_SA2 "build SDL2 frontend")
option(BUILD_LIBRETRO "build libretro core")
if (NOT (BUILD_APPLEN OR BUILD_QAPPLE OR BUILD_SA2 OR BUILD_LIBRETRO))
message(NOTICE "Building everything by default")
set(BUILD_APPLEN ON)
set(BUILD_QAPPLE ON)
set(BUILD_SA2 ON)
set(BUILD_LIBRETRO ON)
endif()
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_compile_options(-Werror=return-type)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
add_compile_options(-Werror=format -Wno-error=format-overflow -Wno-error=format-truncation -Wno-psabi)
endif()
MESSAGE("CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
MESSAGE("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
MESSAGE("CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}")
MESSAGE("CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
MESSAGE("CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
# this only affects common2, the others are already build with fPIC by default
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
execute_process(COMMAND uname -n
OUTPUT_VARIABLE UNAME
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${UNAME} STREQUAL raspberrypi)
# it is too slow and might cause out of memory issues
# more forensic is required
MESSAGE(NOTICE "Raspberry Pi detected: IPO disabled")
else()
include(CheckIPOSupported)
check_ipo_supported()
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE)
endif()
include_directories(source)
add_subdirectory(source)
add_subdirectory(source/linux/libwindows)
add_subdirectory(test/TestCPU6502)
if (BUILD_LIBRETRO OR BUILD_APPLEN OR BUILD_SA2)
add_subdirectory(source/frontends/common2)
endif()
if (BUILD_APPLEN)
add_subdirectory(source/frontends/ncurses)
endif()
if (BUILD_QAPPLE)
add_subdirectory(source/frontends/qt)
endif()
if (BUILD_SA2)
add_subdirectory(source/frontends/sdl)
endif()
if (BUILD_LIBRETRO)
add_subdirectory(source/frontends/libretro)
endif()
file(STRINGS resource/version.h VERSION_FILE LIMIT_COUNT 1)
string(REGEX MATCH "#define APPLEWIN_VERSION (.*)" _ ${VERSION_FILE})
string(REPLACE "," "." VERSION ${CMAKE_MATCH_1})
set(CPACK_PACKAGE_VERSION ${VERSION})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Apple ][ emulator for Linux")
set(CPACK_PACKAGE_CONTACT "audetto <mariofutire@gmail.com>")
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "ON")
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON")
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
set(CPACK_RPM_PACKAGE_GROUP "Applications/Emulators")
# RPM dependencies are automatic
include(CPack)

View file

@ -1,43 +0,0 @@
# Contributing to AppleWin
First of all, thanks for taking the time to contribute!
## How can I contribute?
### Reporting bugs
Before submitting a bug, search the existing issues to see if this bug has already been raised. If it has, then add a comment to this existing issue with your extra details.
If raising a new bug issue, then include the following details:
- AppleWin version
- OS version (eg. Windows 7-64, Windows 10 1909)
- A complete set of steps to reproduce the issue
Optionally:
- AppleWin log file (created using `applewin.exe -log`)
- Save-state file (.aws.yaml file) and any associated floppy or harddisk image files
- Screenshots
### Suggesting enhancements
Before submitting an enhancement, search the existing issues to see if this enhancement has already been raised. If it has, then add a comment to this existing issue with your extra details.
### Pull Requests
The process described here has several goals:
- Maintain AppleWin's quality
- Enforce a workable solution for AppleWin maintainers to review contributions
Please review the simple [Coding Conventions](https://github.com/AppleWin/AppleWin/blob/master/docs/CodingConventions.txt).
Smaller PRs are highly desirable, as they should be simpler to review and approve. Large changes are likely to be rejected or not get looked at (resulting in them going stale, and ultimately diverging further from the mainline repo).
For large changes being submitted for review, then it's HIGHLY recommended to split the large PR into smaller PRs, and submit them piece by piece. This means that no dependencies can exist between each smaller PR.
For a PR, don't make changes that are unrelated to the PR. These can be done in separate PRs.
Follow the coding style in the source file(s) that are being changed. Since this is a mature codebase, then bear in mind that different coding styles can exist in different source files.
For new (large) features, then link the PR back to an enhancement issue, where the proposed feature had been discussed with AppleWin maintainers first and justified using suitable use-cases. In this enhancement issue be sure to include a specification of the feature, and a design if necessary. Having a design (doc, diagrams) that explains the logic/algorithms/protocol etc will help in the long term maintenance of this feature.
When changing project metadata files (eg. .sln, .vcproj, .rc) then different versions of Visual Studio may decide to reorder or re-format other sections of the file. This can result in lots of churn in the file each time a trivial edit is made. So before committing the PR, check the difference, and if there's been lots of unnecessary changes then just make the required change using a non-Visual Studio editor.

View file

@ -1,340 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

339
LICENSE
View file

@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{description}
Copyright (C) {year} {fullname}
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
{signature of Ty Coon}, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View file

@ -1,53 +1 @@
AppleWin
========
#### Apple II emulator for Windows
AppleWin is a fully-featured emulator supporting different Apple II models and clones. A variety of peripheral cards and video display modes are supported (eg. NTSC, RGB); and there's an extensive built-in symbolic debugger.
Peripheral cards and add-on hardware supported:
- Mockingboard, Phasor and SAM sound cards
- Disk II interface for floppy disk drives
- Hard disk controller
- Super Serial Card (SSC)
- Parallel printer card
- Mouse interface
- Apple IIe Extended 80-Column Text Card and RamWorks III (8MB)
- RGB cards: Apple's Extended 80-Column Text/AppleColor Adaptor Card, 'Le Chat Mauve' Féline and Eve.
- CP/M SoftCard
- Uthernet I and II (ethernet cards)
- Language Card and Saturn 64/128K for Apple II/II+
- 4Play and SNES MAX joystick cards
- VidHD card (functionality limited to IIgs' Super Hi-Res video modes)
- No Slot Clock (NSC)
Download latest (stable) release: [AppleWin v1.29.16.0](https://github.com/AppleWin/AppleWin/releases/download/v1.29.16.0/AppleWin1.29.16.0.zip)
Release Notes: [v1.29.16.0](https://github.com/AppleWin/AppleWin/releases/tag/v1.29.16.0)
Building
========
To compile from source see:
* [docs/compiling.txt](https://github.com/AppleWin/AppleWin/blob/master/docs/compiling.txt)
Next Version
============
Experimental build: pending
Please report [new issues](https://github.com/AppleWin/AppleWin/issues/new)
Previous Versions
=================
Last version supporting Windows 2000:
* [AppleWin v1.29.16.0](https://github.com/AppleWin/AppleWin/releases/tag/v1.29.16.0)
Last version supporting Windows 98/ME:
* [AppleWin v1.25.0.4](https://github.com/AppleWin/AppleWin/releases/tag/v1.25.0.4)
This is a placeholder for actual documentation later

Binary file not shown.

View file

@ -1,912 +0,0 @@
; Apple 2 Applesoft Symbol Table
; Version 2 Cross-referenced/Sync'd with APPLE2E.SYM & A2_BASIC.SYM
; Version 1 by Michael Pohoreski - AppleWin Debugger Dev
; Based on Bob Sander-Cederlof's "S-C DocuMentor: Applesoft"
EBAF ABS
EA0E ADD.EXPONENTS
EA10 ADD.EXPONENTS.1
.01=EA1B .02=EA26 .03=EA28
ECD5 ADDACC
D998 ADDON
.01=D9A2
03F5 AMPERSAND.VECTOR
DF55 AND
A5 ARG
92 ARG.EXTENSION
AA ARG.SIGN
E11E ARRAY
.01=E12C .02=E169 .03=E16D .04=E179 .05=E188
94 ARYPNT
6B ARYTAB
E6E5 ASC
F09E ATN
.01=F0A6 .02=F0B4 .03=F0C7
E10C AYINT
DFF4 BADNAM
F3F6 BKGND
.01=F3FE
D393 BLTU
D39A BLTU2
.01=D3B7 .02=D3C3 .03=D3C7 .04=D3CE
E09A C.ZERO
F1D5 CALL
E597 CAT
.01=E5B7
0D CHARAC
E552 CHECK.BUMP
E55D CHECK.EXIT
E519 CHECK.SIMPLE.VARIABLE
E523 CHECK.VARIABLE
.01=E538 .02=E542
DEB8 CHKCLS
DEBE CHKCOM
D3D6 CHKMEM
DD6A CHKNUM
DEBB CHKOPN
DD6C CHKSTR
DD6D CHKVAL
.01=DD73 .02=DD74 .03=DD76
B1 CHRGET
B7 CHRGOT
E646 CHRSTR
D66A CLEAR
D66C CLEARC
DFC1 CMPDONE
.01=DFCA
F128 COLD.START
.01=F152 .02=F181 .03=F195 .04=F1B8
D842 COLON.
; Applesoft COLOR F24F
; ROM/Monitor COLOR 30
F24F A.COLOR
F47E COLOR.SHIFT
.01=F489
F6F6 COLORTBL
E74C COMBYTE
E89E COMPLEMENT.FAC
E8A4 COMPLEMENT.FAC.MANTISSA
F4CD CON.03
F508 CON.04
.01=F524 .02=F52A .03=F52C
F5B9 CON.1C
ED0A CON.99999999.9
ED0F CON.999999999
ED14 CON.BILLION
EE64 CON.HALF
EEDB CON.LOG.E
E93C CON.LOG.TWO
E937 CON.NEG.HALF
E913 CON.ONE
F06B CON.PI.DOUB
F066 CON.PI.HALF
EFA6 CON.RND.1
EFAA CON.RND.2
E92D CON.SQR.HALF
E932 CON.SQR.TWO
EA50 CON.TEN
E6FB CONINT
D896 CONT
.01=D8A1
D863 CONTROL.C.TYPED
.02=D86C
EB53 COPY.ARG.TO.FAC
EB63 COPY.FAC.TO.ARG.ROUNDED
EAE6 COPY.RESULT.INTO.FAC
EFEA COS
F5BA COSINE.TABLE
16 CPRMASK
89 CPRTYP
DAFB CRDO
75 CURLIN
F6 CURLSV
D995 DATA
13 DATAFLG
D9A3 DATAN
7B DATLIN
7D DATPTR
EE69 DECTBL
EE8D DECTBL.END
E313 DEF
F331 DEL
.01=F357 .02=F365 .03=F367 .04=F371 .05=F377 .06=F388
60 DEST
DFD9 DIM
10 DIMFLG
EA5E DIV
EA55 DIV10
DB35 DOSPC
9B DPFLG
F769 DRAW
F601 DRAW0
F605 DRAW1
.01=F626 .02=F630 .03=F63D .04=F648 .05=F658
F72D DRWPNT
.01=F741 .02=F747 .03=F766
8F DSCLEN
8C DSCPTR
9D DSCTMP
D870 END
D871 END2
.01=D888
D88A END4
.01=D893
0E ENDCHR
0F EOL.PNTR
DED0 EQUL
DE98 EQUOP
.01=DE9F
DB7F ERLIN
; 6B ERR.BADSUBS
; A3 ERR.BADTYPE
; D2 ERR.CANTCONT
DCDF ERR.EXTRA
; BF ERR.FRMCPX
; 95 ERR.ILLDIR
; 35 ERR.ILLQTY
; 4D ERR.MEMFULL
; 2A ERR.NODATA
; 00 ERR.NOFOR
; 16 ERR.NOGOSUB
; 45 ERR.OVERFLOW
; 78 ERR.REDIMD
DCEF ERR.REENTRY
; B0 ERR.STRLONG
; 10 ERR.SYNTAX
; E0 ERR.UNDEFFUNC
; 5A ERR.UNDEFSTAT
; 85 ERR.ZERODIV
E306 ERRDIR
; D8 ERRFLG
; DA ERRLIN
; DE ERRNUM
D412 ERROR
.01=D419 .02=D41F
D260 ERROR.MESSAGES
DC ERRPOS
DF ERRSTK
D828 EXECUTE.STATEMENT
D82A EXECUTE.STATEMENT.1
.01=D83F
DE5D EXIT
EF09 EXP
.01=EF19 .02=EF24 .03=EF27 .04=EF37
9A EXPON
9C EXPSGN
9D FAC
AC FAC.EXTENSION
A2 FAC.SIGN
E7BE FADD
E7B9 FADD.1
E7CE FADD.2
.01=E7EA .02=E7EE
E7FA FADD.3
.01=E806
E855 FADD.4
E7A0 FADDH
E7C1 FADDT
.01=E7C6
E253 FAE.1
E26F FAE.2
E270 FAE.3
.01=E281 .02=E292 .03=E298
DF5D FALSE
EBB2 FCOMP
EBB4 FCOMP2
.01=EBE9 .02=EBEF
EA66 FDIV
EA69 FDIVT
.01=EA80 .02=EA96 .03=EAA3 .04=EAA6 .05=EAB4 .06=EAD1 .07=EAD5
.08=EAE1
EC4A FIN
.01=EC4E .02=EC5D
EC61 FIN.1
EC98 FIN.10
EC64 FIN.2
EC66 FIN.3
.01=EC85
EC87 FIN.4
EC8A FIN.5
EC8C FIN.6
EC9E FIN.7
ECA0 FIN.8
.13=ECA9 .14=ECB2 .15=ECB9 .16=ECBE
ECC1 FIN.9
.01=ECC8
E24B FIND.ARRAY.ELEMENT
E488 FIND.HIGHEST.STRING
.01=E4A0 .02=E4A9 .03=E4B5 .04=E4BD .05=E4C2 .06=E4CA .07=E4CE
.08=E4D9 .09=E50A .10=E50C .11=E514
DCA0 FINDATA
.01=DCB9
F0 FIRST
D4F2 FIX.LINKS
.01=D4FE .02=D50F .03=D511
D61E FL1
.01=D635 .02=D63E .03=D647
F280 FLASH
F3 FLASH.BIT
EB93 FLOAT
EB9B FLOAT.1
EBA0 FLOAT.2
E97F FMULT
E982 FMULTT
.01=E987
DEA4 FN.
E341 FNC.
E3AF FNCDATA
8A FNCNAM
D61A FNDLIN
D766 FOR
.01=D777
85 FORPNT
ED34 FOUT
ED36 FOUT.1
.01=ED41 .02=ED4F .03=ED57 .04=ED60 .05=ED62 .06=ED6D .07=ED78
.08=ED7F .09=ED86 .10=ED89
ED8C FOUT.2
.01=ED9E .02=ED9F .03=EDAA .04=EDBB .05=EDBD .06=EDC1 .07=EDE5
.08=EDE7 .09=EDEE .10=EE09
EE17 FOUT.3
.01=EE19 .02=EE26 .03=EE36 .04=EE42
EE57 FOUT.4
EE5A FOUT.5
EE5F FOUT.6
EE97 FPWRT
.01=EEA0 .02=EEBA
E2DE FRE
.01=E2E5
E600 FREFAC
71 FRESPC
E5FD FRESTR
E604 FRETMP
.01=E62F .02=E630
E635 FRETMS
.01=E645
6F FRETOP
DE60 FRM.ELEMENT
.01=DE64 .02=DE69 .03=DE6C
DE3A FRM.PERFORM.1
.01=DE41
DE43 FRM.PERFORM.2
DDCD FRM.PRECEDENCE.TEST
DDFD FRM.RECURSE
DDE4 FRM.RELATIONAL
.01=DDEE
DE10 FRM.STACK.1
DE15 FRM.STACK.2
DE20 FRM.STACK.3
DED5 FRM.VARIABLE
DED7 FRM.VARIABLE.CALL
.01=DEE5 .02=DEF6
DD7B FRMEVL
.01=DD81
DD86 FRMEVL.1
DD95 FRMEVL.2
.01=DD98 .02=DDB4 .03=DDC5
DD67 FRMNUM
E7A7 FSUB
E7AA FSUBT
E354 FUNCT
.01=E378 .02=E3A9
E484 GARBAG
13 GARFLG
F10B GENERIC.CHRGET
.01=F111 .02=F122
DD0D GERR
DBA0 GET
E752 GETADR
E0ED GETARY
E0EF GETARY2
.01=E0F9
F7D9 GETARYPT
E6F8 GETBYT
D72C GETCHR
.01=D731
ECE8 GETEXP
.01=ECF7 .02=ED05
E452 GETSPA
.01=E454 .02=E45F .03=E469 .04=E474
E6DC GETSTR
F6E6 GGERR
E948 GIQ
E2F2 GIVAYF
E26C GME
EFE7 GO.MOVMF
ED31 GO.STROUT
D935 GO.TO.LINE
D826 GOEND
; Applesoft GOERR F206
; Firmware??? GOERR CF53
F206 A.GOERR
DE38 GOEX
E6F2 GOIQ
03 GOSTROUT
D921 GOSUB
D93E GOTO
.01=D955 .02=D959
00 GOWARM
F390 GR
E269 GSE
E6F5 GTBYTC
D365 GTFORPNT
.01=D36A .02=D37F .03=D38B .04=D392
E746 GTNUM
F2E9 HANDLERR
F3F2 HCLR
F6E9 HCOLOR
F5CB HFIND
.01=F5F0 .02=F5FE
F6B9 HFNS
.01=F6CD
F53A HGLIN
.01=F550 .02=F568
F3E2 HGR
1C HGR.BITS
EA HGR.COLLISIONS
E4 HGR.COLOR
1D HGR.COUNT
D0 HGR.DX
D2 HGR.DY
D4 HGR.E
E5 HGR.HORIZ
E6 HGR.PAGE
D3 HGR.QUADRANT
F9 HGR.ROTATION
E7 HGR.SCALE
1A HGR.SHAPE
E8 HGR.SHAPE.PNTR
E0 HGR.X
E2 HGR.Y
F3D8 HGR2
94 HIGHDS
96 HIGHTR
F286 HIMEM
F232 HLIN
F530 HLINRL
F6FE HPLOT
.01=F708 .02=F70F
F457 HPLOT0
F411 HPOSN
.01=F441 .02=F442
F7E7 HTAB
.01=F7EC .02=F7FA
D9C9 IF
.01=D9D8
D9E1 IF.TRUE
.01=D9E9
F1DE IN.NUMBER
D553 INCHR
E8C6 INCREMENT.FAC.MANTISSA
EB7A INCREMENT.MANTISSA
5E INDEX
99 INDX
D52C INLIN
D52E INLIN2
.01=D539 .02=D541 .03=D54C
DCC6 INPDONE
.01=DCD1 .02=DCDE
DB86 INPERR
DC99 INPFIN
; Applesoft INPRT ED19
; ROM/Monitor INPRT FE8D
ED19 A.INPRT
7F INPTR
DBB2 INPUT
.01=DBC4 .02=DBC7
0200 INPUT.BUFFER
DC69 INPUT.DATA
DBE9 INPUT.FLAG.ZERO
DC72 INPUT.MORE
.01=DC7E
DB71 INPUTERR
15 INPUTFLG
DC2B INSTART
.01=DC3F .02=DC4B .03=DC4C .04=DC57 .05=DC63
EC23 INT
F277 INVERSE
E199 IQERR
D858 ISCNTC
.01=D860
E07D ISLETC
.01=E086
E19B JER
E432 JERR
DD78 JERROR
F296 JMM
90 JMPADRS
EA36 JOV
F32E JSYN
C000 KEYBOARD
E8FD L
.01=E903
87 LASTOP
53 LASTPT
E65A LEFTSTR
E6D6 LEN
91 LENGTH
DA46 LET
DA7A LET.STRING
DA63 LET2
.01=DA77
F209 LINCOOR
.01=F218
DA0C LINGET
.01=DA12 .02=DA40
50 LINNUM
ED24 LINPRT
; Applesoft LIST D6A5
; ROM/Monitor LIST FE5E
D6A5 A.LIST
.01=D6B1 .02=D6C4 .03=D6CC
D6DA LIST.0
.05=D6F5 .06=D6F7
D6FE LIST.1
D702 LIST.2
.01=D712
D724 LIST.3
D734 LIST.4
.01=D746 .02=D749 .03=D750 .04=D755 .05=D75F
D8C9 LOAD
.01=D8ED
E9E3 LOAD.ARG.FROM.YA
EAF9 LOAD.FAC.FROM.YA
D6 LOCK
E941 LOG
E94B LOG.2
F2A6 LOMEM
9B LOWTR
F46E LR.1
F471 LR.2
F476 LR.3
F478 LR.4
F4B3 LRUD1
F4B4 LRUD2
F4C4 LRUD3
F4C8 LRUD4
F49C LRUDX1
F49D LRUDX2
D0CA M.EQU
D0C7 M.NEG
D0CD M.REL
EB66 MAF
.01=EB68
E1B8 MAKE.NEW.ARRAY
.01=E1C1 .02=E1D5 .03=E1DE .04=E1E7 .05=E1F7 .06=E21A .07=E229
.08=E22E
E09C MAKE.NEW.VARIABLE
.01=E0B2
E102 MAKINT
D0B2 MATHTBL
D410 MEMERR
73 MEMSIZ
EB55 MFA
.01=EB59
E119 MI1
E11B MI2
E691 MIDSTR
.01=E6A2
DECE MIN
E108 MKINT
3D MON.A1H
3C MON.A1L
3F MON.A2H
3E MON.A2L
24 MON.CH
E562 MOVE.HIGHEST.STRING.TO.TOP
F465 MOVE.LEFT.OR.RIGHT
F48A MOVE.RIGHT
F4D3 MOVE.UP.OR.DOWN
.01=F4EB .02=F4F6 .03=F4FB .04=F4FD .05=F4FF
F57C MOVEX
F581 MOVEX2
.01=F58B .02=F59E
E5D4 MOVINS
E5E2 MOVSTR
E5E6 MOVSTR.1
.01=E5EA .02=E5F3 .03=E5FC
F5B2 MSKTBL
EA39 MUL10
.01=EA4F
E9B0 MULTIPLY.1
E9B5 MULTIPLY.2
.01=E9B8 .02=E9D4
E2B6 MULTIPLY.SUBS.1
.01=E2C0 .02=E2D9
E2AD MULTIPLY.SUBSCRIPT
F279 N.I.
F27B N.I.F.
E087 NAME.NOT.FOUND
DFF7 NAMOK
E0FE NEG32768
DB00 NEGATE
EED0 NEGOP
D649 NEW
D7D2 NEWSTT
.01=D7E5 .02=D805
DCF9 NEXT
DCFF NEXT.1
DD02 NEXT.2
DD0F NEXT.3
.01=DD52 .02=DD55
F273 NORMAL
E829 NORMALIZE.FAC.1
E82E NORMALIZE.FAC.2
.01=E832
E874 NORMALIZE.FAC.3
E880 NORMALIZE.FAC.4
E88D NORMALIZE.FAC.5
E88F NORMALIZE.FAC.6
DE90 NOT.
DE35 NOTMATH
F26F NOTRACE
D45C NUMBERED.LINE
.01=D49F .02=D4A7
DFB0 NUMCMP
0F NUMDIM
DFD6 NXDIM
DBDC NXIN
DDD6 NXOP
DB2C NXSPC
77 OLDLIN
79 OLDTEXT
D9F4 ON.1
D9F8 ON.2
.03=DA00
F2CB ONERR
D9EC ONGOTO
DF4F OR
DB5C OUTDO
.01=DB64
EA2B OUTOFRNG
DB5A OUTQUES
DB57 OUTSP
E8D5 OVERFLOW
79 P.ADD
50 P.AND
7B P.MUL
7F P.NEQ
46 P.OR
7D P.PWR
64 P.REL
DEB2 PARCHK
D56C PARSE
.01=D56D .02=D578 .03=D588 .04=D590 .05=D5A2 .06=D5A7 .07=D5A8
.08=D5CB .09=D5CD .10=D5E0 .11=D5E2 .12=D5E9 .13=D5F2 .14=D5F9
.15=D5FD .16=D604 .17=D610
D559 PARSE.INPUT.LINE
DFCD PDL
E764 PEEK
; Applesoft PLOT F800
; ROM/Monitor PLOT F225
F225 A.PLOT
F1EC PLOTFNS
E73D POINT
E77B POKE
F0CE POLY.ATN
EEE0 POLY.EXP
E918 POLY.LOG
F075 POLY.SIN
EF72 POLYNOMIAL
EF5C POLYNOMIAL.ODD
D96B POP
E2FF POS
DB03 PR.COMMA
.01=DB0E
DB2F PR.NEXT.CHAR
F1E5 PR.NUMBER
DACF PR.STRING
DB16 PR.TAB.OR.SPC
.01=DB21 .02=DB2B
DDF6 PREFNC
AF PRGEND
DAD5 PRINT
D431 PRINT.ERROR.LINNUM
ED2E PRINT.FAC
DAD7 PRINT2
DBF1 PROCESS.INPUT.ITEM
.01=DC1F .02=DC27
DBEB PROCESS.INPUT.LIST
D901 PROGIO
DFE3 PTRGET
DFE8 PTRGET2
DFEA PTRGET3
E007 PTRGET4
.01=E011 .02=E012 .03=E01C .04=E026 .05=E036 .06=E03D .07=E046
.08=E049 .09=E04F .10=E059 .11=E05B .12=E065 .13=E073
D9C5 PULL3
D4B5 PUT.NEW.LINE
.01=D4D1 .02=D4EA
E435 PUTEMP
E42A PUTNEW
DA7B PUTSTR
.01=DA8C .02=DA9A .03=DAA1 .04=DAB7
EBF2 QINT
.01=EC06
EC12 QINT.2
EC40 QINT.3
D35D QT.BREAK
D350 QT.ERROR
D358 QT.IN
F070 QUARTER
; Applesoft READ DBE2
; ROM/Monitor READ FEFD
DBE2 A.READ
DB7B READERR
D3E3 REASON
.01=D3ED .02=D3F1 .03=D3FC .04=D40F
F3BC RECALL
.01=F3D2
DF65 RELOPS
D9DC REM
D9A6 REMN
.01=D9AE .02=D9B6
F8 REMSTK
DB87 RESPERR
.01=DB90
D43C RESTART
; Applesoft RESTORE D849
; ROM/Monitor RESTORE FF3F
D849 A.RESTORE
62 RESULT
F318 RESUME
D984 RETURN
E686 RIGHTSTR
EFAE RND
.01=EFCC
C9 RNDSEED
F721 ROT
EB72 ROUND.FAC
D648 RTS.1
E79F RTS.10
E89D RTS.11
E8D4 RTS.12
E9E2 RTS.13
EB71 RTS.14
EB8F RTS.15
EC11 RTS.16
EC49 RTS.17
EEDA RTS.18
EFA5 RTS.19
D696 RTS.2
F0CD RTS.20
F600 RTS.22
F6F5 RTS.23
D857 RTS.3
D8AF RTS.4
D96A RTS.5
D9A2 RTS.6
DA0B RTS.7
DB02 RTS.8
E2AC RTS.9
D912 RUN
.01=D91B
; Applesoft SAVE D8B0
; ROM/Monitor SAVE FF4A
D8B0 A.SAVE
DDD7 SAVOP
F727 SCALE
; Applesoft SCREEN DEF9
; ??? SCREEN 05B8
DEF9 A.SCREEN
D64B SCRTCH
A3 SERLEN
EF76 SERMAIN
.01=EF85 .02=EF89 .03=EF96
AD SERPNT
E0DE SET.VARPNT.AND.YA
.01=E0E8
D853 SETDA
EB27 SETFOR
F299 SETHI
F3EA SETHPG
D665 SETPTRS
EB90 SGN
DEAB SGN.
AB SGNCPR
E8F0 SHIFT.RIGHT
E8DA SHIFT.RIGHT.1
E8DC SHIFT.RIGHT.2
E8FD SHIFT.RIGHT.3
E907 SHIFT.RIGHT.4
E911 SHIFT.RIGHT.5
A4 SHIFT.SIGN.EXT
F775 SHLOAD
.01=F796 .02=F7A0 .03=F7A3
EB82 SIGN
EB86 SIGN1
EB88 SIGN2
16 SIGNFLG
EFF1 SIN
F023 SIN.1
F026 SIN.2
.01=F033
E301 SNGFLT
DE0D SNTXERR
F262 SPEED
F1 SPEEDZ
EE8D SQR
E852 STA.IN.FAC.SIGN
E850 STA.IN.FAC.SIGN.AND.EXP
0100 STACK
D7AF STEP
.01=D7C3
D683 STKINI
D86E STOP
F39F STORE
.01=F3AF
EB2B STORE.FAC.AT.YX.ROUNDED
EB21 STORE.FAC.IN.TEMP1.ROUNDED
EB1E STORE.FAC.IN.TEMP2.ROUNDED
E3C5 STR
DF7D STRCMP
.01=DFA5
DFAA STRCMP.1
DFB5 STRCMP.2
6D STREND
E3D5 STRINI
E3E7 STRLIT
E3ED STRLT2
.01=E3F7 .02=E404 .03=E408 .04=E409 .05=E415 .06=E41F
AB STRNG1
AD STRNG2
DB3A STROUT
DB3D STRPRT
.01=DB44
E3DD STRSPA
DE81 STRTXT
.01=DE8A
D697 STXTPT
E196 SUBERR
14 SUBFLG
E660 SUBSTRING.1
.01=E666
E667 SUBSTRING.2
E668 SUBSTRING.3
.01=E67F
E6B9 SUBSTRING.SETUP
C057 SW.HIRES
C055 SW.HISCR
C056 SW.LORES
C054 SW.LOWSCR
C052 SW.MIXCLR
C053 SW.MIXSET
C050 SW.TXTCLR
DEC0 SYNCHR
DEC9 SYNERR
D846 SYNERR.1
D981 SYNERR.2
F03A TAN
F062 TAN.1
F7BC TAPEPNT
93 A.TEMP1
; Applesoft TEMP2 98
; ROM/Monitor TEMP2 07FB
98 A.TEMP2
8A A.TEMP3
52 A.TEMPPT
55 A.TEMPST
F399 TEXT
0F TKN.CNTR
99 TMPEXP
D000 TOKEN.ADDRESS.TABLE
; C5 TOKEN.AT
; 83 TOKEN.DATA
; D0 TOKEN.EQUAL
; C2 TOKEN.FN
; 81 TOKEN.FOR
; B0 TOKEN.GOSUB
; AB TOKEN.GOTO
; CF TOKEN.GREATER
; E8 TOKEN.LEFTSTR
; C9 TOKEN.MINUS
D0D0 TOKEN.NAME.TABLE
; C6 TOKEN.NOT
; C8 TOKEN.PLUS
; A1 TOKEN.POP
; BA TOKEN.PRINT
; B2 TOKEN.REM
; D7 TOKEN.SCRN
; D2 TOKEN.SGN
; C3 TOKEN.SPC
; C7 TOKEN.STEP
; C0 TOKEN.TAB
; C4 TOKEN.THEN
; C1 TOKEN.TO
; Applesoft TRACE F26D
; ROM/Monitor TRACE FEC2
F26D A.TRACE
D805 TRACE.
.00=D81D
F2 TRCFLG
DF60 TRUE
87 TXPSV
F4 TXTPSV
B8 TXTPTR
67 TXTTAB
F501 UD.1
DF0C UNARY
.01=DF3A .02=DF3F
D97C UNDERR
E30E UNDFNC
D080 UNFNC
E19E USE.OLD.ARRAY
.01=E1AA
; Applesoft USR 0A
; ROM/Monitor USR FECA
0A A.USR
E707 VAL
.01=E70F .02=E727
11 VALTYP
81 VARNAM
83 VARPNT
69 VARTAB
D8F0 VARTIO
F241 VLIN
A0 VPNT
; Applesoft VTAB F256
; Firmware??? VTAB CDFE
; ROM/Monitor VTAB FC22
F256 A.VTAB
; Applesoft WAIT E784
; ROM/Monitor WAIT FCA8
E784 A.WAIT
.01=E793 .02=E797
F76F XDRAW
F65D XDRAW0
F661 XDRAW1
.01=F682 .02=F68C .03=F699 .04=F6A4 .05=F6B4
EA31 ZERO
E84E ZERO.FAC
; Duplicate(s)
; F128 GENERIC.END
F094 MICROSOFT_EOR87
F079 PI2_11
F07E PI2_9
F083 PI2_7
F088 PI2_5
F08D PI2_3
F092 PI2
; Removed ROM/Monitor
;FDED MON.COUT
; 27 MON.GBASH
; 26 MON.GBASL
;FD6A MON.GETLN
; 2C MON.H2
;F819 MON.HLINE
; 30 MON.HMASK
;FC58 MON.HOME
;FE8B MON.INPORT
; 32 MON.INVFLG
;FE95 MON.OUTPORT
;F800 MON.PLOT
;FB1E MON.PREAD
; 33 MON.PROMPT
FCFA MON.RD2BIT
;FD0C MON.RDKEY
;FEFD MON.READ
FF02 MON.READ2
;F871 MON.SCRN
;F864 MON.SETCOL
;FB40 MON.SETGR
;FB39 MON.SETTXT
;FB5B MON.TABV
; 2D MON.V2
;F828 MON.VLINE
;FCA8 MON.WAIT
;FECD MON.WRITE
F505 MOVE.DOWN
; Zero Page Addresses
;00B1 CHRGET
;00B7 CHRGOT
00B8 TXTPTRL
00B9 TXTPTRH
0094 HIGHDSL
0095 HIGHDSH

View file

@ -1,917 +0,0 @@
; Apple 2 Rom Symbol Table
; Version 5 Renamed "KBD/CLR80COL" -> "KBD/CLR80STORE", "SET80COL" -> "SET80STORE"
; Renamed "CLR80VID" -> "CLR80COL", "SET80VID" -> "SET80COL"
; Renamed "RD80COL" -> "RD80STORE", "RD80VID" -> "RD80COL"
; Version 4 GH#484
; Version 3 Cross-referenced/Sync'd with APPLE2E.SYM & A2_BASIC.SYM
; Added Text Holes
; Version 2 by Michael Pohoreski - AppleWin Debugger Dev
; Version 1 Original
0000 LOC0
0001 LOC1
0020 WNDLFT
0021 WNDWDTH
0022 WNDTOP
0023 WNDBTM
0024 CH
0025 CV
0026 GBASL
0027 GBASH
0028 BASL
0029 BASH
002A BAS2L
002B BAS2H
002C H2/LMNEM
002D V2/RMNEM
;$2E aliases 3 symbols
;36 MASK EQU $2E
;37 CHKSUM EQU $2E
;38 FORMAT EQU $2E
002E F8.MASK
002F LENGTH/LASTIN
; Applesoft COLOR F24F
; ROM/Monitor COLOR 30
; Reference: Apple ][ Reference Manual
0030 COLOR
0031 MODE
0032 INVFLG
0033 PROMPT
0034 YSAV
0035 SAVY1
0036 CSWL
0037 CSWH
0038 KSWL
0039 KSWH
003A PCL
003B PCH
003C A1L
003D A1H
003E A2L
003F A2H
0040 A3L
0041 A3H
0042 A4L
0043 A4H
0044 A5L/MACSTAT
0045 A5H/ACC
0046 XREG
0047 YREG
0049 SPNT
004E RNDL
004F RNDH
0200 BUF/IN
03F0 BRKV
03F2 SOFTEV
03F4 PWREDUP
03F5 AMPERV
03F8 USRADR
03FB NMI
03FE IRQLOC
0400 LINE1
; Reference: Apple ][ Reference Manual, Pg 173
07F8 MSLOT
; Reference: Clefs Pour Apple //c, Pg 104 - 105
0478 A2C.ROMSTATE
047B A2C.OLDCH
04F8 A2C.TEMP1
04FB A2C.VMODE
0578 A2C.TEMPA
057B A2C.OURCH
; Applesoft SCREEN DEF9
; ??? SCREEN 05B8
05B8 UKNOWN.SCREEN
05FB A2C.OURCV
; 067B A2C.VFACTV
067B A2C.CHAR
06FB A2C.XCOORD
; Applesoft TEMP1 93
; ??? TEMP1 77B
0778 A2C.DEVN0
077B A2C.NXTCUR
07FB A2C.TEMP2
; Softswitches
C000 KBD/CLR80STORE
C001 SET80STORE
C002 RDMAINRAM
C003 RDCARDRAM
C004 WRMAINRAM
C005 WRCARDRAM
C006 SETSLOTCXROM
C007 SETINTCXROM
C008 SETSTDZP
C009 SETALTZP
C00A SETINTC3ROM
C00B SETSLOTC3ROM
C00C CLR80COL
C00D SET80COL
C00E CLRALTCHAR
C00F SETALTCHAR
C010 KBDSTRB
C011 RDLCBNK2
C012 RDLCRAM
C013 RDRAMRD
C014 RDRAMWRT
C015 RDCXROM
C016 RDALTZP
C017 RDC3ROM
C018 RD80STORE
C019 RDVBLBAR
C01A RDTEXT
C01B RDMIXED
C01C RDPAGE2
C01D RDHIRES
C01E ALTCHARSET
C01F RD80COL
C020 TAPEOUT
C030 SPKR
C040 STROBE
C050 TXTCLR
C051 TXTSET
C052 MIXCLR
C053 MIXSET
C054 LOWSCR
C055 HISCR
C056 LORES
C057 HIRES
C058 SETAN0
C059 CLRAN0
C05A SETAN1
C05B CLRAN1
C05C SETAN2
C05D CLRAN2
C05E SETAN3
C05F CLRAN3
C060 TAPEIN
C061 BUTNO
C062 BUTN1
C063 BUTN2
C064 PADDL0
C065 PADDL1
C066 PADDL2
C067 PADDL3
C070 PTRIG
; Slot-0: Language Card
C080 LCRAMIN2
C081 ROMIN2
C082 LCROMIN2
C083 LCBANK2
C084 LCRAMIN2_
C085 ROMIN2_
C086 LCROMIN2_
C087 LCBANK2_
C088 LCRAMIN1
C089 ROMIN1
C08A LCROMIN1
C08B LCBANK1
C08C LCRAMIN1_
C08D ROMIN1_
C08E LCROMIN1_
C08F LCBANK1_
; Slot-6: DiskII interface
C0E0 DRV_P0_OFF
C0E1 DRV_P0_ON
C0E2 DRV_P1_OFF
C0E3 DRV_P1_ON
C0E4 DRV_P2_OFF
C0E5 DRV_P2_ON
C0E6 DRV_P3_OFF
C0E7 DRV_P3_ON
C0E8 DRV_OFF
C0E9 DRV_ON
C0EA DRV_SEL1
C0EB DRV_SEL2
C0EC DRV_SHIFT
C0ED DRV_LOAD
C0EE DRV_READ
C0EF DRV_WRITE
; Firmware
; Renamed due to ROM name collision
; C8A0 NOWAIT
; CB28 BELL2
; C9D6 PREAD
; C894 KBDWAIT
; CABA BASCALC
; CDFE VTAB
; CE03 VTABZ
; CB34 WAIT
; CB35 WAIT2
; CB36 WAIT3
; C39D NXTA1
; C376 MOVE
C100 BFUNCPG
C103 F.CLREOP
C107 CLEOP1
C119 F.HOME
C123 F.SCROLL
C129 SCRL1
C13F SCRL2
C148 SCRL3
C14D GVTZ
C14F GVTZ2
C152 F.SETWND
C160 F.CLREOLZ
C165 B.SCROLL
C168 B.CLREOL
C16B B.CLREOLZ
C170 B.CLREOP
C173 B.SETWND
C176 B.RESET
C179 B.RDKEY
C17C B.HOME
C18A B.QUIT
C195 F.QUIT
C199 F8HOOK
C19D NOTO
C1A0 ISO
C1A9 F.RDKEY
C1B4 F.NOCUR
C1B6 F.BASCALC
C1BE B.ESCFIX
C1C1 B.ESCFIX1
C1C3 B.ESCFIX2
C1CB C.ESCFIX3
C1D0 F.BOUT
C1D6 MNNDX
C1E2 GOMINI
C1E9 FIXPICK
C1F2 F.CLREOL
C1F4 X.CLREOLZ
C201 X.CLREOL2
C204 F.VTABZ
C20A F.RETURN
C20B F.RET2
C210 F.RET1
C213 DISPATCH
C23C GETFUNC
C244 F.TABLE
C250 TABLEN
C25C B.KEYIN
C267 B.KEYIN1
C26D NEW.CUR
C276 NEW.CUR1
C278 NEW.CUR2
C27D WAITKEY1
C28B WAITKEY4
C2A0 B.SETWNDX
C2AA SKPSHFT
C2B0 B.RESETX
C2C3 NODIAGS
C2D1 BLAST
C2E2 RESETRET
C2ED GORETN1
C2EE ESCI
C2F2 B.RDKEYX
C2FE ZSPAREC2
; Aux-80 Card
C300 BASICINT
C305 BASICIN
C307 BASICOUT
C317 BASICENT
C32C NOGETLN
C344 JC8
C347 JBASINIT
C34A JPINIT
C350 JPREAD
C356 JPWRITE
C35C JPSTAT
C367 PIORDY
C369 PSTERR
C36B PNOTRDY
C36D SETC8
C376 MOVE.C376
C38B MOVEC2M
C391 MOVESTRT
C393 MOVELOOP
C39D NXTA1.C39D
C3AB C01
C3B6 C03
C3BF MOVERET
C3C3 XFER
C3D6 XFERC2M
C3DC XFERZP
C3EC XFERAZP
C3EF JMPDEST
C3F4 IRQDONE
C3FA IRQ
C400 NEWIRQ
C405 IRQINTCX
C426 IRQ2
C431 IRQ3
C43B IRQ4
C449 IRQ6
C44C IRQ7
C45E IRQ8
C46D IRQ9
C47C IRQFIX
C489 IRQDN1
C48B IRQDN2
C493 IRQDN3
C499 IRQDN4
C4C1 IRQTBLE
C4C8 AMOD1
C4E5 AMOD2
C4E6 AMOD4
C4E7 AMOD3
C4F5 AMOD5
C4FA AMOD6
C567 XHEADER
C5AA WRITE2
C5D1 XREAD
; IIe Technical Reference Manual (1987), Page 317, $C3XX ROM
C603 TSTZPG
C607 ZP1
C610 ZP2
C623 ZP3
C628 ZPERROR
C62E TSTMEM
C638 MEM1
C63A MEM2
C655 MEM3
C657 MEM4
C65C MEM5
C667 MEM6
C670 MEM7
C688 MEM8
C68A MEM9
C68F MEMA
C69E MEMB
C6AD MEMC
C6BE SWCHTST1
C6CC MEMERROR
C6CD BADBITS
C6D7 BBITS1
C6DB CLRSTS
C6EB CLRS
; HD Card
C703 BADMAIN
C70A BADPRIM
C715 BBITS2
C722 HANGX
C724 BADSWTCH
C726 BSWTCH1
C72E BSWTCH2
C734 HANGY
C736 SWCHTST
C738 SWTST1
C73A SWTST2
C745 SWTST3
C74B CLICK
C74F SWTST4
C761 SWTST5
C768 SWTST6
C776 SWERR
C77D BIGLOOP
C781 BLP2
C785 BLP3
C794 BLP4
C7A4 DQUIT
C7A9 SUC2
C7B4 NTBL
C7B9 SWTBL0
C7C9 SWTBL1
C7D9 RSWTBL
C7EA RMESS
C7F0 SMESS
C7F6 SUCCESS
C7FF ZZZEND
C803 BASICINIT
C81E CLEARIT
C82A C3HOOKS
C832 C3IN
C83B GETKEY
C841 GETK2
C850 CSETUP
C85F CS2
C86C CS3
C870 BOUT
C874 BIN
C87C C8BASIC
C87E BPRINT
C894 KBDWAIT.C894
C8A0 NOWAIT.C8A0
C8AC BPNCTL
C8BD CTLON
C8C5 BIORET
C8CF SETALL
C8D4 GETREGS
C8DC BINPUT
C8E6 B.INPUT
C906 NOTACR
C91B ESCAPING
C92B ESC2
C935 ESC3
C944 ESCSPEC
C957 ESCSP1
C95D ESCSP2
C960 ESCSP3
C963 ESCSP4
C96B ESCCHAR
C97C ESCTAB
C98D STAUX
C9A3 XSTAUX
C9A4 ESCOUT
C9B0 PINIT1.0
C9B4 PINIT
C9B6 PINIT2
C9C0 PIGOOD
C9D6 PREAD.C9D6
C9EC PREADRET2
C9F0 PWRITE
CA0C PWR1
CA1F DOBASL
CA2F GETX
CA3B GETY
CA53 PCTL
CA61 STARTXY
CA6B PSETX
CA71 DOMN
CA7A MNNDX1
CA7E MNNDX2
CA85 MNNDX3
CA89 TSTROMCRD
CA90 TESTCARD
CAB2 STAY2
CAB7 STAY80
CABA BASCALC.CABA
CAC9 BSCLC2
CAD2 CTLCHAR0
CAD6 CTLCHAR
CAF7 CTLCHARX
CAFA CTLGO
CAFD CTLGO0
CB03 CTLRET
CB07 CTLXFER
CB0D X.CUR.ON
CB14 SAVCUR
CB17 CURON.X
CB18 X.CUR.OFF
CB21 X.BELL
CB28 BELL2.CB28
CB34 WAIT.CB34
CB35 WAIT2.CB35
CB36 WAIT3.CB36
CB40 X.BS
CB50 BSDONE
CB51 X.CR
CB5E X.CRRET
CB5F X.EM
CB6B X.FS
CB78 X.FSRET
CB79 X.US
CB84 X.SO
CB8B X.SO1
CB8F X.SI
CB96 X.SI1
CB98 STUFFINV
CB9D X.USRET
CB9E CTLADL
CBB9 CTLADH
CBD4 SCROLLDN
CBD8 X.LF
CBE6 X.LF2
CBEB SCROLLUP
CBED SCROLLIT
CC08 CHKRT
CC11 GETST
CC16 GETST1
CC1F SETDBAS
CC23 SCRLIN
CC35 SETSRC
CC45 SCRLEVEN
CC4C SCRLEFT
CC52 SKPLFT
CC59 SCRLODD
CC5D SKPRT
CC62 SCRLDN
CC67 SCRLL3
CC74 X.VT
CC7C X.VTLOOP
CC82 X.VTNEXT
CC90 X.FF
CC96 X.SUB
CC9A X.GS
CC9D X.GSEOLZ
CCA8 CLR40
CCB0 CLRHALF
CCBD CLR80
CCD2 CLR0
CCD5 CLR2
CCE0 CLR1
CCE6 CLR3
CCEA X.DC1
CCEF X.DC1A
CCFC X.DC2
CD09 X.DC1B
CD1A X.DC1C
CD29 DO80
CD2E DO40
CD31 SETTOP
CD3A DO40A
CD3D MOUSEOFF
CD44 MOUSEON
CD49 SMOUSE
CD4D X.NAK
CD5B SETKEYIN
CD64 SETCOUT1
CD6C SKRTS
CD6D FULL40
CD71 FULL80
CD73 SAVWDTH
CD80 QUIT
CD88 QUIT2
CD91 SCRN84
CD98 SCR1
CD9E SCR2
CDA7 SCR3
CDBB SCR4
CDC4 SCRN48
CDC8 SCR5
CDD1 SCR6
CDD3 SCR8
CDDD SCR7
CDF5 SCR9
CDF8 SCRNRET
; Applesoft VTAB F256
; ROM/Monitor n/a
; Firmware??? VTAB CDFE
CDFE VTAB.CDFE
; Applesoft n/a
; Firmware??? VTABZ CE03
; ROM/Monitor VTABZ FC24
CE03 VTABZ.CE03
CE0E VTAB40
CE13 VTABX
CE14 UPSHFT
CE1E UPSHFT2
CE1F PASINV
CE26 INVERT
CE37 INVX
CE38 STORCHAR
CE3F STOR2
CE43 SEV
CE44 PICK
CE5A PICK1
CE5D PICK2
CE64 PICK3
CE6F PICK4
CE70 STORIT
CE8B STORE1
CEA0 STORE2
CEA3 STORIT2
CEAC HEX60
CEAD STOR40
CEB1 ESCON
CEC4 ESCOFF
CECD ESCRET
CED4 PSETUP
CED7 IS80
CEE4 PSETUPRET
CEF4 COPYROM
CF09 BANK2
CF17 WRTENBL
CF25 COPYROM2
CF36 ROMOK
CF3A REL
CF46 REL1
CF50 REL2
; Applesoft GOERR F206
; Firmware??? GOERR CF53
CF53 GOERR.CF53
CF55 MOVINST
CF57 MOV1
CF6B GETOP
CF8B NXTOP
CF95 MINIERR
CF97 ERR2
CF9C DOINST
CFAB GETI1
CFB0 GOERR2
CFB8 DOLIN
CFBC NXTCH
CFCA NXTMN
CFED AMOD7
CFFC AMOD8
CFFF CLRROM
E000 BASIC
; ROM/Monitor
; Apple ][ Reference Manual - Autostart ROM Listing
E003 BASIC2
; Applesoft PLOT F800
; ROM/Monitor PLOT F225
F800 PLOT
F80C RTMASK
F80E PLOT1
F819 HLINE
F81C HLINE1
F826 VLINEZ
F828 VLINE
F831 RTS1
F832 CLRSCR
F836 CLRTOP
F838 CLRSC2
F847 GBASCALC
F856 GBCALC
F85F NXTCOL
F864 SETCOL
F871 SCRN
F879 SCRN2
F87F RTMASKZ
F882 INSDS1
F88E INSDS2
F89B IEVEN
F8A5 ERR
F8A9 GETFMT
F8B7 TSTROM
F8BA TSTROM0
F8BC TSTROM1
F8CB XTST
F8D0 INSTDSP
F8D4 PRNTOP
F8DB PRNTBL
F8F5 PRMN1
F8F9 PRMN2
F910 PRADR1
F914 PRADR2
F926 PRADR3
F92A PRADR4
F930 PRADR5
F938 RELADR
F940 PRNTYX
F941 PRNTAX
F944 PRNTX
F948 PRBLNK
F94A PRBL2
F94C PRBL3
F953 PCADJ
F954 PCADJ2
F956 PCADJ3
F95C PCADJ4
F961 RTS2
F962 FMT1
F9A6 FMT2
F9B4 CHAR1
F9BA CHAR2
F9C0 MNEML
FA40 OLDIRQ
FA47 NEWBREAK
FA4C BREAK
FA59 OLDBRK
FA62 RESET
FA6F INITAN
FA81 NEWMON
FA9B FIXSEV
FAA3 NOFIX
FAA6 PWRUP
FAA9 SETPG3
FAAB SETPLP
FABA SLOOP
FAC7 NXTBYT
FAD7 REGDSP
FADA RGDSP1
FAE4 RDSP1
FAFD PWRCON
FB02 DISKID
FB11 XLTBL
FB19 RTBL
FB1E PREAD
FB25 PREAD2
FB2E RTS2D
FB2F INIT
FB39 SETTXT
FB40 SETGR
FB4B SETWND
FB5B TABV
FB60 APPLEII
FB65 STITLE
FB6F SETPWRC
FB78 VIDWAIT
FB88 KBDWAIT
FB94 NOWAIT
FB97 ESCOLD
FB9B ESCNOW
FBA5 ESCNEW
FBB3 VERSION
FBB4 GOTOCX
FBC0 ZIDBYTE
FBC1 BASCALC
FBD0 BASCLC2
FBD9 BELL1
FBE4 BELL2
FBEF RTS2B
FBF0 STORADV
FBF4 ADVANCE
FBFC RTS3
FBFD VIDOUT
FC10 BS
FC1A UP
; Applesoft VTAB F256
; Firmware??? VTAB CDFE
; ROM/Monitor VTAB FC22
FC22 VTAB
; Firmware??? VTABZ CE03
; ROM/Monitor VTABZ FC24
FC24 VTABZ
FC29 GOTOCX1
FC2C ESC1
FC42 CLREOP
FC46 NEWVW
FC4F NEWVW1
FC58 HOME
FC5A GOTOCX3
FC62 CR
FC66 LF
FC70 SCROLL
FC74 IRQUSER
FC7A IRQDONE2
FC8F IRQNOSLT
FC95 DOCOUT1
FC99 DOCOUT2
FC9C CLREOL
FC9E CLREOLZ
; Applesoft WAIT E784
; ROM/Monitor WAIT FCA8
FCA8 WAIT
FCA9 WAIT2
FCAA WAIT3
FCB4 NXTA4
FCBA NXTA1
FCC8 RTS4B
FCC9 HEADR
FCD2 ERR3
FCE3 DISLIN
FCF0 GETINST1
FCFD UPMON
FD0B UPMON2
FD0C RDKEY2
FD10 FD10
FD13 RDKEY0
FD18 RDKEY1
FD1B KEYIN
FD1D GOTOCX2
FD21 RDESC
FD28 NEWRDKEY
FD2F ESC
FD35 RDCHAR
FD3D PICKFIX
FD47 NOTCR
FD5F NOTCR1
FD62 CANCEL
FD67 GETLNZ
FD6A GETLN
FD71 BCKSPC
FD75 NXTCHAR
FD84 ADDINP
FD8E CROUT
FD92 PRA1
FD96 PRYX2
FDA3 XAM8
FDAD MO
FDB3 XAM
FDB6 DATAOUT
FDC5 RTS4C
FDC6 XAMPM
FDD1 ADD
FDDA PRBYTE
FDE3 PRHEX
FDE5 PRHEXZ
FDED COUT
FDF6 COUTZ
FDF7 COUTZ1
FE00 BL1
FE04 BLANK
FE0B STOR
FE17 RTS5
FE18 SETMODE
FE1D SETMDZ
FE20 LT
FE22 LT2
FE2C MOVE
FE36 VFY
FE58 VFYOK
; Applesoft LIST D6A5
; ROM/Monitor LIST FE5E
FE5E LIST
FE63 LIST2
FE75 A1PC
FE78 A1PCLP
FE7F A1PCRTS
FE80 SETINV
FE84 SETNORM
FE86 SETIFLG
FE89 SETKBD
FE8B INPORT
; Applesoft INPRT ED19
; ROM/Monitor INPRT FE8D
FE8D INPRT
FE93 SETVID
FE95 OUTPORT
FE97 OUTPRT
FE9B IOPRT
FEA5 IOPRT1
FEAB GOTOCX4
FEAF CKSUMFIX
FEB0 XBASIC
FEB3 BASCONT
FEB6 GO
FEBF REGZ
; Applesoft TRACE F26D
; ROM/Monitor TRACE FEC2
FEC2 TRACE
FEC4 STEPZ
FEC5 RETCX1
FEC8 RETCX2
; Applesoft USR 0A
; ROM/Monitor USR FECA
FECA USR
FECD WRITE
FECF WRT2
FED7 SEARCH
FEE1 SRCH1
FEEB SRCH2
FEF1 MINI
FEF6 CRMON
; Applesoft READ DBE2
; ROM/Monitor READ FEFD
FEFD READ
FF03 RD2
FF0A TITLE
FF13 NNBL
FF1B LOOKASC
FF2D PRERR
FF3A BELL
; Applesoft RESTORE D849
; ROM/Monitor RESTORE FF3F
FF3F RESTORE
FF44 RESTR1
FF49 RTS6
; Applesoft SAVE D8B0
; ROM/Monitor SAVE FF4A
FF4A SAVE
FF4C SAV1
FF59 OLDRST
FF65 MON
FF69 MONZ
FF73 NXTITM
FF7A CHRSRCH
FF8A DIG
FF90 NXTBIT
FF98 NXTBAS
FFA2 NXTBS2
FFA7 GETNUM
FFAD NXTCHR
FFBE TOSUB
FFC7 ZMODE
FFCC CHRTBL
FFE3 SUBTBL
; Removed - can't find Applesoft/ROM/DOS33/PRODOS reference
; Probably because is a typo of C05F
; C0F5 CLRAN3
; Removed - Moved to Applesoft Symbol Table
; 0095 PICK
; Reference: MAKE.NEW.VARIABLE BLTU@$D393 & TAPEPNT@$F7BC
; 0094 HIGHDS
; 0095 HIGHDSH
; Applesoft n/a
; DOS3.3 MODE 04FB
; ROM/Monitor n/a
; Reference: Apple Assembly Line Volume 3 -- Issue 10
04FB DOS33.MODE
; Text Page 1 Holes
; Text Screen Hole 478 - 47F
; Text Screen Hole 4F8 - 4FF
; Text Screen Hole 578 - 57F
; Text Screen Hole 5F8 - 5FF
; Text Screen Hole 678 - 67F
; Text Screen Hole 6F8 - 4FF
; Text Screen Hole 778 - 77F
; Text Screen Hole 7F8 - 7FF
0478 TEXT.HOLE.1
04F8 TEXT.HOLE.2
0578 TEXT.HOLE.3
05F8 TEXT.HOLE.4
0678 TEXT.HOLE.5
06F8 TEXT.HOLE.6
0778 TEXT.HOLE.7
07F8 TEXT.HOLE.8
; Reference: Videx Videoterm 80 Column Display
;0478 TEXT.HOLE.1 VIDEX.EASEL
;04F8 TEXT.HOLE.2 VIDEX.BASEM
;0578 TEXT.HOLE.3 VIDEX.CHORZ
;05F8 TEXT.HOLE.4 VIDEX.CVERT
;0678 TEXT.HOLE.5 VIDEX.BYTE
;06F8 TEXT.HOLE.6 VIDEX.START
;0778 TEXT.HOLE.7 VIDEX.POFF
;07F8 TEXT.HOLE.8

View file

@ -1,18 +0,0 @@
[Version]
signature="$CHICAGO$"
[DefaultInstall]
DelReg=RegChange
[RunIt]
DelReg=RegChange
[RegChange]
HKCR,.do
HKCR,.dsk
HKCR,.nib
HKCR,.po
HKCR,.woz
HKCR,DiskImage
HKCU,Software\AppleWin
HKLM,Software\AppleWin

View file

@ -1,340 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -1,29 +0,0 @@
@IF "%~1" == "" GOTO help
@IF "%APPLEWIN_ROOT%" == "" GOTO help2
@MKDIR "%~1"
@COPY /Y "%APPLEWIN_ROOT%\bin\A2_BASIC.SYM" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\bin\APPLE2E.SYM" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\bin\DELREG.INF" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\bin\DebuggerAutoRun.txt" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\bin\GNU General Public License.txt" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\bin\History.txt" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\bin\MASTER.DSK" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\docs\Debugger_Changelog.txt" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\help\AppleWin.chm" "%~1"
@COPY /Y "%APPLEWIN_ROOT%\Release v141_xp\AppleWin.exe" "%~1"
CD "%~1"
"C:\Program Files (x86)\7-Zip\7z.exe" a ..\AppleWin"%~1".zip *
"C:\Program Files (x86)\7-Zip\7z.exe" a ..\AppleWin"%~1"-PDB.zip "%APPLEWIN_ROOT%\Release v141_xp\AppleWin.pdb"
CD ..
@GOTO end
:help
@ECHO %0 "<new version>"
@ECHO EG: %0 1.29.8.0
@GOTO end
:help2
@ECHO APPLEWIN_ROOT env variable is not defined
:end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,161 +0,0 @@
Coding Conventions for AppleWin
===============================
History:
v4 - 05-Mar-2022 (TC)
. #1050: Added info about Platform Toolset v141_xp
. Use of C++11/14/17
. Use StrFormat() instead of sprintf() etc.
v3 - 14-Nov-2020 (TC)
. #868: Reduced Hungarian notation
v2 - 16-Feb-2006 (TC)
. Updated after discussion with M.Pohoreski
v1 - 04-Feb-2006 (TC)
. First draft
-------------------------------------------------------------------------------
Introduction:
-------------
This doc defines a very simple set of coding guidelines to be used for AppleWin.
This ensures consistency & readability throughout the project, when worked on
by multiple developers.
-------------------------------------------------------------------------------
1) Project files:
1.1: Each module to have corresponding header
EG. Debug.cpp has a corresponding Debug.h
This is for shared vars, enums, structs, classes, etc.
1.2: AppleWin.h to only be used as per 1.1
1.3: Common.h to be used for any common definitions
EG. const/enum/struct
Obviously not for global funcs or vars.
1.4: At the start of each header file it must contain: #pragma once
1.5: Each module (.cpp) to include stdafx.h, and then immediately after include
the header file for that module.
EG. For Debug.cpp:
#include "stdafx.h"
#include "Debug.h"
This ensures that this header file can be included in any order in another module,
and therefore by extension all header files can be included in any order.
-------------------------------------------------------------------------------
2) Coding Style:
As a general rule and for consistency, adopt the coding convention/style of any module (or function) you are modifying.
2.1: Naming
For functions use upper camel case.
For variables use lower camel case.
And only if applicable, the following simplified prefix (Hungarian) style can be used:
Prefixes:
g_ : global
m_ : member
p : pointer
Tags:
_e : named enum definitions
_t : struct/typedef
Also see: "Appendix: Legacy Hungarian notation"
EG:
enum MODE_e {MODE1, MODE2, MODE2};
MODE_e mode;
struct PAIR_t
{
UINT a;
UINT b;
};
Simple loop counters (i,j,k) don't need to adhere to this style.
Naming for parameters that are being modified (eg. OUT):
It is recommended (but not mandatory) to use a suffix of OUT or '_', eg:
bool Find(int* pFoundOUT);
bool Find(int* pFound_);
2.2: Matching braces
These should be have same indentation, unless the braces fit neatly on one line.
EG:
for (int i=0; i<10; i++)
{
// Some code
}
2.3: Scope of module vars/funcs
If module vars/funcs aren't wrapped in a class, then declare as static if not global.
2.4: const/enum favoured over #define
Try to use const/enum instead of #define
2.4: Use of bool over BOOL
Always use bool instead of BOOL
2.5: File header
GPL header, followed by description of module & author.
2.6: Indentation
Tabs favoured over spaces.
2.7: Expression to be well spaced and parenthesised
It is recommended (but not mandatory):
. to have/use explicit parenthesis
. to have spaces between operators
Eg:
. Prefer: z = ((a + b) + 1) instead of: z=((a+b)+1)
-------------------------------------------------------------------------------
3) Use of sprintf() etc.
Do not use sprintf(), StringCbPrintf(), wsprintf(), etc. - instead use StrFormat().
-------------------------------------------------------------------------------
4) Use of C++
VS2019's Platform Toolset "Visual Studio 2017 - Windows XP(v141_xp)" is used for building releases.
This is VS2017 v15.0, which includes support for C++11, C++14 and some C++17 core language support[1].
[1] https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170
4.1: Type deduction (including auto)
Use type deduction only if it makes the code clearer to readers who aren't familiar with the project,
or if it makes the code safer. Do not use it merely to avoid the inconvenience of writing an explicit type.
(Ref: https://google.github.io/styleguide/cppguide.html#Type_deduction)
-------------------------------------------------------------------------------
Appendix: Legacy Hungarian notation
dw : DWORD
sz : string (null-terminated)
a : array
b : bool
e : enum variable
h : handle
i : iterator (eg. UINT, STL-iterator)
m : STL map
n : int
r : reference
s : string
sg_p : singleton
u : unsigned int
v : STL vector

View file

@ -1,164 +0,0 @@
AppleWin behaviour: (ddial.dsk)
- 1.10.4 : Counts up immediately at correct rate (but no "login" msg)
- 1.12.6 : Counts up immediately at correct rate (but no "login" msg)
- 1.12.9.1 : Sticks at 2s, then starts counting slowly after ~30s (but no "login" msg)
- 1.14.2 : Very fast counting immediately
NB:
. "Login" msg output ~33s/34s
. After option-1 is loaded, then it writes to some regs in slot-1 ($C0An), but no reads.
=======================================
$38EB:
LDA $28 ; [$28] = #$00
BMI .SKIP_UPDATE_TIME ; $38FF
LDA $F4 ; [$F8] = #$FF
BNE $38F8
LDA #$80+' '
STA SEC_HI-1
$38F8:
LDA #$84
STA $28
JSR UPDATE_TIME
.SKIP_UPDATE_TIME:
JSR $7FD3
JSR $4753
JSR CHECK_VBL
;...
=======================================
$395F:
LDA $F4
CMP #$01
BCC $3979
LDA TAPEIN
TAY
$3969:
EOR #$00 ; Default?
BPL $3979
; State change on TAPEIN
STY $3969+1
LDA #$0A
STA $F4
STA $28
LDA TAPEOUT
$3979:
JMP $28B4
=======================================
; Func entrypoint
UPDATE_TIME: ; $5205
LDX $FF ; [$FF] = #$FF
BEQ $5220
BPL $520D
LDX #$09
$520D:
DEX
STX $FF
BNE $5220
;...
$523D:
LDX #$07
$523F:
LDA $A0,X
;...
DEC $38,X
BNE $5289
LDA #$00
STA $90,X
$5289:
DEX
BPL $523F
$528C:
INC $4A7 ; SEC_LO
LDA $4A7
CMP #$80+'9'+1 ; #$BA
BNE $530A
; $4A6 = SEC_HI
;...
$530A:
RTS
=======================================
CHECK_VBL: ; $F822
LDA RDVBLBAR
$F825: ; FRMCNT = $F826
EOR #$3C ; (*SMC)
BMI $F82A
RTS
; VBl changed
$F82A:
LDA FRMCNT
EOR #$80
STA FRMCNT
BMI $F86A
; 1 frame elasped
INC $30 ; [$30] = #$FF
AND $7F9F ; [$7F9F] = #$01
BNE $F83D
STA $F2 ; [$F2] = #$01
$F83D:
DEC FRMCNT
BNE $F86A
; 1 sec elasped
$F842: ; FRMCNT2 = $F843
LDA #$3C ; (*SMC)
STA FRMCNT
DEC FRAMECNT3
BNE $F861
PHP
CMP #60 ; #$3C
BCS $F858 ; Branch if A >= 60
INC FRMCNT2
LDA #$79 ; 121 = 60*2+1
BNE $F85D ; == BRA $F85D
$F858:
DEC FRMCNT2
LDA #$0A
$F85D:
STA FRAMECNT3
PLP
$F861:
LDA $F4 ; [$F4] = #$FF
BNE $F86B
STA $28 ; [$28] = #$00
LDA TAPEOUT
RTS
$F86A:
RTS
$F86B:
DEC $F4
RTS
FRAMECNT3: ; $F86E
DCB $01

View file

@ -1,867 +0,0 @@
/*
2.9.1.13 Added: CD now detects ".." to change to the previous directory and chops the trailing sub-directory from the current path.
It worked before but would clutter up the current directory with a trailing "..\".
2.9.1.12 Added: New commands HGR0, HGR3, HGR4, HGR5 to see pseudo pages $00, $60, $80, $A0 respectively.
2.9.1.11 Fixed: Right justify signed decimal values.
Example:
U 300
300:A9 80 A9 81 A9 FF A9 00 A9 01 A9 7E A9 7F
Will display as:
LDA #$80 #-128
LDA #$81 #-127
LDA #$FF #-1
LDA #$00
LDA #$01 #+1
LDA #$7E #+126
LDA #$7F #+127
2.9.1.10 Fixed: Immedate #80 was not showing -128 for the signed decimal value.
2.9.1.9 Fixed: Immediate #0 was showing '#' prefix but not showing zero for the signed decimal value. Changed to show the signed decimal value only if non zero.
2.9.1.8 Changed: Disassembly window now lists symbol labels and symbol target address from User2 in orange.
Example:
U 300
SYM @ = 303
300: 20 03 03
2.9.1.7 Added: Extended SYM command to auto-generate symbol names when reverse engineering. NOTE: These symbols will be placed in User2.
Example:
SYM @ = 800 // Alias for: SYM _0800 = 0800
2.9.1.6 Added: Branch instructions now show target address.
2.9.1.5 Added: Disassembly window now shows signed decimal values for immediate values.
2.9.1.4 Changed: Show symbol warnings in Orange, and length of symbols in light blue.
2.9.1.3 Added: DB commanoptionally supports =
DB HGR = 2000:3FFF
2.9.1.2 Fixed: Off by one end address when deleting DisasmData_t
2.9.1.1 Added: X command now supports a range and will chop off the appropiate data sections.
DB 2000:2005
X 2002:2003
Released post 1.30.7.0
2.9.1.0 Added: Bookmarks now have their own indicator (a number with a box around it) and replace the ":" separator. Updated Debug_Font.bmp
.18 Fixed: Resetting bookmarks wasn't setting the total bookmarks back to zero.
.17 Fixed: If all bookmarks were used then setting a new one wouldn't update an existing one to the new address.
.16 Fixed: Replacing an existing bookmark incorrectly increased the total bookmark count.
.15 Cleanup: HELP CALC examples and See also.
.14 Fixed: HELP JSR wasn't color-coding syntax.
.13 Added: PROFILE LIST now shows how many clock cycles were executed.
.12 GH-PR#480:
GH#462: Default to Shift+Left Click to toggle disasm columns
Use 'disasm click <n>' to reconfigure this
GH#473: Fixed bug caused by Util_MemoryTextFile, Line 51 not zero-terminating buffer by invalidating it.
GH#476: Fixed off-by-one bug wrapping in debugger console
GH#483: Shift+Left mouse button to toggle 6502 Status flag bits
GH#484: Some corrections to APPLE2E.SYM
.11 Added:"Warning" for long symbols when symbol table is loaded
.10 Changed: "Warning" of symbols that alias to "Info."
.9 Continuation of 2.8.0.8: Fix overflowing disassembly pane for long symbols
.8 Fixed: Inactive Language Card bank now grayed out, main memory no longer double inverse.
.7 Fixed: Memory softswitches are now in chronological order, and their background is a dark grey
.6 Added: Read/Write for Main/Aux memory now shown
.5 Added: Support for RAMWORKS in the Debugger Language Card Status
.4 Added: Language Card Status now displayed
.3 Cleanup drawing of soft switches
.2 Fix crash when NTSC save/load total path length is > console width (80 chars)
.1 Fixed: Implemented missing debugger "CD" command
2.9.0.0 Added: ntsc save [filename], ntsc load [filename], to save/load the NTSC palette.
Default filename is "AppleWinNTSC4096x4@32.data"
To load this file in GIMP: Open, Select File Type: "Raw image data", Raw image data (*.data), RGB Alpha, Width: 4096, Height: 4
to save this file in GIMP: Open, Export To, Select File Type (By Extension) Raw image data, RGB Type: Standard (R,G,B)
.12 Fixed: [PVS-Studio] Fixed false positive of buffer overflow with MIP_RANDOM
.11 Fixed: [PVS-Studio] Fixed missing call to sprintf() in ConfigSave_PrepareHeader()
.10 Fixed: [PVS-Studio] Fixed no-op in _6502_GetStackReturnAddress()
.9 Added: BLOAD now recognizes the extensions .hgr or .hgr2 to load to $2000, or $4000 respectfully
.8 Fixed: Showing/hiding the address and/or opcodes will show long symbolic targets without overflowing into the register info pane Bug #227
.7 Fixed: ASC #:# with string containing null byte wouldn't show rest of string
.6 Added: Print-Screen when in debugger will copy the debugger window as text
.5 Added: Print warnings about duplicate symbols when symbol tables are loaded
.4 Fixed: Check for buffer overflow in CmdSymbolsInfo() if _CmdSymbolsInfoHeader() returns a very long string
.3 Removed EXITBENCH from falsely being triggered with E.
.2 Cleaned up error message for syminfo on invalid symbol table.
.1 Fixed: Symbolic Targets > 20 chars no longer overflow into register window
2.8.0.0 Released with AppleWin 1.25
2.7.0.#
.36 Fixed: empty command was re-triggering previous command. Example: DW 6062, // test
.35 Added: DW address -- round the length up to even number for convenience. Example: DW 6062 is equivalent to: DW 6062:6063
.34 Fixed: Unified auto-defined name: B_, W_, T_ for byte, word, or text respectively
.33 Fixed: ASC range -- auto-define symbol name: T_####
.32 Fixed: DW range -- auto-define symbol name: W_####
.31 Fixed: DB range -- auto-define symbol name B_####
.30 Fixed: ASC overflowing sOpCodes in FormatOpcodeBytes()
.29 Added: Help for DB and DW
.28 Added: ASC so it disassemblies intertwined code and data correctly.
Example:
using Castle Wolfenstien.DSK
BLOAD ^VOCAB
ASC name1 17DA:17F5
.27 Added: DB address now auto-defines the symbol D_####
.26 Changed: DS to ASC because DS is used as "Define Space" assembler directive
.25 Fixed : DW address so that odd address work.
i.e. DW NEXT1 801 // AppleSoft Basic Line#1 Pointer to Next line
.24 Added: TSAVE "filename" to save the text screen to file
Default filename for 40 columns is: AppleWin_Text40.txt
Default filename for 80 columns is: AppleWin_Text80.txt
.23 Fixed: Hang with Memory Move when memory ends at FFFF, i.e. 2000<FFFE.FFFFM
.22 Fixed: Hang with Memory Fill when memory ends at FFFF, i.e. F D000:FFFF 0
.21 Added: Help for BRK
.20 Moved: BRK and BRKOP now under HELP BREAKPOINTS
.19 Added: Shift-F7 will run the emulator at normal speed but with debugger breakpoints active!
.18 Added: Implemented BPIO -- currently is the same as BPM
2.7.0.17 Released with Applewin 1.20.0.0
.17 Fixed: HELP <category> wasn't displaying when category was one of: FLAGS, OUTPUT, WATCHES
.16 Fixed: WL was displaying number of watches
.15 Fixed: Memory Dump was over-writing watches.
.14 Added: Debugger display flag to update soft switches. (Related to .12)
.13 Fixed: Targets of PC instruction weren't displaying.
.12 Fixed: Fixed scrolling to only update the diasm window.
.11 Fixed: Breakpoints and Watches no longer disappear.
.10 Added: Watches now show (dynamic) raw hex bytes
Changed: Lowered watches down from 16 to 8.
.9 Fixed: Bookmarks weren't initialized to zero.
.8 Added: New command PWD to display the current debugger directory.
This is the directory used for scripts, loading/saving memory, and trace files.
Currently the debugger uses the same directory that the last disk image was loaded from.
It will have its own directory in a future version.
.7 Fixed: Cleaned up display of soft-switches to show address.
.6 Removed: Unused aliases.
Reason: When a symbol table is specified with no args, the total # of symbols will be shown.
SYMBOLS1, SYMBOLS2, SYM0, SYM1, SYM2, SYM3, SYM4, SYM5, SYM6
.5 Fixed: Increased console output height so that you can view all the SYMBASIC * output.
.4 Added: Two aliases for Dos 3.3 and Prodos symbol tables
SYMDOS
SYMPRO
.3 Added: Two new symbol tables added Dos 3.3 and Prodos.
SYMDOS33
SYMPRODOS
.2 Fixed: Fixed: Debug build of debugger force display all CPU info window wasn't calling DrawTargets()
.1 Added: Soft Switches displayed in CPU info window
2.7.0.0 Released with Applewin 1.19.1.0
.33 Fixed: Define Address should be shown as Absolute mode, not Indirect Absolute mode.
Example:
U D000
DA BASIC.FPTR D000:D081 // was showing as "da (END-1)" now shows as "da END-1"
.32 Fixed: n'th Search results were being displayed in dec, yet parser takes hex numbers.
Example:
SH D000:FFFF A9 00
U @A // used to show 10th search result as 10:DE60, now 0A:DE60
.31 Fixed: Disasm list containing data address table was bailing on first possible match.
Example:
DA BASIC.FPTR D000:D080
U D000 // was showing da STOP+1, instead of END-1
.30 Added: DA now works! It is similar to DW except it does symbol lookups!
(DW = Define Word. DA = Define Address)
Example:
U D000
DA BASIC.FPTR D000:D080
.29 Fixed: Pretty print DB2 DB4 DB8 without commas
.28 Fixed: DB2 DB4 DB8 DW DW2 DW4 now work/display properly.
DB (Define Byte) shows bytes in big endian order.
DW (Define Word) shows addresses (2 bytes) in little endian order.
Example:
U D000
DB2 REV.FPTR D000:D080
X
DW BASIC.FPT D000:D080
X
Or for those minimal types who hate wasting screen real estate
DW4 COMPACT D000:D080
X
DB8 RA8 D000:D080
X
.27 Fixed: Don't do symbol look up for data bytes that don't request it. (Groundwork for Define Address)
.26 Changed: Code portability. Slowly remove the LPCTSTR taint of Windowisms.
.25 Fixed: DB DW custom data byte sizes weren't scrolling properly in the disasm view.
Changed _6502_GetOpmodeOpbyte() to be aware of data bytes.
.24 Changed: 2.6.2.24 Changed: Tone-downed the alt. background cyan for the DATA window. C2, C3 -> C1,C2
.23 Changed: Increased number of lines for console output buffer (from 384 to 512)
.22 Changed: Re-enabled magenta/purple for warnings (i.e. symbol table disabled)
.21 Fixed: Missing GPL / copyright on some debugger files, updated year.
.20 Changed: Output of found symbol more table friendly. Symbol table name displayed first.
Example: SYM HOME // <SymbolTable>: $<Address> <Symbol>
.19 Changed: Unified format & colors for summary of symbol tables and symbol table names.
A symbol table that has been disabled will display in purple / magenta.
Example: SYM HOME // 'Main' shown in yellow
Example: SYMBASIC OFF
Example: SYM
.18 Fixed: Search Results: Total summary line unified colors.
.17 Fixed: Search Results: The n'th result now using correct color (was command, now number decimal)
.16 Fixed: Search Results: The hex literal prefix '$' for target address results now colorized properly.
.15 Fixed: Search Results: Added space between results for better readability.
.14 Fixed: Help description for Save/Load parameter help was swapped.
Example: HELP SYMMAIN
.13 Added: Can now enable/disable selected symbol table(s) !
Example: SYMMAIN OFF
Example: SYMBASIC OFF
Note: If you need to search for symbols ON, OFF, CLEAR, use SYM. i.e. SYM ON.
.12 Fixed: Following symbol tables were all hard-coded to act on SYMMAIN
SYMBASIC
SYMASM
SYMUSER
SYMUSER2
SYMSRC
SYMSRC2
Example: SYMBASIC CLEAR
.11 Added: Command line now accepts Indirect mode via ( )
Example: U (BRKV)
.10 Added: Pretty printing 'B' of all bytes treated as data.
.9 Fixed: Renamed ambiguous command 'DL' to 'B' to list all bytes being treated as data
Renamed command: 'B' to 'Z' as an alias to treat byte(s) as data
.8 Fixed: Define Code 'X' wasn't removing entries
.7 Fixed: DATA1 was using call win setup for code, not data.
.6 Cleanup of command table to have the proper internal command enum.
D // CMD_MEM_MINI_DUMP_HEX_1 moved to alias section
M1 // CMD_MEM_MINI_DUMP_HEX_1 moved to alias section
M2 // CMD_MEM_MINI_DUMP_HEX_2 moved to alias section
TEXT81 // CMD_VIEW_TEXT81 <- CMD_VIEW_TEXT8X
TEXT82 // CMD_VIEW_TEXT82 <- CMD_VIEW_TEXT8X
W // CMD_WATCH <- CMD_WATCH_ADD
.5 Added: Internal consistency checking for commands and their internal command enum.
.4 Fixed: Added custom assembler type and debugger disassembly display uses variable
instead of always being hard-coded to Merlin directives.
.5 Fixed: Data disassembler help -- was using wrong command help offset due to wrong order of commands.
.3 Fixed: Assembler now accepts lower-case mnemonics
.2 Fixed: help for command '@'
.1 Added: new command: 'X' to Define Code
Remove address being treated as data
X // uses address cursor is on
X symbol // uses address cursor is on
X symbol address
.0 Added: new command "DB" to Define Byte / Pseudo Mnemonic / Assembler Directive
DB // uses address cursor is on
DB symbol // uses address cursor is on
DB symbol address
DB symbol start:end
Example:
DB zp 0:ff
2.6.2.0 Released with AppleWin 1.17.2.0
2.6.1.x
.35 Fixed: Pressing enter on blank line while in assembler wouldn't exit it.
.34 Fixed: Scrolling past top of the console output wouldn't draw blank lines
.33 Added: While there is console input, can use Page Up, Page Down to scroll the console output buffer.
.32 Added: Pressing Enter on a blank line now toggles the full screen console.
"Blame" Nick for this great idea. :-)
You can still use Ctrl-` if need be.
.31 Added: Help examples for Memory Fill
.30 Fixed: Memory Fill
F start end value
F start,len value
F start:end value
.29 Removd: Old unassembly alias MDC
.28 Added: Can now toggle display of disassembly address on/off for a clean "source assembly" style
Three way state
1) "addr: ..."
2) ": ..."
3) " ..."
.27 Fixed: help for memory fill no longer displays help for flags
.26 Added: Was missing help for memory move
.25 Changed: Cleaned up help calc text
.24 Changed: Undid .5, .7 hack
.23 Extended entering memory bytes to allow 16-bit values
0:4C FF69
.22 Renamed breakpoint commands
BC -> BPC
BD -> BPD
BPE -> BPEDIT
BE -> BPE
BL -> BPL
.21 Fixed: Trying to set zero page and other memory locations that
were also commands, didn't update memory.
A:##
D:## // no longer shows mini dump starting at address 0
F:##
BC:##
BD:##
BE:##
E8:##
E16:##
.20 Added: Implemented Memory Move commands: MM and classic Apple Monitor style
2001<2000.3FFFM
M 2001 2000:3FFF
.19 Fixed: Added how to delete symbols to symbol help
.18 Added: Loading duplicate symbols at start-up now listed
.17 Added: When the debugger starts, attempts loading of additional symbol tables
A2_BASIC.SYM
A2_USER1.SYM
A2_USER2.SYM
A2_SRC1.SYM
A2_SRC2.SYM
Repsectively for basic, user1, user2, source1, and source2
.16 Added: In addition to !, can now use ~ to remove a symbol
symbasic aCold.reset = F128
symbasic aWarm.reset = D43C
symbasic ! aCold.reset
symbasic ~ aWarm.reset
.15 Fixed: Color coded when symbol address is updated.
.14 Fixed updating of symbols to use correct symbol table
.13 Added: Wildcard suport to dump symbol table(s)
symbasic Acold.reset = F128
symbasic Awarm.reset = D43C
symbasic *
.12 Added: Moved assembly symbols into own symbol table.
Added: New command to reference assembly symbol table.
symasm MyFirstAssemblyProgram = 300
.11 Added: Applesoft/Basic symbol table.
symbasic Acold.reset = F128
symbasic Awarm.reset = D43C
.10 Added: Split 'user' symbols into user1, and user2
.9 Added: Split 'source' symbols into source1, and source2
.8 Added: Applesoft symbols. Thank-you Bob Sander-Cederlof !
.7 Fixed: renamed assembler command A to AS (as a work-around for: A:##)
.6 Fixed: renamed mem fill command F to MF (as a work-around for: F:##)
.5 Fixed: renamed mem dump command D to MD (as a work-around for: D:##)
.4 Fixed: renamed mem enter word command EW to MEW, E16 to ME16
.3 Fixed: renamed mem enter byte command E to MEB
.2 Fixed: renamed mem enter byte command EB to ME8
.1 Fixed: removed mem enter byte command E8
2.6.0.8 Released with AppleWin 1.16.1
=======
2.6.1.x
.32 Added: Pressing Enter on a blank line now toggles the full screen console.
"Blame" Nick for this great idea. :-)
You can still use Ctrl-` if need be.
.31 Added: Help examples for Memory Fill
.30 Fixed: Memory Fill
F start end value
F start,len value
F start:end value
.29 Removd: Old unassembly alias MDC
.28 Added: Can now toggle display of disassembly address on/off for a clean "source assembly" style
Three way state
1) "addr: ..."
2) ": ..."
3) " ..."
.27 Fixed: help for memory fill no longer displays help for flags
.26 Added: Was missing help for memory move
.25 Changed: Cleaned up help calc text
.24 Changed: Undid .5, .7 hack
.23 Extended entering memory bytes to allow 16-bit values
0:4C FF69
.22 Renamed breakpoint commands
BC -> BPC
BD -> BPD
BPE -> BPEDIT
BE -> BPE
BL -> BPL
.21 Fixed: Trying to set zero page and other memory locations that
were also commands, didn't update memory.
A:##
D:## // no longer shows mini dump starting at address 0
F:##
BC:##
BD:##
BE:##
E8:##
E16:##
.20 Added: Implemented Memory Move commands: MM and classic Apple Monitor style
2001<2000.3FFFM
M 2001 2000:3FFF
.19 Fixed: Added how to delete symbols to symbol help
.18 Added: Loading duplicate symbols at start-up now listed
.17 Added: When the debugger starts, attempts loading of additional symbol tables
A2_BASIC.SYM
A2_USER1.SYM
A2_USER2.SYM
A2_SRC1.SYM
A2_SRC2.SYM
Respectively for basic, user1, user2, source1, and source2
.16 Added: In addition to !, can now use ~ to remove a symbol
symbasic aCold.reset = F128
symbasic aWarm.reset = D43C
symbasic ! aCold.reset
symbasic ~ aWarm.reset
.15 Fixed: Color coded when symbol address is updated.
.14 Fixed updating of symbols to use correct symbol table
.13 Added: Wildcard suport to dump symbol table(s)
symbasic Acold.reset = F128
symbasic Awarm.reset = D43C
symbasic *
.12 Added: Moved assembly symbols into own symbol table.
Added: New command to reference assembly symbol table.
symasm MyFirstAssemblyProgram = 300
.11 Added: Applesoft/Basic symbol table.
symbasic Acold.reset = F128
symbasic Awarm.reset = D43C
.10 Added: Split 'user' symbols into user1, and user2
.9 Added: Split 'source' symbols into source1, and source2
.8 Added: Applesoft symbols. Thank-you Bob Sander-Cederlof !
.7 Fixed: renamed assembler command A to AS (as a work-around for: A:##)
.6 Fixed: renamed mem fill command F to MF (as a work-around for: F:##)
.5 Fixed: renamed mem dump command D to MD (as a work-around for: D:##)
.4 Fixed: renamed mem enter word command EW to MEW, E16 to ME16
.3 Fixed: renamed mem enter byte command E to MEB
.2 Fixed: renamed mem enter byte command EB to ME8
.1 Fixed: removed mem enter byte command E8
2.6.0.8 Released with AppleWin 1.16.1
2.6.0.6 Released with AppleWin 1.15
.6 Added new command '@' to display the search results
.5 Fixed display results of Searching to be colorized
.4 Fixed ? to sort and colorize commands
.3 Fixed HELP to not include blank line
.2 Fixed 'G' to not send the Return of the command into the Apple Keyboard
.1 Renamed GO to G to not conflict with GR, GR1, GR2
.0 Added 18 new view output commands from inside the debugger!
Added commands:
TEXT, TEXT1, TEXT2
TEXT80, TEXT81, TEXT82
GR, GR1, GR2
DGR, DGR1, DGR2
HGR, HGR1, HGR2
DHGR, DHGR1, DHGR2
Added aliases:
TEXT40, TEXT41, TEXT42
Example:
F7 // enter debugger
HELP VIEW // view help summary
HGR // view current Hi-Res Screen. press a key to return to the normal debugger view
TODO: 2.6.0.0 released with next version of AppleWin (1.12.9.2)
.11 Added: Trace File Now displays filename tracing is saved to.
.10 Fixed: Trace File wasn't displaying assembly mnemonics
.9 Added: Internal change: Seperated Disassembling and Drawing a little more.
See: GetDisassemblyLine() and FormatDisassemblyLine()
.8 Fixed: 100% CPU utilization polling for mouse events in debugger
.7 Added: Colorized PROFILE LIST output
.6 Fixed: Debugger mouse click not checking if in Debug mode
.5 Fixed: HELP WA wasn't displaying help for Watch Add
.4 Added: Colorized most of built in debugger help.
.3 Added: In disassembly, regs X & Y in mnemonic line are now color coded
.2 Changed internal representation of color console
.1 Console now jumps to end, when return pressed
2.5.7.0 Debugger using new Apple Font with color console support
.41 Fixed: Breakpoints now properly handle ranges (both relative and absolute)
See HELP BPR
.40 Changed: Cleaned up Bookmarks, Watches, ZeroPage to be more consistent.
Example:
ZPA // list
ZPA CV // add address
ZPA 0 CV // update with new address
ZPA 0 CV CH // add/update a sequence
.39 Changed: Cleaned up many commands and HELP categories.
.38 Added: BMSAVE Bookmarks are now saved.
.37 Changed: Breakpoints now recognize op '!=' or '!' for not equal.
.36 Removed: Command Config menu (OPTION) since it is not needed
.35 Changed: Command CONFIG renamed to OPTION to prevent same name collision with category
.34 Fixed: The comment to end-of-line (//) is now a proper token
.33 Fixed: Parsing of operators <= >=
.32 Fixed: HELP SYM displaying help category, not help command.
.31 Added: Mini-help for Watches
.30 Fixed: Command aliases are no longer displayed multiple times
i.e. HELP BEN // would show BENCHMARK BENCHMARK (BENCH)
.29 Fixed: Removed hard-coded magic number spacing for Regs on info panel
.28 Fixed: Commands and params can now be in lowercase
.27 Fixed: Help now does partial matches. i.e. HELP OP
.26 Fixed: FONT checking wrong arg count - bug introduced when op * was added.
.25 Fixed: Console not handling string with length same as console width
.24 Added: HELP RANGE
.23 Added: HELP OPERATORS
.22 Fixed: Memory searching now accepts ranges. see HELP S, HELP SH
.21 Fixed: Updated BLOAD BSAVE Help
.20 Fixed: BLOAD, BSAVE now accept ranges.
.19 Fixed: Backspace toggles quote state for single quotes now too.
.18 Changed: Results of searching now start at 1, not zero.
i.e.
S F000,1000 'Apple'
MA1 @1
.17 Added: HELP S
.16 Changed: Search Text (S) now uses consistent quoting
"...ASCII..."
'...High-Bit Apple Text...'
Commands: Search Ascii (SA), and Search Apple Text (ST) are now deprecated.
.15 Fixed: Search Text wasn't allowing multiple apple text chars.
.14 Single Quoting now allows lower case input
.13 Fixed: Escape to clear console input, didn't reset quoted flag
.12 Changed: BLOAD failure now prints path/file it tried.
.11 Fixed: Memory Searching not handling comma seperating address,length
.10 Fixed: console not wrapping long lines
.9 Fixed: console resize not set to full width
.8 Fixed: PRINTF help
.7 Extended: command Bookmark List (BML)
Also displays maximum bookmarks if no current bookmarks are set.
.6 Extended: command Breakpoint List (BL)
Also displays maximum breakpoints if no current breakpoints are set.
.5 Extended: command Watch Add (W), and Watch List (WL)
Also displays maximum watchpoints if no current watchpoints are set.
.4 Fixed: memory dump no longer overwrites icons when dumping SY6522 or AY8910
MA1 SY
MA1 AY
.3 Fixed: Target display bug
_6502_GetTargets() Indirect (Zeropage) Indexed, Y not clamping pointer.
F7
DISASM POINTER 1
R PC FAC7
FE:55
R Y FF
.2 Added: new command: DISASM POINTER [0 | 1]
Toggles the display of the instruction's target pointer values on / off in the info panel.
The default is now off, since the main disasm window shows target values for indirect addressing modes.
.1 Added: Increased breakpoints to 15, Watches to 6, Zeropage pointers to 6.
Fixed: Display only active breakpoints.
.0 Rearranged/Reorganized info panel to allow full width console
- Regs are now listed at the top of the window
- Breakpoint title has been removed
- Watch title has been removed
- Target now shares space with the stack display
- Memory Dump 2 is now only 2 lines
2.5.6.x
.4 Added: Help Categories: BOOKMARKS, HELP, OUTPUT
.3 Re-organized output commands into seperate category.
ECHO, CALC, PRINT, PRINTF
.2 Added: Bookmark commands
BM
BMA # address // Bookmark add
BMC * | # [, #] // Bookmark clear
.2 Added: new console output commands: PRINT, PRINTF
.1 Fixed: '*' operator being treated as operator if only argument
2.5.5.0 Added multiplication operator: '*'
.15 Fixed: Help Category comma syntax parsing
.14 Fixed: BP comma syntax parsing
.13 Fixed: BSAVE comma syntax parsing. Comma after filename is mandatory now.
BSAVE ["Filename"], addr, len
.12 Fixed: BLOAD comma syntax parsing. Comma after filename is mandatory now.
BLOAD ["Filename"], addr[, len]
.11 Fixed: Go syntax parsing
G StopAddress [SkipAddress,Length]
.10 Changed: internal parsing of comma operator.
It is now left in the command arguments.
.9 Fixed: modifier keys (Shift,Ctrl,Alt) not being updated when mouse scrolling.
.8 Changed scrolling page up & down to not scroll as far.
.7 Fixed: scroll up bug, introduced with new scroll up code
R PC FBB4
up arrow
.6 Fixed: scrolling page up & down, to keep better sync
U F700
pagedown
pageup
.5 Fixed: scrolling page up & down bug, loosing sync of disassembly lines
U F500
pagedown
pageup
F500...F526 -> F523 (should be F526, +20 lines)
.4 Fixed: scroll down bug, loosing sync of "top" disassembly
U F70F
down arrow
.3 Fixed: scroll up bug, loosing sync on disassembly by skipping a mnemonic line:
i.e.
U FA44 (FA56)
up arrow
.2 Added: Ctrl-# to jump to address
.1 Added: Alt-# to set bookmark at address
.0 Added: mouse wheel scrolling in debugger
2.5.4.x
.16 Swapped -> and Alt ->
-> Follow Target at Cursor
Alt -> Jump Cursor to PC
.15 Added: Alt -> to follow target at cursor
.14 Fixed: BLOAD/BSAVE to update console.
.13 Changed: BLOAD/BSAVE to use more traditional order of arguments:
The comma after the filename must be left out for the time being.
BSAVE "Filename" address,length
BLOAD "Filename" address
.12 Fixed: BPA to set breakpoints if no args
.11 Fixed: Cleaned up HELP BP
.10 Fixed: Cleaned up HELP BREAKPOINTS
.9 Fixed: Cleaned up HELP DISASM
.8 Added: DISASM to print current states
.7 Added: DISASM TARGET [#]
.6 Added: BLOAD addr[,len] "Filename"
.5 Added: BSAVE addr,len "Filename"
.4 Added: HELP DISASM
.3 Added: DISASM [BRANCH | COLON | OPCODE | SPACES] #
.2 Fixed: HELP CONFIG not working
.1 Linards put undocumented mnemonics in lowercase
2.5.3.x
2.5.2.x
3.0 Added: Ctrl-V (paste) now works.
2.0 Added: BRKOP ## support
2.5.1.0 Added: BRK ON|OFF support
.23 Fixed: Moved columns of disasm for instructions, and target values over one char left, to leave whitespace past the target 'char' on the end
.22 Added: Disasm window now shows target values for indirect, and indexed addressing modes.
i.e.
0:34 12 00 00 AA 99
D0:16 03
1234:56 78 9A
R X D0
R Y 2
300:A9 55 // LDA #$55
302:4C 89 67 // JMP $6789
305:AD 01 00 // LDA $0001 = 12
308:A5 00 // LDA $00 = #34
30A:DE 00 00 // DEC $0000,X $D0=FF
30D:BE 02 00 // LDX $0002,Y
310:B4 35 // LDY $30,X
312:B6 00 // LDX $00,Y $02=0
314:D0 02
316:A1 00 // LDA ($00,X)
318: 7C 00 00 // JMP ($0000,X)
31B:B1 00 // LDA ($00),Y
31D:B2 00 // LDA ($00)
31F:6C 02 00 // JMP ($0002) = ($0000) -> 1234
.21 Fixed: Disasm display of "Zeropage, X" and "Zeropage, Y" targets weren't wrapping on the zero-page.
.20 Added: Single quoted chars in search are treated as opposite high-bit.
i.e. S D000,FFFF "NEX" 'T' searches for NEXT, with the 'T' having the high-bit set.
NEW: S search text or hex
NEW: SA search ASCII text (single quote refers to Apple Text)
NEW: ST search Apple text (single quote refers to ASCII text)
.19 Added: Search Results can now be (de) referenced via @
.18 Added: new operator '@'
.17 Fixed bug in _GetStartEnd(). i.e. D000,FFFF -> D000,CFFF (nothing searched!)
2.5.0.16 released with AppleWin 1.12.9.1
.16 Added: addr:byte [byte]
.15
.14 Fixed: Parses not to cook the args, until right before eating them
.13 Fixed: script to not append filename extension
.12 Fixed: command // to be comment
.11 Console sometimes wouldn't draw due to g_bDebuggerViewingAppleOutput being still incorrectly set to true
.10 Added: double forward slash on command line now ignores rest of command (same as C++ comment)
.9 Added: Legacy Apple "Monitor" Commands in ExecuteCommand()
####G (JMP $Address)
####L (Unassemble)
.8 Fixed: console input length not updated from script line length in CmdConfigRun()
.7 Fixed: script read hang in GetLinePointers()
.6 Fixed: Assembler storing one too many bytes in AssemblerPokeAddress()
.5 Fixed: Assembler not parsing target address in AssemblerGetArgs()
A 40C7
BRA $40D7
.4 Fixed: Assembler hang in AssemblerProcessDelayedSymols()
A 40C7
BRA $40D7
.3 Fixed: BPM to break ON the trigger, not after
Cleaned up Breakpoint code
.2 Fixed: BP address[,Length] to re-direct to BPX
.1 Added: Search Hex
SH Address,Len Byte [Byte ..]
Wildcard support
i.e.
SH FA00,FF 20 ? ? 20
.0 Added: DISK # PROTECT [0 | 1]
.0 Added: DISK # EJECT
2.5 split Debugger files
.21 Changed: Branch indicator now a little bigger +3 in DebugInitialize() (easier to read), indented ^,V to make the < stand out
U 300
E 300 D0 80 D0 FE D0 00
.20 Added: BW is now a seperate color scheme
.19 Added: ECHO CmdConfigEcho(), g_pConsoleFirstArg, and ArgsGet()
.18 Changed: BPX now defaults to setting breakpoint at cursor.
.17 Changed: BP now defaults to setting breakpoint at PC.
Patch 22
.16 fixed BPM. i.e. BPM C400,100. Boot: ulti4bo.dsk, breaks at: 81BC: STA ($88),Y $0088=$C480 ... C483: A0
Patch 21
.15 Fixed: CmdRegisterSet() equal sign is now optional. i.e. R A [=] Y
.14 Optimized: ArgsCook()
.13 Fixed: HELP "..." on ambigious command displays potential commands
.12 Added: Token %, calculator mod
.11 Added: Token /, calculator div
.10 Added: Token ^, calculator bit-xor
.9 Added: Token |, calculator bit-or
.8 Added: Token &, calculator bit-and
.7 Added: Mini-Assembler
.6 Added: MOTD (Message of the Day) : Moved from DebugBegin()
.5 Added: HELP SOURCE
.4 Fixed: SYMMAIN SYMUSER SYMSRC to now only search their respective symbol tables
.3 Added: _CmdSymbolList_Address2Symbol() _CmdSymbolList_Symbol2Address() now take bit-flags of which tables to search
.2 Added: EB alias for E
.1 Added: EW address value16 CmdMemoryEnterWord() to set memory with 16-Bit Values
2.4.2.0
.14 Added: SYM ! name to remove (user) symbol. _CmdSymbolsUpdate()
.13 Added: JSR address|symbol CmdJSR()
.12 Fixed: SYM address|symbol now reports if address or symbol not found. CmdSymbolsList()
.11 Fixed PageUp*, PagDn* not being recognized valid commands.
Patch 20
.10 Added: SYM2 symbolname = value
.9 Added: Undocumented command: FONT *
.8 Improved: FONT MODE # is now more accurate. i.e. U 301
FONT MODE 0 Classic line spacing (19 lines: 301 .. 313)
FONT MODE 1 Improved line spacing (20 lines: 301 .. 314)
FONT MODE 2 Optimal line spacing (22 lines: 301 .. 316)
.7 Fixed: ArgsCook() wasn't parsing #value properly. i.e. CALC #A+0A
.6 Cleanup: DrawWatches()
Patch 19
.5 Fixed: ProfileSave() doesn't strip '%' percent signs anymore. Changed: fprintf() to fputs()
Fixed: PROFILE RESET doesn't do dummy run of formatting profile data.
.4 Fixed: Exporting Profile data is now Excel/OpenOffice friendly.
Zero counts not listed on console. (They are when saved to file.)
Patch 18
.3 Fixed: Help_Arg_1() now copies command name into arg.name
.2 Fixed: Temporarily removed extra windows that aren't done yet from showing up: WINDOW_IO WINDOW_SYMBOLS WINDOW_ZEROPAGE WINDOW_SOURCE
.1 Added: PROFILE LIST -- can now view the profile data from witin the debugger!
2.4.1 Added: PROFILE SAVE -- now we can optimize (D0 BNE), and (10 BPL) sucking up the major of the emulator's time. WOOT!
Added: _6502GetOpmodeOpbyte() and _6502GetOpcodeOpmode()
.37 Fixed: Misc. commands not updating the console when processed
Patch 17
.36 Data window now shows text dump based on memory view set (ASCII or APPLE)
MA1 D0D0; DATA;
MT1 D0D0; DATA;
D D0D0; DATA;
.35 Renamed: ML1 ML2 to MT1 MT2 (Mem Text)
.34 Removed: MH1 MH2 (redundant MEM_VIEW_APPLE_TEXT)
.33 Fixed: Tweaking of Lo,Hi,Norm Ascii colors for Disasm Immediate & Memory Dumps
ML1 D0D0; MH2 D0D0; U FA75
.32 Changed: Lo now maps High Ascii to printable chars. i.e. ML1 D0D0
.31 Ctrl-Tab, and Ctrl-Shift-Tab now cycle next/prev windows.
.30 Added: Up,Down,PageUp,PageDown,Shift-PageUp,Shift-PageDown,Ctrl-PageUp,Ctrl-PageDown now scroll Data window
.29 Added: DATA window now shows memory dump
Patch 16
.28 Fixed: MONO wasn't setting monochrome scheme
.27 Changed: Registers now drawn in light blue for both DrawSubWindow_Info() [DrawRegisters()] and DrawBreakpoints()
Reg names in DrawSubWindow_Info no longer hard-coded: using g_areakpointSource[]
.26 Changed: DrawTargets() now shows Temp Address, and Final Address as orange (FG_INFO_ADDRESS)
.25 Changed: Flag Clear "FC" to "CL" (like 6502 mnemonic)
Changed: Flag Set "FS" to "SE" (like 6502 mnemonic)
Added: Mirrored 6502 Mnemonics to clear/set flags as commands
Moved: Legacy Flag Clear/Set commands "R?" "S?" to aliases
.24 Fixed OPCODE 2F: AM_INVALID1 -> AM_INVALID3
.23 Fixed OPCODE 0F: AM_INVALID1 -> AM_INVALID3
.22 Fixed: Shift-PageUp Shift-PageDown Ctrl-PageUp Ctrl-PageDown -> _CursorMoveUpAligned() & _CursorMoveDownAligned()
Bug: U F001, Ctrl-PageDown
Was using current disasm cursor address instead of top disasm cursor
.21 Fixed: _CursorMoveUpAligned() & _CursorMoveDownAligned() not wrapping around past FF00 to 0, and wrapping around past 0 to FF00
.20 Fixed: DisasmCalcTopFromCurAddress() causing bogus g_bDisasmCurBad when disasm invalid opcodes.
.19 g_aAddressingFormat[] -> g_aOpmodes[]
.18 Reverted .17 Changed StackPointer Input/Output. 'SP' is now back to 'S' (to be consistent with 6502 mnemonics)
Patch 15
.17 Changed StackPointer Input/Output from 'S' to 'SP'
.16 Fixed Go StopAddress [SkipAddress,Length] Trace() not working afterwards
.15 Added Info Regs color - Foreground and Background (orange)
Patch 14
.14 Added: Stack register now shows stack depth
.13 Bugfix: CmdBreakpointAddPC() operators now don't add extra breakpoints. i.e. BPX P < FA00
.12 Bugfix: DrawMemory() should draw memory byte for IO address: ML1 C000
Patch 13
NightlyBuild
.11 Disasm now looks up symbols +1,-1. i.e. U FA85, u FAAE
.10 Fixed '~' full console height
.9 Fixed: FindCommand() to update command found if not exact match
.8 Moved: Flag names from g_aFlagNames[] to "inlined" g_aBreakpointSource[]
.7 Extended: Calc to show binary values, and char is single-quoted
Nightly Build
.6 Bugfix: DrawTargets() should draw target byte for IO address: R PC FB33
.5 Extended: FONT "FontName" [Height]
.4 Extended: Go StopAddress [SkipAddress,Len]
.3 Added BPR F break on flag
Added ! new breakpoint operator: NOT_EQUAL
Patch 12
.2 Fixed: FindCommand() and FindParam() now returns 0 if name length is 0.
.1 Fixed: CmdHelpSpecific() wasn't printing help for 1 argument set by other commands
2.4.0.0 added: uber breakpoints: BPR [A|X|Y|PC|SP] [<,<=,=,>,>=] address
.2 fixed: parsing console input to detect immediate values on operators '+', '-'
You can now do register arithmetic: CALC A+X+Y
.1 added: mini-calculator 'CALC'
2.3.2 Rewrote parsing of console input
You can now do stuff like:
BPA INITAN+3
FONT "Lucida Console"
Patch 11
.19 fixed disasm: new color for disasm target address (orange)
U FF14 shouldn't colorize ',X'
U FF16 shouldn't colorize ',Y'
U FF21 shouldn't colorze 'symbol,Y'
Addr should be purple or orange to verify is fixed
.18 fixed disasm: all indirects to do symbol lookup, and colorized '('...')' as operators
.17 added disasm: syntax coloring to immediate mode prefix '#$'
.16 fixed disasm window to work with proportional fonts
.15 fixed buffer-overun crash in TextConvertTabsToSpaces()
Patch 10
.14 fixed help CATEGORY & SPECIFIC not working properly
.13 fixed bug of CODE not removing CODE window split
.12 fixed split window bug of re-sizing console too large
.11 removed hard-coded height of 16 for line height in various Draw*()
.10 added alpha feature: SOURCE2 now shows source assembly listing in bottom half of window DrawSourceLine()
.9 added P [#] to step number of times specified
.8 added Up-Arrow, Down-Arrow to scroll console by one line in full screen console window
.7 Added source level debugger to buffer complete assembly source listing file
.6 Added help for MA#, ML#, MH#
.5 added 3rd symbol table: SRC
.4 Added: seperated console input color, console output color
.3 SYM now prints which symbol table the symbol was found in.
.2 Added "DFB" to add assembler variable to user symbol table
.1 Fixed FindAddressFromSymbol() and FindSymbolFromAddress() to search user symbol table first
2.3.1 Renamed all globals to conform to coding standard
.10 added TAB to move the cursor back to the PC, if there is no console input
.9 fixed bug of setting reg, always moving the cursor back the PC
.8 added detection if font is proportional. Still doesn't draw properly, but slowly getting there.
.7 added colorized chars for regs, and memory ascii dump
.6 fixed console buffering BUG: ~,~,VERSION *
.5 added ~ to toggle full console on/off
.4 Fixed BUG: 'G' DebugContinueStepping() disasm window cursor getting out of sync: R PC FA62; U FB40; G FB53
.3 Fixed spelling of CmdWindowLast()
.2 Added undocumented "VERSION *" to show the number of bytes in the disasm "window"
.1 Fixed BUG: CmdTrace() disasm window cursor getting out of sync: Start, F7, PageUp, Space
2.3.0.0 Syntax coloring for the disassembler! Plus a fancy branch indicator to 'PR#6'! Rock on!
38 Fixed FindParam() bug of skipping every other parameter
37 Fixed _PARAM_*_BEGIN _PARAM_*_END _PARAM_*_NUM
36 Added Regs A,X,Y to show character
35 Added syntax coloring for DrawBreakpoints()
34 Fixed DrawMemory() viewing memory ASCII to map control-chars to a printable glyph
33 Fixed 0 addr not working in CmdMemoryCompare()
32 Added BG_INFO_INVERSE, FG_INFO_INVERSE for flag hilighting
31 Changed FG_INFO_OPCODE color to yellow
30 Fixed MDC 0, bug in CmdUnassemble()with garbage address, due to var not init, and symbol lookup failed
29 Fixed typos in help summary, A, and D
28 Fixed Scrolling with and without g_bDisasmCurBad
27 Found bug -- can't scroll up past $5FFF with Tom's Bug Sample .. CmdCursorLineUp() not checking for gbDisamBad;
26 Code cleanup: still have some '#define's to convert over to 'const'
25 Fixed disasm singularity not showing up in DrawDisassemblyLine()
24 Fixed an disasm singularity in DisasmCalcTopFromCurAddress() i.e. F7, G FB53, then Space (to trace) once.
23 Fixed bug Watches not being cleared: _ClearViaArgs()
22 Code Cleanup: Moved most ExtTextOut() to DebugDrawText()
21 Changed End to jump $8000, due to redundant funcationality of Home, and wrap-around.
20 Added: DisasmCalc*From*()
19 New colors Enum & Array
18 implemented RTS. fixed RET to use common stack return address logic.
17 fixed console PageUp PageDn not refreshing console
.2 WINDOW_CONSOLE &
Implemented commands: MemoryDumpAscii*(): MA1 MA2 ML1 ML2 MH1 MH2
16 removed BOOL Cmd*(), replaced with UPDATE_*
15 New Console Scrolling
14 extended FindParam() to specify [begin,end]
13 added split window infastructure, added Window_e
12 fixed PARAM aliases
11 fixed FindParam() to allow aliases
10 fixed SYM1 CLEAR, SYM2 CLEAR not actuall clearing
9 fixed BufferOuput() in DebugBegin() clobbering first buffered output line
.1 since source level debugging is a minor feature
8 added command "VERSION *" to show internal debug info
7 fixed mem enter not refreshing screen
6 added source level debuggig back-end
5 fixed "SYM 0" bug
*/

View file

@ -1,244 +0,0 @@
Requests (Wishlist):
====================
* HOME/CLS Clear Screen
* DT Define Target
Default disassembly:
D7AF:A9 13 LDA #$13
D7B1:A0 E9 LDY #$E9
Correct disassembly:
DT D7AF:B7B2
D7AF:A9 13 LDA #<CON.ONE
D7B1:A0 E9 LDY #>CON.ONE
* DF Define FAC
* Cleanup Applesoft listing
* DB
* DA
* DF
* Read/Write Track/Sector
DISK 2 READ 11 F 800
DISK 2 WRITE 11 F 800
* Save/Load memory to mounted DOS3.3 disk
DSAVE "LOGO.HGR",2000:3FFF,6,1
DLOAD "LOGO.HGR"
* Save/load memory to mounted ProDOS disk/hard drive
PREFIX
PSAVE "LOGO.HGR",2000:3FFF
PLOAD "LOGO.HGR"
* [ ] HELP BPM on read/write
Nail down syntax:
BPM A7 = R
BPM A7 = W
BPM R A7
BPM W A7
Add support 65D02 to break on read/write memory location
* [ ] HELP BPM
Add help document and examples
* [ ] Fix BUG: (partial) symbols starting with E not parsed propery
sym ErasePlayer1 = 65D3
sym ErasePlayer
Address not found: $000E
* [ ] Color code error messages in red foreground
- HELP CD: Document examples
Helps needs to list:
SEE: HELP PWD
- Allow EQUs to be directly entered in
Foo EQU $1234
Need to check if we have 3 params, 2nd param is EQU, 3rd param is address
- Fix BUG: 0:1 Doesn't work
Work-around, use two hex digits for the address:
00:1
- Debugger: wildcard search support for symbols
SYMBASIC MICRO*
- Debugger:Ability to turn on/off alternative odd/even background coloring in disasm
DISASM ROWCOLOR 0
DISASM ROWCOLOR 0
Why? Default to a custom (black?) background, and then have ANALYSE color-code
the background line color to make it easier to visualize sections.
i.e. See BrkDown reverse engineering PDF -- TODO: Need link
- Debugger: FUNC address:address
Markup function block, with alternating background colors
FUNC 300:31F
FUNC 320:33F
- Debugger: Ability to hide Regs panel
DISASM REGS 0 // Hide Regs and Breakpoints
DISASM REGS 1 // Show Regs only
DISASM REGS 2 // Show Breakpoints only
DISASM REGS 3 // Show Regs and Breakpoints (DEFAULT)
- Debugger: SPRITE <ADDR> <WIDTH> <HEIGHT> [SPAN]
- Debugger: HGRX <addr>
view address as HGR
i.e. HGRX 6000
i.e. HGRX 8000
- Debugger: Color code commands in light blue
Currently, everything is in white, making it hard to see input and output
- Debugger: Command history
Once any non-whitespace character has been entered, Up arrow and Down arrow
should scroll through prev and next command history respectively
- Debugger: Command line editing
Left Arrow Move Cursor Left
Right Arrow Move Cursor Right
Ctrl-A Beginning of Line
Ctrl-D Delete Character
Ctrl-E End of Line
- Debugger: List symbol table
SYMASM LIST
SYMUSER1 LIST
- Debugger: Document: Add help example to list all symbol tables
HELP SYMMAIN
SYMMAIN *
- Debugger: Markup Byte with C_ prefix instead of B_
DB 123
Will auto-generate symbol in SYMASM
B_123
This should be:
G_123
- Debugger: ANALYSE <range>
Utility to help in automatic disassembly.
Like "Sourcer" or "BrkDown"
Automatically markup labels for
* JSR
* JMP
* RTS
* Branches
* LD? abs
* LD? abs,X
* LD? abs,Y
* etc.
Should respect existing `X <range>` as data
Auto-generated labels:
B_#### = Branch target address
F_#### = Function (or F_, or J_, or L_), new command: DF
G_#### = Global Byte
P_#### = Pointer
R_#### = Function return
Z_## = Zero Page
Don't know how to generate:
A_#### = Data Address
W_#### = Data Word
- Debugger: Document: SYMASM and SYMUSER differences
SYMASM data symbols placed here via DB Foo = 100
SYMUSER func symbols placed here via SYM Bar = 200
- Debugger: Symbol tables for DOS 3.3 and ProDOS
SYMUSER2 -> SYMDOS33
SYMSOURCE2 -> SYMPRODOS
- Debugger: Autoexec !
.AWD = Microsoft Fax
.A2D = Apple 2 Debug
.AW2 = AppleWin Disk = icon of app, disk image(s)
RUN AppleWin.a2d // Official AppleWin Supplied Debug Config
RUN Debugger.a2d // User supplied AppleWin Debug Config
- Debugger: Custom Soft switches
SOFT CLEAR
SOFT ADD C050
SOFT ADD 50
SOFT LIST
SOFT LOAD
SOFT SAVE
- New Debugger features:
> 1 SCR shows what the Apple monitor should look like at the current point
> 2 MDS same as ME but shows strings (ie "ABC" instead of "c1 c2 c3"
> 3 TS text search (and may be a hex search function too ?"
- Incorporate Laine Houghton's modifications to debugger (?)
- Source level debugging using WordPad & Merlin asm output (tell WordPad to FIND / GOTO line).
Implemented:
============
* [x] Debugger V2.9.0.14: Cycle Profiling, use PROFILE RESET, and PROFILE LIST.
. DONE: v16.0.0.0 DEBUGGER: (use F7): RESET button to break into the Monitor (preserving memory).
. DONE: v16.0.0.0: DEBUGGER: Ability to search and modify for a value in memory in order to cheat in some games.
. DONE: v16.0.0.0: DEBUGGER: Hex search in debugger
* [x] Version: ?
Debugger: Turn off target columns in dis-assembly
Use:
DISASM TARGET 0 // off
DISASM TARGET 1 // show target byte
DISASM TARGET 2 // show target address
DISASM TARGET 3 // Show target address and byte (DEFAULT)
. Debugger: BLOAD with no arguments should print current save path
. Debugger: FIX BLOAD with bad path!! (should use path of last disk load!)
. Debugger: FIX BSAVE with bad path!! (should use path of last disk load!)
. Debugger: merlin "filename",S6,D1
. Debugger: COLOR RESET
. Debugger: COLOR SAVE ["filename"]
. Debugger: COLOR LOAD ["filename"]
. DONE: help f
. DONE: help m
. DONE: BC:##
. DONE: BD:##
. DONE: BE:##
. DONE: help f
. DONE: help m
. DONE: EA:##
. DONE: E8:##
. DONE: a:##
. DONE: d:##
. DONE: Debugger 2.6.1.19: ADD: AppleSoft symbols to Symbol Table
. DONE: v16.0.0.0: Video: PrintScreen (save to disk with auto file numbering.)
. DONE: v16.0.0.0: Debugger: TEXT show current 40-col text page
. DONE: v16.0.0.0: Debugger: TEXT80 show current 80-col text page
. DONE: v16.0.0.0: Debugger: GR show current lo-res graphics page
. DONE: v16.0.0.0: Debugger: HGR show current hi-res graphis page
. DONE: v16.0.0.0: Debugger: DGR show current double hi-res graphics page
. DONE: v16.0.0.0: Debugger: TEXT1 Show 40 Column Text Page 1
. DONE: v16.0.0.0: Debugger: TEXT2 Show 40 Column Text Page 2
. DONE: v16.0.0.0: Debugger: TEXT81 1 Show 40 Column Text Page 1
. DONE: v16.0.0.0: Debugger: TEXT82 2 Show 40 Column Text Page 1
. DONE: v16.0.0.0: Debugger: HGR1 show Hi-Res Page 1
. DONE: v16.0.0.0: Debugger: HGR2 show Hi-Res Page 2
. DONE: v16.0.0.0: Debugger: DHGR1 show Double Hi-Res Page 1
. DONE: v16.0.0.0: Debugger: DHGR2 show Double Hi-Res Page 2
. DONE: Debugger: shift+ins to paste from clipboard (use Ctrl-V to paste.)

View file

@ -1,806 +0,0 @@
;*
;*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* * * *
;* * M U S T B E O N P A G E B O U N D A R Y * *
;* * * *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* *
;* ProDOS DISK ][ Formatter Device Driver *
;* *
;* Copyright Apple Computer, Inc., 1982-1984 *
;* *
;* Enter with ProDOS device number in A-register: *
;* Zero = bits 0, 1, 2, 3 *
;* Slot No.= bits 4, 5, 6 *
;* Drive 1 = bit 7 off *
;* Drive 2 = bit 7 on *
;* *
;* Error codes returned in A-register: *
;* $00 : Good completion *
;* $27 : Unable to format *
;* $2B : Write-Protected *
;* $33 : Drive too SLOW *
;* $34 : Drive too FAST *
;* NOTE: Carry flag is set if error occured. *
;* *
;* Uses zero page locations $D0 thru $DD *
;* *
;* - - - - - - - - - - - - - - - - - - - - - - - - - - *
;* Modified 15 December 1983 to disable interrupts *
;* Modified 20 December 1983 to increase tolerance *
;* of disk speed check *
;* Modified 30 March 1983 to increase tolerance of *
;* disk speed *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * *
;
; Disassembly and annotations by TC (Nov. 2017)
; . disassembly from prodos_utility.dsk (ProDOS 1.1.1)
;
;
; Entrypoint
; Pre: A=slot*16, ($DE)=#$01=volume#
;
7900- 08 PHP
7901- 78 SEI ; interrupt disable
7902- 20 3A 79 JSR $793A
7905- 28 PLP ; restore interrupt ena/dis state
7906- C9 00 CMP #$00
7908- D0 02 BNE $790C
790A- 18 CLC ; res=OK
790B- 60 RTS
; error:
790C- C9 02 CMP #$02
790E- D0 05 BNE $7915
7910- A9 2B LDA #$2B ; MLI error: write protected
7912- 4C 21 79 JMP $7921
;
7915- C9 01 CMP #$01
7917- D0 05 BNE $791E
7919- A9 27 LDA #$27 ; MLI error: I/O error
791B- 4C 21 79 JMP $7921
;
791E- 18 CLC
791F- 69 30 ADC #$30 ; =>$33 or $34
7921- 38 SEC ; res=ERROR
7922- 60 RTS
; end
; Seek to track
; Pre: A=trk#, X=slot*16
7923- 0A ASL ; A=half track
7924- 0E 24 7D ASL $7D24
7927- 8D 36 7D STA $7D36
792A- 8A TXA
792B- 4A LSR
792C- 4A LSR
792D- 4A LSR
792E- 4A LSR ; A=slot
792F- A8 TAY ; Y=slot
7930- AD 36 7D LDA $7D36
7933- 20 C6 7A JSR $7AC6
7936- 4E 24 7D LSR $7D24
7939- 60 RTS
; ??? (end)
; FormatDisk (called from Entrypoint)
; Pre: A=slot*16, A.b7=drive#
793A- AA TAX
793B- 29 70 AND #$70
793D- 8D 23 7D STA $7D23 ; set slot*16
7940- 8A TXA
7941- AE 23 7D LDX $7D23
7944- 2A ROL ; C=drive#
7945- A9 00 LDA #$00
7947- 2A ROL
7948- D0 06 BNE $7950
794A- BD 8A C0 LDA $C08A,X ; select drive-1
794D- 4C 53 79 JMP $7953
7950- BD 8B C0 LDA $C08B,X ; select drive-2
;
7953- BD 89 C0 LDA $C089,X ; motor on
7956- A9 D7 LDA #$D7
7958- 85 DA STA $DA ; ($DA) = #$D7
795A- A9 50 LDA #$50
795C- 8D 24 7D STA $7D24 ; ($7D24) = 80
; Seek to track 0
795F- A9 00 LDA #$00
7961- 20 23 79 JSR $7923
; Wait (until motor up to speed?)
7964- A5 DA LDA $DA ; read_vol
7966- F0 06 BEQ $796E
7968- 20 3A 7C JSR $7C3A ; Wait incs read_vol
796B- 4C 64 79 JMP $7964
; Init vars/consts
796E- A5 DE LDA $DE
7970- 85 D3 STA $D3 ; ($D3) = write_vol = 1 (constant)
7972- A9 AA LDA #$AA
7974- 85 D0 STA $D0 ; ($D0) = #$AA (constant)
7976- AD 20 7D LDA $7D20 ; max_gap3
7979- 18 CLC
797A- 69 02 ADC #$02
797C- 85 D4 STA $D4 ; ($D4) = max_gap3 + 2
797E- A9 00 LDA #$00
7980- 85 D1 STA $D1 ; ($D1) = write_trk = 0
; Write next track
7982- A5 D1 LDA $D1
7984- AE 23 7D LDX $7D23
7987- 20 23 79 JSR $7923
798A- AE 23 7D LDX $7D23
798D- BD 8D C0 LDA $C08D,X ; load disk write prot to latch(b7=1 => write protected)
7990- BD 8E C0 LDA $C08E,X ; set read mode & read latch
7993- A8 TAY
7994- BD 8E C0 LDA $C08E,X ; set read mode
7997- BD 8C C0 LDA $C08C,X ; read nib to latch & read latch
799A- 98 TYA
799B- 10 05 BPL $79A2
799D- A9 02 LDA #$02 ; Error = write protected
799F- 4C F9 79 JMP $79F9
; Write track
79A2- 20 63 7C JSR $7C63
79A5- 90 0E BCC $79B5
; Error...
79A7- A9 01 LDA #$01
79A9- A4 D4 LDY $D4
79AB- CC 1F 7D CPY $7D1F
79AE- B0 02 BCS $79B2
79B0- A9 04 LDA #$04
79B2- 4C F9 79 JMP $79F9 ; error code = 4 (Drive too FAST)
; Succeeded writing track, now check gap3_count tolerance
79B5- A4 D4 LDY $D4
79B7- CC 1F 7D CPY $7D1F
79BA- B0 05 BCS $79C1
79BC- A9 04 LDA #$04
79BE- 4C F9 79 JMP $79F9 ; error code = 4 (Drive too FAST)
;
79C1- CC 20 7D CPY $7D20
79C4- 90 05 BCC $79CB
79C6- A9 03 LDA #$03
79C8- 4C F9 79 JMP $79F9 ; error code = 3 (Drive too SLOW)
; Read a max of 15 (not 16) address fields, looking for sector 0
79CB- AD 22 7D LDA $7D22 ; A = #$10 (constant)
79CE- 8D 25 7D STA $7D25
;
79D1- CE 25 7D DEC $7D25
79D4- D0 05 BNE $79DB
79D6- A9 01 LDA #$01
79D8- 4C F9 79 JMP $79F9 ; error code = 1 (I/O error)
79DB- AE 23 7D LDX $7D23
79DE- 20 6A 7A JSR $7A6A ; Read address field
79E1- B0 EE BCS $79D1
79E3- A5 D8 LDA $D8 ; sector 0?
79E5- D0 EA BNE $79D1 ; ... no, so keep reading
; Got address field for sector 0:
; Verify sector
79E7- AE 23 7D LDX $7D23
79EA- 20 07 7A JSR $7A07 ; ???
79ED- B0 E2 BCS $79D1
; Prep for formatting next track
79EF- E6 D1 INC $D1 ; inc write_trk
79F1- A5 D1 LDA $D1
79F3- C9 23 CMP #$23 ; done 35 tracks?
79F5- 90 8B BCC $7982 ; ... no, so write next track
79F7- A9 00 LDA #$00 ; res = OK
79F9- 48 PHA ; push error code
79FA- AE 23 7D LDX $7D23
79FD- BD 88 C0 LDA $C088,X
7A00- A9 00 LDA #$00
7A02- 20 23 79 JSR $7923
7A05- 68 PLA ; pop error code
7A06- 60 RTS
; end
;
; Verify sector
;
; Read data prologue (D5 AA AD) within 32 nibbles
7A07- A0 20 LDY #$20
7A09- 88 DEY
7A0A- F0 5C BEQ $7A68
7A0C- BD 8C C0 LDA $C08C,X
7A0F- 10 FB BPL $7A0C
7A11- 49 D5 EOR #$D5
7A13- D0 F4 BNE $7A09
7A15- EA NOP
7A16- BD 8C C0 LDA $C08C,X
7A19- 10 FB BPL $7A16
7A1B- C9 AA CMP #$AA
7A1D- D0 F2 BNE $7A11
7A1F- A0 56 LDY #$56 ; Y=#$56
7A21- BD 8C C0 LDA $C08C,X
7A24- 10 FB BPL $7A21
7A26- C9 AD CMP #$AD
7A28- D0 E7 BNE $7A11
; Read data
7A2A- A9 00 LDA #$00 ; ($D5) = #$FF = Number of #$96 nibbles to read
7A2C- 88 DEY
7A2D- 84 D5 STY $D5
7A2F- BD 8C C0 LDA $C08C,X
7A32- 10 FB BPL $7A2F
7A34- C9 96 CMP #$96
7A36- D0 30 BNE $7A68
7A38- A4 D5 LDY $D5
7A3A- D0 F0 BNE $7A2C
;
7A3C- 84 D5 STY $D5
7A3E- BD 8C C0 LDA $C08C,X
7A41- 10 FB BPL $7A3E
7A43- C9 96 CMP #$96
7A45- D0 21 BNE $7A68
7A47- A4 D5 LDY $D5
7A49- C8 INY
7A4A- D0 F0 BNE $7A3C
;
7A4C- BD 8C C0 LDA $C08C,X
7A4F- 10 FB BPL $7A4C
7A51- C9 96 CMP #$96
7A53- D0 13 BNE $7A68
; Read data epilogue (DE AA)
7A55- BD 8C C0 LDA $C08C,X
7A58- 10 FB BPL $7A55
7A5A- C9 DE CMP #$DE
7A5C- D0 0A BNE $7A68 ; error
7A5E- EA NOP
7A5F- BD 8C C0 LDA $C08C,X
7A62- 10 FB BPL $7A5F
7A64- C9 AA CMP #$AA
7A66- F0 5C BEQ $7AC4 ; CLC & RTS
7A68- 38 SEC ; error
7A69- 60 RTS
; end
;
; Read address field
;
; Post:
; ($D7) = Chksum
; ($D8) = Sec
; ($D9) = Trk
; ($DA) = Vol
;
; Carry set => error:
; . max nibble count read before addr prologue
; . chksum error
; . addr epilogue not correct
;
; Init: nibble count until error: 3+3*256 = 3+768 = 771
7A6A- A0 FC LDY #$FC
7A6C- 84 DC STY $DC
; Read until address prologue (D5 AA 96)
7A6E- C8 INY
7A6F- D0 04 BNE $7A75
7A71- E6 DC INC $DC
7A73- F0 F3 BEQ $7A68 ; error
7A75- BD 8C C0 LDA $C08C,X
7A78- 10 FB BPL $7A75
7A7A- C9 D5 CMP #$D5
7A7C- D0 F0 BNE $7A6E
7A7E- EA NOP
7A7F- BD 8C C0 LDA $C08C,X
7A82- 10 FB BPL $7A7F
7A84- C9 AA CMP #$AA
7A86- D0 F2 BNE $7A7A
7A88- A0 03 LDY #$03 ; Y=3
7A8A- BD 8C C0 LDA $C08C,X
7A8D- 10 FB BPL $7A8A
7A8F- C9 96 CMP #$96
7A91- D0 E7 BNE $7A7A
; Read 4&4
; ($D7) = Chksum
; ($D8) = Sec
; ($D9) = Trk
; ($DA) = Vol
7A93- A9 00 LDA #$00
7A95- 85 DB STA $DB ; update chksum
7A97- BD 8C C0 LDA $C08C,X
7A9A- 10 FB BPL $7A97
7A9C- 2A ROL
7A9D- 85 DD STA $DD
7A9F- BD 8C C0 LDA $C08C,X
7AA2- 10 FB BPL $7A9F
7AA4- 25 DD AND $DD
7AA6- 99 D7 00 STA $00D7,Y
7AA9- 45 DB EOR $DB
7AAB- 88 DEY
7AAC- 10 E7 BPL $7A95
;
7AAE- A8 TAY
7AAF- D0 B7 BNE $7A68 ; chksum error
; Read epilogue (DE AA)
7AB1- BD 8C C0 LDA $C08C,X
7AB4- 10 FB BPL $7AB1
7AB6- C9 DE CMP #$DE
7AB8- D0 AE BNE $7A68 ; error
7ABA- EA NOP
7ABB- BD 8C C0 LDA $C08C,X
7ABE- 10 FB BPL $7ABB
7AC0- C9 AA CMP #$AA
7AC2- D0 A4 BNE $7A68 ; error
7AC4- 18 CLC ; res = OK
7AC5- 60 RTS
; end
; Seek to half track
; Pre: A=half track#, X=slot*16, Y=slot
7AC6- 8E 37 7D STX $7D37
7AC9- 8D 36 7D STA $7D36
7ACC- CD 24 7D CMP $7D24
7ACF- F0 5C BEQ $7B2D
7AD1- A9 00 LDA #$00
7AD3- 8D 38 7D STA $7D38
7AD6- AD 24 7D LDA $7D24
7AD9- 8D 39 7D STA $7D39
7ADC- 38 SEC
7ADD- ED 36 7D SBC $7D36
7AE0- F0 37 BEQ $7B19
7AE2- B0 07 BCS $7AEB
7AE4- 49 FF EOR #$FF
7AE6- EE 24 7D INC $7D24
7AE9- 90 05 BCC $7AF0
7AEB- 69 FE ADC #$FE
7AED- CE 24 7D DEC $7D24
7AF0- CD 38 7D CMP $7D38
7AF3- 90 03 BCC $7AF8
7AF5- AD 38 7D LDA $7D38
7AF8- C9 0C CMP #$0C
7AFA- B0 01 BCS $7AFD
7AFC- A8 TAY
7AFD- 38 SEC
7AFE- 20 1D 7B JSR $7B1D
7B01- B9 4B 7C LDA $7C4B,Y
7B04- 20 3A 7C JSR $7C3A
7B07- AD 39 7D LDA $7D39
7B0A- 18 CLC
7B0B- 20 20 7B JSR $7B20
7B0E- B9 57 7C LDA $7C57,Y
7B11- 20 3A 7C JSR $7C3A
7B14- EE 38 7D INC $7D38
7B17- D0 BD BNE $7AD6
7B19- 20 3A 7C JSR $7C3A
7B1C- 18 CLC
7B1D- AD 24 7D LDA $7D24
7B20- 29 03 AND #$03
7B22- 2A ROL
7B23- 0D 37 7D ORA $7D37
7B26- AA TAX
7B27- BD 80 C0 LDA $C080,X
7B2A- AE 37 7D LDX $7D37
7B2D- 60 RTS
; end
;
; Write gap2, Data field, data
;
7B2E- 20 0E 7D JSR $7D0E
7B31- BD 8D C0 LDA $C08D,X
7B34- BD 8E C0 LDA $C08E,X
; Write gap2 (5x 10-bit FF)
7B37- A9 FF LDA #$FF
7B39- 9D 8F C0 STA $C08F,X
7B3C- DD 8C C0 CMP $C08C,X
7B3F- 48 PHA
7B40- 68 PLA
7B41- EA NOP
7B42- A0 04 LDY #$04
7B44- 48 PHA
7B45- 68 PLA
7B46- 20 A5 7B JSR $7BA5
7B49- 88 DEY
7B4A- D0 F8 BNE $7B44
; Write Data prologue (D5 AA AD)
7B4C- A9 D5 LDA #$D5
7B4E- 20 A4 7B JSR $7BA4
7B51- A9 AA LDA #$AA
7B53- 20 A4 7B JSR $7BA4
7B56- A9 AD LDA #$AD
7B58- 20 A4 7B JSR $7BA4
; Write 86 x #$96
7B5B- A0 56 LDY #$56
7B5D- EA NOP
7B5E- EA NOP
7B5F- EA NOP
7B60- D0 03 BNE $7B65
7B62- 20 0E 7D JSR $7D0E ; RTS
7B65- EA NOP
7B66- EA NOP
7B67- A9 96 LDA #$96
7B69- 9D 8D C0 STA $C08D,X
7B6C- DD 8C C0 CMP $C08C,X
7B6F- 88 DEY
7B70- D0 F0 BNE $7B62
; Write 256 x #$96
7B72- 24 00 BIT $00
7B74- EA NOP
7B75- 20 0E 7D JSR $7D0E ; RTS
7B78- A9 96 LDA #$96
7B7A- 9D 8D C0 STA $C08D,X
7B7D- DD 8C C0 CMP $C08C,X
7B80- A9 96 LDA #$96
7B82- EA NOP
7B83- C8 INY
7B84- D0 EF BNE $7B75
; Write Data epilogue (DE AA EB FF)
7B86- 20 A4 7B JSR $7BA4
7B89- A9 DE LDA #$DE
7B8B- 20 A4 7B JSR $7BA4
7B8E- A9 AA LDA #$AA
7B90- 20 A4 7B JSR $7BA4
7B93- A9 EB LDA #$EB
7B95- 20 A4 7B JSR $7BA4
7B98- A9 FF LDA #$FF
7B9A- 20 A4 7B JSR $7BA4
;
7B9D- BD 8E C0 LDA $C08E,X ; read latch (and set read mode)
7BA0- BD 8C C0 LDA $C08C,X ; read latch
7BA3- 60 RTS
; Write nibble
7BA4- EA NOP
; Write nibble
7BA5- 48 PHA
7BA6- 68 PLA
7BA7- 9D 8D C0 STA $C08D,X
7BAA- DD 8C C0 CMP $C08C,X
7BAD- 60 RTS
;
; Write gap1(sector-0) or gap3 & address field
; Pre: X=slot*16, Y=gap count
;
; Check if disk is write enabled
7BAE- 38 SEC ; ? (2 cycles)
7BAF- BD 8D C0 LDA $C08D,X ; load write protect to latch (b7)
7BB2- BD 8E C0 LDA $C08E,X ; read latch (and set read mode)
7BB5- 30 5E BMI $7C15 ; branch if write protected
; Gap1 or Gap3: Initial 10-bit FF sync byte
7BB7- A9 FF LDA #$FF
7BB9- 9D 8F C0 STA $C08F,X ; set write mode & write data to latch
7BBC- DD 8C C0 CMP $C08C,X ; start writing latch (start shifting)
7BBF- 48 PHA
7BC0- 68 PLA
; Gap1 or Gap3: 10-bit FF sync byte (40 cycle loop)
; Pre: A=#$FF, Y=gap count
7BC1- 20 1B 7C JSR $7C1B ; RTS
7BC4- 20 1B 7C JSR $7C1B ; RTS
7BC7- 9D 8D C0 STA $C08D,X ; write data to latch
7BCA- DD 8C C0 CMP $C08C,X ; start writing latch (start shifting)
7BCD- EA NOP
7BCE- 88 DEY
7BCF- D0 F0 BNE $7BC1 ; NB. branch taken cross pages
; Write address prologue (D5 AA 96)
7BD1- A9 D5 LDA #$D5
7BD3- 20 2D 7C JSR $7C2D
7BD6- A9 AA LDA #$AA
7BD8- 20 2D 7C JSR $7C2D
7BDB- A9 96 LDA #$96
7BDD- 20 2D 7C JSR $7C2D
; Write address field
7BE0- A5 D3 LDA $D3 ; Vol=01
7BE2- 20 1C 7C JSR $7C1C
7BE5- A5 D1 LDA $D1 ; Trk
7BE7- 20 1C 7C JSR $7C1C
7BEA- A5 D2 LDA $D2 ; Sec
7BEC- 20 1C 7C JSR $7C1C
7BEF- A5 D3 LDA $D3
7BF1- 45 D1 EOR $D1
7BF3- 45 D2 EOR $D2
7BF5- 48 PHA ; Chksum
7BF6- 4A LSR
7BF7- 05 D0 ORA $D0 ; OR with #$AA
; write 4&4 chksum in A
7BF9- 9D 8D C0 STA $C08D,X
7BFC- BD 8C C0 LDA $C08C,X
7BFF- 68 PLA
7C00- 09 AA ORA #$AA
7C02- 20 2C 7C JSR $7C2C
; write address epilogue (DE AA EB)
7C05- A9 DE LDA #$DE
7C07- 20 2D 7C JSR $7C2D
7C0A- A9 AA LDA #$AA
7C0C- 20 2D 7C JSR $7C2D
7C0F- A9 EB LDA #$EB
7C11- 20 2D 7C JSR $7C2D
7C14- 18 CLC
7C15- BD 8E C0 LDA $C08E,X
7C18- BD 8C C0 LDA $C08C,X
7C1B- 60 RTS
; write 4&4 byte in A
7C1C- 48 PHA
7C1D- 4A LSR
7C1E- 05 D0 ORA $D0
7C20- 9D 8D C0 STA $C08D,X
7C23- DD 8C C0 CMP $C08C,X
7C26- 68 PLA
7C27- EA NOP
7C28- EA NOP
7C29- EA NOP
7C2A- 09 AA ORA #$AA
7C2C- EA NOP
; fall through...
; 32 cycle write
7C2D- EA NOP
7C2E- 48 PHA
7C2F- 68 PLA
7C30- 9D 8D C0 STA $C08D,X
7C33- DD 8C C0 CMP $C08C,X
7C36- 60 RTS
; end
; ??? (unused)
7C37- C8 INY
7C38- A0 C3 LDY #$C3
; ??? (end)
; Wait: A * (2 + (5*16) + 5+3+5+2+2+3) = A * 102 cycles (roughly)
; Pre: A = wait value
7C3A- A2 11 LDX #$11 ; 2cy
7C3C- CA DEX ; 2cy
7C3D- D0 FD BNE $7C3C ; 2+1 (branch taken)
7C3F- E6 D9 INC $D9 ; 5cy / read_trk++
7C41- D0 02 BNE $7C45 ; 2+1 (branch taken)
7C43- E6 DA INC $DA ; 5cy / read_vol++
7C45- 38 SEC ; 2cy
7C46- E9 01 SBC #$01 ; 2cy
7C48- D0 F0 BNE $7C3A ; 2+1 (branch taken)
7C4A- 60 RTS
; end
.data
7C4B: ; 12 bytes
!byte $01,$30,$28
!byte $24,$20,$1E
!byte $1D,$1C,$1C
!byte $1C,$1C,$1C
7C57: ; 12 bytes
!byte $70,$2C,$26
!byte $22,$1F,$1E
!byte $1D,$1C,$1C
!byte $1C,$1C,$1C
.code
;
; Write track and verify track
;
; write gap1 & address field
7C63- AD 21 7D LDA $7D21
7C66- 85 D6 STA $D6 ; ($D6) = 3 = timeout * 256?
;
7C68- A0 80 LDY #$80 ; gap1 has gap count = 128
7C6A- A9 00 LDA #$00
7C6C- 85 D2 STA $D2 ; sector = 0
7C6E- 4C 73 7C JMP $7C73
; write gap3 & address field
7C71- A4 D4 LDY $D4 ; gap3_count
;
7C73- AE 23 7D LDX $7D23 ; slot*16
7C76- 20 AE 7B JSR $7BAE ; write gap1|3 & address field
7C79- 90 03 BCC $7C7E
; error:
7C7B- 4C 0E 7D JMP $7D0E
; success:
; write gap2, data field, data
7C7E- AE 23 7D LDX $7D23
7C81- 20 2E 7B JSR $7B2E
7C84- E6 D2 INC $D2 ; inc write_sector
7C86- A5 D2 LDA $D2
7C88- C9 10 CMP #$10 ; done 16 sectors?
7C8A- 90 E5 BCC $7C71 ; ... no, write next gap3 & sector
;
; verify track
;
7C8C- A0 0F LDY #$0F
7C8E- 84 D2 STY $D2 ; write_sector = 15 (used as sector loop counter)
7C90- AD 22 7D LDA $7D22 ; A = #$10 (constant)
7C93- 8D 25 7D STA $7D25 ; Set retry count = #$10
; Fill sector_flag struct with #$10
7C96- 99 26 7D STA $7D26,Y
7C99- 88 DEY
7C9A- 10 FA BPL $7C96
7C9C- A5 D4 LDA $D4 ; gap3_count
7C9E- 38 SEC
7C9F- E9 05 SBC #$05
7CA1- A8 TAY
; Delay for: (gap3_count-5) * 40 cycles
7CA2- 20 0E 7D JSR $7D0E ; 12cy / RTS
7CA5- 20 0E 7D JSR $7D0E ; 12cy / RTS
7CA8- 48 PHA ; 3
7CA9- 68 PLA ; 4
7CAA- EA NOP ; 2
7CAB- EA NOP ; 2
7CAC- 88 DEY ; 2
7CAD- D0 F3 BNE $7CA2 ; 3 (taken)
; = 40 cycles
7CAF- AE 23 7D LDX $7D23
7CB2- 20 6A 7A JSR $7A6A ; Read address field
7CB5- B0 3C BCS $7CF3
7CB7- A5 D8 LDA $D8
7CB9- F0 13 BEQ $7CCE ; read sector 0?
; ... No:
7CBB- C6 D4 DEC $D4 ; gap3_count--
7CBD- A5 D4 LDA $D4
7CBF- CD 1F 7D CMP $7D1F
7CC2- B0 2F BCS $7CF3 ; rewrite track
7CC4- 38 SEC ; error: gap3_count too small
7CC5- 60 RTS
; Verify next sector
7CC6- AE 23 7D LDX $7D23
7CC9- 20 6A 7A JSR $7A6A ; Read address field
7CCC- B0 1A BCS $7CE8
;
7CCE- AE 23 7D LDX $7D23
7CD1- 20 07 7A JSR $7A07 ; Read sector data
7CD4- B0 12 BCS $7CE8
7CD6- A4 D8 LDY $D8 ; Y=read sector#
7CD8- B9 26 7D LDA $7D26,Y
7CDB- 30 0B BMI $7CE8 ; -ve if already read this sector
7CDD- A9 FF LDA #$FF
7CDF- 99 26 7D STA $7D26,Y ; sector_flag[Y] := #$FF
7CE2- C6 D2 DEC $D2 ; write_sector--
7CE4- 10 E0 BPL $7CC6
7CE6- 18 CLC ; res = OK
7CE7- 60 RTS
;
7CE8- CE 25 7D DEC $7D25 ; retry_count--
7CEB- D0 D9 BNE $7CC6
7CED- C6 D6 DEC $D6
7CEF- D0 02 BNE $7CF3
7CF1- 38 SEC ; error (timeout)
7CF2- 60 RTS
; Retry 32 times to read sector #$0F
; On success: rewrite track
7CF3- AD 22 7D LDA $7D22 ; A = #$10 (constant)
7CF6- 0A ASL ; A = #$20
7CF7- 8D 25 7D STA $7D25 ; Set retry count = #$20
;
7CFA- AE 23 7D LDX $7D23
7CFD- 20 6A 7A JSR $7A6A ; Read address field
7D00- B0 06 BCS $7D08
7D02- A5 D8 LDA $D8
7D04- C9 0F CMP #$0F ; read sector == #$0F? (ie. last sector on track)
7D06- F0 07 BEQ $7D0F ; ... yes: wait & rewrite track
7D08- CE 25 7D DEC $7D25
7D0B- D0 ED BNE $7CFA
7D0D- 38 SEC ; error
7D0E- 60 RTS
;
; wait for 214 x 32-cycle nibbles
7D0F- A2 D6 LDX #$D6 ; = 214
7D11- 20 0E 7D JSR $7D0E ; 12cy / RTS
7D14- 20 0E 7D JSR $7D0E ; 12cy / RTS
7D17- 24 00 BIT $00 ; 3cy
7D19- CA DEX ; 2cy
7D1A- D0 F5 BNE $7D11 ; 3cy (2+1taken)
; = 32
; JMP to Write track and verify track
7D1C- 4C 68 7C JMP $7C68
; end
.data
7D1F: 0E ; min gap3
7D20: 1B ; max gap3 (gap3 >= 0x1B means DRIVE TOO SLOW)
7D21: 03 ; timeout * 256
7D22: 10 ; a constant
7D23: 80 ; slot*10
7D24: A0 ; gets init'd to #$50 (80)
7D25: A0 ; retry count
; sector_flag[16]:
7D26: A0 B1 C5 A0
7D2A: A0 C4 A0 B0
7D2E: 80 A0 A0 C3
7D32: A0 A0 A0 A0
7D36: A0
7D37: A0
7D38: A0
7D39: A0
; Symbol table:
D0 kAA
D1 w_Track
D2 w_Sector
D3 w_Volume
D4 w_Gap3Count
D5 r_Nib96Count
D6 r_NibCount1Hi
D7 r_Chksum
D8 r_Sector
D9 r_Track
DA r_Volume
DB r_TmpChksum
DC r_NibCount2Hi
DD r_Tmp4and4
DE kVolNum01
7900 FormatterDiskII
7923 SeekTrack
793A FormatDisk
7982 WriteNextTrack
79A2 WriteTrack
79B5 CheckGap3Count
79CB FindSector00Init
79D1 FindSector00Cont
79E7 VerifySector
79EF NextTrack
79F9 Done
7A07 ReadSectorData
7A6A ReadAddressField
7AC6 SeekHalfTrack
7B2E WriteGap2AndData
7BA4 WriteNibble1a
7BA5 WriteNibble1b
7BAE CheckWriteProt
7BB7 WriteGap0Or3AndAddress
7C2C WriteNibble2a
7C2D WriteNibble2b
7C37 Unused3
7C3A WaitA
7C4B Data12_1
7C57 Data12_2
7C63 WriteAndVerifyTrack
7C68 WriteGap1AndAddress2
7C71 WriteGap3AndAddress
7C8C VerifyTrack
7C96 ResetSectorFlags
7CA2 WaitGap3Count
7CBB DecGap3Count
7CC6 VerifyNextSector
7CCE VerifyNextSector2
7CE8 Retry
7CF3 Retry2
7CFA FindSector0FCont
7D0E RTS
7D0F RetryWait
7D1F kMinGap3
7D20 kMaxGap3
7D21 kNibCountHi
7D22 k10
7D23 Slotx16
7D24 HalfTrack
7D25 RetryCount
7D26 SectorFlags

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -1,7 +0,0 @@
Q. Is there a port of AppleWin for Linux?
A. In Dec 2007, Beom Beotiger ported AppleWin 1.14.1.2(?). It is available here:
http://linapple.sourceforge.net/index.html
Q. Can I run AppleWin on Linux using Wine?
A. Reportedly runs fine, but with some sound lag.

File diff suppressed because it is too large Load diff

View file

@ -1,257 +0,0 @@
No-Slot-Clock (Dallas SmartWatch DS1216) GEOS driver "NoSlot Clock".
Partial disassembly and comments by Nick Westgate (and CiderPress).
Note: This code requires the clock to be in the internal C8 ROM space. (CD or CF ROM sockets.)
0800- 4C 15 08 JMP $0815 ;read time
0803- 4C B8 08 JMP $08B8
0806- 4C BC 08 JMP $08BC ;write time
0809- 4C E4 08 JMP $08E4
080C- 4C F1 08 JMP $08F1
080F- 4C 12 08 JMP $0812
0812- A2 30 LDX #$30
0814- 60 RTS
0815- A9 00 LDA #$00
0817- 10 37 BPL $0850
0819- A9 3B LDA #$3B
081B- 8D 16 08 STA $0816
081E- 20 6E 08 JSR $086E ;init clock
0821- 20 93 08 JSR $0893 ;get clock data byte (0, discard centiseconds)
0824- A2 03 LDX #$03 ;(4 bytes)
0826- 20 93 08 JSR $0893 ;get clock data byte (1-4 -> F202-F205: day h m s)
0829- 9D 02 F2 STA $F202,X
082C- CA DEX
082D- 10 F7 BPL $0826
082F- A2 02 LDX #$02 ;(3 bytes, this overwrites day at F202)
0831- 20 93 08 JSR $0893 ;get clock data byte (5-7 -> F200-F202: Y M D)
0834- 9D 00 F2 STA $F200,X
0837- CA DEX
0838- 10 F7 BPL $0831
083A- 2C 06 F2 BIT $F206
083D- 10 11 BPL $0850
083F- AD 03 F2 LDA $F203
0842- C9 FF CMP #$FF
0844- D0 0A BNE $0850
0846- AD 04 F2 LDA $F204
0849- C9 FF CMP #$FF
084B- D0 03 BNE $0850
084D- 4E 06 F2 LSR $F206
0850- 4C DB 08 JMP $08DB ;exit safely
0853- A9 00 LDA #$00 ;*** write 0 byte to clock
0855- 84 09 STY $09 ;*** write byte to clock
0857- 38 SEC
0858- A0 FF LDY #$FF
085A- C8 INY
085B- E9 0A SBC #$0A
085D- 10 FB BPL $085A
085F- 69 0A ADC #$0A
0861- 85 07 STA $07
0863- 98 TYA
0864- 0A ASL
0865- 0A ASL
0866- 0A ASL
0867- 0A ASL
0868- 05 07 ORA $07
086A- A0 00 LDY #$00
086C- F0 11 BEQ $087F
086E- 78 SEI ;*** init clock
086F- AD 15 C0 LDA $C015 r:RDCXROM
0872- 85 0F STA $0F
0874- 8D 07 C0 STA $C007 w:SETINTCXROM
0877- AD 04 C8 LDA $C804
087A- A0 07 LDY #$07
087C- B9 F7 08 LDA $08F7,Y
087F- 38 SEC
0880- 6A ROR
0881- A2 00 LDX #$00
0883- 90 02 BCC $0887
0885- A2 01 LDX #$01
0887- DD 00 C8 CMP $C800,X
088A- 4A LSR
088B- D0 F4 BNE $0881
088D- 88 DEY
088E- 10 EC BPL $087C
0890- A4 09 LDY $09
0892- 60 RTS
0893- A0 07 LDY #$07 ;*** get clock data byte (convert BCD to hex)
0895- AD 04 C8 LDA $C804
0898- 6A ROR
0899- 66 07 ROR $07
089B- 88 DEY
089C- 10 F7 BPL $0895
089E- A5 07 LDA $07
08A0- A8 TAY
08A1- 29 0F AND #$0F
08A3- 85 07 STA $07
08A5- 98 TYA
08A6- 4A LSR
08A7- 4A LSR
08A8- 4A LSR
08A9- 4A LSR
08AA- 18 CLC
08AB- A8 TAY
08AC- F0 07 BEQ $08B5
08AE- A9 00 LDA #$00
08B0- 69 0A ADC #$0A
08B2- 88 DEY
08B3- D0 FB BNE $08B0
08B5- 65 07 ADC $07
08B7- 60 RTS
08B8- CE 16 08 DEC $0816
08BB- 60 RTS
08BC- 20 6E 08 JSR $086E ;init clock
08BF- 20 53 08 JSR $0853 ;write 0 byte to clock
08C2- A0 02 LDY #$02
08C4- B9 03 00 LDA $0003,Y
08C7- 20 55 08 JSR $0855 ;write byte to clock
08CA- 88 DEY
08CB- 10 F7 BPL $08C4
08CD- 20 53 08 JSR $0853 ;write 0 byte to clock
08D0- A0 02 LDY #$02
08D2- B9 00 00 LDA $0000,Y
08D5- 20 55 08 JSR $0855 ;write byte to clock
08D8- 88 DEY
08D9- 10 F7 BPL $08D2
08DB- 26 0F ROL $0F ;prepare for exit
08DD- B0 03 BCS $08E2
08DF- 8D 06 C0 STA $C006 w:SETSLOTCXROM
08E2- 58 CLI
08E3- 60 RTS
08E4- A5 00 LDA $00
08E6- 8D 43 08 STA $0843
08E9- A5 01 LDA $01
08EB- 8D 4A 08 STA $084A
08EE- A2 80 LDX #$80
08F0- 2C A2 00 BIT $00A2
08F3- 8E 06 F2 STX $F206
08F6- 60 RTS
08F7- 5C A3 3A C5 5C A3 3A C5 ;*** clock pattern
08FF- 59
0900- FA PLX
0901- 88 DEY
0902- 10 F8 BPL $08FC
0904- 20 B7 5C JSR $5CB7
0907- 68 PLA
0908- C9 0F CMP #$0F
090A- D0 03 BNE $090F
090C- 4C 4C 71 JMP $714C
090F- C9 80 CMP #$80
0911- 90 20 BCC $0933
0913- C9 8E CMP #$8E
0915- B0 1C BCS $0933
0917- 20 D7 65 JSR $65D7
091A- C9 81 CMP #$81
091C- D0 03 BNE $0921
091E- 4C D9 93 JMP $93D9
0921- C9 82 CMP #$82
0923- F0 04 BEQ $0929
0925- C9 8A CMP #$8A
0927- D0 03 BNE $092C
0929- 4C 6E 71 JMP $716E
092C- C9 83 CMP #$83
092E- D0 0A BNE $093A
0930- 4C 7B 71 JMP $717B
0933- C9 FF CMP #$FF
0935- D0 03 BNE $093A
0937- 4C EA AB JMP $ABEA
093A- 20 40 71 JSR $7140
093D- A2 00 LDX #$00
093F- 60 RTS
0940- A9 00 LDA #$00
0942- 8D F8 70 STA $70F8
0945- A2 72 LDX #$72
0947- A9 DB LDA #$DB
0949- 4C 08 4D JMP $4D08
094C- 20 13 74 JSR $7413
094F- A9 00 LDA #$00
0951- 85 AA STA $AA
0953- 20 91 5D JSR $5D91
0956- 20 81 03 JSR $0381
0959- 8A TXA
095A- F0 03 BEQ $095F
095C- 4C 64 5E JMP $5E64
095F- A9 00 LDA #$00
0961- 85 70 STA $70
0963- 68 PLA
0964- 68 PLA
0965- 20 32 5F JSR $5F32
0968- 8A TXA
0969- D0 F1 BNE $095C
096B- 4C 45 5F JMP $5F45
096E- A9 FF LDA #$FF
0970- 48 PHA
0971- A9 58 LDA #$58
0973- 48 PHA
0974- A9 00 LDA #$00
0976- 85 00 STA $00
0978- 4C 8D 03 JMP $038D
097B- A9 80 LDA #$80
097D- 8D B1 61 STA $61B1
0980- 20 D7 4D JSR $4DD7
0983- A5 12 LDA $12
0985- 18 CLC
0986- 69 01 ADC #$01
0988- 85 08 STA $08
098A- A5 13 LDA $13
098C- 69 00 ADC #$00
098E- 85 09 STA $09
0990- A9 12 LDA #$12
0992- 85 07 STA $07
0994- A9 85 LDA #$85
0996- 85 06 STA $06
0998- A2 08 LDX #$08
099A- A0 06 LDY #$06
099C- 20 61 4D JSR $4D61
099F- A9 12 LDA #$12
09A1- 85 05 STA $05
09A3- A9 71 LDA #$71
09A5- 85 04 STA $04
09A7- A2 08 LDX #$08
09A9- 20 98 64 JSR $6498
09AC- A2 08 LDX #$08
09AE- A0 04 LDY #$04
09B0- A9 0F LDA #$0F
09B2- 20 EA FE JSR $FEEA
09B5- A9 00 LDA #$00
09B7- 8D 80 12 STA $1280
09BA- A0 1F LDY #$1F
09BC- B1 12 LDA ($12),Y
09BE- 85 02 STA $02
09C0- C8 INY
09C1- B1 12 LDA ($12),Y
09C3- 85 03 STA $03
09C5- 20 24 66 JSR $6624
09C8- F0 0B BEQ $09D5
09CA- 20 3C 4E JSR $4E3C
09CD- A5 80 LDA $80
09CF- 8D 0D F6 STA $F60D
09D2- 4C C2 5E JMP $5EC2
09D5- AD CE F6 LDA $F6CE
09D8- D0 03 BNE $09DD
09DA- 4C 40 71 JMP $7140
09DD- A9 F6 LDA #$F6
09DF- 85 03 STA $03
09E1- A9 CE LDA #$CE
09E3- 85 02 STA $02
09E5- A9 12 LDA #$12
09E7- 85 15 STA $15
09E9- A9 99 LDA #$99
09EB- 85 14 STA $14
09ED- A2 02 LDX #$02
09EF- A0 14 LDY #$14
09F1- A9 0C LDA #$0C
09F3- 20 63 4D JSR $4D63
09F6- 20 3F 72 JSR $723F
09F9- 8A TXA
09FA- D0 CE BNE $09CA
09FC- AD 21 12 LDA $1221
09FF- D0 00 BNE $0A01
0A01- 00 BRK

View file

@ -1,12 +0,0 @@
Here's a summary of NSC/ROM chip locations - and which drivers work:
"CD" ROM socket: C000-DFFF (internal) ROM space - all drivers work
"EF" ROM socket: E000-FFFF ROM space - none I've seen yet
"CF" ROM socket: C000-FFFF (internal) ROM space - all drivers work
Slot ROM socket: Cs00-CsFF (slot) ROM space - NS.CLOCK.SYSTEM works
And here are the drivers - and ROM pages they check
ProDOS "SWU.SYSTEM" - internal C3
ProDOS "NS.CLOCK.SYSTEM" - internal C3 C8 / external C1-C7
GEOS "NoSlot Clock" - internal C8

View file

@ -1,675 +0,0 @@
No-Slot-Clock (Dallas SmartWatch DS1216) ProDOS Driver "NS.CLOCK.SYSTEM".
Probably written by Craig Peterson in 1990.
Partial disassembly and comments by Nick Westgate (and CiderPress).
Note: This code checks for the clock in internal C3, C8 and external slot ROM spaces. (CD, CF or slot ROM sockets.)
2000- 38 SEC ;actually loads at $2000
2001- B0 03 BCS $2006
2003- 09 23
2005- 90
2006- A2 05 LDX #$05 ;pages to relocate
2008- A0 00 LDY #$00
200A- B9 00 20 LDA $2000,Y ;relocate to $1000
200D- 99 00 10 STA $1000,Y
2010- C8 INY
2011- D0 F7 BNE $200A
2013- EE 0C 10 INC $100C
2016- EE 0F 10 INC $100F
2019- CA DEX
201A- F0 03 BEQ $201F
201C- 4C 0A 10 JMP $100A
101F- A9 00 LDA #$00
1021- 85 A8 STA $A8
1023- AE 80 02 LDX $0280 ;check input buffer for something? (ProDOS path?)
1026- F0 1E BEQ $1046
1028- E6 A8 INC $A8
102A- CA DEX
102B- F0 08 BEQ $1035
102D- BD 80 02 LDA $0280,X
1030- 49 2F EOR #$2F
1032- 0A ASL
1033- D0 F3 BNE $1028
1035- A0 00 LDY #$00
1037- C8 INY
1038- E8 INX
1039- BD 80 02 LDA $0280,X
103C- 99 E5 13 STA $13E5,Y
103F- C4 A8 CPY $A8
1041- 90 F4 BCC $1037
1043- 8C E5 13 STY $13E5
1046- D8 CLD
1047- 2C 82 C0 BIT $C082 ;read LC ROM
104A- A9 46 LDA #$46
104C- 8D F2 03 STA $03F2 ;reset vector
104F- A9 10 LDA #$10
1051- 8D F3 03 STA $03F3
1054- 49 A5 EOR #$A5
1056- 8D F4 03 STA $03F4
1059- A9 95 LDA #$95
105B- 20 ED FD JSR $FDED F8ROM:COUT
105E- A2 FF LDX #$FF
1060- 9A TXS
1061- 8D 0C C0 STA $C00C w:CLR80VID
1064- 8D 0E C0 STA $C00E w:CLRALTCHAR
1067- 20 93 FE JSR $FE93 F8ROM:SETVID
106A- 20 89 FE JSR $FE89 F8ROM:SETKBD
106D- 20 84 FE JSR $FE84 F8ROM:SETNORM
1070- 20 2F FB JSR $FB2F F8ROM:INIT
1073- A2 17 LDX #$17
1075- A9 01 LDA #$01
1077- 9D 58 BF STA $BF58,X
107A- A9 00 LDA #$00
107C- CA DEX
107D- D0 F8 BNE $1077
107F- A9 CF LDA #$CF
1081- 8D 58 BF STA $BF58 ;ProDOS system memory bitmap
1084- AD 98 BF LDA $BF98 ;ProDOS machine ID
1087- 29 88 AND #$88
1089- D0 05 BNE $1090
108B- A9 DF LDA #$DF ;II or II+
108D- 8D 5B 13 STA $135B
1090- AD 98 BF LDA $BF98 ;ProDOS machine ID
1093- 29 01 AND #$01 ;check for clock
1095- F0 26 BEQ $10BD
1097- 20 58 FC JSR $FC58 F8ROM:HOME
109A- 20 19 13 JSR $1319 ;print
109D- 8D D0 F2 ;Previous Clock Installed!
10A0- E5 F6 E9 EF F5 F3 A0 C3
10A8- EC EF E3 EB A0 C9 EE F3
10B0- F4 E1 EC EC E5 E4 A1 87
10B8- 8D 00
10BA- 4C 1F 12 JMP $121F ;exit
10BD- A0 03 LDY #$03
10BF- B9 90 BF LDA $BF90,Y ;backup ProDOS date/time
10C2- 99 97 11 STA $1197,Y
10C5- 88 DEY
10C6- 10 F7 BPL $10BF
10C8- A9 CF LDA #$CF ;prepare to check slot ROM
10CA- A0 FF LDY #$FF
10CC- 8D F9 13 STA $13F9 ;(LDA $CFFF)
10CF- 8C F8 13 STY $13F8
10D2- 8D 66 14 STA $1466 ;(STA $CFFF)
10D5- 8C 65 14 STY $1465
10D8- A9 00 LDA #$00 ;slot (3, 1..7, C8 internal)
10DA- 8D 9C 11 STA $119C ;count?
10DD- A9 03 LDA #$03
10DF- 09 C0 ORA #$C0
10E1- 8D FD 13 STA $13FD ;(STA $CX00)
10E4- 8D 00 14 STA $1400 ;(LDA $CX04)
10E7- 8D 0F 14 STA $140F ;(LDA $CX00,Y)
10EA- 8D 1D 14 STA $141D ;(LDA $CX04)
10ED- A9 03 LDA #$03 ;try to init 3 times
10EF- 8D 9B 11 STA $119B
10F2- 20 F5 13 JSR $13F5 ;init clock and get date/time
10F5- AD 91 BF LDA $BF91 ;ProDOS date/time updated?
10F8- 6A ROR
10F9- AD 90 BF LDA $BF90
10FC- 2A ROL
10FD- 2A ROL
10FE- 2A ROL
10FF- 2A ROL
1100- 29 0F AND #$0F
1102- F0 24 BEQ $1128
1104- C9 0D CMP #$0D
1106- B0 20 BCS $1128
1108- AD 90 BF LDA $BF90
110B- 29 1F AND #$1F
110D- F0 19 BEQ $1128
110F- C9 20 CMP #$20
1111- B0 15 BCS $1128
1113- AD 93 BF LDA $BF93
1116- C9 18 CMP #$18
1118- B0 0E BCS $1128
111A- AD 92 BF LDA $BF92
111D- C9 3C CMP #$3C
111F- B0 07 BCS $1128
1121- CE 9B 11 DEC $119B
1124- D0 CC BNE $10F2 ;not updated: try to init again (3 times)
1126- F0 75 BEQ $119D
1128- EE 9C 11 INC $119C ;next slot
112B- AD 9C 11 LDA $119C
112E- C9 08 CMP #$08
1130- 90 AD BCC $10DF
1132- D0 1D BNE $1151 ;loop for slots 3, 1..7
1134- A9 C0 LDA #$C0 ;prepare to check internal C8 ROM (where is this called from?)
1136- A0 15 LDY #$15
1138- 8D F9 13 STA $13F9
113B- 8C F8 13 STY $13F8 ;(LDA $C015)
113E- A0 07 LDY #$07
1140- 8D FD 13 STA $13FD ;(STA $C007)
1143- 8C FC 13 STY $13FC
1146- 88 DEY
1147- 8D 66 14 STA $1466 ;(STA $C006)
114A- 8C 65 14 STY $1465
114D- A9 C8 LDA #$C8
114F- D0 93 BNE $10E4 ;set up addresses for internal C8 ROM and test
1151- A0 03 LDY #$03 ;SmartWatch not found
1153- B9 97 11 LDA $1197,Y ;restore ProDOS date/time
1156- 99 90 BF STA $BF90,Y
1159- 88 DEY
115A- 10 F7 BPL $1153
115C- 20 58 FC JSR $FC58 F8ROM:HOME
115F- 20 19 13 JSR $1319 ;print
1162- 8D CE EF AD D3 CC ;No-SLot Clock Not Found...Clock Not Installed
1168- EF F4 A0 C3 EC EF E3 EB
1170- A0 CE EF F4 A0 C6 EF F5
1178- EE E4 AE 8D 8D C3 EC EF
1180- E3 EB A0 CE EF F4 A0 C9
1188- EE F3 F4 E1 EC EC E5 E4
1190- A1 87 8D 00
1194- 4C 1F 12 JMP $121F ;exit
1197- 00 ;ProDOS date/time
1198- 00
1199- 00
119A- 00
119B- 03 ???
119C- 00 BRK
119D- AD 07 BF LDA $BF07 ;success: install driver
11A0- 85 A5 STA $A5
11A2- 18 CLC
11A3- 69 73 ADC #$73
11A5- 8D 04 14 STA $1404
11A8- AD 08 BF LDA $BF08
11AB- 85 A6 STA $A6
11AD- 69 00 ADC #$00
11AF- 8D 05 14 STA $1405
11B2- AD 8B C0 LDA $C08B rw:LCBANK1
11B5- AD 8B C0 LDA $C08B rw:LCBANK1
11B8- A0 7C LDY #$7C
11BA- B9 F5 13 LDA $13F5,Y
11BD- 91 A5 STA ($A5),Y
11BF- 88 DEY
11C0- 10 F8 BPL $11BA
11C2- AD 98 BF LDA $BF98
11C5- 09 01 ORA #$01
11C7- 8D 98 BF STA $BF98
11CA- A9 4C LDA #$4C
11CC- 8D 06 BF STA $BF06
11CF- 20 06 BF JSR $BF06
11D2- 2C 82 C0 BIT $C082
11D5- 20 58 FC JSR $FC58 F8ROM:HOME
11D8- 20 19 13 JSR $1319 ;print
11DB- 8D CE EF AD D3 ;No-Slot Clock Installed
11E0- EC EF F4 A0 C3 EC EF E3
11E8- EB A0 C9 EE F3 F4 E1 EC
11F0- EC E5 E4 A0 A0 00
11F6- AD 91 BF LDA $BF91
11F9- 6A ROR
11FA- 48 PHA
11FB- AD 90 BF LDA $BF90
11FE- 48 PHA
11FF- 2A ROL
1200- 2A ROL
1201- 2A ROL
1202- 2A ROL
1203- 29 0F AND #$0F
1205- 20 3E 13 JSR $133E
1208- A9 AF LDA #$AF
120A- 20 ED FD JSR $FDED F8ROM:COUT
120D- 68 PLA
120E- 29 1F AND #$1F
1210- 20 3E 13 JSR $133E
1213- A9 AF LDA #$AF
1215- 20 ED FD JSR $FDED F8ROM:COUT
1218- 68 PLA
1219- 20 3E 13 JSR $133E
121C- 20 8E FD JSR $FD8E F8ROM:CROUT
121F- A9 5C LDA #$5C ;*** exit routine
1221- 8D F2 03 STA $03F2
1224- A9 13 LDA #$13
1226- 8D F3 03 STA $03F3
1229- 49 A5 EOR #$A5
122B- 8D F4 03 STA $03F4
122E- AD 30 BF LDA $BF30
1231- 8D 75 13 STA $1375
1234- 20 6B 13 JSR $136B
1237- AD 23 18 LDA $1823
123A- 8D 88 12 STA $1288
123D- AD 24 18 LDA $1824
1240- 8D 94 12 STA $1294
1243- A9 01 LDA #$01
1245- 85 A7 STA $A7
1247- A9 2B LDA #$2B
1249- 85 A5 STA $A5
124B- A9 18 LDA #$18
124D- 85 A6 STA $A6
124F- A0 10 LDY #$10
1251- B1 A5 LDA ($A5),Y
1253- C9 FF CMP #$FF
1255- D0 2D BNE $1284
1257- A0 00 LDY #$00
1259- B1 A5 LDA ($A5),Y
125B- 29 30 AND #$30
125D- F0 25 BEQ $1284
125F- B1 A5 LDA ($A5),Y
1261- 29 0F AND #$0F
1263- 85 A8 STA $A8
1265- A8 TAY
1266- A2 06 LDX #$06
1268- B1 A5 LDA ($A5),Y
126A- DD DE 13 CMP $13DE,X
126D- D0 15 BNE $1284
126F- 88 DEY
1270- CA DEX
1271- 10 F5 BPL $1268
1273- AC E5 13 LDY $13E5
1276- C4 A8 CPY $A8
1278- D0 40 BNE $12BA
127A- B1 A5 LDA ($A5),Y
127C- D9 E5 13 CMP $13E5,Y
127F- D0 39 BNE $12BA
1281- 88 DEY
1282- D0 F6 BNE $127A
1284- A5 A5 LDA $A5
1286- 18 CLC
1287- 69 27 ADC #$27
1289- 85 A5 STA $A5
128B- 90 02 BCC $128F
128D- E6 A6 INC $A6
128F- E6 A7 INC $A7
1291- A5 A7 LDA $A7
1293- C9 0D CMP #$0D
1295- 90 B8 BCC $124F
1297- AD 02 18 LDA $1802
129A- 8D 78 13 STA $1378
129D- AD 03 18 LDA $1803
12A0- 8D 79 13 STA $1379
12A3- 0D 78 13 ORA $1378
12A6- F0 35 BEQ $12DD
12A8- 20 6B 13 JSR $136B
12AB- A9 00 LDA #$00
12AD- 85 A7 STA $A7
12AF- A9 04 LDA #$04
12B1- 85 A5 STA $A5
12B3- A9 18 LDA #$18
12B5- 85 A6 STA $A6
12B7- 4C 4F 12 JMP $124F
12BA- AE 80 02 LDX $0280
12BD- F0 0B BEQ $12CA
12BF- CA DEX
12C0- F0 08 BEQ $12CA
12C2- BD 80 02 LDA $0280,X
12C5- 49 2F EOR #$2F
12C7- 0A ASL
12C8- D0 F5 BNE $12BF
12CA- A0 00 LDY #$00
12CC- C8 INY
12CD- E8 INX
12CE- B1 A5 LDA ($A5),Y
12D0- 9D 80 02 STA $0280,X
12D3- C4 A8 CPY $A8
12D5- 90 F5 BCC $12CC
12D7- 8E 80 02 STX $0280
12DA- 4C 7A 13 JMP $137A
12DD- 20 19 13 JSR $1319 ;print
12E0- 8D 8D 8D AA A0 D5 EE E1 ;...* Unable to find next '.SYSTEM' file
12E8- E2 EC E5 A0 F4 EF A0 E6
12F0- E9 EE E4 A0 EE E5 F8 F4
12F8- A0 A7 AE D3 D9 D3 D4 C5
1300- CD A7 A0 E6 E9 EC E5 A0
1308- AA 8D 00
130B- 2C 10 C0 BIT $C010
130E- AD 00 C0 LDA $C000 r:KBD w:CLR80COL
1311- 10 FB BPL $130E
1313- 2C 10 C0 BIT $C010 r:KBDSTRB
1316- 4C 5C 13 JMP $135C ;exit
1319- 68 PLA ;*** print routine (text follows JSR)
131A- 85 A5 STA $A5
131C- 68 PLA
131D- 85 A6 STA $A6
131F- D0 0A BNE $132B
1321- C9 E1 CMP #$E1
1323- 90 03 BCC $1328
1325- 2D 5B 13 AND $135B
1328- 20 ED FD JSR $FDED F8ROM:COUT
132B- E6 A5 INC $A5
132D- D0 02 BNE $1331
132F- E6 A6 INC $A6
1331- A0 00 LDY #$00
1333- B1 A5 LDA ($A5),Y
1335- D0 EA BNE $1321
1337- A5 A6 LDA $A6
1339- 48 PHA
133A- A5 A5 LDA $A5
133C- 48 PHA
133D- 60 RTS
133E- A2 B0 LDX #$B0
1340- C9 0A CMP #$0A
1342- 90 07 BCC $134B
1344- E9 0A SBC #$0A
1346- E8 INX
1347- C9 0A CMP #$0A
1349- B0 F9 BCS $1344
134B- 48 PHA
134C- E0 B0 CPX #$B0
134E- F0 04 BEQ $1354
1350- 8A TXA
1351- 20 ED FD JSR $FDED F8ROM:COUT
1354- 68 PLA
1355- 09 B0 ORA #$B0
1357- 20 ED FD JSR $FDED F8ROM:COUT
135A- 60 RTS
135B- FF ??? ;or DF
135C- 20 00 BF JSR $BF00 P8:QUIT(4:Type/1,Path,zz/1,zz)
135F- 65 $65
1360- 64 13 $1364
1362- 00 BRK
1363- 60 RTS
1364- 04 00 TSB $00
1366- 00 BRK
1367- 00 BRK
1368- 00 BRK
1369- 00 BRK
136A- 00 BRK
136B- 20 00 BF JSR $BF00 P8:READ_BLOCK(3:Unit/1,Buff,BlkNum)
136E- 80 $80
136F- 74 13 $1374
1371- B0 28 BCS $139B ;disk error
1373- 60 RTS
1374- 03 ???
1375- 60 RTS
1376- 00 BRK
1377- 18 CLC
1378- 02 ???
1379- 00 BRK
137A- 20 00 BF JSR $BF00 P8:OPEN(3:pn,ioBuff,Ref/1)
137D- C8 $C8
137E- CE 13 $13CE
1380- B0 19 BCS $139B
1382- AD D3 13 LDA $13D3
1385- 8D D5 13 STA $13D5
1388- 20 00 BF JSR $BF00 P8:READ(4:Ref/1,Where,reqCount,xfrCount)
138B- CA $CA
138C- D4 13 $13D4
138E- B0 0B BCS $139B
1390- 20 00 BF JSR $BF00 P8:CLOSE(1:Ref/1)
1393- CC $CC
1394- DC 13 $13DC
1396- B0 03 BCS $139B
1398- 4C 00 20 JMP $1000
139B- 48 PHA
139C- 20 19 13 JSR $1319 ;print
139F- 8D ;...** Disk Error $
13A0- 8D 8D AA AA A0 A0 C4 E9
13A8- F3 EB A0 C5 F2 F2 EF F2
13B0- A0 A4 00
13B3- 68 PLA
13B4- 20 DA FD JSR $FDDA F8ROM:PRBYTE
13B7- 20 19 13 JSR $1319 ;print
13BA- A0 A0 AA AA 8D 00 ; **.
13C0- 2C 10 C0 BIT $C010
13C3- AD 00 C0 LDA $C000 r:KBD w:CLR80COL
13C6- 10 FB BPL $13C3
13C8- 2C 10 C0 BIT $C010 r:KBDSTRB
13CB- 4C 5C 13 JMP $135C
13CE- 03 ???
13CF- 80 02 BRA $13D3
13D1- 00 BRK
13D2- 18 CLC
13D3- 01 04 ORA ($04,X)
13D5- 01 00 ORA ($00,X)
13D7- 20 FF FF JSR $FFFF
13DA- 00 BRK
13DB- 00 BRK
13DC- 01 00 ORA ($00,X)
13DE- 2E 53 59 ROL $5953
13E1- 53 ???
13E2- 54 ???
13E3- 45 4D EOR $4D
13E5- 0F ;length
13E6- 4E 53 2E ;copied from input buffer (path?)
13E9- 43
13EA- 4C 4F 43
13ED- 4B ...
13EE- 2E 53 59 ROL $5953
13F1- 53 ???
13F2- 54 ???
13F3- 45 4D EOR $4D
13F5- 08 PHP ;*** clock init and get time
13F6- 78 SEI
13F7- AD FF CF LDA $CFFF rw:CLRROM
13FA- 48 PHA
13FB- 8D 00 C3 STA $C300 ;switch in CX00 slot/C8 ROM? (calling code sets CX from here on)
13FE- AD 04 C3 LDA $C304 ;reset the comparison register pointer (A2 high = SmartWatch read)
1401- A2 08 LDX #$08
1403- BD 68 14 LDA $1468,X ;get SmartWatch comparison register pattern bytes
1406- 38 SEC ;mark end of byte
1407- 6A ROR ;low bits first
1408- 48 PHA
1409- A9 00 LDA #$00
140B- 2A ROL
140C- A8 TAY
140D- B9 00 C3 LDA $C300,Y ;write data bit on A0 (A2 low = SmartWatch write)
1410- 68 PLA
1411- 4A LSR
1412- D0 F4 BNE $1408
1414- CA DEX
1415- D0 EC BNE $1403
1417- A2 08 LDX #$08 ;read registers (date/time)
1419- A0 08 LDY #$08
141B- AD 04 C3 LDA $C304 ;read data bit on D0 (A2 high = SmartWatch read)
141E- 6A ROR
141F- 7E FF 01 ROR $01FF,X ;copy data to input buffer
1422- 88 DEY
1423- D0 F6 BNE $141B
1425- BD FF 01 LDA $01FF,X
1428- 4A LSR
1429- 4A LSR
142A- 4A LSR
142B- 4A LSR
142C- A8 TAY
142D- F0 0E BEQ $143D
142F- BD FF 01 LDA $01FF,X
1432- 29 0F AND #$0F
1434- 18 CLC
1435- 69 0A ADC #$0A
1437- 88 DEY
1438- D0 FB BNE $1435
143A- 9D FF 01 STA $01FF,X
143D- CA DEX
143E- D0 D9 BNE $1419
1440- AD 04 02 LDA $0204 ;copy data to ProDOS date/time
1443- 8D 93 BF STA $BF93
1446- AD 05 02 LDA $0205
1449- 8D 92 BF STA $BF92
144C- AD 01 02 LDA $0201
144F- 0A ASL
1450- 0A ASL
1451- 0A ASL
1452- 0A ASL
1453- 0A ASL
1454- 0D 02 02 ORA $0202
1457- 8D 90 BF STA $BF90
145A- AD 00 02 LDA $0200
145D- 2A ROL
145E- 8D 91 BF STA $BF91
1461- 68 PLA
1462- 30 03 BMI $1467
1464- 8D FF CF STA $CFFF rw:CLRROM ;restore ROM status (hmm)
1467- 28 PLP
1468- 60 RTS
1469- 5C A3 3A C5 5C A3 3A C5 ;*** clock pattern
1471- 00
1472- B3 ???
1473- 74 F5 STZ $F5,X
1475- D3 ???
1476- 6D E0 68 ADC $68E0
1479- 7D DD BB ADC $BBDD,X
147C- 20 2F 52 JSR $522F
147F- 41 4D EOR ($4D,X)
1481- 20 8D 00 JSR $008D
1484- F3 ???
1485- 20 E1 AA JSR $AAE1
1488- 68 PLA
1489- B0 13 BCS $149E
148B- 6D DD BB ADC $BBDD
148E- 8D DD 20 STA $10DD
1491- 2F ???
1492- 43 ???
1493- 54 ???
1494- 2E 31 20 ROL $1031
1497- 8D 00 EE STA $EE00
149A- DF ???
149B- BB ???
149C- D0 03 BNE $14A1
149E- A9 FF LDA #$FF
14A0- 38 SEC
14A1- 60 RTS
14A2- C9 30 CMP #$30
14A4- 20 2F 48 JSR $482F
14A7- 41 52 EOR ($52,X)
14A9- 44 ???
14AA- 31 20 AND ($10),Y
14AC- 8D 00 C9 STA $C900
14AF- 47 ???
14B0- 90 04 BCC $14B6
14B2- 38 SEC
14B3- 09 00 ORA #$00
14B5- 60 RTS
14B6- E9 06 SBC #$06
14B8- 20 2F 52 JSR $522F
14BB- 41 4D EOR ($4D,X)
14BD- 20 8D 00 JSR $008D
14C0- DD CA 10 CMP $10CA,X
14C3- F8 SED
14C4- 0D DD BB ORA $BBDD
14C7- 8D DD BB STA $BBDD
14CA- 60 RTS
14CB- 0E 0E 2F ASL $1F0E
14CE- 4E 4F 2E LSR $1E4F
14D1- 53 ???
14D2- 4C 4F 54 JMP $544F
14D5- 2E 43 4C ROL $4C43
14D8- 4F ???
14D9- 43 ???
14DA- 4B ???
14DB- 20 8D 00 JSR $008D
14DE- 2D D0 08 AND $08D0
14E1- EE 53 BE INC $BE53
14E4- 8D 52 BE STA $BE52
14E7- D0 1D BNE $1506
14E9- A0 08 LDY #$08
14EB- 8C 52 BE STY $BE52
14EE- BD 97 B8 LDA $B897,X
14F1- 10 06 BPL $14F9
14F3- 29 7F AND #$7F
14F5- 88 DEY
14F6- CE 52 BE DEC $BE52
14F9- AA TAX
14FA- B9 EB BB LDA $BBEB,Y
14FD- DD B7 B8 CMP $B8B7,X
1500- D0 17 BNE $1519
1502- CA DEX
1503- 88 DEY
1504- 10 F4 BPL $14FA
1506- AD 53 BE LDA $BE53
1509- 0A ASL
150A- AA TAX
150B- BD 69 B9 LDA $B969,X
150E- 8D 55 BE STA $BE55
1511- BD 68 B9 LDA $B968,X
1514- 8D 54 BE STA $BE54
1517- 18 CLC
1518- 60 RTS
1519- AC 52 BE LDY $BE52
151C- CE 53 BE DEC $BE53
151F- AE 53 BE LDX $BE53
1522- D0 CA BNE $14EE
1524- CE 53 BE DEC $BE53
1527- 38 SEC
1528- 4C 06 BE JMP $BE06
152B- A0 00 LDY #$00
152D- 8C DD BB STY $BBDD
1530- 8C DE BB STY $BBDE
1533- 8C DF BB STY $BBDF
1536- 60 RTS
1537- AD B8 BE LDA $BEB8
153A- C9 FC CMP #$FC
153C- F0 68 BEQ $15A6
153E- C9 06 CMP #$06
1540- F0 3F BEQ $1581
1542- C9 04 CMP #$04
1544- D0 03 BNE $1549
1546- 4C 60 B2 JMP $B260
1549- C9 FF CMP #$FF
154B- F0 04 BEQ $1551
154D- A9 0D LDA #$0D
154F- 38 SEC
1550- 60 RTS
1551- 20 31 B5 JSR $B531
1554- 20 3A B3 JSR $B33A
1557- A9 00 LDA #$00
1559- 8D 58 BE STA $BE58
155C- 8D 6B BF STA $BF6B
155F- 8D 6C BF STA $BF6C
1562- 8D 6D BF STA $BF6D
1565- 8D 6E BF STA $BF6E
1568- A9 01 LDA #$01
156A- 8D 6F BF STA $BF6F
156D- A9 20 LDA #$20
156F- 8D 59 BE STA $BE59
1572- A9 FF LDA #$FF
1574- 8D 6A BE STA $BE6A
1577- A9 80 LDA #$80
1579- 8D 57 BE STA $BE57
157C- A9 05 LDA #$05
157E- 8D 56 BE STA $BE56
1581- 4C 20 AE JMP $AE20
1584- 20 0D A4 JSR $A40D
1587- A5 74 LDA $74
1589- 8D A9 BB STA $BBA9
158C- AE BD BB LDX $BBBD
158F- CA DEX
1590- 86 74 STX $74
1592- 20 0D AC JSR $AC0D
1595- AE A9 BB LDX $BBA9
1598- 86 74 STX $74
159A- B0 6C BCS $1608
159C- 20 65 D6 JSR $D665
159F- 20 7C A4 JSR $A47C
15A2- A9 00 LDA #$00
15A4- F0 15 BEQ $15BB
15A6- A9 00 LDA #$00
15A8- 8D 44 BE STA $BE44
15AB- 85 DE STA $DE
15AD- AD 56 BE LDA $BE56
15B0- 4A LSR
15B1- 90 16 BCC $15C9
15B3- 20 08 AC JSR $AC08
15B6- B0 50 BCS $1608
15B8- 20 65 D6 JSR $D665
15BB- 85 D8 STA $D8
15BD- 20 A1 AC JSR $ACA1
15C0- 20 8D 9A JSR $9A8D
15C3- 20 DF AB JSR $ABDF
15C6- 4C D2 D7 JMP $D7D2
15C9- 20 73 F2 JSR $F273
15CC- A9 A3 LDA #$A3
15CE- 8D 61 9F STA $9F61
15D1- A9 FF LDA #$FF
15D3- 8D 53 BE STA $BE53
15D6- 85 33 STA $33
15D8- A2 04 LDX #$04
15DA- 20 76 9F JSR $9F76
15DD- 4C 43 A8 JMP $A843
15E0- 20 08 AC JSR $AC08
15E3- B0 23 BCS $1608
15E5- 20 65 D6 JSR $D665
15E8- 20 17 9A JSR $9A17
15EB- A9 00 LDA #$00
15ED- 85 24 STA $24
15EF- 4C 3F D4 JMP $D43F
15F2- 20 31 B5 JSR $B531
15F5- B0 11 BCS $1608
15F7- 20 1F AC JSR $AC1F
15FA- B0 0C BCS $1608
15FC- 84 6B STY $6B
15FE- 84 69 STY $69

View file

@ -1,104 +0,0 @@
Key Super Serial Card (SSC) Memory Locations for Programmers
------------------------------------------------------------
All addresses are of the form '$C0sx', where 's' is the Slot number
of the SSC plus $8 and 'x' is the final digit ($0 - $F) of the
address.
Control Register
The 6551 Control Register is mapped to $C0sB
($C09B for Slot 1, $C0AB
for Slot 2, etc.).
Its format is ...
bit 7 : stop bit number [0= 1 stop bit, 1= 2 stop bits for most
settings, except: 1.5 stop bits for word length 5 and no parity,
and 1 for word length 8 and parity]
bits 6 and 5 : word length
[00= 8 bits, 01= 7 bits, 10= 6 bits, 11= 5 bits]
bit 4 : receiver clock source [0= external, 1= internal]
bits 3, 2, 1, 0 : baud rate, as follows:
0000= 16x external clock
0001= 50 bps
0010= 75 bps
0011= 109.92 bps
0100= 134.58 bps
0101= 150 bps
0110= 300 bps
0111= 600 bps
1000= 1200 bps
1001= 1800 bps
1010= 2400 bps
1011= 3600 bps
1100= 4800 bps
1101= 7200 bps
1110= 9600 bps
1111= 19200 bps
Note that 1 MHz Apples (everything other than the Apple IIgs and //c
Plus running in "fast" mode) cannot handle 19.2 kbps, and even 9600
bps on these machines requires either some highly optimised code or
a decent buffer in the device being accessed. The faster Apples
have no difficulty with this speed, however.
Command Register
The 6551 Command Register is mapped to $C0sA, and is essentially an
extension of the Control Register.
Its format is ...
bits 7 and 6 : parity mode control [00= odd parity, 01= even parity,
10= mark parity (parity bit always set),
11= space parity
(parity bit always cleared)]
bit 5 : parity mode enable [0=no parity used, 1=parity used]
bit 4 : receiver mode echo [0=no echo, 1=echo]
bits 3 and 2 : transmitter interrupt control
[00= set RTS high and transmit no interrupts,
01= set RTS low and transmit interrupts,
10= set RTS low and transmit no interrupts,
11= set RTS low and
transmit break signals instead of interrupts]
bit 1 : interrupt request disable
[0=enable receiver interrupts,
1=disable receiver interrupts]
bit 0 : Data Terminal Ready (DTR) setting
[0=set DTR high (indicates 'not ready'),
1=set DTR low (indicates 'ready')]
Note that, although the DTR is generally not used in the SSC
(it may actually not be connected!), it must be set to 'low' in order for the
6551 to function correctly. Also, the RTS signal must be set 'low'
in order to receive any incoming data from the serial device.
Note also that both the Command and Control registers are write-only,
which means that reading them will not necessarily yield valid data
on the device's settings. If there is any doubt as to the current
settings of the 6551, you should (re)initialise them.
Status register
The 6551 Status register is mapped to $C0s9. It is a read-only register
and its format is ...
bit 7 : interrupt [0=no interrupt, 1=interrupt]
bit 6 : Data Set Ready (DSR) [0=DSR low (ready), 1=DSR high (not ready)]
bit 5 : Data Carrier Detect (DCD) [0=DCD low (detected), 1=DCD high (not detected)]
bit 4 : transmitter data register empty [0=not empty, 1=empty]
bit 3 : receiver data register full [0=not full, 1=full]
bit 2 : overrun error [0=no error, 1=error]
bit 1 : framing error [0=no error, 1=error]
bit 0 : parity error [0=no error, 1=error]
Data Register
The Data Register at $C0s8 is used both for outgoing and incoming data.
Whether the data has been sent or received can be determined by checking
bits 4 and 3 (respectively) of the Status register.
I hope that this is the SSC programming information that you are looking for.
Aaron Heiss

View file

@ -1,45 +0,0 @@
To-do list (Tom)
================
This is a (non-exhaustive) list of stuff that I personally would like to get done:
(14/8/2014) Having moved all non-system headers out of stdafx.h, it looks like
many headers are included just to call Init() or Reset() methods for Apple II sub-systems.
Cut down on the headers by:
- Using the Visitor pattern (for all Apple II sub-systems)?
- Or just a vector which contains all sub-system Reset() methods?
. Consolidate the Spkr_SubmitWaveBuffer() & Spkr_SubmitWaveBuffer_FullSpeed() funcs.
This will make the code cleaner & simpler.
. Software mix Speaker & Mockingboard waves before submitting to sound-buffer.
This will:
a) fix the problem with speaker sound be rough when MB is active.
b) probably fix the problem with other processes having problems playing sound at the
same time as AppleWin. (Although I've not experienced this)
c) hopefully simplify things :)
. Run emulation (or message-pump?) in a seperate thread.
So that the sound is continuous when dragging the window or starting other applications, etc.
. Add proper Votrax support (using PinMAME samples & code).
. Fix SSI263 so that phonemes are overlapped (like Votrax).
. Save-state supporting Phasor, harddisk & Ramworks III
. Support for switching display modes mid-frame
To support Bob Bishop's intros, tight-loop page-flipping, etc
---
Plans for (1st pass) cleaning up are:
. Ditch the x86 code to access the PC speaker + ditch PC speaker support
. [DONE] The arrays ioread[] & iowrite[] in Memory.cpp should be switched from units of 1 byte to 16 bytes.
This will yield 256 entries spanning [$C000…$CFFF] currently its only [$C000…$C0FF]. This will mean that:
a) cards with I/O mapped above $C0FF (eg Mockingboard, Mouse?) dont have to be kludged as in the READ/WRITE macros in CPU.cpp
b) $CFFF (ROMs out) can be emulated
. Talking of CPU.cpp & those macros: Id prefer to replace them with inline funcs. Maintenance of these
macros is a bitch & they cant be single-stepped. Inline funs should yield the same code (in release build)
as the macros.

View file

@ -1,53 +0,0 @@
*** Uthernet ethernet emulation setup instructions. ***
Updated - March 26 2006 - R. Glenn Jones
Note: Uthernet (TFE) support in Applewin was made possible by implementing the GPL source written by Spiro Trikaliotis for the Vice emulator - http://www.viceteam.org/
To enable Ethernet support in AppleWin you must first download and install WinPcap.
An Alternative to downloading WinPcap is to get the Ethereal package which includes WinPcap along with Ethereal network analyzer code. To use Ethereal to capture traffic (other then your own) you must be plugged into a shared hub vs a switch. If you plan on doing any network programming ethereal is a definite must have.
WinPcap: http://www.WinPcap.org/install/default.htm or Ethereal: http://www.ethereal.com/download.html
After AppleWin starts, select the settings ICON and then select the Ethernet settings button.
Uthernet will be disabled. Select Uthernet from the list of available ethernet emulations (currently the only one).
Select the ethernet interface you want to work with. This must be a physical ethernet interface.
If you have more then one interface you may need to select them in turn in order to get the text description for each interface vs what WinPcap likes to use for a reference. Select Ok. and then close AppleWin. *Note:* Wireless does not work with WinPcap.
NOTE: Due to a current limitation you must exit AppleWin and re-run AppleWin for 'a' ethernet interface change to take effect.
In order to test the Ethernet emulation out you should grab a copy of Contiki for the Apple II here - http://www.a2retrosystems.com/downloads.htm
Grab the 80 Col. Primary Disk and Supplementary Disk images if using Apple //e emulation or the 40 Col versions if running Apple II+ emulation. You should also grab a copy of the Uthernet/Contiki getting started guide http://www.a2retrosystems.com/a2UtherManual.pdf
When you run AppleWin again, select the contiki80pri.dsk image. Boot AppleWin.
Once Contiki is loaded then press Enter to clear the welcome screen and press ESC for a menu.
Choose Directory Application and then select configuration edit program. Tab down to the Slot param and change it to '3'. The emulation only works in slot 3.
If you do not have DHCP support in your local Lan then setup your static IP address information here as well. Save and exit.
If you have DHCP support in your local lan then press ESC and choose Directory Application again, and then select DHCP client.
Hit enter on request Address and you should see the IP information updated. Close the window and then press ESC again.
Select the web browser and hit Enter a couple of times.
Adam Dunkels web site should show up if things are working properly.
Try a few other web sites if the first one isn't working in case it is temporarily down.
You may also need to configure/disable your firewall if you are having problems.
Glenn
---------------------------------------
Troubleshooting
---------------
If you have ZoneAlarm running then try disabling it inorder to access the web.
if you are still having difficulty then you should refer to the VICE network support page for additional information - http://vicekb.trikaliotis.net/13-005.shtml

View file

@ -1,136 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="author" content="Spiro Trikaliotis">
<meta name="copyright" content="© 2003-2007 Spiro Trikaliotis and the VICE team">
<link rel="stylesheet" href="VICE%20Knowledge%20Base%20-%20Article%2013-005_files/vicekb.css" title="My own stylesheet">
<meta name="keywords" content="vice knowledge base,vkb,x64,x128,xplus4,xcbm,xvic">
<title>VICE Knowledge Base - Article 13-005</title>
</head>
<body>
<!--#config timefmt="%d.%b.%Y %H:%M" -->
<div class="top">
<div class="title">
<h1>
<a href="http://web.archive.org/web/20130517193701/http://www.viceteam.org/">
<img alt="VICE home" src="VICE%20Knowledge%20Base%20-%20Article%2013-005_files/vice-logo.png" width="120" height="45" border="0"></a>
Knowledge Base - Article 13-005</h1>
</div> <!-- title -->
<hr>
</div> <!-- top -->
<div class="main">
<div class="sidebar">
<p>Article ID: 13-005</p>
<p><b>Last Reviewed:</b><br>August 25, 2004</p>
<p><a title="Send this article to a friend" href="http://web.archive.org/web/20130517193701/mailto:/?subject=VICE%20Knowledge%20Base%20Article%20-%2013-005&amp;body=This%20article%20pointer%20was%20forwarded%20to%20you%20from%20the%20VICE%20Knowledge%20Base%20site.%20http://vicekb.trikaliotis.net/13-005">
<img src="VICE%20Knowledge%20Base%20-%20Article%2013-005_files/icoEmail.gif" width="18" height="10" border="0" align="absMiddle">Send to a friend</a></p>
<p>Provided by<br><a target="_top" href="http://web.archive.org/web/20130517193701/http://www.viceteam.org/">The VICE team</a></p>
<p>If you want to bookmark this page or refer to it, use the following URL only, please:<br>
<a href="http://web.archive.org/web/20130517193701/http://vicekb.trikaliotis.net/13-005">http://vicekb.trikaliotis.net/13-005</a>
</p><hr>
</div> <!-- sidebar -->
<div class="content">
<h1>[Howto] Enable networking with WinVICE</h1>
<hr>
The information in this article applies to the following versions of VICE: <ul><li>all Windows versions starting from 1.13</li></ul>
<hr><h2>PROBLEMEXPOSITION</h2>
<p>Starting with WinVICE 1.13, there is support for two ethernet cartridges allowing network access: The "<a href="http://web.archive.org/web/20130517193701/http://www.dunkels.com/adam/tfe/">The Final
Ethernet</a>" (TFE) and the "Retroreplay-Net" (RR-Net) cartridges. If you
want to enable support for these, you have to follow the instructions below.</p><h2>!WARNING!</h2>
<p>Installing support for networking with VICE requires you to install
3rd party products on your machine. The VICE team cannot be
made responsible for any problems
and/or damage which arises from this! The rejection of any
warranty for VICE
applies, too.<br>
The product which has to be installed, <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/">WinPCAP</a>,
is a capture library. That is, it captures <b>every</b> packet which is available
on the network, regardless if it was destined for your machine or not. From this, it
follows that it is a real security flaw using WinPCAP in a network. Using WinPCAP
can result in disclosure of any information that is available on your network which is
not secured by other means! Installing WinPCAP, you acknowledge that you're well aware
of this security flaw and that the VICE team cannot be made responsible for any problems
and/or damage which may arise from the use of WinPCAP!</p><h2>PREREQUISITES</h2>
<p>At that moment, The ethernet emulation for WinVICE only works if you
have a real ethernet card on your machine and you are
connected to the net via it, that is, you must have
direct access to any station you want to access. Ethernet
is emulated as if the VICE emulator was
connected to your ethernet card via a hub. Every protocol,
in particular PPPOE or other protocols,
are only supported if the corresponding emulated program
supports these!</p><h2>SOLUTION</h2>
<p></p><p>For networking support, you need administrative rights
(administrator account or similar) on your windows machine.
Without this, there's no chance to have networking work!</p>
<p>If you have administrative rights, follow the following instructions to install networking
with VICE:</p>
<ul><li>First, read the above warning!</li><li>Get <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/">WinPCAP</a>
from their site. There's only need for the WinPCAP auto-installer in order to let VICE run.</li>
<li>Install the WinPCAP package you just downloaded. For this, you need to have the right to install
new drivers to your system. In general, the administrator account does have this right.</li>
<li>Now, start WinVICE as you do always. Do this with the user account you have used in the previous
step to install WinPCAP! Choosing the VICE menu entry Settings/Ethernet, a dialog box
shows up, allowing you to select Ethernet as NONE, TFE ("The final ethernet") or RR-Net. If this
is possible, WinPCAP has be installed successfully to your system. If not, check the <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/misc/faq.htm">WinPCAP FAQ</a> to find a solution.</li>
<li>The only program using ethernet we know to date is <a href="http://web.archive.org/web/20130517193701/http://dunkels.com/adam/contiki/index.html">Contiki</a>. To use Contiki, get a version of it
from <a href="http://web.archive.org/web/20130517193701/http://dunkels.com/adam/contiki/index.html">the website</a>. Make sure that it is
a version which is enabled for ethernet (TFE or RR-Net)!</li>
<li>Run this version of Contiki inside x64. Now, enable ethernet with TFE or RR-Net settings, depending
on which type you want to use. Since these two are almost identical, only some addresses are changed,
it's more of a matter of taste which one to use. Select the ethernet device you want to use with
ethernet if you have more than one.
</li><li>You need an IP address in order to let Contiki run on your network. The virtual ethernet device
of VICE runs as if it were connected to your host computer's device with a hub. No network address
translation (NAT) or the like is performed! Get an IP from your network administrator as if you had
a new machine to connect to your network. In fact, you have one, although it is only emulated.</li>
<li> Now, run Contiki, enter your IP configuration using the IP from above, and everything should
work.</li></ul>
<p>Enjoy the new surfing experience.</p>
<p>It's not necessary to log on as administrator in order to run the ethernet emulation. Anyway,
this <b>is</b> necessary the first time you start VICE after you've booted. After you've done
this, you can log off and log in with another account to run VICE. To circumvent this, see
the FAQ section below.</p><h2>FAQ</h2>
<p></p><ul><li><p><b>Why do I have to log in as administrator in order to start VICE with network support?</b></p><p>This is because the WinPCAP driver is not loaded at system startup, but rather
on-demand when someone like VICE needs it. Not every user is allowed to start services, thus, you
have to log in as a user with these rights in order to start it. The administrator is a person having
this right. On many machines, an account belonging to the "main user" group is allowed,
too. On these machines, you don't need administrator rights in order to start VICE with networking
support.</p><p>If you don't like this solution, you have another option. See <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/misc/faq.htm#Q-18">Q-18</a> at the WinPCAP FAQ.</p></li>
<li><p><b>I have problems with networking support; furthermore, there's a firewall on my machine</b></p>
<p>This is a know problem with WinPCAP, it does not work well with all firewalls, see <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/misc/faq.htm#Q-10">Q-10</a> at the WinPCAP FAQ. Unfortunately, we don't
have a solution for this. Disabling the firewall, as suggested in Q-10, might not be an option for
you, but we cannot do anything about it.</p></li>
<li><p><b>I have another problem not covered here.</b></p><p>Have a look at the <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/misc/faq.htm">WinPCAP FAQ</a>, there might be a solution for your problem.
</p></li></ul><p></p><h2>STATUS</h2>
<p>This document is for information purpose only. The behaviour reported
is intentional in the VICE versions listed at the beginning
of this article.</p><h2>LINKS</h2>
<p></p><ul><li><a href="http://web.archive.org/web/20130517193701/http://vicekb.trikaliotis.net/11-002">11-002 [Howto] Enable networking on VICE/Unix</a>.</li> <li>The Final Ethernet Homepage: <a href="http://web.archive.org/web/20130517193701/http://www.dunkels.com/adam/tfe/">http://www.dunkels.com/adam/tfe/</a>.</li><li>
Contiki Homepage:
<a href="http://web.archive.org/web/20130517193701/http://dunkels.com/adam/contiki/index.html">http://dunkels.com/adam/contiki/index.html</a>.
</li><li>WinPCAP: <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/">http://winpcap.polito.it/</a>.
</li><li><a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/misc/faq.htm">WinPCAP FAQ</a>, especially
<a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/misc/faq.htm#Q-10">Q-10</a> and <a href="http://web.archive.org/web/20130517193701/http://winpcap.polito.it/misc/faq.htm#Q-18">Q-18</a>.</li></ul><p></p><h2>REVISION</h2>
<p></p><ul><li>August 25,2004: Added reference to the same information for Unix based systems</li> <li>October 14, 2003: Before, it was mistakenly said that you find ethernet on
Options/Ethernet. This is not true, it is Settings/Ethernet.</li>
<li>October 8, 2003: Added section PREREQUISITES.</li>
<li>September 15, 2003: Original release of this document</li></ul><p></p> </div> <!-- content -->
<div class="review">
<p>Last Reviewed: August 25, 2004</p>
</div> <!-- review -->
</div> <!-- main -->
<div class="footer">
<hr>
<div class="copyright"> © 2003-2007 <a href="http://web.archive.org/web/20130517193701/mailto:www@@trikaliotis.net">Spiro Trikaliotis</a> and <a href="http://web.archive.org/web/20130517193701/http://www.viceteam.org/">The VICE team</a><br>
<a href="http://web.archive.org/web/20130517193701/http://vicekb.trikaliotis.net/13-005">http://vicekb.trikaliotis.net/13-005</a>
Last modified: August 25, 2004
</div> <!-- copyright -->
<div class="fileinfo">
<a href="http://web.archive.org/web/20130517193701/http://www.anybrowser.org/campaign/"><img src="VICE%20Knowledge%20Base%20-%20Article%2013-005_files/ab-ms-star-en.gif" alt="Viewable With Any Browser" width="88" height="31"></a><a href="http://web.archive.org/web/20130517193701/http://jigsaw.w3.org/css-validator/validator?uri=http://www.trikaliotis.net/vicekb/common/vicekb.css">
<img style="border:0;width:88px;height:31px" src="VICE%20Knowledge%20Base%20-%20Article%2013-005_files/vcss.gif" alt="Valid CSS!"></a>
</div> <!-- fileinfo -->
</div> <!-- footer -->
</body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -1,78 +0,0 @@
BODY {
FONT-FAMILY: Helvetica, Arial, Tahoma, sans-serif
}
DIV.top {
MARGIN-TOP: 0pt; MARGIN-BOTTOM: 6pt
}
DIV.top.title {
center; FLOAT: right; MARGIN-LEFT: 20%
}
DIV.top.title P {
text-align: center; color: red
}
DIV.top.logo {
FLOAT: left; WIDTH: 20%; MARGIN-RIGHT: 80%
}
DIV.main {
}
DIV.sidebar {
MARGIN-TOP: 0pt; FLOAT: right; MARGIN-BOTTOM: 6pt; WIDTH: 30%
}
DIV.sidebar P {
FONT-SIZE: 8pt; MARGIN: 0pt 2pt 6pt 36pt
}
DIV.main.content {
MARGIN-RIGHT: 30%
PADDING-RIGHT: 2pt; PADDING-LEFT: 2pt; PADDING-BOTTOM: 2pt; PADDING-TOP: 2pt
}
DIV.main.content P {
FONT-SIZE: 12pt; MARGIN: 0pt 2pt 6pt 36pt
}
DIV.main.content P.centered {
FONT-SIZE: 12pt; MARGIN: 0pt 2pt 6pt; TEXT-ALIGN: center
}
DIV.main.content ui {
MARGIN: 0pt 0pt 6pt
}
DIV.main.content li {
FONT-SIZE: 12pt
}
DIV.main.content h1 {
FONT-SIZE: 20pt
}
DIV.content h2 {
FONT-SIZE: 15pt
}
DIV.content hr {
MARGIN-RIGHT: 30%; HEIGHT: 3pt
}
DIV.main.content P {
}
DIV.footer {
PADDING-RIGHT: 2pt; MARGIN-TOP: 6pt; PADDING-LEFT: 2pt; FLOAT: left; MARGIN-BOTTOM: 0pt; PADDING-BOTTOM: 2pt; VERTICAL-ALIGN: baseline; WIDTH: 100%; PADDING-TOP: 2pt
}
DIV.copyright {
FONT-SIZE: 60%; FLOAT: left
}
DIV.review {
text-align: center; FONT-SIZE: 8pt
}
DIV.fileinfo {
FONT-SIZE: 60%; FLOAT: right
}
/*
FILE ARCHIVED ON 03:57:53 Jul 19, 2013 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 21:23:25 Dec 18, 2017.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
*/

View file

@ -1,6 +0,0 @@
TODO
* AppleWin NEEDS to be double buffered!
* Use SDL ?
* Look at Linapple?

View file

@ -1,32 +0,0 @@
How to update the webpage
=========================
1) Save a local copy of this page: http://applewin.berlios.de/ as index.php
2) Edit index.php using Nvu, Frontpage, etc
3) Launch PSFTP (part of PuTTY)
open shell.berlios.de
cd /home/groups/applewin/htdocs
lcd <folder on PC>
put index.php
put AppleWin.chm
put History.txt
*** NB. Files on BerliOS server are case-sensitive
*** Bear this in mind when ref'ing files from the web-page.
4) AppleWinX.Y.Z.zip gets uploaded to berliOS's applewin 'Files' page:
. Project Admin -> Edit/Release Files
. Quick-release a file
. Package ID: AppleWin
. Release Name: (eg) 1.13.2
. Status: Active
. Upload a new file...
Alternatively:
Login to ftp.berlios.de as 'anonymous' and upload the zip to the 'incoming' folder.

View file

@ -1,87 +0,0 @@
Requests (Wishlist):
====================
. DONE
Hard Disk light/indicator
Right now the "- Caps" in the bottom right wastes too much space.
It should be replace with [A] and [a]
This would free up room to add a hard drive light indicator to the right.
https://groups.google.com/d/msg/comp.emulators.apple2/grpSWHii8Ak/IorwTvbLxtgJ
. Video: Full Screen Debugger Colors
Amber, F7, F7 - wrong palette?
. Video: Proper mixed-mode displays
. Periphals: Ability to swap ROM cards
- Disk map!!!
http://www.lazilong.com/apple_II/adfs/screenshots/beagle_block.html
Priority:
. Shift keys map to button#2
. DONE: Right-click on drive icon to eject disk
Shift-Right-Click to turn Write Protection ON
Ctrl-Right-Click to turn Write Protection OFF
. DONE? (use '\') SCR shows what the Apple monitor should look like at the current point
. DONE: Use MT# MA# to dump memory as text.
. DONE: Ramworks support (see AppleWin 2.0 project src)
. DONE: Shift+Ins to paste from clipboard
. DONE: Cmd-line switches for: d1, d2, full-screen
Post 1.12.9.1:
- [ Feature Request #2054 ] More accurate save state
Post 1.12.8.0:
- I have multiple controllers and was wondering if a future version of the emulator
could support selecting the joystick you want to use in the emulator.
Post 1.12.7.0:
- Light-gun support (if pixel under mouse is set, then set $C061.b7 (Richard Jackson))
Post 1.12.6.0:
- Map keys to PC gamepad buttons, eg. I,J,K,M -> Up,Left,Right,Down
- Echo II support
. DONE: v16.0.0.0: VIDEO: Monitor /// output (with a gap between each scanline)
Post 1.12.5.0:
- Option to associate (or not) file types with AW.
- Option for the emulator to not lock the disks while they are in the (virtual) drives.
- Default monochrome mode to green
- Associate .aws with AppleWin.
- DONE: v16.0.0.0: UI: Screen snapshot
- Arrow-key joystick emu: can't go diagonally
- Map right-ctrl to button-0
Post 1.12.4.2:
- Ability to capture Apple A/V to an AVI file.
- Paddle emulation: 1 analogue input for PDL0, another (independent one) for PDL1.
Post 1.12.4.1:
- Option to make any pc joystick button working as the 'Turbo' (i.e. Scroll Lock).
- FastMath card support.
- Ability to view page1/2 & switch mode (Text/GR/HGR/DHGR)
- Add an 80 X 80 or 40X40 text mode
- Send data back and forth between emu apple 2 and VisualBasic
- Resizeable , scalable window
- Make a documented interface so others can program Apple II peripheral card Emu plugins.
- Emulate a video capture card: get an image from a webcam, de-rez it to HGR, and display it on the HGR screen.
- AppleCrate emulation between several open AppleWin emulators.
- Access PC files from PRODOS or DOS instead of DSK images? : Not doing (user CiderPress instead)
Post 1.12.4.0:
- Ability to send files to the PC from a disk image in AppleWin : Not doing (user CiderPress instead)
- Ability to load files from the PC to a disk image in AppleWin : Not doing (user CiderPress instead)
- When you are using the mouse as a cursor / joystick, as well as the markers on the screen border, enable the user to also add a dot (or cross hair) to the screen wherever the mouse pointer is.
- Ability to send Apple's stdout to clipboard or file (and vice versa).
Initial:
- Cassette-in
- Merged source base w/ PocketPC port (e.g. http://www.geocities.com/bonelyfish/applece.html)
- Cut'n'paste support
- Option to switch joystick buttons. (Lolo S: 01/06/04)
- Option to trim joystick axes. Drift problem with "Rescue Raiders". (Lolo S: 01/06/04)
- Backspace (Apple's DELETE key) shouldn't back to left-arrow. Make this configurable. (TheRink: 06/06/04)

View file

@ -1,43 +0,0 @@
=== Updating CHM ===
cd help
"C:\Program Files (x86)\HTML Help Workshop\hhc" AppleWin.hhp
To view:
start AppleWin.chm
The batch file "update.bat" will both compile and view the CHM.
=== Installing Microsoft Help Workshop ===
The official site is here...
* https://docs.microsoft.com/en-us/previous-versions/windows/desktop/htmlhelp/microsoft-html-help-downloads
... but in typical MS fashion it is outdated -- it has two broken links since the Help Workshop is not on "Microsoft Download Center."
i.e.
* https://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe
* https://download.microsoft.com/download/0/a/9/0a939ef6-e31c-430f-a3df-dfae7960d564/htmlhelpj.exe
This community question ...
* https://docs.microsoft.com/en-us/answers/questions/265752/htmlhelp-workshop-download-for-chm-compiler-instal.html
... says to use Wayback Machine.
* http://web.archive.org/web/20160201063255/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe
* http://web.archive.org/web/20160314043751/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/helpdocs.zip
Installing it is straight-forward but you'll get a misleading pop-up dialog near the end:
"This computer has a newer version of HTML Help."
This refers to the help VIEWER (which is already installed) and NOT the help COMPILER which was just installed.
A step-by-step installation guide can be found here:
* https://www.helpndoc.com/step-by-step-guides/how-to-download-and-install-microsofts-html-help-workshop-compiler/

View file

@ -1,123 +0,0 @@
How To Compile/Build AppleWin
=============================
MSVC 2017 Community
===================
1. Install [.NET Framework 4.6](https://www.microsoft.com/en-us/download/details.aspx?id=48137)
NOTE: The installer _will still_ complain about 4.6 even if [4.6.2](http://www.microsoft.com/en-us/download/details.aspx?id=53344) is installed.
)
2. MSVC 2017 Community Edition
a. Install [MSVC 2017 Community](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15)
b. Run `vs_Community.exe`
c. `Individual Components`
NOTE: Not all of these may be required but they are recommended:
* [x] .NET Framework 4.6.1 SDK
* [x] .NET Framework 4.6.1 targeting pack
* [x] C++ profiling tools
* [x] C++/CLI support
* [x] Git for Windows
* [x] Graphics Tools Windows 8.1 SDK
* [x] Graphics debugger and GPU profiler for DirectX
* [x] Static analysis tools
* [x] VC++ 2017 v141 toolset (x86,x64)
* [x] Windows Universal CRT SDK
* [x] Visual Studio C++ core features
* [x] Windows 8.1 SDK
* [x] Windows 10 SDK (10.0.15063.0) for Desktop C++ x86 and x64
* [x] Windows 10 SDK (10.0.15063.0) for UWP: C#, VB, JS
* [x] Windows 10 SDK (10.0.15063.0) for UWP: C++
3. Clone the repository
git clone https://github.com/AppleWin/AppleWin.git
Older MSVC instructions
=======================
0. Install git
1. Clone the repository
git clone https://github.com/AppleWin/AppleWin.git
2. Download the Feb 2010 DirectX SDK
(It is the last version to have DirectDraw)
http://www.microsoft.com/en-us/download/details.aspx?id=10084
3. Add ddraw.lib to the linker include path:
AppleWin project, Right-Click Properties, Linker, General, Additional Library Directories
The default path is:
C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Lib\x86
How to do a Coverity Scan of AppleWin
=====================================
1. Download Coverity Scan Self-Build:
https://scan.coverity.com/download?tab=cxx
Unzip and add the bin directory to your path
2. Launch VS2008 Express / Professional
3. Tools -> Visual Studio 2008 Command Prompt
VS 2008 Express:
----------------
4. Set env vars:
set include=%include%;<DirectX SDK 9.0 SDK include path>
set lib=%lib%;<DirectX SDK 9.0 SDK lib path>
EG:
set include=%include%;C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include
set lib=%lib%;C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Lib\x86
5. Clean & build:
vcbuild /clean AppleWinExpress2008.sln "Release|Win32"
cov-build --dir cov-int vcbuild /u AppleWinExpress2008.sln "Release|Win32"
VS 2008 Professional:
---------------------
4. Set env vars:
N/A
5. Clean & build:
devenv AppleWinExpress2008.sln /clean
cov-build --dir cov-int devenv AppleWinExpress2008.sln /build release
How to disable F12 so it doesn't trigger a breakpoint
=====================================================
When running AppleWin from Visual Studio (eg. F5), then F12 will trigger a breakpoint.
This is undesirable, since F12 is used to load a save-state.
AppleWin does also support CTRL+F12 to load a save-state too (for this very reason), but it's possible to disable F12 triggering the breakpoint.
Background:
F12 is the OS's default UserDebuggerHotKey:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc786263(v=ws.10)
Fix:
. Change this Registry key: "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" -> UserDebuggerHotKey to 0x07 (*)
. And restart the PC for it to take effect.
(*) Where 0x07 = Undefined
(See: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes)

View file

@ -1,118 +0,0 @@
AddressingMode_e
AM_IMPLIED
, AM_1 // Invalid 1 Byte
, AM_2 // Invalid 2 Bytes
, AM_3 // Invalid 3 Bytes
, AM_M // 4 #Immediate
, AM_A // 5 $Absolute
, AM_Z // 6 Zeropage
, AM_AX // 7 Absolute, X
, AM_AY // 8 Absolute, Y
, AM_ZX // 9 Zeropage, X
, AM_ZY // 10 Zeropage, Y
, AM_R // 11 Relative
, AM_IZX // 12 Indexed (Zeropage Indirect, X)
, AM_IAX // 13 Indexed (Absolute Indirect, X)
, AM_NZY // 14 Indirect (Zeropage) Indexed, Y
, AM_NZ // 15 Indirect (Zeropage)
, AM_NA // 16 Indirect (Absolute) i.e. JMP
0:34 12 00 00 AA 99
D0:16 03
1234:56 78 9A
R X D0
R Y 2
// ( 4) AM_M || #Immediate
300:A9 55 // LDA #$55
// ( 5) AM_A || $Absolute
302:4C 89 67 // JMP $6789
305:AD 01 00 // LDA $0001 = 12
// ( 6) AM_Z || Zeropage
308:A5 00 // LDA $00 = #34
// ( 7) AM_AX || Absolute, X
30A:DE 00 00 // DEC $0000,X $D0=FF
// ( 8) AM_AY || Absolute, Y
30D:BE 02 00 // LDX $0002,Y
// ( 9) AM_ZX || Zeropage, X
310:B4 35 // LDY $30,X
// (10) AM_ZY || Zeropage, Y
312:B6 00 // LDX $00,Y $02=0
// (11) AM_R || Relative
314:D0 02
// (12) AM_IZX || Indexed (Zeropage Indirect, X)
316:A1 00 // LDA ($00,X)
// (13) AM_IAX || Indexed (Absolute Indirect, X)
318: 7C 00 00 // JMP ($0000,X)
// (14) AM_NZY ||
31B:B1 00 // LDA ($00),Y
// (15) NZ ||
31D:B2 00 // LDA ($00)
// (16) AM_NA || Indirect (Absolute)
31F:6C 02 00 // JMP ($0002) = ($0000) -> 1234
Data Disasembly ...
Test Case:
U D001
DW BAS D000:D0BF
Debugger_Assembler.
int _6502_GetOpmodeOpbyte ( const int iAddress, int & iOpmode_, int & nOpbyte_ )
Debugger_Display.
WORD DrawDisassemblyLine ( int iLine, const WORD nBaseAddress )
int GetDisassemblyLine ( WORD nBaseAddress, DisasmLine_t & line_ )
Debugger_DisassemblerData
void Disassembly_GetData ( WORD nBaseAddress, const DisasmData_t *pData, DisasmLine_t & line_ )
FormatOpcodeBytes( nBaseAddress, line_ );
//pMnemonic = g_aOpcodes[ iOpcode ].sMnemonic;
line_.iNopcode = pData->iDirective;
strcpy( line_.sMnemonic, g_aAssemblerDirectives[ line_.iNopcode ].m_pMnemonic );
FormatNopcodeBytes( nBaseAddress, line_ );
bool _6502_GetTargets ( WORD nAddress, int *pTargetPartial_, int *pTargetPointer_, int * pTargetBytes_, bool bIgnoreJSRJMP, bool bIgnoreBranch )
WORD DrawDisassemblyLine ( int iLine, const WORD nBaseAddress )
// Instruction / Mnemonic
linerect.left = (int) aTabs[ TS_INSTRUCTION ];
if (! bCursorLine)
DebuggerSetColorFG( DebuggerGetColor( iForeground ) );
if( pData ) // Assembler Data Directive / Data Disassembler
{
// pMnemonic = g_aAssemblerDirectives[ line.iNopcode ].sMnemonic;
if (! bCursorLine)
DebuggerSetColorFG( DebuggerGetColor( FG_DISASM_DIRECTIVE ) ); // ZZZ TODO: FIXME:
pMnemonic = line.sMnemonic;
}
else
{
pMnemonic = g_aOpcodes[ iOpcode ].sMnemonic;
}

Binary file not shown.

View file

@ -1,11 +0,0 @@
@REM ACME only ever returns 0!
acme.exe hddrvr.a65
@IF %ERRORLEVEL% NEQ 0 goto error
copy hddrvr.bin ..\..\resource
@goto end
:error
@echo "ACME failed"
:end

View file

@ -1,341 +0,0 @@
;AppleWin : An Apple //e emulator for Windows
;
;Copyright (C) 1994-1996, Michael O'Brien
;Copyright (C) 1999-2001, Oliver Schmidt
;Copyright (C) 2002-2005, Tom Charlesworth
;Copyright (C) 2006-2012, Tom Charlesworth, Michael Pohoreski
;
;AppleWin is free software; you can redistribute it and/or modify
;it under the terms of the GNU General Public License as published by
;the Free Software Foundation; either version 2 of the License, or
;(at your option) any later version.
;
;AppleWin is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with AppleWin; if not, write to the Free Software
;Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
;
; Description: Firmware for harddisk card
;
; Author: Copyright (c) 2005, Robert Hoem
;
; Modified by Tom Charlesworth:
; . Updated so it can be assembled by ACME 0.97
; . Fixed so that ProDOS entrypoint is $c70a (26 Dev 2007) (Bug #12723)
; . Modified to support Apple Oasis' entrypoint: $c761 (8 Sept 2012) (Feature #5557)
; . Added support for SmartPort entrypoint (20 Oct 2012)
; - EG. "Prince of Persia (Original 3.5 floppy for IIc+).2mg"
; . GH#370 (Robert Hoem, 27 Oct 2016):
; . Added a check against open-apple during boot to route boot to slot 6
; . This happens after the first two blocks are loaded from the HD.
; . GH#319: SmartPort return address wrong when crossing page
; . GH#996: Make code slot-independent (so HDD controller card can go into any slot)
; . Moved the 512-byte block read into AppleWin's HDD emulation (to mirror the block write command)
; TODO:
; . Remove support for Entrypoint_Cs46 (old AppleWin) & Entrypoint_Cs61 (Apple Oasis)
; - provide a utility to convert these to use Entrypoint_ProDOS
; . Check SmartPort: Is it OK to trash Y and $42,..,$47 ?
;
!cpu 6502 ; Compatible with all Apple2's
!to "hddrvr.bin", plain
!sl "hddrvr.labels"
; constants
hd_execute = $c080
hd_status = $c081 ; b7=busy, b0=error
hd_command = $c082
hd_unitnum = $c083
hd_memblock = $c084
hd_diskblock = $c086
;hd_nextbyte = $c088 ; legacy read-only port (still supported by AppleWin)
; Notes on accesses to I/O registers:
; . ROR ABS16,X and ROL ABS16,X - only used for $C081+s*$10 STATUS register:
; 6502: double read (old data), write (old data), write (new data). The writes are harmless as writes to STATUS are ignored.
; 65C02: double read (old data), write (new data). The write is harmless as writes to STATUS are ignored.
; . STA ABS16,X does a false-read. This is harmless for writable I/O registers, since the false-read has no side effect.
command = $42
unitnum = $43
memblock = $44
diskblock = $46
slot6 = $C600
OS = $0801
BUTTON0 = $C061
;======================================
!zone code
*= $0000 ; org $0000 - position-independent code, so doesn't matter (but the other fixed org positions need to be on the same page)
; The Autoboot rom will call this.
; This is also the entry point for such things as IN#7 and PR#7
start
; Autoboot and ProDOS look at the following few opcodes to detect block devices
; NB. $Cn07 should be $00 for a SmartPort Interface, but changing this means that it won't autoboot on ][, ][+ and unenhanced IIe.
; . ref: http://www.1000bit.it/support/manuali/apple/technotes/udsk/tn.udsk.2.html
lda #$20
lda #$00
lda #$03
lda #$3C
bne Bootstrap
Entrypoint_ProDOS ; $Cn0A - ProDOS entrypoint
sec
bcs Entrypoint
Entrypoint_SmartPort ; $Cn0D - SmartPort entrypoint
clc
Entrypoint ; $Cn0E - entrypoint?
bcs GetSlotInX ; C=1: GetSlotInX -> cmdproc
; C=0: fall through to SmartPort...
;======================================
; TODO: Is it OK to trash Y and $42,..,$47 ?
; Pre: C=0, X = Slot# << 4
SmartPort ; SmartPort -> GetSlotInX -> cmdproc
pla
sta $46
adc #3 ; Pre: C=0, Post: C=0 or 1
tay
pla
sta $47 ; ($46) = &cmd_hdr
adc #0
pha
tya
pha ; (sp).w += 3
ldy #1
lda ($46),y ; cmd
sta $42
iny
lda ($46),y ; param_l
sta $45
iny
lda ($46),y ; param_h
sta $46
ldy #1 ; skip paramLength (assume it's #$03)
lda ($45),y ; unit
sta $43
iny
lda ($45),y ; memblock_l
sta $44
iny
lda ($45),y ; memblock_h
pha
iny
lda ($45),y ; diskblock_l
pha
iny
bne SmartPort2
;======================================
; 2 unused bytes
@checkCs46
*= $0046 ; org $0046
!warn "Cs46 padding = ", * - @checkCs46
Entrypoint_Cs46 ; Old f/w 'cmdproc' entrypoint
; Keep this for any DOSMaster HDD images created with old AppleWin HDD f/w.
; DOSMaster hardcodes the entrypoint addr into its bootstrapping code:
; - So DOSMaster images are tied to the HDD's controller's f/w
sec
bcs Entrypoint ; or directly to GetSlotInX
;======================================
Bootstrap
; Lets check to see if there's an image ready
; Slot n, disk 1
clc
bcc GetSlotInX ; Post: X = Slot# << 4
Bootstrap2
lda #$00
sta hd_unitnum,x ; b7=0 => disk 1
sta hd_command,x
lda hd_execute,x
ror hd_status,x ; Post: C=0 or 1
bcc hdboot
; no image ready, boot diskette image instead
BootSlot6
jmp slot6
;======================================
; 2 unused bytes
@checkCs61
*= $0061 ; org $0061
!warn "Cs61 padding = ", * - @checkCs61
Entrypoint_Cs61 ; Apple Oasis HDD controller entrypoint
; Keep this for any DOSMaster HDD images created with Apple Oasis HDD f/w.
; DOSMaster hardcodes the entrypoint addr into its bootstrapping code:
; - So DOSMaster images are tied to the HDD's controller's f/w
sec
bcs Entrypoint ; or directly to GetSlotInX
;======================================
; image ready. Lets boot from it.
; we want to load block 1 from disk 1 to $800 then jump there
; Pre: X = Slot# << 4
; C = 0
hdboot
lda #$0
sta unitnum ; b7=0 => disk 1
sta memblock
sta diskblock
sta diskblock+1
lda #$8
sta memblock+1
lda #$1
sta command
bne cmdproc
hdboot2
bcs BootSlot6
bit BUTTON0 ; button 0 pressed?
bmi BootSlot6
; Pre: X = Slot# << 4
jmp OS
;======================================
SmartPort2
lda ($45),y ; diskblock_h
sta $47
pla
sta $46
pla
sta $45
sec
; fall through...
;======================================
; Pre:
; C=0 => via Bootstrap
; C=1 => via Entrypoint / SmartPort2
; Post:
; X = Slot# << 4
GetSlotInX
php
sei ; disable ints, in case an int handler races our $0000/RTS and stack accesses!
; NB. need RAM that's guaranteed to be both read & writeable:
; . can't use $0200-$BFFF, due to eg. RAMRD=0/RAMWRT=1 combination
; . can't use LC as ROM might be enabled.
; So use ZP (specifically $0000) as whatever the state of ALTZP, both read & write will be to the same physical memory location.
lda $00 ; save $00
ldx #$60 ; opcode RTS
stx $00
jsr $0000 ; RTS immediately (NB. can't use $FF58, since LC RAM may be switched in)
sta $00 ; restore $00
tsx
lda $0100,x ; $Cn
asl
asl
asl
asl
tax ; X=$n0
plp ; + restore int status
bcc Bootstrap2
; otherwise fall through for Entrypoint / SmartPort...
;--------------------------------------
; entry point for ProDOS' block driver
; simple really. Copy the command from $42..$47
; to our I/O ports then execute command
; Pre:
; C=0 => via Bootstrap (hdboot)
; C=1 => via GetSlotInX (eg. Entrypoint / SmartPort2)
; X = Slot# << 4
; Post:
; C = hd_status.b0
; A = result of hd_execute
; X = Slot# << 4
cmdproc
php
lda command
sta hd_command,x
lda unitnum
sta hd_unitnum,x
lda memblock
sta hd_memblock,x
lda memblock+1
sta hd_memblock+1,x
lda diskblock
sta hd_diskblock,x
lda diskblock+1
sta hd_diskblock+1,x
lda hd_execute,x ; A = result of hd_execute (NB. instantaneous 512 byte r/w!)
- rol hd_status,x ; b7=busy doing DMA?
bcs -
plp ; restore C from start of cmdproc
bcs done
ror hd_status,x ; Post: C=0 or 1
lda #0
beq hdboot2
done
ror hd_status,x ; Post: C=0 or 1
rts
;======================================
; 33 unused bytes
!zone data
; $CsFE = status bits (BAP p7-14)
; 7 = medium is removable
; 6 = device is interruptable
; 5-4 = number of volumes (0..3 means 1..4)
; 3 = device supports Format call
; 2 = device can be written to
; 1 = device can be read from (must be 1)
; 0 = device status can be read (must be 1)
; $C7 = Removable, Interruptable, #Volumes=1, Supports write/read/status
; $D7 = Removable, Interruptable, #Volumes=2, Supports write/read/status
; $BF = Removable, Interruptable, #Volumes=4, Supports format/write/read/status (KEGS / IIGS)
; datablock. This starts near the end of the firmware (at offset $FC)
;; data
@checkCsFC
*= $00FC ; org $00FC
!warn "CsFC padding = ", * - @checkCsFC
!word $7fff ; how many blocks are on the device.
!byte $D7 ; specifics about the device (number of drives, read/write/format capability, etc)
!byte <Entrypoint_ProDOS ; entry point offset for ProDOS (must be $0a)

View file

@ -1,15 +0,0 @@
[OPTIONS]
Binary Index=No
Compatibility=1.1 or later
Compiled file=AppleWin.chm
Contents file=Table of Contents.hhc
Default Font=Arial,10,0
Default topic=toc.html
Display compile progress=No
Full-text search=Yes
Language=0x409 English (United States)
Title=Apple //e Emulator for Windows
[INFOTYPES]

View file

@ -1,196 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Command line</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">Command line</h2>
<hr size="4">
<p style="FONT-WEIGHT: bold">AppleWin can be driven from the command line as
follows:
</p>
-conf &lt;pathname&gt;<br>
Use an INI file for configuration instead of the Registry.<br>
Use this switch if you want to have multiple copies of AppleWin with different configurations, or don't want to use the Registry.<br><br>
-current-dir &lt;path&gt;<br>
This is guaranteed to be processed after all the image loading switches (eg. -d1, -h1, etc).<br>
Use this switch if you have a mix of (eg) -d1 and -h1 loading images from different folders, and you want to guarantee the current dir.<br><br>
-d1 &lt;pathname&gt;<br>
Start with a floppy disk in slot 6 drive-1 (and auto power-on the Apple II).<br>
NB. -s6d1 has the meaning same as -d1.<br><br>
-d2 &lt;pathname&gt;<br>
Start with a floppy disk in slot 6 drive-2.<br>
NB. -s6d2 has the meaning same as -d2.<br><br>
-s5d1 &lt;pathname&gt;<br>
Start with a floppy disk in slot 5 drive-1 (must be used with '-s5 diskii').<br><br>
-s5d2 &lt;pathname&gt;<br>
Start with a floppy disk in slot 5 drive-2 (must be used with '-s5 diskii').<br><br>
-h1 &lt;pathname&gt;<br>
Start with hard disk 1 plugged-in (and auto power-on the Apple II). NB. Hard disk controller card gets enabled.<br><br>
-h2 &lt;pathname&gt;<br>
Start with hard disk 2 plugged-in. NB. Hard disk controller card gets enabled.<br><br>
NB. For -d1,-d2,-s5d1,-s5d2,-h1,-h2, if pathname is "", then the disk is ejected or the harddisk is unplugged.<br><br>
-model &lt;apple2|apple2p|apple2jp|apple2e|apple2ee&gt;<br>
Select the machine model: Apple II, Apple II+, Apple II J-Plus, Apple //e, Enhanced Apple //e.<br><br>
-clock-multiplier &lt;value&gt;<br>
Where value is between 0.5 and 3.9, and is a base-clock multiplier, roughly mapping to 0.5MHz - 3.9MHz<br><br>
-s0 &lt;saturn|saturn64|saturn128&gt;<br>
Insert a Saturn 64K or Saturn 128K card into slot 0 in the Apple II or II+ machines (or similar clone).<br>
Where -s0 saturn is an alias for -s0 saturn128.<br><br>
-s0 &lt;languagecard|lc&gt;<br>
Insert an Apple 16K Language Card into slot 0 in the original Apple II and use the F8 auto-start ROM.<br>
NB. The Apple II+ already defaults to having a Language Card, so this switch is not required.<br><br>
-s1 empty<br>
Remove the parallel printer card from slot 1.<br><br>
-s1 parallel<br>
Insert a parallel printer card into slot 1.<br><br>
-s2 empty<br>
Remove the SSC card from slot 2.<br><br>
-s3 empty<br>
Remove the Uthernet card from slot 3.<br><br>
-s3 vidhd<br>
Insert a VidHD card into slot 3.<br><br>
-s5 diskii<br>
Insert a 2nd Disk II controller card into slot 5.<br><br>
-s6 empty<br>
Remove the Disk II controller card from slot 6.<br><br>
-s7 empty<br>
Remove the hard disk controller card from slot 7.<br>
Useful to allow a floppy disk to boot from slot 6, drive 1. Use in combination with -d1.<br><br>
-s7-empty-on-exit<br>
Remove the hard disk controller card from slot 7 on AppleWin exit.<br><br>
-d1-disconnected, -d2-disconnected<br>
Disconnect drive-1 and/or drive-2 from the Disk II controller card in slot 6.<br><br>
-no-nsc<br>
Remove the No-Slot clock (NSC).<br><br>
-r &lt;number of pages&gt;<br>
Emulate a RamWorks III card with 1 to 127 pages (each page is 64K, giving a max of 8MB) in the auxiliary slot in an Apple //e machine.<br><br>
-load-state &lt;savestate&gt;<br>
Load a save-state file (and auto power-on the Apple II).<br>
NB. This takes precedent over the -d1, -d2, -s#d#, -h1, -h2, s0-7, -model and -r switches.<br><br>
-f or -full-screen<br>
Start in full-screen mode.<br><br>
-no-full-screen<br>
Start in Windowed mode (default).<br><br>
-fs-height=&lt;best|nnnn&gt;<br>
Use to select a better resolution for full-screen mode.<br>
<ul>
<li>best: picks the highest resolution where the height is an integer multiple of (192*2)</li>
<li>nnnn: select a specific resolution with height=nnnn pixels</li>
</ul>
NB. Combine with <em>-no-full-screen</em> to start in Windowed mode. Without this it'll just default to full-screen.<br>
NB. When switching to Windowed mode the default desktop resolution will be restored, and when switching back to full-screen mode this better resolution will again be used.<br><br>
-rom &lt;file&gt;<br>
Use custom 12K ROM (at $D000) for Apple II machine, or 16K ROM (at $C000) for Apple //e machine.<br><br>
-f8rom &lt;file&gt;<br>
Use custom 2K ROM for any Apple II machine at [$F800..$FFFF]. &lt;file&gt; must be 2048 bytes long.<br><br>
-videorom &lt;file&gt;<br>
Use an alternate custom 2K video ROM for Apple II or II+ machines (but not clones).<br>
Use an alternate European or custom 4K, 8K or 16K (top 8K only) video ROM for the original or Enhanced //e (but not clones).<br><br>
-printscreen<br>
Enable the dialog box to display the last file saved to<br><br>
-no-printscreen-key<br>
Prevent the PrintScreen key from being registered<br><br>
-no-hook-system-key<br>
Prevent certain system key combinations from being hooked (to prevent the emulator from trapping ALT+ESC, ALT+SPACE, ALT+TAB and CTRL+ESC). This means that the equivalent Open Apple+&lt;key&gt; combinations won't work within the emulator.<br>
NB. This switch takes precedence over -hook-alt-tab and -hook-altgr-control.<br><br>
-no-hook-alt<br>
Prevent the left and right ALT keys from being hooked (eg. to prevent emulation of Open/Solid Apple keys via the ALT keys).<br><br>
-hook-alt-tab<br>
By default the emulator doesn't hook ALT+TAB. Use this to allow Open Apple+TAB to be readable by the emulated machine.<br><br>
-hook-altgr-control<br>
By default the emulator doesn't suppress AltGr's (Right Alt's) fake LEFT CONTROL. Use this to suppress this fake LEFT CONTROL to allow Solid Apple+CTRL+&lt;key&gt; to be readable by the emulated machine.<br>
NB. Suppressing this fake LEFT CONTROL seems to prevent international keyboards from being able to type certain keys.<br><br>
-altgr-sends-wmchar<br>
Use this switch to allow Solid Apple (AltGr) to be used in combination with regular keys.<br>
When AltGr is pressed, Windows only sends a WM_CHAR message for (eg) international key codes; and so by default the emulator doesn't explicitly send a WM_CHAR message for regular keys when AltGr is being pressed.<br>
NB. Using this switch may prevent international keyboards from being able to type certain keys.<br><br>
-left-alt-control-buttons<br>
Use Left Control & Left Alt for Open Apple & Solid Apple keys respectively.<br>
Caveat: Left Control + F2 will do the //e Ctrl+Open Apple+RESET (as Left Control is now both Ctrl and Open Apple!). A workaround is just to use the Right Control key.<br><br>
-right-alt-control-buttons<br>
Use Right Alt (AltGr) & Right Control for Open Apple & Solid Apple keys respectively.<br>
Caveat: Right Control + F2 will do the //e self test (as Right Control is now both Ctrl and Solid Apple!). A workaround is just to use the Left Control key.<br><br>
-swap-buttons<br>
Swap buttons 0 and 1 for all input devices.<br>
EG. the Windows keys used for Open Apple & Solid Apple keys, and the current device being used to emulate a joystick (keyboard, real joystick or mouse)<br><br>
-use-real-printer<br>
Enables Advanced configuration control to allow dumping to a real printer<br><br>
-noreg<br>
Disable registration of file extensions (.do/.dsk/.nib/.po/.woz)<br><br>
-memclear &lt;n&gt;<br>
Where n is [0..7]:
<ul>
<li>0 Initialize memory to zero</li>
<li>1 Initialize memory to random values</li>
<li>2 Initialize memory to 4 byte pattern: FF FF 00 00</li>
<li>3 Initialize memory to even pages FF, odd pages 00</li>
<li>4 Initialize memory to first half page 00, last half page FF</li>
<li>5 Initialize memory to first half page FF, last half page 00</li>
<li>6 Initialize memory to byte offset of that page
(current memory address low byte)
i.e. 00:00 01 02 03 ... for page $20</li>
<li>7 Initialize memory to page address
(current memory address high byte)
i.e. 00:20 20 20 20 ... for page $20</li>
</ul>
-modem<br>
Shorthand for passing -dcd<br>
Use with GBBS Pro (or any other BBS package). See the <a href="http://www.callapple.org/documentation/books/gbbs-pro-2-2/">GBBS Pro 2.2</a> book from Call-A.P.P.L.E.
<br><br>
-dcd<br>
For the SSC's 6551's Status register's DCD bit, use this switch to force AppleWin to use the state of the MS_RLSD_ON bit from GetCommModemStatus().<br><br>
-alt-enter=&lt;toggle-full-screen|open-apple-enter&gt;<br>
Define the behavior of Alt+Enter:
<ul>
<li>Either: Toggle between windowed and full screen video modes (default).</li>
<li>Or: Allow the emulated Apple II to read the Enter key state when Alt (Open Apple key) is pressed.</li>
</ul>
-rgb-card-type &lt;apple|sl7|eve|feline&gt;<br>
<ul>
<li><i>apple</i> is Apple's Extended 80-Column Text/AppleColor Adaptor Card (default).</li>
<li><i>sl7</i> is Video-7's RGB-SL7 card.</li>
<ul>
<li>NB. Both these apple/sl7 cards support an extra foreground/background hi-res mode that can be triggered by AN3 switching, resulting in corrupt color graphics! See <a href="Troubleshooting.html">troubleshooting</a>.
</ul>
<li><i>eve/feline</i> are Le Chat Mauve variants.</li>
</ul>
Use in conjunction with the 'Color (RGB Card/Monitor)' video mode.<br><br>
-rgb-card-foreground &lt;n&gt;<br>
-rgb-card-background &lt;n&gt;<br>
Where n is [0..15]. Defaults are foreground=15(White) and background=0(Black).<br>
The only supported DIPSW colors are: Black=0, Blue=6, Orange=9, Green=12, White=15<br>
NB. Only supported by '-rgb-card-type &lt;apple|sl7&gt;'.<br>
Use in conjunction with the 'Color (RGB Card/Monitor)' video mode.<br><br>
-rgb-card-invert-bit7<br>
Force the RGB card to invert bit7 in MIX mode. Enables the correct rendering for Dragon Wars.<br>
Use in conjunction with the 'Color (RGB Card/Monitor)' video mode.<br><br>
-50hz<br>
Support 50Hz(PAL) video refresh rate and PAL 1.016MHz base CPU clock.<br><br>
-60hz<br>
Support 60Hz(NTSC) video refresh rate and NTSC 1.020MHz base CPU clock (default).<br><br>
-power-on<br>
Force a power-on.<br>
Use to auto power-on when not using -d1, -h1 or -load-state.<br><br>
-snes-max-alt-joy1 or -snes-max-alt-joy2<br>
Use alternate button mappings for the SNES MAX card. See <a href="cfg-input.html">Input Settings</a>.<br>
<br>
<P style="FONT-WEIGHT: bold">Debug arguments:
</P>
-l or -log<br>
Enable logging. Creates an AppleWin.log file.<br><br>
-m<br>
Disable DirectSound support.<br><br>
-no-printscreen-dlg<br>
Suppress the warning message-box if AppleWin fails to capture the PrintScreen key.<br>
NB. There's now a "Don't show this message again" option on this message-box.
<br><br>
-screenshot-and-exit<br>
For testing. Use in combination with -load-state.<br><br>
</body>
</html>

View file

@ -1,243 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="Window Styles" value="0x800425">
<param name="ImageType" value="Folder">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Table of Contents">
<param name="Local" value="toc.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="AppleWin Team">
<param name="Local" value="AppleWin-team.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Acknowledgements">
<param name="Local" value="Acknowledgements.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Quick Start">
<param name="Local" value="quickstart.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Historical Information">
<param name="Local" value="history.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Disks And Disk Images">
<param name="Local" value="diskimages.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Introduction to Disk Images">
<param name="Local" value="ddi-intro.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Loading Disk Images">
<param name="Local" value="ddi-load.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Creating Disk Images">
<param name="Local" value="ddi-create.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Transferring Disk Images">
<param name="Local" value="ddi-transfer.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Copy Protected Disks">
<param name="Local" value="ddi-copy.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Disk Image Formats">
<param name="Local" value="ddi-formats.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Hard Disk Images">
<param name="Local" value="ddi-harddisk.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Using The Toolbar">
<param name="Local" value="toolbar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Using the Keyboard">
<param name="Local" value="keyboard.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Save-state Files">
<param name="Local" value="savestate.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Command line">
<param name="Local" value="CommandLine.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Sound">
<param name="Local" value="sound.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Clock">
<param name="Local" value="clock.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Super Serial Card">
<param name="Local" value="card-ssc.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Uthernet network card">
<param name="Local" value="uthernet.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="WiFi workaround">
<param name="Local" value="uthernet-wifi-workaround.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="AppleWin Configuration">
<param name="Local" value="configuration.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Configuration Settings">
<param name="Local" value="cfg-config.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Input Settings">
<param name="Local" value="cfg-input.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Sound Settings">
<param name="Local" value="cfg-sound.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Disk / Drive Settings">
<param name="Local" value="cfg-disk.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Advanced Settings">
<param name="Local" value="cfg-Advanced.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Pravets Clones">
<param name="Local" value="cfg-Advanced-Pravets.html">
</OBJECT>
</UL>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="The Freeze's F8 rom">
<param name="Local" value="cfg-Advanced-freeze-rom.html">
</OBJECT>
</UL>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Debugger">
<param name="Local" value="dbg-toc-intro.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Entering & exiting the debugger">
<param name="Local" value="dbg-entering-debugger.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Debugger Screen Layout">
<param name="Local" value="dbg-screen-layout.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scrolling">
<param name="Local" value="dbg-scrolling.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Registers">
<param name="Local" value="dbg-registers.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Flags">
<param name="Local" value="dbg-flags.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Execution">
<param name="Local" value="dbg-execution.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Memory">
<param name="Local" value="dbg-memory.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Symbols">
<param name="Local" value="dbg-symbols.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Calculator">
<param name="Local" value="dbg-calculator.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Windows">
<param name="Local" value="dbg-windows.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Breakpoints">
<param name="Local" value="dbg-breakpoints.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Bookmarks">
<param name="Local" value="dbg-bookmarks.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Configuration">
<param name="Local" value="dbg-configuration.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Resources">
<param name="Local" value="resources.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Internet Newsgroups">
<param name="Local" value="newsgroups.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Internet Sites">
<param name="Local" value="ftp.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Contacting the Developers">
<param name="Local" value="contact.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Appendix">
<param name="Local" value="appendix.html">
<param name="ImageNumber" value="2">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Full-speed mode">
<param name="Local" value="fullspeed.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Troubleshooting">
<param name="Local" value="Troubleshooting.html">
</OBJECT>
</UL>
</UL>
</UL>
</BODY></HTML>

View file

@ -1,83 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Troubleshooting</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">Troubleshooting</h2>
<hr size="4">
<p style="FONT-WEIGHT: bold">Here is a list of issues and possible solutions:</p>
Uthernet network card not working.
<ul>
<li>There are problems when running with certain firewalls (eg. ZoneAlarm).
<ul>
<li>See the Uthernet network card section for details.</li>
</ul>
</li>
</ul>
AppleWin doesn't startup.
<ul>
<li>It could be being blocked by your anti-virus software. There is a known problem with Constant Guard Protection Suite.
<ul>
<li>From your anti-virus software, unblock AppleWin to allow it to run.</li>
</ul>
</li>
</ul>
When using a non-US (or UK) keyboard, certain keys can't be typed.
<ul>
<li>AltGr (or right Alt) needs to be used to type certain keys, eg:
<ul>
<li>'@' is AltGr+2 (for a Canadian-French keyboard).</li>
<li>'[' is AltGr+é (for an Italian keyboard).</li>
</ul>
</li>
<li>Some games or productivity software have an action based on the Open Apple (Alt) or Solid Apple (AltGr) keys, eg:
<ul>
<li>Lode Runner uses CTRL+@ to increase the lives.</li>
<li>AppleLogo // and AppleWorks 5.1 have problems when using an Italian keyboard.</li>
</ul>
</li>
<li>This dual function for AltGr (to both type a key and emulate Solid Apple) can cause problems such that the key (eg. '@') can never be typed.</li>
<li>The workaround is to use the `-no-hook-alt` command line switch and configure Joystick 1 = "Keyboard (numpad)"; and then use the '0' and '.' keys for Open/Solid Apple.</li>
</ul>
No Apple II speaker sound, but Mockingboard sound is working!
<ul>
<li>Check the Volume Control for the Speaker, under the <a href="cfg-sound.html">Configuration->Sound tab</a>.</li>
<li>Try installing the Realtek-specific audio driver supplied by ASUS (as opposed to the default Win10 driver).</li>
</ul>
Color (RGB Card/Monitor) and title compatibility issues:
<ul>
<li>Dragon Wars: double hi-res bit7 needs inverting, so use the -rgb-card-invert-bit7 command line switch.</li>
<li>Renegade: switches to 160x192 mode at the title screen and then B&W (at the title screen) after game play.</li>
<li>Apple's AppleColor card or Video7's RGB-SL7 card: corruption for titles/demos that accidentally switch to foreground/background hi-res mode, eg. French Touch DIGIDREAM demo.</li>
</ul>
Can't switch to 2x windowed mode:
<ul>
<li>If the resolution isn't high enough to support 2x windowed mode, then AppleWin will refuse to switch.</li>
<li>For different versions of Windows this is slightly different:</li>
<ul>
<li>Windows 7 requires: 1181 x 808</li>
<li>Windows 10 (1909) requires: 1181 x 818</li>
</ul>
</ul>
Can't set bookmark 0 in the debugger / CTRL+SHIFT+0 not working:
<img style="FLOAT: right;" src="img/Change Key Sequence.png" alt="Configuration settings" hspace="5" vspace="5">
<ul>
<li>From Control Panel...".</li>
<ul>
<li>Windows 7: Change keyboards or other input methods -> 'Keyboards and Languages' tab -> Change Keyboards -> 'Advanced Key Settings' -> Change Key Sequence...</li>
<li>Windows 10: Typing -> Advanced Keyboard Settings -> Input language hot keys -> Change Key Sequence...</li>
</ul>
<li>Finally set "Switch Keyboard Layout" to "Not Assigned".</li>
</ul>
</body>
</html>

View file

@ -1,30 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Acknowledgements</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">Acknowledgements</h2>
<hr size="4">
<p>The team would like to thank the following people for their contributions:</p>
<p style="MARGIN-LEFT: 40px">Brian Broker: This HTML / CHM help file</p>
<p style="MARGIN-LEFT: 40px">Thomas Stahl: TV emulation mode (up to v1.25.0.4)</p>
<p style="MARGIN-LEFT: 40px">Greg Hedger: SSI263 phoneme samples</p>
<p style="MARGIN-LEFT: 40px">Robert Hoem: Hard disk card (source module &amp; f/w)</p>
<p style="MARGIN-LEFT: 40px">VICE team: TFE, Z80, MC6821 PIA emulation modules (<a href="http://vice-emu.sourceforge.net/index.html#developers">http://vice-emu.sourceforge.net/index.html#developers</a>)<br>
- In particular, Spiro Trikaliotis for TFE, whose code Glenn Jones adapted for Uthernet support</p>
<p style="MARGIN-LEFT: 40px">FUSE team: AY-3-8910 module (<a href="http://fuse-emulator.sourceforge.net">http://fuse-emulator.sourceforge.net</a>)</p>
<p style="MARGIN-LEFT: 40px">Kyle Kim: Mouse card support based on code from Apple in PC</p>
<p style="MARGIN-LEFT: 40px">Fábio Belavenuto: TK3000 Brazilian //e clone (originally responsible for integrating Z80Em)</p>
<p style="MARGIN-LEFT: 40px">Bob Sander-Cederlof: Applesoft Symbols (<a href="http://www.txbobsc.com/scsc/scdocumentor/index.html">http://www.txbobsc.com/scsc/scdocumentor/</a> S-C DocuMentor: Applesoft)</p>
<p style="MARGIN-LEFT: 40px">David Schmidt: Updates to this help file</p>
<p style="MARGIN-LEFT: 40px">Mike Harvey, Founder &amp; Editor of Nibble Magazine: For providing us Apple fans the pleasure of eagerly awaiting each next month's issue to learn about the Apple! (<a href="http://www.nibblemagazine.com/">http://www.nibblemagazine.com/</a>)</p>
<p style="MARGIN-LEFT: 40px">Andrea Odetti: working on making the source code more portable & Uthernet II card support</p>
<p style="MARGIN-LEFT: 40px">Iván Izaguirre: Taiwanese Copam Base64A Apple II clone</p>
<p style="MARGIN-LEFT: 40px">Arnaud C: debugger suggestions and help with 6502/6522/video timing issues</p>
<p style="MARGIN-LEFT: 40px">Cyril Lambin: RGB card/monitor rendering, debugger improvements</p>
<p style="MARGIN-LEFT: 40px">Alex Lukacz: 4Play & SNES MAX card support</p>
</body>
</html>

View file

@ -1,24 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Appendix</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Appendix</h2>
<hr size="4">
<ul>
<li><a href="fullspeed.html">Full-speed mode</a></li>
<li><a href="Troubleshooting.html">Troubleshooting</a></li>
</ul>
</body>
</html>

View file

@ -1,22 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>AppleWin Team</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">
AppleWin team</h2>
<hr size="4">
<p>Tom Charlesworth (Project lead)</p>
<p>Michael Pohoreski (Debugger rewrite, Half Pixel Video support, Miscellaneous user interface enhancements)</p>
<p>Nick Westgate (Floating bus support, Parallel printer)</p>
<p>Linards Ticmanis (Illegal/undefined opcodes)</p>
<p>Glenn Jones (Uthernet card)</p>
<p>Stannev (Pravets - Bulgarian Apple][ clone)</p>
<p>Ken Wessen (porting CP/M support from Fábio Belavenuto's TK3000 //e emulator)</p>
<p>Sheldon Simms (2x windowed mode & NTSC emulation)</p>
<p>Oliver Schmidt (Consulting)</p>
</body>
</html>

View file

@ -1,86 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Super Serial Card</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">Super Serial Card</h2>
<hr size="4">
<h3>Super Serial Card:</h3>
<p>AppleWin emulates a Super Serial Card (aka SSC) in slot-2, with the jumper block in the MODEM position.</p>
<p>The SSC can be configured to communicate externally either via the host PC's COM serial port or TCP port 1977.</p>
<p>See the <a href="cfg-config.html">Configuration</a> tab's 'Serial Port' menu to select a COM serial port or the TCP port.</p>
<p>The SSC currently has these <strong>hardcoded</strong> DIP switch settings:</p>
<ul>
<li>DIP SW1:
<ul>
<li>Baud rate = 9600
<li>Mode = CIC (ie. SSC's Communication Mode)
</ul>
<li>DIP SW2:
<ul>
<li>1 stop-bit
<li>8-bit byte size
<li>No parity
<li>Linefeed off
<li>Interrupts enabled
</ul>
</ul>
<p>Notes:</p>
<ul>
<li>The SSC emulation supports both Rx and Tx interrupts (for both COM and TCP modes), RTS/CTS, DSR/DTR, and the undocumented 115200 baud rate.
<li>For the TCP mode it doesn't matter what baud rate, stop-bit, byte size and parity are set to.
<ul>
<li>It always uses an unthrottled data-rate of 8-bit bytes (no stop-bit, no parity).
<li>When there's an active TCP connection, then the 6551's Status register has DCD,DSR bits clear (active low), and DIPSW2 has CTS bit clear (active low). When there's no TCP connection, then all these bits are set (inactive).
</ul>
<li>The TCP mode can expose buggy Rx interrupt handling code where the 6551's Status register is read more than once in the Interrupt Service Routine (ISR).
<ul>
<li>Details: TCP mode doesn't throttle the serial data-rate, so after reading the Status register (to clear the Rx interrupt) the Rx interrupt may get asserted immediately if there is more data in the TCP receive buffer, resulting in a missed interrupt (and therefore missed Rx data).
</ul>
<li>The 6551's Command register's DSR (bit0) must be set, to enable interrupts (Rx, Tx) along with the respective Rx and/or Tx bits (bit3:1). This is part of the 6551 specification, but (DSR bit) has only been enforced by AppleWin since 1.27.4.
</ul>
<p>Unsupported features are:</p>
<ul>
<li>Can't configure the DIP switches (not a problem, since most functions can be set in software).
<li>6551 ACIA Command register: Echo mode(bit4=1) and Transmit BRK (bit3:2=3).
<li>6551 ACIA Control register: external clock (bit4=0).
<li>6551 ACIA baud rates: 50, 75, 109.92, 134.58, 150 all map to 110 baud.
<li>6551 ACIA baud rate: 1800 maps to 2400 baud.
<li>6551 ACIA baud rate: 3600 maps to 4800 baud.
<li>6551 ACIA baud rate: 7200 maps to 9600 baud.
<li>6551 ACIA Status register's error bits: overrun, framing and parity (these are all hardcoded to 0).
<li>6551 ACIA Status register's DCD bit (Data Carrier Detect). This is just set the same as DSR.
<ul>
<li>NB. For COM mode, use command line -dcd to force AppleWin to use the state of the MS_RLSD_ON bit from GetCommModemStatus().
</ul>
<li>NMOS 6551 ACIA CTS bug: transmission of an already-started frame will stop immediately when CTS is taken false, the byte will be lost, and the TxD line will go to marking.
<ul>
<li>NB. The CMOS 6551's will finish the frame, so assume that AppleWin emulates a CMOS 6551.
</ul>
<li>AppleWin's 6502/65C02 emulation doesn't emulate the false read for STA $C088,X (where X=$20).
<ul>
<li>Don't do this to write to the 6551's Transmit register.
<li>On AppleWin this is fine, but on real hardware (in full duplex mode) you may falsely read (and clear) the 6551's Receive register.
<li>Instead (like the SSC's firmware) do this: STA $BFFF,Y (where Y=$A9).
</ul>
</ul>
<br>
<br>
<h4>Using TCP mode with the Apple // Game Server:</h4>
The TCP interface to the SSC can be used by the <a href="https://sourceforge.net/projects/a2gameserver">Apple // Game Server</a> (AGS).<br>
For details see the notes that comes with AGS, but in summary:<br>
<ul>
<li>Boot the Apple II to AppleSoft (ie. power on and hit Ctrl-Reset) and type IN#2.
<li>From a Windows DOS box, start AGS with "localhost 1977 apple2e". This will boot the emulated Apple II from AGS.
<li>Nb. Only Enhanced Apple //e is working at the moment.
</ul>
</body>
</html>

View file

@ -1,57 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Advanced Settings</title>
</head>
<span style="font-family: Courier">
=-------------------------------------=<br>
=-> Freeze's F-8 ROM &nbsp;A PPG release <-=<br>
=-------------------------------------=<br>
&nbsp;The Freeze's F-8 ROM is a modified F-8<br>
rom that has several added features.<br><br>
-Old Monitor Reset<br>
-Step and Trace modes<br>
-Disassembly with ASCII<br>
-Disassembly with Binary in #Mode<br>
-Better sounding bell!<br><br>
&nbsp;These advanced features make Monitor<br>
programming and Cracking much easier.<br><br>
&nbsp;There are two ways you can use this<br>
program. Either load it into the RAM<br>
Card using the FREEZE.INSTALL program.<br>
The other way is to burn it onto a<br>
2716 EPROM (Schematics later).<br><br>
&nbsp;The only thing that really need an<br>
explanation is the disassembly. In the<br>
disassembly, it displays the ASCII<br>
value of the byte to the right. The<br>
binary numbers on the far right are<br>
displayed when an instruction on the<br>
accumulator in immediate mode is<br>
encountered.<br><br>
2716 Schematics<br>
===============<br><br>
&nbsp;I would suggest that you do these<br>
modifications to a socket rather than<br>
directly to the chip...<br><br>
&nbsp;First, cut off pins 21 and 18.<br>
Connect pins 12 and 18<br>
Connect pins 21 and 24<br>
--------------------------------------- </span>
</body>
</html>

View file

@ -1,52 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Pravets Clones</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">Pravets Clones</h2>
<hr size="4">
<p style="FONT-WEIGHT: bold">Background:</p>
<p>
In the 80's Bulgaria was the biggest computer manufacturer in this part of the world.
Also - first in the world
- for the proportion of manufactured computers per person
in the country.<br>
</p>
<p style="FONT-WEIGHT: bold">History:</p>
<p>
IMKO 1 and IMKO 2 were the first models (circa 1980 and 1982); in 1983 IMKO 2 was renamed to Pravetz 82,
because Todor Zhivkov (Bulgarian government and communist party leader at this time) was from Pravetz -
a small town, near to Bulgaria's capital city, Sofia.<br>
<br>
IMKO 1,2 and Pravetz 82 were almost identical clones of the Apple ][. Then the Pravetz factory built the Pravetz 8M (which was unique at the time)
because of its 2 onboard CPU's - 6502 & Z80 (used as a built-in CP/M module). It also had 64 KB of RAM onboard
(16 KB as built-in RAM expansion in slot 0).<br>
<br>
In the following years they also built: Pravetz 8E, 8A, 8C and 8S - clones of Apple //e.<br>
. 8E didn't have the Cyrillic font, unlike all other models, it had lowercase and
capital Latin letters, like original Apple's.<br>
. 8A have 2 additional basic commands, 8 bit code-pages, mini-assembler, allowed
the use of hex codes in BASIC and some additional subroutines
in the built-in ROM. Unfortunately, some important entry points of the monitor (ROM) program were changed, so it was not 100%
compatible with older Apple (and Pravetz) models. This is easily corrected by changing some code (usually JMP in binary
programs or CALL, POKE, PEEK
in BASIC programs), but not very simple, especially for ordinary users.<br>
. 8C was a stripped down version of 8A (so like the Apple //c) but its size wasn't smaller, like //c. It was without an auxiliary slot
of 8A (Apple //e), instead it had 64 KB RAM built-in to its address space. It also had a CM630 CPU (6502 analogue), which had
some bugs when used with the CP/M module. 8C also had a built-in RGB module for color monitor (slot 7) and of course the improved
80 column card of the Apple //e, like 8E and 8A.<br>
. 8S was a further improved version of 8C with a possibility to change DRAM chips to 1 MB of memory.
(It was possible to do this with Pravetz 8C and the expansion card of 8A: in order to have 1060 MB of memory.)<br>
<br>
There were also other Pravetz models:<br>
. 8D was a version of the Oric/Atmos - "D" means "Dom" - "Home" in Bulgarian.<br>
Other models were 16 bit - IBM PC XT and AT clones:<br>
. Pravetz 16, Pravetz 16, Pravetz 16A, Pravetz 16H, Pravetz 16T (with Nec V20 CPU)<br>
. Pravetz 286 (286 CPU), Pravetz 386 (with 386 CPU) and Pravetz 486 - experimental, only a few were manufactured.</p>
<br>
Thanks to Stanislav Georgiev for this information.
</body>
</html>

View file

@ -1,78 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Advanced Settings</title></head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Advanced Settings</h2>
<hr size="4"><img style="width: 354px; height: 460px; float: right;" src="img/advanced.png" alt="Advanced settings" hspace="5" vspace="5">
<p><strong>Save State File Name:</strong><br>
This is the file name to use for save-state files. The default
directory is the same as where your AppleWin.exe program is stored.</p>
<p><strong>Save State on Exit:</strong><br>
Checking this box will automatically save the current state of the
emulator upon exit. &nbsp;The state will be saved to the file
specified above (SaveState.yaml by default).</p>
<p><strong>Save State:</strong><br>
Press this button to save the current state of the emulator to the file
specified. &nbsp;You can also save the system state during
emulation by pressing the F11 key.</p>
<p><strong>Load State:</strong><br>
Press this button to load the specified state file into
the emulator. &nbsp;You can also load the system state during
emulation by pressing the F12 key.</p>
<p><strong>Clone:</strong><br>
If you have specified Computer as 'Clone' on the main Configuration
page, then this drop-down menu can be used to specify the clone type.<br>
NB. Pravets 82, 8M and 8A are Bulgarian Apple II clones;
TK3000 is a Brazilian //e clone;
Base 64A is a Taiwanese Apple II clone.<br>
<ul>
<li>Pravets 8A: Use F10 for the Pravets Caps Lock (and the PC's Caps Lock key controls Cyrillic/Latin lock).
<li>TK3000: Use Scroll Lock for the 'mode' key. Use to switch between standard Apple II and accented characters.
<li>Base 64A: Use Delete for the 'F2' key (eg. press F2, release F2 then press a key to auto-type a BASIC keyword).
</ul>
</p>
<p><strong>Printer settings </strong>(Printer is emulated in slot 1)
</p>
<p style="margin-left: 40px;"><strong>Printer dump filename:<br>
</strong>
Data sent to the printer is stored in a text file. Use
this setting to select its location.<br>
</p>
<p style="margin-left: 40px;"><strong>Dump to printer:<br>
</strong><span style="font-weight: bold; font-style: italic;">Use
with caution!</span> Enables dumping to a real printer. If
disabled, the printout is stored only in printer.txt file in the AppleWin folder.
It's recommended to use a printer compatible with the printer selected in the Apple II applications.
With modern printers trying to print images will result in printing tens of
pages of nonsense. Requires command line switch -use-real-printer.<br>
</p>
<p style="margin-left: 40px;"><strong>Encoding conversion for clones:<br>
</strong>Characters are encoded from the character set used in
the real hardware to ASCII. For Pravets 8 this converts MIK to ASCII.
Enabling this could cause problems when printing images.
</p>
<p style="margin-left: 40px;"><strong>Filter unprintable characters:<br>
</strong>Some characters represent commands for the printer and
shall not be printed. When saving them to the printer dump file they
may appear as some strange symbols. (You will want to disable filtering
when dumping to a real printer.)
</p>
<p style="margin-left: 40px;"><strong>Append to print-file:<br>
</strong>When disabled, the previous print file is replaced (unless it has a
different name) by the newly created print file. Otherwise the newly
printed data is added to the existing print file. (You will want to
disable appending when dumping to a real printer.)
</p>
<p style="margin-left: 40px;"><strong>Terminate printing after idle:<br>
</strong>When printing is started, a printer file is created and it is
closed either after the specified time expires, or when
the emulator is reset. This setting is emulation speed dependent.
</p>
<p><strong>The Freeze's non-autostart F8 rom:</strong><br>
If you have specified Computer as 'Apple ][' or 'Apple ][+' on the main
Configuration page, then you will be able to enable this setting.
The Freeze F8 rom is a hacker's rom that replaces the normal 2K rom at
$F800. <a href="cfg-advanced-freeze-rom.html">Here's the
original release note</a>
</p>
</body></html>

View file

@ -1,109 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Configuration Settings</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">Configuration Settings</h2>
<hr size="4">
<img style="FLOAT: right; WIDTH: 354px; HEIGHT: 497px" src="img/config.png" alt="Configuration settings"
hspace="5" vspace="5">
<strong>Model:</strong><br>
This describes the mode of emulation. &nbsp;You have the option of emulating
the predecessors of the Apple //e: the Apple ][ and Apple ][+. Besides running
with a different Apple system ROM, some differences are discussed below.<br>
<ul>
<li>Apple ][ : 48K non-autostarting, Integer BASIC, no lower-case, no 80-column, 6502 CPU
<li>Apple ][+ : 64K autostarting, Applesoft BASIC version of the Apple ][
<li>Apple ][ J-Plus : 64K autostarting, Applesoft BASIC, Japanese version of the Apple ][+
<li>Apple //e : 128K machine, lower-case, 80-column, 6502 CPU</li>
<li>Enhanced Apple //e : 128K machine, lower-case, 80-column, 65C02 CPU</li>
<li>Clone (specific model selectable from Advanced page)</li>
</ul>
<strong>Confirm reboot:</strong><br>
Show "Confirm reboot" message box when F2 is pressed.<br>
<br>
<strong>Video:</strong><br>
AppleWin can display Apple video in a variety of modes. The display can also be
run in a standard window or full-screen. This option describes the type of
video emulation to be used for the emulator. The differences are
discussed below.<br>
<ul>
<li><strong>Monochrome (custom) :</strong>&nbsp;This mode emulates a monochrome monitor.<br>
You can choose your monochrome color from the <em>Monochrome Color</em> button described below.
<li><strong>Color (Composite Idealized) :</strong>&nbsp;This mode emulates an <i>idealized</i> composite color monitor.
<br>Text is sharp like a white monochrome monitor. Color graphics has only 16 colors (with no blurring or ringing). This is the only mode that supports vertical blend.
<li><strong>Color (RGB Card/Monitor) :</strong>&nbsp;This mode emulates a standard RGB card and monitor.
<br>Text is sharp like a white monochrome monitor. Color graphics has only 16 colors (with no blurring or ringing). Double hi-res is 140x192 chunky pixels (or software selectable as: B&W or mixed Color/B&W). From the <a href="CommandLine.html">command line</a> you can specify the RGB card, the default is the Extended 80-Column Text/AppleColor Adaptor Card. Some double hi-res titles may have compatibility issues. See <a href="Troubleshooting.html">troubleshooting</a>.
<li><strong>Color (Composite Monitor) :</strong>&nbsp;This mode emulates a standard NTSC (or PAL) color monitor.
<br>Text is sharp, but contains color artifacts. Color graphics has visible alternating color and black pixels.
<li><strong>Color TV :</strong>&nbsp;This mode emulates an NTSC color TV.
<br>All text and color graphics modes are blurry and have visible ringing.
<li><strong>B&W TV :</strong>&nbsp;This mode emulates an NTSC black and white TV.
<li><strong>Monochrome (Amber/Green/White) :</strong>&nbsp;Monochrome with specified color.
</ul>
<strong>Monochrome Color:</strong><br>
This is the color to use when you choose a monochrome video mode.<br>
<br>
<strong>50% Scan lines:</strong><br>
Only draw alternate scanline (for better monitor authenticity).<br>
<br>
<strong>Vertical blend:</strong><br>
When video mode is 'Color (Composite Idealized)' then vertically blend the hi-res screen.<br>
<br>
<strong>Full-Screen: Show drive/keyboard status:</strong><br>
When in full-screen mode, show floppy (activity and track) and harddisk status (activity); keyboard caps-lock status and if emulation is paused.<br>
<br>
<strong>VidHD in slot 3</strong><br>
Insert a VidHD card into slot 3 (which can co-exist with an 80-column card in the Apple //e's AUX slot).<br>
Allows all Apple II models to support the IIgs' Super Hi-Res (SHR) video modes and is supported by eg. <a href="https://archive.org/details/TotalReplay">Total Replay</a>.<br>
<br>
<hr>
<strong>Serial Port:</strong><br>
This option will remap the emulated Apple's serial port to your PC's serial port (or TCP port 1977).<br>
See <a href="card-ssc.html">Super Serial Card</a> for more details.<br>
<br>
<strong>Ethernet Settings...:</strong><br>
This allows to choose which network interface card (NIC) you want to
use with the Uthernet or Uthernet II card.<br>
<br>
<strong>Emulation Speed Control:</strong><br>
This option let's you control the processor speed of the emulated system. You
may choose to use an authentic speed (matching the speed of the original
processor from the system) or you can underclock or overclock the emulated
processor speed from half-speed to as fast as your PC can emulate.<br>
<br>
<strong>50Hz video:</strong><br>
When checked, this option will run the emulated machine with a 50Hz(PAL) video refresh rate.
The default is unchecked, for 60Hz(NTSC).<br>
<br>
<strong>Benchmark Emulator:</strong><br>
This will run a benchmark test that will show how fast your PC can emulate an
Apple //e system with this emulator. In order to run the benchmark, the
emulated machine must be reset and you will lose any unsaved work. You will be
prompted before you continue this action. The results given are:<br>
<ul>
<li> Pure Video FPS
<li> Pure CPU MHz (video update)
<li> Pure CPU MHz (full-speed)
<li> Expected average video game performance (in FPS)
</ul>
</li>
</body>
</html>

View file

@ -1,62 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Disk Settings</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Disk Settings</h2>
<hr size="4"><img style="width: 354px; height: 460px; float: right;" src="img/disk.png" alt="Disk settings" hspace="5" vspace="5">
<h3>Floppy Controller Settings:</h3>
<p><strong>Enhanced disk access speed:</strong><br>
Here you can choose the speed at which the system can access
an emulated floppy disk drive.
By default, you would want "Enhanced Speed" so that data can
be accessed as fast as possible. However, it is also possible that
certain programs might depend on the "Authentic Speed" to function
properly. This is the speed at which the real hardware
would access data from your drives.
</p>
<p><strong>Disk 1/2 drop-down menus (slot 6):</strong><br>
These menus allow you to select floppy disk images to 'insert' into the
emulated floppy drives 1 and 2. This can also be done during emulation by <a href="toolbar.html">using the toolbar</a> or using the F3/F4 keys. Diskettes can be swapped by pressing F5 during emulation. You can also eject images from this menu.
</p>
<p><strong>Enable Disk II controller in slot 5:</strong><br>
A floppy controller card can be plugged into slot 5 by checking this box.
</p>
<p><strong>Disk 1/2 drop-down menus (slot 5):</strong><br>
You can select floppy disk images to 'insert' into the
emulated floppy drives 1 and 2.
</p>
<br>
<h3>Hard disk Controller Settings:</h3>
<p><strong>Enable hard disk controller in slot 7:</strong><br>
A hard disk controller (or interface) card can be plugged into slot 7 by checking this box.
See <a href="ddi-harddisk.html">Hard disk Images</a> for more details.
</p>
<p><strong>Swap:</strong><br>
Swap the hard disk images.<br>
WARNING! If done during image access this could result in undefined behavior (eg. Apple II program crash) or data corruption on the image.
</p>
<p><strong>HDD 1/2 drop-down menus:</strong><br>
These menus allow you to select hard disk images (eg. .hdv files) to
connect to the emulated hard disk controller card. You can also unplug images from this menu.
</p>
<br>
<p><strong>CiderPress path:</strong><br>
Use this to specify where CiderPress is installed.<br>
The right mouse button context menu on either of the drive icons allows you to open CiderPress with the image in the drive.
</p>
</body>
</html>

View file

@ -1,98 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Input Settings</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Input Settings</h2>
<hr size="4"><img style="width: 354px; height: 497px; float: right;" src="img/input.png" alt="Input settings" hspace="5" vspace="5">
<strong>Joystick Control:</strong><br>
These options allow you to configure up to two joysticks attached to
the emulated Apple //e system.<br>
<ul>
<li>Joystick 1/2: Choose the emulation method for joysticks 1 and 2.</li>
<li>X/Y-trim: &nbsp;These controls&nbsp;add a trim value to the
joystick X/Y offsets when the joystick is centered. Normally central
position is X=127, Y=127 so this adds the trim value for PC joysticks
&amp; keyboard (centering). If you are using an analog PC joystick,
then you should leave these values at 0.</li>
<li>Allow cursor keys to be read from keyboard: Applicable only in 'Keyboard (cursors)' mode.</li>
<li>NB.</li>
<ul>
<li>Be aware that 'cursor-up' = CTRL+K, and 'cursor-down' = CTRL+J.</li>
<li>When cursor keys are used for joystick emulation <strong>and</strong> are allowed to be read from the keyboard, then some games won't work correctly (eg. Lode Runner).</li>
<li>When cursor keys are blocked from being read from the keyboard, then simple command-line cursor editing in AppleSoft won't work.</li>
</ul>
<li>Swap 0/1: Swap buttons 0 and 1 for all input devices.</li>
<li>Auto-fire (all 3 buttons): For each button pressed, the button's state will be toggled when read.</li>
<li>Keyboard auto-centering: When keys used for joystick emulation are released then the joystick will return to the central position.</li>
</ul>
<strong>4Play Joystick card:</strong><br>
On real hardware this card allows up to 4 Atari 9-pin joysticks to be connected.<br>
Under emulation, the first 2 Windows-detected controllers will be used, and then for joysticks 3 and 4, use keys: ESDF+ZX and IJKL+NM. Note these keys will also be readable from the keyboard.<br>
<li>The card can be configured in slots 3, 4 or 5.
<li>Since it only uses the slot's DEVICE SELECT space ($C0Bx for slot 3) then it can co-exist with an 80-column card in the Apple //e's AUX slot. NB. For a real PAL Apple //e, then a slot riser card is required for it to fit.<br>
See Lukazi's <a href="https://lukazi.blogspot.com/2016/04/apple-ii-4play-joystick-card.html">4Play card</a> and <a href="https://lukazi.blogspot.com/2017/08/apple-ii-4play-joystick-card-software.html">4Play card software</a> blogs for more information.<br>
<br>
<strong>SNES MAX card:</strong><br>
On real hardware this card allows up to 2 SNES controllers to be connected and all 12 buttons can be read.<br>
Under emulation, the first 2 Windows-detected controllers will be used, ideally with 12 (or more) buttons eg. Logitech F310, PlayStation Dualshock 4, DualSense. Note that for some controllers (eg. 8BitDo NES30 Pro) the buttons need remapping, so use the command line switches -snes-max-alt-joy1 or -snes-max-alt-joy2 to remap.<br>
<li>The card can be configured in slots 3, 4 or 5.
<li>Since it only uses the slot's DEVICE SELECT space ($C0Bx for slot 3) then it can co-exist with an 80-column card in the Apple //e's AUX slot. NB. This card is small, so no slot riser card is required.<br>
See Lukazi's <a href="https://lukazi.blogspot.com/2021/06/game-controller-snes-max-snes.html">SNES MAX</a> blog for more information.<br>
<br>
<br>
<hr>
<strong>Scroll Lock acts as toggle for full-speed CPU:</strong><br>
<ul>
<li>When checked, you can permanently enable full-speed CPU when Scroll Lock is on.</li>
<li>When unchecked, only when Scroll Lock is depressed will you get full-speed CPU.</li>
</ul>
<strong>Mouse interface in slot 4:</strong><br>
<ul>
<li>Disables joystick emulation with mouse.</li>
<li>Disables Mockingboard/Phasor in slot 4.</li>
<li>Show cross-hairs in window's frame:</li>
<ul>
<li>Configure whether you want cross-hairs or not</li>
</ul>
<li>Restrict mouse to Apple window:</li>
<ul>
<li>Restricting is useful for paint applications</li>
<li>When unrestricted, the emulated mouse is fully integrated with the Window desktop:
moving in and out of the AppleWin window will switch between Windows' and the Apple's mouse cursor.</li>
<li>NB. Even when unrestricted, you won't be able to move the mouse outside the Apple window for GEOS. This is not a bug.</li>
<li>Tip: Use Ctrl+Left Mouse Button to show the Windows mouse cursor (eg. essential for GEOS).</li>
</ul>
</ul>
<strong>Microsoft CP/M SoftCard interface in slot 4 or 5:</strong><br>
<ul>
<li>Emulates a CP/M card, complete with full Z80 emulation.</li>
<li>Available when Mockingboard or Phasor isn't in slot 4 or 5.</li>
</ul>
<strong>Paste from clipboard:</strong><br>
Pressing this button will allow you to paste text from the
Windows' clipboard into the emulated Apple //e.<br>
</body>
</html>

View file

@ -1,46 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Sound Settings</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Sound Settings</h2>
<hr size="4"><img style="width: 354px; height: 460px; float: right;" src="img/sound.png" alt="Sound settings" hspace="5" vspace="5"><strong>Sound:</strong><br>
This option allows you to choose how sound is output for the
system.&nbsp;Your choices are:<br>
<ul>
<li>Disabled</li>
<li>Sound Card (recommended)</li>
</ul>
<br>
<strong>Volume Control:</strong><br>
These slider controls allow you to control the sound
levels of the built-in Apple //e speaker and/or an optional
Mockingboard or Phasor speaker.<br>
<br>
<strong>Mockingboard/Phasor Control:</strong><br>
These options allow you to either enable a pair of Mockingboard sound
cards in slots 4 and 5, or enable a Phasor sound card in slot 4, or simply disable any
external sound card for the emulated system.<br>
<br>
<strong>SAM:</strong><br>
SAM (Software Automatic Mouth) is an 8-bit DAC card than can be enabled in slot 5.
</body>
</html>

View file

@ -1,53 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Clock</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" alink="#008000"
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">
Clock</h2>
<hr size="4">
<h3>Clock:</h3>
<p>AppleWin emulates a No-Slot clock (aka NSC).</p>
<p>This is a chip (a Dallas SmartWatch DS1216) that sits under one of the 28-pin (or 24-pin) ROM chips in the Apple II.<br>
No hardware configuration is required: this chip is always present (unless -no-nsc is used), but won't interfere with system operation when not in use.
</p>
<p>It requires a software driver to be installed (for DOS and ProDOS). This driver then emulates the Thunderclock card.</p>
<br>
<p>For the <strong>Apple //e</strong>, here's a summary of NSC/ROM chip locations and which drivers work:</p>
<ul>
<li>"CD" ROM socket: $C000-DFFF (internal) ROM space - all drivers work</li>
<li>"EF" ROM socket: $E000-FFFF ROM space - never seen any drivers use this space</li>
<li>"CF" ROM socket: $C000-FFFF (internal) ROM space - all drivers work</li>
<li>Slot ROM socket: $Cs00-CsFF (slot) ROM space - NS.CLOCK.SYSTEM works</li>
</ul>
<p>Here are the drivers and ROM pages they check:</p>
<ul>
<li>ProDOS "SWU.SYSTEM" - internal C3</li>
<li>ProDOS "NS.CLOCK.SYSTEM" - internal C3 C8 / external C1-C7</li>
<li>GEOS "NoSlot Clock" - internal C8</li>
<li>ProDOS-8 v2.5.0 "NoSlotClk.IIe" - internal C3 (currently 65C02 only)</li>
</ul>
<br>
<p>For the <strong>Apple II/II+</strong>, here's a summary of NSC/ROM chip locations and driver information:</p>
<ul>
<li>"F8" ROM socket: $F800-FFFF (internal) ROM space - ProDOS-8 v2.5.0a8 (not currently working)</li>
</ul>
<p>Here are the drivers and ROM pages they check:</p>
<ul>
<li>ProDOS-8 v2.5.0 "NOSLOTCLK.II" - internal F8</li>
</ul>
<br>
<p><strong>NOTE: </strong>For ProDOS, the load order of drivers is important:</p>
<p>Some .SYSTEM drivers will <strong>not</strong> chain-load the next driver.<br>
NS.CLOCK.SYSTEM does, so ensure this is the first one ProDOS finds,
whereas ZIP.SYSTEM doesn't so put this at the end of the chain.</p>
</body>
</html>

View file

@ -1,20 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>AppleWin Configuration</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">AppleWin Configuration</h2>
<hr size="4">
<p>Select one of the following topics: </p>
<ul>
<li><a href="cfg-config.html">Configuration Settings</a></li>
<li><a href="cfg-input.html">Input Settings</a></li>
<li><a href="cfg-sound.html">Sound Settings</a></li>
<li><a href="cfg-disk.html">Disk Settings</a></li>
<li><a href="cfg-advanced.html">Advanced Settings</a></li>
</ul>
</body>
</html>

View file

@ -1,20 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Contacting the Developers</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body style="FONT-FAMILY: verdana; BACKGROUND-COLOR: rgb(255,255,255)" vLink="#008000"
aLink="#008000" link="#008000">
<h2><font color="#008000">Contacting the Developers</font></h2>
<P>
<hr SIZE="4">
<P></P>
<P><br>
To contact the project administrators, post a question to the GitHub link below.<br>
<br>
<P>Bug reports / feature requests should be submitted here:<br>
<A href="https://github.com/AppleWin/AppleWin/issues/new">https://github.com/AppleWin/AppleWin/issues/new</A>
</P>
</body>
</html>

View file

@ -1,127 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h1>Bookmarks</h1>
<p>Bookmarks allow you to "tag" an address and consequently jump back to them.<br>
They appear as a number with a circle around them between where address and opcodes are listed (where the : separator is).
</p>
<img src="img/debugger-bookmarks-annotated.png" hspace="5" vspace="5">
<br>
<p><font size="4"><b>Notes</b>:</font></p>
<ul>
<li>Set a bookmark at the current disassembly cursor, use Ctrl-Shift-#, ie:
<ul>
<li>Ctrl-Shift-0 set bookmark 0 (by default Windows blocks this key sequence - see <a href="Troubleshooting.html">Troubleshooting</a> to resolve this)
<li>Ctrl-Shift-1 set bookmark 1
<li>Ctrl-Shift-2 set bookmark 2
<li>...
<li>Ctrl-Shift-9 set bookmark 9
</ul>
</li>
<br>
<li>To jump to an existing bookmark, if it exists, press Ctrl-#, ie:
<ul>
<li>Ctrl-0 to jump to bookmark 0
<li>Ctrl-1 to jump to bookmark 1
<li>Ctrl-2 to jump to bookmark 2
<li>...
<li>Ctrl-9 to jump to bookmark 9
</ul>
</li>
<br>
<li>NB.
<ul>
<li>Bookmarks can appear in any order that you set - not just contiguous.
<li>An address can only have ONE bookmark assigned to it. If you try setting a new bookmark over an existing one, the old one will become free for use.
</ul>
</li>
</ul>
<p>
</p>
<p><font size="4"><b>Commands to manipulate bookmarks:</b></font></p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td>
<p><font color="#ffffff"><b>Description</b></font></p>
</td>
</tr>
<tr>
<td width="25%">
<p>help bookmarks</p>
</td>
<td>
<p>Lists all bookmark related commands</p>
</td>
</tr>
<tr>
<td width="25%">
<p>help bma</p>
</td>
<td>
<p>Lists specific help about the bma command</p>
</td>
</tr>
<tr>
<td width="25%">
<p>bma &lt;address|label&gt;</p>
</td>
<td>
<p>Add a bookmark at an address or label</p>
</td>
</tr>
<tr>
<td width="25%">
<p>bmc #</p>
</td>
<td>
<p>Clear a specific bookmarks, for example 'bmc 1' clears bookmark 1</p>
</td>
</tr>
<tr>
<td width="25%">
<p>bmc *</p>
</td>
<td>
<p>Clears all bookmarks</p>
</td>
</tr>
<tr>
<td width="25%">
<p>bml</p>
</td>
<td>
<p>Lists all boommarks</p>
</td>
</tr>
<tr>
<td width="25%">
<p>bmsave</p>
</td>
<td>
<p>Not implemented yet</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>

View file

@ -1,446 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Breakpoints"></a>Breakpoints</h2>
<p>You now have a variety of options when specifying a breakpoint.&nbsp;
Breakpoints can also be disabled, and later re-enabled. &nbsp; This lets ones
set a bunch of breakpoints, and quickly re-activate them without having to
re-enter the breakpoint logic.</p>
<p><br>
<br>
</p>
<table border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPA
r [op] value</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Adds
(conditional) Breakpoint.<br>
Default operator is equal =<br>
(In a future version, will dispatch to BPX, BPR, BPP, or BPIO.)</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPX<br>
BPX expression<br>
BPX address[,len]<br>
BPX [op] symbol</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Add Breakpoint trigger to stop executing when the PC is within the range of the Address, Symbol, or Expression. i.e. Range is: [addr,addr+len)<br>
Default length is 1.<br>
Default comparison operator is equal =</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BP</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Currently an Alias for BPX.<br>
(In a future version, will also support Loading and Saving of breakpoints.)</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPM address[,len]</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Add Breakpoint trigger when memory is accessed by 6502.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPMR address[,len]</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Add Breakpoint trigger when memory is read by 6502.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPMW address[,len]</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Add Breakpoint trigger when memory is written by 6502.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPR reg [op] value</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Add Breakpoint trigger when Registers reg value is compared to the Value.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPD</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Disable Breakpoint (grayed out).</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPE</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Enable Breakpoint (colored red).</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPC #</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear specified Breakpoint.<br>
Note: The asterisk * may be used to clear all breakpoints.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPL</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">List Breakpoints.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPIO</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">(In a future version, will add Breakpoint trigger on memory read or write.)</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPP</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">(In a future version, will add Breakpoint trigger on specific flag cleared or set.)</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRK [0|1|2|3|all] [on|off]</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Break on BRK or Invalid 1-3 byte opcodes</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRKOP [opcode]</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Break on Opcode</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRKINT [on|off]</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Break on Interrupt</span></i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p>The general format for the conditional breakpoint is:</p>
<ul>
<li>
<p style="MARGIN-BOTTOM: 0in"><i>BPA register [operator] value.</i></p>
</li>
</ul>
<p>You can use the following comparison operators:</p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="10%">
<p><font color="#ffffff"><b>Op</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Name</b></font></p>
</td>
<td width="65%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr>
<td width="10%">
<p>=</p>
</td>
<td width="25%">
<p>Equal</p>
</td>
<td width="65%">
<p><i>Break when register is equal to value.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>!</p>
</td>
<td width="25%">
<p>Not Equal</p>
</td>
<td width="65%">
<p><i>Break when register is not equal to value.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>&lt;</p>
</td>
<td width="25%">
<p>Less Than</p>
</td>
<td width="65%">
<p><i>Break when register is less than value.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>&gt;</p>
</td>
<td width="25%">
<p>Greater Than</p>
</td>
<td width="65%">
<p><i>Break when register is greater than value.</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p>Breaking on any of the 6502 registers is fully supported:</p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<thead>
<tr bgcolor="#000000">
<td width="10%">
<p><font color="#ffffff"><b>Reg</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Name</b></font></p>
</td>
<td width="65%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td width="10%">
<p>A</p>
</td>
<td width="25%">
<p>Accumulator</p>
</td>
<td width="65%">
<p><i>Break when Accumulator is triggered.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>X</p>
</td>
<td width="25%">
<p>Register X</p>
</td>
<td width="65%">
<p><i>Break when Index X is triggered.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>Y</p>
</td>
<td width="25%">
<p>Register Y</p>
</td>
<td width="65%">
<p><i>Break when Index Y is triggered.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>PC</p>
</td>
<td width="25%">
<p>Program Counter</p>
</td>
<td width="65%">
<p><i>Break when PC is triggered.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>S</p>
</td>
<td width="25%">
<p>Stack Pointer</p>
</td>
<td width="65%">
<p><i>Break when Stack Pointer is triggered.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>P</p>
</td>
<td width="25%">
<p>Processor Status (flags)</p>
</td>
<td width="65%">
<p><i>Break when flags are triggered.</i></p>
</td>
</tr>
</tbody>
</table>
<br>
<h2><font size="4">Notes:</font></h2>
<ul>
<li>
<p><i>BPP, Breaking on a specific flag (either set, or cleared) is forth-coming in a
future version.</i></p>
</li>
</ul>
<br>
<p><font size="4"><b>Examples</b>:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>BPX &lt; F000</b></font></font></p>
</td>
<td width="75%">
<p><font color="#ffffff"><i>Add Breakpoint when PC &lt; $<b><font color="#ffff00">FA62</font></b>.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>BPX PC &lt; D000</b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Add Breakpoint when PC &lt; $ <b><font color="#ffff00">D000</font>.</b></i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPR A 0</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Add Breakpoint when Accumulator is zero.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPR A ! 0</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Add Breakpoint when Accumulator is <b>not</b> zero.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BPR S &lt; 1FF</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Add Breakpoint when Stack has had something pushed onto it.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRK ON</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Break execution when the opcode to be executed is $00 (ie. BRK).</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRK ALL ON</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Break execution when the opcode to be executed is $00 (ie. BRK) or any Invalid opcode.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRK 0 OFF</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Disable breaking execution when the opcode to be executed is $00 (ie. BRK).</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRKOP 6C</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Break execution when the opcode to be executed is $6C (ie. JMP (ABS)).</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BRKINT ON</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Break execution just after an interrupt occurs.</i></font></p>
</td>
</tr>
</tbody>
</table>
<br>
</body>
</html>

View file

@ -1,323 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Calculator"></a>Calculator</h2>
<p>There is a basic mini hex calculator built in.&nbsp; It can do Addition,
Subtraction, Division, Modulus, bit-wise And, bit-wise Or, bit-wise Exclusive
Or, and bit-wise Negation, with Values, Register and Symbols.&nbsp; It will
display results in Hex, Binary, Decimal, and as a Character (single quoted.)</p>
<p><br>
<br>
</p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="10%">
<p><font color="#ffffff"><b>Op</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Name</b></font></p>
</td>
<td width="65%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr>
<td width="10%">
<p>+</p>
</td>
<td width="25%">
<p>Plus</p>
</td>
<td width="65%">
<p><i>Addition.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>-</p>
</td>
<td width="25%">
<p>Minus</p>
</td>
<td width="65%">
<p><i>Subtraction.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>%</p>
</td>
<td width="25%">
<p>Percent</p>
</td>
<td width="65%">
<p><i>Calculate remainder (modulus).</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>/</p>
</td>
<td width="25%">
<p>Forward Slash</p>
</td>
<td width="65%">
<p><i>Calculate quotient.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>&amp;
</p>
</td>
<td width="25%">
<p>Ampersand</p>
</td>
<td width="65%">
<p><i>Bit-wise AND.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>|
</p>
</td>
<td width="25%">
<p>Pipe</p>
</td>
<td width="65%">
<p><i>Bit-Wise (inclusive) OR.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^</p>
</td>
<td width="25%">
<p>Caret</p>
</td>
<td width="65%">
<p><i>Bit-Wise (exclusive) OR, also called XOR.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>!</p>
</td>
<td width="25%">
<p>Exclamation</p>
</td>
<td width="65%">
<p><i>Bit-Wise NOT.</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<h2><font size="4">Notes:</font></h2>
<ul>
<li>
<p style="MARGIN-BOTTOM: 0in"><i>The unary bit-wise Negation operator, ! only effects
the next immediate expression.</i></p>
<li>
<p style="MARGIN-BOTTOM: 0in"><i>There is (currently) no multiplication operator, due
to the asterisk * being used for the wild card operator.</i></p>
</li>
</ul>
<p><br>
<br>
</p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input </b></font>
</p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect </b></font>
</p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>CALC 9+1</b></font></font></p>
</td>
<td width="75%">
<p><font color="#ffffff"><i>Calculate 9+1, in hex.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
A 1</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Accumulator to 1.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
X 2</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set X to 2.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
Y 3</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Y to 3.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
A+X+Y</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate sum of registers.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
1FF-S</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate Stack Depth.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
BRKV+1</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate address of Break Vector + 1<br>
(First byte is a jump instruction.)</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
A+#A</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate Accumulator plus (decimal) 10.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
A+0A</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate Accumulator plus (decimal) 10.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
A+$0A</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate Accumulator plus (decimal) 10.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
0A+0A</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate 10 + 10, in hex.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
$RESET+1</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate Address of Reset + 1 (First opcode is one byte, CLD).</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
!HOME</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate bit-wise NOT.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
X &amp; Y</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate bit-wise AND of Register X , Register Y.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
X | Y</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate bit-wise OR of Register X , Register Y.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
X ^ Y</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate bit-wise XOR of Register X , Register Y.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
X / Y</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate division of Register X , Register Y.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CALC
X % Y</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Calculate remainder of Register X , Register Y.</i></font></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;
</p>
</body>
</html>

View file

@ -1,412 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Configuration"></a>Configuration</h2>
<p><br>
<br>
</p>
<h3><a name="Colors"></a>Colors</h3>
<p>The commands to change color schemes, and colors are:</p>
<p><br>
<br>
</p>
<table border="0" cellpadding="2" cellspacing="0" width="80%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">COLOR</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Switch
to color scheme.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">MONO</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Switch
to monochrome scheme.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">COLOR
#</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Displays
the Red, Green, and Blue values for the specified color.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">COLOR
# # # #<br>
COLOR # R G B</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Sets
the colors to the new Red, Green, and Blue values.<br>
First # is the color.</span></i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p>Some people prefer monochrome (easier on the eyes, in full screen), so you may
want to use that setting:</p>
<br>
<p><font size="4"><b>Examples</b>:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>MONO</b></font></font></p>
</td>
<td width="75%">
<p><font color="#ffffff"><i>Switch to the monochrome scheme.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>COLOR</b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Switch to the color scheme.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">COLOR
0 10 20 40</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Sets the console background color to slate gray: RGB 10,20,40</i></font></p>
</td>
</tr>
</tbody>
</table>
<br>
<h3><a name="Fonts"></a>Fonts</h3>
<p>The font Type, and Spacing can be configured, to show more or less lines in the
disassembly window.</p>
<br>
<table border="0" cellpadding="2" cellspacing="0" width="80%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>FONT MODE #</b></font></font></p>
</td>
<td width="75%">
<p><i>Set disassembler line spacing for the current font.</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>FONT “name”</b></font></font></p>
</td>
<td width="75%">
<p><i>Switch disassembler to new font.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>FONT “name” #</b></font></font></p>
</td>
<td width="75%">
<p><i>Switch disassembler to new font with specified height (in pixels)</i></p>
</td>
</tr>
</tbody>
</table>
<br>
<p><font size="4"><b>Examples</b>:</font></p>
<table border="0" cellpadding="2" cellspacing="0" width="799">
<COLGROUP>
<col width="276">
<col width="515">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="276">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="515">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#30c0ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">FONT
MODE 0</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Classic” Line Spacing.&nbsp; Shows the fewest amount of lines.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#30c0ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">FONT
MODE 1</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Improved” Line Spacing.&nbsp; (Default)</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#30c0ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">FONT
MODE 2</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Minimal” Line Spacing.&nbsp; Shows the most amount of lines.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#30c0ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">FONT
“Arial”</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Switch disassembler font to Arial.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#30c0ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">FONT
“Courier New”</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><i>Switch disassembler font to Courier New.</i></p>
</td>
</tr>
</tbody>
</table>
<br>
<h3><a name="Scripts"></a>Scripts</h3>
<p>
You can run custom batch or script files that contain debugger commands.&nbsp;
Scripts files do not echo their input; to print a string to the output console
window, use the <b>ECHO</b> command. NB. When AppleWin initially starts-up, it
will attempt to auto-run '<b>DebuggerAutoRun.txt</b>' (located in the same folder
as AppleWin.exe).
</p>
<br>
<table border="0" cellpadding="2" cellspacing="0" width="80%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>RUN&nbsp;</b></font></font><b><span style="COLOR: black; FONT-FAMILY: Courier">filename</span></b></p>
</td>
<td width="75%">
<p><i>Runs the specified script filename; the filename&nbsp;may be quoted</i><i>.</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><b><span style="COLOR: black; FONT-FAMILY: Courier">ECHO string</span></b></p>
</td>
<td width="75%">
<p><i>Echo the text to the debugger console. The string may optionally be quoted.</i></p>
</td>
</tr>
</tbody>
</table>
<br>
<p><font size="4"><b>Examples</b>:</font></p>
<table border="0" cellpadding="2" cellspacing="0" width="799">
<COLGROUP>
<col width="276">
<col width="515">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="276">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="515">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><b><span style="BACKGROUND: black 0% 50%; COLOR: rgb(48,192,255); FONT-FAMILY: Courier; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">RUN
“Test.txt”</span></b></p>
</td>
<td bgcolor="#000000" width="515"><span style="COLOR: white">Runs
the script file called: “Test.txt”</span></td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><b><span style="BACKGROUND: black 0% 50%; COLOR: rgb(48,192,255); FONT-FAMILY: Courier; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">ECHO
“Hello World”</span></b></p>
</td>
<td bgcolor="#000000" width="515"><span style="COLOR: white">Prints
the classic “Hello World” to the output console.</span></td>
</tr>
</tbody>
</table>
<br>
<h3><a name="Settings"></a>Settings</h3>
<p>Coming in a future revision, you can save or load your debugger settings, either
piece wise, or as a whole.
</p>
<br>
<table border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="90">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="35%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="65%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CONFIG
LOAD</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Load
(default) debugger configuration.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CONFIG
LOAD “filename”</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Load
(named) debugger configuration</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CONFIG
SAVE</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Save
(default) debugger configuration.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CONFIG
SAVE “filename”</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Save
(named) debugger configuration</span></i></p>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="90">
<col width="166">
<tbody>
<tr bgcolor="#cccccc">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">COLOR
LOAD “filename”</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Load
color configuration.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">COLOR
SAVE “filename”</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Save
color configuration</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BP
LOAD “filename”</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Load
breakpoint configuration.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="35%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">BP
SAVE “filename”</span></b></font></font></p>
</td>
<td width="65%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Save
breakpoint configuration</span></i></p>
</td>
</tr>
</tbody>
</table>
<br>
<p>Hope you enjoyed the tour!</p>
</body>
</html>

View file

@ -1,193 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Entering-Debugger"></a>Entering the Debugger</h2>
<p>Start AppleWin, and press <b><font face="Courier, monospace">F7</font></b> to
enter the debugger.</p>
<p>The first thing you'll probably notice is the new syntax coloring in the
disassembly view, and info panel.&nbsp; All the colors can be customized to
your liking.&nbsp; See the <a href="dbg-configuration.html#Colors">Colors</a> section for details.</p>
<p>Since the mini-console isn't the full width of the screen, you can toggle
between the full-screen console with the tilde '~' key. This style of table
will be used to designate which keys the debugger will recognize.</p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="10%">
<p><font color="#ffffff"><b>Key</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Name</b></font></p>
</td>
<td width="65%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr>
<td width="10%">
<p><b>~</b><br>
<font face="Wingdings">ñ</font>`</p>
</td>
<td width="25%">
<p>Tilde<br>
Shift-Accent</p>
</td>
<td width="65%">
<p><i>Toggle full screen console (US keyboards)</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">ñ</font>/<br>
<font face="Wingdings">ñ</font>@</p>
</td>
<td width="25%">
<p>Shift Forward Slash<br>
Shift At</p>
</td>
<td width="65%">
<p><i>Toggle full screen console (European keyboards)</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p>The debugger will print out a mini message at the bottom of the console when it
is first started.&nbsp; Help is built-in for some of the commands (with more
coming every release.)&nbsp; Most commands will display a help usage, if you
simply type the command and press Enter.
</p>
<p>This typeface, and color will be used to designate commands you can type into
the debugger.
</p>
<table border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#30c0ff"><font face="Courier"><b>HELP</b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Display Help for specific command.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#30c0ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">?</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Display Help Summary.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#30c0ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">VERSION</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Display both the AppleWin and Debugger Version.</i></font></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p><b>Note</b>: <i>Please include both the AppleWin and Debugger version when reporting
bugs about the Debugger.&nbsp; Sometimes a preview (Beta) version of the
debugger is available before the next official AppleWin version is
available.&nbsp; Older bugs (may already) be fixed in the new version.&nbsp;
The version number will help both you and the developers to detect if youre
documenting a new bug, submitting an already existing bug, or re-submitting a
bug that has already been fixed. </i>
<br>
</p>
<h2><a name="Exiting-Debugger"></a>Exiting the Debugger</h2>
<p>In general, press <b><font face="Courier, monospace">F7</font></b> to exit the debugger.<br>
NB. If you have breakpoints set then you will exit the debugger in 'stepping' mode.<br><br>
Other ways to exit the debugger and force 'stepping' mode are:
</p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="14%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Run at normal speed?</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Run at full speed?</b></font></p>
</td>
<td width="18%">
<p><font color="#ffffff"><b>Video quality</b></font></p>
</td>
<td width="18%">
<p><font color="#ffffff"><b>Sound quality</b></font></p>
</td>
</tr>
<tr>
<td width="14%">
<p>G</p>
</td>
<td width="25%">
<p>yes</p>
</td>
<td width="25%">
<p>only if disk active, etc</p>
</td>
<td width="18%">
<p>precise</p>
</td>
<td width="18%">
<p>precise</p>
</td>
</tr>
<tr>
<td width="14%">
<p>GG</p>
</td>
<td width="25%">
<p>no</p>
</td>
<td width="25%">
<p>always</p>
</td>
<td width="18%">
<p>periodic</p>
</td>
<td width="18%">
<p>muted</p>
</td>
</tr>
</tbody>
</table>
<br>
<p>Finally to exit 'stepping' and return to the debugger, use F7, the Pause key or the Debugger toolbar button.
</p>
</body>
</html>

View file

@ -1,274 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h1>
Execution</h1>
<p>As you scroll around, you will notice the cursor and other lines change
colors.&nbsp; Normally the cursor line is shown with an inverse bar, that is
with a white background. Other colors have these meanings:
</p>
<table border="1" bordercolor="#000000" cellpadding="2" cellspacing="0" width="666">
<COLGROUP>
<col width="161">
<col width="494">
<tbody>
<tr bgcolor="#000000">
<td width="161">
<p><font color="#ffffff"><b>Cursor Background</b></font></p>
</td>
<td width="494">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr>
<td width="161">
<p>White
</p>
</td>
<td width="494">
<p><i>Address of cursor.</i></p>
</td>
</tr>
<tr>
<td bgcolor="#ffff00" width="161">
<p>Yellow (Bright)</p>
</td>
<td width="494">
<p><i>Cursor is on next 6502 instruction (At 6502 PC).</i></p>
</td>
</tr>
<tr>
<td bgcolor="#cccc00" width="161">
<p>Yellow (Dim)</p>
</td>
<td width="494">
<p><i>Line is next 6502 instruction (At 6502 PC).</i></p>
</td>
</tr>
<tr>
<td bgcolor="#ff0000" width="161">
<p>Red (Bright)</p>
</td>
<td width="494">
<p><i>Cursor is on active Breakpoint.</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p>Press Right Arrow to locate the current 6502 instruction.&nbsp; If you Page
Down, you can see that Branch Indicators are displayed on the right side of the
disassembly window, designated by <font face="Webdings, serif">5</font> or <font face="Webdings, serif">6</font>.&nbsp;</p>
<p>Press Right Arrow to again locate the current instruction.&nbsp; You will also
notice immediate instructions have a character single quoted, after them, such
as <font face="Courier, monospace">I</font> at $<b>FA75</b>.</p>
<p>Pressing Space, will Trace (into) an instruction. &nbsp; Sometimes you trace
into a JSR (subroutine), and wish you hadn't.&nbsp; Pressing Shift-Space will "<i>Step
Out</i>" - that is, run until the Program Counter (PC) is equal to the
return address on the stack.&nbsp; Pressing Left Arrow will jump the cursor to
the next instruction after the original call.&nbsp;
</p>
<br>
<p><font size="4"><b>Notes</b>:</font></p>
<ul>
<li>
<p><i>Some code will place the arguments to the subroutine after the JSR
instruction.&nbsp; The debugger is not able to detect this and "<b>Step Out</b>"
correctly, so use caution, if the sub-routine plays with the stack.</i></p>
<li>
<p>
<i>The debugger is not able to detect if the top 2 bytes on the stack is a valid
return address, so pay careful attention if the stack is modified!</i></p>
</li>
</ul>
<br>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="10%">
<p><font color="#ffffff"><b>Key</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Name</b></font></p>
</td>
<td width="65%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">§</font>
</p>
</td>
<td width="25%">
<p>Space
</p>
</td>
<td width="65%">
<p><i>Trace into instruction.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">ñ§</font>
</p>
</td>
<td width="25%">
<p>Shift-Space
</p>
</td>
<td width="65%">
<p><i>Step out of subroutine.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^<font face="Wingdings">§</font>
</p>
</td>
<td width="25%">
<p>Ctrl-Space
</p>
</td>
<td width="65%">
<p><i>Trace over instruction.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^<font face="Wingdings">â</font>
</p>
</td>
<td width="25%">
<p>Ctrl-Down Arrow
</p>
</td>
<td width="65%">
<p><i>Run until cursor.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^<font face="Wingdings">à</font>
</p>
</td>
<td width="25%">
<p>Ctrl-Right Arrow</p>
</td>
<td width="65%">
<p><i>Set PC to cursor.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">ß</font>
</p>
</td>
<td width="25%">
<p>Left Arrow
</p>
</td>
<td width="65%">
<p><i>Jump cursor to return address on stack.</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="90">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="35%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td width="65%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Description</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="35%">
<p>G&nbsp;[StopAddress]<br>
GG&nbsp;[StopAddress]</p>
</td>
<td width="65%">
<p><i>Resume execution until PC = StopAddress.</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="35%">
<p>G&nbsp;[StopAddress]&nbsp;[SkipAddress,Length]<br>
GG&nbsp;[StopAddress]&nbsp;[SkipAddress,Length]</p>
</td>
<td width="65%">
<p><i>Resume execution until PC = StopAddress.<br>
Additionally, if the PC exits the range [SkipAddress,Length],<br>
execution will be halted.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="35%">
<p>####G</p>
</td>
<td width="65%">
<p><i>Alias for: R PC [=] address and then G.</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>NB. The GG command resumes execution in full-speed. See <a href="dbg-entering-debugger.html#Exiting-Debugger">Exiting the Debugger</a>.
</p>
<p><br>
<br>
</p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="90">
<col width="166">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="35%">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="65%">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="35%">
<p><font color="#00b8ff"><font face="Courier"><b>R PC FA62 </b></font></font>
</p>
</td>
<td width="65%">
<p><font color="#ffffff"><i>Set Program Counter to Value $<b><font color="#ffff00">FA62</font></b>
(RESET) </i></font>
</p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="35%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">G&nbsp;C600&nbsp;D000,3000</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="65%">
<p><font color="#ffffff"><i>Single-step until either PC = $C600, or PC &lt;= $D000</i></font></p>
</td>
</tr>
</tbody>
</table>
<br>
</body>
</html>

View file

@ -1,246 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h1>Flags</h1>
<p>Each flag can individually be set or cleared in the Processor Status Register ('<b>P</b>').&nbsp;
Cleared flags will show up with a normal background.&nbsp; Set flags will show
with an inverse background.
</p>
<br>
<p><font size="4"><b>Notes</b>:</font></p>
<ul>
<li> Shift+Left mouse button can be used to toggle the state of individual flags.</li>
<li>
<p style="MARGIN-BOTTOM: 0in"><i>The legacy commands <b>R</b>? and <b>S</b>?, where? is
a flag name (C,Z,I,D,B,R,V,N) has been left in.</i></p>
</li>
</ul>
<p><br>
<br>
</p>
<p><font size="4">Commands to set a flag:</font></p>
<table bgcolor="#cccccc" border="0" cellpadding="2" cellspacing="0" width="75%">
<tbody>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td>
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Description</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SEC
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Carry </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SEZ
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Zero </span></i>
</p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SEI
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Interrupts Disabled </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SED
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Decimal (BCD) mode </span></i>
</p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SEB
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Break </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SER
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Reserved (not used on 6502)</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SEV
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Overflow </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SEN
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Negative </span></i>
</p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p><font size="4">Commands to clear a flag:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="75%">
<tbody>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td>
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Description</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLC
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Carry </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLZ
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Zero </span></i>
</p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLI
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Interrupts Disabled </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLD
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Decimal (BCD) mode </span></i>
</p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLB
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Break </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLR
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Reserved (not used on 6502)</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLV
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Overflow </span></i>
</p>
</td>
</tr>
<tr bgcolor="#999999">
<td>
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CLN
</span></b></font></font>
</p>
</td>
<td>
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clear
Negative </span></i>
</p>
</td>
</tr>
</tbody>
</table>
<br>
</body>
</html>

View file

@ -1,373 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h1><a name="Memory">Memory</a></h1>
<h3><a name="Memory_View">Viewing Memory</a></h3>
<p>There are two mini-memory areas on the info panel.&nbsp; You can view memory in
Hex, (normal 7-Bit) ASCII, or Apple (8-Bit) TEXT format.</p>
<p>Control characters are shown in yellow.&nbsp; The Apple uses something called
8-Bit (High-Bit) ASCII, in which the first 128 characters (normal ASCII) are
also mapped onto the last 128 characters, but with a different
background.&nbsp; (Technically, the first 64 characters are drawn inverse, the
next 64 characters flashing, and the last 128 normally.)&nbsp; Some programs
will store text in this extended Apple format, where a High-Bit character can
be used as a flag to represent an end of word.</p>
<p>Here is a summary:</p>
<ul>
<li>
<p style="MARGIN-BOTTOM: 0in"><i>Normal ASCII (non-control characters) will show up in
cyan; High-Bit text in white.</i></p>
<li>
<p style="MARGIN-BOTTOM: 0in"><i>Apple TEXT (normal ASCII) will also display with an
inverse background; High-Bit with a normal background.</i></p>
</li>
</ul>
<br>
<table border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>M1 ####</b></font></font></p>
</td>
<td width="75%">
<p><i>View mini-memory 1 in Hex at the Address</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>M2 ####</b></font></font></p>
</td>
<td width="75%">
<p><i>View mini-memory 2 in Hex at the Address</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>MA1 ####</b></font></font></p>
</td>
<td width="75%">
<p><i>View mini-memory 1 in ASCII at the Address</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>MA2 ####</b></font></font></p>
</td>
<td width="75%">
<p><i>View mini-memory 2 in ASCII at the Address</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>MT1 ####</b></font></font></p>
</td>
<td width="75%">
<p><i>View mini-memory 1 in “Apple Text” at the Address</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>MT2 ####</b></font></font></p>
</td>
<td width="75%">
<p><i>View mini-memory 1 in “Apple Text” at the Address</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>D ####</b></font></font></p>
</td>
<td width="75%">
<p><i>Alias for M1</i></p>
</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>Examples</b>:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input </b></font>
</p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect </b></font>
</p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>MA1 D0D0</b></font></font></p>
</td>
<td width="75%">
<p><font color="#ffffff"><i>View Applesoft Tokens (Low ASCII cyan, High ASCII white)</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">MT2
FF0A</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>View Apple message displayed when booted, showing Apple Model.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">DATA</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Switch to the Data Window to view memory. Most scrolling keys
work.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CODE</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Switch to the Code Window to view the disassembler.</i></font></p>
</td>
</tr>
</tbody>
</table>
<br>
<h3><a name="Memory_Search">Searching Memory</a></h3>
<p>You can search memory for hex values.&nbsp; Wildcard support is also supported
via the '<b>?</b>' wildcard operator, including nibble searching. &nbsp; A
single '<b>?</b>' by itself, means match one byte of any value.&nbsp; A hex
value with the high nibble or low nibble of '<b>?</b>' will mask off the
corresponding nibble. &nbsp; (At the moment there is no way to refer to the
list of results. &nbsp; A future version will support&nbsp;_# to reference
search result's addresses.)</p>
<p>Searching memory for text is forthcoming in a future version of the debugger.</p>
<br>
<table border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000" face="Courier"><b>SH #,len byte1 …</b></font></p>
</td>
<td width="75%">
<p><i>Search memory for&nbsp;8-bit hex value(s).</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>SH #,len word1 …</b></font></font></p>
</td>
<td width="75%">
<p><i>Search memory for&nbsp;16-bit value(s).</i></p>
</td>
</tr>
</tbody>
</table>
<br>
<p><font size="4"><b>Examples</b>:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input </b></font>
</p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect </b></font>
</p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="25%">
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 C030</font></b></p>
</td>
<td width="75%">
<p><i><font color="#ffffff">Search memory for speaker access.</font></i></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 AD ? C0</font></b></p>
</td>
<td bgcolor="#000000" width="75%">
<p><i><font color="#ffffff">Search memory for “ <b>LDA $<font color="#ffff00">C0xx</font></b>”.</font></i></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 3? C0</font></b></p>
</td>
<td bgcolor="#000000" width="75%">
<p><i><font color="#ffffff">Search memory for speaker access <b>$<font color="#ffff00">C03x</font></b>.</font></i></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 ?1 C0</font></b></p>
</td>
<td bgcolor="#000000" width="75%">
<p><i><font color="#ffffff">Search memory for soft-switch $<b><font color="#ffff00">C0x1</font></b>.</font></i></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><b><font color="#00b8ff" face="Courier">L _1</font></b></p>
</td>
<td bgcolor="#000000" width="75%">
<p><i><font color="#ffffff">Disassemble from&nbsp;search result #<b><font color="#ffff00">1</font></b>
address.</font></i></p>
<p><i><font color="#ffffff">Note: Not yet implemented!</font></i></p>
</td>
</tr>
</tbody>
</table>
<br>
<h3><a name="Memory_Change">Changing Memory</a></h3>
<p>To change the Apple's memory, the classic "Apple Monitor" command to enter
memory is recognized, as well as the "normal" debugger comamnd.<br>
</p>
<br>
<table border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>####:byte1 …</b></font></font></p>
</td>
<td width="75%">
<p><i>Classic "Apple Monitor" command to enter byte(s).&nbsp; Alias for E.</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000" face="Courier"><b>E addr byte1 …</b></font></p>
</td>
<td width="75%">
<p><i>Set memory to the 8-Bit (byte) value(s)</i><i>.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000" face="Courier"><b>EB symbol ####</b></font></p>
</td>
<td width="75%">
<p><i>Alias for E.</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>E8 symbol ####</b></font></font></p>
</td>
<td width="75%">
<p><i>Alias for E.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>EW symbol ####</b></font></font></p>
</td>
<td width="75%">
<p><i>Set memory (at the symbol Address) to the 16-Bit (word) Value(s).</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>E16 symbol ####</b></font></font></p>
</td>
<td width="75%">
<p><i>Alias for EW.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>NOP</b></font></font></p>
</td>
<td width="75%">
<p><i>Writes an “NOP” opcode (EA) at the current Program Counter (PC)</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>ZAP</b></font></font></p>
</td>
<td width="75%">
<p><i>Alias for NOP.</i></p>
</td>
</tr>
</tbody>
</table>
<br>
<p><font size="4"><b>Examples</b>:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input </b></font>
</p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect </b></font>
</p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>300:60</b></font></font></p>
</td>
<td width="75%">
<p><i><span style="COLOR: white">Same
as Applesoft Poke 768,96</span></i></p>
</td>
</tr>
</tbody>
</table>
<h2>
<br>
&nbsp;</h2>
</body>
</html>

View file

@ -1,296 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Registers1"></a>Registers</h2>
<p>The command line now recognizes 6502 Registers.&nbsp; Namely,
</p>
<ul>
<li>
<p><b>A</b>, the Accumulator,</p>
<li>
<p style="MARGIN-BOTTOM: 0in"><b>X</b>, the 1<sup>st</sup> Index Register,</p>
<li>
<p style="MARGIN-BOTTOM: 0in"><b>Y</b>, the 2<sup>nd</sup> Index Register,</p>
<li>
<p style="MARGIN-BOTTOM: 0in"><b>PC</b>, the Program Counter,
</p>
<li>
<p style="MARGIN-BOTTOM: 0in"><b>S</b>, the Stack Pointer, and
</p>
<li>
<p><b>P</b>, the Processor Status Register (Flags).</p>
</li>
</ul>
<p>You can set a Register to a hex Value, Symbol, or Expression.&nbsp; (See the
section <a href="#Calculator">Calculator</a> for more examples of using
expressions.)&nbsp; The syntax is:</p>
<br>
<table bgcolor="#e6e6e6" border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
r [=] ####</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Register to (a byte) Value, Symbol, or Address, or Expression.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
A ##</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Accumulator to (a byte) Value</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
X ##</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Register X to (a byte) Value</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
Y ##</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Register Y to (a byte) Value</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
PC ####</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
PC to (a full 16-bit) Address (Value)</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
S ##</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Stack Register to (an 8-Bit) Offset</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
P ##</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Set
Processor Status Register (flags) to (a byte) Value</span></i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p><b>Notes</b>:</p>
<ul>
<li>
<p style="MARGIN-BOTTOM: 0in"><i>Since <b>A</b> refers to the Accumulator, you need to
prefix the hex number <b>A</b> with either:<br>
&nbsp;&nbsp;&nbsp;&nbsp;i) a zero '<b>0</b>', or<br>
&nbsp;&nbsp;&nbsp;&nbsp;ii) the hash '<b>#</b>' symbol (same as 6502 immediate
symbol.)</i></p>
</li>
</ul>
<ul>
<li>
<p><i>You can prefix a symbol with the dollar sign '<b>$</b>' to tell the parser it is
a symbol Address instead of a Value.</i></p>
<li>
<p><i>If a symbol is not defined, the expression will be the corresponding hex Value,
if possible.</i></p>
<li>
<p><i>Hex Values may be ambiguous, if their corresponding symbol is defined.&nbsp; To
avoid confusion, dont define symbols such as the popular $DEAD, $BEEF, $C0DE,
$CAFE, etc. An example is given with A1.</i></p>
</li>
</ul>
<br>
<p><font size="4"><b>Examples</b>:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="25%">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="75%">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="25%">
<p><font color="#00b8ff"><font face="Courier"><b>R PC FA62 </b></font></font>
</p>
</td>
<td width="75%">
<p><font color="#ffffff"><i>Set Program Counter to Value $<b><font color="#ffff00">FA62</font></b>
(RESET) </i></font>
</p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
PC RESET + 1</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Program Counter to Address $<b><font color="#ffff00">FA63</font></b>
(RESET+1)</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
X 2 </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Register to Value <font style="FONT-WEIGHT: bold" color="#ffff00">
2</font></i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
Y 3 </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Register to Value <font style="FONT-WEIGHT: bold" color="#ffff00">
3</font></i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
S 1FE </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Stack Pointer to depth of one (Stack grows down from $01FF)</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
S FF </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Stack Pointer to top of stack (Empty)</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
A 0A </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Accumulator to hex Value <font style="FONT-WEIGHT: bold" color="#ffff00">
0A</font></i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
A #A </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Accumulator to hex Value <font style="FONT-WEIGHT: bold" color="#ffff00">
0A</font></i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
X A </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Set Register X to Accumulators Value</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
A A1 </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>If the symbol A1 exists, sets Accumulator to the <b>Address</b>
of the symbol <b>A1</b><br>
If the symbol A1 <b>doesn't</b> exist, sets Accumulator to the hex <b>Value</b> <font style="FONT-WEIGHT: bold" color="#ffff00">
A1</font></i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
A $A1 </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>If the symbol A1 exists, sets the Accumulator to the <b>Address</b>
of symbol <b>A1<br>
</b>If the symbol A1 <b>doesn't</b> exist, sets Accumulator to the hex Value <font style="FONT-WEIGHT: bold" color="#ffff00">
A1</font></i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">R
A #A1 </span></b></font></font>
</p>
</td>
<td bgcolor="#000000" width="75%">
<p><font color="#ffffff"><i>Sets Accumulator to the hex value <b><font color="#ffff00">A1</font></b></i></font></p>
</td>
</tr>
</tbody>
</table>
<p>
<br>
&nbsp;
</p>
</body>
</html>

View file

@ -1,60 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2></a><a name="Debugger Screen Layout"></a>Debugger Screen Layout</h2>
<p>This section gives an overview of the debugger's screen layout.</p>
<p>Here's a typical debugger view (with annotations describing the parts):</p>
<img src="img/debugger-layout-annotated.png" hspace="5" vspace="5">
<h3><a name="Soft-switches"></a>Soft-switches</h3>
<p>This encodes information about the video and MMU soft-switches.</p>
<p>The first 5 rows describe the current <b>video</b> settings and can be interpreted as follows:
<ul>
<li>50: $C050 - GR /TEXT (inverse indicates which is active)
<li>52: $C052 - FULL/MIX (inverse indicates which is active)
<li>54: $C054 - PAGE 1/2 (inverse indicates which is active)
<li>56: $C056 - LO/HIRES (inverse indicates which is active)
<li>5E: $C05E - DHGR/HGR (inverse indicates which is active)
</ul>
</p>
<p>The next 6 rows describe the current <b>MMU</b> settings and can be interpreted as follows:
<ul>
<li>00: $C000 - 80Sto0/1 (inverse indicates state of 80STORE)
<li>02: $C002-C005: Rm/xWm/x (NB. 'R' is blue and 'W' is red for readability)
<ul>
<li>Rm Read from main mem for $0200-$BFFF; Use OUT C002 to enable
<li>Rx Read from aux mem for $0200-$BFFF; Use OUT C003 to enable
<li>Wm Write to main mem for $0200-$BFFF; Use OUT C004 to enable
<li>Wx Write to aux mem for $0200-$BFFF; Use OUT C005 to enable
</ul>
<li>0C: $C00C - Col40/80 (inverse indicates state of 80COL)
<li>0E: $C00E - ASC/MOUS (inverse indicates state of ALTCHARSET)
<li>80: $C080-C087: B2/M R/W (Language Card Bank2)
<ul>
<li>A red 'x' if ALTZP (and Alt Language Card) is set by a write to $C009.
</ul>
<li>88: $C088-C08F: B1/M rNN (Language Card Bank1 and RamWorks 64K bank number)
<ul>
<li>'B2' or 'B1' is inverse when that LC bank is enabled.
<li>If 'M' is inverse: ROM is active for reading.
<li>If 'M' is not inverse: LC2 or LC1 RAM is active.
<li>If 'W' is inverse: RAM is write enabled.
<li>If 'W' is not inverse: RAM is write protected.
<li>'rNN' will appear if a RamWorks 64K bank is active.
<li>'sNN' will appear if a Saturn 16K bank is active.
</ul>
</ul>
</p>
<p style="MARGIN-BOTTOM: 0in"><br>
</p>
</body>
</html>

View file

@ -1,243 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Scrolling"></a>Scrolling</h2>
<p>In the disassembly view, the following keys &amp; commands can be used:<br>
(The classic Apple "monitor " disassemble command is also suported.)
</p>
<table border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>U ####</b></font></font></p>
</td>
<td width="75%">
<p><i>Start disassembly from Value or Address</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>####L</b></font></font></p>
</td>
<td width="75%">
<p><i>List (unassemble) from specified address.</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="10%">
<p><font color="#ffffff"><b>Key</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Name</b></font></p>
</td>
<td width="65%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">á</font>
</p>
</td>
<td width="25%">
<p>Up Arrow</p>
</td>
<td width="65%">
<p><i>Scroll up one mnemonic line.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">â</font>
</p>
</td>
<td width="25%">
<p>Down Arrow</p>
</td>
<td width="65%">
<p><i>Scroll down one mnemonic line.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">ñá</font>
</p>
</td>
<td width="25%">
<p>Shift Up Arrow</p>
</td>
<td width="65%">
<p><i>Scroll up 1 byte.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">ñâ</font>
</p>
</td>
<td width="25%">
<p>Shift-Down Arrow</p>
</td>
<td width="65%">
<p><i>Scroll down 1 byte.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>PgUp
</p>
</td>
<td width="25%">
<p>Page Up
</p>
</td>
<td width="65%">
<p><i>Scroll up one screen.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>PgDn
</p>
</td>
<td width="25%">
<p>Page Down
</p>
</td>
<td width="65%">
<p><i>Scroll down one screen.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">ñ</font>PgUp
</p>
</td>
<td width="25%">
<p>Shift-Page Up
</p>
</td>
<td width="65%">
<p><i>Jump to prev. page boundary (256 byte).</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">ñ</font>PgDn
</p>
</td>
<td width="25%">
<p><a name="Registers"></a>Shift-Page Down
</p>
</td>
<td width="65%">
<p><i>Jump to next page boundary (256 byte).</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^PgUp
</p>
</td>
<td width="25%">
<p>Control-Page Up
</p>
</td>
<td width="65%">
<p><i>Jump to prev. 4K boundary (4096 bytes).</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^PgDn
</p>
</td>
<td width="25%">
<p>Control-Page Down</p>
</td>
<td width="65%">
<p><i>Jump to next 4K boundary (4096 bytes).</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>Home
</p>
</td>
<td width="25%">
<p>Home</p>
</td>
<td width="65%">
<p><i>Jump to start of memory ($0000).</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>End
</p>
</td>
<td width="25%">
<p>End</p>
</td>
<td width="65%">
<p><i>Jump to middle of memory ($8000).</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">à</font>
</p>
</td>
<td width="25%">
<p>Right Arrow
</p>
</td>
<td width="65%">
<p><i>Locate current 6502 instruction.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p><font face="Wingdings">à</font><font size="4">|</font></p>
</td>
<td width="25%">
<p>Tab
</p>
</td>
<td width="65%">
<p><i>Locate current 6502 instruction.</i></p>
</td>
</tr>
</tbody>
</table>
<h2>
<br>
&nbsp;</h2>
</body>
</html>

View file

@ -1,295 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Symbols"></a>Symbols</h2>
<p>
When a programmer writes an assembly language program instead of directly referring to a memory address over and over again they use a <b>symbolic name</b> instead.
For example, instead of always directly hard-coding $C000 everywhere to read the keyboard they would instead write:
</p>
<p><font color="#00b8ff"><font face="courier"><b><pre style="background: rgb(0,0,0) 0% 50%;">
ORG $300
KEYBOARD EQU $C000
300:AD 00 C0 .1 LDA KEYBOARD
303:10 FB BPL .1
305:8D 00 04 STA $0400
306:60 RTS
</pre></b></font></font></p>
<p>
Let's try this out in the debugger. Make sure AppleWin is running. Press F2 (to reboot), then Ctrl-F2 (to break), and F7 (to enter the debugger.)
&nbsp; If you don't want to type in the following hex code, you can select it, copy it (Ctrl-C), and paste it into the Debugger console (Ctrl-V).
</p>
<p><font color="#00b8ff"><font face="Courier"><b><pre style="BACKGROUND: rgb(0,0,0) 0% 50%;">
300:AD 00 C0 10 FB 8D 00 04 60
300L
</pre></b></font></font></p>
<p>
Press F7 to exit the debugger, then type:
</p>
<p><font color="#00b8ff"><font face="Courier"><b><pre style="BACKGROUND: rgb(0,0,0) 0% 50%;">
HOME:CALL 768
</pre></b></font></font></p>
<p>
Press Enter.&nbsp; The emulated computer will wait for your to press a key and then echo it in the top left.
</p>
<p>
When debugging assembly programs since you typically don't have the source file availabe you can tell the debugger how to interpret a memory address as a variable name or symbol.
A <b>symbol</b> is the symbolic name and the address assigned to it.
</p>
<p>AppleWin supports loading of the assemblers ACME, and Merlin's symbol tables -- a collection of symbols, one per line, organized and collectively called a symbol table.
The semi-colon is a comment-till-end-of-line. The file format per line is: <b>ADDRESS SYMBOL</b></p>
<p>e.g.</p>
<p><font color="#00b8ff"><font face="courier"><b><pre style="background: rgb(0,0,0) 0% 50%;">
; IO Map
C000 KEYBOARD
</pre></b></font></font></p>
<p>
There are <b>9</b> symbol tables to help organize "modules"; each symbol table individually can be turned off/on independently.
<pre>
MAIN APPLE2E.SYM
BASIC A2_BASIC.SYM
ASM A2_ASM.SYM
User1 A2_USER1.SYM
User2 A2_USER2.SYM
Src1 A2_SRC1.SYM
Src2 A2_SRC2.SYM
DOS33 A2_DOS33.SYM
PRODOS A2_PRODOS.SYM
</pre></p>
<p>On startup the debugger reads 3 symbol tables by default: Main, Basic, User1.</p>
</p>
<p>Looking up symbols is easy.&nbsp; If you can't remember an address of a symbol,
or the reversse -- can't remember the symbol for an address -- you can use the following symbol commands:
(#### referes to either a hex address or a symbolic name)
</p>
<p><br>
<br>
</p>
<table border="0" cellpadding="2" cellspacing="0" width="80%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYM</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Display
the number of symbols in the Main, User, and Source symbol tables.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYM
####</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Look-up
the Symbol or Address, and display which Symbol Table it is in.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYMUSER
LOAD</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Reloads
the User Symbol Table: <b>A2_USER1.SYM</b></span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYMUSER
CLEAR</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%;">Clears
the User Symbol Table from RAM.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYMMAIN
####</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Look-up
only in the Main symbol table.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYMUSER
####</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Look-up
only in the User symbol table.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYMSRC
####</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Look-up
only in the Source symbol table.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYM
name = ####</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Add
(or update) a symbol in the User table with the new Address.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYM
! name</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; ">Remove
a symbol from the User table.</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">MEB
symbol ##</span></b></font></font></p>
</td>
<td width="75%">
<p><i>Set memory (at the symbol Address) to the 8-Bit (byte) Value.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>MEW symbol ####</b></font></font></p>
</td>
<td width="75%">
<p><i>Set memory (at the symbol Address) to the 16-Bit (word) Value.</i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b>E16 symbol ####</b></font></font></p>
</td>
<td width="75%">
<p><i>Alias for EW.</i></p>
</td>
</tr>
</tbody>
</table>
<p><br>
<br>
</p>
<p><font size="4"><b>Examples</b>:</font></p>
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="799">
<COLGROUP>
<col width="276">
<col width="515">
<tbody>
<tr bgcolor="#00b8ff">
<td bgcolor="#30c0ff" width="276">
<p><font color="#000000"><b>Input</b></font></p>
</td>
<td bgcolor="#30c0ff" width="515">
<p><font color="#000000"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="276">
<p><font color="#00b8ff"><font face="Courier"><b>SYM</b></font></font></p>
</td>
<td width="515">
<p><font color="#ffffff"><i>Displays number of symbols in the Main, User, and Source
tables.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="276">
<p><font color="#00b8ff"><font face="Courier"><b>SYMMAIN CLEAR</b></font></font></p>
</td>
<td width="515">
<p><font color="#ffffff"><i>Clears the main symbol table!!</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td width="276">
<p><font color="#00b8ff"><font face="Courier"><b>SYMMAIN LOAD APPLE2E.SYM</b></font></font></p>
</td>
<td width="515">
<p><font color="#ffffff"><i>Reloads the main symbol table.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#00b8ff"><font face="Courier"><b>SYM FA62</b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Look up the Address $<b><font color="#ffff00">FA62</font></b> (RESET).</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; ">SYM
HOME</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Look up the Symbol Home ($<b><font color="#ffff00">FC58</font></b>).</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%;">SYM
LIFE = 300</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Define a new user symbol, called “Life” at Address $0300.</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%;">MEB
LIFE 64</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Set 8-Bit variable (@ $<b><font color="#ffff00">0300</font></b>)“Life”
to 100 (decimal).</i></font></p>
</td>
</tr>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="276">
<p><font color="#00b8ff"><font face="courier"><b><span style="background: rgb(0,0,0) 0% 50%; ">MEW
LIFE 3E8</span></b></font></font></p>
</td>
<td bgcolor="#000000" width="515">
<p><font color="#ffffff"><i>Set 16-Bit variable (@ $<b><font color="#ffff00">0300</font></b>)“Life”
to $3E8 = 1000 (decimal).</i></font></p>
</td>
</tr>
</tbody>
</table>
<p>
<br>
&nbsp;
</p>
</body>
</html>

View file

@ -1,55 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</HEAD>
<body style="DIRECTION: ltr" lang="en-US">
<H1>AppleWin Debugger Tutorial</H1>
<P><FONT size="4"><i>By Michael Pohoreski.</i></FONT></P>
<P><FONT size="3">Revision 3.&nbsp; Mar 12, 2006.</FONT></P>
<H2>Table of Contents</H2>
<UL>
<LI><A href="#Introduction">Introduction</A>
<LI><A href="dbg-entering-debugger.html">Entering and exiting the Debugger</A>
<LI><A href="dbg-screen-layout.html">Debugger Screen Layout</A>
<LI><A href="dbg-scrolling.html">Scrolling</A>
<LI><A href="dbg-registers.html">Registers</A>
<LI><A href="dbg-flags.html">Flags</A>
<LI><A href="dbg-execution.html">Execution</A>
<LI><A href="dbg-memory.html">Memory</A>
<UL>
<LI><A href="dbg-memory.html#Memory_View">Viewing Memory</A>
<LI><A href="dbg-memory.html#Memory_Search">Searching Memory</A>
<LI><A href="dbg-memory.html#Memory_Change">Changing Memory</A>
</UL>
<LI><A href="dbg-symbols.html">Symbols</A>
<LI><A href="dbg-calculator.html">Calculator</A>
<LI><A href="dbg-windows.html">Windows</A>
<LI><A href="dbg-breakpoints.html">Breakpoints</A>
<LI><A href="dbg-bookmarks.html">Bookmarks</A>
<LI><A href="dbg-configuration.html">Configuration</A>
<UL>
<LI><A href="dbg-configuration.html#Colors">Colors</A>
<LI><A href="dbg-configuration.html#Fonts">Fonts</A>
<LI><A href="dbg-configuration.html#Scripts">Scripts</A>
<LI><A href="dbg-configuration.html#Settings">Settings</A>
</UL>
</LI>
</UL>
<H2>&nbsp;</H2>
<H2><a name="Introduction">Introduction</a></H2>
<p>If you're new to the debugger, this tutorial will gently get you up to speed in
becoming familiar with it.</p>
<p>If you're already familiar with the AppleWin Debugger, you'll be aware that it
was probably lacking in features and ease of use.&nbsp; The new debugger has
been given an over-haul for the new millennium with respect to aesthetics and
functionality.&nbsp; As such, you'll probably want to read this tutorial to
learn about the new features that will not only help you in debugging, but also
save you time.</p>
<p>Let's get started on the tour!
<br>
</p>
</body>
</HTML>

View file

@ -1,140 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AppleWin Debugger Tutorial</title>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
</head>
<body style="DIRECTION: ltr" lang="en-US">
<h2><a name="Windows"></a>Windows</h2>
<p>Due to the amount of information available, the debugger now features
"windows".&nbsp; You can switch to the full screen console to read the help, or
to the data window to view memory.</p>
<p><br>
<br>
</p>
<table border="0" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="64">
<col width="192">
<tbody>
<tr bgcolor="#000000">
<td bgcolor="#000000" width="25%">
<p><font color="#ffffff"><b>Command</b></font></p>
</td>
<td bgcolor="#000000" width="75%">
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">WIN
CONSOLE</span></b></font></font></p>
</td>
<td width="75%">
<p><i>Switch to the full screen console. Scrolling keys work.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CONSOLE</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Alias</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">WIN
CODE</span></b></font></font></p>
</td>
<td width="75%">
<p><i>Switch to the disassembly window.</i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">CODE</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Alias</span></i></p>
</td>
</tr>
<tr bgcolor="#999999">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">WIN
DATA</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Switch
to the Data window to view memory. Most scrolling keys work.</span></i></p>
</td>
</tr>
<tr bgcolor="#cccccc">
<td width="25%">
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">DATA</span></b></font></font></p>
</td>
<td width="75%">
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Alias</span></i></p>
</td>
</tr>
</tbody>
</table>
<p>Key operations related to the debugger window:</p>
<table border="1" cellpadding="2" cellspacing="0" width="75%">
<COLGROUP>
<col width="26">
<col width="64">
<col width="166">
<tbody>
<tr bgcolor="#000000">
<td width="10%">
<p><font color="#ffffff"><b>Key</b></font></p>
</td>
<td width="25%">
<p><font color="#ffffff"><b>Name</b></font></p>
</td>
<td width="65%">
<p><font color="#ffffff"><b>Effect</b></font></p>
</td>
</tr>
<tr>
<td width="10%">
<p><b>^<font face="Wingdings">à</font></b></p>
</td>
<td width="25%">
<p>Ctrl-Tab</p>
</td>
<td width="65%">
<p><i>Cycle to next Window.</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^<font face="Wingdings">ñà</font></p>
</td>
<td width="25%">
<p>Ctrl-Shift-Tab</p>
</td>
<td width="65%">
<p><i>Cycle to prev. Window</i></p>
</td>
</tr>
<tr>
<td width="10%">
<p>^PrtScr</p>
</td>
<td width="25%">
<p>Ctrl-PrintScreen</p>
</td>
<td width="65%">
<p><i>Copy debugger disassembly window (CODE or DATA) to the clipboard.</i></p><p><b>Note:</b> It does NOT copy the console window.</p>
</td>
</tr>
</tbody>
</table>
<p style="MARGIN-BOTTOM: 0in">
<br>
&nbsp;
</p>
</body>
</html>

View file

@ -1,55 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Copy Protected Disks</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2><font color="#008000">Copy Protected Disks</font></h2>
<hr size="4">
<p>The process of transferring disk images is complicated by the fact
that much of the software published for the Apple II was copy protected.</p>
<p>Software publishers have
always looked for
ways to prevent people from making unauthorized copies of their
software. Today, when you buy a game, it might ask you for a word
from a random page of the manual, to ensure that you have
purchased the game (complete with manual) and not just copied the
disk. Back in the days of the Apple II, publishers were much more
direct: they simply tried to make it physically impossible to
copy the disk. </p>
<p>Unlike the PC, the Apple II
had to perform
much of its disk encoding in software. If programmers wanted to
get tricky, they could bypass the operating system and do their
own encoding, possibly changing the size of the sectors on the
disk or the way in which the sectors were identified or stored.
This prevented standard operating systems like DOS, along with
their standard copying utilities, from accessing the disk. </p>
<p>However, programs which were
copy protected
in this manner could still be copied with more sophisticated
"nibble copiers", which copied each track on the disk
bit for bit, rather than copying a sector at a time. Similarly,
to get a program like this to run under AppleWin, all you need to
do is make a nibble image of the disk. </p>
<p>After nibble copiers became
prevalent on
the Apple, some software publishers developed tricky new ways of
creating disks that even nibble copiers could not copy. Such a
disk can only be transferred onto a WOZ disk image using the
AppleSauce hardware & software. </p>
</body>
</html>

View file

@ -1,72 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Creating Disk Images</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2><font color="#008000">Creating
Disk Images</font></h2>
<hr size="4">
<p>To create a new disk image,
all you have to do is tell AppleWin to use an image file which doesn't
already exist and the emulator will automatically create a new image
file.&nbsp; Specifying a new disk image is like inserting a blank,
unformatted floppy disk into a real drive.&nbsp; This means that
the image must be formatted by emulator before it can be used.
Specifically, this is what you'd do using DOS 3.3:</p>
<ol>
<li>Load a master DOS 3.3 disk
image in drive 1 and boot the emulated Apple. </li>
<li>Click on the Drive 1
toolbar button. </li>
<li>Instead of selecting a disk
image from the list, type in a name for a new disk image and press
enter. </li>
<li>Type in a program that you
want DOS to run whenever this new disk is booted. A simple but useful
program is:<br>
<br>
<span style="font-family: Courier New,Courier,monospace;">10
PRINT
CHR$(4);"CATALOG"</span><font face="Courier New"><br>
</font><br>
</li>
<li>Type <span style="font-family: Courier New,Courier,monospace;">"INIT
HELLO"</span> to initialize (format) the disk image. </li>
</ol>
<p>You now have a working disk
image, which you can use to save documents or other information. If you
want to fill this image with data from a real floppy disk that you
have, then you need to "transfer" the disk's data. See the <a href="ddi-transfer.html">Transferring
Disk Images</a> topic for more information. </p>
<p>Please note that not all disk image types supported by
AppleWin can be created in this manner.&nbsp; Since there is no way
to detect the image type from the image itself, it is determined by the
given file extension only. Four extensions are allowed: (.DSK, .DO,
.NIB, .WOZ). The first two create a "DOS Order Image", .NIB creates
a "Nibble Image" and .WOZ creates an empty .WOZ image.&nbsp; If the extension is completely omitted,
".DSK" will be chosen by default.&nbsp; For more information, see <a href="ddi-formats.html">Disk Image Formats</a>.</p>
</body>
</html>

View file

@ -1,94 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Disk Image Formats</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2><font color="#008000" face="Arial">Disk
Image Formats</font></h2>
<hr size="4">
<p>Disk images can be in a number
of different
formats, depending on how they were created.</p>
<p style="font-weight: bold;">DOS Order Images:</p>
<p>DOS order disk images contain the data from
each sector, stored in the same order that DOS 3.3 numbers
sectors. If you run a DOS program on the Apple which reads in
sectors one by one and then transfers them over a serial line to
the PC, you will get a DOS order disk image. </p>
<p>Apple floppy disks contained 35 tracks with
16 sectors per track, for a total of 560 sectors. Each of these
sectors contained 256 bytes of information, for a total of
143,360 bytes per disk. Therefore, DOS order disk images are
always at least 143,360 bytes long. Sometimes on the Internet you
will see a disk image that is 143,488 or 143,616 bytes long; this
is probably a DOS order image with extra header information
before or after the image. In most cases, AppleWin can
automatically detect this and handle it. </p>
<p style="font-weight: bold;">ProDOS Order
Images: </p>
<p>ProDOS order disk images are very similar
to DOS order images, except that they contain the sectors in the
order that ProDOS numbers them. If you compress a disk with
Shrinkit on an Apple, then transfer it over a modem and
uncompress it on the PC, you will get a ProDOS order disk image. </p>
<p>Since ProDOS order disk images contain the
same information as DOS order disk images, simply in a different
order, they are also about 143,360 bytes long. When you use a
disk image of this size, AppleWin attempts to automatically
detect whether it is in DOS order or ProDOS order by examining
the contents of the disk. If the disk was formatted with a
standard operating system such as DOS or ProDOS, AppleWin will
successfully detect the format. Otherwise, it will revert to DOS
order, which is by far the most common format. To force ProDOS
order, give the file an extension of ".PO". </p>
<p style="font-weight: bold;">Nibble Images:</p>
<p>Nibble images contain all of the data on a
disk; not just the data in sectors but also the sector headers
and synchronization areas, all stored in the same encoded format
that would be recorded on a real disk's surface. At 232,960
bytes, nibble images are bigger than other images, but they can
be useful for making images of copy protected software. </p>
<p style="font-weight: bold;">2mg Images:</p>
<p>2mg (or 2img) images are a wrapper around DOS, ProDOS or Nibble images.
They contain extra meta-data describing for example, DOS volume number and
write-protection.
</p>
<p style="font-weight: bold;">WOZ Images:</p>
<p>The WOZ Disk Image format is an offshoot of the <A href="https://applesaucefdc.com/woz">Applesauce project</A>. Capturing highly accurate bit data is of no use if you don't have a container to hold the data. The WOZ format was designed to be able to contain every possible Apple ][ disk structure and layout. It can be so accurate that even copy protected software can't tell that it isn't an original disk.
</p>
<p style="font-weight: bold;">Compressed Images :</p>
<p>All of the above can optionally be either gzip'ed or zipped. If a zip archive
contains multiple files, then AppleWin only supports using the first file. For best results
with hard disk images, uncompress first, as writing back to the image requires a full
image re-compression after every block write. Examples of typical extensions are:
<ul>
<li>.gz, .dsk.gz, .nib.gz, .2mg.gz, .woz.gz</li>
<li>.zip, .dsk.zip, .nib.zip, .2mg.zip, .woz.zip</li>
</ul>
</p>
</body>
</html>

View file

@ -1,55 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Hard Disk Images</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Hard Disk Images</h2>
<hr size="4">
<p style="font-weight: bold;">Overview:</p>
<p>A hard disk controller (or interface) card can be plugged in to slot 7 via the AppleWin Configuration tab labelled Disk.
Just check <span style="font-style: italic;">Enable hard disk controller in slot 7</span>.</p>
<p>There is provision to connect two hard disks to this card.
This is done by using .hdv or 800KB .2mg files on your PC.
Each hard disk can have a maximum capacity of 32MB.</p>
NB. The hard disk controller supports both fixed-disk types (up to 32MB) and 3.5" floppy types (800KB).
<p>On booting, the Apple will <span style="text-decoration: underline;">always</span>
attempt to
autoboot from slot 7 first. If the hard disk card is unplugged (not
enabled) then
the Apple will then attempt to boot from slot 6 (with the Disk][
interface card in it).</p>
<p>To boot a floppy disk with the hard disk card enabled, either hold down the Open-Apple key during an Apple II restart or
issue PR#6 from an AppleSoft prompt.</p>
<p style="font-weight: bold;">Warnings:</p>
<ul>
<li>Unchecking <span style="font-style: italic;">Enable hard disk controller in slot 7</span> whilst the Apple is running will
physically unplugging the hard disk card. This can lead to a corrupt
.hdv image if the Apple is writing to the hard disk when it is unplugged!</li>
<li>Equally, exiting AppleWin
can have the same affect.</li>
<li>Copy][+ v7.1 locks up when
trying to calculate how many free blocks are available when running a
catalog. This is a bug in Copy][+ which is fixed in later versions.</li>
</ul>
</body>
</html>

View file

@ -1,53 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Introduction to Disk Images</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Introduction
to Disk
Images</h2>
<hr size="4">
<p>Everyone who once used an
Apple II and now
uses an IBM-compatible PC has the same problem:&nbsp; How can you
make
the PC read Apple floppy disks? Unfortunately, without special
hardware, you can't. </p>
<p>Floppy disks are analog
devices, much like
cassette tapes. For a computer to store digital data on a floppy
disk, it must "encode" the data into an analog format.
The Apple II used a method of encoding called Group Code
Recording (GCR), while IBM-compatible PC's use the much more
standard Modified Frequency Modulation (MFM) encoding. Since this
is all done in hardware and cannot be bypassed, it is not
possible for a PC program to "reprogram" the floppy
drive in such a way that it could read Apple-formatted floppy diskettes. </p>
<p>Therefore, instead of reading
and writing
disks directly, AppleWin uses disk images. A disk image is a
single file, which you can store on your hard drive or on a PC
floppy diskette, which contains all of the data from an entire Apple
diskette. AppleWin treats an image exactly as if it were a real
floppy disk. </p>
</body>
</html>

View file

@ -1,68 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Loading Disk Images</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Loading
Disk Images</h2>
<hr size="4">
<p>AppleWin registers<sub style="FONT-WEIGHT: bold">1</sub> the
following file types as "Disk
Images": *.do, *.dsk, *.nib, *.po and *.woz.&nbsp; Double-clicking
a disk image in Windows Explorer will automatically load and boot
the disk.
While older versions of
AppleWin started a new
instance of the emulator for every disk started in this manner, current
versions
of the emulator will simply replace the current disk (and reboot) if there is an
instance of
the emulator already running.</p>
<p>You may also drag and drop a
disk image from an Explorer
window to the AppleWin emulator window to load and boot the
disk.&nbsp; Dropping the image exactly on one of the drive buttons
will insert
it only into this drive
without booting.&nbsp; For
example: drop "Pascal1.dsk" to drive 1 and "Pascal2.dsk" to
drive 2, then click the the Run button to bring up UCSD Pascal.</p>
<p>AppleWin now allows you to
open a disk as read-only.&nbsp;
To do this, click the checkbox for "Open as Read Only" in the Select
Disk Image dialog.&nbsp; This works like the physical
write-protection mechanism on a real Apple //e floppy disk.</p>
<p>If a Disk Image name is too
long to read in the Toolbar,
simply pause the mouse cursor over a drive button to get a
tool-tip with the full name.</p>
<p>Under the vertical Toolbar, are 2 LEDs, one for each floppy disk drive. The colors indicate drive status:
<li>Black: drive is off
<li>Green: drive is reading
<li>Red: drive is writing
<li>Orange: drive is reading (and floppy is write-protected)
</p>
<p>By default the Disk II Controller card has the 16-sector firmware (as used by DOS 3.3 and ProDOS). But if a WOZ image that internally identifies as 13-sector format (eg. DOS 3.2) is put into drive 1, then from the start-up/logo screen (or the next reset), the Disk II Controller card's firmware will automatically be switched to the old 13-sector firmware, allowing the disk to boot. And it will automatically switch back if a non-13-sector WOZ (or any non-WOZ) image is put into drive 1 and the machine is reset.<br>
NB. There is no support for this feature for non-WOZ images.
</p>
<p><sub style="FONT-WEIGHT: bold">1</sub>&nbsp;To register the file types in Windows Vista, Windows 7 and Windows 10,
you will need to run AppleWin with elevated privileges. This only needs to be done once.
Right click the AppleWin.exe icon and select 'Run as Administrator'.</p>
</body>
</html>

View file

@ -1,113 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Transferring Disk Images</title>
</head>
<body style="background-color: rgb(255, 255, 255); font-family: verdana;" alink="#008000" link="#008000" vlink="#008000">
<h2 style="color: rgb(0, 128, 0);">Transferring
Disk Images</h2>
<hr size="4">
<p style="font-weight: bold;">Serial Line Transfers:</p>
<p>The most common method of transferring disk
images is through a serial line. To do this, you must connect
your Apple to your PC with a serial line and null modem, then run
one program on the Apple which reads data off the disk and sends
it out over the serial line, and another program on the PC which
collects data from the serial line and saves it to a disk image
file. This system can be difficult to set up initially, but once
it is working it is very fast and convenient.</p>
<p>
Common programs for doing this work are ADT and ADTPro:</p>
<ul>
<li>Apple Disk Transfer (ADT) - <a target="_blank" href="https://github.com/david-schmidt/adt">https://github.com/david-schmidt/adt</a>
- runs natively on Windows, but is limited to transferring 5-1/4" disks.</li>
<li>Apple Disk Transfer ProDOS (ADTPro) - <a target="_blank" href="http://adtpro.sourceforge.net/connectionsserial.html">http://adtpro.sourceforge.net/connectionsserial.html</a>
- requires Java, but is capable of transferring all disk types and sizes.</li>
</ul>
<p style="font-weight: bold;">Audio Transfers:</p>
Apples with audio (cassette) jacks can transfer disk images
via those ports through audio jacks on a PC.
This method is considerably slower than using a serial line,
but may be used if
the Apple in question lacks a serial port, for example.
Common programs for doing this work are ADTPro and Arme Leute Apple Disk Transfer:</p>
<ul>
<li>Apple Disk Transfer ProDOS (ADTPro) - <a target="_blank" href="http://adtpro.sourceforge.net/connectionsaudio.html">http://adtpro.sourceforge.net/connectionsaudio.html</a>
<li>Arme Leute Apple Disk Transfer (Poor Man's ADT) - <a target="_blank" href="http://seb.riot.org/appleII/aladt.sml">http://seb.riot.org/appleII/aladt.sml</a>
</ul>
<p style="font-weight: bold;">Ethernet Transfers:</p>
Apples with an <a href="http://a2retrosystems.com/">A2RetroSystems</a>' Uthernet
card can transfer disk images via ADTPro:
<ul>
<li>Apple Disk Transfer ProDOS (ADTPro) - <a target="_blank" href="http://adtpro.sourceforge.net/configethernet.html">http://adtpro.sourceforge.net/configethernet.html</a>
</ul>
<p style="font-weight: bold;">Modem Transfers:</p>
<p>If you have a modem and
terminal program on
both your Apple and PC, you can take advantage of that to
transfer disks with very little initial setup. Here's what you
do:</p>
<ol>
<li>Run ShrinkIt! on the Apple
to compress a disk image into a single archive file.</li>
<li>Transfer that file over the
modem to your PC.</li>
<li>Run Nulib on the PC to
uncompress the archive file. Nulib is available from
<a target="_blank" href="ftp://public.asimov.net/pub/apple_II/utility/nulib">ftp://public.asimov.net/pub/apple_II/utility/nulib</a>.</li>
</ol>
<p style="font-weight: bold;">Transferring
Through 3.5"
Disks:</p>
<p>One final way to transfer disk
images is to
copy the data onto a 3.5" disk, and then use a Macintosh to
transfer the data from the 3.5" disk into a PC readable
format. The advantage of this method is that it does not require
a serial card or modem. However, it does involve a number of
steps:</p>
<ol>
<li>Run dsk2file on an Apple
IIgs. This will read an entire 5 1/4" disk and save it as a single file
on a 3.5" ProDOS disk.</li>
<li>Take the 3.5" disk to a
Macintosh and copy the file using Apple File Exchange or the ProDOS
File System Extension.</li>
<li>Format a high density 3.5"
disk on a PC.</li>
<li>Take this 3.5" disk to the
Macintosh and write the image file to it using Apple File Exchange or
PC Exchange.</li>
</ol>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more