;; Jam2000 0.91 --- Last updated: April 1, 1996 ;; ;; Author: Matthias Felleisen, Eric Virro ;; Design: Cartwright, Felleisen, Lu, Virro ;; ------------------------------------------------------------------ ;; The "Physical" Aspects of the Machine ;; 0 <= memory address < MAX-ADD (define MAX-ADD 10000) ;; Number of digits in a memory cell value (define DIGITS 8) ;; -MAX-VAL < memory value < MAX-VAL (define MAX-VAL (expt 10 DIGITS)) (define MAX-DIGITS-INDEX (sub1 DIGITS)) ;; -MAX-IMM < immediate value < MAX-IMM (define MAX-IMM 1000000) ;; 0 <= register number < MAX-REG (define MAX-REG 10) (define MAX-REG-INDEX (sub1 MAX-REG)) (define address? (lambda (n) (and (number? n) (>= n 0) (< n MAX-ADD)))) (define value? (lambda (n) (and (number? n) (< (abs n) MAX-VAL)))) (define immediate? (lambda (n) (and (number? n) (< (abs n) MAX-IMM)))) (define register? (lambda (n) (and (number? n) (>= n 0) (< n MAX-REG))))