$ od -c -N 50000 [Indigo]<AltoSource>VMEM.DM!2
0000000 377 \0 \0 t e s t v m e m . b c p l
0000020 \0 376 001 \0 300 d / / \r / / T e s t
0000040 p r o g r a m f o r V M E
0000060 M \r / / l a s t e d i t e d
0000100 A u g u s t 1 , 1 9 7 7
0000120 4 : 0 8 P M \r / / \r / / C
0000140 o p y r i g h t X e r o x C
0000160 o r p o r a t i o n 1 9 7 9 \r
0000200 \r \t g e t " s t r e a m s . d
0000220 " \r \t g e t " a l t o f i l e
0000240 s y s . d " \r \r e x t e r n a l
0000260 \r [ \t \t / / O . S . \r \t C r e
0000300 a t e D i s p l a y S t r e a m
0000320 ; S h o w D i s p l a y S t r
0000340 e a m \r \t O p e n F i l e \r \t C
0000360 l o s e s ; G e t s ; P u t
0000400 s ; W o s ; W s ; W s s \r
0000420 \t Z e r o \r 376 001 \0 233 205 \t T i m e
0000440 r \r \t d s p ; k e y s \r \t \t /
0000460 / S T A N D A R D R A M \r \t S
0000500 t a n d a r d R A M \r \t \t / /
0000520 T e m p l a t e \r \t P u t T e m
0000540 p l a t e \r \t \t / / T r a c e
0000560 \r \t T r a c e ; P r o c T r a
0000600 c e ; U n T r a c e \r \t T r a
0000620 c e I n d e n t \r \t T r a c e S
0000640 t r e a m ; T r a c e O u t s
0000660 ; T r a c e L i n e s \r \t \t /
0000700 / V M E M \r \t V m e m S o f t
0000720 \r \t I n i t i a l i z e V m e m
0000740 \r \t A d d B u f f e r s ; S n
0000760 a r f B u f f e r ; U n s n a
0001000 r f B u f f e r \r \t M A P T R A
0001020 P ; L o c k C e l l 376 001 \0 224 5
0001040 ; U n l o c k C e l l \r \t F l
0001060 u s h B u f f e r s \r \t \t / /
0001100 P R I N T V M E M S T A T E \r \t
0001120 P r i n t V m e m S t a t e \r \t
0001140 \t / / S O F T M A P \r \t N P R
0001160 O B E \r \t \t / / A S M A P \r \t
0001200 @ V R R 1 ; @ V W R 1 ; @ V
0001220 R R 2 ; @ V W R 2 \r ] \r \r e x
0001240 t e r n a l \t / / e n t r i e
0001260 s f o r V M E M \r [ \t C l e
0001300 a n u p L o c k s \r \t P a g e T
0001320 y p e \r \t P a g e G r o u p S i
0001340 z e \r \t P a g e G r o u p B a s
0001360 e \r \t P a g e G r o u p A l i g
0001400 n \r \t D O P A G E I O \r ] \r \r e
0001420 x t e r n a l \t / / l i n k s
0001440 376 001 \0 . 276 t o I S F \r [ \t I
0001460 n i t F m a p \r \t I n d e x e d
0001500 P a g e I O \r ] \r \r \r m a n i f
0001520 e s t \r [ \t d s i z e = 2 5
0001540 0 0 0 \r \t n p a g e s = # 2
0001560 0 \r \t m a p s = # 1 0 0 0 \r
0001600 \t d b s = # 3 0 0 0 \r ] \r \r
0001620 s t a t i c \r [ \t p b a s e =
0001640 4 \r \t p g m s k \r \t p s t r m
0001660 \r \t d b u f s \r \t d h m \r \t d s
0001700 \r \t f m a p \r ] \r \r l e t d m
0001720 a p ( ) b e \r [ \t S t a n d a
0001740 r d R A M ( ) \r \t l e t d d
0001760 = v e c d s i z e \r \t d s
0002000 = C r e a t e D i s p l a y S
0002020 t r e a m ( 4 0 , d d , d s
0002040 i z e ) \r 376 001 \0 327 345 \t S h o w D
0002060 i s p l a y S t r e a m ( d s )
0002100 \r \t T r a c e L i n e s = 6
0002120 \r \t T r a c e S t r e a m =
0002140 d s \r \t T r a c e ( M A P T R A
0002160 P , " M A P T R A P " ) \r \t T
0002200 r a c e ( v w r i t e , " V W
0002220 R I T E " ) \r \t l e t d b p t
0002240 = v e c # 4 0 0 \r \t l e t
0002260 d h m a p = v e c m a p
0002300 s + 3 \r \t i f ( d h m a p & 1
0002320 ) n e 0 t h e n d h m a
0002340 p = d h m a p + 1 \r \t d h m
0002360 = d h m a p + 2 \r \t l e t
0002400 d b = v e c d b s \r \t d b
0002420 u f s = d b \r \t Z e r o ( d
0002440 b u f s , d b s ) 376 001 \0 215 025 \r
0002460 \t l e t d c e l l s = v e
0002500 c 5 \r \t l e t d a v e c =
0002520 v e c n p a g e s * 2 + 1 \r
0002540 \t l e t f p = v e c l F
0002560 P \r \t Z e r o ( f p , l F P )
0002600 \r \t p s t r m = O p e n F i
0002620 l e ( " T E S T . V M E M . " ,
0002640 k s T y p e R e a d W r i t e
0002660 , w o r d I t e m , 0 , f
0002700 p ) \r \t C l o s e s ( p s t r m
0002720 ) \r \t p g m s k = 0 \r \t V m
0002740 e m S o f t ( ) \r \t I n i t i a
0002760 l i z e V m e m ( d h m a p + 2
0003000 , m a p s , d b p t , d c
0003020 e l l s , 5 , d h m a p ,
0003040 p m s t a t ) \r \t I n i t F m 376
0003060 001 \0 346 U a p ( d a v e c , n p
0003100 a g e s * 2 , f p , t r u e
0003120 ) \r \t f m a p = d a v e c \r
0003140 \t A d d B u f f e r s ( d b u f
0003160 s , d b u f s + d b s ) \r \t p
0003200 a u s e ( " I n i t i a l i z e
0003220 d . . . " ) \r \t f o r j =
0003240 0 t o 6 d o \r \t [ v
0003260 w r i t e ( t e s t a d d r ( j
0003300 ) ) ! 0 = t e s t v a l u e
0003320 ( j ) ; n z s c a n ( ) ] \r
0003340 \t f o r j = 0 t o 6
0003360 d o \r \t [ l e t v a l =
0003400 v w r i t e ( t e s t a d d r
0003420 ( j ) ) ! 0 \r \t W o s ( d
0003440 s , v a l ) \r \t i f v
0003460 a l n 376 001 \0 236 \v e t e s t v
0003500 a l u e ( j ) t h e n W s s
0003520 ( T r a c e O u t s , " ? ?
0003540 ? ? ? ? ? ? ? ? " ) \r \t P
0003560 u t s ( T r a c e O u t s , $
0003600 * N ) \r \t n z s c a n ( )
0003620 \r \t ] \r \t F l u s h B u f f e
0003640 r s ( ) \r \t P r i n t V m e m S
0003660 t a t e ( d s ) \r \t W s s ( T r
0003700 a c e O u t s , " D o n e * N
0003720 " ) \r \t p a u s e ( " D o n e
0003740 . . . " ) \r ] \r \r a n d t e s
0003760 t a d d r ( j ) = \r \t p b a s
0004000 e l s h i f t 8 + ( t a
0004020 b l e [ # 4 4 4 ; # 1 1 1 1 ;
0004040 # 1 5 5 5 ; # 2 2 2 2 ; # 2 6 6
0004060 6 ; # 3 3 3 3 ; # 376 001 \0 316 = 3 7
0004100 7 7 ] ) ! j \r \r a n d t e s
0004120 t v a l u e ( j ) = # 1 1 1
0004140 0 0 0 + j \r \r a n d p a u s e
0004160 ( s ) b e \r [ \t W s ( s ) \r \t
0004200 G e t s ( k e y s ) \r \t P u t s
0004220 ( d s p , $ * N ) \r ] \r \r a n
0004240 d n z s c a n ( ) b e \r [ \t
0004260 f o r p = d b u f s t o
0004300 d b u f s + d b s - 1 d o
0004320 i f @ p n e 0 t h e n \r
0004340 \t P u t T e m p l a t e (
0004360 T r a c e O u t s , " . . . $
0004400 7 U O : $ 7 U O * N " , p ,
0004420 @ p ) \r \t f o r p = d h m
0004440 b y 2 t o d h m + m a p
0004460 s - 2 d o i f @ p n 376 001
0004500 \0 : l e 0 t h e n \r \t
0004520 P u t T e m p l a t e ( T r a c
0004540 e O u t s , " $ 3 U O : $ 7 U
0004560 O $ 7 U O * N " , p - d h m ,
0004600 @ p , p ! 1 ) \r ] \r \r a n d
0004620 v w r i t e ( a d d r ) =
0004640 V W R 1 ( a d d r ) \r \r a n d
0004660 C l e a n u p L o c k s ( ) b
0004700 e [ ] \r \r a n d P a g e T
0004720 y p e ( v p ) = v a l o f \r
0004740 [ \t l e t p n = v p - p b
0004760 a s e \r \t i f ( p n & # 1
0005000 7 7 7 7 0 ) n e 0 t h e n
0005020 p a u s e ( " B a d v p " )
0005040 \r \t l e t m a s k = 1 l
0005060 s h i f t p n \r \t i f ( p g
0005100 m s k 376 001 \0 \f 343 & m a s k )
0005120 n e 0 r e s u l t i s 1
0005140 \r \t p g m s k = p g m s k
0005160 + m a s k \r \t r e s u l t i s
0005200 - 1 \r ] \r \r a n d P a g e G
0005220 r o u p S i z e ( v p ) = 1
0005240 \r a n d P a g e G r o u p B a
0005260 s e ( v p ) = v p \r a n d
0005300 P a g e G r o u p A l i g n ( v
0005320 p ) = 0 \r \r a n d D O P A
0005340 G E I O ( v p , c o r e , n
0005360 p , w f l a g ) b e \r [ \t l
0005400 e t t = v e c 1 \r \t l e
0005420 t i t = T i m e r ( t ) \r
0005440 \t I n d e x e d P a g e I O ( f
0005460 m a p , 3 * v p + 2 , c o r
0005500 e , n p , w 376 001 \0 , 377 f l a
0005520 g ) \r \t P u t T e m p l a t e (
0005540 T r a c e O u t s , " $ S v
0005560 p $ U O , $ U O p a g e (
0005600 s ) , c o r e $ U O : $ U
0005620 D m s * N " , \r \t ( w f l
0005640 a g ? " W r i t e " , " R e
0005660 a d " ) , v p , n p , c o
0005700 r e , T i m e r ( t ) - i t )
0005720 \r ] \r \r a n d p m s t a t ( p
0005740 t r , n ) b e \r [ \t P u t T
0005760 e m p l a t e ( T r a c e O u t
0006000 s , " M S P R O C c a l l e
0006020 d w i t h $ 7 U O $ 7 U O * N
0006040 " , p t r , n ) \r \t i f n
0006060 g e 0 t h e n \r \t f o r
0006100 p = p t r b y 2 376 \0 D
0006120 336 C t o p t r + n - 2 d o
0006140 \r \t P u t T e m p l a t e
0006160 ( T r a c e O u t s , " $ 9 U
0006200 O $ 7 U O * N " , p ! 0 , p
0006220 ! 1 ) \r ] \r 377 \0 \0 v m e m . d \0
0006240 376 001 \0 h 271 / / \r / / D e f i n
0006260 i t i o n s f o r V M E M
0006300 p a c k a g e \r / / l a s t
0006320 e d i t e d D e c e m b e r
0006340 1 8 , 1 9 7 8 9 : 1 0 A
0006360 M \r / / \r / / C o p y r i g h
0006400 t X e r o x C o r p o r a t
0006420 i o n 1 9 7 9 \r \r \r s t r u c
0006440 t u r e B P T : \r [ \t H A S H
0006460 X b y t e \r \t N E X T b y t
0006500 e \t / / N E X T M U S T B
0006520 E I N L O W P A R T O F
0006540 W O R D \r \t \t \t / / ( F O R
0006560 @ b p t ) \r ] \r m a n i f e s
0006600 t N E X T m a s k = # 3 7
0006620 7 \r \r s t r u c t u r e H M :
0006640 \r [ \t N K 376 001 \0 h Q E Y w o r
0006660 d \t / / 1 ' s c o m p l e m
0006700 e n t o f k e y \r \t F L A G
0006720 W D w o r d = \r \t [ P D
0006740 I F b i t 8 \t / / r e a l
0006760 p a g e # - v i r t u a
0007000 l A C 1 [ 0 : 7 ] \r \t F
0007020 L A G S b i t 8 = \r \t
0007040 [ W G R O U P b i t 1
0007060 \t / / t h i s i s a w r
0007100 i t e g r o u p \r \t
0007120 G R O U P b i t 2 = \r \t
0007140 [ N F P G b i
0007160 t 1 \t / / n o t f i r s t
0007200 p a g e o f g r o u p \r \t
0007220 N L P G b i
0007240 t 1 \t / / n o t 376 001 \0 { 243
0007260 l a s t p a g e o f g r o
0007300 u p \r \t ] \r \t
0007320 b l a n k b i t 1 \r
0007340 \t D U M M Y b i t
0007360 1 \r \t N O T R E F
0007400 b i t 1 \t / / * * * u s
0007420 e d b y m i c r o c o d e \r
0007440 \t C L E A N b i t
0007460 1 \t / / * * * u s e d b
0007500 y m i c r o c o d e \r \t
0007520 b l a n k b i t 1 \r \t
0007540 ] \r \t ] \r ] \r m a n i
0007560 f e s t H M f l a g O f f s e
0007600 t = 1 \r \r s t r u c t u r e
0007620 L C : \r [ \t a d d r w o r d
0007640 \r \t p r o c w o r d \r ] \r m 376
0007660 001 \0 245 344 a n i f e s t L C s i
0007700 z e = 2 \r \r m a n i f e s t
0007720 \r [ \t P S = 8 \t \t / / L O
0007740 G 2 ( V M P A G E S I Z E )
0007760 \r \t W M = ( 1 l s h i f t
0010000 P S ) - 1 \r \t R e p I n c =
0010020 2 6 \t / / h a s h m a p
0010040 r e p r o b e i n c r e m e n
0010060 t \r \t B p t S i z e = # 4 0
0010100 0 \t / / # o f b u f f e r
0010120 s \r \t E m p t y V P = - 2 \t
0010140 / / p s e u d o V P f o r
0010160 e m p t y b u f f e r s \r \t
0010200 N a V P = - 3 \t / / p s e
0010220 u d o V P f o r u n a v a
0010240 i l a b l e b u f f e r s \r \t
0010260 M i n D 376 \0 230 217 371 u m m y V P
0010300 = - 8 \r ] \r \r m a n i f e s t
0010320 \r [ \t C L E A N b i t = # 2
0010340 \r \t N O T R E F b i t = # 4
0010360 \r \t D U M M Y b i t = # 1 0
0010400 \r \t N L P G b i t = # 4 0 \r
0010420 \t N F P G b i t = # 1 0 0 \r
0010440 \t G R O U P b i t s = N L P
0010460 G b i t + N F P G b i t \r \t W G
0010500 R O U P b i t = # 2 0 0 \r ]
0010520 \r 377 \0 \0 v m e m . b c p l \0 376 001
0010540 \0 336 376 / / \r / / V M E M -
0010560 v i r t u a l m e m o r y
0010600 p a c k a g e \r / / l a s t
0010620 e d i t e d S e p t e m b e r
0010640 1 5 , 1 9 7 7 3 : 1 0
0010660 P M \r / / \r / / C o p y r i g
0010700 h t X e r o x C o r p o r a
0010720 t i o n 1 9 7 9 \r \r \t g e t
0010740 " v m e m . d " \r \r e x t e r n
0010760 a l \t / / e n t r y p r o c
0011000 e d u r e s \r [ \t L o c k O n l
0011020 y ; L o c k R e l o c ; L o
0011040 c k Z e r o \t / / ( a d d r ,
0011060 n e w , f l a g ) - > o
0011100 k \r \t \t / / ( f r o m a s s
0011120 e m b l y c o d e ) \r \t M A P
0011140 T R A 376 001 \0 221 361 P \t / / ( v p
0011160 a g e , w f l a g , h p t r
0011200 ) \r \t L o c k C e l l \t / / (
0011220 l v l o c k [ , p r o c ] ) \r
0011240 \t U n l o c k C e l l \t / / (
0011260 l v l o c k ) \r \t \t / / f o r
0011300 V M E M A U X \r \t F i n d F r
0011320 e e B u f \r \t d e f a u l t N o
0011340 B u f s P r o c \r \t F l u s h B
0011360 u f s \r \t F l u s h M a p S t a
0011400 t s \r \t D o L o c k s \r ] \r \r e
0011420 x t e r n a l \t / / e n t r y
0011440 s t a t i c s \r [ \t @ H A S H
0011460 M A P ; @ H A S H M A P S I Z
0011500 E ; @ H A S H M A P M A S K \r
0011520 \t M A P S T A T B A S E \r \t @ M
0011540 a p S t a t P t 376 001 \0 ; n r \r \t
0011560 S O F T M A P F L A G \r \t C h e
0011600 c k B P T f l a g \r \t @ R e p r
0011620 o b e I n c \r \t \t / / f o r
0011640 V M E M A U X \r \t @ H A S H M A
0011660 P S I Z E 2 \r \t @ H A S H M A P
0011700 1 \r \t @ H A S H M A P T O P \r \t
0011720 E M P T Y X X \r \t N A X X \r \t M
0011740 a p S t a t P r o c \r \t N o B u
0011760 f s P r o c \r \t @ B p t ; @ B
0012000 p t L a s t \r \t L o c k e d C e
0012020 l l s ; E n d L o c k e d C e
0012040 l l s ; L a s t L o c k e d C
0012060 e l l \r ] \r \r e x t e r n a l \t
0012100 / / p r o c e d u r e s \r [ \t
0012120 \t / / O . S . \r \t M o v e B l
0012140 o c k ; S e t B l o c k 376 001 \0
0012160 6 320 ; Z e r o \r \t T i m e r \r
0012200 \t C a l l S w a t \r \t U s c \r \t
0012220 D o u b l e A d d \r \t \t / / A
0012240 S M A P \r \t R E H A S H M A P \r
0012260 \t \t / / U s e r - s u p p l i
0012300 e d \r \t C l e a n u p L o c k s
0012320 \t / / ( ) \r \t D O P A G E I O
0012340 \t / / ( V P , c o r e , #
0012360 o f p a g e s , w r i t e
0012400 f l a g ) \r \t P a g e G r o u
0012420 p B a s e \t / / ( V P ) - >
0012440 V P \r \t P a g e G r o u p S i
0012460 z e \t / / ( V P ) - > #
0012500 o f p a g e s & w r i t e
0012520 g r o u p f l a g \r \t P a g
0012540 e G r o u p A l i g n \t / / (
0012560 V P 376 001 \0 004 P ) - > c o r e
0012600 a l i g n m e n t m a s k \r
0012620 \t P a g e T y p e \t / / ( V P
0012640 ) - > n e w p a g e f l
0012660 a g \r ] \r \r e x t e r n a l \t /
0012700 / s t a t i c s \r [ \t \t / /
0012720 O . S . \r \t @ o n e B i t s \r ]
0012740 \r \r \r s t a t i c \r [ \t H A S H
0012760 M A P \r \t H A S H M A P S I Z E
0013000 \t / / M U S T B E P O W E
0013020 R O F 2 \r \t H A S H M A P S
0013040 I Z E 2 \r \t H A S H M A P M A S
0013060 K \r \t H A S H M A P 1 \r \t H A S
0013100 H M A P T O P \r \t M A P S T A T
0013120 B A S E \r \t M a p S t a t P t r
0013140 \r \t S O F T M A P F L A G =
0013160 f a l s e \r \t 376 001 \0 ; \b E M P T
0013200 Y X X \t \t / / H A S H X o f
0013220 e m p t y b u f f e r s ,
0013240 l s h i f t 8 \r \t N A X X \t /
0013260 / H A S H X o f u n a v a
0013300 i l a b l e b u f f e r s ,
0013320 l s h i f t 8 \r \t M a p S t a
0013340 t P r o c \t / / m a p s t a
0013360 t i s t i c s p r o c e d u r
0013400 e \r \t B p t ; B p t L a s t \r
0013420 \t N o B u f s P r o c \r \t L o c
0013440 k e d C e l l s ; L a s t L o
0013460 c k e d C e l l ; E n d L o c
0013500 k e d C e l l s \r \t C h e c k B
0013520 P T f l a g = f a l s e \r \t
0013540 R e p r o b e I n c = R e p
0013560 I n c \r \t A n y D i r t 376 001 \0 275
0013600 c y \r \t L a s t T r a p T i m e
0013620 = 0 \r \t T S A = 0 ; T
0013640 S A 1 = 0 \r \t A g i n g I n
0013660 t e r v a l = 0 \r \t R e f L
0013700 o c k e d C e l l s = t r u
0013720 e \r \t L o c k O n l y \t / / =
0013740 F a l s e P r e d i c a t e \r
0013760 \t L o c k Z e r o \t / / = T
0014000 r u e P r e d i c a t e \r ] \r \r
0014020 \r / / P R O C E S S M A P
0014040 T R A P , C A L L E D F R
0014060 O M A S S E M B L Y C O D E
0014100 \r \r l e t M A P T R A P ( V P
0014120 G , W F L A G , H P T R )
0014140 b e \r [ \t C l e a n u p L o c k
0014160 s ( ) \r \t i f F l u s h M a p
0014200 S 376 001 \0 G 030 t a t s ( ) t h e
0014220 n r e t u r n \t / / s t a t
0014240 i s t i c s b u f f e r w a
0014260 s f u l l \r \t i f U s c ( V
0014300 P G , M i n D u m m y V P )
0014320 g e 0 t h e n C a l l S w
0014340 a t ( " I l l e g a l V P " )
0014360 \r \t i f @ H P T R n e 0
0014400 t h e n \r \t [ \t / / F I R S
0014420 T W R I T E T O C L E A N
0014440 P A G E \r \t H P T R > >
0014460 H M . C L E A N = 0 \r \t
0014500 A n y D i r t y = t r u e
0014520 \r \t r e t u r n \r \t ] \r
0014540 \r \t l e t t t v = v e c
0014560 1 \r \t t t v ! 1 = T i m e r
0014600 ( t t v ) - 376 001 \0 ~ . L a s t T
0014620 r a p T i m e \r \t t t v ! 0 =
0014640 0 \r \t D o u b l e A d d ( l v
0014660 T S A , t t v ) \r \r \t l e t
0014700 p t y p e = P a g e T y p
0014720 e ( V P G , W F L A G ) \r \t l
0014740 e t N E W P A G E F L A G =
0014760 s e l e c t o n p t y p e
0015000 i n t o \r \t [ c a s e 1 :
0015020 f a l s e \r \t c a s e
0015040 - 1 : t r u e \r \t d e f
0015060 a u l t : C a l l S w a t ( "
0015100 B a d P a g e T y p e " ) \r \t
0015120 ] \r \r \t l e t V P A G E =
0015140 P a g e G r o u p B a s e ( V
0015160 P G ) \r \t l e t V N P G S =
0015200 P a g e G r o u p S 376 001 \0 A 212
0015220 i z e ( V P A G E ) \r \t l e t
0015240 A L I G N = P a g e G r o u
0015260 p A l i g n ( V P A G E ) \r \r \t
0015300 l e t W G = 0 \r \t i f V
0015320 N P G S l s 0 t h e n \t /
0015340 / t h i s i s a w r i t
0015360 e g r o u p \r \t W G ,
0015400 V N P G S = W G R O U P b i
0015420 t , - V N P G S \r \r / / M
0015440 a r k l o c k e d p a g e s
0015460 a s r e f e r e n c e d \r \t
0015500 i f R e f L o c k e d C e l l
0015520 s t h e n \r \t f o r I =
0015540 L o c k e d C e l l s b y
0015560 L C s i z e t o L a s t L o
0015600 c k e d C e l l - L C s i z e
0015620 376 001 \0 257 ] d o \r \t u n l e s
0015640 s ( I > > L C . p r o c ) ( I
0015660 > > L C . a d d r , 0 , f a
0015700 l s e ) d o \r \t [ l e t
0015720 h p = H A S H M A P 1 + ( B
0015740 p t + @ ( I > > L C . a d d r )
0015760 r s h i f t P S ) > > B P T
0016000 . H A S H X * 2 \r \t i f
0016020 ( @ h p & D U M M Y b i t )
0016040 e q 0 t h e n @ h p =
0016060 @ h p & n o t N O T R E
0016100 F b i t \r \t ] \r \r / / F L
0016120 U S H B u f f e r \r \r \t l e t
0016140 t n = n i l \r \t [ t n
0016160 = F i n d F r e e B u f ( V
0016200 N P G S , A L I G N , 0 ) \r
0016220 \t i 376 001 \0 324 \t f t n n
0016240 e 0 b r e a k \r \t N o
0016260 B u f s P r o c ( ) \r \t ] r
0016300 e p e a t \r \r \t F l u s h B u f
0016320 s ( t n , V N P G S , - 1 )
0016340 \r \r / / R E A D I N N E
0016360 W P A G E \r \r \t l e t C O R
0016400 E = t n l s h i f t P S
0016420 \r \t t e s t N E W P A G E F L
0016440 A G \r \t i f s o Z e r o ( C
0016460 O R E , V N P G S l s h i f
0016500 t P S ) \r \t i f n o t D
0016520 O P A G E I O ( V P A G E , C
0016540 O R E , V N P G S , f a l s
0016560 e ) \r \r / / R e o r d e r
0016600 b u f f e r s \r \r \t i f ( T S
0016620 A n e 0 ) % 376 001 \0 $ 260 (
0016640 U s c ( T S A 1 , A g i n g I
0016660 n t e r v a l ) g e 0 ) t
0016700 h e n \r \t [ T S A , T S A
0016720 1 = 0 , 0 \r \t U p d
0016740 a t e C h a i n ( ) \r \t ] \r \t
0016760 A D D T O M A P ( t n , V N P
0017000 G S , V P A G E , ( N E W P
0017020 A G E F L A G % W F L A G ?
0017040 0 , C L E A N b i t ) + W G
0017060 ) \r \r \t C h e c k B P T ( ) \r \r
0017100 \t L a s t T r a p T i m e =
0017120 T i m e r ( t t v ) \r \r ] \r \r a
0017140 n d d e f a u l t N o B u f s
0017160 P r o c ( ) b e \r \t C a l l S
0017200 w a t ( " N o f r e e b u f
0017220 f e r ( s ) " ) \r \r a n d F 376
0017240 001 \0 262 342 l u s h M a p S t a t s
0017260 ( ) = v a l o f \r [ \t i f
0017300 M A P S T A T B A S E e q 0
0017320 r e s u l t i s f a l s e \r
0017340 \t l e t n = M a p S t a t
0017360 P t r - M A P S T A T B A S E \r
0017400 \t M a p S t a t P t r = M A
0017420 P S T A T B A S E \r \t / / I f
0017440 u s i n g t h e R A M ,
0017460 M a p S t a t P r o c m u s t
0017500 r e s e t t h e \r \t / /
0017520 R r e g i s t e r i t s e
0017540 l f a n d r e t u r n t h
0017560 e o l d v a l u e \r \t i f
0017600 M a p S t a t P r o c n e 0
0017620 t h e n \r \t [ l e t r
0017640 = M a 376 001 \0 \0 O p S t a t P r
0017660 o c ( M A P S T A T B A S E ,
0017700 n ) \r \t u n l e s s S O
0017720 F T M A P F L A G d o n =
0017740 r \r \t ] \r \t r e s u l t i s
0017760 n e q H A S H M A P - M A
0020000 P S T A T B A S E \r ] \r \r a n d
0020020 g e t g r o u p ( i , m a s
0020040 k , d ) = v a l o f \r [ \t
0020060 w h i l e ( ( H A S H M A P +
0020100 ( B p t + i ) > > B P T . H A S
0020120 H X * 2 ) > > H M . F L A G W D
0020140 & m a s k ) n e 0 d o
0020160 \r \t i = i + d \r \t r e
0020200 s u l t i s i \r ] \r \r a n d
0020220 F i n d F r e e B u f ( n b ,
0020240 m a s k , w a n 376 001 \0 363 7 t e
0020260 d ) = v a l o f \r [ \t l e t
0020300 t n = @ B p t \r \t l e t
0020320 b l k = v e c B p t S i z
0020340 e \r \t / / b l k ! i e
0020360 q 0 m e a n s p a g e n
0020400 o t r e a c h e d y e t \r \t
0020420 / / b l k ! i g r 0
0020440 m e a n s b u f f e r b l
0020460 k ! i i s f i r s t o f
0020500 a v a i l a b l e b l o c k \r
0020520 \t / / b l k ! i l s
0020540 0 m e a n s b u f f e r i
0020560 b e g i n s a v . b l o c
0020600 k o f l e n g t h - b l k
0020620 ! i \r \t Z e r o ( b l k , B p
0020640 t S i z e ) \r \t w h i l e 376 001
0020660 \0 V 3 t n n e 0 d o \r \t
0020700 [ l e t b t n = n i l \r
0020720 \t i f D o L o c k s ( t
0020740 n l s h i f t P S , 0 ,
0020760 f a l s e ) g o t o b o t 1
0021000 \r \t b l k ! t n = - 1
0021020 \r \t b t n = m e r g e
0021040 b l o c k s ( t n , b l k ) \r
0021060 \t i f ( ( - b t n &
0021100 m a s k ) + b l k ! b t n + n b
0021120 l e 0 ) & ( ( H A S H M
0021140 A P + ( B p t + b t n ) > > B P
0021160 T . H A S H X * 2 ) > > H M . N
0021200 F P G e q 0 ) t h e n \r \t
0021220 [ l e t r t n =
0021240 b t n + ( - b t n & m a s k
0021260 ) \r \t 376 001 \0 275 " i f
0021300 ( w a n t e d e q 0 ) %
0021320 ( ( w a n t e d g e r t n
0021340 ) & ( w a n t e d l s b
0021360 t n - b l k ! b t n ) ) r e s
0021400 u l t i s r t n \r \t ]
0021420 \r b o t 1 : \t t n = B
0021440 p t ! t n & N E X T m a s k
0021460 \r \t ] \r \t r e s u l t i s 0
0021500 \r ] \r \r a n d m e r g e b l o
0021520 c k s ( o t n , b l k ) =
0021540 v a l o f \r / / A v a i l a b
0021560 l e b l o c k s a r e o f
0021600 f o u r t y p e s : \r / /
0021620 c l o s e d ( C ) , c o n s
0021640 i s t i n g o f a n i n t
0021660 e g r a l n u 376 001 \0 211 234 m b e
0021700 r o f s i n g l e p a g e
0021720 s a n d c o m p l e t e p
0021740 a g e g r o u p s ; \r / / h
0021760 e a d ( H ) , c o n s i s t
0022000 i n g o n l y o f s o m e
0022020 i n i t i a l p a g e s o
0022040 f a p a g e g r o u p ; \r
0022060 / / t a i l ( T ) , c o n
0022100 s i s t i n g o n l y o f
0022120 s o m e f i n a l p a g e s
0022140 o f a p a g e g r o u p
0022160 ; \r / / i n t e r i o r ( I
0022200 ) , c o n s i s t i n g o n
0022220 l y o f s o m e i n t e r
0022240 i o r p a g e s o f a p
0022260 a g e g r o u p . \r / / 376 001 \0
0022300 S z T h e f o l l o w i n g
0022320 t a b l e s p e c i f i e s
0022340 w h e t h e r a g i v e n
0022360 p a i r o f a d j a c e n
0022400 t b l o c k s \r / / m a
0022420 y b e m e r g e d ( g i v
0022440 e s t h e t y p e o f t
0022460 h e m e r g e d b l o c k )
0022500 , \r / / m u s t b e l
0022520 e f t s e p a r a t e ( - )
0022540 , \r / / o r i s i m p
0022560 o s s i b l e ( ? ) : \r / /
0022600 C H I T \r / / C
0022620 C - ? ? \r / / H
0022640 ? ? H C \r / / I
0022660 ? ? I T \r / / T
0022700 376 001 \0 350 216 - - ?
0022720 ? \r / / I t i s e a s y
0022740 t o d i s t i n g u i s h b
0022760 l o c k t y p e s o n t h
0023000 e b a s i s o f \r / /
0023020 t h e g r o u p b i t s i
0023040 n t h e i r f i r s t a n
0023060 d l a s t p a g e s : \r / /
0023100 C h a s ( ~ N F , ~ N L )
0023120 ; \r / / H h a s ( ~ N F +
0023140 N L , N F + N L ) ; \r / / T
0023160 h a s ( N F + N L , N F + ~ N
0023200 L ) ; \r / / I h a s ( N F
0023220 + N L , N F + N L ) . \r / / W
0023240 h e n w e w a n t t o a
0023260 d d a p a g e t o t h e
0023300 s e t a v 376 001 \0 8 \n a i l a
0023320 b l e a s c a n d i d a t e
0023340 s f o r r e p l a c e m e n
0023360 t , \r / / w e f i r s t
0023400 c o n v e r t i t i n t o
0023420 a o n e - p a g e b l o c
0023440 k o f t h e a p p r o p r
0023460 i a t e t y p e , \r / /
0023500 a n d t h e n d o m e r g
0023520 i n g a c c o r d i n g t o
0023540 t h e t a b l e a b o v e
0023560 . \r / / I n f a c t , i t
0023600 i s e a s i e s t t o d
0023620 e t e c t t h e c a s e s
0023640 w h e r e m e r g i n g i s
0023660 f o r b i d d e n ( T x o
0023700 r x H ) , \r / / 376 001 \0 366
0023720 234 a n d m e r g e i n a l
0023740 l o t h e r c a s e s . \r [
0023760 \t l e t t n = o t n \r \r [
0024000 \t l e t b p = b l k + t n
0024020 \r \t i f @ b p e q 0 t h
0024040 e n \r \t [ b p = b l k +
0024060 o t n \r \t r e s u l t i s
0024100 ( @ b p l s 0 ? o t n ,
0024120 @ b p ) \r \t ] \r \t l e t t
0024140 n 0 = ( @ b p l s 0 ?
0024160 t n , @ b p ) \r [ \t l e t
0024200 b p 1 = b p + 1 \r \t i f
0024220 @ b p 1 e q 0 g o t o d
0024240 o w n \r \t l e t t p = B p
0024260 t + t n \r \t i f ( H A S H M A
0024300 P 1 ! ( ( B p t + t n 0 ) > > B
0024320 P 376 001 \0 257 210 T . H A S H X * 2 )
0024340 & N F P G b i t ) n e 0 t
0024360 h e n \r \t i f ( ( H A S H
0024400 M A P 1 ! ( t p > > B P T . H A
0024420 S H X * 2 ) ) & N L P G b i t )
0024440 e q 0 t h e n \t / / T x
0024460 , c a n ' t m e r g e \r \t
0024500 g o t o d o w n \r \t i f
0024520 ( H A S H M A P 1 ! ( ( t p -
0024540 @ b p 1 ) > > B P T . H A S H X
0024560 * 2 ) & N L P G b i t ) n e
0024600 0 t h e n \r \t i f ( ( H
0024620 A S H M A P 1 ! ( ( t p + 1 ) >
0024640 > B P T . H A S H X * 2 ) ) & N
0024660 F P G b i t ) e q 0 t h e
0024700 n \t / / x H , c a n ' t m
0024720 e r g e \r \t 376 001 \0 " 211 g
0024740 o t o d o w n \r \t / / O K
0024760 t o m e r g e \r \t l e t b p
0025000 0 = b l k + t n 0 \r \t @ b p
0025020 0 = @ b p 0 + @ b p 1 \t / /
0025040 a d d l e n g t h s \r \t l e
0025060 t l e n m 1 = - @ b p 0 -
0025100 1 \r \t b p 0 ! l e n m 1 = t
0025120 n 0 \t / / m a r k t o p \r \t
0025140 o t n = t n 0 + l e n m 1 \t
0025160 / / m o v e t o t o p o
0025200 f b l o c k \r \t t n 0 = o
0025220 t n + 1 \r ] \r d o w n : \t
0025240 t n = t n 0 - 1 \r ] r e p
0025260 e a t \r \r ] \r \r a n d R e m o
0025300 v e B u f s ( t n , N P G S )
0025320 b e \r / / R e m o 376 001 \0 , 351
0025340 v e t h e a f f e c t e d
0025360 b u f f e r s f r o m t h e
0025400 c h a i n \r [ \t l e t l a s
0025420 t t n = t n + N P G S - 1 \r
0025440 \r \t l e t I , N = 0 ,
0025460 N P G S \r \t [ l e t i p
0025500 = B p t + I \r \t I =
0025520 i p > > B P T . N E X T \r \t
0025540 w h i l e ( I g e t n )
0025560 & ( I l e l a s t t n )
0025600 d o \r \t [ I = (
0025620 B p t + I ) > > B P T . N E X T
0025640 \r \t @ i p = ( @
0025660 i p & n o t N E X T m a s
0025700 k ) + I \r \t N =
0025720 N - 1 \r \t i f N
0025740 376 001 \0 P 355 e q 0 r e t u r n
0025760 \r \t ] \r \t ] r e p e
0026000 a t \r ] \r \r a n d U p d a t e
0026020 C h a i n ( ) b e \r / / R e
0026040 o r d e r t h e c h a i n
0026060 a c c o r d i n g t o u s e
0026100 \r [ \t l e t I = @ B p t \r
0026120 \t @ B p t = 0 \r \t l e t h
0026140 e a d 1 = 0 \r \t l e t c h
0026160 a i n 0 , c h a i n 1 = B
0026200 p t , l v h e a d 1 \r \r \t
0026220 [ \t l e t i p = B p t + I
0026240 \r \t \t l e t H P = H A S H
0026260 M A P 1 + ( @ i p ) < < B P T .
0026300 H A S H X * 2 \r \t \t t e s t (
0026320 @ H P & N O T R E F b i t )
0026340 e q 0 376 001 \0 365 264 \r \t \t i f s
0026360 o \t / / R E F E R E N C E D ,
0026400 P U T O N c h a i n 1 \r \t
0026420 \t [ @ H P = @ H P + N O
0026440 T R E F b i t \r \t \t @ c h
0026460 a i n 1 = ( @ c h a i n 1
0026500 & n o t N E X T m a s k ) +
0026520 I \t / / O K w h e n c h a
0026540 i n 1 = l v h e a d 1 \r \t
0026560 \t c h a i n 1 = i p \r
0026600 \t \t ] \r \t \t i f n o t \t / /
0026620 N O T R E F E R E N C E D ,
0026640 P U T O N c h a i n 0 \r \t \t
0026660 [ @ c h a i n 0 = ( @ c
0026700 h a i n 0 & n o t N E X T
0026720 m a s k ) + I \t / / O K e v
0026740 e n w h e n c h 376 001 \0 245 Q a
0026760 i n 0 = B p t \r \t \t c h a
0027000 i n 0 = i p \r \t \t ] \r \r \t
0027020 \t I = @ i p & N E X T m
0027040 a s k \r \r \t ] r e p e a t u
0027060 n t i l I e q 0 \r \r / /
0027100 L i n k t h e c h a i n s
0027120 . @ B p t = h e a d 0 a l
0027140 r e a d y \r \r \t c h a i n 1 > >
0027160 B P T . N E X T = 0 \r \t c h
0027200 a i n 0 > > B P T . N E X T =
0027220 h e a d 1 \r \t B p t L a s t
0027240 = ( h e a d 1 e q 0 ? c
0027260 h a i n 0 , c h a i n 1 ) - B
0027300 p t \r ] \r \r a n d A D D T O M
0027320 A P ( t n , N P G S , V P ,
0027340 n e w b i t s ) b e \r [ A 376
0027360 001 \0 < 310 D M \r / / R E S E T
0027400 T H E P A G E D - O U T E
0027420 N T R Y \r \t i f N P G S g r
0027440 1 t h e n n e w b i t s
0027460 = n e w b i t s + N L P G b i
0027500 t \r \r \t ( B p t + B p t L a s t
0027520 ) > > B P T . N E X T = t n
0027540 \r \t B p t L a s t = t n + N
0027560 P G S - 1 \r \t l e t N = t
0027600 n \r \t w h i l e N l s B p
0027620 t L a s t d o \r \t [ B p t
0027640 ! N = N + 1 \r \t M a k
0027660 e M a p E n t r y ( V P , N ,
0027700 n e w b i t s ) \r \t n e
0027720 w b i t s = n e w b i t s
0027740 % N F P G b i t \r \t V P
0027760 = V 376 001 \0 266 375 P + 1 \r \t
0030000 N = N + 1 \r \t ] \r \t B p
0030020 t ! N = 0 \r \t M a k e M a p
0030040 E n t r y ( V P , N , n e w
0030060 b i t s & n o t N L P G b
0030100 i t ) \r ] A D M \r \r a n d M a
0030120 k e M a p E n t r y ( V P , t
0030140 n , b i t s ) b e \r [ \t l e
0030160 t h p = R E H A S H M A P
0030200 ( V P ) \r \t l e t b p = B
0030220 p t + t n \r \t t e s t h p e
0030240 q 0 \r \t i f s o \t / / p a
0030260 g e a l r e a d y i n c o
0030300 r e a s a s i d e e f f
0030320 e c t o f s o m e e x t e
0030340 r n a l c a l l \r \t @ b
0030360 p = ( @ b p 376 001 \0 336 3 &
0030400 N E X T m a s k ) + E M P T
0030420 Y X X \r \t i f n o t \r \t [
0030440 h p > > H M . N K E Y = n o
0030460 t V P \r \t h p > > H M .
0030500 F L A G W D = ( t n - V P )
0030520 l s h i f t 8 + b i t s
0030540 \r \t b p > > B P T . H A S
0030560 H X = ( h p - H A S H M A P
0030600 ) r s h i f t 1 \r \t ] \r ]
0030620 \r \r a n d c o r e p a g e ( h
0030640 p ) = \r \t ( h p > > H M . F L
0030660 A G W D + ( n o t h p > > H M
0030700 . N K E Y ) l s h i f t 8 )
0030720 r s h i f t 8 \r \r a n d D
0030740 e l e t e M a p E n t r y ( h p
0030760 , d o s t a t ) b e \r [ 376 001
0031000 \0 210 231 \t i f h p > > H M . D U
0031020 M M Y n e 0 r e t u r n \r
0031040 \t l e t o l d v p = n o t
0031060 h p > > H M . N K E Y \r \t l e
0031100 t i = c o r e p a g e ( h
0031120 p ) \r \t l e t b p = B p t
0031140 + i \r \t @ b p = ( @ b p &
0031160 N E X T m a s k ) + E M P
0031200 T Y X X \r \t h p > > H M . N K E
0031220 Y = 0 \r \t [ h p = h
0031240 p + R e p r o b e I n c \r \t
0031260 i f ( h p - H A S H M A P T
0031300 O P ) g e 0 t h e n h p
0031320 = h p - H A S H M A P S I Z
0031340 E \r \t l e t k e y =
0031360 n o t h p > > H M . N K E Y \r
0031400 \t 376 001 \0 \t 254 i f k e y
0031420 e q - 1 b r e a k \r \t
0031440 h p > > H M . N K E Y = 0 \r
0031460 \t l e t h p 1 = R E
0031500 H A S H M A P ( k e y ) \r \t
0031520 h p 1 > > H M . N K E Y =
0031540 n o t k e y \r \t i f h
0031560 p 1 n e h p t h e n \r \t
0031600 [ h p 1 > > H M . F L A
0031620 G W D = h p > > H M . F L A
0031640 G W D \r \t ( B p t +
0031660 c o r e p a g e ( h p 1 ) ) > >
0031700 B P T . H A S H X = ( h p 1
0031720 - H A S H M A P ) r s h i f t
0031740 1 \r \t ] \r \t ] r e
0031760 p e a t \r \t i f d o s t a t
0032000 t h e n M a p 376 001 \0 306 > S t a
0032020 t P r o c ( i , - 1 , o l d
0032040 v p ) \r ] \r \r a n d F l u s h
0032060 B u f s ( t n , N , e m p t
0032100 y ) b e \r / / E m p t y = 0
0032120 m e a n s j u s t m a r k
0032140 c l e a n , \r / / \t > 0 m e
0032160 a n s a l s o r e m o v e
0032200 f r o m c h a i n , \r / / \t <
0032220 0 m e a n s m a r k e m p
0032240 t y \r [ \t i f e m p t y t h
0032260 e n R e m o v e B u f s ( t n
0032300 , N ) \r \t l e t l = g e
0032320 t g r o u p ( t n + N - 1 , N
0032340 L P G b i t , 1 ) \r \t t n =
0032360 g e t g r o u p ( t n , N F
0032400 P G b i t , - 1 ) \r 376 001 \0
0032420 275 203 [ \t A n y D i r t y =
0032440 f a l s e \r \t l e t f = 0
0032460 \t / / T N o f f i r s t
0032500 d i r t y b u f f e r i n
0032520 s e q u e n c e , o r 0 \r \t
0032540 l e t k e y = n i l \t / /
0032560 V P o f f i r s t d i r
0032600 t y b u f f e r ( i . e .
0032620 b u f f e r f ) \r \t l e t l
0032640 k e y = n i l \t / / V P
0032660 o f l a s t d i r t y b u
0032700 f f e r \r \t l e t g r o u p t
0032720 n = n i l \t / / T N o f
0032740 f i r s t p a g e o f g
0032760 r o u p \r \t f o r i = t n
0033000 t o l d o \r \t [ \r t r y
0033020 : \t 376 001 \0 220 326 l e t l o
0033040 c k e d = D o L o c k s ( i
0033060 l s h i f t P S , 0 , e
0033100 m p t y ) \r \t i f l o c
0033120 k e d & e m p t y t h e n
0033140 C a l l S w a t ( " C a n ' t
0033160 f l u s h l o c k e d p a
0033200 g e " ) \r \t l e t H P
0033220 = H A S H M A P + ( B p t + i
0033240 ) > > B P T . H A S H X * 2 \r \t
0033260 l e t k = n o t H
0033300 P > > H M . N K E Y \r \t l
0033320 e t f l a g s = H P > > H
0033340 M . F L A G W D \r \t i f
0033360 ( f l a g s & N F P G b i t )
0033400 e q 0 t h e n g r o u p t
0033420 n = i \t / 376 001 \0 233 220 / R e
0033440 m e m b e r b e g i n n i n g
0033460 o f g r o u p \r \t t e
0033500 s t ( ( f l a g s & C L E A N
0033520 b i t ) e q 0 ) & ( ( f
0033540 e q 0 ) % ( ( k e q
0033560 l k e y + 1 ) & ( ( f l a g
0033600 s & N F P G b i t ) n e 0 )
0033620 ) ) \r \t i f s o \t / / f
0033640 i r s t d i r t y b u f f e
0033660 r , o r i n s e q u e n c
0033700 e \r \t [ i f f e q
0033720 0 t h e n \t / / f i r s t
0033740 o n e , c h e c k f o r
0033760 a w r i t e g r o u p \r \t
0034000 t e s t ( f l a g
0034020 s & W G R O U P b i t ) 376 001 \0 252
0034040 203 n e 0 \r \t
0034060 i f s o \t / / w r i t e w h
0034100 o l e g r o u p ( b y d i
0034120 r t y i n g t h e r e s t
0034140 o f i t ) \r \t [
0034160 f = g r o u p t n \r \t
0034200 k e y = k + f
0034220 - i \t / / b u t l k e y =
0034240 k s t i l l \r \t
0034260 f o r j = i + 1 t
0034300 o g e t g r o u p ( i , N L
0034320 P G b i t , 1 ) d o \r \t
0034340 ( H A S H M
0034360 A P + ( B p t + j ) > > B P T .
0034400 H A S H X * 2 ) > > H M . C L E
0034420 A N = 0 \r \t ]
0034440 \r 376 001 \0 A 314 \t i
0034460 f n o t \t / / j u s t t h i
0034500 s p a g e \r \t
0034520 f , k e y = i , k \r \t
0034540 l k e y = k \r \t
0034560 i f n o t l o c
0034600 k e d t h e n H P > > H M .
0034620 F L A G W D = f l a g s + C
0034640 L E A N b i t \r \t ] \r \t
0034660 i f n o t \t / / e n d
0034700 o f s e q u e n c e \r \t
0034720 [ i f f n e 0 t h e
0034740 n \r \t [ f l u s
0034760 h o u t ( k e y , f , i ) \r
0035000 \t f = 0 \r
0035020 \t g o t o t
0035040 r y \r \t 376 001 \0 003 [
0035060 ] \r \t ] \r \t i f
0035100 e m p t y t h e n D e l e t
0035120 e M a p E n t r y ( H P , ( e
0035140 m p t y l s 0 ? f l a g s
0035160 & C L E A N b i t , f a l s e
0035200 ) ) \r \t ] \r \t i f f n e
0035220 0 t h e n f l u s h o u t (
0035240 k e y , f , l + 1 ) \r
0035260 ] r e p e a t w h i l e A n
0035300 y D i r t y \r \t C h e c k B P T
0035320 ( ) \r ] \r \r a n d f l u s h o
0035340 u t ( k e y , f , l i m )
0035360 b e \r [ \t l e t l o c k =
0035400 f l s h i f t P S \r \t L o c
0035420 k C e l l ( l v l o c k ) \t /
0035440 / i n c a s e o 376 001 \0 \ +
0035460 f r e c u r s i v e V M E M
0035500 c a l l \r \t D O P A G E I O (
0035520 k e y , l o c k , l i m - f
0035540 , t r u e ) \r \t U n l o c k C
0035560 e l l ( l v l o c k ) \r ] \r \r
0035600 a n d L o c k C e l l ( l v L
0035620 o c k , p r o c ; n u m a r
0035640 g s n ) = v a l o f \r [ \t
0035660 i f ( n l s 2 ) % ( p
0035700 r o c e q 0 ) t h e n p
0035720 r o c = L o c k O n l y \r \t
0035740 U n l o c k C e l l ( l v L o c
0035760 k ) \r \t i f L a s t L o c k e
0036000 d C e l l e q E n d L o c k
0036020 e d C e l l s t h e n C a l
0036040 l S w a t ( " L o c k l i s t
0036060 376 001 \0 370 k f u l l " ) \r \t L a
0036100 s t L o c k e d C e l l > > L C
0036120 . a d d r , L a s t L o c k e
0036140 d C e l l > > L C . p r o c =
0036160 l v L o c k , p r o c \r \t L
0036200 a s t L o c k e d C e l l =
0036220 L a s t L o c k e d C e l l +
0036240 L C s i z e \r ] \r \r a n d U
0036260 n l o c k C e l l ( l v L o c k
0036300 ) = v a l o f \r [ \t f o r
0036320 I = L o c k e d C e l l s
0036340 b y L C s i z e t o L a s
0036360 t L o c k e d C e l l - L C s i
0036400 z e d o \r \t i f I > > L
0036420 C . a d d r e q l v L o c k
0036440 t h e n \r \t [ L a s
0036460 t L o c k 376 001 \0 X A e d C e l l
0036500 = L a s t L o c k e d C e l
0036520 l - L C s i z e \r \t
0036540 M o v e B l o c k ( I , L
0036560 a s t L o c k e d C e l l , L
0036600 C s i z e ) \r \t r e
0036620 s u l t i s t r u e \r \t
0036640 ] \r \t r e s u l t i s f a l
0036660 s e \r ] \r \r a n d D o L o c k
0036700 s ( a d d r , n e w p a , f
0036720 l a g ) = v a l o f \r [ \t l
0036740 e t o l d p a = a d d r
0036760 & ( n o t W M ) \r \t l e t
0037000 I = L o c k e d C e l l s \r
0037020 \t L a s t L o c k e d C e l l >
0037040 > L C . a d d r = l v a d
0037060 d r \r \t L a s t L o 376 001 \0 L 255 c
0037100 k e d C e l l > > L C . p r o c
0037120 = d l e x i t \r \t [ i f
0037140 ( @ ( I > > L C . a d d r )
0037160 & ( n o t W M ) ) e q o
0037200 l d p a t h e n \r \t [
0037220 l e t a d d r = I > > L
0037240 C . a d d r \t / / i n c a s
0037260 e l o c k p r o c u n l o
0037300 c k s c e l l \r \t
0037320 l e t n e w = ( n e w p a
0037340 e q 0 ? 0 , @ a d d r +
0037360 n e w p a - o l d p a ) \r \t
0037400 u n l e s s ( I > > L
0037420 C . p r o c ) ( a d d r , n e
0037440 w , f l a g ) r e s u l t i
0037460 s t r u e \r \t i 376
0037500 001 \0 \t \b f f l a g t h e n
0037520 @ a d d r = n e w \r \t
0037540 ] \r \t I = I + L C s
0037560 i z e \r \t ] r e p e a t \r d
0037600 l e x i t : \t r e s u l t i s
0037620 f a l s e \r ] \r \r / / a n d
0037640 L o c k O n l y ( a d d r , n
0037660 e w , f l a g ) = f a l s
0037700 e \r \r a n d L o c k R e l o c
0037720 ( a d d r , n e w , f l a g
0037740 ) = n e w n e 0 \r \r / /
0037760 a n d L o c k Z e r o ( a d
0040000 d r , n e w , f l a g ) =
0040020 t r u e \r \r \r / / \r / / C h
0040040 e c k e r f o r B P T \r / /
0040060 \r \r a n d C h e c k B P T ( )
0040100 b e \r 376 001 \0 310 343 \t c o m p i l
0040120 e i f f a l s e t h e n \t /
0040140 / * * * \r [ \r \t u n l e s s
0040160 C h e c k B P T f l a g r e t
0040200 u r n \r \t f o r h p = H A
0040220 S H M A P b y 2 t o H A
0040240 S H M A P T O P - 2 d o \r \t
0040260 i f h p > > H M . N K E Y n
0040300 e 0 t h e n \r \t i f
0040320 ( B p t + c o r e p a g e ( h p
0040340 ) ) > > B P T . H A S H X * 2
0040360 n e ( h p - H A S H M A P )
0040400 t h e n \r \t C a l l
0040420 S w a t ( " B P T w r o n g "
0040440 ) \r \t f o r b p = B p t +
0040460 1 t o B p t + # 3 7 7 d o
0040500 \r \t [ l e t 376 \0 } 020 016 h p
0040520 = H A S H M A P + b p > > B
0040540 P T . H A S H X * 2 \r \t i
0040560 f ( h p > > H M . D U M M Y
0040600 e q 0 ) & ( c o r e p a g
0040620 e ( h p ) n e ( b p - B p t
0040640 ) ) t h e n \r \t C
0040660 a l l S w a t ( " B P T w r o
0040700 n g " ) \r \t ] \r ] \r 377 \0 \0 v m
0040720 e m a u x . b c p l \0 376 001 \0 + A
0040740 / / \r / / V M E M A U X - -
0040760 V M E M r o u t i n e s o
0041000 t h e r t h a n p a g e f
0041020 a u l t h a n d l e r \r / /
0041040 l a s t e d i t e d M a r c
0041060 h 1 4 , 1 9 7 7 2 : 5 3
0041100 P M \r / / \r / / C o p y r i
0041120 g h t X e r o x C o r p o r
0041140 a t i o n 1 9 7 9 \r \r \t g e t
0041160 " v m e m . d " \r \r e x t e r
0041200 n a l \t / / e n t r y p r o
0041220 c e d u r e s \r [ \t A d d B u f
0041240 f e r s \t / / ( f i r s t ,
0041260 l a s t ) \r \t S n a r f B u f f
0041300 e r \t / / ( a d d r / 0 [ ,
0041320 n b u f s , a l i g n ] ) -
0041340 376 001 \0 301 313 > a d d r / 0 \r \t U
0041360 n s n a r f B u f f e r \t / /
0041400 ( a d d r ) \r \t F l u s h B u f
0041420 f e r s \t / / ( ) \r \t I s L o
0041440 c k e d \t / / ( a d d r ) -
0041460 > t r u e / f a l s e \r \t V i
0041500 r t u a l P a g e \t / / ( c o
0041520 r e p a g e ) - > v p \r ] \r
0041540 \r \r e x t e r n a l \t / / p r
0041560 o c e d u r e s \r [ \t \t / / O
0041600 . S . \r \t D e f a u l t A r g s
0041620 \r \t \t / / V M E M \r \t F i n d
0041640 F r e e B u f \r \t F l u s h B u
0041660 f s \r \t F l u s h M a p S t a t
0041700 s \r \t D o L o c k s \r \t \t / /
0041720 u s e r - s u p p l i e d \r \t C
0041740 l e a n u 376 001 \0 205 ] p L o c k s
0041760 \r ] \r \r e x t e r n a l \t / /
0042000 s t a t i c s \r [ \t \t / / V M
0042020 E M \r \t @ H A S H M A P \r \t M a
0042040 p S t a t P r o c \r \t @ B p t ;
0042060 @ B p t L a s t \r \t E M P T Y
0042100 X X \r \t N A X X \r ] \r \r \r l e t
0042120 A d d B u f f e r s ( F I R S
0042140 T , L a s t ) b e \r f o r
0042160 t n = ( F I R S T + W M )
0042200 r s h i f t P S t o ( L a
0042220 s t - W M ) r s h i f t P S
0042240 d o \r [ \t l e t T P = B
0042260 p t + t n \r \t i f @ T P e q
0042300 N A X X t h e n \t / / b u
0042320 f f e r i s f r e e \r \t [
0042340 @ T P = E M P 376 001 \0 313 S T
0042360 Y X X + @ B p t \r \t i f
0042400 @ B p t e q 0 t h e n B
0042420 p t L a s t = t n \r \t
0042440 @ B p t = t n \r \t M a
0042460 p S t a t P r o c ( t n , - 2
0042500 ) \r \t ] \r ] \r \r a n d S n a
0042520 r f B u f f e r ( a d d r , n
0042540 , a l i g n ; n u m a r g s
0042560 n a ) = v a l o f \r [ \t D
0042600 e f a u l t A r g s ( l v n a
0042620 , 1 , 1 , 0 ) \r \t i f (
0042640 a d d r & W M ) n e 0
0042660 r e s u l t i s 0 \r \t C l e a
0042700 n u p L o c k s ( ) \r \t l e t
0042720 t n = F i n d F r e e B u f
0042740 ( n , a l i g n , a d d r 376
0042760 001 \0 312 215 r s h i f t P S ) \r
0043000 \t i f t n e q 0 r e s u
0043020 l t i s 0 \r \t i f a d d r
0043040 n e 0 t h e n t n = a
0043060 d d r r s h i f t P S \r \t F
0043100 l u s h B u f s ( t n , n ,
0043120 - 1 ) \r \t f o r i = t n
0043140 t o t n + n - 1 d o \r \t i
0043160 f B p t ! i n e N A X X
0043200 t h e n \r \t [ M a p S t a t
0043220 P r o c ( i , - 3 ) ; B p t
0043240 ! i = N A X X ] \r \t r e s
0043260 u l t i s t n l s h i f t
0043300 P S \r ] \r \r a n d U n s n a r
0043320 f B u f f e r ( a d d r ) b e
0043340 \r [ \t i f ( a d d r & W M
0043360 ) n e 376 \0 367 " e 0 r e t u
0043400 r n \r \t A d d B u f f e r s ( a
0043420 d d r , a d d r + W M ) \r ] \r
0043440 \r a n d F l u s h B u f f e r
0043460 s ( ) b e \r [ \t C l e a n u p
0043500 L o c k s ( ) \r \t F l u s h M a
0043520 p S t a t s ( ) \r \t F l u s h B
0043540 u f s ( 1 , B p t S i z e - 1
0043560 , 0 ) \r ] \r \r a n d I s L o
0043600 c k e d ( a d d r ) = D o L
0043620 o c k s ( a d d r , 0 , f a
0043640 l s e ) \r \r a n d V i r t u a
0043660 l P a g e ( c p a g e ) = \r \t
0043700 n o t ( H A S H M A P + ( B p
0043720 t + c p a g e ) > > B P T . H A
0043740 S H X * 2 ) > > H M . N K E Y \r
0043760 377 \0 \0 v m e m i n i t . b c p l
0044000 \0 376 001 \0 311 8 / / \r / / V M E M
0044020 I N I T - - i n i t i a l i
0044040 z e V M E M \r / / l a s t
0044060 e d i t e d A u g u s t 1 ,
0044100 1 9 7 7 1 : 4 8 P M \r /
0044120 / \r / / C o p y r i g h t X
0044140 e r o x C o r p o r a t i o n
0044160 1 9 7 9 \r \r \t g e t " v m e
0044200 m . d " \r \r e x t e r n a l \t /
0044220 / e n t r y p r o c e d u r
0044240 e s \r [ \t I n i t i a l i z e V
0044260 m e m \t / / ( h a s h m a p ,
0044300 h a s h m a p s i z e , B p
0044320 t a b , l c l i s t , l l c
0044340 l i s t [ , s t a t b a s e ,
0044360 s t a t p r o c , n o b u f
0044400 s p r o c ] 376 001 \0 211 p ) \r ] \r \r
0044420 \r e x t e r n a l \t / / p r o
0044440 c e d u r e s \r [ \t \t / / O .
0044460 S . \r \t D e f a u l t A r g s \r
0044500 \t F a l s e P r e d i c a t e \r
0044520 \t T r u e P r e d i c a t e \r \t
0044540 C a l l S w a t \r \t S e t B l o
0044560 c k ; Z e r o \r \t \t / / V M
0044600 E M \r \t d e f a u l t N o B u f
0044620 s P r o c \r \t L o c k O n l y ;
0044640 L o c k Z e r o \r \t \t / / V
0044660 M E M A \r \t R E H A S H M A P \r
0044700 ] \r \r e x t e r n a l \t / / s
0044720 t a t i c s \r [ \t \t / / V M E
0044740 M \r \t @ H A S H M A P ; @ H A
0044760 S H M A P S I Z E ; @ H A S H
0045000 M A P M A S K \r \t @ H 376 001 \0 317 357
0045020 A S H M A P S I Z E 2 \r \t @ H A
0045040 S H M A P 1 \r \t @ H A S H M A P
0045060 T O P \r \t M A P S T A T B A S E
0045100 \r \t @ M a p S t a t P t r \r \t M
0045120 a p S t a t P r o c \r \t N o B u
0045140 f s P r o c \r \t @ B p t ; @ B
0045160 p t L a s t \r \t E M P T Y X X \r
0045200 \t N A X X \r \t L o c k e d C e l
0045220 l s ; E n d L o c k e d C e l
0045240 l s ; L a s t L o c k e d C e
0045260 l l \r ] \r \r \r l e t I n i t i
0045300 a l i z e V m e m ( H M , H M
0045320 S I Z E , B P T A B , L C L
0045340 , L L C L , M S B A S E ,
0045360 M S P R O C , N B P R O C ;
0045400 n u m a r g s n ) b e \r [ \t
0045420 376 001 \0 331 ? D e f a u l t A r g s
0045440 ( l v n , - 5 , 0 , F a
0045460 l s e P r e d i c a t e , d e
0045500 f a u l t N o B u f s P r o c )
0045520 \r \t i f ( H M S I Z E & (
0045540 H M S I Z E - 1 ) ) n e 0
0045560 t h e n \r \t C a l l S w a
0045600 t ( " B a d H M A P S I Z E
0045620 - - I n i t i a l i z e V m e
0045640 m " ) \r \t H A S H M A P , H A
0045660 S H M A P S I Z E = H M + (
0045700 H M & 1 ) , H M S I Z E \r \t H
0045720 A S H M A P M A S K = H A S
0045740 H M A P S I Z E - 2 \r \t H A S H
0045760 M A P S I Z E 2 = H M S I Z
0046000 E r s h i f t 1 \r \t H A S H
0046020 M A P 1 376 001 \0 q 005 = H A S H
0046040 M A P + H M f l a g O f f s e t
0046060 \r \t H A S H M A P T O P = H
0046100 A S H M A P + H A S H M A P S I
0046120 Z E \r \t M A P S T A T B A S E
0046140 = M S B A S E + ( M S B A S E
0046160 & 1 ) \r \t M a p S t a t P t r
0046200 = M A P S T A T B A S E \r \t M
0046220 a p S t a t P r o c = M S P
0046240 R O C \r \t N o B u f s P r o c
0046260 = N B P R O C \r \t B p t , L
0046300 o c k e d C e l l s , E n d L
0046320 o c k e d C e l l s = \r \t
0046340 B P T A B , L C L , L C L +
0046360 ( L L C L & n o t 1 ) - L
0046400 C s i z e \r \t L a s t L o c k e
0046420 d C e l l = L C 376 001 \0 u ^ L
0046440 \r \t Z e r o ( H A S H M A P ,
0046460 H A S H M A P S I Z E ) \r \t l e
0046500 t d u m m y p a g e ( v p ,
0046520 b i t s ) = v a l o f \r \t
0046540 [ l e t h p = R E H A S
0046560 H M A P ( v p ) \r \t h p >
0046600 > H M . N K E Y = n o t v
0046620 p \r \t h p > > H M . F L A
0046640 G W D = b i t s \r \t r
0046660 e s u l t i s ( h p - H A S H
0046700 M A P ) l s h i f t 7 \r \t
0046720 ] \r \t E M P T Y X X = d u m
0046740 m y p a g e ( E m p t y V P ,
0046760 C L E A N b i t + N O T R E F b
0047000 i t + D U M M Y b i t ) \r \t N A
0047020 X X = d u m m y p a g e ( 376
0047040 \0 202 h 313 N a V P , C L E A N b
0047060 i t + N O T R E F b i t + D U M
0047100 M Y b i t ) \r \t S e t B l o c k
0047120 ( B p t , N A X X , B p t S
0047140 i z e ) \r \t @ B p t = 0 \r \t
0047160 L o c k O n l y = F a l s e
0047200 P r e d i c a t e \r \t L o c k Z
0047220 e r o = T r u e P r e d i c
0047240 a t e \r ] \r 377 \0 \0 p r i n t v m
0047260 e m s t a t e . b c p l \0 376 001 \0
0047300 j 226 / / \r / / P r i n t V M
0047320 E M s t a t e \r / / l a s t
0047340 e d i t e d J u n e 1 ,
0047360 1 9 7 7 4 : 2 0 P M \r / /
0047400 \r / / C o p y r i g h t X e
0047420 r o x C o r p o r a t i o n
0047440 1 9 7 9 \r \r \t g e t " v m e m
0047460 . d " \r \r e x t e r n a l \t / /
0047500 e n t r y p r o c e d u r e
0047520 s \r [ \t P r i n t V m e m S t a
0047540 t e \t / / ( s t ) \r ] \r \r \r e
0047560 x t e r n a l \t / / p r o c e
0047600 d u r e s u s e d \r [ \t \t / /
0047620 O . S . \r \t P u t s ; W n s
0047640 ; W o s ; W s s \r ] \r \r e x
0047660 t e r n a l \t / / s t a t i c
0047700 s 376 001 \0 \v ) u s e d \r [ \t \t /
0047720 / V M E M \r \t @ B p t \r \t @ H
0047740 A S H M A P \r ] \r \r \r l e t P
0047760 r i n t V m e m S t a t e ( s t
0050000 ) b e \r [ \t \t / / P r i n t
0050020 s t a t e o f m e m o r y
0050040 , b y a d d r e s s \r \t l e
0050060 t n = 0 \r \t f o r i =
0050100 1 t o 3 7 7 b d o \r \t
0050120 [ i f V m e m H p t r ( i )
0050140 > > H M . N K E Y e q ( n o
0050160 t N a V P ) l o o p \r \t
0050200 i f ( n & 3 ) e q 0 t
0050220 h e n P u t s ( s t , $ * N
0050240 ) \r \t P r i n t V m e m P
0050260 a g e ( s t , i ) \r \t n
0050300 = n + 1 \r 376 001 \0 270 T \t ] \r
0050320 \t W s s ( s t , " * N N u m b
0050340 e r o f p a g e s = " )
0050360 \r \t W n s ( s t , n , 0 ,
0050400 8 ) \r \t P u t s ( s t , $ * N
0050420 ) \r \t \t / / P r i n t B P T
0050440 c h a i n \r \t l e t n , t
0050460 n = 0 , @ B p t \r \t w h i
0050500 l e ( t n n e 0 ) & (
0050520 n n e 4 0 0 b ) d o \r \t
0050540 [ i f ( n & 3 ) e q 0
0050560 t h e n P u t s ( s t , $ *
0050600 N ) \r \t P r i n t V m e m
0050620 P a g e ( s t , t n ) \r \t
0050640 t n = ( B p t + t n ) > >
0050660 B P T . N E X T \r \t n =
0050700 n + 1 \r \t ] \r \t P u 376 001 \0 020
0050720 333 t s ( s t , $ * N ) \r ] \r \r
0050740 a n d P r i n t V m e m P a g
0050760 e ( s t , i ) b e \r [ \t W n
0051000 s ( s t , i , 4 , 8 ) \r \t
0051020 l e t h p = V m e m H p t
0051040 r ( i ) \r \t P u t s ( s t , $
0051060 * S ) \r \t W o s ( s t , n o t
0051100 h p > > H M . N K E Y ) \r \t P
0051120 u t s ( s t , $ * S ) \r \t P u
0051140 t s ( s t , s e l e c t o n
0051160 h p > > H M . F L A G W D & G R
0051200 O U P b i t s i n t o \r \t [
0051220 c a s e N F P G b i t : $
0051240 L \r \t c a s e N L P G b
0051260 i t : $ F \r \t c a s e
0051300 N F P G b i t + N L P G b i t :
0051320 376 \0 331 x < $ I \r \t d e f
0051340 a u l t : $ * S \r \t ] ) \r \t
0051360 P u t s ( s t , ( h p > > H M
0051400 . D U M M Y ? $ X , $ * S )
0051420 ) \r \t P u t s ( s t , ( h p >
0051440 > H M . N O T R E F ? $ * S ,
0051460 $ R ) ) \r \t P u t s ( s t ,
0051500 ( h p > > H M . C L E A N ? $
0051520 * S , $ D ) ) \r \t P u t s ( s
0051540 t , ( h p > > H M . W G R O U
0051560 P ? $ W , $ * S ) ) \r ] \r \r
0051600 a n d V m e m H p t r ( i )
0051620 = H A S H M A P + ( B p t + i
0051640 ) > > B P T . H A S H X * 2 \r 377
0051660 \0 \0 v m e m a . a s m \0 376 001 \0 353
0051700 220 ; V M E M A . A S M -
0051720 a c t u a l m a p p i n g
0051740 d o n e i n m i c r o c o d
0051760 e \r ; l a s t m o d i f
0052000 i e d J u n e 1 4 , 1 9 7
0052020 6 2 : 3 6 P M \r ; \r ; C
0052040 o p y r i g h t X e r o x C
0052060 o r p o r a t i o n 1 9 7 9 \r
0052100 \t . E X T N \t M A P T R A P , S
0052120 O F T M A P F L A G \r ; \r \t . E
0052140 N T \t R E H A S H M A P \r \t . E
0052160 N T \t V R R , V W R , V R R 1 ,
0052200 V W R 1 , V R R 2 , V W R 2 , V
0052220 R R P , V W R P \r \t . E N T \t D
0052240 O U B L E A D D 1 \r \t . E N T \t
0052260 R D R E F 0 , R D R E F 1 , W T
0052300 R 376 001 \0 202 362 E F 0 \t ; i n s t
0052320 r u c t i o n s t o o v e r
0052340 w r i t e \r \t . E N T \t V m e m
0052360 R a m \r ; \r \t . D U S R \t R D R
0052400 E F = 7 4 4 0 0 \r \t . D U S
0052420 R \t W T R E F = 7 5 0 0 0 \r
0052440 \t . D U S R \t S W A T = 7 7
0052460 4 0 0 \r ; \r \t g e t f r a m e
0052500 = 3 7 0 \r \t r e t u r n =
0052520 3 6 6 \r ; \r \t . Z R E L \r V R R
0052540 : \t V R R X \r V W R : \t V W R X
0052560 \r V R R 1 : \t V R R 1 X \r V W R
0052600 1 : \t V W R 1 X \r V R R 2 : \t V
0052620 R R 2 X \r V W R 2 : \t V W R 2 X
0052640 \r V R R P : \t V R R P X \r V W R
0052660 P : \t V W R P X \r ; \r D O U B L
0052700 E A D D 1 : 376 001 \0 204 r D B L X \r
0052720 ; \r \t . S R E L \r R E H A S H M
0052740 A P : R E M A P \r R D R E F 0 :
0052760 \t D O A R 1 \r R D R E F 1 : \t D
0053000 O R M 1 \r W T R E F 0 : \t D O A
0053020 W 1 \r V m e m R a m : V M R \r
0053040 ; \r \t . N R E L \r ; \r ; R O
0053060 U T I N E S T O D O S O F
0053100 T W A R E M A P P I N G \r ;
0053120 I F T H E R E I S A F
0053140 A U L T , A B C P L R O U
0053160 T I N E ' M A P T R A P ' I
0053200 S C A L L E D \r ; I F T
0053220 H E R E I S N O F A U L T
0053240 , N O B C P L S T A C K
0053260 S P A C E I S U S E D \r ; \r
0053300 M A P T R : \t 0 \t ; 376 001 \0 310 307
0053320 s a v e h a s h m a p p t r
0053340 \r M P T R P : \t M A P T R A P \r
0053360 ; \r V R R X : \t S T A \t 3 , 1 ,
0053400 2 \r \t M O V \t 0 , 3 \r \t L D A \t
0053420 0 , 0 , 3 \r \t L D A \t 1 , 1 , 3
0053440 \r \t J M P \t D O A R 1 \r ; \r V R
0053460 R P X : \t L D A \t 1 , R M S K \r
0053500 \t A N D \t 0 , 1 \r \t S U B S \t 1
0053520 , 0 \r \t M O V S \t 1 , 1 \r \t J M
0053540 P \t V R R 2 X \r V R R 1 X : \t M
0053560 O V \t 0 , 1 \r \t S U B \t 0 , 0 \r
0053600 V R R 2 X : \t S T A \t 3 , 1 , 2
0053620 \t ; S A V E R E T U R N \r D O
0053640 A R 1 : \t R D R E F \t \t ; m i c
0053660 r o c o d e i n s t r u c t i
0053700 o n \r \t J M P \t N O T I N R D \t
0053720 376 001 \0 330 A ; M I S S I N G P A
0053740 G E O N R E A D \r \t M O V \t
0053760 3 , 0 \r \t L D A \t 3 , 1 , 2 \r \t
0054000 J M P \t 1 , 3 \t ; R E T U R N
0054020 W I T H C O R E A D D R .
0054040 I N A C 0 \r N O T I N R D : S
0054060 T A \t 3 , M A P T R \r \t L D A \t
0054100 3 , R M S K \r \t A N D \t 3 , 0 \r
0054120 \t J S R \t @ g e t f r a m e \r \t
0054140 7 \r \t S W A T \r \t S U B \t 1
0054160 , 1 \t ; R E A D R E F \r M T R
0054200 A P : \t S T A \t 1 , 6 , 2 \r \t L
0054220 D A \t 0 , 5 , 2 \r \t L D A \t 3 ,
0054240 L M S K \r \t A N D \t 0 , 3 \r \t L
0054260 D A \t 0 , 4 , 2 \r \t A D D S \t 3
0054300 , 0 \t ; f o r m h a s h k
0054320 e y \r \t L 376 001 \0 t 350 D A \t 3 , M
0054340 A P T R \r \t S T A \t 3 , 3 , 2 \r
0054360 \t J S R I I \t M P T R P \r \t 3 \r
0054400 \t L D A \t 0 , 4 , 2 \r \t L D A \t
0054420 1 , 5 , 2 \r \t L D A \t 3 , 6 , 2
0054440 \r \t L D A \t 2 , 0 , 2 \t ; g e
0054460 t r i d o f f r a m e \r \t
0054500 M O V \t 3 , 3 , S Z R \r \t J M P
0054520 \t D O A W 1 \r \t J M P \t D O A R
0054540 1 \r ; \r V W R X : \t S T A \t 3 ,
0054560 1 , 2 \r \t M O V \t 0 , 3 \r \t L D
0054600 A \t 0 , 0 , 3 \r \t L D A \t 1 , 1
0054620 , 3 \r \t J M P \t D O A W 1 \r ; \r
0054640 V W R P X : \t L D A \t 1 , R M S
0054660 K \r \t A N D \t 0 , 1 \r \t S U B S
0054700 \t 1 , 0 \r \t M O V S \t 1 , 1 \r \t
0054720 J M P \t V W R 2 X \r 376 001 \0 \v m V
0054740 W R 1 X : \t M O V \t 0 , 1 \r \t S
0054760 U B \t 0 , 0 \r V W R 2 X : \t S T
0055000 A \t 3 , 1 , 2 \r D O A W 1 : \t W
0055020 T R E F \t \t ; m i c r o c o d e
0055040 i n s t r u c t i o n \r \t J M
0055060 P \t W F A U L T \t ; N O T I N
0055100 O R N O T D I R T Y \r \t M
0055120 O V \t 3 , 0 \r \t L D A \t 3 , 1 ,
0055140 2 \r \t J M P \t 1 , 3 \r W F A U L
0055160 T : \t S T A \t 3 , M A P T R \r \t
0055200 L D A \t 3 , R M S K \r \t A N D \t
0055220 3 , 0 \r \t J S R \t @ g e t f r a
0055240 m e \r \t 7 \r \t S W A T \r \t A
0055260 D C \t 1 , 1 \t ; W R I T E R E
0055300 F \r \t J M P \t M T R A P \r ; \r L
0055320 M S K : \t 1 7 7 4 0 0 \r R M S 376
0055340 001 \0 236 b K : \t 3 7 7 \r ; \r ; C
0055360 O M P U T E H A S H I N D E
0055400 X F O R N E W P A G E W
0055420 H E N \r ; R E C O N S T R U C
0055440 T I N G H A S H T A B L E
0055460 A F T E R P A G E F A U L T
0055500 \r ; \r R E M A P : \t S T A \t 3 ,
0055520 1 , 2 \r \t L D A \t 1 , R M S K \r
0055540 \t A N D S \t 0 , 1 \r \t L D A \t 3
0055560 , L M S K \r \t A N D S \t 3 , 0 \r
0055600 D O R M 1 : \t R D R E F \t \t \t ;
0055620 A C 0 , A C 1 H A S V I R T
0055640 U A L A D D R \r \t M O V \t 3 ,
0055660 0 , S K P \t ; N O S K I P ,
0055700 H A S H M A P P T R I N
0055720 A C 3 \r \t S U B \t 0 , 0 \t ; S
0055740 K I P , 376 001 \0 , u E N T R Y
0055760 A L R E A D Y P R E S E N T \r
0056000 \t L D A \t 3 , 1 , 2 \r \t J M P \t
0056020 1 , 3 \t \t ; R E T U R N S P O
0056040 I N T E R T O E M P T Y E
0056060 N T R Y \r ; \r ; I N C R E M E
0056100 N T 3 2 - B I T C O U N T E
0056120 R A D D R E S S E D B Y A
0056140 C 0 \r ; \r D B L X : \t S T A \t 3
0056160 , 1 , 2 \r \t M O V \t 0 , 3 \r \t I
0056200 S Z \t 1 , 3 \r \t J M P \t . + 3 \r
0056220 \t I S Z \t 0 , 3 \r \t J M P \t . +
0056240 1 \r \t L D A \t 3 , 1 , 2 \r \t J M
0056260 P \t 1 , 3 \r ; \r ; S e t u p
0056300 R A M a c c e s s i n s t
0056320 r u c t i o n s \r V M R : \t L D
0056340 A \t 0 , R D R X \r 376 \0 204 305 247 \t S
0056360 T A \t 0 , D O A R 1 \r \t S T A \t
0056400 0 , D O R M 1 \r \t L D A \t 0 , W
0056420 T R X \r \t S T A \t 0 , D O A W 1
0056440 \r \t S U B \t 0 , 0 \r \t S T A \t 0
0056460 , @ S M F \r \t J M P \t 1 , 3 \r ;
0056500 \r R D R X : \t R D R E F \r W T R
0056520 X : \t W T R E F \r S M F : \t S O
0056540 F T M A P F L A G \r ; \r \t . E N
0056560 D \r 377 \0 \0 v m e m s o f t . a s
0056600 m \0 376 001 \0 360 t ; V M E M S O
0056620 F T . A S M - s o f t w a r
0056640 e r e p l a c e m e n t f o
0056660 r m a p m i c r o c o d e \r
0056700 ; l a s t m o d i f i e d
0056720 D e c e m b e r 1 6 , 1 9
0056740 7 6 1 : 3 3 P M \r ; \r ;
0056760 C o p y r i g h t X e r o x
0057000 C o r p o r a t i o n 1 9 7 9
0057020 \r \t . E X T D \t H A S H M A P ,
0057040 H A S H M A P M A S K , M a p S
0057060 t a t P t r , R e p r o b e I n
0057100 c \r \t . E X T N \t S O F T M A P
0057120 F L A G \r \t . E X T N \t R D R E
0057140 F 0 , R D R E F 1 , W T R E F 0
0057160 \r ; \r \t . E N T \t V m e m S o f
0057200 t \r \t . E N T 376 001 \0 z 313 \t N P R
0057220 O B E \r ; \r \t . S R E L \r V m e
0057240 m S o f t : V M S \r N P R O B
0057260 E : \t N P R B \r ; \r \t . N R E L
0057300 \r ; \r V M S : \t S T A \t 3 , 1 ,
0057320 2 \r \t A D C \t 0 , 0 \r \t S T A \t
0057340 0 , @ S O F T M F \r ; O v e r
0057360 w r i t e m i c r o c o d e
0057400 c a l l s w i t h J S R ' s
0057420 t o s o f t w a r e r o u
0057440 t i n e s \r \t L D A \t 0 , J R R
0057460 S \r \t L D A \t 3 , @ R R 0 \r \t S
0057500 T A \t 0 , 0 , 3 \r \t L D A \t 3 ,
0057520 @ R R 1 \r \t S T A \t 0 , 0 , 3 \r
0057540 \t L D A \t 0 , J W R S \r \t L D A
0057560 \t 3 , @ W R 0 \r \t S T A \t 0 , 0
0057600 , 3 \r \t L D A \t 3 , 1 , 376 001 \0 205
0057620 001 2 \r \t J M P \t 1 , 3 \r ; \r S O
0057640 F T M F : \t S O F T M A P F L A
0057660 G \r J R R S : \t J S R \t @ R D R
0057700 E F S \r J W R S : \t J S R \t @ W
0057720 T R E F S \r R R 0 : \t R D R E F
0057740 0 \r R R 1 : \t R D R E F 1 \r W R
0057760 0 : \t W T R E F 0 \r ; \r ; M
0060000 A P P I N G S U B R O U T I N
0060020 E \r ; C A L L W I T H A
0060040 C 0 - 1 = V . A . , A C 3 = B
0060060 I T S T O C L E A R I N
0060100 M A P E N T R Y \r ; R E T
0060120 U R N S A C 3 = C O R E A D
0060140 D R E S S O R M A P P T R
0060160 \r ; \r \t . Z R E L \r R D R E F S
0060200 : \t R D R E F X \r W T R E F S :
0060220 \t 376 001 \0 260 031 W T R E F X \r ; \r \t
0060240 . N R E L \r R E F E D : \t 4 \t ;
0060260 R E F E R E N C E D \r R E F D Y
0060300 : \t 6 \t ; R E F E R E N C E D +
0060320 D I R T Y \r M A P R E T : \t 0 \r
0060340 V A 0 : \t 0 \t ; U P P E R V .
0060360 A . \r V A 1 : \t 0 \t ; L O W E R
0060400 V . A . \r B I T S : \t 0 \r L M
0060420 S K : \t 1 7 7 4 0 0 \r M A M S K
0060440 : \t 1 7 7 6 0 0 \r C A H I : \t 3
0060460 7 6 \t ; A C 0 F O R V . A .
0060500 S T H A T G O D I R E C T
0060520 L Y T O C O R E \r N P R B :
0060540 \t 0 \t ; R E P R O B E C O U
0060560 N T \r \t 0 \r ; \r W T R E F X : \t
0060600 I N C \t 3 , 3 \r \t S T A \t 3 , M
0060620 A P R E T \r 376 001 \0 204 [ \t L D A \t
0060640 3 , R E F D Y \r \t J M P \t R E F
0060660 X \r R D R E F X : \t I N C \t 3 ,
0060700 3 \r \t S T A \t 3 , M A P R E T \r
0060720 \t L D A \t 3 , R E F E D \r R E F
0060740 X : \t S T A \t 3 , B I T S \r \t S
0060760 T A \t 0 , V A 0 \r \t S T A \t 1 ,
0061000 V A 1 \r \t L D A \t 3 , L M S K \t
0061020 ; L E F T H A L F M A S K \r
0061040 \t A N D \t 3 , 1 \r \t A D D \t 1 ,
0061060 0 \t ; P A G E N O . S W A P
0061100 P E D I N A C 0 \r \t C O M S
0061120 \t 0 , 1 \t ; K E Y I N A C
0061140 1 \r \t S U B \t 1 , 0 \r R E T R Y
0061160 : \t L D A \t 3 , H A S H M A P M
0061200 A S K \r \t A N D \t 3 , 0 \t ; H A
0061220 S H I N D E X \r \t L 376 001 \0 ^ \a
0061240 D A \t 3 , H A S H M A P \r \t A D
0061260 D \t 0 , 3 \r \t L D A \t 0 , 0 , 3
0061300 \t ; H A S H K E Y \r \t S U B #
0061320 \t 0 , 1 , S Z R \r \t J M P \t
0061340 P R O B E \t ; N O M A T C H \r
0061360 \t L D A \t 0 , 1 , 3 \t ; E N T R
0061400 Y \r \t L D A \t 1 , B I T S \r \t A
0061420 N D Z R \t 0 , 1 , S Z R \t ; T E
0061440 S T B I T S \r \t J M P \t B
0061460 I T S E T \r I N C O R E : \t L D
0061500 A \t 3 , M A M S K \r \t A N D \t 0
0061520 , 3 \t ; M A S K O F F B I T
0061540 S \r \t L D A \t 1 , V A 1 \r \t A D
0061560 D \t 1 , 3 \r S K R E T : \t L D A
0061600 \t 0 , M a p S t a t P t r \r \t M
0061620 O V # \t 0 , 0 , S Z R \r \t J
0061640 376 001 \0 275 356 M P \t S K R E T 1 \r \t
0061660 L D A \t 0 , V A 0 \r \t J M P \t @
0061700 M A P R E T \r S K R E T 1 : \t L
0061720 D A \t 1 , H A S H M A P \r \t S U
0061740 B # \t 1 , 0 , S N R \r \t J M
0061760 P \t N O M A P 1 \r \t L D A \t 0 ,
0062000 V A 0 \r \t S T A \t 0 , @ M a p S
0062020 t a t P t r \r \t I S Z \t M a p S
0062040 t a t P t r \r \t L D A \t 1 , V A
0062060 1 \r \t S T A \t 1 , @ M a p S t a
0062100 t P t r \r \t I S Z \t M a p S t a
0062120 t P t r \r \t J M P \t @ M A P R E
0062140 T \r ; S O M E B I T S S
0062160 E T , C H E C K F O R S T
0062200 O R E T O C L E A N P A G
0062220 E \r B I T S E T : \t M O V R # \t
0062240 1 , 1 , S 376 001 \0 234 ? Z C \r \t
0062260 J M P \t N O M A P \r \t M O V Z L
0062300 \t 1 , 1 \r \t S U B \t 1 , 0 \t ; C
0062320 L E A R B I T S \r \t S T A \t 0
0062340 , 1 , 3 \r \t J M P \t I N C O R E
0062360 \r ; P R O B E F A I L E D
0062400 \r P R O B E : \t M O V # \t 0 , 0
0062420 , S N R \t ; E M P T Y S L O T
0062440 ? \r \t J M P \t E M P T Y \t ;
0062460 Y E S , R E T U R N N O S K
0062500 I P \r \t I S Z \t N P R B + 1 \t ;
0062520 L O G T H E R E P R O B E \r
0062540 \t J M P \t . + 3 \r \t I S Z \t
0062560 N P R B \r \t J M P \t . + 1 \r
0062600 \t L D A \t 0 , H A S H M A P \r \t
0062620 S U B \t 0 , 3 \t ; R E C O N S
0062640 T R U C T P R O B 376 001 \0 346 \0 E
0062660 I N D E X \r \t L D A \t 0 , R e
0062700 p r o b e I n c \r \t A D D \t 3 ,
0062720 0 \r \t J M P \t R E T R Y \r ;
0062740 L O O K U P F A I L E D , T
0062760 E S T F O R C O R E A D D
0063000 R E S S \r E M P T Y : \t L D A \t
0063020 0 , V A 0 \r \t L D A \t 1 , C A H
0063040 I \r \t S U B # \t 0 , 1 , S Z R \r
0063060 \t J M P \t N O M A P \r \t L D
0063100 A \t 1 , V A 1 \r \t M O V \t 1 , 3
0063120 \r \t J M P \t S K R E T \r ; M
0063140 A P F A U L T \r N O M A P 1 :
0063160 \t A D C Z L \t 3 , 3 \r \t A D D \t
0063200 1 , 3 \t ; S t a t i s t i c s
0063220 o v e r f l o w \r N O M A P :
0063240 \t L D A \t 0 , V A 0 \r \t L D A 376
0063260 \0 / 4 264 \t 1 , V A 1 \r \t D S Z \t
0063300 M A P R E T \r \t J M P \t @ M A P
0063320 R E T \r ; \r \t . E N D 032 ( 2 2 5
0063340 8 ) \r 377 \0 \0 v m e m . u s e \0 376
0063360 001 \0 v 030 e x t e r n a l \t / /
0063400 e n t r i e s f o r V M E M
0063420 \r [ \t C l e a n u p L o c k s \r
0063440 \t P a g e T y p e \r \t P a g e G
0063460 r o u p S i z e \r \t P a g e G r
0063500 o u p B a s e \r \t P a g e G r o
0063520 u p A l i g n \r \t D O P A G E I
0063540 O \r ] \r \r e x t e r n a l \t / /
0063560 l i n k s t o I S F \r [ \t
0063600 I n i t F m a p \r \t I n d e x e
0063620 d P a g e I O \r ] \r \r s t a t i
0063640 c \r [ \t M y F m a p \t / / p o
0063660 i n t e r t o w o r k a r
0063700 e a f o r I S F \r ] \r \r \r /
0063720 / T o i n i t i a l i z e
0063740 I S F , s e t M y F m a p
0063760 t o p 376 001 \0 207 n o i n t t o
0064000 a w o r k a r e a \r / /
0064020 o f s i z e M y F m a p L e
0064040 n g t h , a n d t h e n c
0064060 a l l \r / / \t I n i t F m a p (
0064100 M y F m a p , M y F m a p L e
0064120 n g t h , F i l e P t r , t
0064140 r u e ) \r / / w h e r e F i
0064160 l e P t r i s a F P ( s
0064200 e e t h e O . S . m a n u
0064220 a l ) \r / / f o r t h e p
0064240 a g i n g f i l e . A r
0064260 e a s o n a b l e v a l u e
0064300 f o r \r / / M y F m a p L e n
0064320 g t h i s 8 0 - - s e e
0064340 t h e I S F w r i t e u p
0064360 . \r \r \r l e t C 376 \0 334 356 370 l e
0064400 a n u p L o c k s ( ) b e [
0064420 ] \r \r l e t P a g e T y p e
0064440 ( v p ) = 1 \r \r l e t P a
0064460 g e G r o u p S i z e ( v p )
0064500 = 1 \r l e t P a g e G r o u
0064520 p B a s e ( v p ) = v p \r l
0064540 e t P a g e G r o u p A l i g
0064560 n ( v p ) = 0 \r \r l e t D
0064600 O P A G E I O ( v p , c o r e
0064620 , n p , w f l a g ) b e \r
0064640 [ \t I n d e x e d P a g e I O (
0064660 M y F m a p , v p + 2 , c o
0064700 r e , n p , ( w f l a g ?
0064720 - 1 , 1 ) ) \r ] \r 377 \0 \0 v m e
0064740 m . m u \0 376 001 \0 a + ; \r ; V
0064760 M E M . M U - - m i c r o c
0065000 o d e f o r V M E M p a c
0065020 k a g e \r ; l a s t m o d
0065040 i f i e d O c t o b e r 1 3
0065060 , 1 9 7 7 5 : 5 5 P M \r
0065100 ; \r ; R r e g i s t e r s
0065120 r e q u i r e d \r ; \r ; $ m a p
0065140 b a s e $ R x x ; \t b a s e
0065160 o f h a s h m a p , m u s
0065200 t b e e v e n \r ; $ m a p s
0065220 p t r $ R x x ; \t m a p s t
0065240 a t i s t i c s p o i n t e r
0065260 ( u p t o m a p b a s e )
0065300 , o r 0 \r ; $ m a p m a s k
0065320 1 $ R x x ; \t h a s h t a b
0065340 l e s i z e - 2 376 001 \0 , 202
0065360 ( e . g . 3 7 6 , 7 7 6 ) \r
0065400 ; C o p y r i g h t X e r o
0065420 x C o r p o r a t i o n 1 9
0065440 7 9 \r $ m m x \t $ R 5 ; \t = S A
0065460 D , t e m p f o r m a s k
0065500 b i t s \r $ k e y \t $ R 7 ; \t
0065520 = X R E G , t e m p f o r
0065540 h a s h k e y ( v i r t u a
0065560 l p a g e # ) \r $ m r x \t $
0065600 R 1 0 ; \t = X H , m i s c e l
0065620 l a n e o u s t e m p \r ; \r ;
0065640 O t h e r r e q u i r e m e
0065660 n t s \r ; \r ; $ M \t $ R 4 0 ; \t
0065700 t h e n e w L r e g i s t
0065720 e r \r ; ! 1 , 2 0 , S T A R T ;
0065740 \t R O M e n t r y t o N 376
0065760 001 \0 \0 f o v a e m u l a t o r
0066000 \r ; \r \r \r ; C o n s t a n t
0066020 s \r ; \r $ r e a d r e f \t $ 4 ;
0066040 \r $ w r i t e r e f \t $ 6 ; \r $
0066060 n o t r e f b i t \t $ 4 ; \r $ r
0066100 e p r o b i n c \t $ 3 0 ; \t u s
0066120 e w i t h r e p r o b i n c
0066140 + 1 + 1 \r $ m a m a s k \t \t
0066160 $ 1 7 7 4 0 0 ; \t a d d r e s s
0066200 p a r t o f m a p e n t
0066220 r y \r \r ; P r e d e f i n i
0066240 t i o n s f o r l a b e l s
0066260 \r ; \r ! 1 , 2 , n e m p t y , e
0066300 m p t y ; \t f o r d i s p a t
0066320 c h o n e m p t y e n t r
0066340 y \r ! 1 , 1 , e m p t y 1 ; \r !
0066360 1 , 2 , 376 001 \0 b - n o m a t c h
0066400 , m a t c h ; \t f o r d i s p
0066420 a t c h o n m a t c h w i
0066440 t h k e y \r ! 1 , 2 , n m a s
0066460 k o k , m a s k o k ; \t f o r
0066500 d i s p a t c h o n r e f /
0066520 d i r t y b i t s \r ! 1 , 2 ,
0066540 n c l e a n , c l e a n ; \t f o
0066560 r d i s p a t c h o n w r
0066600 i t e r e f . t o c l e a
0066620 n p a g e \r ! 1 , 2 , n o s k
0066640 i p , c o r e a d d r ; \t t e s
0066660 t i n g f o r c o r e a d
0066700 d r e s s \r ! 1 , 2 , d o s t a
0066720 t , n o s t a t ; \t t e s t i n
0066740 g m a p s p t r = 0 \r ! 1 , 2
0066760 , n f u l l , f u 376 001 \0 m . l l
0067000 ; \t \t t e s t i n g m a p s p
0067020 t r = m a p b a s e \r \r \r ;
0067040 r e a d / w r i t e m a p p i
0067060 n g - v . a . i s i n
0067100 A C 0 , A C 1 \r r r e f : \t L
0067120 _ r e a d r e f , T A S K ,
0067140 : d o m a p ; \t m a s k f o r
0067160 r e a d i n g \r w r e f : \t L
0067200 _ w r i t e r e f , T A S K ,
0067220 : d o m a p ; \t m a s k f o
0067240 r w r i t i n g \r d o m a p :
0067260 \t m m x _ L ; \r \r ; \r ;
0067300 f o r m h a s h k e y f r
0067320 o m A C 0 ( 8 - 1 5 ) a n
0067340 d A C 1 ( 0 - 7 ) \r ; \r \t T
0067360 _ 1 7 7 4 0 0 ; \r \t T _ A C 376 001
0067400 \0 \ | 1 . T ; \r \t L _ T _ A C 0
0067420 O R T ; \r \t k e y _ L L C
0067440 Y 8 ; \t \t s t a s h k e y \r
0067460 ; f o r m i n i t i a l
0067500 p r o b e \r \t T _ k e y + T + 1
0067520 ; \t + 1 i s n o i s e \r p r
0067540 o b e : \t L _ m a p m a s k 1
0067560 . T , T A S K ; \r \t m r x _
0067600 L ; \t \t s a v e i n i t i a
0067620 l p r o b e f o r T A S K
0067640 \r \r \t T _ m r x ; \r \t L _
0067660 M A R _ m a p b a s e + T
0067700 ; \r \t A C 3 _ L ; \r \t T _ k
0067720 e y ; \r \t L _ M D + T + 1 , B
0067740 U S = 0 ; \t c a t c h m e m o
0067760 r y d a t a , t e s t f o r
0070000 e m 376 001 \0 u \b p t y \r \t S H =
0070020 0 , T _ M D , : n e m p t y
0070040 ; \t c a t c h s e c o n d w
0070060 o r d o f d a t a \r \t \t \t \t
0070100 ; d i s p a t c h o n e m p
0070120 t y , t e s t f o r m a t c
0070140 h \r ; t e s t f o r m a
0070160 t c h h a n g i n g \r n e m p
0070200 t y : \t L _ m m x A N D
0070220 T , : n o m a t c h ; \t d i s
0070240 p a t c h o n m a t c h ,
0070260 t e s t f o r r / w \r e m p
0070300 t y : \t T _ 3 7 7 - 1 ,
0070320 : e m p t y 1 ; \t o v e r r i
0070340 d e m a t c h d i s p a t c
0070360 h \r e m p t y 1 : \t L _ A C
0070400 0 X O R T ; 376 001 \0 5 212 \r \t S
0070420 H = 0 , L _ A C 1 ; \r \t
0070440 : n o s k i p ; \t t e s t f
0070460 o r c o r e a d d r \r c o r
0070500 e a d d r : A C 3 _ L ,
0070520 : m s t a t s ; \r ; t e s t
0070540 i n g f o r m a s k e d b
0070560 i t s \r m a t c h : \t m r x _
0070600 L R S H 1 , L _ T ,
0070620 S H = 0 ; \t s a v e m a s k
0070640 e d b i t s \r \t T _ m a m
0070660 a s k . T , : n m a s k o k ;
0070700 \t d i s p a t c h o n b i t
0070720 s s e t o r n o t \r n o m
0070740 a t c h : T _ r e p r o b i
0070760 n c + 1 ; \t a d d i n t
0071000 h e f i r s t 1 \r \t T 376 001 \0
0071020 7 m _ m r x + T + 1 , : p r
0071040 o b e ; \t a d d i n t h e
0071060 o t h e r 1 \r n m a s k o k :
0071100 T _ m r x , B U S O D D ,
0071120 T A S K ; \t L h a s 2 n d
0071140 w o r d f r o m h a s h
0071160 m a p \r \t m r x _ L , :
0071200 n c l e a n ; \t t e s t f o r
0071220 w r i t e t o c l e a n
0071240 p a g e \r \r m a s k o k : \t L _
0071260 A C 1 + T , T A S K ; \r \t A
0071300 C 3 _ L , : m s t a t s ; \r
0071320 \r n c l e a n : \t M A R _ A C
0071340 3 + 1 ; \t \t g o i n g t o s
0071360 e t r e f b i t t o z e
0071400 r o \r \t T _ m r x ; \r \t L
0071420 _ 376 001 \0 \v $ n o t r e f b i t
0071440 X O R T ; \r \t M D _ M ;
0071460 \t \t r e w r i t e s e c o n d
0071500 w o r d \r \t T _ m a m a s
0071520 k . T , : m a s k o k ; \r \r ;
0071540 w r i t e r e f t o c
0071560 l e a n p a g e \r c l e a n :
0071600 \t L _ P C , S W M O D E ,
0071620 : n s k i p 1 ; \t n o s k i p
0071640 r e t u r n w i t h A C 3
0071660 = h a s h m a p p t r \r ;
0071700 p a g e n o t i n c o r e
0071720 \r n o s k i p : \t L _ P C ,
0071740 S W M O D E , : n s k i p 1
0071760 ; \t d i t t o \r ; S k i p r
0072000 e t u r n t o N o v a e m
0072020 u l a t o r \r 376 001 \0 321 226 n s k i
0072040 p : \t L _ P C + 1 , S W M
0072060 O D E ; \r n s k i p 1 : \t P C
0072100 _ L , : S T A R T ; \r \r ;
0072120 L o g m a p r e f e r e n c
0072140 e \r m s t a t s : \t L _ T
0072160 _ m a p s p t r ; \r \t L _
0072200 m a p b a s e - T , S H = 0 ;
0072220 \t t e s t f o r n o l o g
0072240 g i n g \r \t M A R _ T , S
0072260 H = 0 , : d o s t a t ; \t t e
0072300 s t f o r b u f f e r f u
0072320 l l \r n o s t a t : \t L _ P
0072340 C + 1 ; \r \t S I N K _ M D ,
0072360 S W M O D E , : n s k i p 1
0072400 ; \t d i s c a r d m e m o r y
0072420 d a t a , d o s k 376 \0 321 z
0072440 217 i p r e t u r n \r d o s t a
0072460 t : \t L _ 2 + T , : n f u
0072500 l l ; \r f u l l : \t L _ m a
0072520 p s p t r - 1 , T A S K ; \t s
0072540 i g n a l b u f f e r o v e
0072560 r f l o w w i t h f u n n y
0072600 A C 3 \r \t A C 3 _ L , :
0072620 n o s k i p ; \r n f u l l : \t M
0072640 D _ A C 0 ; \r \t M A R _
0072660 L _ m a p s p t r + 1 ; \r \t
0072700 L _ M + 1 ; \r \t m a p s p t
0072720 r _ L , T A S K ; \r \t M D
0072740 _ A C 1 , : n s k i p ; \r
0072760 \r \r 377 \0 \0 c o m p i l e v m e m
0073000 . c m \0 376 \0 211 ] 213 B c p l / F
0073020 t e s t v m e m . b c p l \r B c
0073040 p l / F v m e m . b c p l \r B
0073060 c p l / F v m e m a u x . b c
0073100 p l \r B c p l / F v m e m i n
0073120 i t . b c p l \r B c p l / F p
0073140 r i n t v m e m s t a t e . b c
0073160 p l \r A s m v m e m a . a s m
0073200 \r A s m v m e m s o f t . a s
0073220 m \r 377 \0 \0 l o a d t e s t v m e
0073240 m . c m \0 376 \0 k E \b B l d r / F
0073260 t e s t v m e m v m e m v
0073300 m e m a u x v m e m i n i t
0073320 p r i n t v m e m s t a t e i
0073340 s f i s f i n i t v m e m a
0073360 v m e m s o f t s t a n d a
0073400 r d r a m t r a c e t e m p
0073420 l a t e \r 377 \0 \0 s e n d v m e m
0073440 . c m \0 376 001 \0 e / / / l a s t
0073460 e d i t e d S e p t e m b e
0073500 r 9 , 1 9 7 7 1 : 5 7
0073520 P M \r F t p / - S M a x c ^
0073540 \r C o n n e c t / C a l t o s
0073560 o u r c e ^ \r D u m p / C v
0073600 m e m . d m t e s t v m e m .
0073620 b c p l v m e m . d v m e m
0073640 . b c p l v m e m a u x . b c
0073660 p l v m e m i n i t . b c p l
0073700 p r i n t v m e m s t a t e .
0073720 b c p l v m e m a . a s m v
0073740 m e m s o f t . a s m v m e m
0073760 . u s e v m e m . m u c o m
0074000 p i l e v m e m . c m l o a d
0074020 t e s t v m e m . c m s e n d
0074040 v m e m . c m ^ 376 \0 x 376 H \r C
0074060 o n n e c t / C a l t o ^ \r
0074100 D u m p / C v m e m . d m v
0074120 m e m . B R v m e m a u x . B
0074140 R v m e m i n i t . B R p r
0074160 i n t v m e m s t a t e . B R
0074200 v m e m a . B R v m e m s o f
0074220 t . B R v m e m . u s e v m
0074240 e m . m u \r 374
0074247