Commit Graph

65 Commits

Author SHA1 Message Date
Will Scullin 1e79d9d59d
Prettier (#203)
* Enabled prettier

* Update lint, fix issues

* Restore some array formatting
2023-11-24 06:45:55 -08:00
Will Scullin e7891114c6
Use submodules for apple2shader and cpu6502 (#202)
* Use submodules for apple2shader and cpu6502

* Update instructions
2023-11-22 16:28:40 -08:00
Ian Flanigan 4490cc9bc7
Update `@types/wicg-file-system-access` (#196)
With the latest TypeScript, there was a difference between `libdom`
and `wicg-file-system-access` that caused weird errors.  Updating this
fixes them.
2023-08-12 15:47:18 -07:00
Will Scullin 44fef94b4d
Update Typescript (#193) 2023-08-06 18:34:53 -07:00
Will Scullin 25d82c0d74
Node 14.x is EOL (#191)
Update engine >= 16, test against 16 and 18
2023-07-08 13:14:31 -07:00
Will Scullin ee2cc9f0ff Update jest-image-snapshot 2023-07-08 12:41:53 -07:00
dependabot[bot] 63459864da
Bump stylelint from 15.6.0 to 15.10.1 (#189)
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.6.0 to 15.10.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.6.0...15.10.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-08 12:25:01 -07:00
Ian Flanigan 6923d43873
Fix issue #187 (and upgrade jest) (#188)
* Update jest to v29.5.0

This updates jest to the latest version (29.5.0) and fixes everything
that the upgrade breaks.  One of the biggest differences is that the
mock types changed and I'm once again confused as to the "proper" way
to create mocks in jest.  Whatever.

* Fix issue #187 were bank writing was not working correctly

Before, `mmu.ts` would deactivate writing to the language card if
`prewrite` was reset.  However, it is totally possible to reset
`prewrite` and leave writing enabled, as shown my Sather in
_Understanding the Apple IIe_, table 5.5, p. 5-24.  For example:

```assembly_x86
    sta  $c08a  ; WRITE DISABLE; READ DISABLE
    lda  $c08b  ; PRE-WRITE set
    lda  $c08b  ; WRITE enabled
    sta  $c08a  ; PRE-WRITE reset; WRITE still enabled!
    lda  $c08b  ; PRE-WRITE set; WRITE still enabled!
```

would not work correctly because the last line would clear `_writebsr`
before setting `_prewrite`, which is incorrect.

Now, `_writebsr` is only set when `_prewrite` is set and thus only
cleared when `writeSwitch` is false.  This matches Table 5.5.

* Fix pre-write for the language card

This is the same issue as the `MMU`, namely that `langcard.ts` would
deactivate writing to the language card if `prewrite` was reset.
However, it is totally possible to reset `prewrite` and leave writing
enabled, as shown my Sather in _Understanding the Apple II_, table
5.4, p. 5-30. See the previous commit for an example.

This change also adds a test for the `LanguageCard` class.
2023-07-08 11:18:38 -07:00
dependabot[bot] c8bc512655
Bump webpack from 5.28.0 to 5.76.0 (#183)
* Bump webpack from 5.28.0 to 5.76.0

Bumps [webpack](https://github.com/webpack/webpack) from 5.28.0 to 5.76.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.28.0...v5.76.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix build

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Scullin <scullin@scullin.com>
2023-05-28 16:24:47 -07:00
dependabot[bot] e85aa735da
Bump yaml, stylelint, stylelint-config-css-modules, stylelint-config-standard, stylelint-config-standard-scss and stylelint-scss (#184)
Removes [yaml](https://github.com/eemeli/yaml). It's no longer used after updating ancestor dependencies [yaml](https://github.com/eemeli/yaml), [stylelint](https://github.com/stylelint/stylelint), [stylelint-config-css-modules](https://github.com/pascalduez/stylelint-config-css-modules), [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard), [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss) and [stylelint-scss](https://github.com/stylelint-scss/stylelint-scss). These dependencies need to be updated together.


Removes `yaml`

Updates `stylelint` from 14.16.1 to 15.6.0
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.16.1...15.6.0)

Updates `stylelint-config-css-modules` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/pascalduez/stylelint-config-css-modules/releases)
- [Changelog](https://github.com/pascalduez/stylelint-config-css-modules/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pascalduez/stylelint-config-css-modules/compare/4.1.0...4.2.0)

Updates `stylelint-config-standard` from 26.0.0 to 33.0.0
- [Release notes](https://github.com/stylelint/stylelint-config-standard/releases)
- [Changelog](https://github.com/stylelint/stylelint-config-standard/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint-config-standard/compare/26.0.0...33.0.0)

Updates `stylelint-config-standard-scss` from 6.1.0 to 9.0.0
- [Release notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-config-standard-scss/compare/v6.1.0...v9.0.0)

Updates `stylelint-scss` from 4.3.0 to 4.6.0
- [Release notes](https://github.com/stylelint-scss/stylelint-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-scss/compare/v4.3.0...v4.6.0)

---
updated-dependencies:
- dependency-name: yaml
  dependency-type: indirect
- dependency-name: stylelint
  dependency-type: direct:development
- dependency-name: stylelint-config-css-modules
  dependency-type: direct:development
- dependency-name: stylelint-config-standard
  dependency-type: direct:development
- dependency-name: stylelint-config-standard-scss
  dependency-type: direct:development
- dependency-name: stylelint-scss
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-25 06:14:17 -07:00
Will Scullin eab02bff31
Fix scss linting (#178) 2023-01-31 17:49:07 -08:00
Will Scullin 9173bff1ba
Switch to scss, better scope rules (#170)
Restrict element types and global styling to improve embedability
2023-01-11 18:14:44 -08:00
Will Scullin c5faad2f9f
Add stylelint (#139) 2022-06-25 17:40:47 -07:00
Will Scullin f283dae7e1
2IMG Download support. (#137)
* 2IMG Download support.

* Use string encoder/decoder
2022-06-21 20:34:19 -07:00
Will Scullin 0f66e66c0e
Fix apple2shader types 2022-06-15 09:42:07 -07:00
Will Scullin c39d5804f6
Update Typescript 2022-06-04 11:34:17 -07:00
Will Scullin 303838f63d
Use CSS modules (#123)
* Use CSS modules

* Fix tests

* Feedback
2022-06-03 15:30:39 -07:00
Will Scullin ef404735cd
Preact error dialog (#120)
Add error dialog, fix dynamic hash updates.
2022-05-31 17:41:24 -07:00
Will Scullin d4db26574d
Jest lint (#118)
* Jest lint

* Feedback
2022-05-30 09:29:48 -07:00
Will Scullin e525e12c3c
React linters (#117)
* React hook linter

* React linting

* Simplify config
2022-05-29 13:48:51 -07:00
Ian Flanigan 52a1c65fe4
Create a FileChooser component using showOpenFilePicker (#116)
* Create a FileChooser component using showOpenFilePicker

Before, `FileModal` always used a file input control for selecting
local files. This allowed the emulator to read from the file, but
precluded writing back to the file.

With this change, the `FileModal` delegates to the new `FileChooser`
component. The `FileChooser` will use `showOpenFilePicker` if it is
available and a regular file input if it's not.

Using `showOpenFilePicker` has the advantage of allowing the emulator
to write back to the file (if the user grants permission). While the
emulator does not yet take advantage of this write capability, that
will come.

* Addressed comments

*   useState() instead of direct DOM manipulation
*   backed out eslint changes in favor of suppressing the warning
2022-05-28 10:52:48 -07:00
Will Scullin d44cae76a7
Turn on exactOptionalPropertyTypes (#110)
Turn on exactOptionalPropertyTypes
2022-05-11 17:20:49 -07:00
Will Scullin 4a188a9a5c
Preact UI (#106)
First pass at a Preact UI, still short some major features but full proof of concept.
2022-05-10 06:52:06 -07:00
dependabot[bot] fb82ce1f5e
Bump node-forge from 1.0.0 to 1.3.0 (#101)
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.0.0 to 1.3.0.
- [Release notes](https://github.com/digitalbazaar/forge/releases)
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.0.0...v1.3.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-02 17:20:45 -07:00
dependabot[bot] 959ccd6e98
Bump node-forge from 0.10.0 to 1.0.0 (#97)
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 0.10.0 to 1.0.0.
- [Release notes](https://github.com/digitalbazaar/forge/releases)
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/0.10.0...v1.0.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-13 20:10:01 -08:00
Will Scullin 20f2c1e955 update canvas 2021-11-28 16:48:44 -08:00
Will Scullin b24009d265 Update webpack dev server 2021-11-28 16:41:55 -08:00
Will Scullin 2978b72fec Update eslint, fix issues 2021-11-28 16:20:25 -08:00
Will Scullin 52f9c3e99e
jest 27 2021-10-02 07:21:37 -07:00
Will Scullin 044e28e050
Woz to TypeScript (#84)
Woz to TypeScript, with tests added before conversion.
2021-07-09 17:54:27 -07:00
Will Scullin ce3631f3a2
Refactor disk parsing into webworker (#83)
* Refactor disk handling to allow disk processing to happen in a worker
* Type cleanup
* Convert format handlers to TypeScript
* Convert CFFA to TypeScript
2021-07-06 17:04:02 -07:00
Will Scullin 4bcf9d52da
latest dev server 2021-07-04 19:27:53 -07:00
Will Scullin af57378852
Videomode refactor 2 (#80)
Remove globals from video implementations to allow further refactoring. Experiment with testing video modes.
2021-05-25 12:08:10 -07:00
Will Scullin f28641df32
Dependabot says so 2021-04-24 16:17:57 -07:00
Will Scullin df5f3a6058
give up and publish apple2shader 2021-04-20 19:01:12 -07:00
Will Scullin 09c6d6fbb1
Options modal (#75)
Refactor Options modal, webgl scanline, restore `Apple2.apple2`, other minor fixes.
2021-04-20 17:42:32 -07:00
Ian Flanigan 207bed3d27
Typescriptify `ui/apple2.js` (#74)
This is mostly a mechanical change; there are still lots of things
about `ui/apple2` that could be improved.  The change also converts a
few dependencies of `ui/apple2`, like `applesoft/compiler`.

Besides the straight conversions, some other packages have changes to
make all of the typing work out.

Lastly, `@types/micromodal` has been added as a development
dependency.
2021-03-30 17:27:44 -07:00
Will Scullin 0c89f44560
Update watch options, package-lock.json 2021-03-26 13:29:15 -07:00
Ian Flanigan 54eddb178c
Update webpack-dev-server to 4.0.0-beta1 (#71)
When using the old webpack-dev-server with webpack 5+, we get bitten
by webpack/webpack-dev-server#2692. This upgrades to 4.0.0-beta1 which
also (unhelpfully) changes the config options.  The `watchContentBase`
and `watchOptions` don't seem to have analogs in the new versions, but
I left them commented out for future reference.

Also, this does not update `package-lock.json` because even just
updating locally gave different output since I'm on a different
version of node, I'm guessing.
2021-03-26 13:21:45 -07:00
Will Scullin 8f20fb8829
Specify webpack mode 2021-03-26 11:42:30 -07:00
Will Scullin f3ca6f11d0
Spring cleaning '21, package edition 2021-03-25 07:48:47 -07:00
Ian Flanigan f230c58bbf
Add green screen support for the GL renderer (#68)
* Add green screen support for the GL renderer

This adds a configuration that is equivalent to a Monitor II monitor
(at least according to the Open Emulator Project) to GL renderer.
This does not need a restart to take effect.

* Update `package.json` to latest `apple2shader` version
2021-03-23 13:02:31 -07:00
Will Scullin 45dfc801fc
still trying to figure out git actions 2021-02-22 03:12:58 -08:00
Will Scullin be35aa9315
NTSC shader (#58)
Incorporate a real NTSC shader.
2021-02-21 18:38:21 -08:00
Ian Flanigan 279f770e28
Update Typescript and Jest dependencies (#55)
This is a mechanical update to Typescript and Jest dependencies, but
since I also upgraded `npm` to 7.5.2, the `package-lock.json` file has
a lot of churn.
2021-02-07 20:52:16 -08:00
Will Scullin f600f7c6b4
typescript linting 2020-11-07 16:46:27 -08:00
Ian Flanigan e8cd85f54a
Add configuration and dependencies to support Typescript (#37)
This change adds basic, non-optimal support for Typescript with
webpack. It functions well in development mode and deployment boots
ProDOS. There are probably many ways this configuration can be sped
up, but I haven't investigated that yet.

Note that no Typescript files are added in this change; it is merely a
configuration change.
2020-10-17 16:53:33 -07:00
Will Scullin fb1320b9de
dependabot node-forge 2020-09-20 06:42:29 -07:00
Will Scullin eeca9c99a7
Resolve audit warnings 2020-09-07 12:49:06 -07:00
Will Scullin fe2b85f6e3
e e e 2020-06-18 02:34:31 -07:00