;;; -*- Mode:LISP; Package:LAMBDA; Base:8; Readtable:ZL -*-
;;;
;;; (c) Copyright 1984,1985,1986 - Lisp Machine, Inc.
;;;

; register address stuff

(DEFCONST LAM-REG-ADR-PHYS-MEM-TOP (- -400000 1))  ;this is valid register address of highest
			;physical memory addressible via this kludge..
(DEFCONST LAM-REG-ADR-PHYS-MEM-OFFSET (- lam-reg-adr-phys-mem-top 2000000))  ;allow 512K phys
			;add this to regadr to get physical memory address.

(DEFCONST RAORG -377777)	; ORIGIN OF REGISTER ADDRESS SPACE
(DEFCONST RACMO RAORG)	;   ORIGIN OF CONTROL MEM 
 (DEFCONST RACME (+ RACMO 200000))	;   CONTROL MEMORY (C)  64K  (virtual)
(DEFCONST RADMO RACME)			;   DISPATCH MEMORY (D) 4K (SAME AS A MEM, BUT TYPEOUT
 (DEFCONST RADME (+ RADMO 10000))	;    DIFFERS)
(DEFCONST RAPBO RADME)
 (DEFCONST RAPBE (+ RAPBO 10000))	;   PDL BUFFER (P)  2048 REG(plus 2K unused locations)
(DEFCONST RAM1O RAPBE)
 (DEFCONST RAM1E (+ RAM1O 10000))	;   MAP (1ST LEVEL)(M1) 4096 REG (7 BITS EA)
(DEFCONST RAM2O-CONTROL RAM1E)
 (DEFCONST RAM2E-CONTROL (+ RAM2O-CONTROL 10000)) ;MAP (2ND LEVEL)(M2) 4096 REG (16 BITS EA)
(DEFCONST RAM2O-PHYSICAL-PAGE RAM2E-CONTROL)	;   MAP (2ND LEVEL) PHYSICAL PAGE.
 (DEFCONST RAM2E-PHYSICAL-PAGE (+ RAM2O-PHYSICAL-PAGE 10000))
(DEFCONST RAAMO RAM2E-PHYSICAL-PAGE)
 (DEFCONST RAAME (+ 10000 RAAMO))	;   A MEMORY (A)	4K
(DEFCONST RAUSO RAAME)
 (DEFCONST RAUSE (+ RAUSO 400))	;   U STACK (U)	        256 REG
(DEFCONST RAMIDO RAUSE)
 (DEFCONST RAMIDE (+ RAMIDO 10000))	;macro instruction decode ram.
(DEFCONST RACAMO RAMIDE)		;CRAM adr map, 10000 regs (10 bits + 2 parity bits ea)
 (DEFCONST RACAME (+ RACAMO 10000))
(DEFCONST RAMMO RACAME)
 (DEFCONST RAMME (+ RAMMO 100))	;   M MEMORY (M)	64 REG
(DEFCONST RAFSO RAMME)	;    NOTE: M MEM MUST BE CONTIG WITH FUNCT SRC, RAMS below here
 (DEFCONST RAFSE (+ RAFSO 100))	;   FUNCTIONAL SOURCES  64 REGS
(DEFCONST RAFDO RAFSE)			;   FUNCTIONAL DESTINATIONS 64 REGS
 (DEFCONST RAFDE (+ RAFDO 100))

(DEFUN FD-REGADR (FUNC-DEST-CODE)
  (+ RAFDO (LOGAND FUNC-DEST-CODE 77)))

(DEFUN FS-REGADR (FUNC-SOURCE-CODE)
  (+ RAFSO (LOGAND FUNC-SOURCE-CODE 77)))

;see COMMON-SYMBOLS
(DEFvar RAMD)		;MAIN MEM DATA REGISTER
(DEFvar RAVMA)		;VMA (VIRTUAL MEMORY ADDRESS)
(DEFvar RAPP)		;PDL POINTER (TO PDL BUFFER)
(DEFvar RAPI)		;PDL INDEX (TO PDL BUFFER)

(DEFCONST RAOPCO RAFDE)				;opc's
 (DEFCONST RAOPCE (+ RAOPCO 10000))

(IF (> RAOPCE -1000)				;was rafde
    (FERROR NIL "Warning: register addresses overflow into positive numbers"))



;RAIDR: rarde, OPC: raopce ;*** no longer opc?
(DEFCONST RARGO -1000)	;range below for individual registers
 (DEFCONST RARGE -400)
(DEFCONST RAPC -400)	;     PC  (PC)
(DEFCONST RAUSP -401)	;     U STACK POINTER  (USP)
(DEFCONST RAIR -402)	;     .IR (PUT IN DIAG INST REG, THEN LOAD INTO IR,
			;	 THEN UPDATE OBUS DISPLAY.)
(DEFCONST RASIR -403)	;     SAVED IR (THE ONE SAVE ON FULL STATE SAVE
			;      AND RESTORED ON FULL RESTORE)
(DEFCONST RAQ -404)	;     Q REGISTER  (Q)
(DEFCONST RADC -405)	;     DISPATCH CONSTANT REGISTER (DC)
;(DEFCONST RARSET -406)	;     RESET REGISTER
(DEFCONST RAPMR -407)	;     processor mode register (as in hardware)
(DEFCONST RAMFO -410)	;     MFO BUS (32 BITS)

(DEFCONST RARS -411)	;     RESET (CNTRL-R)
(DEFCONST RASTEP -412)	;     STEP  (CNTRL-N)
(DEFCONST RASTOP -413)	;     STOP  (CNTRL-S)
(DEFCONST RASA -414)	;     SET STARTING ADR (@G)
(DEFCONST RAGO -415)	;     GO (CNTRL-P, BUT KEEP LISTENING FOR REGISTER COMMANDS)
(defconst rastat-aux -416) ;statc-aux, auxilliary statistics counter
(DEFCONST RARCON -417)	;REMOTE CONSOLE, ENABLED BY DEPOSIT NON-ZERO IN RAGO
			;EXAMINE GIVES TYO OR 0, DEPOSIT DOES TYI
(DEFCONST RACONREG -420)  ;control register (as in hardware)
;
(DEFCONST RASTAT -423)	;STATC, STATISTICS COUNTER
(DEFCONST RALC -424)     ;LC, MACRO LOCATION COUNTER
(DEFCONST RAMIR -425)    ;macro instruction register
(defconst ramcr -426)    ;MCR on explorer

(DEFCONST RARDRO -440)	;  "RAID" REGISTERS (RAIDR)
 (DEFCONST RARDRE -430)


