( lcodes day 11.05.2001 )

\ processing launch codes
\ use this lib carefully

0 enum lcode:

lcode: CmdNormalLaunch
lcode: CmdFind
lcode: CmdGoTo
lcode: CmdSyncNotify
lcode: CmdTimeChange
lcode: CmdSystemReset
lcode: CmdAlarmTriggered
lcode: CmdDisplayAlarm
lcode: CmdCountryChange    
lcode: CmdSyncRequestLocal 
lcode: CmdSaveData         
lcode: CmdInitDatabase     
lcode: CmdSyncCallApplicationV10
lcode: CmdPanelCalledFromApp  
lcode: CmdReturnFromPanel     
lcode: CmdLookup              
lcode: CmdSystemLock          
lcode: CmdSyncRequestRemote   
lcode: CmdHandleSyncCallApp   
lcode: CmdAddRecord           
lcode: CmdSetServiceID   
lcode: CmdGetServiceID   
lcode: CmdGetServiceList 
lcode: CmdGetServiceInfo 
lcode: CmdFailedAppNotify
lcode: CmdEventHook      
lcode: CmdExgReceiveData 
lcode: CmdExgAskUser     
                  
50 enum lcode2:

lcode2: CmdURLParams 
lcode2: CmdNotify    
lcode2: CmdOpenDB    
lcode2: CmdAntennaUp 
lcode2: CmdGoToURL   

: SetupLCHandler ( cfa -- )
   2 t-w!
;

: _cs
   r> dup t> dup w@
   swap 2+ swap
   rot over + 2+ aligned >r
;

: cs" ( "ccc" -- )
\ store string into threaded
\ code resource
  [char] " parse
  postpone _cs
  2dup + 0 swap c!
  dup t-w,
  1+ aligned \ include zero
  there swap dup tdp +!
  >t-move
; immediate

\eof
\ example:

api: PrefSetAppPreferencesV10
\ store last launch code into
\ preferences

: >store ( x )
   '4tcd' 1
   rot >r rp@ >abs 4
   PrefSetAppPreferencesV10
   rdrop
;

:noname 
( PBP prevGlob GlobPtr l_code -- ret_code )
\ first 3 args - abs!
\ warning! don't use here data
\ space of FORTH!
  >store 0
; SetupLCHandler

\ then try to get prefs:
api: PrefGetAppPreferencesV10

: getPref ( -- f )
   '4tcd' 1 here >abs 4
   PrefGetAppPreferencesV10
;