\ appprefs  2001/5/5 KDJ
\ 
\ THIS CODE IS PROVIDED "AS IS"
\ WITHOUT WARRANTY OF ANY KIND.
\ THE AUTHOR SHALL NOT BE LIABLE
\ FOR ANY CLAIM IN CONNECTION
\ WITH THIS CODE.
\ 
\ This code may be used, copied,
\ modified, or distributed for any
\ purpose.

needs struct
needs cleanbyte

decimal

: begin-prefs ( -- adr )
  align here ;

: calc-prefs-size ( adr -- adr u )
  align here over - ;

struct
  1 cells field >prefsVersion
  2 cells field >prefsType
  1 cells field >prefsSize
  1 cells field >prefsBegin
end-struct PrefsInfo

: end-prefs ( adr type. version "name" -- )
  >r 2>r calc-prefs-size 2r> r>
  create , , , , ,
does> ( size &prefs. version type. )
  dup >r
  >prefsSize @
  r@ >prefsBegin @ >abs
  r@ >prefsVersion @
  r> >prefsType 2@ ;

: save-prefs ( size &prefs. version type. )
  PrefSetAppPreferencesV10 ;

: restore-prefs ( size &prefs. version type. -- f )
  PrefGetAppPreferencesV10 byte>flag ;
