From d3cad7db22e2d3390193f43211f9078edb08ae79 Mon Sep 17 00:00:00 2001 From: 4am Date: Sat, 3 Mar 2018 09:46:36 -0500 Subject: [PATCH] add WGReset --- Documentation.md | 14 ++++++++++++++ WeeGUI_MLI.s | 1 + weegui.dsk | Bin 143360 -> 143360 bytes weegui.s | 32 +++++++++++++++++++++++--------- 4 files changed, 38 insertions(+), 9 deletions(-) diff --git a/Documentation.md b/Documentation.md index 99d6af5..51d3866 100644 --- a/Documentation.md +++ b/Documentation.md @@ -1121,6 +1121,20 @@ X: WGExit +

+ +####WGReset +Deallocate all WeeGUI views and strings. This is called automatically during WeeGUI startup, but you can call it yourself at any time if you want to "start over" with no views. This does not clear the screen or repaint anything. + + + +
AssemblyApplesoft
+X:		WGReset
+
+Not available
+
+ +

- - - diff --git a/WeeGUI_MLI.s b/WeeGUI_MLI.s index 1d3bac3..fc614fc 100644 --- a/WeeGUI_MLI.s +++ b/WeeGUI_MLI.s @@ -73,4 +73,5 @@ WGSetContentWidth = 78 WGSetContentHeight = 80 WGStrokeRoundRect = 82 WGCreateRadio = 84 +WGReset = 86 diff --git a/weegui.dsk b/weegui.dsk index f2848868e7d005ad23c51cd344953a9287ba5d4a..5c6890c8d22361bb6d4641aca1b77342a30b5c66 100644 GIT binary patch delta 5543 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 b3G7W@qaM5j9vpkIKWBXU=SP2T`0@V(jtnjp delta 5450 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 XdJ6uZyMV->4b14Ddij-?b^rbUcxMUL diff --git a/weegui.s b/weegui.s index 64133d1..71a859e 100644 --- a/weegui.s +++ b/weegui.s @@ -91,10 +91,24 @@ WGInit: ; sta LINNUML ; jsr SETHI - jsr WG80 ; Enter 80-col text mode - jsr WGInitApplesoft ; Set up Applesoft API + jsr WG80 ; Enter 80-col text mode + jsr WGInitApplesoft ; Set up Applesoft API - ldy #15 ; Clear our block allocators + RESTORE_AXY + + jmp WGReset + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; WGReset +; Reset views and strings. Called from WGInit during app startup. +; Can also be called at any time to "start over" with no views. +; (Does not clear screen or repaint.) +; +WGReset: + SAVE_AXY + + ldy #15 ; Clear our block allocators WGInit_clearMemLoop: tya asl @@ -103,18 +117,18 @@ WGInit_clearMemLoop: asl tax lda #0 - sta WG_STRINGS,x + sta WG_VIEWRECORDS+2,x + sta WG_STRINGS,x dey bpl WGInit_clearMemLoop - lda #$ff - sta WG_PENDINGACTIONVIEW - sta WG_FOCUSVIEW - + lda #$ff + sta WG_PENDINGACTIONVIEW + sta WG_FOCUSVIEW + RESTORE_AXY rts - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGExit ; Cleanup Should be called once at app shutdown