1 \ tag: FCode table setup
3 \ this code implements an fcode evaluator
4 \ as described in IEEE 1275-1994
6 \ Copyright (C) 2003 Stefan Reinauer
8 \ See the file "COPYING" for further information about
9 \ the copyright and warranty status of this work.
14 : undefined-fcode ." undefined fcode word." cr ;
15 : reserved-fcode ." reserved fcode word." cr ;
21 : n['], ( n <word> -- )
29 create fcode-master-table
31 f n['], reserved-fcode
177 ['], convert \ reserved (compatibility)
239 11 n['], reserved-fcode
244 8 n['], reserved-fcode
256 8 n['], reserved-fcode
274 ['], diagnostic-mode?
276 ['], memory-test-suite
282 ['], decode-phys \ 128
285 ['], interpose \ extension (recommended practice)
286 4 n['], reserved-fcode
289 1e n['], reserved-fcode
296 ['], frame-buffer-busy?
303 ['], insert-characters
304 ['], delete-characters
308 ['], frame-buffer-adr
313 3 n['], reserved-fcode
320 10 n['], reserved-fcode \ fb1 words
321 ['], fb8-draw-character
322 ['], fb8-reset-screen
323 ['], fb8-toggle-cursor
324 ['], fb8-erase-screen
325 ['], fb8-blink-screen
326 ['], fb8-invert-screen
327 ['], fb8-insert-characters
328 ['], fb8-delete-characters
329 ['], fb8-insert-lines
330 ['], fb8-delete-lines
333 4 n['], reserved-fcode \ reserved
334 7 n['], reserved-fcode \ VME-bus support
335 9 n['], reserved-fcode \ reserved
341 5c n['], reserved-fcode \ 1a5-200 reserved
358 ['], firmware-version
370 ['], get-inherited-property
372 ['], get-package-property
383 4 n['], reserved-fcode \ 22a-22d
388 2 n['], reserved-fcode \ 22e-22f
406 ['], left-parse-string \ 240
429 7 n['], reserved-fcode \ 241-247 (Part of IEEE1275 64-bit draft standard)
431 c n['], reserved-fcode \ 249-254 (Part of IEEE1275 64-bit draft standard)
435 here fcode-master-table - constant fcode-master-table-size
438 : nreserved ( fcode-table-ptr first last xt -- )
440 2dup swap i cells + !
446 800 cells alloc-mem to fcode-sys-table
449 dup 0 5ff ['] reserved-fcode nreserved \ built-in fcodes
450 dup 600 7ff ['] undefined-fcode nreserved \ vendor fcodes
452 \ copy built-in fcodes
453 fcode-master-table swap fcode-master-table-size move
456 : (init-fcode-table) ( -- )
457 fcode-sys-table fcode-table 800 cells move
459 fcode-table 800 fff ['] undefined-fcode nreserved
462 ['] (init-fcode-table) to init-fcode-table