ref: e5f0c0798b44ffaa03772477138ff0ae4df4763b
dir: /softwords/forml.fr/
\ examples from FORML conference paper Nov 98 \ sadler .( loading FORML examples ) cr object --> sub c-example cell: .cell0 c-4byte obj: .nCells 4 c-4byte array: .quad c-byte obj: .length 79 chars: .name : init ( inst class -- ) 2dup object => init s" aardvark" 2swap --> set-name ; : get-name ( inst class -- c-addr u ) 2dup --> .name -rot ( c-addr inst class ) --> .length --> get ; : set-name { c-addr u inst class -- } u inst class --> .length --> set c-addr inst class --> .name u move ; : ? ( inst class ) c-example => get-name type cr ; end-class : test ." this is a test" cr ; ' test c-word --> ref testref \ add a method to c-word... c-word --> get-wid ficl-set-current \ list dictionary thread : list ( inst class ) begin 2dup --> get-name type cr --> next over 0= until 2drop ; set-current object subclass c-led c-byte obj: .state : on { led# inst class -- } inst class --> .state --> get 1 led# lshift or dup !oreg inst class --> .state --> set ; : off { led# inst class -- } inst class --> .state --> get 1 led# lshift invert and dup !oreg inst class --> .state --> set ; end-class object subclass c-switch : ?on { bit# inst class -- bit } ; end-class