6.3 Exemple d'expansion de dispositif au
moyen de sous-programmes de contrôle de
dispositif
(Exemple 18)
1
" Z 8 0 "
< E 7 3 C >
2 D T S C A N
E Q U
0 E 7 3 C H
< 0 0 4 7 >
3
D E V H O C K
E Q U
0 0 0 4 7 H
< 0 0 C 3 >
4 JP c o d e
E Q U
0 C 3 H
< 0 0 0 0 >
5 O P O R T
E Q U
OH
< 0 0 0 1 >
6 IPORT
E Q U
I H
0 0 0 0
6 C 6 F 7 6 6 5
7 ;
8 START
DEFB
' l o v e '
0 0 0 4
0 0 3 0
9
DEFW
P l O O P N
0 0 0 6
OOOD
10
DEFW
I N I T
0 0 0 8
OOOA
11
DEFW
INITS
1 2 ;
OOOA C D 0 0 3 0
13 INITS
C A L L
P l O O P N
OOOD 3 E C 3
14 I N I T
L D
A ,
JPcode
0 0 0 F
3 2 0 0 4 8
15
L D
[ D E V H O C K + 1 ] ,
0 0 1 2
2 1 0 0 1 9
16
L D
H L ,
D E V S C N
0 0 1 5
2 2 0 0 4 9
17
L D
[ D E V H O C K + 2 ] ,
0 0 1 8 C 9
18 N O P
19-
RET
0 0 1 9 DO
2 0 D E V S C N
RET
N C
O O I A
110021
21
L D
DE,
DEVTBL
0 0 1 D
C D E 7 3 C
2 2
C A L L
D T S C A N
0 0 2 0 C 9
2 3
RET
2 4 ;
0 0 2 1
5 0 4 9 4 F B A
2 5 DEVTBL
DEFB
' P I O ' , ' : ' + 1 2 8
0 0 2 5 0 0
2 6
DEFB
0
0 0 2 6
15
2 7
DEFB
21
0 0 2 7
0 0 3 2 0 0 3 5
2 8
DEFW
PIOPUT, PIOSNS
0 0 2 B
0 0 3 0 0 0 1 8
2 9
DEFW
P l O O P N , N O P
3 0 ;
0 0 2 F
0 0
3 1
DEFB
0
3 2 ;
P a r a m è t r e d ' e n t r é e o u v e r t e
0 0 3 0
3 E 0 0
0 0 3 2
D 3 0 0
0 0 3 4 C 9
0 0 3 5
DBOl
0 0 3 7
A 7
0 0 3 8
0 6 0 0
0 0 3 A 0 4
0 0 3 B C 9
B a l a y a g e d e d i s p o s i t i f
H o c k d e d i s p o s i t i f 1
C o d e Z 8 0 J P
A d r e s s e d u p o i n t d e s o r t i e d e l ' u t i l i s a t e u r
; I n i t i a l i s a t i o n d u r e d e d i s p o s i t i f
i n i t i a l i s a t i o n d o u c e
; D e s i e e p
; T o u s l e s b i t s = 0
; T a b l e a u à h o c k d e d i s p o s i t i f
; R e t o u r s i o n t r o u v e u n a u t r e d i s p o s i t i f
; l c i s a u v e g a r d e r l e s d o n n é e s I X , H L , B C
; R e t o u r s i l e n o m d u d i s p o s i t i f e s t t r o u v é
p u i s a c h e m i n e r = 0 , s i n o n a c h e m i n e r = 1
; L e d i s p o s i t i f b a l a i e le n o m ( b i t 7 = 1 )
i n d i q u e le c a r a c t è r e f i n a l d u n o m
; B a n q u e d e d i s p o s i t i f = 0
; C o d e d e d i s p o s i t i f
; E c r i r e , lire
; O u v r i r , o p t i o n
; C a r a c t è r e f i n a l d u t a b l e a u
< E S C A P E > = r e s t e l a l o n g u e u r d u n o m
< E S C A P E + 1 > ,
< E S C A P E + 2 > =
r e s t e le n o m d u p o i n t e u r
I X = 1 è r e d o n n é e d ' o p é r a n d e
i m p l i c i t e = 0
B = 2 è m e d o n n é e d ' o p é r a n d e
i m p l i c i t e = 0
A = m o d e o u v e r t 0 : a p p e l é p a r l a c o m m a n d e " I N I T " ,
" L O A D "
1 : a p p e l é p a r l a c o m m a n d e
" S A V E "
N o u s p o u v o n s m o d i f i e r t o u s l e s r e g i s t r e s
L e s d o n n é e s d e r e t o u r H L , B C , D E s o n t s a u v e g a r d é e s d a n s K B N T B L n + 2 ,
. K B N T B L n + 4 , K B N T B L n + 6 .
4 3 P l O O P N
L D
A , 0
4 4 P I O P U T
O U T
4 5
RET
4 6 ;
- C o n d i t i o n d e r e t o u r
4 7 ;
S N S A D
4 8 ;
R e p o r t
Z é r o
R e g A
49;
0
0
d o n n é e s
r e t o u r
n o r m a l
5 0 ;
0
1
X
5 1 ;
1
X
X
; I n i t i a l i s e l e s e n t r é e s p a r a l l è l e s , t o u t e s l e s e n t r é e s = 0
[ O P O R T ] , A
; D o n n é e s d e s o r t i e a u x p o i n t s d e s o r t i e
p a s d e d o n n é e s
e r r e u r i o
I
5 2 ;
5 3 PIOSNS
5 4
5 5
5 6
5 7
• N o u s p o u v o n s m o d i f i e r t o u s l e s r e g i s t r e s -
I N
A N D
LD
I N C
RET
A , [IPORT]
; P r e n d r e l e s d o n n é e s a u p o i n t
d ' e n t r é e
A
; r e p o r t = 0 s i il n ' y a p a s d e s t a t u t d ' e r r e u r i o
B, 0
B
z = 0 p o u r é t a t d e d o n n é e s v a l i d e
8 8