* * Blockade: Souris * *-------------------------------------- maximumX = 312 maximumY = 194 theMOUSE lda nbPIECES bne theMOUSE1 lda #0 rts theMOUSE1 jsr moREAD jsr moCONTROL bcs theMOUSE10 cpx #-1 beq theMOUSE10 cpx #135*2 bcc theMOUSE4 brl doBUTTON theMOUSE4 lda coorX sta oldX lda coorY sta oldY lda currC sta oldC ldy #0 theMOUSE5 jsr checkVALID bcc theMOUSE6 ldx oldX stx coorX ldy oldY sty coorY lda oldC sta currC bra theMOUSE10 theMOUSE6 lda #-1 sta windowC ldx coorX stx currX ldy coorY sty currY jsr moBACK jsr nowPLAY jsr moFORE ldx currX stx coorX ldy currY sty coorY brl theMOUSE *--- theMOUSE10 lda fgBORDURE beq theMOUSE12 sep #$20 ldal $e0c034 inc stal $e0c034 rep #$20 theMOUSE12 ldy #0 jsr clickIT bcc theMOUSE13 brl theMOUSE theMOUSE13 sta theKEY cpy #0 bne theMOUSE14 ldal $e0c060 bmi theMOUSE14 brl theMOUSE30 theMOUSE14 lda theKEY and #%00000000_11011111 cmp #"Q" bne theMOUSE16 jsr doQUIT bcs theMOUSE15 lda #-1 clc rts theMOUSE15 brl theMOUSE theMOUSE16 lda theKEY and #%00000000_11011111 cmp #"R" bne theMOUSE17 lda #-2 rts theMOUSE17 lda theKEY and #%00000000_11011111 cmp #"Z" bne theMOUSE18 lda #-1 sta windowC jsr moBACK jsr restoreALL jsr moFORE brl theMOUSE theMOUSE18 lda theKEY and #%00000000_11011111 cmp #"P" bne theMOUSE20 jsr doLEVEL bcc theMOUSE19 jsr moFORE brl theMOUSE theMOUSE19 lda #-2 rts theMOUSE20 lda theKEY cmp #"?" bne theMOUSE21 jsr doHELP brl theMOUSE theMOUSE21 lda fgFX bne theMOUSE22 lda fgSND beq theMOUSE22 lda theKEY and #%00000000_11011111 cmp #"S" bne theMOUSE22 lda fgPLAY eor #1 sta fgPLAY brl theMOUSE theMOUSE22 lda fgZIK bne theMOUSE24 lda fgSND beq theMOUSE24 lda theKEY and #%00000000_11011111 cmp #"M" bne theMOUSE24 lda zikPLAY eor #1 sta zikPLAY beq theMOUSE23 jsr shutMUSIC2 bra theMOUSE24 theMOUSE23 jsr shutMUSIC1 theMOUSE24 brl theMOUSE *--- theMOUSE30 ldx coorX stx oldX ldy coorY sty oldY ldx currC stx oldC lda theKEY cmp #"4" beq theMOUSE32 cmp #$88 beq theMOUSE32 cmp #"J" beq theMOUSE32 cmp #"j" beq theMOUSE32 cmp #"6" beq theMOUSE33 cmp #$95 beq theMOUSE33 cmp #"L" beq theMOUSE33 cmp #"l" beq theMOUSE33 cmp #"8" beq theMOUSE34 cmp #$8b beq theMOUSE34 cmp #"I" beq theMOUSE34 cmp #"i" beq theMOUSE34 cmp #"2" beq theMOUSE35 cmp #"5" beq theMOUSE35 cmp #$8a beq theMOUSE35 cmp #"K" beq theMOUSE35 cmp #"k" beq theMOUSE35 theMOUSE31 brl theMOUSE theMOUSE32 lda coorX beq theMOUSE31 dec coorX bra theMOUSE36 theMOUSE33 lda coorX cmp #14 beq theMOUSE31 inc coorX bra theMOUSE36 theMOUSE34 lda coorY beq theMOUSE31 dec coorY bra theMOUSE36 theMOUSE35 lda coorY cmp #8 beq theMOUSE31 inc coorY theMOUSE36 ldx coorX ldy coorY jsr calcPLATEAU tax ldy #1 brl theMOUSE5 *-------------------------------------- doBUTTON lda #-1 sta windowC cpx #135*2 bne doBUTTON1 lda #"?" ; help ldy #-1 brl theMOUSE13 doBUTTON1 cpx #136*2 bne doBUTTON2 lda #"P" ; level ldy #-1 brl theMOUSE13 doBUTTON2 cpx #137*2 bne doBUTTON3 lda #"S" ; sound ldy #-1 brl theMOUSE13 doBUTTON3 cpx #138*2 bne doBUTTON4 lda #"M" ; music ldy #-1 brl theMOUSE13 doBUTTON4 cpx #139*2 bne doBUTTON5 lda #"Q" ; quit ldy #-1 brl theMOUSE13 doBUTTON5 brl theMOUSE *-------------------------------------- doLEVEL lda #' ' sta strLEVEL lda level sta oldLEVEL jsr moBACK lda #$9999 ; Affiche barre rouge stal $e19913 stal $e19914 jsr putLEVEL1 ]lp jsr clickIT bcs ]lp cmp #$b1 bcc ]lp cmp #$ba bcs ]lp sep #$20 and #$7f sta strLEVEL+1 rep #$20 jsr putLEVEL1 ]lp jsr clickIT bcs ]lp cmp #$8d beq doLEVEL1 cmp #$b0 bcc ]lp cmp #$ba bcs ]lp sep #$20 and #$7f pha lda strLEVEL+1 sta strLEVEL pla sta strLEVEL+1 rep #$20 doLEVEL1 lda #$0000 stal $e19913 stal $e19914 sep #$20 lda strLEVEL+1 and #$0f pha lda strLEVEL and #$0f asl asl asl asl clc adc 1,s sta level pla lda level cmp #130 ; 130d=82h bcs doLEVEL3 ldx #0 ]lp lda scdVAR,x cmp level beq doLEVEL2 inx bne ]lp ldx #1 doLEVEL2 stx level lda level cmp oldLEVEL bne doLEVEL4 rep #$20 jsr putLEVEL sec rts doLEVEL3 rep #$20 lda #1 sta level sta oldLEVEL jsr putLEVEL clc rts doLEVEL4 rep #$20 lda level sta oldLEVEL jsr putLEVEL clc rts *-------------------------------------- doHELP jsr moBACK sei lda zikPLAY sta copyPLAY stz zikPLAY jsr shutMUSIC1 cli lda ptrSCR sta Debut lda ptrSCR+2 sta Debut+2 ldx #0 ]lp txy ldal $e12000,x sta [Debut],y inx inx bpl ]lp jsr fadeOUT ldx ptrHELP1+2 ldy ptrHELP1 lda #-1 jsr fadeIN jsr moFORE lda #2 sta window lda #-1 sta windowC lda #"1" sta theKEY *--- doHELP1 sep #$20 ldal $e0c000 bpl doHELP2 stal $e0c010 cmp #$9b beq doHELP3 doHELP2 rep #$20 jsr moREAD jsr moCONTROL bcs doHELP1 cpx #142*2 bne doHELP21 lda theKEY cmp #"1" bne doHELP21 *--- lda fgSND beq doHELP21 lda fgAAHH bne doHELP21 sei lda ptrUNPACK clc adc #$8000 sta zikMUSIC lda ptrUNPACK+2 adc #0 sta zikMUSIC+2 lda #$18 sta zikPAGE jsr shutMUSIC2 lda #1 sta fgPAGE sta zikPLAY sta whichSND lda #-1 sta windowC brl doHELP1 *--- doHELP21 inc theKEY lda theKEY cmp #"7" bne doHELP10 doHELP3 sep #$20 stal $e0c010 rep #$20 jsr moBACK jsr fadeOUT ldx ptrSCR+2 ldy ptrSCR lda #-1 jsr fadeIN jsr moFORE *--- sei lda ptrMUSIC sta zikMUSIC lda ptrMUSIC+2 sta zikMUSIC+2 lda #$373 sta zikPAGE stz whichSND lda copyPLAY sta zikPLAY beq doHELP31 jsr shutMUSIC2 *--- doHELP31 lda #-1 sta windowC stz window rts *--- doHELP10 lda theKEY cmp #"2" bne doHELP11 ldx ptrHELP2+2 ldy ptrHELP2 bra doHELP20 doHELP11 cmp #"3" bne doHELP12 ldx ptrHELP3+2 ldy ptrHELP3 bra doHELP20 doHELP12 cmp #"4" bne doHELP13 ldx ptrHELP4+2 ldy ptrHELP4 bra doHELP20 doHELP13 cmp #"5" bne doHELP14 ldx ptrHELP5+2 ldy ptrHELP5 bra doHELP20 doHELP14 ldx ptrHELP6+2 ldy ptrHELP6 doHELP20 stx temp+4 sty temp+6 jsr moBACK jsr fadeOUT ldx temp+4 ldy temp+6 lda #-1 jsr fadeIN jsr moFORE lda #-1 sta windowC brl doHELP1 *-------------------------------------- doQUIT lda #1 sta window lda #-1 sta windowC jsr showMSG doQUIT1 sep #$20 ldal $e0c000 bpl doQUIT2 stal $e0c010 cmp #$9b bne doQUIT2 rep #$20 ldx #141*2 bra doQUIT3 doQUIT2 rep #$20 jsr moREAD jsr moCONTROL bcs doQUIT1 cpx #140*2 bne doQUIT3 stz window lda #-1 sta windowC jsr redrawMSG clc rts doQUIT3 cpx #141*2 bne doQUIT1 stz window lda #-1 sta windowC jsr redrawMSG sec rts *-------------------------------------- checkVALID cpy #1 beq checkVALID1 lda window2XY,x pha and #$ff sta coorX pla xba and #$ff sta coorY checkVALID1 lda coorX ; regarde si varX=1 ora currX cmp #1 beq checkVALID2 cmp coorX beq checkVALID2 lda coorY ; regarde si varY=1 ora currY cmp #1 beq checkVALID2 cmp coorY beq checkVALID2 sec rts checkVALID2 lda coorX cmp currX beq checkVALID4 ldy #1 lda coorY cmp currY bne checkVALID3 lda coorX sec sbc currX cmp #1 beq checkVALID5 ldy #0 lda coorY cmp currY bne checkVALID3 lda currX sec sbc coorX cmp #1 beq checkVALID5 checkVALID3 sec rts checkVALID4 lda coorY cmp currY beq checkVALID3 ldy #3 lda coorX cmp currX bne checkVALID3 lda coorY sec sbc currY cmp #1 beq checkVALID5 ldy #2 lda coorX cmp currX bne checkVALID3 lda currY sec sbc coorY cmp #1 beq checkVALID5 sec rts checkVALID5 sty theDIR clc rts *-------------------------------------- * Routines souris moREAD jsr moTOOL sep #$20 ldal $e0c034 and #$f0 stal $e0c034 rep #$20 lda moX cmp oldMOx bne moREAD1 lda moY cmp oldMOy bne moREAD1 rts moREAD1 jsr moBACK ldx moX stx oldMOx ldy moY sty oldMOy jsr moFORE rts *-------------------------------------- moCONTROL lda window asl tax lda windowS+2,x asl pha lda windowS,x asl tax moCONTROL1 lda moX cmp windowL,x bcc moCONTROL2 cmp windowR,x bcs moCONTROL2 lda moY cmp windowU,x bcc moCONTROL2 cmp windowD,x bcc moCONTROL3 moCONTROL2 inx inx txa cmp 1,s bcc moCONTROL1 ldx #-1 moCONTROL3 pla lda moBTN0 and #%00000000_11000000 cmp #%00000000_01000000 beq moCONTROL10 cmp #%00000000_10000000 beq moCONTROL20 cmp #%00000000_11000000 bne moCONTROL4 brl moCONTROL30 moCONTROL4 sec rts *- is up, was down moCONTROL10 cpx #-1 bne moCONTROL12 ldx windowC lda windowFLG,x and #%00000000_00000010 bne moCONTROL11 lda windowFLG,x and #%00000000_00000001 beq moCONTROL11 lda windowFLG,x and #%11111111_11111110 sta windowFLG,x ldy #0 jsr inverseIT moCONTROL11 sec ; not same control rts moCONTROL12 cpx windowC bne moCONTROL11 lda windowFLG,x and #%00000000_00000010 bne moCONTROL11 lda windowFLG,x and #%00000000_00000001 beq moCONTROL13 lda windowFLG,x and #%11111111_11111110 sta windowFLG,x ldy #0 jsr inverseIT moCONTROL13 clc ; same control rts *- is down, was up moCONTROL20 cpx #-1 beq moCONTROL21 lda windowFLG,x and #%00000000_00000010 bne moCONTROL21 stx windowC lda windowFLG,x and #%00000000_00000001 bne moCONTROL21 lda windowFLG,x and #%11111111_11111110 ora #%00000000_00000001 sta windowFLG,x ldy #1 jsr inverseIT moCONTROL21 sec ; set new control rts *- is down, was down moCONTROL30 cpx windowC beq moCONTROL32 ldx windowC cpx #-1 beq moCONTROL31 lda windowFLG,x and #%00000000_00000010 bne moCONTROL31 lda windowFLG,x and #%00000000_00000001 beq moCONTROL31 lda windowFLG,x and #%11111111_11111110 sta windowFLG,x ldy #0 jsr inverseIT moCONTROL31 sec ; no more on control rts moCONTROL32 cpx #-1 beq moCONTROL33 lda windowFLG,x and #%00000000_00000010 bne moCONTROL33 lda windowFLG,x and #%00000000_00000001 bne moCONTROL33 lda windowFLG,x and #%11111111_11111110 ora #%00000000_00000001 sta windowFLG,x ldy #1 jsr inverseIT moCONTROL33 sec ; same control rts *-------------------------------------- moTOOL ldal $e0c026 bpl moTOOL1 and #%00000010_00000000 beq moTOOL2 ldal $e0c024 moTOOL1 rts moTOOL2 ldal $e0c024 tax and #%00000000_10000000 eor #%00000000_10000000 lsr moBTN1 eor moBTN1 and #%00000000_11000000 sta moBTN1 ldal $e0c024 tay and #%00000000_10000000 eor #%00000000_10000000 lsr moBTN0 eor moBTN0 and #%00000000_11000000 sta moBTN0 *- Occupe toi de X txa and #%00000000_00111111 pha txa and #%00000000_01000000 beq moTOOL3 lda moX clc adc 1,s sec sbc #64 bcc moTOOL4 sta moX bra moTOOL4 moTOOL3 lda moX clc adc 1,s cmp #maximumX bcs moTOOL4 sta moX *- Occupe toi de Y moTOOL4 pla ; Recupere la pile tya and #%00000000_00111111 pha tya and #%00000000_01000000 beq moTOOL6 lda moY clc adc 1,s sec sbc #64 bcc moTOOL5 sta moY moTOOL5 pla rts moTOOL6 lda moY clc adc 1,s cmp #maximumY bcs moTOOL7 sta moY moTOOL7 pla rts *-------------------------------------- moBACK lda oldMOx lsr pha lda oldMOy asl tay lda Ligne,y clc adc 1,s tax ldy #0 moBACK1 lda moDATA,y stal $e12000,x lda moDATA+2,y stal $e12002,x lda moDATA+4,y stal $e12004,x txa clc adc #160 tax cpx #$7d00 bcs moBACK2 iny iny iny iny iny iny cpy #36 bne moBACK1 moBACK2 pla rts *-------------------------------------- moFORE lda #moDATA sta moFORE3+1 sta moFORE4+1 sta moFORE5+1 ldy #0 ldx #36 lda moX lsr pha bcc moFORE1 lda #moDATA sec sbc #36 sta moFORE3+1 sta moFORE4+1 sta moFORE5+1 ldy #36 ldx #72 moFORE1 stx moFORE6+1 lda moY asl tax lda Ligne,x clc adc 1,s tax moFORE2 ldal $e12000,x moFORE3 sta moDATA,y and moMASK,y ora moSPRI,y stal $e12000,x iny iny ldal $e12002,x moFORE4 sta moDATA,y and moMASK,y ora moSPRI,y stal $e12002,x iny iny ldal $e12004,x moFORE5 sta moDATA,y and moMASK,y ora moSPRI,y stal $e12004,x txa clc adc #160 tax cpx #$7d00 bcs moFORE7 iny iny moFORE6 cpy #-1 bne moFORE2 moFORE7 pla rts *-------------------------------------- inverseIT cpx #144*2 bcs inverseIT0 lda windowFLG,x and #%00000000_00000100 beq inverseIT1 inverseIT0 rts inverseIT1 phx txa sec sbc #135*2 tax cpy #1 beq inverseIT2 lda windowNOR,x bra inverseIT3 inverseIT2 lda windowINV,x inverseIT3 clc adc ptrSPRITE sta Debut lda ptrSPRITE+2 adc #0 sta Debut+2 lda windowSCR,x clc adc #$2000 sta Arrivee lda #$00e1 sta Arrivee+2 lda windowLR,x lsr sta temp lda windowUP,x sta temp+2 jsr moBACK ; restore background inverseIT5 ldy #0 sep #$20 ]lp lda [Debut],y sta [Arrivee],y iny cpy temp bne ]lp rep #$20 lda Debut clc adc #160 sta Debut lda Arrivee clc adc #160 sta Arrivee cmp #$9d00 bcs inverseIT6 dec temp+2 lda temp+2 bpl inverseIT5 inverseIT6 jsr moFORE ; show cursor plx ; pull X from stack rts *-------------------------------------- * Fenetres showMSG lda ptrSPRITE+1 sta showMSG3+2 lda adrMSG ; adresse source clc adc ptrSPRITE sta showMSG3+1 lda adrMSGscr ; adresse ecran sta showMSG2+1 sta showMSG4+1 lda adrMSGx ; nombre de points lsr sta temp lda adrMSGy ; nombre de lignes sta temp+2 lda ptrUNPACK sta Debut lda ptrUNPACK+2 sta Debut+2 jsr moBACK ldy #0 showMSG1 ldx #0 sep #$20 showMSG2 ldal $e12000,x sta [Debut],y showMSG3 ldal $e12000,x showMSG4 stal $e12000,x iny inx cpx temp bcc showMSG2 rep #$20 lda showMSG3+1 clc adc #160 sta showMSG3+1 lda showMSG3+2 adc #0 sta showMSG3+2 lda showMSG2+1 clc adc #160 sta showMSG2+1 sta showMSG4+1 cmp #$9d00 bcs showMSG5 dec temp+2 lda temp+2 bpl showMSG1 showMSG5 jsr moFORE rts *-------------------------- Redraw Fenetre redrawMSG lda adrMSGscr ; adresse ecran sta redrawMSG3+1 lda adrMSGx ; nombre de points lsr sta temp lda adrMSGy ; nombre de lignes sta temp+2 lda ptrUNPACK sta Debut lda ptrUNPACK+2 sta Debut+2 jsr moBACK ldy #0 redrawMSG1 ldx #0 sep #$20 redrawMSG2 lda [Debut],y redrawMSG3 stal $e12000,x iny inx cpx temp bcc redrawMSG2 rep #$20 lda redrawMSG3+1 clc adc #160 sta redrawMSG3+1 cmp #$9d00 bcs redrawMSG4 dec temp+2 lda temp+2 bpl redrawMSG1 redrawMSG4 jsr moFORE rts *--- Donnes fenetres window ds 2 ; numero de la fenetre active windowC dw -1 ; numero du controle actif windowS dw 0 ; debut des boutons de la fenetre dw 140 dw 142 dw 144 windowL dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 5,25,45,65,85,105,125,145,165,185,205,225,245,265,285 dw 6,178,245,266,282 dw 126,144 dw 30,0 windowR dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 24,44,64,84,104,124,144,164,184,204,224,244,264,284,304 dw 39,236,260,274,313 dw 193,175 dw 46,319 windowU dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dw 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20 dw 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40 dw 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60 dw 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80 dw 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100 dw 120,120,120,120,120,120,120,120,120,120,120,120,120,120,120 dw 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140 dw 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160 dw 185,187,185,185,185 dw 89,105 dw 77,0 windowD dw 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19 dw 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39 dw 59,59,59,59,59,59,59,59,59,59,59,59,59,59,59 dw 79,79,79,79,79,79,79,79,79,79,79,79,79,79,79 dw 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99 dw 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119 dw 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139 dw 159,159,159,159,159,159,159,159,159,159,159,159,159,159,159 dw 179,179,179,179,179,179,179,179,179,179,179,179,179,179,179 dw 195,193,195,195,195 dw 99,115 dw 88,199 *--- Flags des fenetres * bit 0: windowFLG (old windowA) -> 0 * bit 1: windowTGT (can't be target if 1) -> 2 * bit 2: windowREF (can't refresh if 1) -> 4 windowFLG dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 dw 0,0,0,0,0 dw 0,0 dw 4,4 *--- window2XY dw $000,$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a,$00b,$00c,$00d,$00e dw $100,$101,$102,$103,$104,$105,$106,$107,$108,$109,$10a,$10b,$10c,$10d,$10e dw $200,$201,$202,$203,$204,$205,$206,$207,$208,$209,$20a,$20b,$20c,$20d,$20e dw $300,$301,$302,$303,$304,$305,$306,$307,$308,$309,$30a,$30b,$30c,$30d,$30e dw $400,$401,$402,$403,$404,$405,$406,$407,$408,$409,$40a,$40b,$40c,$40d,$40e dw $500,$501,$502,$503,$504,$505,$506,$507,$508,$509,$50a,$50b,$50c,$50d,$50e dw $600,$601,$602,$603,$604,$605,$606,$607,$608,$609,$60a,$60b,$60c,$60d,$60e dw $700,$701,$702,$703,$704,$705,$706,$707,$708,$709,$70a,$70b,$70c,$70d,$70e dw $800,$801,$802,$803,$804,$805,$806,$807,$808,$809,$80a,$80b,$80c,$80d,$80e coorX ds 2 coorY ds 2 *--- windowNOR dw $73a3,$75d9,$741a,$7425,$742d dw $24ef,$2ef8 windowINV dw $6874,$6c47,$68a7,$68b9,$68d1 dw $608c,$6054 windowSCR dw $73a3,$75d9,$741a,$7425,$742d dw $37df,$41e8 windowLR dw 34,40,18,10,32 dw 70,34 windowUP dw 10,4,10,10,10 dw 10,10 *--- Adresses des fenetres adrMSG dw $1cc0 ; adresse source adrMSGscr dw $4fb0 ; adresse ecran adrMSGx dw 128 ; nombre de colonnes adrMSGy dw 94-46 ; nombre de lignes *--- Datas souris moX ds 2 ; coordonnee X moY ds 2 ; coordonnee Y moBTN0 ds 2 ; bouton 0 moBTN1 ds 2 ; bouton 1 oldMOx ds 2 ; ancienne coordonnee X oldMOy ds 2 ; ancienne coordonnee Y moDATA ds 36 ; buffer du fond de l'image moSPRI hex FFFFFFFF0000 ; sprite pointeur pair hex 0F00000F0000 hex 00F000F00000 hex 000F00F00000 hex 0000FF000000 hex 00000F000000 hex 0FFFFFFFF000 ; sprite pointeur impair hex 00F00000F000 hex 000F000F0000 hex 0000F00F0000 hex 00000FF00000 hex 000000F00000 moMASK hex 00000000FFFF ; mask pointeur pair hex F0000000FFFF hex FF00000FFFFF hex FFF0000FFFFF hex FFFF00FFFFFF hex FFFFF0FFFFFF hex F00000000FFF ; mask pointeur impair hex FF0000000FFF hex FFF00000FFFF hex FFFF0000FFFF hex FFFFF00FFFFF hex FFFFFF0FFFFF