;;; -*- Mode:LISP; Package:SIMULATOR; Readtable:CL; Base:10 -*- (defsubst cluster->address (cluster) (hw:dpb cluster %%k-cluster-number 0.)) (defsubst map:address-map (virtual-cluster) (hw:write-vma-unboxed (vini:cluster->address virtual-cluster))) (defsubst map:read-map (virtual-cluster) (map:address-map virtual-cluster) (hw:read-map)) (defun dump-map (address) (dotimes (i map:*number-of-map-entries*) (hw:write-md-unboxed (map:read-map i)) (hw:vma-start-write-unboxed-no-gc-write-test (+ address i)))) (DEFKFUN DUMP-MAP (ADDRESS) TAG::P_8 (MOVE A1 '0) TAG::DO7650_14 (ALU L-R NOOP-NO-OVERFLOW-TRAP A1 '65536) (TEST BR-NOT-GREATER-THAN-OR-EQUAL) (BRANCH TAG::C_18) TAG::C_17 (MOVE RETURN 'NIL CH-RETURN) TAG::C_18 (KDPB WRITE-VMA-UNBOXED A1 '0 '656) (MOVE WRITE-MD-UNBOXED READ-MAP) (ALU L+R VMA-START-WRITE-UNBOXED-NO-GC-WRITE-TEST A0 A1) (ALU L+R+1 A1 A1 '0) (JUMP TAG::DO7650_14)) (defkfun dump-map (address) (move a1 '0) do (alu l-r noop-no-overflow-trap a1 '#.map:*number-of-map-entries*) (test br-not-equal) (branch c1) (move return 'nil ch-return) c1 (kdpb write-vma-unboxed a1 '0 #.vini:%%k-cluster-number) (move write-md-unboxed read-map) (alu l+r vma-start-write-unboxed-no-gc-write-test a0 a1) (alu l+r+1 a1 a1 '0) (jump do)) (defsubst car (x) (hw:car x)) (defun foo () (print (hw:read-map))) (DEFKFUN FOO NIL TAG::P_4 (OPEN-TAIL-CALL PRINT '1 (O0 READ-MAP))) (defun bar () (hw:read-map)) (DEFKFUN BAR NIL TAG::P_4 (MOVE RETURN READ-MAP CH-RETURN)) (defun foo (x) (hw:write-md-unboxed x)) (DEFKFUN FOO (X) TAG::P_5 (MOVE WRITE-MD-UNBOXED A0) (MOVE RETURN 'NIL CH-RETURN)) (defun bar (x) (hw:write-md-unboxed x) x) (DEFKFUN BAR (X) TAG::P_5 (MOVE WRITE-MD-UNBOXED A0) (MOVE RETURN A0 CH-RETURN))