Commit Graph
1625 Commits
Author SHA1 Message Date
Brendan Robert 3103d44635 Add MegaFlash hardware-accelerated FPU library (fpu_mf)
This commit adds optional hardware floating-point acceleration for PLASMA
programs running on Apple IIc/IIc+ systems with MegaFlash storage devices.

New Features:
- fpu_mf.pla: Drop-in replacement for fpu.pla with hardware acceleration
- API-compatible with existing fpu.pla library
- Automatic hardware detection and transparent SANE fallback
- 10-100x speedup for transcendental functions (sin, cos, tan, log, exp)
- 3-5x speedup for multiplication and division

New Files:
- src/inc/megaflash.plh: MegaFlash hardware constants
- src/libsrc/fpu_mf.pla: Hardware-accelerated FPU library
- src/libsrc/README_fpu_mf.md: Library documentation
- src/samplesrc/fptest_mf.pla: Comprehensive test program
- MEGAFLASH_FPU.md: Integration overview and PR documentation

Usage:
Users can switch from 'import fpu' to 'import fpu_mf' with no other
code changes required. Programs work on all systems (with or without
MegaFlash hardware).

Backwards Compatibility:
- No changes to existing PLASMA code
- Opt-in only - existing programs unchanged
- Works on all Apple II systems (fallback to SANE if no hardware)

Technical Details:
- Automatic format conversion (SANE Extended <-> MBF)
- Hardware operations: mul, div, sqrt, sin, cos, tan, atan, ln, exp
- SANE fallback for unsupported operations
- MegaFlash detection via ID register ()

See MEGAFLASH_FPU.md for complete documentation.
2026-01-24 17:36:30 -06:00
David Schmenk e2ef600dd2 Add visibility algorithm to solving 2026-01-24 13:24:04 -08:00
David Schmenk 51a33d5750 Timer divisor measured on actual //c 2026-01-03 14:56:37 -08:00
David Schmenk a9befc3b37 Improved maze generation and timer result 2026-01-03 13:59:08 -08:00
David Schmenk e968a5911f Further random number improvements 2026-01-02 20:04:45 -08:00
David Schmenk 2522d1faab Play again option 2026-01-02 17:47:17 -08:00
David Schmenk 2239b6de9e Force 40 column mode before HGR 2026-01-02 15:56:01 -08:00
David Schmenk 0424867ead Maze game and improve random numbers 2026-01-02 14:39:51 -08:00
David Schmenk 0d4b0f9607 Change autorun script 2026-01-01 11:02:50 -08:00
David Schmenk 6bc88b8f7d Change volume label 2025-12-30 19:14:05 -08:00
David Schmenk ff175b5d1e Script cleanup 2025-12-30 08:33:30 -08:00
David Schmenk dd545c7aa5 Improve starbusrt visual 2025-12-29 16:32:02 -08:00
David Schmenk 102b1ef652 Happy New Year 2026 demo 2025-12-29 13:43:58 -08:00
David Schmenk c143596032 run turtle graphics demo in PLFORTH disk image 2025-12-22 07:29:47 -08:00
David Schmenk e3550d4a83 Add fixed point move routine and sample 2025-12-21 17:27:53 -08:00
David Schmenk d6a51f4656 Update turtle graphics sample 2025-12-20 21:40:15 -08:00
David Schmenk 5830f8b34e Add to turtle graphics demo 2025-12-20 15:08:32 -08:00
David Schmenk eafd2df444 Fix resetting of lastsym after execmod 2025-12-20 13:38:36 -08:00
David Schmenk 34bc475d16 Add TXTMODE word 2025-12-20 09:18:41 -08:00
David Schmenk 2d419672e0 Tweak line clip outcode checks 2025-12-15 20:15:59 -08:00
David Schmenk 9c76ea92c3 Simplify turtle API 2025-12-11 18:28:45 -08:00
David Schmenk d35774eac4 Use high precision cos for RGB->DHGR Conversion
Add some raster op routines for FORTH turtle graphcis
2025-12-10 15:23:30 -08:00
David Schmenk f987458a15 Use fractional coordinates to improve angular movement accuracy 2025-12-09 09:47:34 -08:00
David Schmenk 1286daff45 Why am I having problems editing this script? 2025-12-07 14:57:52 -08:00
David Schmenk 9891eec8cd Why haven't I ever had the problem with the filename before? 2025-12-07 14:39:06 -08:00
David Schmenk 2955e07d93 Fix TEXT hack to check that it is already defined 2025-12-04 04:36:44 -08:00
David Schmenk 786bb692f6 Hack fix for crashing textmode set from hgrlib 2025-12-04 04:28:51 -08:00
David Schmenk c4b98f1866 Increase symbol table and increase free memory for 64K VM 2025-12-03 19:57:24 -08:00
David Schmenk 6b4017abb1 Fix extended clip line error and add mixed hires mode turtle 2025-12-03 09:02:22 -08:00
David Schmenk 1413ddd30a Fix sin/cos accuracy 2025-12-02 17:51:09 -08:00
David Schmenk 73bf667236 make FORTH callable from PLASMA 2025-12-02 16:28:51 -08:00
David Schmenk 1dd707dcee Remove unused tilebuf init 2025-12-02 10:01:51 -08:00
David Schmenk 43c5ed5839 Break out HGR libraries into separate includes for memory savings 2025-12-02 09:59:34 -08:00
David Schmenk ca87c5b678 Update turtle test 2025-12-01 19:55:16 -08:00
David Schmenk af2e3143f6 Add rounding to sin/cos calc to improve accuracy 2025-12-01 19:24:44 -08:00
David Schmenk 15488e61c7 Add hires turtle graphics sample 2025-12-01 17:51:04 -08:00
David Schmenk 4172c2c5e4 Move and increase symbol table 2025-12-01 16:53:04 -08:00
David Schmenk 77b94b0339 Initial turtle graphics library 2025-12-01 11:06:58 -08:00
David Schmenk 35dd0f0eb5 add SINCOS include 2025-11-30 13:58:45 -08:00
David Schmenk d4d8fab650 add scaled sin/cos calculation 2025-11-29 17:19:19 -08:00
David Schmenk a24ff6cc10 Add delay to portio.4th 2025-10-30 14:49:24 -07:00
David Schmenk 1647a06a21 Fix readport again 2025-10-30 14:37:38 -07:00
David Schmenk 997ab30f44 Fix portRead 2025-10-30 14:30:16 -07:00
David Schmenk 3271c85306 Optimize portio 2025-10-30 13:56:51 -07:00
David Schmenk 76f5915a98 remove wav files 2025-10-24 16:44:21 -07:00
David Schmenk 98f45b33dc Take 2 for PCM playback 2025-10-24 16:41:12 -07:00
David Schmenk a9a346b3b6 Somewhat passable PCM player 2025-10-20 15:34:54 -07:00
David Schmenk f1bff1e05d Fix initial line number in Editor command line processing 2025-10-18 11:54:51 -07:00
David Schmenk 3d9ac64b21 MouseText UI WIP 2025-10-17 19:20:37 -07:00
David Schmenk 7d090a92f6 Initial MouseText UI library 2025-10-16 12:41:22 -07:00