Compare commits

...

50 Commits
v1.0 ... master

Author SHA1 Message Date
4am
0528bef255
Merge pull request #22 from peterferrie/master
really preserve swap during initial header load
2019-03-18 18:31:32 -04:00
Peter Ferrie
058ad84ca0 really preserve swap during initial header load 2019-03-18 15:28:46 -07:00
4am
ed27b90a7f
Merge pull request #21 from peterferrie/master
add memory-search option
2018-05-25 08:26:44 -04:00
Peter Ferrie
093776ae8a avoid race condition 2018-04-10 21:25:12 -07:00
Peter Ferrie
c3238a4002 add memory-search option 2018-04-10 11:42:14 -07:00
4am
1b8e0e3083 r4 2017-01-23 14:00:25 -05:00
4am
e479eac6af r4 2017-01-23 13:59:35 -05:00
4am
30af162c18 Merge pull request #20 from peterferrie/master
fix the header corruption on single-page autosave, fix importa nd page 3 state, faster l/r scroll
2017-01-23 13:56:57 -05:00
Peter Ferrie
f7f330b6e3 fix import and page 3 state, faster l/r scroll 2017-01-22 21:32:23 -08:00
Peter Ferrie
d93528716b fix the header corruption on single-page autosave 2017-01-20 13:38:30 -08:00
4am
1a16365dc5 prep for revision 03 release 2017-01-12 22:24:11 -05:00
4am
652f6e5b21 Merge pull request #19 from peterferrie/master
fix case mapping on II+
2017-01-12 22:06:51 -05:00
Peter Ferrie
c12611251a fix case mapping on II+ 2017-01-12 19:05:15 -08:00
4am
43bfa0a80d Merge pull request #18 from peterferrie/master
correct page display, limit to 99 pages
2016-12-04 09:05:51 -05:00
Peter Ferrie
d100bf17b3 cosmetic, suppress redundant warnings 2016-12-03 14:03:58 -08:00
Peter Ferrie
0666fd5af0 work around the Diversi-DOS bugs...
...of which there are many, but it works!
2016-12-02 11:28:29 -08:00
Peter Ferrie
b22f6a5dc8 don't allow add until page 1 is written to disk 2016-11-25 16:22:03 -08:00
Peter Ferrie
de691da719 correct page display, limit to 99 pages 2016-11-25 10:50:23 -08:00
4am
4e5f2c0cf3 Merge pull request #13 from peterferrie/master 2016-11-24 12:46:54 -05:00
Peter Ferrie
e0a89cf88e a bit smaller 2016-11-23 15:17:30 -08:00
Peter Ferrie
ff6e099b31 more size optimisation 2016-11-22 23:30:18 -08:00
Peter Ferrie
be7c7e431a size optimisation. don't look. 2016-11-22 23:17:51 -08:00
Peter Ferrie
7239f37a2c cosmetic fixes, reduced banked size 2016-11-22 22:40:43 -08:00
Peter Ferrie
1c1541a1a7 work around critical DiversiDOS bug
bug: read after write without intervening close results in *write*
instead of read!
also document expected active registers for functions which accept them
2016-11-22 21:20:20 -08:00
Peter Ferrie
bf6d9450ed correct serial number 2016-11-22 16:41:07 -08:00
Peter Ferrie
a092630ed0 multi-screen and page-numbering 2016-11-22 16:39:34 -08:00
Peter Ferrie
63e8b7a8f5 highlight with inverse not flash 2016-11-18 11:05:16 -08:00
4am
dc19f8f8ec Merge pull request #12 from peterferrie/master
switch to key-dispatch table, add line highlighting
2016-11-17 21:59:16 -05:00
Peter Ferrie
1606caf407 switch to key-dispatch table, add line highlighting
dispatch table by key allows more keys without causing near-branch
issues;
line highlighting has "smart" II+ cursor that flashes over inverse space
also shrink loader a bit
2016-11-17 16:53:00 -08:00
4am
5e33176d29 update strings for v3 2016-11-17 11:59:42 -05:00
4am
3782dc9a1c Merge pull request #11 from peterferrie/master
Master
2016-11-17 08:58:26 -05:00
Peter Ferrie
829b9ae9f5 load installer over loader to free page 8 2016-11-16 22:53:50 -08:00
Peter Ferrie
282d890abd refactor for smaller code, back under 2kb 2016-11-16 21:32:28 -08:00
4am
e8002eb5f8 doc updates for v2 2016-11-16 17:12:48 -05:00
4am
e4477f8499 update docs and visible strings for v2 release 2016-11-16 14:37:26 -05:00
4am
541e284e20 Merge pull request #10 from peterferrie/master
a bit smaller, and fix autosave bug
2016-11-16 13:58:41 -05:00
Peter Ferrie
204f20ec40 a bit smaller, and fix autosave bug 2016-11-16 10:57:20 -08:00
4am
641c243d6a Merge pull request #9 from peterferrie/master 2016-11-16 13:45:28 -05:00
Peter Ferrie
e2c3423df1 Merge branch 'master' of https://github.com/a2-4am/4live 2016-11-15 22:57:38 -08:00
Peter Ferrie
1986f5ce04 refactor to reduce size
page 2 is now free after load
2016-11-15 22:56:32 -08:00
4am
ba3580516c fix automated build of disk image to patch in stubbed file length of 4live binary 2016-11-15 21:39:19 -05:00
4am
715fca1992 Merge pull request #8 from peterferrie/master 2016-11-15 16:09:11 -05:00
Peter Ferrie
fdb73d566e switch to overlay method
loader, installer, editor are now modular within the same file;
$900-95FF preserved across reboot;
$800-BEFF available in DiversiDOS after load ($800-95FF for DOS 3.3)
2016-11-14 23:23:57 -08:00
4am
259726d507 build script fiddling 2016-11-12 13:03:56 -05:00
4am
90833f5a69 Merge pull request #7 from peterferrie/master
lowercase welcome text
2016-11-11 14:51:43 -05:00
Peter Ferrie
1f0514a2cb lowercase welcome text 2016-11-10 18:50:30 -08:00
4am
3b3672e249 Merge pull request #6 from peterferrie/master
v2, run from RAM bank
2016-11-10 19:55:34 -05:00
Peter Ferrie
021e6e6ada only use swap region in DiversiDOS 2016-11-10 16:19:41 -08:00
Peter Ferrie
b55382049e run from banked RAM 2016-11-10 15:35:25 -08:00
Peter Ferrie
89bb91a19c start work on v2, add lowercase support
must build lcase.a once first to produce lcase.ct
2016-11-07 20:53:07 -08:00
6 changed files with 1476 additions and 511 deletions

View File

@ -22,6 +22,7 @@ SRC=src
# project files
BLANKDISK=$(RES)/work.dsk
BUILDDISK=$(BUILD)/$(PGM).dsk
TEMPDISK=$(BUILD)/temp.dsk
# third-party tools required to build
# https://sourceforge.net/projects/acme-crossass/
@ -37,7 +38,10 @@ clean:
$(PGM):
mkdir -p $(BUILD)
$(ACME) -o $(BUILD)/$(PGM) $(SRC)/$(PGM).a
cd $(SRC) && $(ACME) -o ../$(BUILD)/$(PGM) $(PGM).a && cd -
cp $(BLANKDISK) $(BUILDDISK)
java -jar $(AC) -p $(BUILDDISK) $(A2PGM) B 0x8000 < $(BUILD)/$(PGM)
java -jar $(AC) -cc65 $(BUILDDISK) $(A2PGM) B < $(BUILD)/$(PGM)
rsync -a $(BUILDDISK) $(TEMPDISK)
(xxd -p -c256 $(TEMPDISK)| head -49; xxd -p -c256 $(BUILD)/$(PGM) | head -1; xxd -p -c256 $(TEMPDISK)| tail -510) | xxd -r -p > $(BUILDDISK)
rm -f $(TEMPDISK)
osascript $(BIN)/V2Make.scpt "`pwd`" $(BUILDDISK)

View File

@ -1,34 +1,48 @@
# 4live
# 4LIVE
4live is a scratchpad for keeping notes while you're working on your Apple II under DOS 3.3 or a compatible third-party DOS. The current version allows you to keep a 40x23 screen of freeform text, accessible at any time that DOS is in memory by hitting a global hotkey.
4LIVE is a scratchpad for keeping notes while you're working on your Apple II under DOS 3.3. The current version ("revision 03") allows you to keep up to 99 separate screens of freeform text, accessible at any time that DOS is in memory.
## System requirements
* Apple II+ or later
* 64K memory
* DOS 3.3 or compatible third-party DOS (tested with Pronto-DOS, Diversi-DOS, and Diversi-DOS 64K)
### Memory usage
When you first run 4LIVE, it will load only a small code stub in low memory, at $0232. This stub will load the rest of 4LIVE directly into LC RAM bank 1. Thereafter, 4LIVE uses $0309-$03CF in main memory and $D000-$DFFF in LC RAM bank 1. 4LIVE never uses LC RAM bank 2, auxiliary memory, or any other region in main memory.
## For users
Install 4live by typing `BRUN _4LIVE` from the BASIC prompt, or by executing it in your `HELLO` program.
Install 4LIVE by typing `BRUN _4LIVE` from the BASIC prompt, or by executing it in your `HELLO` program.
```10 PRINT CHR$(4);"BRUN _4LIVE"```
Now you can press `<Ctrl-@>` at any time to enter the 4live editor. This works from the BASIC prompt or the monitor -- even in the middle of typing a command -- as long as DOS is in memory and connected. (If you can do a `CATALOG`, DOS is connected.)
Now you can press `<Ctrl+@>` at any time to enter the 4LIVE editor. This works from the BASIC prompt or the monitor -- even in the middle of typing a command -- as long as DOS is in memory and connected. (If you can do a `CATALOG`, DOS is connected.)
Keyboard commands within the 4live editor:
Keyboard commands within the 4LIVE editor:
* `<Ctrl-@>` or `<Esc>` exits the 4live editor.
* Arrows move freely up, down, left, and right. On an Apple II Plus, you can use `<Ctrl-K>` and `<Ctrl-J>` in place of up and down arrows.
* `<Ctrl+@>` or `<Esc>` exits the 4LIVE editor.
* Arrows move freely up, down, left, and right. On an Apple II+, you can use `<Ctrl+K>` and `<Ctrl+J>` in place of up and down arrows.
* `<Return>` moves the cursor to the beginning of the next line. It does not erase any text on the current line. It will wrap around from the bottom of the screen to the top.
* `<Ctrl-N>` clears the editor screen and erases all your data.
* `<Ctrl-I>` imports the "real" text screen you were looking at before you entered the editor (like taking a text screenshot). This overwrites the entire scratchpad and erases all your data.
* `<Ctrl+B>` toggles highlighting of the current line.
* `<Ctrl+T>` creates a new 4LIVE screen and switches to it.
* `<Ctrl+R>` switches to the previous 4LIVE screen.
* `<Ctrl+Y>` switches to the next 4LIVE screen.
* `<Ctrl+C>` clears the current 4LIVE screen.
* `<Ctrl+^>` imports the "real" text screen you were looking at before you entered the 4LIVE editor (like taking a text screenshot).
4live will automatically save the contents of your scratchpad on exit. (Currently it saves to the file `_4LIVE DATA`. You will see this file in the disk catalog.)
4LIVE will automatically save the contents of your screen whenever you switch screens or exit the 4LIVE editor. It saves everything to the file `_4LIVE DATA`. You will see this file in the disk catalog.
# 4live for developers
## For developers
4live is written in 100% 6502 assembly language, but it is developed on modern PCs (not in a "classic" IDE like Merlin-8). The source code is stored and managed in text files. These text files are assembled to executable code with [ACME](https://sourceforge.net/projects/acme-crossass/), then transferred to a disk image (`.dsk` file) with [AppleCommander](http://applecommander.sourceforge.net/). You can mount this disk image in any Apple II emulator.
4LIVE is written in 100% 6502 assembly language, but it is developed on modern PCs (not in a "classic" IDE like Merlin-8). The source code is stored and managed in text files. These text files are assembled to executable code with [ACME](https://sourceforge.net/projects/acme-crossass/), then transferred to a disk image (`.dsk` file) with [AppleCommander](http://applecommander.sourceforge.net/). You can mount this disk image in any Apple II emulator.
If you are on Mac OS X and have the [Virtual II](http://virtualii.com/) emulator, you can use the included Applescript to mount the `.dsk` file and reboot the emulator automatically. The included `Makefile` does this by default (after running ACME and AppleCommander).
Thus, during development, my testing cycle goes like this:
1. Edit `.a` source code file in modern editor
1. Edit `.a` source code file in any modern text editor
2. Run `make`
3. Test in Virtual II
4. GOTO 1

Binary file not shown.

File diff suppressed because it is too large Load Diff

4
src/lcase.a Normal file
View File

@ -0,0 +1,4 @@
!to "lcase.ct", plain
*=0
!for i, 128 {!byte i+127}
!for i, 256-128 {!byte i+127}

1
src/lcase.ct Normal file
View File

@ -0,0 +1 @@
€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>