1 ; Sous-programme qui lit un tableau d'entier
2 ; -> utilise des vraies variables locales
5 ; Programme principal. Invoque simplement la fonction.
10 tab: .BLOCK 10 ; un tableau d'entiers #2d5a
11 tabLen: .EQUATE 10 ; taille de tab en octets
13 ; readTab: lit un tableau d'entiers (de l'input)
14 ; IN: A=tableau d'entiers (mots signés #2d)
15 ; X=taille du tableau en octets
16 ; En cas de probleme de lecture, le programme s'arrete
17 readTab: SUBSP 6,i ; reserve var locales #taille #addrt #addrfin
18 STA addrt,s ; sauvegarde le parametre A
19 STX taille,s ; sauvegarde le parametre X
21 STX addrfin,s ; addrfin = addrt + taille
22 LDX addrt,s ; for (X=addrt; X<addrfin; X+=2) {
23 readLoop:CPX addrfin,s
25 DECI 0,x ; *addrt = readInt();
27 BR readLoop ; } // fin for
28 rTfin: LDX taille,s ; restaure X
29 RET6 ; libere #taille #addrt #addrfin
30 taille: .EQUATE 4 ; la taille du tableau en octets #2d
31 addrt: .EQUATE 2 ; l'adresse du tableau #2h
32 addrfin: .EQUATE 0 ; l'adresse de fin du tableau #2h