home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / tcom / debugger / tdbgbscs.seq < prev    next >
Text File  |  1990-09-12  |  2KB  |  66 lines

  1. \ TDBGBSCS.SEQ   "Target Debugger Basics"
  2.  
  3. decimal
  4. anew bsc_words
  5.  
  6. $AF value listen-up
  7. $FA value go-ahead
  8. 13 value hi-there
  9. '!' value I'm-here
  10. 2variable vdate   getdate vdate 2!  \ date-stamp on this compile
  11. 0 value keyval
  12.  
  13. : ?comminit     ( -- )  \ abort if commport has not been initialized
  14.                 commport 0= abort" Comm Port has not been selected!" ;
  15.  
  16. : tdbg-hello ( -- ) \ startup message to be displayed if
  17.                     \ there is nothing on the DOS command line
  18.         ." \d\n\n\4\S10TDBG\S10TDBG\S10TDBG\s10\0\N"
  19.         ." \n\2    Target Debugger for 80c196\s04\n"
  20.         commport 0= if com1: then
  21.         ." \n\s06\3 Currently running on Comm Port # "
  22.         >attrib3 commport . >norm
  23.         ." \nType \3 BYE \0 to leave this program.\n"
  24.         ." ( compiled " vdate 2@ form-date count type ."  )\n"
  25.         ." \n\S10\4 Hang Loose! "
  26.         ." \4  No \`Russian Forward\`. "
  27.         ." \4  Use \`Reverse Polish\` "
  28.         ?comminit
  29.         cr  ;
  30. ' tdbg-hello is .hello
  31.  
  32.  
  33. : purge ( -- )  \ wait until nothing received for 50 ms
  34.                 \ leave with buffer clear
  35.         begin   clr-buf  50 ms  com-cnt 0=
  36.                 key? control [ =
  37.                 or  until  ;
  38.  
  39. : go-wait  ( -- )   \ wait for a go-ahead, up to 200 ms
  40.         200 0 do  1 ms
  41.                   com-cnt 0<> if com-get go-ahead = ?leave then
  42.               loop  ;
  43.  
  44. : command  ( c -- )
  45.         clr-buf    listen-up com-out  go-wait  com-out  ;
  46.  
  47. : getbyte ( -- b ) \ get a byte value from the comm port
  48.         begin   com-cnt 0<>
  49.                 key? control [ =
  50.                 or until        \ wait for the byte
  51.         com-get  ;
  52.  
  53. : getword ( -- w ) \ get a word value from the comm port
  54.         getbyte getbyte join  ;
  55.  
  56. : sendword ( w -- ) \ send a word value to the comm port
  57.         split swap com-out      \ send the low byte of the word
  58.         com-out  ;              \ send the high byte
  59.  
  60. : .ns ( n -- ) \ display a number without a space following
  61.         (.) type  ;
  62.  
  63. : jumpto ( addr -- ) \  make target jump to addr
  64.         0 command  sendword ;
  65.  
  66.