;;; -*- Mode:LISP; Package:SIMULATOR; Base:10; Readtable:CL -*- (defmacro define-k-memory (name size-in-qs) (let ((region-name (intern (string-upcase (string-append "*" name "-region*")))) (origin-name (intern (string-upcase (string-append "*" name "-origin*")))) (initializer (intern (string-upcase (string-append "initialize-" name))))) `(PROGN (DEFVAR ,name) (DEFVAR ,region-name) (DEFVAR ,origin-name) (DEFUN ,initializer () (UNLESS (BOUNDP (QUOTE ,name)) (MAKE-AREA :NAME (QUOTE ,name) :GC :STATIC) (SETF (SI::%AREA-REGION-BITS ,name) (%LOGDPB 0 GC:%%REGION-SCAVENGE-ENABLE (%LOGDPB 0 SI:%%REGION-VOLATILITY (SI::%AREA-REGION-BITS ,name)))) (SETQ ,region-name (SI:%MAKE-REGION ,name (SI::%AREA-REGION-BITS ,name) ,size-in-qs)) (SETF (SI::%REGION-FREE-POINTER ,region-name) ,size-in-qs) (SETQ ,origin-name (SI::%REGION-ORIGIN ,region-name)))) (EVAL-WHEN (LOAD) (,initializer))))) (define-k-memory bootprom (expt 2. 13.)) ;8K (define-k-memory memory-map (expt 2. 16.)) (define-k-memory physical-memory (expt 2. 22.)) ;16 Meg ;;(define-k-memory boot-prom (expt 2. ??.) (define-k-memory register-frames (* 256. 16. 2.)) (define-k-memory saved-o 4096.) (define-k-memory saved-a 4096.) (define-k-memory call-heap 4096.) (define-k-memory return-pc 4096.) (define-k-memory return-dest 4096.) (define-k-memory return-global-frame 4096.) (define-k-memory gc-ram 4096.) (define-k-memory transporter-ram 4096.)