$ od -c -N 50000 [Indigo]<AltoSource>INTERRUPTSOURCES.DM!1 0000000 377 \0 \0 I n t e r r u p t . a s m 0000020 \0 376 001 \0 P 233 ; I n t e r r u p 0000040 t . A s m \r ; C a u s e I n t 0000060 e r r u p t , D e s t r o y I 0000100 n t e r r u p t , ( + i n t 0000120 e r r u p t h a n d l e r ) \r 0000140 ; C o p y r i g h t X e r o 0000160 x C o r p o r a t i o n 1 9 0000200 7 9 \r ; C o p y r i g h t X 0000220 e r o x C o r p o r a t i o n 0000240 1 9 7 9 \r \r ; l a s t m o 0000260 d i f i e d S e p t e m b e r 0000300 4 , 1 9 7 9 2 : 3 0 P 0000320 M b y T a f t \r \r \r \t . e n 0000340 t C a u s e I n t e r r u p t 0000360 \r \t . e n t D e s t r o y I n 0000400 t e r r u p t \r \t . e n t i n 0000420 t e r r u p 376 001 \0 ! 222 t P r o l 0000440 o g u e \r \t . e n t i n t e r 0000460 r u p t s A c t i v e \r \t . e n 0000500 t i n t e r r u p t F i n i s 0000520 h \r \t . e n t s a v e d U s e 0000540 r F i n i s h P r o c \r \r \t . b 0000560 e x t l v U s e r F i n i s h 0000600 P r o c \r \r \t . s r e l \r C a u 0000620 s e I n t e r r u p t : \t \t . C 0000640 a u s e \r D e s t r o y I n t e 0000660 r r u p t : \t . D e s t r o y \r 0000700 i n t e r r u p t P r o l o g u 0000720 e : \t . P r o l o g u e \r i n t 0000740 e r r u p t s A c t i v e : \t 0 0000760 \t ; B i t s t h a t I h 0001000 a v e t u r n e d o n ! \r i 0001020 n t e r r u p t F i n 376 001 \0 334 332 0001040 i s h : \t . I n t F i n \r s a v 0001060 e d U s e r F i n i s h P r o c 0001100 : \t - 1 \t ; - 1 m e a n s 0001120 n o t h i n g y e t s a v e 0001140 d \r \r \t . z r e l \r I n t e r r 0001160 u p t E n t r y : \t \t . I n t E 0001200 n t \r \r \t . n r e l \r \t 0 \t \t \t 0001220 ; S a c r i f i c e t o B 0001240 l d r \r \r \r \r ; O f f s e t s 0001260 o f t h i n g s i n I S 0001300 T ( I n t e r r u p t S t a 0001320 c k ) ; s a m e a s i n 0001340 I n t e r r u p t I n i t . B c 0001360 p l \r \r ; P r o l o g u e i 0001400 s i n 0 , 1 \r R = 2 \t 0001420 \t \t \t ; P o i n t w h e r e 0001440 376 001 \0 ^ 036 A C 3 w i l l p 0001460 o i n t \r \t . A C 0 = 2 \t \t \t ; 0001500 M a c h i n e s t a t e . . 0001520 . . \r \t . A C 1 = 3 \r \t . A C 2 0001540 = 4 \r \t . A C 3 = 5 \r \t . P C = 0001560 6 \r \t . S t k M i n = 7 \t \t ; 0001600 O l d s t a c k m i n \r \t . 0001620 A C T = 8 . \t \t \t ; A c t i v 0001640 e l s h i f t 1 + c a r 0001660 r y \r \r ; C o n t e x t t o 0001700 r u n t h e g u y i n : 0001720 \r \t . N M a s k = 9 . \t \t ; N 0001740 e w i n t e r r u p t m a s 0001760 k \r \t . N S t a c k = 1 0 . \r \t 0002000 . N S t k M i n = 1 1 . \r \t . I 0002020 n i t P C = 1 2 . \t \t ; P r o 0002040 c e d u r 376 001 \0 m ( e t o c 0002060 a l l \r \t . S t k B o t = 1 3 . 0002100 \t \t ; B o t t o m o f s t 0002120 a c k - - p l a c e 3 3 5 0002140 w i l l p o i n t t o . \r 0002160 \r ; B c p l r u n t i m e 0002200 l o c a t i o n \r \t S t k M i n 0002220 = 3 3 5 \r \r \f \r ; T h e f o 0002240 l l o w i n g 2 p r o l o g 0002260 u e w o r d s a r e r e c 0002300 o r d e d i n t h e I S T 0002320 . \r ; W h e n a n i n t e 0002340 r r u p t f i r e s , c o n 0002360 t r o l t r a n s f e r s t 0002400 o t h e I S T , w h i c h 0002420 \r ; s a v e s A C 3 a n d 0002440 j s r ' s t o 376 001 \0 237 001 c 0002460 o m m o n c o d e f o r s 0002500 a v i n g t h e r e m a i n 0002520 d e r \r ; o f t h e s t a 0002540 t e \r \r . P r o l o g u e : \r \t 0002560 s t a 3 , . P r o l o g u e + 0002600 . A C 3 \t ; S t a t e - s a v 0002620 i n g p r o l o g u e i n 0002640 e a c h I S T \r \t j s r @ I 0002660 n t e r r u p t E n t r y \r \r \r 0002700 ; - - - - - - - - - - - - - - - 0002720 - - - - - - - - - - - - - - - - * 0003000 - - \r . I n t E n t : \r ; - - - 0003020 - - - - - - - - - - - - - - - - 0003040 - - - - - - - - - - - - - - - 376 0003060 001 \0 i 324 - - - - - - - - - - - - 0003100 - - - - - - - - - - - - - - - - 0003120 - - - \r \t s t a 2 , . A C 2 - 0003140 R , 3 \t \t ; C o m m o n c o 0003160 d e t o s a v e s t a t e 0003200 \r \t s t a 1 , . A C 1 - R , 3 0003220 \r \t s t a 0 , . A C 0 - R , 3 0003240 \r \t l d a 0 , @ . i n t P C \r 0003260 \t s t a 0 , . P C - R , 3 \r \t 0003300 l d a 0 , S t k M i n \r \t s t 0003320 a 0 , . S t k M i n - R , 3 \r 0003340 \r \t l d a 0 , @ . A c t i v e 0003360 \t \t ; S a v e c u r r e n t 0003400 a c t i v e i n t e r r u p 0003420 t s \r \t m o v l 0 1 \t \t ; 0003440 S a v e c a r r y ( b i t 0003460 0 o f 376 001 \0 B 307 a c t i v e 0003500 u n u s e d ) \r \t s t a 1 , 0003520 . A C T - R , 3 \r \t l d a 1 , 0003540 . N M a s k - R , 3 \t ; I n t 0003560 e r r u p t s t o l e a v e 0003600 o n . \r \t a n d 1 , 0 \t \t \t 0003620 ; C o m p u t e n e w a c 0003640 t i v e \r \t s t a 0 , @ . A c 0003660 t i v e \t \t ; A n d p u t 0003700 i t d o w n . \r \t e i r \t \t \t 0003720 ; N o w c a n p r o c e e 0003740 d . \r \r ; S e t u p n e w 0003760 c o n t e x t , a n d c a 0004000 l l t h e s p e c i f i e d 0004020 p r o c e d u r e . \r ; I n 0004040 t e r r u p t w i l l b e 0004060 d i s m i s s e d 376 001 \0 Y t w 0004100 h e n p r o c e d u r e r e 0004120 t u r n s . \r \r \t l d a 2 , . 0004140 N S t k M i n - R , 3 \r \t s t a 0004160 2 , S t k M i n \r \t l d a 2 0004200 , . N S t a c k - R , 3 \r \t j s 0004220 r @ . I n i t P C - R , 3 \t ; 0004240 C a l l p r o c e d u r e \r 0004260 \t 0 \t \t \t ; W i t h n o 0004300 a r g u m e n t s . \r \r ; R e 0004320 s t o r e s t a t e t h a t 0004340 w a s s a v e d i n t h 0004360 e I S T , a n d d i s m i 0004400 s s i n t e r r u p t . \r \r \t 0004420 l d a 3 0 2 \t \t ; R e c 0004440 o v e r I S T p o i n t e r 0004460 \r \t d i r \t \t \t ; P r e p 376 001 0004500 \0 220 350 a r e t o r e s t o r 0004520 e s t a t e \r \t l d a 1 , . 0004540 A C T - R , 3 \r \t m o v z r 1 0004560 1 \t \t ; R e s t o r e c a 0004600 r r y \r \t s t a 1 , @ . A c t 0004620 i v e \t \t ; R e s t o r e a 0004640 c t i v e \r \t l d a 1 , . S t 0004660 k M i n - R , 3 \r \t s t a 1 , 0004700 S t k M i n \r \t l d a 1 , . P 0004720 C - R , 3 \r \t s t a 1 , @ . i 0004740 n t P C \r \t l d a 0 , . A C 0 0004760 - R , 3 \r \t l d a 1 , . A C 1 0005000 - R , 3 \r \t l d a 2 , . A C 2 0005020 - R , 3 \r \t l d a 3 , . A C 3 0005040 - R , 3 \r \t b r i \t \t \t ; O f 0005060 f t o s e e t h e w o r 0005100 l d \r 376 001 \0 @ 351 \r \r . i n t P C 0005120 : \t 5 0 0 \t \t \t ; P l a c e 0005140 P C s a v e d o n i n t e 0005160 r r u p t \r . A c t i v e : 4 0005200 5 3 \t \t \t ; A c t i v e i n 0005220 t e r r u p t s w o r d \r \f \r 0005240 \r \r ; - - - - - - - - - - - - - 0005260 - - - - - - - - - - - - - - - - * 0005340 - - - - \r . I n t F i n : \r ; - 0005360 - - - - - - - - - - - - - - - - * 0005460 \r ; c a l l e d o n F i n 0005500 i s h o r A 376 001 \0 031 o b o r 0005520 t t o d i s a b l e a n y 0005540 i n t e r r u p t s t h a t 0005560 \r ; w e m a y h a v e t 0005600 u r n e d o n . \r \t s t a 3 0005620 1 2 \r \t l d a 0 , @ . I n 0005640 t A c t \t \t ; T u r n o f f 0005660 i n t e r r u p t s t h a t 0005700 a r e o n . \r \t j s r . D 0005720 e s t r o y \r \t 1 \r \t l d a 0005740 0 , @ . s a v e d U s e r F i n 0005760 i s h P r o c ; R e s t o 0006000 r e o l d f i n i s h r o 0006020 u t i n e \r \t l d a 3 , @ . l 0006040 v U s e r F i n i s h P r o c \r 0006060 \t s t a 0 , 0 , 3 \r \t l d a 0006100 3 1 2 \r \t j m p 1 376 001 \0 0006120 \v 247 3 \r \r . I n t A c t : i n 0006140 t e r r u p t s A c t i v e \r . 0006160 s a v e d U s e r F i n i s h P 0006200 r o c : s a v e d U s e r F i 0006220 n i s h P r o c \r . l v U s e r 0006240 F i n i s h P r o c : l v U s 0006260 e r F i n i s h P r o c \r \r \r \r 0006300 ; - - - - - - - - - - - - - - - 0006320 - - - - - - - - - - - - - - - - * 0006400 - - \r . D e s t r o y : \r ; - - 0006420 - - - - - - - - - - - - - - - - * 0006500 - - - - - - - - - - - - - - - \r 0006520 ; 376 001 \0 S 346 D e s t r o y I n 0006540 t e r r u p t ( m a s k ) \r ; 0006560 T u r n o f f i n t e r r u 0006600 p t c h a n n e l ( s ) d e 0006620 s i g n a t e d b y m a s k 0006640 \r \t c o m 0 , 0 \t \t \t ; P r 0006660 e p a r e t o " a n d " w 0006700 i t h a c t i v e \r \t d i r \r 0006720 \t l d a 1 , @ . A c t i v e \r 0006740 \t a n d 0 , 1 \r \t s t a 1 , 0006760 @ . A c t i v e \t \t ; A l l 0007000 g o n e ! \r \t e i r \r \t l d a 0007020 1 @ . I n t A c t \t \t ; U p 0007040 d a t e o u r r e c o r d \r 0007060 \t a n d 0 1 \r \t s t a 1 0007100 @ . I n t A c t \r \t j m p 1 , 0007120 3 \t \t \t ; R 376 001 \0 360 202 e t u r 0007140 n \r \r \r \r ; - - - - - - - - - - 0007160 - - - - - - - - - - - - - - - - * 0007240 - - - - - - - \r . C a u s e : \r 0007260 ; - - - - - - - - - - - - - - - 0007300 - - - - - - - - - - - - - - - - * 0007360 - - \r ; C a u s e I n t e r r 0007400 u p t ( m a s k ) \r ; I n i t 0007420 i a t e i n t e r r u p t o 0007440 n c h a n n e l ( s ) d e s 0007460 i g n a t e d b y m a s k \r 0007500 \t c o m 0 , 0 \t \t ; P r e p 0007520 a r e t o " o r " 376 001 \0 6 0007540 234 w i t h w a k e u p s w a 0007560 i t i n g \r \t d i r \r \t l d a 0007600 1 , @ . W a k e u p s \r \t a n d 0007620 0 , 1 \r \t a d c 0 , 1 \r \t s 0007640 t a 1 , @ . W a k e u p s \r \t 0007660 e i r \r \t j m p 1 , 3 \r \r . W 0007700 a k e u p s : \t 4 5 2 \r \f \r \r ; 0007720 - - - - - - - - - - - - - - - - * 0010020 - \r ; D i s a b l e I n t e r 0010040 r u p t s ( ) a n d E n a b 0010060 l e I n t e r r u p t s ( ) \r ; 0010100 - - - - - - - - - - - - - - - - * 0010140 - 376 001 \0 : l - - - - - - - - - - 0010160 - - - - - - - - - - - - - - - - 0010200 - - - - - - \r ; T h e s e a 0010220 r e p r o v i d e d h e r e 0010240 s o t h e y a r e s t i 0010260 l l a v a i l a b l e \r ; e 0010300 v e n i f y o u j u n t a 0010320 t h e o n e s i n t h e 0010340 o p e r a t i n g s y s t e 0010360 m \r \r \t . e n t D i s a b l e 0010400 I n t e r r u p t s , E n a b 0010420 l e I n t e r r u p t s \r \r \t . 0010440 s r e l \r D i s a b l e I n t e 0010460 r r u p t s : . D i s a b l 0010500 e \r E n a b l e I n t e r r u p 0010520 t s : . E n a b l e \r \t . n 0010540 r e l \r \r . 376 \0 w r o D i s a b 0010560 l e : # 6 1 0 1 3 \t ; r e t 0010600 u r n t r u e i f t h e y 0010620 w e r e o n \r \t m k z e r 0010640 o 0 0 s k p \r \t m k m i n 0010660 u s o n e 0 0 \r \t j m p 1 0010700 , 3 \r \r . E n a b l e : e i r 0010720 \r \t j m p 1 , 3 \r \r \t . e n d 0010740 \r \r 377 \0 \0 I n t e r r u p t I n 0010760 i t . b c p l \0 376 001 \0 b Y / / 0011000 I n t e r r u p t I n i t . B c 0011020 p l ( c o m p a n i o n t o 0011040 I n t e r r u p t . A s m ) \r 0011060 / / T h i s c o d e 0011100 c a n b e w i p e d o u 0011120 t a f t e r i n i t i a l i 0011140 z a t i o n i s c o m p l e 0011160 t e \r / / C o p y r i g h t 0011200 X e r o x C o r p o r a t i o 0011220 n 1 9 7 9 \r / / C o p y r i 0011240 g h t X e r o x C o r p o r 0011260 a t i o n 1 9 7 9 \r \r / / \t L 0011300 a s t m o d i f i e d S e p 0011320 t e m b e r 4 , 1 9 7 9 0011340 2 : 3 0 P M b y T a f t \r 0011360 \r e x t e r n a l \r [ \r / 376 001 \0 0011400 265 311 / o u t g o i n g p r o 0011420 c e d u r e s \r I n i t i a l i 0011440 z e I n t e r r u p t ; F i n 0011460 d I n t e r r u p t M a s k \r \r 0011500 / / i n c o m i n g p r o c 0011520 e d u r e s \r S y s E r r \r \r / 0011540 / i n c o m i n g s t a t i 0011560 c s \r l v U s e r F i n i s h P 0011600 r o c \t / / T o c l e a n 0011620 u p i n t e r r u p t s y s 0011640 t e m \r \r / / F r o m I n t 0011660 e r r u p t . A s m : \r i n t e 0011700 r r u p t P r o l o g u e ; i 0011720 n t e r r u p t F i n i s h \r i 0011740 n t e r r u p t s A c t i v e ; 0011760 s a v e d U s e r F i n i s h 0012000 P r 376 001 \0 346 347 o c \r ] \r \r / / - 0012020 - - - - - - - - - - - - - - - - * 0012100 - - - - - - - - - - - - - - \r s 0012120 t r u c t u r e I S T : \t \t / 0012140 / C o r r e s p o n d s t o 0012160 I n t e r r u p t . A s m \r / 0012200 / - - - - - - - - - - - - - - - 0012220 - - - - - - - - - - - - - - - - * 0012300 \r [ \r P r o l o g u e w o r d 0012320 2 \r v a r i o u s w o r d 0012340 7 \t \t / / O l d s t a t e 0012360 s a v e d h e r e \r N e w M a 0012400 s k w o r d 376 001 \0 341 N \t \t / / 0012420 N e w i n t e r r u p t m 0012440 a s k \r S t a c k w o r d \t \t 0012460 / / S t a c k p o i n t e r 0012500 t o u s e \r S t a c k M i n 0012520 w o r d \t \t / / S t a c k 0012540 b o t t o m t o u s e \r I n 0012560 i t i a l P C w o r d \t \t / / 0012600 P r o c e d u r e t o c a 0012620 l l \r S t a c k B o t w o r d 0012640 0 \t \t / / F i r s t s t a 0012660 c k l o c a t i o n \r ] \r \r m 0012700 a n i f e s t \r [ \r i n t e r r 0012720 u p t V e c t o r = # 5 0 1 0012740 \r A c t i v e = # 4 5 3 \r \r 0012760 e c I n t e r r u p t I n U s e 0013000 = 2 7 5 0 \r e c I n 376 001 \0 256 0013020 345 t e r r u p t M a s k Z e r o 0013040 = 2 7 5 1 \r e c I n t e r r 0013060 u p t C h a n Z e r o = 2 7 0013100 5 2 \r ] \r \f \r / / - - - - - - - 0013120 - - - - - - - - - - - - - - - - * 0013200 - - - - - - - - \r l e t I n i 0013220 t i a l i z e I n t e r r u p t 0013240 ( r e g i o n , l e n g t h , 0013260 m a s k , i n i t i a l P c 0013300 ) = v a l o f \r / / - - - - 0013320 - - - - - - - - - - - - - - - - * 0013400 - - - - - - - - - - - \r [ \r / / 0013420 376 001 \0 035 ( T r a p a l l f 0013440 i n i s h e s a n d a b o r 0013460 t s t o r e s e t i n t e 0013500 r r u p t s y s t e m \r i f 0013520 s a v e d U s e r F i n i s h P 0013540 r o c e q - 1 t h e n \r 0013560 [ \r s a v e d U s e r 0013600 F i n i s h P r o c = @ l v 0013620 U s e r F i n i s h P r o c \r 0013640 @ l v U s e r F i n i s h P 0013660 r o c = i n t e r r u p t F 0013700 i n i s h \r ] \r \r / / C 0013720 h e c k v a l i d i t y o f 0013740 m a s k \r m a s k = M a k 0013760 e O n e B i t ( m a s k ) \r i f 0014000 ( m a s k & @ A c t i v e 0014020 ) n e 0 376 001 \0 023 \t t h e n 0014040 S y s E r r ( n i l , e c I 0014060 n t e r r u p t I n U s e ) \r \r 0014100 / / I n s t a l l p r o l o 0014120 g u e , v a r i o u s s t u 0014140 f f i n I S T \r f o r i 0014160 = 0 t o ( s i z e I 0014200 S T . P r o l o g u e / 1 6 ) - 0014220 1 d o \r r e g i o n ! i 0014240 = i n t e r r u p t P r o l 0014260 o g u e ! i \r r e g i o n > > I 0014300 S T . N e w M a s k = m a s 0014320 k - 1 \r r e g i o n > > I S T . 0014340 I n i t i a l P C = i n i t 0014360 i a l P c \r r e g i o n > > I S 0014400 T . S t a c k = r e g i o n 0014420 + l e n g t h - 4 376 001 \0 230 337 0014440 / / M i n i m a l f r a m e 0014460 a t t o p \r ( r e g i o n > 0014500 > I S T . S t a c k ) ! 0 = 0014520 r e g i o n + ( s i z e I 0014540 S T . P r o l o g u e / 1 6 ) \r 0014560 r e g i o n > > I S T . S t a c 0014600 k M i n = ( l v r e g i o 0014620 n > > I S T . S t a c k B o t ) 0014640 \r \r / / D i s c o v e r i n 0014660 t e r r u p t c h a n n e l 0014700 n u m b e r \r l e t i = 0 0014720 \r w h i l e ( ( 1 l s h i f 0014740 t i ) & m a s k ) e q 0014760 0 d o i = i + 1 \r i n t 0015000 e r r u p t V e c t o r ! i = 0015020 r e g i o n / / E 0015040 376 001 \0 _ Y n t e r t h i s w 0015060 a y \r @ A c t i v e = @ A c 0015100 t i v e % m a s k 0015120 / / L e t h i m a t i t 0015140 \r i n t e r r u p t s A c t i v 0015160 e = i n t e r r u p t s A c 0015200 t i v e % m a s k \r r e s u l t 0015220 i s m a s k \r ] \r \f \r / / - - 0015240 - - - - - - - - - - - - - - - - * 0015320 - - - - - - - - - - - - - \r a n 0015340 d F i n d I n t e r r u p t M 0015360 a s k ( m a s k ) = v a l o 0015400 f \r / / - - - - - - - - - - - - 0015420 - - - - - - - - - - - - - - - - 0015440 - - - - - 376 001 \0 325 W - - - - - - 0015460 - - - - - - - - - - - - - - - - 0015500 - - - - - - - - \r / / F i n d 0015520 l e g a l c h a n n e l o 0015540 f n e x t l o w e s t p r 0015560 i o r i t y \r [ \r m a s k = 0015600 M a k e O n e B i t ( m a s k ) 0015620 \r w h i l e m a s k n e # 0015640 1 0 0 0 0 0 d o \r [ \r 0015660 i f ( m a s k & @ A c t i 0015700 v e ) e q 0 t h e n r e 0015720 s u l t i s m a s k \r m 0015740 a s k = m a s k l s h i f 0015760 t 1 \r ] \r r e s u l t i 0016000 s 0 \r ] \r \r \r / / - - - - - - 0016020 - - - - - - - - - - - - - - - - 0016040 - - - - - - - - - - 376 001 \0 > C - 0016060 - - - - - - - - - - - - - - - - 0016100 - - - - - - - - - - - - - - \r a 0016120 n d M a k e O n e B i t ( m a 0016140 s k ) = v a l o f \r / / - - 0016160 - - - - - - - - - - - - - - - - * 0016240 - - - - - - - - - - - - - \r / / 0016260 F r o m m a s k , m a k e 0016300 l e g a l o n e - b i t m a 0016320 s k s e n s i n g o n l y 0016340 h i g h e s t o r d e r b i 0016360 t \r [ \r i f m a s k e q 0 0016400 t h e n S y s E r r ( n i l 0016420 , e c I n t e r r u p t M a s 0016440 k Z e r o ) \r l e t i = 376 0016460 \0 257 u 372 0 \r w h i l e ( m a s 0016500 k & # 1 0 0 0 0 0 ) e q 0 0016520 d o \r [ \r m a s k 0016540 = m a s k l s h i f t 1 \r 0016560 i = i + 1 \r ] \r 0016600 m a s k = ( # 1 0 0 0 0 0 0016620 r s h i f t i ) \r i f m a s 0016640 k e q # 1 0 0 0 0 0 t h e 0016660 n S y s E r r ( n i l , e c 0016700 I n t e r r u p t C h a n Z e r 0016720 o ) \r r e s u l t i s m a s k 0016740 \r ] \r 377 \0 \0 I n t e r r u p t E 0016760 x . b c p l \0 376 001 \0 250 222 / / C 0017000 o p y r i g h t X e r o x C 0017020 o r p o r a t i o n 1 9 7 9 \r 0017040 e x t e r n a l [ W s ; I 0017060 n i t i a l i z e I n t e r r u 0017100 p t ; F i n d I n t e r r u p 0017120 t M a s k ; C a u s e I n t e 0017140 r r u p t ] \r s t a t i c [ 0017160 l o w C h a n n e l ; t i c 0017200 k C o u n t ] \r m a n i f e s 0017220 t v e r t i c a l I n t e r v 0017240 a l = # 4 2 1 \r \r l e t m a i 0017260 n ( ) b e \r \t [ \r \t l e t s 0017300 t a c k 1 = v e c 4 0 \r \t l e 0017320 t s t a c k 2 = v e c 2 0 0 0017340 \r \r / / I n i t i a l i z e 0017360 t w o i n t e r r u p 376 001 \0 324 0017400 362 t c h a n n e l s \r \t l e t 0017420 h i g h = I n i t i a l i z e 0017440 I n t e r r u p t ( s t a c k 1 0017460 , 4 0 , \r \t \t \t F i n d I n t 0017500 e r r u p t M a s k ( 1 ) , H 0017520 i g h P r o c ) \r \t l o w C h a 0017540 n n e l = I n i t i a l i z e I 0017560 n t e r r u p t ( s t a c k 2 , 0017600 2 0 0 , \r \t \t \t F i n d I n t 0017620 e r r u p t M a s k ( h i g h ) 0017640 , L o w P r o c ) \r \t t i c k 0017660 C o u n t = 0 \r / / A r r a n 0017700 g e v e r t i c a l i n t e 0017720 r v a l t o c a u s e i n 0017740 t e r r u p t s o n c h a n 0017760 n e l " h i g h " \r \t @ v e r 0020000 t 376 \0 340 202 255 i c a l I n t e r v 0020020 a l = @ v e r t i c a l I n t e 0020040 r v a l % h i g h \r \t w h i 0020060 l e t r u e d o l o o p \r 0020100 \t ] \r \r a n d H i g h P r o c 0020120 ( ) b e \r \t [ \r \t i f t i c 0020140 k C o u n t e q 0 t h e n 0020160 \r \t \t [ \r \t \t t i c k C o u n t 0020200 = - 6 0 \r \t \t C a u s e I n t e 0020220 r r u p t ( l o w C h a n n e l 0020240 ) \r \t \t ] \r \t t i c k C o u n t 0020260 = t i c k C o u n t + 1 \r \t ] \r 0020300 \r a n d L o w P r o c ( ) b 0020320 e \r \t [ \r \t W s ( " T i c k " 0020340 ) \r \t ] \r \r 377 \0 \0 C o m p i l e 0020360 I n t e r r u p t . c m \0 376 \0 L 0020400 305 3 A s m / e I n t e r r u p 0020420 t . a s m ; ^ \r B c p l / f 0020440 I n t e r r u p t I n i t . b c 0020460 p l ; ^ \r B c p l / f I n t 0020500 e r r u p t E x . b c p l \r 377 \0 0020520 \0 L o a d I n t e r r u p t E x 0020540 . c m \0 376 \0 ) $ 251 B l d r I n 0020560 t e r r u p t E x I n t e r r 0020600 u p t I n t e r r u p t I n i 0020620 t \r 377 \0 \0 I n t e r r u p t B r 0020640 . c m \0 376 \0 035 4 316 I n t e r r u 0020660 p t . b r I n t e r r u p t I 0020700 n i t . b r 377 \0 \0 I n t e r r u 0020720 p t . c m \0 376 \0 t z { I n t e r 0020740 r u p t . a s m I n t e r r u 0020760 p t I n i t . b c p l I n t e 0021000 r r u p t E x . b c p l C o m 0021020 p i l e I n t e r r u p t . c m 0021040 L o a d I n t e r r u p t E x 0021060 . c m I n t e r r u p t B r . 0021100 c m I n t e r r u p t . c m 374 0021120