home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / PROG / MISC / ZEN1_10.ZIP / FINALE.SRC < prev    next >
Encoding:
Text File  |  1990-01-25  |  1.4 KB  |  55 lines

  1. \*
  2.  *   ZEN 1.10  Initialization
  3.  *     C 1990  by Martin Tracy
  4.  *             Last modified  12/17/89
  5.  *\
  6. ASSEMBLER
  7. ;
  8. ; Machine-level coldstart
  9. ;
  10. Coldstart:
  11.         cld
  12.         mov   bx,DGROUP
  13.         mov   ds,bx
  14.         mov   si,OFFSET COLD+3 ; skip code field
  15.         NEXT
  16. END-CODE
  17.  
  18. \ Push Coldstart address on stack.  Used by SAVING
  19. CODE 'SAVE ( - code_addr stack_seg )
  20.         push  bx
  21.         mov   bx,OFFSET _TEXT: Coldstart
  22.         NEXT
  23. END-CODE
  24.  
  25. \ Return to MS-DOS
  26. CODE BYE ( )
  27.         mov   ax,4C00h
  28.         int   21h
  29. END-CODE
  30.  
  31. \ Application initialization
  32. : READY ( )
  33.    CR ." ZEN 1.10      C 1986 1989 1990"
  34.    CR ." Martin Tracy  Fax 213 371-2499" CR ;
  35.  
  36. \ Forth-level coldstart
  37. \ Must be the last word in the nucleus dictionary.
  38. : COLD ( )
  39.    BARE RESET [
  40. ASSEMBLER
  41.         dw    Lit, OFFSET  _TEXT: COLDq
  42.         dw    Lit, OFFSET  _TEXT: PREVIOUSq
  43.         dw    Lit, OFFSET DGROUP: TP0
  44.         dw    Lit, OFFSET DGROUP: VP0
  45.         dw    Lit, OFFSET  _TEXT: DP0
  46. END-CODE
  47.    ] DP ! VP ! TP !
  48. [ VOX? ]     \IF  ['] ROOT >BODY !  ['] FORTH >BODY !
  49. [ VOX? ]     \IF  ONLY FORTH DEFINITIONS ALSO
  50. [ VOX? NOT ] \IF  'FORTH !  'FORTH  DUP CONTEXT 2!
  51. [ MUX? ]     \IF  ['] NOOP MX ! ( Multitasking off)
  52.      ['] (VAL?) 'VAL? !   ['] NOOP DUP 'WARN 2!
  53.      [']  NOOP  'MAIN !   ['] GRIPE 'ERR !
  54.      DECIMAL  DUMB  " READY" EVALUATE  ABORT ;
  55.