pic18/pic18-compiler-unit.ss
#lang scheme/unit

(require
 "../sig.ss"
 "asm.ss"
 "../asm/assembler.ss"
 "../asm.ss"
 "../code.ss")

(import instantiate^ postproc^)
(export compiler^)

;; Bind compiler components.
(define (compile!)
  (code-compile! compile-words  ;; instantiate^
                 postproc       ;; postproc^
                 assemble!))    ;; assembler code

;; ALLOT STACKS

;; These are currently not settable from assembly code due to
;; dependence on the order of module instantiation and "load"
;; statements.  It is only possible to change them locally (using
;; "org-begin" and "org-end") for the purpose of installing vectors.
;; We start at #x0022 because the first #20 words are reserved as
;; separately erasable block0, and the start of block1 contains a
;; 2-word slot for a jump to boot code to which the default boot code
;; will jump.

(code-pointers-set!
 '((code #x0022)
   (data #x0000)))