[OpenBIOS] r653 - in cpu/x86: . pc/olpc

svn at openbios.org svn at openbios.org
Sat Sep 29 21:40:22 CEST 2007


Author: wmb
Date: 2007-09-29 21:40:22 +0200 (Sat, 29 Sep 2007)
New Revision: 653

Added:
   cpu/x86/pc/olpc/devsmall.fth
   cpu/x86/pc/olpc/fwsmall.bth
   cpu/x86/pc/olpc/smallconfig.fth
   cpu/x86/small.bth
Log:
Check in experimental small-Forth build scripts to avoid losing them.


Added: cpu/x86/pc/olpc/devsmall.fth
===================================================================
--- cpu/x86/pc/olpc/devsmall.fth	                        (rev 0)
+++ cpu/x86/pc/olpc/devsmall.fth	2007-09-29 19:40:22 UTC (rev 653)
@@ -0,0 +1,223 @@
+\ See license at end of file
+purpose: Load device drivers according to configuration definitions
+
+: gx?  ( -- flag )  h# 4c000017 msr@ drop  4 rshift  2 =  ;
+: lx?  ( -- flag )  h# 4c000017 msr@ drop  4 rshift  3 =  ;
+
+fload ${BP}/cpu/x86/pc/isaio.fth
+
+fload ${BP}/cpu/x86/pc/olpc/vsapci.fth	\ PCI configuration access with some hacks
+
+0 0  " "  " /"  begin-package
+   fload ${BP}/cpu/x86/pc/mappci.fth	\ Map PCI to root
+   fload ${BP}/dev/pcibus.fth		\ Generic PCI bus package
+   fload ${BP}/cpu/x86/pc/olpc/pcinode.fth	\ System-specific words for PCI
+end-package
+stand-init: PCI host bridge
+   " /pci" " init" execute-device-method drop
+;
+
+fload ${BP}/dev/pciprobe.fth		\ Generic PCI probing
+
+\ Use the CPU chip's Time Stamp Counter for timing; it does just what we want
+fload ${BP}/cpu/x86/tsc.fth
+
+stand-init:
+   d# 1000 rounded-/ dup  to ms-factor                  ( cpu-clock-khz )
+   d# 1000 rounded-/      to us-factor                  ( )
+;
+
+[ifdef] use-root-isa
+0 0  " "  " /" begin-package
+   fload ${BP}/cpu/x86/pc/isabus.fth	\ ISA Bus Bridge under root node
+end-package
+[then]
+
+[ifdef] use-pci-isa
+
+[ifdef] addresses-assigned
+[ifdef] use-pci-isa
+\ This must precede isamisc.fth in the load file, to execute it first
+fload ${BP}/cpu/x86/pc/moveisa.fth
+[then]
+[then]
+
+0 0  " 0"  " /pci" begin-package
+   fload ${BP}/dev/pci/isa.fth		\ ISA bus bridge under PCI node
+   fload ${BP}/dev/pci/isamisc.fth
+end-package
+
+[then]
+
+1 [if]
+dev /interrupt-controller
+h# 20 to vector-base0
+h# 28 to vector-base1
+device-end
+
+warning @ warning off
+: probe-pci  ( -- )
+   probe-pci
+   " /pci" " make-interrupt-map" execute-device-method drop
+;
+warning !
+
+0 0  dropin-base <# u#s u#>  " /" begin-package
+   " flash" device-name
+
+   h# 10.0000
+   dup value /device
+   constant /device-phys
+   my-address my-space /device-phys reg
+   fload ${BP}/cpu/x86/pc/flashpkg.fth
+
+   : init  ( comp$ /device -- )
+      to /device  2>r
+      0 0 encode-bytes
+      2r> encode-string encode+
+      " rom" encode-string encode+
+      " compatible" property
+[ifdef] enable-flash-select      
+      /device /device-phys <>  if  enable-flash-select  then
+[then]
+   ;
+
+end-package
+" rom"  dropin-base <# u#s " /flash@" hold$ u#>  $devalias
+
+: foo-save-state  here 5 +  ;  ' foo-save-state to save-state
+
+fload ${BP}/cpu/x86/forthint.fth	\ Low-level interrupt handling code
+fload ${BP}/dev/isa/irq.fth		\ ISA interrupt dispatcher
+fload ${BP}/cpu/x86/pc/isatick.fth	        \ Use ISA timer as the alarm tick timer
+
+[ifdef] resident-packages
+support-package: 16550
+fload ${BP}/dev/16550pkg/16550.fth  \ Serial port support package
+end-support-package
+[then]
+
+fload ${BP}/dev/pci/isaall.fth
+devalias com1 /isa/serial at i3f8:115200
+devalias sd /sd/disk
+
+
+dev /8042
+   patch false ctlr-selftest open
+device-end
+
+0 [if]
+0 0  " i70"  " /isa" begin-package   	\ Real-time clock node
+   fload ${BP}/dev/ds1385r.fth
+   8 encode-int  0 encode-int encode+    " interrupts" property
+   2 encode-int " device#" property
+end-package
+[then]
+
+fload ${BP}/cpu/x86/pc/cpunode.fth
+
+fload ${BP}/cpu/x86/pc/olpc/cmos.fth     \ CMOS RAM indices are 1f..ff , above RTC
+
+[if] 0
+[ifdef] use-null-nvram
+fload ${BP}/cpu/x86/pc/nullnv.fth
+stand-init: Null-NVRAM
+   " /null-nvram" open-dev  to nvram-node
+   ['] init-config-vars catch drop
+;
+[then]
+[then]
+
+fload ${BP}/cpu/x86/inoutstr.fth	\ Multiple I/O port read/write
+fload ${BP}/dev/isa/diaguart.fth	\ ISA COM port driver
+\ : inituarts ascii G uemit  ascii o uemit  ;  \ They are already on
+
+h# 3f8 is uart-base
+fload ${BP}/forth/lib/sysuart.fth	\ Use UART for key and emit
+
+[ifndef] save-flash
+: save-flash ;
+: restore-flash ;
+[then]
+
+\needs md5init  fload ${BP}/ofw/ppp/md5.fth                \ MD5 hash
+
+fload ${BP}/dev/olpc/kb3700/ecspi.fth      \ EC chip SPI FLASH access
+
+warning @ warning off
+: stand-init  stand-init  h# fff0.0000 to flash-base  ;
+warning !
+
+fload ${BP}/dev/olpc/kb3700/ecserial.fth   \ Serial access to EC chip
+
+fload ${BP}/dev/olpc/kb3700/ecio.fth       \ I/O space access to EC chip
+
+fload ${BP}/cpu/x86/pc/olpc/boardrev.fth   \ Board revision decoding
+
+fload ${BP}/cpu/x86/pc/olpc/mfgdata.fth      \ Manufacturing data
+
+fload ${BP}/dev/olpc/spiflash/spiflash.fth   \ SPI FLASH programming
+fload ${BP}/dev/olpc/spiflash/spiui.fth      \ User interface for SPI FLASH programming
+fload ${BP}/dev/olpc/spiflash/recover.fth    \ XO-to-XO SPI FLASH recovery
+: ofw-fw-filename$  " disk:\boot\olpc.rom"  ;
+' ofw-fw-filename$ to fw-filename$
+
+: +i encode-int encode+  ;  : 0+i  0 +i  ;
+
+fload ${BP}/cpu/x86/fb16-ops.fth
+fload ${BP}/ofw/termemu/fb16.fth
+0 0  " 1,1"  " /pci" begin-package
+   fload ${BP}/dev/olpc/dcon/dconsmb.fth         \ SMB access to DCON chip
+   fload ${BP}/dev/olpc/dcon/dcon.fth            \ DCON control
+   fload ${BP}/dev/geode/display/loadpkg.fth     \ Geode display
+
+   0 0 encode-bytes
+   h# 8200.0910 +i  0+i h# fd00.0000 +i  0+i h# 0080.0000 +i  \ Frame buffer
+   h# 8200.0914 +i  0+i h# fe00.0000 +i  0+i h# 0000.4000 +i  \ GP
+   h# 8200.0918 +i  0+i h# fe00.4000 +i  0+i h# 0000.4000 +i  \ DC
+   h# 8200.091c +i  0+i h# fe00.8000 +i  0+i h# 0000.4000 +i  \ VP
+   h# 8200.0920 +i  0+i h# fe00.c000 +i  0+i h# 0000.4000 +i  \ VIP (LX only)
+   " assigned-addresses" property
+
+end-package
+devalias screen /display
+
+0 0  " c,1"  " /pci" begin-package
+   fload ${BP}/dev/mmc/sdhci/sdhci.fth    \ SD host controller
+.( Gots to do init in sdhci.fth) cr
+   new-device
+      fload ${BP}/dev/mmc/sdhci/sdmmc.fth
+   finish-device
+end-package
+
+
+\ fload ${BP}/dev/geode/acpi.fth           \ Power management
+
+[ifdef] rom-loaded
+fload ${BP}/cpu/x86/pc/olpc/gpioinit.fth
+fload ${BP}/cpu/x86/pc/olpc/chipinit.fth
+[then]
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2006 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/x86/pc/olpc/fwsmall.bth
===================================================================
--- cpu/x86/pc/olpc/fwsmall.bth	                        (rev 0)
+++ cpu/x86/pc/olpc/fwsmall.bth	2007-09-29 19:40:22 UTC (rev 653)
@@ -0,0 +1,324 @@
+purpose: Build Open Firmware for OLPC
+\ See license at end of file
+
+dictionary: ${BP}/cpu/x86/build/kernel.dic
+command: &x86forth &dictionary &this
+in: builton.fth
+build-now
+
+
+fload ${BP}/cpu/x86/small.bth
+
+hex
+' $report-name is include-hook
+
+fload ${BP}/cpu/x86/pc/olpc/smallconfig.fth
+
+: headerless ;  : headers  ;  : headerless0 ;
+
+' (quit) to quit
+
+create debug-startup
+: \Tags [compile] \  ; immediate
+: \NotTags [compile] \  ; immediate
+
+fload ${BP}/cpu/x86/pc/segments.fth     \ Segment selectors (address spaces)
+
+: RAMbase  ( -- adr )  fw-virt-base  ;
+: RAMtop  ( -- adr )  RAMbase /fw-ram +  ;
+
+h# 00.0000 value    dp-loc	\ Set in patchboot
+: stacktop    ( -- adr )  RAMtop  ;
+: dict-limit  ( -- adr )  RAMtop  h# 06.0000 -  ;
+
+\ XXX What we should do is pass in the top address in SP, and have
+\ boot.fth allocate the user area by subtracting user-size.  But
+\ we need some way of finding it again for exception re-entry.
+\ prom-main-task is used in arch/pc/boot.fth .  The constant
+\ value is wired into the assembly code
+stacktop  user-size - constant prom-main-task	\ user area for main task
+
+0 value load-limit	\ Top address of area at load-base
+' 2drop to sync-cache
+
+def-load-base to load-base
+
+fload ${BP}/cpu/x86/msr.fth	        \ Access to machine specific registers
+
+h# 1000 to pagesize
+d# 12   to pageshift
+
+dev /
+1 encode-int  " #address-cells"  property
+device-end
+
+\ Memory management services
+fload ${BP}/ofw/core/memlist.fth	\ Resource list common routines
+fload ${BP}/ofw/core/showlist.fth	\ Linked list display tool
+fload ${BP}/ofw/core/allocph1.fth	\ S Physical memory allocator
+fload ${BP}/ofw/core/availpm.fth	\ Available memory list
+
+fload ${BP}/cpu/x86/pc/rootnode.fth	\ Platform-specific root node changes
+
+fload ${BP}/cpu/x86/pc/olpc/gpio.fth	\ Rudimentary GPIO driver
+fload ${BP}/cpu/x86/pc/olpc/probemem.fth	\ Memory probing
+
+[ifdef] virtual-mode
+fload ${BP}/cpu/x86/loadvmem.fth	\ /mmu node
+
+stand-init: MMU
+   " /mmu" open-dev mmu-node !
+;
+fload ${BP}/cpu/x86/pc/initdict.fth	\ Dynamic dictionary allocation
+[then]
+
+fload ${BP}/cpu/x86/crc32.fth		\ Assembly language Zip CRC calculation
+fload ${BP}/forth/lib/crc32.fth		\ High-level portion of CRC calculation
+
+[ifdef] resident-packages
+
+[ifdef] linux-support
+support-package: ext2-file-system
+   fload ${BP}/ofw/fs/ext2fs/ext2fs.fth	\ Linux file system
+end-support-package
+[then]
+
+[ifdef] jffs2-support
+support-package: jffs2-file-system
+   fload ${BP}/ofw/fs/jffs2/jffs2.fth	\ Journaling flash file system 2
+end-support-package
+[then]
+
+support-package: zip-file-system
+   fload ${BP}/ofw/fs/zipfs.fth		\ Zip file system
+end-support-package
+[then]
+
+\ Load file format handlers
+
+: call32 ;
+
+: release-load-area  ( boundary-adr -- )  drop  ;
+
+headerless
+[ifdef] virtual-mode
+: (initial-heap)  ( -- adr len )  sp0 @ ps-size -  dict-limit  tuck -  ;
+[else]
+: (initial-heap)  ( -- adr len )  RAMtop heap-size  ;
+[then]
+' (initial-heap) is initial-heap
+headers
+
+[ifdef] virtual-mode
+fload ${BP}/cpu/x86/pc/mmusetup.fth	\ Initial values for MMU lists
+dev /mmu
+: claim-rom  ( -- )
+   (initial-claim)
+   rom-pa  h# ffff.0000 over -  claim-virtual drop   \ ROM 1-1 map
+;
+' claim-rom to initial-claim
+dend
+[then]
+
+fload ${BP}/cpu/x86/pc/olpc/devsmall.fth
+
+\ fload ${BP}/cpu/x86/pc/olpc/countdwn.fth	\ Startup countdown
+
+fload ${BP}/cpu/x86/pc/boot.fth
+
+[ifdef] use-usb
+: usb-port-power-map  ( -- n )
+[ifdef] lx-devel
+   h# 3ea exit     \ USB4:PWR2  USB3:PWR1  USB2:PWR1  USB1:PWR1
+[then]
+   board-revision  h# b10  h# b2f between  if  \ B1 and B2
+      h# 3ab   \ USB4:PWR1  USB3:PWR1  USB2:PWR1  USB1:PWR2
+   else
+      \ A-test doesn't switch USB power, so the value doesn't matter.
+      \ preB3 and presumably later use this value
+      h# 3aa   \ USB4:PWR1  USB3:PWR1  USB2:PWR1  USB1:PWR1
+   then
+;
+fload ${BP}/cpu/x86/pc/olpc/usb.fth
+[then]
+
+\ false to stand-init-debug?
+true to stand-init-debug?
+
+hex
+: i-key-wait  ( ms -- pressed? )
+   cr ." Type 'i' to interrupt stand-init sequence" cr 
+   0  do
+      key?  if
+         key upc ascii I  =  if  true unloop exit  then
+      then
+      1 ms
+   loop
+   false
+;
+
+\ stand-init-debug?  [if]
+warning @  warning off 
+: init
+\ initial-heap add-memory
+   init
+
+   standalone?  if
+      disable-interrupts
+      d# 300
+      i-key-wait  if
+         ." Interacting" cr  hex interact
+      then
+
+      setup
+   then
+;
+\ warning !
+[then]
+
+' noop to .firmware
+
+: probe-all  ( -- )
+   probe-pci
+[ifdef] use-usb
+   probe-usb
+[then]
+;
+
+[ifdef] linux-support
+fload ${BP}/cpu/x86/pc/olpc/linux.fth
+[then]
+
+fload ${BP}/dev/null.fth
+
+[ifdef] olpc
+\ fload ${BP}/cpu/x86/pc/olpc/crypto.fth       \ Cryptographic image validation
+\ fload ${BP}/cpu/x86/pc/olpc/lzip.fth         \ Access zip images from memory
+\ fload ${BP}/cpu/x86/pc/olpc/security.fth
+[then]
+
+\ Eliminate 4 second delay in install console for the case where
+\ there is no keyboard.  The delay is unnecessary because the screen
+\ does not go blank when the device is closed.
+patch drop ms install-console
+
+: dcon-reset-all  ( -- )
+   " screen"  " dcon-off" ['] execute-device-method  catch  if
+      2drop 2drop
+   then
+
+   1. h# 5140.0017 wrmsr  \ DIVIL_SOFT_RESET MSR, 5536 page 367
+   begin again
+;
+' dcon-reset-all to reset-all
+
+alias reboot bye
+
+alias crcgen drop  ( crc byte -- crc' )
+fload ${BP}/cpu/x86/pc/saveabs.fth
+
+\ fload ${BP}/cpu/x86/pc/report.fth
+fload ${BP}/ofw/core/dualconsole.fth
+
+0 value game-key-mask
+
+: read-game-keys  ( -- )
+   board-revision h# b20 <  if
+      h# 100 to game-key-mask
+      exit
+   then
+
+   game-key@  dup to game-key-mask  if
+      ." Release the game key to continue" cr
+      begin  d# 100 ms  game-key@ 0=  until
+   then
+;
+
+: interpreter-init  ( -- )
+   hex
+   warning on
+   only forth also definitions
+
+   install-alarm
+
+   #line off
+
+\   .built cr
+;
+
+: console-start  ( -- )
+[ifdef] rom-loaded
+   video-map cr
+[then]
+   " screen" open-dev  ?dup  if
+      set-stdout
+\       logo-banner drop
+\       close-dev
+\       0 stdout !
+   then
+
+   install-dual-console
+
+\   ." nvramrc" cr
+\   use-nvramrc?  if  nvramrc safe-evaluate  then
+;
+: optional-startup  ( -- )
+[ifdef] use-usb
+   probe-usb
+   ?usb-keyboard
+[then]
+;
+
+: open-keyboard  ( -- )
+   " keyboard" open-dev  ?dup  if  set-stdin  then
+;
+
+
+: startup  ( -- )
+   standalone?  0=  if  exit  then
+
+   console-start
+   read-game-keys
+   banner
+   probe-pci
+   open-keyboard
+   optional-startup
+   interpreter-init
+   \ do-update
+
+   quit
+;
+
+.( --- Saving smallfw.dic ...)
+" smallfw.dic" $save-forth cr
+
+\ patch foo decimal cold
+
+[ifndef] notdef
+.( --- Saving fw.img ...)
+" smallfw.img"  RAMbase save-abs-rom cr
+[then]
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2006 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/x86/pc/olpc/smallconfig.fth
===================================================================
--- cpu/x86/pc/olpc/smallconfig.fth	                        (rev 0)
+++ cpu/x86/pc/olpc/smallconfig.fth	2007-09-29 19:40:22 UTC (rev 653)
@@ -0,0 +1,77 @@
+\ See license at end of file
+purpose: Establish configuration definitions
+
+create olpc             \ OLPC-specific build
+
+\ --- The environment that "boots" us ---
+\ - Image Format - Example Media - previous stage bootloader
+
+\ - OBMD format - ROM - direct boot from ROM
+create rom-loaded
+
+\ - ELF format (no pheader) - ROM - LinuxBIOS direct
+\ create linuxbios-loaded
+
+\ - Linux kernel format - USB Key w/ FAT FS - LinuxBIOS w/ stripped Linux payload
+\ create bzimage-loaded
+
+\ - ELF format w/ Multiboot signature - various - GRUB
+\ create grub-loaded
+
+\ - (Syslinux) COM32 format - USB Key w/ FAT FS - Syslinux
+\ create syslinux-loaded
+
+
+\ create virtual-mode
+create addresses-assigned  \ Define if base addresses are already assigned
+\ create serial-console      \ Define to default to serial port for console
+create pc
+\ create linux-support
+\ create jffs2-support
+\ create use-elf
+
+\ create use-timestamp-counter \ Use CPU's timestamp counter for timing ...
+			\ ... this is worthwhile if your CPU has one.
+
+create resident-packages
+\ create use-watch-all
+\ create use-root-isa
+create no-floppy-node
+create no-com2-node
+create no-lpt-node
+create use-pci-isa
+create basic-isa
+create isa-dma-only
+
+create use-null-nvram
+
+\ Uncomment this to compile for the LX development board
+\ It's not possible to use one ROM image for both OLPC and
+\ the LX board, because of the ROM size difference.
+\ create lx-devel   \ Support for the LX development board
+
+fload ${BP}/cpu/x86/pc/olpc/addrs.fth
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2006 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/x86/small.bth
===================================================================
--- cpu/x86/small.bth	                        (rev 0)
+++ cpu/x86/small.bth	2007-09-29 19:40:22 UTC (rev 653)
@@ -0,0 +1,235 @@
+\ See license at end of file
+purpose: Load file for Forth toolkit, without firmware
+
+dictionary: ${BP}/cpu/x86/build/kernel.dic
+command: &x86forth &dictionary &this
+build-now
+
+ ' noop is include-hook
+\ ' $report-name is include-hook
+\ : rn  (cr 2dup type 15 spaces  ;  ' rn is include-hook
+
+create no-tools
+create no-heads
+create resident-packages
+
+fload ${BP}/forth/lib/fwsetup.fth
+
+: dot hex transtart . transize . there . ouser . hedge . limit . cr decimal ;
+.(  after: ) dot
+
+transient
+
+\ Variables controlling inclusion of optional packages.
+
+[ifdef] no-heads
+false
+[else]
+true
+[then]
+value assembler?		\  5280 bytes
+true  value forth-debug?	\  1064 bytes
+
+resident
+
+[ifndef] partial-no-heads	transient  [then]
+fload ${BP}/forth/lib/filetool.fth		\ needed for dispose, savefort.fth
+
+\NotTags fload ${BP}/forth/lib/dispose.fth
+[ifndef] partial-no-heads	resident  [then]
+
+[ifndef] partial-no-heads	transient  [then]
+\NotTags fload ${BP}/forth/lib/headless.fth
+\NotTags fload ${BP}/forth/lib/showspac.fth
+[ifndef] partial-no-heads	resident  [then]
+
+fload ${BP}/forth/lib/romable.fth
+
+fload ${BP}/forth/lib/hidden.fth
+
+fload ${BP}/forth/kernel/hashcach.fth
+
+fload ${BP}/forth/lib/th.fth
+\ fload ${BP}/forth/lib/ansiterm.fth
+
+fload ${BP}/forth/kernel/splits.fth
+fload ${BP}/forth/kernel/endian.fth
+
+fload ${BP}/forth/lib/strings.fth
+fload ${BP}/forth/lib/stringop.fth
+
+fload ${BP}/forth/lib/fastspac.fth
+
+fload ${BP}/forth/lib/patch.fth
+fload ${BP}/forth/lib/cirstack.fth		\ Circular stack
+\ fload ${BP}/forth/lib/pseudors.fth		\ Interpretable >r and r>
+
+\ fload ${BP}/forth/lib/headtool.fth
+
+fload ${BP}/forth/lib/needs.fth
+
+\ fload ${BP}/forth/lib/suspend.fth
+alias exit? false
+
+fload ${BP}/forth/lib/util.fth
+\ fload ${BP}/forth/lib/format.fth
+: to-column  ( column# -- )  drop space  ;
+
+fload ${BP}/forth/lib/stringar.fth
+
+fload ${BP}/forth/lib/parses1.fth	\ String parsing
+
+\ fload ${BP}/forth/lib/dump.fth
+\ fload ${BP}/forth/lib/words.fth
+\ fload ${BP}/forth/lib/decomp.fth
+
+\ Uses  over-vocabulary  from words.fth
+[ifndef] partial-no-heads	transient  [then]
+\ \NotTags fload ${BP}/forth/lib/dumphead.fth
+[ifndef] partial-no-heads	resident  [then]
+
+\ fload ${BP}/forth/lib/seechain.fth
+
+\ fload ${BP}/forth/lib/loadedit.fth		\ Command line editor module
+
+\ fload ${BP}/forth/lib/caller.fth
+
+\ fload ${BP}/forth/lib/callfind.fth
+fload ${BP}/forth/lib/substrin.fth
+\ fload ${BP}/forth/lib/sift.fth
+
+fload ${BP}/forth/lib/array.fth
+
+fload ${BP}/forth/lib/linklist.fth		\ Linked list routines
+
+fload ${BP}/forth/lib/lex.fth
+
+\ fload ${BP}/forth/lib/autold.fth		\ Autoload mechanism
+
+[ifndef] partial-no-heads	transient  [then]
+fload ${BP}/forth/lib/initsave.fth		\ Common code for save-forth et al
+fload ${BP}/forth/lib/reminder.fth		\ Reminders
+[ifndef] partial-no-heads	resident  [then]
+
+assembler? [if]
+fload ${BP}/cpu/x86/assem.fth
+fload ${BP}/cpu/x86/code.fth
+fload ${BP}/forth/lib/loclabel.fth
+[else]
+transient  fload ${BP}/cpu/x86/assem.fth  resident
+fload ${BP}/cpu/x86/code.fth
+transient  fload ${BP}/forth/lib/loclabel.fth     resident
+[then]
+fload ${BP}/cpu/x86/asmspec.fth	\ Special registers
+
+\ fload ${BP}/cpu/x86/decompm.fth
+
+
+: be-l,  ( l -- )  here set-swap-bit  here  4 allot  be-l!  ;
+
+[ifndef] partial-no-heads       transient   [then]
+fload ${BP}/cpu/x86/saveexp.fth
+fload ${BP}/cpu/x86/savefort.fth
+[ifndef] partial-no-heads	resident  [then]
+alias $save-forth $save-forth
+
+\ [ifdef] resident-packages
+\ fload ${BP}/cpu/x86/disassem.fth
+\ [else]
+\ autoload: disassem.fth
+\ defines: dis
+\ defines: +dis
+\ defines: pc!dis1
+\ [then]
+
+\ fload ${BP}/forth/lib/instdis.fth
+
+fload ${BP}/cpu/x86/objsup.fth
+fload ${BP}/forth/lib/objects.fth
+
+\ fload ${BP}/cpu/x86/cpustate.fth
+\ fload ${BP}/cpu/x86/register.fth
+
+\ fload ${BP}/forth/lib/savedstk.fth
+\ fload ${BP}/forth/lib/rstrace.fth
+\ fload ${BP}/cpu/x86/ftrace.fth
+\ fload ${BP}/cpu/x86/ctrace.fth
+\ fload ${BP}/cpu/x86/showcras.fth
+
+\ forth-debug? [if]
+\ fload ${BP}/cpu/x86/debugm.fth	\ Forth debugger support
+\ fload ${BP}/forth/lib/debug.fth	\ Forth debugger
+\ [then]
+
+\ start-module			 \ Breakpointing
+\ fload ${BP}/cpu/x86/cpubpsup.fth \ Breakpoint support
+\ fload ${BP}/forth/lib/breakpt.fth
+\ fload ${BP}/cpu/x86/Linux/catchexc.fth  \ OS signal handling
+\ end-module
+
+: edit-file  ( adr len maxlen -- len' )  drop nip  ;
+: edit-line  ( adr len maxlen -- len' )  drop nip  ;
+defer light ' noop to light
+alias cancel noop
+: vsift?  ( adr len voc-xt -- adr len exit? )  drop true  ;
+alias .in noop
+defer .voc     ' noop is .voc
+alias save-state-common noop
+defer save-state
+alias init-exceptions noop
+defer deny-history?
+alias not-dark noop
+alias (debug drop
+alias cpeek c@
+alias wpeek w@
+alias lpeek l@
+alias cpoke c!
+alias wpoke w!
+alias lpoke l!
+0 value load-base
+variable file-size
+: loaded load-base file-size @  ;
+: !load-size  file-size !  ;
+defer ?inflate-loaded  ' noop is ?inflate-loaded
+alias external noop
+
+\needs no-heads create no-heads
+fload ${BP}/cpu/x86/basefw.bth
+
+: reg  ( phys.. size )  encode-reg  " reg" property ;
+: ($callback)  ( nargs name$ -- error? )  2drop  0 ?do  drop  loop  true  ;
+: memory-test-suite  ( adr len -- error? )  2drop false  ;
+: byte-load  ( adr stride -- )  2drop  ;
+: model  " model" string-property  ;
+
+[ifndef] no-heads
+resident   dispose   0 0 set-transize   \ true is suppress-transient
+\ .(   zeroed: ) dot
+
+' noop is include-hook  ' noop is include-exit-hook
+.( --- Saving small.dic --- )  " small.dic" $save-forth cr
+[then]
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2006 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END




More information about the OpenBIOS mailing list