Hi...
to get things to a point where smaller projects can be split off OpenBIOS allowing easier and more wide-spread development, we should change paflof to some point where it is usable for development... Some random thoughts that are written down below. Please comment on this.. We got to get it going asap...
* according to IEEE 1275 paflof needs to be able to parse words case independant. To achieve this we have to change parse word to uppercase a word before it is looked up. hex : uppercase ( char -- uppercasechar ) dup 61 7a between 20 - ; : uppercases ( addr len -- ) bounds do i c@ uppercase i c! /c +loop ; PARSE-WORD should then contain 2DUP UPPERCASES CHAR uses PARSE-WORD illegaly. it should be replaced by the expanded version of the current PARSE-WORD implementation.
* paflof needs load_dictionary and dump_dictionary. for bootstrapping it will be compiled with a primword + minimal dictionary created by the preprocessor. When this is done, the words are defined in normal forth, compiled to dictionary and then the dictionary is dumped. Putting more words into preprocessor magic only bloats this part of the implementation and does not make sense from a project point of view (Several people would have to work on the same part of code, which Segher does not prefer to see anyways)
* Having different implementations of load_dictionary will allow us to use either the preprocessor based dictionary or a dumped one, depending on which dictionary target file is linked. In a flashed system load_dictionary would only change the dictionary pointer to a certain address in ram or rom.
* The dictionary should be position independant. This will allow to relocate it at will in the flashed bios later on. The host version of paflof should be able to load the dictionary from a plain file at any position. Some enhancements for the flashed version of paflof come to my mind, i.e. having the choice between a full blown and a backup dictionary, i.e comparable to the emergency bios part in current legacy implementations.
* The prim words are part of paflof, not the dictionary, logically seen. It does not make sense to make them position independant, as this would probably hurt performance on broken architectures like x86. We need a DOPRIM to connect the prim words to the dictionary then.
* Therefore paflof should be stripped down to only contain words needed for bootstrapping the next abstraction level: the forth dictionary.
Regards, Stefan