Google
 

Trailing-Edge - PDP-10 Archives - clisp - clisp/upsala/zboot.cmp
There are no other files named zboot.cmp in the archive.
;COMPARISON OF SS:<CLISP.NEW.UPSALA>BOOT.MID.7 AND SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1
;OPTIONS ARE    /B /E /L /3

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 1-25 (687)
meter%=jsys 766
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 1-25 (687)
xsvec%=jsys 607
meter%=jsys 766
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 2-202 (26399) AFTER bootlp:
bootok:	move nil1,[.fhslf,,ddtpag] ;and the upper 1/4 to codsec (for DDT)
	move w2,[.fhslf,,codsec*1000+ddtpag]
	move w3,[pm%cnt\pm%rd\pm%cpy\ddtsiz]
	pmap
;reset so restart gets us to new context
	movei nil1,.fhslf
	move w2,[4,,evec]
	sevec
;and go to permanent Lisp context
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 2-202 (26416) AFTER bootlp:
bootok:
 ;	move nil1,[.fhslf,,ddtpag] ;and the upper 1/4 to codsec (for DDT)
 ;	move w2,[.fhslf,,codsec*1000+ddtpag]
 ;	move w3,[pm%cnt\pm%rd\pm%cpy\ddtsiz]
 ;	pmap
;reset so restart gets us to new context
	movei nil1,.fhslf
 ;	move w2,[4,,evec]
 ;	sevec
	movei w2,4
	xmovei w3,evec
	xsvec%
;and go to permanent Lisp context
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 2-213 (26722) AFTER bootok:
	xjrstf [0
		codsec,,.+1]
	move w2,[jfcl]
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 2-217 (26792) AFTER bootok:
 ;	xjrstf [0
 ;		codsec,,.+1]
	move w2,[jfcl]
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 2-218 (26805) AFTER bootok:
	move w2,@[shrfil]			;copy funny init var
	movem w2,shrfil				;to section 1
;At the moment, section zero contains just one page, the bootstrap.
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 2-222 (26879) AFTER bootok:
 ;	move w2,@[shrfil]			;copy funny init var
 ;	movem w2,shrfil				;to section 1
;At the moment, section zero contains just one page, the bootstrap.
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 2-226 (27266) AFTER bootok:
	move nil1,[.fhslf,,1000]		;get ident for section 1
	move w2,[.fhslf,,0]
	move w3,[pm%cnt\pm%rd\pm%cpy]
	hrrz w4,bpscod+bps%le			;first address beyond end
	subi w4,1				;last used
	lsh w4,-9.				;last page
	addi w4,1				;number of pages
	hrr w3,w4
  ;The obvious thing is to just do the pmap we just set up.  Alas,
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 2-230 (27344) AFTER bootok:
 ;	move nil1,[.fhslf,,1000]		;get ident for section 1
 ;	move w2,[.fhslf,,0]
 ;	move w3,[pm%cnt\pm%rd\pm%cpy]
 ;	hrrz w4,bpscod+bps%le			;first address beyond end
 ;	subi w4,1				;last used
 ;	lsh w4,-9.				;last page
 ;	addi w4,1				;number of pages
 ;	hrr w3,w4
  ;The obvious thing is to just do the pmap we just set up.  Alas,
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 2-238 (27802) AFTER bootok:
        xjrstf [0
	        0,,.+1]
	pmap
	xjrstf [0
	        codsec,,.+1]
  ;and finish init
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 2-242 (27896) AFTER bootok:
 ;	xjrstf [0
 ;	        0,,.+1]
 ;	pmap
 ;	xjrstf [0
 ;	        codsec,,.+1]
  ;and finish init
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 2-334 (30649) AFTER xsave:
	movei w2,0		;process page
	movei w3,1		;page count
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 2-338 (30746) AFTER xsave:
 ;	movei w2,0		;process page
	movei w2,1000 ;
	movei w3,1		;page count
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 2-409 (33306) AFTER xsave4:
	movei w3,bootev		;vector location
	call dir5		;type 5 (entry vector)
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 2-414 (33423) AFTER xsave4:
 ;	movei w3,bootev		;vector location
	xmovei w3,bootev ;
	call dir5		;type 5 (entry vector)
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 3-50 (39734) AFTER dir7:
ddtpag==760		;start of ddt
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 3-50 (39874) AFTER dir7:
ddtsec==37 ;ddt section
ddtpag==760		;start of ddt
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 6-488 (72658) AFTER gtmod:
	push q,o4		;[Victor] O4, not 04 !!!
;pause
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 6-488 (72823) AFTER gtmod:
	push q,04
;pause
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1193 (560780) AFTER xplbx2:
ifn 0,[	skipl 1(o3)		;[Victor]
	 tloa w2,400000		;[Victor]
	  tlz w2,400000		;[Victor] this sequence prevents oflo
] ;ifn 0
	dadd w2,1(o3)		;add to other digit
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1193 (560919) AFTER xplbx2:
	skipl 1(o3)		;[Victor]
	 tloa w2,400000		;[Victor]
	  tlz w2,400000		;[Victor] this sequence prevents oflo
	dadd w2,1(o3)		;add to other digit
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1245 (562656) AFTER bgt01:
ifn 0,[	xor w3,w2		;[Victor] nope; is it 0 or -1?
	jumpn w3,bgtr2x		;[Victor] no
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1244 (562778) AFTER bgt01:
	xor w3,w2		;[Victor] nope; is it 0 or -1?
	jumpn w3,bgtr2x		;[Victor] no
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1249 (562802) AFTER bgt01:
] ; ifn 0
;;[Victor] commented away (old code)
ife 0,[	jfcl 17,.+1		;nope: is it 0 or -1?
	ashc w2,70.
	jov [ret1]		;no.
	rot w2,1		;move the sign down to the next dw
] ; ife 0
	dpb w2,[.bp (400000),-1(w4)]
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1248 (562917) AFTER bgt01:
;;[Victor] commented away
;	jfcl 17,.+1		;nope: is it 0 or -1?
;	ashc w2,70.
;	jov [ret1]		;no.
;	rot w2,1		;move the sign down to the next dw
	dpb w2,[.bp (400000),-1(w4)]
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1264 (563122) AFTER bgt01:
bgtr2w:
ifn 0,[	aoje w2,bgtr2n		;[Victor] if neg
	sojn w2,bgtr2x		;[Victor] if pos, non-inum
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1261 (563201) AFTER bgt01:
bgtr2w:	aoje w2,bgtr2n		;[Victor] if neg
	sojn w2,bgtr2x		;[Victor] if pos, non-inum
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1277 (563507) AFTER bgtr2n:
] ; ifn 0
;;[Victor] replaced by above (below old code)
ife 0,[	jfcl 17,.+1		;more than 31 significant bits?
	ashc w2,39.
	jov [ret1]		;yes, leave it as is
	ash w2,-4		;no, make it an inum
	maknum w2
	move o1,w2
	ret1
] ; ife 0
;;here w/ 2-wd result in o2/3 that overflowed
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1273 (563577) AFTER bgtr2n:

;;[Victor] replaced by above
;	jfcl 17,.+1		;more than 31 significant bits?
;	ashc w2,39.
;	jov [ret1]		;yes, leave it as is
;	ash w2,-4		;no, make it an inum
;	maknum w2
;	move o1,w2
;	ret1

;;here w/ 2-wd result in o2/3 that overflowed
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1471 (569578) AFTER xdfbx2:
ifn 0,[	skipl 1(o3)		;[Victor]
	 tloa w2,400000		;[Victor]
	  tlz w2,400000		;[Victor] this sequence prevents oflo
] ; ifn 0
	dadd w2,1(o3)		;add to subtrahend
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1467 (569613) AFTER xdfbx2:
	skipl 1(o3)		;[Victor]
	 tloa w2,400000		;[Victor]
	  tlz w2,400000		;[Victor] this sequence prevents oflo
	dadd w2,1(o3)		;add to subtrahend
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1824 (581382) AFTER xtiml1:
ifn 0,[	skipl -1(p)		;[Victor]
	 jrst [	tlo w3,400000	;[Victor]
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1819 (581399) AFTER xtiml1:
	skipl -1(p)		;[Victor]
	 jrst [	tlo w3,400000	;[Victor]
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1830 (581584) AFTER xtiml1:
] ; ifn 0
	tlz w3,400000		;insignificant sign bit
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1825 (581594) AFTER xtiml1:
	tlz w3,400000		;insignificant sign bit
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1835 (581758) AFTER xtiml1:
ifn 0,[	  dadd nil1,[0 ? 1]	;[Victor] Why not?
]
ife 0,[	 jrst [dadd nil1,[0 ? 1] ? jrst .+1] ;propagate carry
]
;Because 1(o3) is the high-order double-word from the last time through
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1829 (581757) AFTER xtiml1:
	  dadd nil1,[0 ? 1]	;[Victor] Why not?
;	 jrst [dadd nil1,[0 ? 1] ? jrst .+1] ;propagate carry
;Because 1(o3) is the high-order double-word from the last time through
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1869 (583324) AFTER xtiml6:
ifn 0,[	skipl 1(o3)		;[Victor]
	 jrst [	tlo w3,400000	;[Victor]
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1861 (583304) AFTER xtiml6:
	skipl 1(o3)		;[Victor]
	 jrst [	tlo w3,400000	;[Victor]
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1875 (583520) AFTER xtiml6:
] ;ifn 0
	tlz w3,400000		;insigificant sign bit
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1867 (583493) AFTER xtiml6:
	tlz w3,400000		;insigificant sign bit
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 42-1879 (583630) AFTER xtiml6:
ifn 0,[	 dadd nil1,[0 ? 1]	;[Victor] 
]
ife 0,[	 jrst [dadd nil1,[0 ? 1] ? jrst .+1] ;propagate carry
]
xtimc7:				;[Victor] 
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 42-1870 (583593) AFTER xtiml6:
	 dadd nil1,[0 ? 1]	;[Victor] 
;	 jrst [dadd nil1,[0 ? 1] ? jrst .+1] ;propagate carry
xtimc7:				;[Victor] 
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 45-106 (676060) AFTER sxarry:
;;; [PEM]: Don't loop on circular objects. With a reasonable limit
;;;        in sxcnsc the hash code will be good enough anyway.

	.vector sxcnsc		;[PEM,Victor] 

;;TY%XCN
;;TY%XRT
;;TYPES
;[Victor] Skip if not cons or ratio (the types hashed with sxcons)
define sncnrt(x)
	xtype x
	caie w2,ty%xcn
	 cain w2,ty%xrt
	  skipa
	termin

sxcons:	movei w2,17.		;[PEM,Victor] Reset limit to seventeen
	movem w2,sxcnsc		;[PEM,Victor] 
	call sxcns		;[PEM] Call the hash function
	retn			;[PEM] 

sxcns2:	aos (p)			;[PEM] Return +2
sxcns:	sosg sxcnsc		;[PEM] Enough?
	 jrst sxcns1		;[PEM] Yes, return 1
	push q,1(o1)		;for a cons cell:
	move o1,(o1)		;take the sxhash of the car
	sncnrt o1		;[PEM,Victor] Hashed with sxcons?
	 call sxcns2		;[PEM] Yes. Recurse but return to .+2
	call sxhash
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 45-106 (676004) AFTER sxarry:
sxcons:	push q,1(o1)		;for a cons cell:
	move o1,(o1)		;take the sxhash of the car
	call sxhash
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 45-138 (676963) AFTER sxcns:
	sncnrt o1		;[PEM,Victor] Hashed with sxcons?
	 call sxcns2		;[PEM] Yes. Recurse but return to .+2
	call sxhash
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 45-112 (676195) AFTER sxcons:
	call sxhash
***************

**** FILE SS:<CLISP.NEW.UPSALA>BOOT.MID.7, 45-147 (677212) AFTER sxcns:
sxcns1:	movei o1,1		;[PEM] Return one
	maknum o1		;[PEM] Lisp number
	retn			;[PEM] 

; channel.  There are no characteristics that will survive closing
**** FILE SS:<CLISP.NEW.UPSALA>ZBOOT.MID.1, 45-119 (676343) AFTER sxcons:
; channel.  There are no characteristics that will survive closing
***************