diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-04-04 01:12:53 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-04-04 01:12:53 -0400 |
| commit | e1319be5ae7950f1ae10f0e6a69a76e96a794a5f (patch) | |
| tree | 8bc76f7c2ac3be403dd67d9efd246e21eeb79aac | |
| parent | afb4a065b6bee669df249790835c64ea9dc6b331 (diff) | |
| download | fujinet-chat-e1319be5ae7950f1ae10f0e6a69a76e96a794a5f.tar.gz | |
Tweak doc/dynamic-screens.txt.
| -rw-r--r-- | doc/dynamic-screens.txt | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/doc/dynamic-screens.txt b/doc/dynamic-screens.txt index fada83e..63d2f7c 100644 --- a/doc/dynamic-screens.txt +++ b/doc/dynamic-screens.txt @@ -28,12 +28,16 @@ Goals: loads of RAM. - Able to use the extra 6.4K you get if you boot without DOS (straight - from the FujiNet). + from the FujiNet), or any space between MEMLO and $2000 (if you boot + a DOS with a small memory footprint). *Maybe* also include whatever + space there is between the end of the client's code/data and the + start of cc65's stack (basically, the entire "heap" area). Whether + or not this happens depends on how large the client code gets: if + it's less than 1K free, it's not really worth the trouble. -- Able to use 3K of the RAM under the OS in an XL/XE machine. This would - be at $D800-$E3FF: the floating point pack and the font. If we could - think of a use for another 1K, it's available at $CC00 (the international - font). +- Able to use 4K of the RAM under the OS in an XL/XE machine. 3K of this + would be at $D800-$E3FF: the floating point pack and the font. Another + 1K is at $CC00 (the international font). - A *single* executable that works on all of the above (no special fnchatxe.xex for extended RAM), meaning it has to detect the @@ -106,14 +110,15 @@ Free Line - a line that isn't being used by any screen. All the sets up the pointers in all the lines. Closing a screen releases all its used lines into the pool's free line list. -Pool - A (possibly non-contiguous( region of memory available for lines. +Pool - A (possibly non-contiguous) region of memory available for lines. Each pool has a bank number, a count of unused lines, and a linked list of the unused lines in the pool. Pool 0 is in main memory, is always at least 16K, and can be up to 26880 bytes in size (using - 4K of under-the-OS RAM for an XL/XE, plus the space from $0700 to $2000 - if DOS is not booted). The other pools consist of entire banks, 16K - apiece, one per bank. Each screen is created in one pool and cannot - be moved to another pool. + 4K of under-the-OS RAM for an XL/XE, plus any space from MEMLO + to $2000 if DOS is not booted, or if a DOS with low MEMLO is + booted). The other pools consist of entire banks, 16K apiece, one + per bank. Each screen is created in one pool and cannot be moved to + another pool. Initialization: @@ -340,7 +345,7 @@ just hypothetical code (final implementation may look different). /* if each pool is 16K, that's 512K, not bad. however, overhead. maybe limit this to something like 20 (128K extended = 16, plus the big - pool in main bank, plus the potential smaller pools at $0700 and + pool in main bank, plus the potential smaller pools at MEMLO and $d800. */ #define MAX_POOLS 32 |
