(defun dump-call-hardware ()
  (WITH-DUMPER-MACROS (PROGN (SAVE-REGISTER HARDWARE:O0)
			     (SAVE-BOX-BIT HARDWARE:O15)
			     (SAVE-REGISTER HARDWARE:O1)
			     (SAVE-BOX-BIT HARDWARE:O14)
			     (SAVE-REGISTER HARDWARE:O2)
			     (SAVE-BOX-BIT HARDWARE:O13)
			     (SAVE-REGISTER HARDWARE:O3)
			     (SAVE-BOX-BIT HARDWARE:O12)
			     (SAVE-REGISTER HARDWARE:O4)
			     (SAVE-BOX-BIT HARDWARE:O11)
			     (SAVE-REGISTER HARDWARE:O5)
			     (SAVE-BOX-BIT HARDWARE:O10)
			     (SAVE-REGISTER HARDWARE:O6)
			     (SAVE-BOX-BIT HARDWARE:O9)
			     (SAVE-REGISTER HARDWARE:O7)
			     (SAVE-BOX-BIT HARDWARE:O8)
			     (SAVE-REGISTER HARDWARE:O8)
			     (SAVE-BOX-BIT HARDWARE:O7)
			     (SAVE-REGISTER HARDWARE:O9)
			     (SAVE-BOX-BIT HARDWARE:O6)
			     (SAVE-REGISTER HARDWARE:O10)
			     (SAVE-BOX-BIT HARDWARE:O5)
			     (SAVE-REGISTER HARDWARE:O11)
			     (SAVE-BOX-BIT HARDWARE:O4)
			     (SAVE-REGISTER HARDWARE:O12)
			     (SAVE-BOX-BIT HARDWARE:O3)
			     (SAVE-REGISTER HARDWARE:O13)
			     (SAVE-BOX-BIT HARDWARE:O2)
			     (SAVE-REGISTER HARDWARE:O14)
			     (SAVE-BOX-BIT HARDWARE:O1)
			     (SAVE-REGISTER HARDWARE:O15)
			     (SAVE-BOX-BIT HARDWARE:O0))
		      (HARDWARE:WRITE-MD-UNBOXED (HARDWARE:DPB-UNBOXED (ACCUMULATED-BOX-BITS) %%CPDL0-BOX-BITS (WORD-1)))
		      (HARDWARE:VMA-START-WRITE-NO-GC-TRAP-UNBOXED (HARDWARE:24+ (- CONTROL-PDL-FRAME-SIZE)
										 GLOBAL-REGISTERS:*CONTROL-PDL-POINTER*))
		      (HARDWARE:DISPATCH (HARDWARE:24+ 1 GLOBAL-REGISTERS:*CH-DUMPER-RETURN-PC*)))
  )


(defun write-open-frame ()
  (WITH-DUMPER-MACROS (PROGN (SAVE-REGISTER HARDWARE:A0)
			     (SAVE-BOX-BIT HARDWARE:A15)
			     (SAVE-REGISTER HARDWARE:A1)
			     (SAVE-BOX-BIT HARDWARE:A14)
			     (SAVE-REGISTER HARDWARE:A2)
			     (SAVE-BOX-BIT HARDWARE:A13)
			     (SAVE-REGISTER HARDWARE:A3)
			     (SAVE-BOX-BIT HARDWARE:A12)
			     (SAVE-REGISTER HARDWARE:A4)
			     (SAVE-BOX-BIT HARDWARE:A11)
			     (SAVE-REGISTER HARDWARE:A5)
			     (SAVE-BOX-BIT HARDWARE:A10)
			     (SAVE-REGISTER HARDWARE:A6)
			     (SAVE-BOX-BIT HARDWARE:A9)
			     (SAVE-REGISTER HARDWARE:A7)
			     (SAVE-BOX-BIT HARDWARE:A8)
			     (SAVE-REGISTER HARDWARE:A8)
			     (SAVE-BOX-BIT HARDWARE:A7)
			     (SAVE-REGISTER HARDWARE:A9)
			     (SAVE-BOX-BIT HARDWARE:A6)
			     (SAVE-REGISTER HARDWARE:A10)
			     (SAVE-BOX-BIT HARDWARE:A5)
			     (SAVE-REGISTER HARDWARE:A11)
			     (SAVE-BOX-BIT HARDWARE:A4)
			     (SAVE-REGISTER HARDWARE:A12)
			     (SAVE-BOX-BIT HARDWARE:A3)
			     (SAVE-REGISTER HARDWARE:A13)
			     (SAVE-BOX-BIT HARDWARE:A2)
			     (SAVE-REGISTER HARDWARE:A14)
			     (SAVE-BOX-BIT HARDWARE:A1)
			     (SAVE-REGISTER HARDWARE:A15)
			     (SAVE-BOX-BIT HARDWARE:A0))
		      (SETF (WORD-1)
			    (HARDWARE:DPB-UNBOXED (IF (ZEROP (PROTECTION-COUNT))
						      $$CPDL0-TYPE-OPEN-CALL
                                                    (PROGN (SETF (PROTECTION-COUNT) (1- (PROTECTION-COUNT)))
                                                           $$CPDL0-TYPE-PROTECTED-OPEN-CALL))
						  %%CPDL0-TYPE-CODE
						  (WORD-1)))
		      (WHEN (< (HARDWARE:LDB (THIS-RPC) VINCULUM::%%POINTER 0) 64)
			(SETF (PROTECTION-COUNT) TRAP-CALL-PROTECTION-COUNT))
		      (HARDWARE:WRITE-MD-UNBOXED (HARDWARE:DPB-UNBOXED (ACCUMULATED-BOX-BITS) %%CPDL0-BOX-BITS (WORD-1)))
		      (HARDWARE:VMA-START-WRITE-NO-GC-TRAP-UNBOXED (HARDWARE:24+ (- CONTROL-PDL-FRAME-SIZE)
										 GLOBAL-REGISTERS:*CONTROL-PDL-POINTER*))
		      (HARDWARE:DISPATCH (HARDWARE:24+ 1 GLOBAL-REGISTERS:*CH-DUMPER-RETURN-PC*)))
  )