That's exactly correct! Let me help you out with an example that I use in Sandpaper:
Code: [...]
StartAskUsername:
CloseGUIStack()
OpenGUIStack()
ld hl,UsernameWinData
call PushGUIStacks
GUIFindThis(1)
ld de,10
add hl,de
ld de,MyUsername
ld bc,8
ex de,hl
ldir
GUIMouse(0)
StartAskUsernameProcess:
call ResetAppPage
GUIFindThis(1)
ld de,10
add hl,de
ld a,(hl)
or a
jp z,StartAskUsername
ld de,MyUsername
ld bc,8
ldir
Notice the copying from MyUsername into the GUI, and the later copying of MyUsername out of the GUI. The GUI itself is this:
Code: ;--------------------------------------------------------------------------------
; Username input window stuff
;--------------------------------------------------------------------------------
UsernameWinData:
.dw UsernameWinDataE-UsernameWinData
.db GUIRSmallWin
.db 5,5
.db %01100000
.db %10010000
.db %11110000
.db %10010000
.db %11110000
.db "User/Calc Name",0
UsernameWinDataE:
UsernameWinButtons:
.dw UsernameWinButtonsE-UsernameWinButtons
.db GUIRWinButtons
.db %00100000
.dw 0, 0
.dw StartAskUsernameProcess
UsernameWinButtonsE:
UsernameIn:
.dw UsernameInE-UsernameIn
.db GUIRTextLineIn
.db 19,1
.db 50
.dw 8
.dw 0
.db 0,0,0,0,0,0,0,0,0
UsernameInE:
UsernameTextPrompt1:
.dw UsernameTextPrompt1E-UsernameTextPrompt1
.db GUIRText
.db 1,1,0
.db "User:",0
UsernameTextPrompt1E:
UsernameTextPrompt2:
.dw UsernameTextPrompt2E-UsernameTextPrompt2
.db GUIRWrappedText
.db 1,9,78,0
.db "Other calcs will see you",$D6
.db "with this name",0
UsernameTextPrompt2E:
UsernameSetButton:
.dw UsernameSetButtonE-UsernameSetButton
.db GUIRButtonText
.db 55,31
.dw StartAskUsernameProcess
.db "Apply",0
UsernameSetButtonE:
.db $ff,$ff