diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/dynamic-screens.txt | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/doc/dynamic-screens.txt b/doc/dynamic-screens.txt index 065f28c..f6a0c89 100644 --- a/doc/dynamic-screens.txt +++ b/doc/dynamic-screens.txt @@ -305,6 +305,8 @@ Milestones: things that will have to happen to make this a reality. code for size, though, it's going to be replaced. See doc/diet.txt for details/progress on this. + Status: ongoing, but done enough for now. + 2. Split the code/BSS/etc into high and low segments, so it lives from $2000 to $3FFF (low, 8K) and $8000 to $BFFF (high, 16K). This puts the primary screen memory area right where the XE bankswitching @@ -320,6 +322,8 @@ Milestones: things that will have to happen to make this a reality. code', the cc65 stack, and the BSS. Everything else will be in a 'high code' (and possibly 'high BSS') segment, from $8000 to $BFFF. + Status: DONE! + 3. Rip out all the existing screen code and replace it with a simplified form of the new scheme. To start with, only 1-5 pools in bank 0, but the display list modification code can be completed. The rest of @@ -328,7 +332,13 @@ Milestones: things that will have to happen to make this a reality. defining new hotkeys for screen numbers above 7, and making the status bar variable sized (show only the number of screens we have enough RAM for, based on the minimum size being 23 or 46 - lines). + lines). Better yet, don't even show the inactive or unused (grey + dot or number) at all, which would free up a color register. + Figure out some way to handle having more screen numbers than we + could fit in a GR.1 line. 2 lines? Use a GR.0 line (what, PMG and a + DLI for the colors? rather not)? + + Status: barely started... 4. Learn more than I currently know about bankswitching (I know the 130XE, but what's the difference between a Rambo and a Compy Shop @@ -369,7 +379,7 @@ just hypothetical code (final implementation may look different). with 256K, up to 2 screens per pool. with 128K, up to 4. with 64K, we only get 1 large pool. - with 48K, we only get 1 pool. + with 48K, we only get 1 pool. */ #define MAX_SCREENS 32 @@ -399,6 +409,9 @@ typedef struct { // u16 start; /* 0 = not in use */ // u16 end; char screen_count; /* maybe set to $ff for "not in use" */ + // int line_count; /* maybe better to use line count instead of + screen count to decide which pool to create + new screens in? */ u8 bank; /* probably this is just the PORTB value */ line_t *free_list; /* when this is null, the pool has no free lines */ } pool_t; |
