* GASP * SYLVAIN HUET 2012 * * ASSEMBLAGE : A/NL/NS * LANCEMENT : GO * RESULTAT : D RESULT RESULT+7 SCREEN EQU $429E *ADDR AFFICHAGE OFFSH EQU 79 *OFFSET SHOW OFFTG EQU 119 *OFFSET TARGET *POINT D'ENTREE O LDA $E7C3 *PASSAGE MODE ORA #1 *FORME STA $E7C3 LDU #SCREEN *COPIER TARGET LDX #TARGET *VERS ECRAN LEAU 1,U LEAU OFFTG,U BSR COPY8 LDU #TB0 *PRECALCULS DES LDY #TB1 *TABLES EOR CLRA INI0 TFR A,B LSRB STB A,U TFR A,B LSLB EORB A,U STB A,U STB A,Y TFR A,B EORB A,Y STB A,Y INCA BNE INI0 LDX #SCREEN *DEBUT CALCUL CLR -1,X CLR ,X *X,A POINTENT CLRA *VERS LE COUP LOOP TSTA *LIGNE 0? BEQ NEXT *PAS DE TEST LDB -2,X *CALCUL LIGNE N-1 LDB B,Y *EN FONCTION STB OFFSH,X *LIGNE N-2 LDB -1,X LDB B,U EORB OFFSH,X *LIGNE N-1 STB OFFSH,X LDB ,X LDB B,Y EORB OFFSH,X *ET LIGNE N STB OFFSH,X CMPB OFFTG,X *COMPARE CIBLE BEQ NEXT *EGAL->NEXT BAD CMPA #8 *DERNIERE LIGNE? BEQ BAD1 *OUI INC ,X *ITERER SUR LIGNE BNE LOOP *ENCORE UN COUP BAD1 LEAX -1,X *PLUS DE COUP DECA *CHANGER LIGNE N-1 BPL BAD *TOUT EST FINI? NFOUND SWI *PAS DE SOLUTION NEXT CMPA #8 *DERNIERE LIGNE? BEQ GOOD0 *SOLUTION TROUVEE INCA *PASSER LIGNE N+1 LEAX 1,X CLR ,X *INIT LIGNE BRA LOOP COPY8 LDB #8 *COPIER 8 OCTETS CP1 LDA ,X+ STA ,U+ DECB BNE CP1 RTS GOOD0 LDX #SCREEN *COPIER LE LDU #RESULT *RESULTAT BSR COPY8 GOOD SWI *RESULT CONTIENDRA LE RESULTAT RESULT RMB 8 *CHOISIR LE PROBLEME A RESOUDRE *EN DECOMMENTANT LA BONNE LIGNE TARGET FCB $FF,$FF,$FF,$FF FCB $FF,$FF,$FF,$FF *ARGET FCB $20,$20,$20,$A7 FCB $E4,$07,$01,$07 *ARGET FCB $18,$18,$18,$FF FCB $FF,$18,$18,$18 *ARGET FCB $00,$66,$66,$00 FCB $42,$3C,$18,$00 *BUFFERS DE PRECALCUL RMB 256 TB0 RMB 256 TB1 RMB 256 END