From 80f6662ede8f1afd8d10dc46c452774409b0c573 Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Sat, 6 Jan 2018 17:50:22 -0800 Subject: [PATCH] Moved WeeGUI to HGR2 in memory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Trying to co-exist with ProDOS, BASIC.SYSTEM and Applesoft at the top of memory was giving me too many gray hairs. WeeGUI apps shouldn’t need the HGR2 page, so we’re going to live there from now on. --- Documentation.md | 11 +++++------ Makefile | 2 +- V2Make.scpt | Bin 4028 -> 3984 bytes WeeGUI_MLI.s | 2 +- weegui.dsk | Bin 143360 -> 143360 bytes weegui.s | 35 +++-------------------------------- 6 files changed, 10 insertions(+), 40 deletions(-) diff --git a/Documentation.md b/Documentation.md index dc7b69b..f506c79 100644 --- a/Documentation.md +++ b/Documentation.md @@ -75,16 +75,15 @@ With either language, WeeGUI protects itself using ProDOS's memory page reservat ####Memory Map -WeeGUI is 6k in size, and lives at the top of main memory, right under ProDOS. For an experimental version that lives primarily in the auxiliary memory bank, see Appendix A. +WeeGUI is about 7k in size, and lives on top of the second hires page. The assumption is that, if you're making an 80-column-text-based GUI program, you don't _also_ need fancy hi-res page flipping animations. For an experimental version that lives primarily in the auxiliary memory bank, see Appendix A. - - - - - + + + +
$FFFF
...
$BFFFProDOS
$9600ProDOS
$95FFWeeGUI
$7B00WeeGUI
$7AFFHIMEM
$9600-$BFFFProDOS
$5B0F-$95FFApplesoft
$4000-$5B0EWeeGUI
$3FFFHi-Res 1
...
$0000
diff --git a/Makefile b/Makefile index 85be004..7e35274 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ CL65=cl65 AC=AppleCommander.jar -ADDR=7800 +ADDR=4000 ADDRDEMO=6000 PGM=weegui diff --git a/V2Make.scpt b/V2Make.scpt index b190355ff8cd5d89582290fc0f6f83f0e8e8bb64..450912d178ff169af722b434778e7261581890d2 100644 GIT binary patch delta 137 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 delta 5218 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 diff --git a/weegui.s b/weegui.s index 40d7dfb..026741f 100644 --- a/weegui.s +++ b/weegui.s @@ -7,7 +7,7 @@ ; -.org $7800 +.org $4000 ; Common definitions @@ -80,39 +80,10 @@ WGEntryPointTable: WGInit: SAVE_AXY - ; Reserve our memory in the ProDOS allocator bitmap - ; - ; See section 5.1.4 in the ProDOS 8 Technical Reference Manual - ; for an explanation of these values. We're reserving memory - ; pages $78-$94 so that ProDOS won't use our memory for file - ; buffers, or allow Applesoft to step on us - ; - ; Byte in System Bitmap : Bit within byte - ; 0f:100 - ; 0f:011 - ; 0f:010 - ; 0f:001 - ; 0f:000 - ; 10:111 .. 10:000 - ; 11:111 .. 11:000 - ; 12:111 - ; 12:110 - ; 12:101 - ; 12:100 - ; 12:011 - ; 12:010 -; lda #%00001111 -; tsb MEMBITMAP + $0f -; lda #%11111111 -; tsb MEMBITMAP + $10 -; tsb MEMBITMAP + $11 -; lda #%11111100 -; tsb MEMBITMAP + $12 - ; Protect us from Applesoft by setting up HIMEM -; lda #$78 ; 7800 (really 77ff) +; lda #$3f ; 4000 (really 3fff) ; sta LINNUMH -; lda #$00 +; lda #$ff ; sta LINNUML ; jsr SETHI