Warning: Use of undefined constant admin - assumed 'admin' (this will throw an Error in a future version of PHP) in /disk/site/hcc.nl/interessegroep/forth/www/w/cookbook/userauth2/userauth2-permchecklib.php on line 927 Warning: Use of undefined constant admin - assumed 'admin' (this will throw an Error in a future version of PHP) in /disk/site/hcc.nl/interessegroep/forth/www/w/cookbook/userauth2/userauth2-permchecklib.php on line 927 Deprecated: Function create_function() is deprecated in /disk/site/hcc.nl/interessegroep/forth/www/w/pmwiki.php on line 470 Warning: Use of undefined constant admin - assumed 'admin' (this will throw an Error in a future version of PHP) in /disk/site/hcc.nl/interessegroep/forth/www/w/cookbook/userauth2/userauth2-permchecklib.php on line 927 Warning: Cannot modify header information - headers already sent by (output started at /disk/site/hcc.nl/interessegroep/forth/www/w/cookbook/userauth2/userauth2-permchecklib.php:927) in /disk/site/hcc.nl/interessegroep/forth/www/w/pmwiki.php on line 1257 HCC!Forth | ByteForth / ByteForthMacrocompilerOpANS-ForthGebaseerd
Warning: Use of undefined constant admin - assumed 'admin' (this will throw an Error in a future version of PHP) in /disk/site/hcc.nl/interessegroep/forth/www/w/cookbook/userauth2/userauth2-permchecklib.php on line 927 Deprecated: Function create_function() is deprecated in /disk/site/hcc.nl/interessegroep/forth/www/w/pmwiki.php on line 470 Deprecated: Function create_function() is deprecated in /disk/site/hcc.nl/interessegroep/forth/www/w/pmwiki.php on line 470
HCC!Forth Warning: Use of undefined constant admin - assumed 'admin' (this will throw an Error in a future version of PHP) in /disk/site/hcc.nl/interessegroep/forth/www/w/cookbook/userauth2/userauth2-permchecklib.php on line 927

HCC!forth

ByteForth


2. Macrocompiler voor ByteForth

  • Gebaseerd op ANS Forth
  • Stackbreedte: 8 bits, doubles 16 bits.
  • Arrays, zowel voor 8 als 16 bits getallen.
  • Instelbare geheugenindeling.
  • DefiniĆ«rende woorden:
    CONSTANT 2CONSTANT VARIABLE 2VARIABLE VALUE : CODE CREATE DOES>
  • Niet standaard toevoegingen:
    BIT-SFR FLAG SFR CONSTANTS VARIABLES 2VARIABLES REGISTER
  • Controlestructuren:
    IF ELSE THEN DO LOOP BEGIN UNTIL FOR NEXT etc.
  • Prefixen voor datawoorden:
    FROM TO +TO INCR DECR CLEAR etc.
  • Alle interrupts worden ondersteund.
  • Macro's kunnen als subroutine geimporteerd worden.
  • Complete 8051 of AVR assembler.
  • Optimalisator, simulator, tracer en (ISP)-programmer.
  • Speciale compiler directives voor het werken met strings: ." S" [CHAR] en LITERAL.
  • SETUP-BYTEFORTH om stack-initialiserende code te assembleren (het installeren van de Forth machine).

(:tablebegin:)

Voorbeeld van een macro uit 8051 ByteForth:

 $11 MACRO SWAP  ( x1 x2 -- x2 x1 )
    A: @R0 MOV,
    R0: INC,
    A: @R0 XCH,
    R0: DEC,
    @R0 A: MOV,
    RET,
 END-CODE

Voorbeeld van een macro uit AVR ByteForth:

 $02 MACRO SWAP  ( x1 x2 -- x2 x1 )
    R17 X+ LD,
    R16 X+ LD,
    -X R17 ST,
    -X R16 ST,
    RET,
 END-CODE