summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/forth/debugging/client.fs
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/openbios/forth/debugging/client.fs')
-rw-r--r--qemu/roms/openbios/forth/debugging/client.fs299
1 files changed, 0 insertions, 299 deletions
diff --git a/qemu/roms/openbios/forth/debugging/client.fs b/qemu/roms/openbios/forth/debugging/client.fs
deleted file mode 100644
index f37440445..000000000
--- a/qemu/roms/openbios/forth/debugging/client.fs
+++ /dev/null
@@ -1,299 +0,0 @@
-\ 7.6 Client Program Debugging command group
-
-
-\ 7.6.1 Registers display
-
-: ctrace ( -- )
- ;
-
-: .registers ( -- )
- ;
-
-: .fregisters ( -- )
- ;
-
-\ to ( param [old-name< >] -- )
-
-
-\ 7.6.2 Program download and execute
-
-struct ( saved-program-state )
- /n field >sps.entry
- /n field >sps.file-size
- /n field >sps.file-type
-constant saved-program-state.size
-create saved-program-state saved-program-state.size allot
-
-variable state-valid
-0 state-valid !
-
-variable file-size
-
-: !load-size file-size ! ;
-
-: load-size file-size @ ;
-
-
-\ File types identified by (init-program)
-
-0 constant elf-boot
-1 constant elf
-2 constant bootinfo
-3 constant xcoff
-4 constant pe
-5 constant aout
-10 constant fcode
-11 constant forth
-12 constant bootcode
-
-
-: init-program ( -- )
- \ Call down to the lower level for relocation etc.
- s" (init-program)" $find if
- execute
- else
- s" Unable to locate (init-program)!" type cr
- then
- ;
-
-: (find-bootdevice) ( param-str param-len -- bootpath-str bootpath-len)
- \ Parse the <param> string which is a space-separated list of one or
- \ more potential boot devices, and return the first one that can be
- \ successfully opened.
-
- \ Space-separated bootpath string
- bl left-split \ bootpathstr bootpathstr-len bootdevstr bootdevstr-len
- dup 0= if
-
- \ None specified. As per IEEE-1275 specification, search through each value
- \ in boot-device and use the first that returns a valid ihandle on open.
-
- 2drop \ drop the empty device string as we're going to use our own
-
- s" boot-device" $find drop execute
- bl left-split
- begin
- dup
- while
- 2dup s" Trying " type type s" ..." type cr
- 2dup open-dev ?dup if
- close-dev
- 2swap drop 0 \ Fake end of string so we exit loop
- else
- 2drop
- bl left-split
- then
- repeat
- 2drop
- then
-
- \ bootargs
- 2swap dup 0= if
- \ None specified, use default from nvram
- 2drop s" boot-file" $find drop execute
- then
-
- \ Set the bootargs property
- encode-string
- " /chosen" (find-dev) if
- " bootargs" rot (property)
- then
-;
-
-\ Locate the boot-device opened by this ihandle (currently taken as being
-\ the first non-interposed package in the instance chain)
-
-: ihandle>boot-device-handle ( ihandle -- 0 | device-ihandle -1 )
- >r 0
- begin r> dup >in.my-parent @ dup >r while
- ( result ihandle R: ihandle.parent )
- dup >in.interposed @ 0= if
- \ Find the first non-interposed package
- over 0= if
- swap drop
- else
- drop
- then
- else
- drop
- then
- repeat
- r> drop drop
-
- dup 0<> if
- -1
- then
-;
-
-: $load ( devstr len )
- open-dev ( ihandle )
- dup 0= if
- drop
- exit
- then
- dup >r
- " load-base" evaluate swap ( load-base ihandle )
- dup ihandle>phandle " load" rot find-method ( xt 0|1 )
- if swap call-package !load-size else cr ." Cannot find load for this package" 2drop then
-
- \ If the boot device path doesn't contain an explicit partition id, e.g. cd:,\\:tbxi
- \ then the interposed partition package may have auto-probed a suitable partition. If
- \ this is the case then it will have set the " selected-partition-args" property in
- \ the partition package to contain the new device arguments.
- \
- \ In order to ensure that bootpath contains the partition argument, we use the contents
- \ of this property if it exists to override the boot device arguments when generating
- \ the full bootpath using get-instance-path.
-
- my-self
- r@ to my-self
- " selected-partition-args" get-inherited-property 0= if
- decode-string 2swap 2drop
- ( myself-save partargs-str partargs-len )
- r@ ihandle>boot-device-handle if
- ( myself-save partargs-str partargs-len block-ihandle )
- \ Override the arguments before get-instance-path
- dup >in.arguments 2@ >r >r dup >r ( R: block-ihandle arg-len arg-str )
- >in.arguments 2! ( myself-save )
- r@ " get-instance-path" $find if
- execute ( myself-save bootpathstr bootpathlen )
- then
- \ Now write the original arguments back
- r> r> r> rot >in.arguments 2! ( myself-save bootpathstr bootpathlen R: )
- rot ( bootpathstr bootpathlen myself-save )
- then
- else
- my-self " get-instance-path" $find if
- execute ( myself-save bootpathstr pathlen )
- rot ( bootpathstr bootpathlen myself-save )
- then
- then
- to my-self
-
- \ Set bootpath property in /chosen
- encode-string " /chosen" (find-dev) if
- " bootpath" rot (property)
- then
-
- r> close-dev
- init-program
- ;
-
-: load ( "{params}<cr>" -- )
- linefeed parse
- (find-bootdevice)
- $load
-;
-
-: dir ( "{paths}<cr>" -- )
- linefeed parse
- ascii , split-after
- 2dup open-dev dup 0= if
- drop
- cr ." Unable to locate device " type
- 2drop
- exit
- then
- -rot 2drop -rot 2 pick
- " dir" rot ['] $call-method catch
- if
- 3drop
- cr ." Cannot find dir for this package"
- then
- close-dev
-;
-
-: go ( -- )
- state-valid @ not if
- s" No valid state has been set by load or init-program" type cr
- exit
- then
-
- \ Call the architecture-specific code to launch the client image
- s" (go)" $find if
- execute
- else
- ." go is not yet implemented"
- 2drop
- then
- ;
-
-
-\ 7.6.3 Abort and resume
-
-\ already defined !?
-\ : go ( -- )
-\ ;
-
-
-\ 7.6.4 Disassembler
-
-: dis ( addr -- )
- ;
-
-: +dis ( -- )
- ;
-
-\ 7.6.5 Breakpoints
-: .bp ( -- )
- ;
-
-: +bp ( addr -- )
- ;
-
-: -bp ( addr -- )
- ;
-
-: --bp ( -- )
- ;
-
-: bpoff ( -- )
- ;
-
-: step ( -- )
- ;
-
-: steps ( n -- )
- ;
-
-: hop ( -- )
- ;
-
-: hops ( n -- )
- ;
-
-\ already defined
-\ : go ( -- )
-\ ;
-
-: gos ( n -- )
- ;
-
-: till ( addr -- )
- ;
-
-: return ( -- )
- ;
-
-: .breakpoint ( -- )
- ;
-
-: .step ( -- )
- ;
-
-: .instruction ( -- )
- ;
-
-
-\ 7.6.6 Symbolic debugging
-: .adr ( addr -- )
- ;
-
-: sym ( "name< >" -- n )
- ;
-
-: sym>value ( addr len -- addr len false | n true )
- ;
-
-: value>sym ( n1 -- n1 false | n2 addr len true )
- ;