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
***************