Commit Graph

190 Commits

Author SHA1 Message Date
Ian Flanigan
f1b6c51ce7 Fix a "wrong this" bug in cpu6502 (#44) 2020-11-15 17:54:27 -08:00
Ian Flanigan
1e4e8381ec Fix calls to cpu.cycles() and cpu.sync() (#43)
Apparently, I broke everything when I removed the underscores from the
field names and added them to the method names. The fix is just to
rename the methods `getCycles` and `getSync` and call it a day.
2020-11-15 17:54:13 -08:00
Will Scullin
c3befc896a fix typo 2020-11-08 12:26:12 -08:00
Will Scullin
f600f7c6b4 typescript linting 2020-11-07 16:46:27 -08:00
Will Scullin
b3cb64357f Use class fields instead of binding (#40)
* Use class fields instead of binding
* classy tests
* Fix typing
2020-11-07 08:54:49 -08:00
Ian Flanigan
c4df78cf06 Typescript conversion of several files, including js/cpu6502 (#38)
* Convert `js/util.js` to Typescript and add tests

Besides converting `js/util.js` to Typescript, this change also adds
`js/types.ts` that defines common types used in apple2js. Some of
these types, like `byte` and `word` are for information only.

* Convert `js/base64.js` to Typescript

This also adds a new type, `memory`, that is either an array of
numbers, or a Uint8Array.

* Convert `js/ram.js` to Typescript

This change does not convert `RAM` to a class; it just introduces types.

* Basic typing of cpu6502

This is a really rough first pass. There are some problems that can't
be fixed until this is turned into a real class, but at least all of
the function arguments are now typed. This caught a few cases where
extra arguments were being passed in.

* Convert `js/cpu6502` to a class

In theory, idiomatic classes should be better than the previous
closure-based classes. However, this conversion shows that the
instruction table does not fit well with idiomatic classes as method
referenced in the table need to be called with the correct `this`
everywhere.

This should, at best, be considered a first attempt.
2020-11-01 08:43:48 -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
Ian Flanigan
f5ad2cca16 Track raw parallel port output and allow it to be downloaded (#36)
This change adds a download link to the printer dialog. The contents
of the download will be the raw bytes written to the parallel
interface. Note that often these bytes will have the high-bit set
causing the contents to look like gibberish.

However, this is extremely handy because it allows one to turn the
printer output into a PDF:

1.  In Appleworks (for example) configure an Apple ImageWriter in slot
    1 and print a file.
2.  Download the printer output.
3.  Download the header file from https://github.com/AppleWin/AppleWin/files/1168047/ImageWriterEmulator-NoLF.ps.txt
4.  In Linux, run:
    ```shell
    $ cat ImageWriterEmulator-NoLF.ps.txt raw_printer_output.bin | ps2pdf - printer_output.pdf
    ```

Note that the parallel port emulation in apple2js does not yet support
Print Shop, so I haven't been able to test that out.
2020-10-17 16:53:13 -07:00
Ian Flanigan
ccad317f63 Fix bug where the alert dialog would not close (#32)
Micromodal maintains a reference to the current open dialog in
this.modal. If one dialog is open while opening another, Micromodal
can get confused and maintain a reference to the wrong one.

One of the problems is that the close action is not instantaneous, so
even closing one dialog and opening another immediately after can
cause the problem.

This change adds a small delay before opening the alert dialog to work
around the problem.
2020-10-11 08:53:33 -07:00
Ian Flanigan
a200d6de83 Fix a problem where sometimes the emulator would run too fast (#34)
Before, when using `requestAnimationFrame`, the emulator did not save
the id returned by the browser. This broke the invariant of `run`,
namely that on exit either `runAnimationFrame` or `runTimer` would be
set. This meant that sometimes when the emulator restarted, there
would be two callbacks to `requetsAnimationFrame` run on every frame.

Now the id is saved correctly and the invariant of `run` is maintained.
2020-10-11 08:50:20 -07:00
Ian Flanigan
94d146203a Bump dependency on selfsigned (#33) 2020-10-11 08:49:05 -07:00
Ian Flanigan
f991833d68 Add a "Clear" button to clear the printer paper (#35)
Before, the printer "paper" would just keep accumulating changes. Now
the `printer-modal` dialog has a "clear" button that will the paper.
2020-10-11 08:48:16 -07:00
Will Scullin
fb1320b9de dependabot node-forge 2020-09-20 06:42:29 -07:00
Will Scullin
8d74ccaa13 typo 2020-09-20 06:37:26 -07:00
Will Scullin
ab05e99d81 Simple Smartport (#31)
* Simple Smartport

* Block device support

* turn off verbose debugging

* rom cleanup

* Turn off debugging, again

* Turn off debugging, again, again
2020-09-12 19:42:18 -07:00
Will Scullin
7f9ad9b9a1 Fix Firefox key borders 2020-09-07 16:55:10 -07:00
Will Scullin
eeca9c99a7 Resolve audit warnings 2020-09-07 12:49:06 -07:00
dependabot[bot]
de920f6afe Bump http-proxy from 1.18.0 to 1.18.1 (#30)
Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/http-party/node-http-proxy/releases)
- [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-07 12:34:57 -07:00
Will Scullin
ffe8a76c86 Basic copy and paste. 2020-09-03 22:39:16 -07:00
Will Scullin
1e56b0af63 No Slot Clock 2020-09-03 20:39:35 -07:00
Will Scullin
05fcc60c2e Show audio error when loading tape. 2020-08-23 06:36:59 -07:00
Will Scullin
8fc980c579 Better watch behavior. 2020-08-23 06:36:09 -07:00
Will Scullin
42b30141ad Move //e specific out of apple2io.js (#28) 2020-08-06 06:31:27 -07:00
dependabot[bot]
a3d38a12b6 Bump elliptic from 6.5.2 to 6.5.3 (#27)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-02 06:37:49 -07:00
Will Scullin
b2afdf7a36 New machine, new lint 2020-07-20 17:12:50 -07:00
Will Scullin
eb6b5620a5 Audio cleanup. 2020-07-20 17:04:55 -07:00
dependabot[bot]
e41e8d2bf2 Bump lodash from 4.17.15 to 4.17.19 (#26)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-19 15:01:30 -07:00
Will Scullin
9824c51119 Add 13 sector ][+ option. 2020-07-19 14:53:01 -07:00
Will Scullin
4046a9dbce Restore old //e key handling behavior. 2020-06-21 15:52:39 -07:00
Will Scullin
fe2b85f6e3 e e e 2020-06-18 02:34:31 -07:00
Will Scullin
cf16b9cf55 Minor optimization. 2020-06-17 22:20:11 -07:00
Will Scullin
7394900020 Don't clear flag if re-entering hires. 2020-06-17 20:31:17 -07:00
Will Scullin
00bc5b3c04 Support undocumented AppleColor RGB 160x192 mode. 2020-06-16 09:49:11 -07:00
dependabot[bot]
d6b080986c Bump websocket-extensions from 0.1.3 to 0.1.4 (#24)
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-15 15:36:33 -07:00
Will Scullin
c7d4f579a7 Move green filter in line. 2020-06-08 19:21:53 -07:00
Will Scullin
849067dbdb Stop setting height 2020-06-07 11:57:42 -07:00
Will Scullin
3e6f1e586e Clean up special RBG mode support. 2020-06-05 12:53:56 -07:00
Will Scullin
d23940dea8 Lint more 2020-04-23 20:57:59 -07:00
Will Scullin
9f34078f30 Fix lint. 2020-04-23 19:50:19 -07:00
Will Scullin
87e8cde031 Style cleanup 2020-04-23 19:48:52 -07:00
Will Scullin
bb6e36f964 Various fixes (#23)
* Sort disks in category order

* Fix saving disk

* Fix keyboard not working after modal

* Make caps lock key on keyboard work, while keeping caps lock on virtual keyboard working too

* Fix delete local storage

* Fix minus key on Mac

* Remove backtick

* Credit.

Co-authored-by: Matthew Hebley <Matthew.Hebley@navico.com>
2020-04-23 19:47:44 -07:00
Will Scullin
8af8cdbbca Clean up lint. 2020-03-26 20:01:24 -07:00
Will Scullin
3932c1a919 Spring cleaning, package edition. 2020-03-22 16:35:27 -07:00
dependabot[bot]
3a0036c1ca Bump acorn from 5.7.3 to 5.7.4 (#22)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-14 12:39:29 -07:00
Will Scullin
ddcabc5683 Really brief delay for CFFA. 2020-01-12 13:06:40 -08:00
Will Scullin
91d1d753ad Eat context menu events. Fixes #21 2020-01-12 11:43:16 -08:00
Will Scullin
ce0a1b59ce Move most gfx into css. 2020-01-02 21:12:34 -08:00
Will Scullin
b647b3c2bb CFFA (#20)
* CFFA

* CFFA multi-disk and write functionaliity.

* Clean up multi-devices/partition behavior.

* ProDOS WIP

* Update against refactored codebase.

* WIP

* Wait until disks load, show progress.

* Don't wait so long to boot floppies.

* Forgot to save :|.

* Credit.
2020-01-02 11:11:04 -08:00
Will Scullin
8ea7cf2abe Credit. 2020-01-02 11:00:04 -08:00
Will Scullin
506dfc52de Small cleanup and fixes. 2020-01-02 10:57:26 -08:00