100 Commits
Author SHA1 Message Date
Terence Boldt eccfe70a96 Update PicoSetup.md 2026-04-04 18:09:28 -04:00
Terence Boldt adc6af97bb Update go.yml 2025-05-21 20:49:42 -04:00
Terence Boldt 624debc6b8 Update driver dependencies 2025-05-21 20:41:26 -04:00
Terence Boldt 0acaaa70f7 Update SECURITY.md 2024-08-28 22:22:55 -04:00
Terence Boldt 9b92f741fd Update codeql.yml 2024-08-28 19:38:17 -04:00
Terence Boldt 0f745bc1be Update codeql.yml 2024-08-28 19:35:08 -04:00
Terence Boldt 12535174d5 Update codacy.yml 2024-08-28 19:22:13 -04:00
Terence Boldt d49ec2336b Update README.md 2024-08-28 18:44:22 -04:00
Terence Boldt 2837dd3448 Add support for meta key
Closes #181
Use the Open-Apple key to send meta key (alt)
2024-08-28 18:35:51 -04:00
Terence Boldt 51a64330a4 Update dependencies (#184)
* Update dependencies

* Update driver version
2024-08-28 16:23:39 -04:00
Terence Boldt 00fab3d627 Add A2Pico link in PicoSetup.md 2024-08-06 08:13:40 -04:00
Terence Boldt 6bf7e9824b Update links in README.md 2024-08-06 08:11:31 -04:00
Terence Boldt de059808c0 Fix parameter passing 2024-07-15 13:02:37 -04:00
Terence Boldt 3a8c0aff5f Include uf2 instead of elf (#179) 2024-07-15 08:24:45 -04:00
Terence Boldt c0243f1e4d Update to hardware revision 7 (#176)
* Add jumpers for write protect and EPROMs

* Update to latest hardware revision 7
2024-06-24 22:17:50 -04:00
Terence Boldt 1e73e8d886 Fix #170 driver crash on unload drive 2024-06-07 21:39:31 -04:00
Terence Boldt 9786590f6e Fix #172 garbage from RPI.COMMAND (#173)
* Fix #172 garbage from RPI.COMMAND

* Update version number
2024-06-07 17:51:38 -04:00
Terence Boldt cafe4a413b Update PicoSetup.md 2024-05-30 13:06:06 -04:00
Terence Boldt 2a35501ed7 Add release build script (#169)
* Add release build script

* Add EEPROM image to release
2024-05-30 08:48:01 -04:00
Terence Boldt 8b04a0e926 Add clock driver, remove from firmware (#168) 2024-04-18 14:23:22 -04:00
Terence Boldt 1336371b49 Update setup.sh 2024-04-02 14:56:42 -04:00
Terence Boldt 7bc130582d Fix build script 2024-03-29 12:13:39 -04:00
Terence Boldt 0f58e987f1 Update setup and instructions 2024-03-29 12:13:39 -04:00
Terence Boldt de156de730 Fix Pico build 2024-03-29 12:13:39 -04:00
Terence BoldtandOliver Schmidt aa5910cee8 Initial Pico hardware support
* Added assemble.cmd for Windows.

In the long run, some (c)make-based cross-plafrom solution seems preferable.

* Fill up the menu page just like the other pages.

* Allow to assemble for different hardware types.

The first script parameter is used to set the ca65 symbol HW_TYPE. Without parameter, HW_TYPE is set to 0.

* Avoid unwanted i/o access.

Depending on the 6502, LDA addr,X and/or STA addr,X produce additional phantom reads. In order to avoid those phantom reads to do i/o access, I used the "classic" approach of moving those reads from page $C0 to page $BF.

* Made use of BIT instruction to access InputFlags from firmware.

Doing the same for access from disk-based software would require selfmodifying code as there's not bit <addr>,x instruction.

* Removed push/pop from GetByte.

After the replacing the rol instructions with bit instructions with a recent chnage, the only reason left to save a to the stack was setting the OutputFlags. But that can be done using x.

* Added InputFlags check for consistency.

* Added support for an alternative hardware type.

The new hardware type has simple UART-type interface. Beside the two data registers, there are only the two bits to indicate readability and writability of the data registers.

* Added another comminucation interface implementation.

Use ACM CDC (or another proprietary) USB serial device for communication.

Currently VID / PID of a Raspberry Pi Pico SDK CDC UART are hardcoded - see https://github.com/raspberrypi/usb-pid

* Revert "Avoid unwanted i/o access."

Neither the original hardware type nor the alternative hardware type have any read and write i/o port share addresses. Therefore phantom reads aren't an issue with those hardware types.

This reverts commit ae5cb754fb.

* Adapt to the different error signatures on Linux.

So far the code was only tested on Windows.

* Added implementation of the alternative hardware type.

The implemenation is based on a Raspberry Pi Pico - see https://github.com/a2retrosystems/A2retroNET

The new hardware type has a simple UART-type interface. Beside the two data registers, there are only the two bits to indicate readability and writability of the data registers.

* Modify the HD image for the alternative hardware type.

It is likely desirable to have two HD images for the two hardware types. And likely the apple2driver program should default to the right one based on its protocol setting. BUt given that the HD image(s) shouldn't be part of the actual Git repo anyhow, I don't do anything about this here and now.

* Fixed shell startup (?)

At least on the alternative hardware, this "blindly sending" a reset command causes the shell to be terminated right away:
The driver acknowldges the reset command with a zero byte - and that byte ends up being read by DumpOutput causing it to branch to endOutput.

Maybe that sending a reset command is beneficial on the original hardware. Then another .if is required. Or DumpOutput shouldn't quit on reading a zero byte - the shell handler doesn't seem to send it on purpose(?)

* Upate HD image with recent shell change.

* Fix shell shutdown (?)

At least on the alternative hardware, things happen this way:
1. The shell 'exit' command has ptyOut signal outputComplete and terminate. At this point, ptyIn is still blocked up to one second in ReadCharacter - and can therefore not react on outputComplete.
2. The outputComplete handler in ShellCommand sends a zero byte. This makes on the A2 DumpOutput return and the caller send a zero byte. ShellCommand must not return here as ptyIn is still blocked.
3. The zero byte from the A2 has ptyIn return from ReadCharacter, signal userCancelled and terminate.
4. ShellCommand can now return, but it must not send a zero byte, as the A2 is not expecting it - and will therefore later misinterpret it.

Maybe the original hardware needs another handling, then differentiation of behavior in shell.go becomes necessary.

* Moved boot text out of IIgs copyright message area.

Having the boot text start at the left border of the third line makes it look nice on the cold boot screen of all Apple II's - and there's where the user sees it for some time while waiting for the RPi to come up.

* Several adjustements:

- Get latest Go version as of now.
- Nowadays (?) GitHub 'git clone' seems to only work with a GitHub account. Therefore the zip download workaround. The becomes hopefully unnecessary soon with Go module magic.
- Use 'go mod tidy' to update .sum file for now.
- Error handling for an empty drive 2 is currently not exactly great, so download Total Replay for drive 2. Unfortunately there's no stable URL as of now.
- Use $USER and $HOME instead of hardcoded values.
- Removed deprecated syslog output directives.

* Added brief fork description.

* Added ProDOS-Utilities reference.

* Reverted back to using 'git clone'.

I've no idea why git acted up the other day :-( Now, everything is back to normal...

* Ignore Pico build directory.

* Updated from https://github.com/a2retrosystems/A2retroNET

* Updated from https://github.com/a2retrosystems/A2retroNET

At this point, nothing at all is done on an A2 reset. This can likely be improved. However, Apple2-IO-RPi doesn't seem to handle A2 reset exactly gracefully anyhow.

In general, it seems desirable to introduce some simple framing protocol - like SLIP - that allows to recover from an A2 reset in the middle of an Apple2-IO-RPi command execution.

Such a framing protocol would allow to introduce different frame types. One frame type could then be an A2 reset frame sent by the A2retroNET firmware.

* Make use of brand new stable Total Replay download URL.

Thanks to 4am :-)

* Fixed typos.

* Clone upstream ProDOS-Utilities.

My ProDOS-Utilities pull request was merged.

* Added support for boards without LED.

* Updated link.

* Adjusted to the current A2retroNET hardware.

* Removed support for the Pico W.

* Updated URL.

* Updated URL.

* Make use A2Pico library.

* Added link to A2Pico.

* Remove intermediates from repo.

* Build intermediates from Pico build.

* Have LED reflect status of logic ACM connection.

* Update upstream repo references.

* Adjust build instructions.

* Update README.md

* Fix build and update dependencies

* Fix binary comparison

* Fix firware bug on classic hardware

---------

Co-authored-by: Oliver Schmidt <ol.sc@web.de>
2024-02-05 22:49:09 -05:00
Terence Boldt 729ea131db Update ProDOS to 2.4.3 2024-01-02 19:54:35 -08:00
Terence Boldt 2281d03128 Update copyright for 2024 2024-01-02 19:54:35 -08:00
Terence Boldt f6002fa7f9 Update dependencies 2023-12-04 23:29:26 -05:00
Terence Boldt 3840db1a35 Fix nano with enter key as 0x0D (#158) 2023-12-04 23:23:59 -05:00
Terence Boldt 5762cdae3e Update bug_report.yml 2023-11-19 09:38:07 -05:00
Terence Boldt bde5767314 Fix keyboard delay (#152) 2023-11-01 20:00:21 -04:00
Terence Boldt 6edd7ecf11 Update bug_report.yml 2023-10-31 23:08:30 -04:00
Terence Boldt 8d5aa26b78 Add backoff to reduce CPU usage (fixes #141) (#151)
* Add backoff to reduce CPU usage

* Update driver version for CPU fix
2023-10-31 23:04:15 -04:00
Terence Boldt 0dbb55fda1 Add 64 bit OS support, upgrade Go, allow non-pi user 2023-10-31 21:51:06 -04:00
Terence Boldt 5db78ba3b9 Do apt update before installation
Fixes #140
2023-04-04 18:56:22 -04:00
Terence Boldt 8ef94ba5d3 Update schematic PDF 2023-03-08 09:26:35 -05:00
Terence Boldt 53377e2dc0 Add bill of materials 2023-03-08 09:26:35 -05:00
Terence Boldt d20717cc79 Update schematics for 0.1 µF caps (#136) 2023-03-01 05:53:35 -07:00
Terence Boldt cca6d43657 Update library for security fix (#135) 2023-03-01 05:33:15 -07:00
Terence Boldt 9883348baa Add drive load (#133) 2023-02-04 19:09:57 -05:00
Terence Boldt ad6d103cca Fix hang after shell exit (#131) 2023-01-30 20:45:24 -05:00
Terence Boldt 60a311549d Update README.md 2023-01-28 10:23:27 -05:00
Terence Boldt 27b01d0925 Update README.md 2023-01-28 09:53:39 -05:00
Terence Boldt 554d3390d6 Set default dir to driveimage (#125) 2023-01-26 22:33:08 -05:00
Terence Boldt 813ab1caee Change bas files to symlinks (#123) 2023-01-25 23:07:09 -05:00
Terence Boldt b10dec3e50 Add live drive regeneration and loading (#122) 2023-01-25 22:32:47 -05:00
Terence Boldt 841b11f9ae Add graphics conversion
* Update copyright year

* Update module to add image support
2023-01-14 10:51:39 -05:00
Terence Boldt 382cfebc26 Update README.md 2023-01-08 22:50:22 -05:00
Terence Boldt 91346471ae Update driver version 2023-01-08 22:35:15 -05:00
Terence Boldt 28dc09a877 Dynamic drive (#114)
* Fix for when not using dynamic drive
2023-01-08 18:03:57 -05:00
Terence Boldt c64f187251 Create codeql.yml 2023-01-01 10:21:22 -05:00
Terence Boldt 9c0d819f5a Delete codacy-analysis.yml 2023-01-01 10:20:38 -05:00
Terence Boldt b507ec99a9 Create codacy.yml 2023-01-01 10:20:23 -05:00
Terence Boldt 803d5f436c Update README.md 2022-12-31 12:40:27 -05:00
Terence Boldt d90b94f4b1 Fix compare for build 2022-12-31 12:39:15 -05:00
Terence Boldt a13866a458 Fix boot of dynamic drive 2022-12-31 12:39:15 -05:00
Terence Boldt f0e67ea5ff Fix dynamic drive 2022-12-31 12:39:15 -05:00
Terence Boldt 91efe725b7 Add dynamic drive support 2022-12-31 12:39:15 -05:00
Terence Boldt 4b7d990209 Fix security warnings in setup.sh 2022-04-27 22:50:04 -04:00
Terence Boldt ed2acd9d5f Update boot image 2022-04-27 22:36:27 -04:00
Terence Boldt da04931665 Add error handling 2022-04-27 22:36:27 -04:00
Terence Boldt 74702e2cb5 Fix setup script 2022-03-19 14:08:22 -04:00
Terence Boldt 9f85fba5ad Add setup script 2022-03-19 14:05:20 -04:00
Terence Boldt 55d94dd1f0 Update RPi.Command and driver for it 2022-03-03 22:34:45 -05:00
Terence Boldt 707c704119 Merge pull request #98 from tjboldt/binary-compare
Verify generated binaries
2022-03-02 21:58:45 -05:00
Terence Boldt d33264edf5 Fix Codacy warning 2022-03-02 21:54:28 -05:00
Terence Boldt d897149901 Verify generated binaries 2022-03-02 21:46:45 -05:00
Terence Boldt 087f5a299f Merge pull request #97 from tjboldt/shell-version
Update version numbers
2022-03-02 08:35:43 -05:00
Terence Boldt a751737bf1 Update version numbers 2022-03-01 22:46:03 -05:00
Terence Boldt 869eb25c11 Merge pull request #96 from tjboldt/fix-vi-arrows
Fixes #94 VT100 arrow keys for application mode
2022-03-01 08:31:30 -05:00
Terence Boldt 661c2fc8f6 Fixes #94 VT100 arrow keys for application mode 2022-03-01 08:26:54 -05:00
Terence Boldt bd88d194d4 Fix #95 gerber render for PCBWay compatibility 2022-03-01 05:38:58 -05:00
Terence Boldt 9198e2ae6c Update README.md 2022-02-28 20:59:47 -05:00
Terence Boldt b9a2eacb5d Merge pull request #92 from tjboldt/shell-kb-fix
Fix keyboard input glitch on read
2022-02-23 22:44:18 -05:00
Terence Boldt 049e8770d2 Fix keyboard input glitch on read 2022-02-23 22:42:19 -05:00
Terence Boldt fd0f020364 Merge pull request #91 from tjboldt/shell-kb-fix
Fix #56 shell crash on key autorepeat
2022-02-22 15:49:19 -05:00
Terence Boldt 1f4c9ddf4d Fix #56 shell crash on key autorepeat 2022-02-22 15:43:54 -05:00
Terence Boldt f9dab0aff3 Update README.md 2022-02-22 10:49:36 -05:00
Terence Boldt 141d5fc691 Merge pull request #90 from hanshuebner/main
Clean up buses for aesthetics
2022-02-21 05:19:48 -05:00
Terence Boldt 8d22144890 Update pdf to latest schematic 2022-02-20 21:53:06 -05:00
Terence Boldt 78d7b73793 Merge pull request #89 from hanshuebner/main
Name fix and contributor links
2022-02-20 16:31:49 -05:00
Terence Boldt 00e412c552 Add contributions/thanks to README 2022-02-20 13:58:42 -05:00
Terence Boldt c03235acea Clean up ERC warnings/errors 2022-02-20 13:26:37 -05:00
Terence Boldt e1ac67974f Fix warnings and errors in PCB 2022-02-20 11:21:20 -05:00
Terence Boldt 261c523836 Merge pull request #88 from hanshuebner/main
Improve schematics
2022-02-20 09:29:20 -05:00
Terence Boldt 37dd7b1c3b Merge pull request #87 from tjboldt/external-power
Add sixth prototype with external power jumper
2022-02-17 20:19:43 -05:00
Terence Boldt 8efc93a317 Update README.md 2022-02-17 20:12:41 -05:00
Terence Boldt 12cdc7ea44 Update to KiCAD 6 2022-02-17 20:00:32 -05:00
Terence Boldt a1ef730dac Update README for sixth prototype 2022-02-16 21:50:16 -05:00
Terence Boldt c29232b407 Add power jumper and instructions 2022-02-16 21:45:22 -05:00
Terence Boldt 791085e14a Update version number 2022-02-16 08:08:30 -05:00
Terence Boldt a443b63bb9 Merge pull request #83 from tjboldt/rpio
Replace periph.io with rpio
2022-02-15 21:31:20 -05:00
Terence Boldt a7599ad430 Merge branch 'main' into rpio 2022-02-15 21:28:37 -05:00
Terence Boldt 25e70d771e Add rpio line configuration 2022-02-15 18:56:02 -05:00
Terence Boldt 8104e99cce Update README.md 2022-02-15 04:06:03 -05:00
Terence Boldt a75338f480 Replace periph with rpio for gpio 2022-02-14 21:02:55 -05:00
Terence Boldt 7e94421754 Update README.md 2022-02-09 07:07:50 -05:00
Terence Boldt ec5ba0b888 Merge pull request #77 from tjboldt/version
Add version info to firmware and driver
2022-02-07 22:34:19 -05:00
Terence Boldt e53c722715 Add version info comment 2022-02-07 22:25:52 -05:00
Terence Boldt 495a083ddb Update help with a2version 2022-02-07 22:19:56 -05:00