; ; SWITCH section 8.2.3 page 86 ; SWITCH10:NOP0 ;switch(Ind) { DECI Ind,d LDX Ind,d ; CPX 1,i ; BRLT OTHER10 ; Vérifier si Ind est CPX 5,i ; dans les limites [1..5] BRGT OTHER10 ; SUBX 1,i ; ramener à [0..4] ASLX ; * 2 => indice réel dans BR TAB10,x ; table (adresse = 2 octets) TAB10: .ADDRSS CAS10_1 ; .ADDRSS CAS10_2 ; .ADDRSS CAS10_3 ; .ADDRSS CAS10_4 ; .ADDRSS CAS10_5 ; CAS10_1: NOP0 ; case 1: LDA 1,i STA code,d ; commentaires BR ENDCAS10 ; break; CAS10_2: NOP0 ; case 2: LDA 2,i STA code,d ; commentaires BR ENDCAS10 ; break; CAS10_3: NOP0 ; case 3: LDA 3,i STA code,d ; commentaires BR ENDCAS10 ; break; CAS10_4: NOP0 ; case 4: LDA 4,i STA code,d ; commentaires BR ENDCAS10 ; break; CAS10_5: NOP0 ; case 5: LDA 5,i STA code,d ; commentaires BR ENDCAS10 ; break; OTHER10: NOP0 ; default: LDA 0,i STA code,d ; commentaires ENDCAS10:NOP0 ;} DECO code,d STOP code: .BLOCK 2 ; #2d Ind: .BLOCK 2 ; #2d .END