Annotation of gforth/asm/basic.fs, revision 1.1
1.1 ! pazsan 1: \ asmbasic.fs basic assebmler definitions
! 2:
! 3: [IFUNDEF] assembler Vocabulary assembler [THEN]
! 4: require ~+/target.fs
! 5: [IFUNDEF] chained require chains.fs [THEN]
! 6:
! 7: \ ---------- Basic Definitions
! 8:
! 9: \ (code) and (end-code) are used from interpreter or cross-compiler
! 10: \ Between (code) and (end-code) must be finished cpu-instructions
! 11: \ asm[ ... ]asm should or can be used to interrupt assembling
! 12: \ mode while assembling, the words should switch off and on
! 13: \ the assembler vocabulary or a special pasring mode
! 14: \ When using ]asm asm[ a cpu instruction has not to be finished
! 15:
! 16: defer ]asm \ turns on assembler mode
! 17: defer asm[ \ turns off assebmler mode
! 18:
! 19: defer (code) \ starts up a assembler passage
! 20: defer (end-code) \ ends an assembler passage
! 21:
! 22: \ Chains
! 23:
! 24: \ Numref registers in propper8 (to reset some flags) and in
! 25: \ end-code8 (for resolving)
! 26: \ propper should be executed before at assembling start
! 27: \ and when an intstruction is finished.
! 28:
! 29: Variable code8 \ starts assembling
! 30: 0 code8 !
! 31:
! 32: Variable end-code8 \ ends assembling
! 33: 0 end-code8 !
! 34:
! 35: Variable propper8 \ clean up flags for new cpu instructions
! 36: 0 propper8 !
! 37:
! 38: : propper propper8 chainperform ;
! 39:
! 40: : ]asm-1
! 41: also assembler
! 42: get-order >r = ABORT" Assembler is activated!"
! 43: r> 2 - 0 ?DO drop LOOP
! 44: ; ' ]asm-1 IS ]asm
! 45:
! 46: : asm[-1
! 47: also assembler
! 48: get-order >r <> ABORT" Assembler isn't activated!"
! 49: r> 2 - 0 ?DO drop LOOP
! 50: previous previous ; ' asm[-1 IS asm[
! 51:
! 52: : (code)-1
! 53: \ the next input is assebler code witch is stored at dp
! 54: ]asm
! 55: propper
! 56: code8 chainperform
! 57: ; ' (code)-1 IS (code)
! 58:
! 59: : (end-code)-1
! 60: \ the next code are normal forth definitions
! 61: end-code8 chainperform
! 62: asm[ ; ' (end-code)-1 IS (end-code)
! 63:
! 64: \ for test purposes
! 65:
! 66: [IFUNDEF] there
! 67: : code create (code) ;
! 68: : end-code (end-code) ;
! 69: [THEN]
! 70:
! 71: also assembler also definitions forth
! 72:
! 73: variable asm-current
! 74:
! 75: : end-label (end-code) asm-current @ set-current ;
! 76: : end-macros previous previous asm-current @ set-current ;
! 77:
! 78: \ Macros
! 79:
! 80: : : : ;
! 81: : ; postpone ; ; immediate
! 82:
! 83: : label there constant ;
! 84: : equ constant ;
! 85:
! 86: forth definitions
! 87:
! 88: : start-macros get-current asm-current ! also forth also assembler definitions ;
! 89: : label (code) label ;
! 90:
! 91: previous previous
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>