**************************************************************** * * * Asteroid for the Thomson TO8 * * Gilles Fetis Juillet 1999 * **************************************************************** (main)aster.asm ORG $A000 TIR_MAX EQU 5 ASTER_MAX EQU 50 PSHS U,X,DP,B,A,CC ORCC #$50 * clear des 2 pages JSR FLIP_1 LDX #$4000 LDY #$1F40 MAIN_L1 CLR ,X+ LEAY -1,Y BNE MAIN_L1 JSR FLIP_2 LDX #$4000 LDY #$1F40 MAIN_L2 CLR ,X+ LEAY -1,Y BNE MAIN_L2 * init de la palette de couleurs (noir et blanc) LDA #0 STA $E7DB LDB #0 STB $E7DA STB $E7DA LDB #$FF STB $E7DA STB $E7DA STB $E7DA STB $E7DA STB $E7DA STB $E7DA * init de la couleur de bordure = noir LDA #$00 STA $E7DD * essai anim MAIN_LOOP * clear dirty0 LDB #0 JSR CLEAR_DIRTY LDB #0 STB DIRTY_NUM JSR UPDATE_ASTER JSR SHIP_HANDLE JSR UPDATE_TIR JSR HANDLE_TIR JSR INC_TRAIT JSR VSYNC JSR FLIP_1 * clear dirty1 LDB #1 JSR CLEAR_DIRTY LDB #1 STB DIRTY_NUM JSR UPDATE_ASTER JSR SHIP_HANDLE JSR UPDATE_TIR JSR HANDLE_TIR JSR INC_TRAIT JSR VSYNC JSR FLIP_2 LDX TIME LEAX 1,X STX TIME CMPX #20000 LBLT MAIN_LOOP PULS U,X,DP,B,A,CC RTS * Variables globales TIME FCB 0,0 TRAIT FCB 0 DIRTY_NUM FCB 0 **************************************************************** **************************************************************** * * Gestion du joueur * **************************************************************** SH_X FCB 0,160 SH_Y FCB 0,100 SH_DIR FCB 0 SH_D FCB 0 * THRUST de 0 a 15 SH_THRUST FCB 0 SH_SPEED_TAB FCB 0,0,0,1 FCB 1,1,1,1 FCB 1,2,2,2 FCB 2,2,3,3 SH_SPEED FCB 0 JOY_DIR FCB 0 TIR_OK FCB $FF SHIP_HANDLE * gestion de la manette LDA $E7CC ANDA #$0F STA JOY_DIR * dir (droite gauche) ANDA #$04 BNE SH_H_1 DEC SH_DIR LDA #$3F ANDA SH_DIR STA SH_DIR BRA SH_H_FINDIR SH_H_1 LDA JOY_DIR ANDA #$08 BNE SH_H_FINDIR INC SH_DIR LDA #$3F ANDA SH_DIR STA SH_DIR SH_H_FINDIR * THRUST LDA JOY_DIR ANDA #$01 BNE SH_H_NOTHR LDA SH_THRUST CMPA #$0F BEQ SH_H_2 INC SH_THRUST SH_H_2 LDA SH_THRUST LDU #SH_SPEED_TAB LDB A,U STB SH_SPEED BRA SH_H_FINTHR SH_H_NOTHR LDA SH_THRUST CMPA #$00 BEQ SH_H_3 DEC SH_THRUST SH_H_3 LDA SH_THRUST LDU #SH_SPEED_TAB LDB A,U STB SH_SPEED SH_H_FINTHR LDA SH_DIR ASRA ASRA STA SH_D LDX SH_X LDY SH_Y LDA SH_D LDB SH_SPEED JSR DELTA STX SH_X STY SH_Y * gestion du tir LDA $E7CD ANDA #$40 CMPA #0 BNE SH_H_5 TST TIR_OK BEQ SH_H_4 PSHS X,Y LEAX 4,X LEAY 4,Y LDA SH_D JSR ADD_TIR PULS X,Y LDA #$00 STA TIR_OK BRA SH_H_4 SH_H_5 * le bouton est relache => on reautorise le tir LDA #$FF STA TIR_OK SH_H_4 * affichage et gestion dirty PSHS X,Y LDA SH_D JSR AFFSHIP PULS X,Y LDB DIRTY_NUM LDA #1 JSR PUSH_DIRTY RTS **************************************************************** **************************************************************** * * Gestion des tirs * **************************************************************** TIR_NB FCB 0 * table d'etat des tirs * X,Y,dir,duree TIR_TAB FCB 0,0,0,0 FCB 0,$FF FCB 0,0,0,0 FCB 0,$FF FCB 0,0,0,0 FCB 0,$FF FCB 0,0,0,0 FCB 0,$FF FCB 0,0,0,0 FCB 0,$FF FCB 0,0,0,0 FCB 0,$FF TIR_NUM FCB 0 UPDATE_TIR CLR TIR_NUM LDU #TIR_TAB UPD_TIR_LOOP PULU X,Y PULU A PULU B CMPB #$FF BEQ UPD_TIR_1 * le tir est reel INCB CMPB #80 BNE UPD_TIR_2 * le tir est termine LDB #$FF STB -1,U BRA UPD_TIR_1 UPD_TIR_2 STB -1,U LDB #3 PSHS U JSR DELTA PULS U STX -6,U STY -4,U PSHS U PSHS X,Y JSR POINT PULS X,Y LDB DIRTY_NUM LDA #3 JSR PUSH_DIRTY PULS U UPD_TIR_1 INC TIR_NUM LDA #05 CMPA TIR_NUM BNE UPD_TIR_LOOP RTS **************************************************************** **************************************************************** * * Ajout d'un tir * X,Y A dir * **************************************************************** NEW_TIR_D FCB 0 ADD_TIR * recherche d'un emplacement libre CLR TIR_NUM LDU #TIR_TAB STA NEW_TIR_D ADD_TIR_LOOP LDB 5,U CMPB #$FF BNE ADD_TIR_1 * cet emplacement est libre LDA NEW_TIR_D CLRB STX ,U STY 2,U STA 4,U STB 5,U RTS ADD_TIR_1 LEAU 6,U INC TIR_NUM LDA #05 CMPA TIR_NUM BNE ADD_TIR_LOOP RTS **************************************************************** **************************************************************** * * Retrait d'un tir * A num du tir * **************************************************************** REMOVE_TIR LDU #TIR_TAB CMPA #5 BGT REMOVE_TIR_E LDB #6 MUL LEAU D,U LDA #$FF STA 5,U REMOVE_TIR_E RTS **************************************************************** **************************************************************** * * Gestion collision tir/aster * **************************************************************** TX FCB 0,0 TY FCB 0,0 TDIR FCB 0 AX FCB 0,0 AY FCB 0,0 ASIZE FCB 0 HANDLE_TIR CLR TIR_NUM HT_LOOP1 LDU #TIR_TAB LDA TIR_NUM LDB #6 MUL LEAU D,U PULU X,Y PULU A PULU B CMPB #$FF BEQ HT_LOOP1_E STX TX STY TY STA TDIR CLR ASTER_NUM HT_LOOP2 LDU #ASTER_LIST LDA ASTER_NUM LDB #7 MUL LEAU D,U PULU A,B,DP PULU X,Y * cas d'un aster effacé EXG A,DP CMPA #$FF BEQ HT_LOOP2_E EXG A,DP STX AX STY AY STA ASIZE JSR IS_TIR_NEAR CMPA #0 BEQ HT_LOOP2_E * raffiner le test * (a faire) LDU #ASTER_LIST LDA ASTER_NUM LDB #7 MUL LEAU D,U LDA #$FF STA 2,U LDA TIR_NUM JSR REMOVE_TIR HT_LOOP2_E INC ASTER_NUM LDA ASTER_NUM CMPA ASTER_NB BNE HT_LOOP2 HT_LOOP1_E INC TIR_NUM LDA TIR_NUM CMPA #5 BNE HT_LOOP1 HANDLE_TIR_E RTS **************************************************************** **************************************************************** * * sous routine de test rapide de proximite * **************************************************************** SX FCB 0,0 SY FCB 0,0 IS_TIR_NEAR LDD AX SUBD TX STD SX LDD AY SUBD TY STD SY LDA ASIZE CMPA #0 BNE ITN_1 LDX #-16 CMPX SX BGT ITN_E LDX #16 CMPX SX BLT ITN_E LDX #-16 CMPX SY BGT ITN_E LDX #16 CMPX SY BLT ITN_E LDA #1 RTS ITN_1 CMPA #1 BNE ITN_2 LDX #-10 CMPX SX BGT ITN_E LDX #10 CMPX SX BLT ITN_E LDX #-10 CMPX SY BGT ITN_E LDX #10 CMPX SY BLT ITN_E LDA #1 RTS ITN_2 LDX #-6 CMPX SX BGT ITN_E LDX #6 CMPX SX BLT ITN_E LDX #-6 CMPX SY BGT ITN_E LDX #6 CMPX SY BLT ITN_E LDA #1 RTS ITN_E LDA #0 RTS **************************************************************** **************************************************************** * * Gestion des aster * **************************************************************** ASTER_NB FCB 6 * un aster est dir,speed,size,X,Y ASTER_LIST FCB 0,2,1 FCB 0,100,0,30 FCB 1,3,0 FCB 0,120,0,10 FCB 5,1,0 FCB 0,120,0,10 FCB 3,1,0 FCB 0,120,0,10 FCB 10,1,0 FCB 0,120,0,10 FCB 11,1,0 FCB 0,120,0,10 RMB 50*7 ASTER_NUM FCB 0 UPDATE_ASTER CLR ASTER_NUM UPDATE_A_LOOP LDU #ASTER_LIST LDA #7 LDB ASTER_NUM MUL LEAU D,U PULU A,B,DP PULU X,Y * cas d'un aster effacé EXG A,DP CMPA #$FF BEQ UPD_A_CASE_E EXG A,DP PSHS A,B,U JSR DELTA PULS A,B,U PSHU X,Y TFR DP,A * cas d'un aster effacé CMPA #$FF BEQ UPD_A_CASE_E CMPA #0 BNE UPD_A_CASE_1 PSHS A,X,Y JSR AFFASTER0 PULS A,X,Y LDB DIRTY_NUM JSR PUSH_DIRTY BRA UPD_A_CASE_E UPD_A_CASE_1 CMPA #1 BNE UPD_A_CASE_2 PSHS A,X,Y JSR AFFASTER1 PULS A,X,Y LDB DIRTY_NUM JSR PUSH_DIRTY BRA UPD_A_CASE_E UPD_A_CASE_2 PSHS A,X,Y JSR AFFASTER2 PULS A,X,Y LDB DIRTY_NUM JSR PUSH_DIRTY UPD_A_CASE_E INC ASTER_NUM LDA ASTER_NB CMPA ASTER_NUM BNE UPDATE_A_LOOP RTS **************************************************************** **************************************************************** * * coord X,Y * dir A * speed B * **************************************************************** DELTA_DIR FCB 0 DELTA CMPB #0 BEQ DELTA_4 DECB STA DELTA_DIR LDU #MOVETAB_S1 LDA #128 MUL LEAU D,U LDB DELTA_DIR LDA #8 MUL LEAU D,U LDA TRAIT LSLA LEAU A,U LDA ,U+ LEAX A,X LDA ,U LEAY A,Y CMPX #312 BLT DELTA_1 LDX #0 BRA DELTA_2 DELTA_1 CMPX #0 BGE DELTA_2 LDX #311 DELTA_2 CMPY #192 BLT DELTA_3 LDY #0 BRA DELTA_4 DELTA_3 CMPY #0 BGE DELTA_4 LDY #191 DELTA_4 RTS **************************************************************** **************************************************************** * * Gestion des "dirty lists" * **************************************************************** DIRTY1NB FCB 0 DIRTY1 RMB 56*5 DIRTY2NB FCB 0 DIRTY2 RMB 56*5 **************************************************************** * * Push Object * X,Y coord * A type * B num de list 0/1 **************************************************************** PUSH_DIRTY TFR A,DP CMPB #0 BNE PUSH_DIRTY_1 LDA DIRTY1NB CMPA #55 BEQ PUSH_DIRTY_2 INCA STA DIRTY1NB LDB #5 MUL LDU #DIRTY1 LEAU D,U PSHU X,Y,DP RTS PUSH_DIRTY_1 LDA DIRTY2NB CMPA #55 BEQ PUSH_DIRTY_2 INCA STA DIRTY2NB LDB #5 MUL LDU #DIRTY2 LEAU D,U PSHU X,Y,DP PUSH_DIRTY_2 RTS **************************************************************** * * Clear dirty list * B num de liste 0/1 * **************************************************************** CLEAR_DIRTY CMPB #0 BNE CLEAR_DIRTY_1 LDA DIRTY1NB CLR DIRTY1NB LDU #DIRTY1 BRA CLEAR_D_LOOP1 CLEAR_DIRTY_1 LDA DIRTY2NB CLR DIRTY2NB LDU #DIRTY2 CLEAR_D_LOOP1 CMPA #0 BEQ CLEAR_D_END PSHS A PULU X,Y,B CMPB #0 BNE CLEAR_D_CASE_1_1 JSR CLR0 BRA CLEAR_D_CASE_1_E CLEAR_D_CASE_1_1 CMPB #1 BNE CLEAR_D_CASE_1_2 JSR CLR1 BRA CLEAR_D_CASE_1_E CLEAR_D_CASE_1_2 CMPB #2 BNE CLEAR_D_CASE_1_3 JSR CLR2 BRA CLEAR_D_CASE_1_E CLEAR_D_CASE_1_3 JSR CLEAR_POINT CLEAR_D_CASE_1_E PULS A DECA BNE CLEAR_D_LOOP1 CLEAR_D_END RTS **************************************************************** **************************************************************** * * Gestion du temps * **************************************************************** INC_TRAIT INC TRAIT LDA #$03 ANDA TRAIT STA TRAIT RTS **************************************************************** * * Routines Graphiques * **************************************************************** **************************************************************** * * Attente de la VBL * **************************************************************** VSYNC VSYNC_1 TST $E7E7 BPL VSYNC_1 VSYNC_2 TST $E7E7 BMI VSYNC_2 RTS **************************************************************** **************************************************************** * * Gestion du swap des pages * **************************************************************** FLIP_1 LDA #$25 STA $E7DC LDA #$01 ORA $E7C3 STA $E7C3 RTS FLIP_2 LDA #$24 STA $E7DC LDA #$FE ANDA $E7C3 STA $E7C3 RTS **************************************************************** * * trace un point * coord X,Y * * **************************************************************** PTTAB FCB %10000000 FCB %01000000 FCB %00100000 FCB %00010000 FCB %00001000 FCB %00000100 FCB %00000010 FCB %00000001 POINT TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y * Y=Y*40 * DP=X/8 * B=X%8 TFR X,D ANDB #$07 TFR B,DP CMPX #256 BLT POINT_1 LEAY 32,Y POINT_1 TFR X,D LSRB LSRB LSRB LEAY B,Y LDX #PTTAB TFR DP,B LDA B,X ORA ,Y STA ,Y RTS CLEAR_POINT TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y CMPX #256 BLT C_POINT_1 LEAY 32,Y C_POINT_1 TFR X,D LSRB LSRB LSRB LEAY B,Y CLR ,Y RTS **************************************************************** **************************************************************** * * affiche sprite petit * coord X,Y * **************************************************************** AFFASTER2 TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y * Y=Y*40 * DP=X/8 * B=X%8 TFR X,D ANDB #$07 TFR B,DP CMPX #256 BLT AFFASTER2_1 LEAY 32,Y AFFASTER2_1 TFR X,D LSRB LSRB LSRB LEAY B,Y LDX #ASTER2 TFR DP,B LDA #8 MUL LEAX D,X * ligne0 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne1 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne2 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne3 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y RTS **************************************************************** **************************************************************** * * affiche sprite moyen * coord X,Y * **************************************************************** AFFASTER1 TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y * Y=Y*40 * DP=X/8 * B=X%8 TFR X,D ANDB #$07 TFR B,DP CMPX #256 BLT AFFASTER1_1 LEAY 32,Y AFFASTER1_1 TFR X,D LSRB LSRB LSRB LEAY B,Y LDX #ASTER1 TFR DP,B LDA #16 MUL LEAX D,X * ligne0 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne1 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne2 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne3 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne4 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne5 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne6 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne7 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y RTS **************************************************************** **************************************************************** * * affiche sprite gros * coord X,Y * **************************************************************** AFFASTER0 TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y * Y=Y*40 * DP=X/8 * B=X%8 TFR X,D ANDB #$07 TFR B,DP CMPX #256 BLT AFFASTER0_1 LEAY 32,Y AFFASTER0_1 TFR X,D LSRB LSRB LSRB LEAY B,Y LDX #ASTER0 TFR DP,B LDA #48 MUL LEAX D,X * ligne0 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne1 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne2 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne3 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne4 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne5 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne6 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne7 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne8 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne9 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne10 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne11 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne12 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne13 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne14 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 38,Y * ligne15 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y RTS **************************************************************** **************************************************************** * * affiche ship * coord X,Y * dir A * **************************************************************** SHIP_DIR FCB 0 AFFSHIP ANDA #$0F STA SHIP_DIR TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y * Y=Y*40 * DP=X/8 * B=X%8 TFR X,D ANDB #$07 TFR B,DP CMPX #256 BLT AFFSHIP_1 LEAY 32,Y AFFSHIP_1 TFR X,D LSRB LSRB LSRB LEAY B,Y * recherche l'adresse du premier sprite de cette dir LDX #SHIP_SPRITE LDB SHIP_DIR LDA #128 MUL LEAX D,X TFR DP,B LDA #16 MUL LEAX D,X * ligne0 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne1 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne2 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne3 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne4 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne5 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne6 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y LEAY 39,Y * ligne7 LDA ,X+ ORA ,Y STA ,Y+ LDA ,X+ ORA ,Y STA ,Y RTS **************************************************************** **************************************************************** * * clear size 2 * coord X,Y * **************************************************************** CLR2 TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y CMPX #256 BLT CLR2_1 LEAY 32,Y CLR2_1 TFR X,D LSRB LSRB LSRB LEAY B,Y * ligne0 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne1 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne2 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne3 CLR ,Y+ CLR ,Y RTS **************************************************************** **************************************************************** * * clear size 1 * coord X,Y * **************************************************************** CLR1 TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y CMPX #256 BLT CLR1_1 LEAY 32,Y CLR1_1 TFR X,D LSRB LSRB LSRB LEAY B,Y * ligne0 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne1 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne2 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne3 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne4 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne5 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne6 CLR ,Y+ CLR ,Y LEAY 39,Y * ligne7 CLR ,Y+ CLR ,Y RTS **************************************************************** **************************************************************** * * clear size 0 * coord X,Y * **************************************************************** CLR0 TFR Y,D LDA #40 MUL TFR D,Y LEAY $4000,Y CMPX #256 BLT CLR0_1 LEAY 32,Y CLR0_1 TFR X,D LSRB LSRB LSRB LEAY B,Y * ligne0 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne1 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne2 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne3 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne4 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne5 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne6 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne7 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne8 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne9 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne10 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne11 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne12 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne13 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne14 CLR ,Y+ CLR ,Y+ CLR ,Y LEAY 38,Y * ligne15 CLR ,Y+ CLR ,Y+ CLR ,Y RTS **************************************************************** **************************************************************** * * Tables de précalcul de direction * **************************************************************** MOVETAB_S1 * dir0 FCB 0,0 FCB 1,0 FCB 0,0 FCB 1,0 * dir1 FCB 0,0 FCB 1,1 FCB 0,0 FCB 1,0 * dir2 FCB 0,0 FCB 1,1 FCB 0,0 FCB 1,1 * dir3 FCB 0,0 FCB 1,1 FCB 0,0 FCB 0,1 * dir4 FCB 0,0 FCB 0,1 FCB 0,0 FCB 0,1 * dir5 FCB 0,0 FCB -1,1 FCB 0,0 FCB 0,1 * dir6 FCB 0,0 FCB -1,1 FCB 0,0 FCB -1,1 * dir7 FCB 0,0 FCB -1,1 FCB 0,0 FCB -1,0 * dir8 FCB 0,0 FCB -1,0 FCB 0,0 FCB -1,0 * dir9 FCB 0,0 FCB -1,-1 FCB 0,0 FCB -1,0 * dir10 FCB 0,0 FCB -1,-1 FCB 0,0 FCB -1,-1 * dir11 FCB 0,0 FCB -1,-1 FCB 0,0 FCB 0,-1 * dir12 FCB 0,0 FCB 0,-1 FCB 0,0 FCB 0,-1 * dir13 FCB 0,0 FCB 1,-1 FCB 0,0 FCB 0,-1 * dir14 FCB 0,0 FCB 1,-1 FCB 0,0 FCB 1,-1 * dir15 FCB 0,0 FCB 1,-1 FCB 0,0 FCB 1,0 **************************************************************** MOVETAB_S2 * dir0 FCB 1,0 FCB 1,0 FCB 1,0 FCB 1,0 * dir1 FCB 1,0 FCB 1,1 FCB 1,0 FCB 1,1 * dir2 FCB 1,1 FCB 1,1 FCB 1,1 FCB 1,1 * dir3 FCB 0,1 FCB 1,1 FCB 0,1 FCB 1,1 * dir4 FCB 0,1 FCB 0,1 FCB 0,1 FCB 0,1 * dir5 FCB 0,1 FCB -1,1 FCB 0,1 FCB -1,1 * dir6 FCB -1,1 FCB -1,1 FCB -1,1 FCB -1,1 * dir7 FCB -1,0 FCB -1,1 FCB -1,0 FCB -1,1 * dir8 FCB -1,0 FCB -1,0 FCB -1,0 FCB -1,0 * dir9 FCB -1,0 FCB -1,-1 FCB -1,0 FCB -1,-1 * dir10 FCB -1,-1 FCB -1,-1 FCB -1,-1 FCB -1,-1 * dir11 FCB 0,-1 FCB -1,-1 FCB 0,-1 FCB -1,-1 * dir12 FCB 0,-1 FCB 0,-1 FCB 0,-1 FCB 0,-1 * dir13 FCB 0,-1 FCB 1,-1 FCB 0,-1 FCB 1,-1 * dir14 FCB 1,-1 FCB 1,-1 FCB 1,-1 FCB 1,-1 * dir15 FCB 1,0 FCB 1,-1 FCB 1,0 FCB 1,-1 **************************************************************** MOVETAB_S3 * dir0 FCB 2,0 FCB 2,0 FCB 2,0 FCB 2,0 * dir1 FCB 2,1 FCB 2,1 FCB 2,1 FCB 2,1 * dir2 FCB 2,2 FCB 2,2 FCB 2,2 FCB 2,2 * dir3 FCB 1,2 FCB 1,2 FCB 1,2 FCB 1,2 * dir4 FCB 0,2 FCB 0,2 FCB 0,2 FCB 0,2 * dir5 FCB -1,2 FCB -1,2 FCB -1,2 FCB -1,2 * dir6 FCB -2,2 FCB -2,2 FCB -2,2 FCB -2,2 * dir7 FCB -2,1 FCB -2,1 FCB -2,1 FCB -2,1 * dir8 FCB -2,0 FCB -2,0 FCB -2,0 FCB -2,0 * dir9 FCB -2,-1 FCB -2,-1 FCB -2,-1 FCB -2,-1 * dir10 FCB -2,-2 FCB -2,-2 FCB -2,-2 FCB -2,-2 * dir11 FCB -1,-2 FCB -1,-2 FCB -1,-2 FCB -1,-2 * dir12 FCB 0,-2 FCB 0,-2 FCB 0,-2 FCB 0,-2 * dir13 FCB 1,-2 FCB 1,-2 FCB 1,-2 FCB 1,-2 * dir14 FCB 2,-2 FCB 2,-2 FCB 2,-2 FCB 2,-2 * dir15 FCB 2,-1 FCB 2,-1 FCB 2,-1 FCB 2,-1 **************************************************************** **************************************************************** * * Donnees graphiques * **************************************************************** ASTER0 * frame 0 FCB $7,$C0,$0 FCB $1F,$F0,$0 FCB $3B,$F8,$0 FCB $7F,$FC,$0 FCB $57,$FC,$0 FCB $DF,$FE,$0 FCB $7B,$FE,$0 FCB $93,$FE,$0 FCB $9E,$FE,$0 FCB $D6,$7E,$0 FCB $43,$5C,$0 FCB $69,$F4,$0 FCB $3B,$58,$0 FCB $1C,$E0,$0 FCB $7,$C0,$0 FCB $0,$0,$0 * frame 1 FCB $3,$E0,$0 FCB $F,$F8,$0 FCB $1D,$FC,$0 FCB $3F,$FE,$0 FCB $2B,$FE,$0 FCB $6F,$FF,$0 FCB $3D,$FF,$0 FCB $49,$FF,$0 FCB $4F,$7F,$0 FCB $6B,$3F,$0 FCB $21,$AE,$0 FCB $34,$FA,$0 FCB $1D,$AC,$0 FCB $E,$70,$0 FCB $3,$E0,$0 FCB $0,$0,$0 * frame 2 FCB $1,$F0,$0 FCB $7,$FC,$0 FCB $E,$FE,$0 FCB $1F,$FF,$0 FCB $15,$FF,$0 FCB $37,$FF,$80 FCB $1E,$FF,$80 FCB $24,$FF,$80 FCB $27,$BF,$80 FCB $35,$9F,$80 FCB $10,$D7,$0 FCB $1A,$7D,$0 FCB $E,$D6,$0 FCB $7,$38,$0 FCB $1,$F0,$0 FCB $0,$0,$0 * frame 3 FCB $0,$F8,$0 FCB $3,$FE,$0 FCB $7,$7F,$0 FCB $F,$FF,$80 FCB $A,$FF,$80 FCB $1B,$FF,$C0 FCB $F,$7F,$C0 FCB $12,$7F,$C0 FCB $13,$DF,$C0 FCB $1A,$CF,$C0 FCB $8,$6B,$80 FCB $D,$3E,$80 FCB $7,$6B,$0 FCB $3,$9C,$0 FCB $0,$F8,$0 FCB $0,$0,$0 * frame 4 FCB $0,$7C,$0 FCB $1,$FF,$0 FCB $3,$BF,$80 FCB $7,$FF,$C0 FCB $5,$7F,$C0 FCB $D,$FF,$E0 FCB $7,$BF,$E0 FCB $9,$3F,$E0 FCB $9,$EF,$E0 FCB $D,$67,$E0 FCB $4,$35,$C0 FCB $6,$9F,$40 FCB $3,$B5,$80 FCB $1,$CE,$0 FCB $0,$7C,$0 FCB $0,$0,$0 * frame 5 FCB $0,$3E,$0 FCB $0,$FF,$80 FCB $1,$DF,$C0 FCB $3,$FF,$E0 FCB $2,$BF,$E0 FCB $6,$FF,$F0 FCB $3,$DF,$F0 FCB $4,$9F,$F0 FCB $4,$F7,$F0 FCB $6,$B3,$F0 FCB $2,$1A,$E0 FCB $3,$4F,$A0 FCB $1,$DA,$C0 FCB $0,$E7,$0 FCB $0,$3E,$0 FCB $0,$0,$0 * frame 6 FCB $0,$1F,$0 FCB $0,$7F,$C0 FCB $0,$EF,$E0 FCB $1,$FF,$F0 FCB $1,$5F,$F0 FCB $3,$7F,$F8 FCB $1,$EF,$F8 FCB $2,$4F,$F8 FCB $2,$7B,$F8 FCB $3,$59,$F8 FCB $1,$D,$70 FCB $1,$A7,$D0 FCB $0,$ED,$60 FCB $0,$73,$80 FCB $0,$1F,$0 FCB $0,$0,$0 * frame 7 FCB $0,$F,$80 FCB $0,$3F,$E0 FCB $0,$77,$F0 FCB $0,$FF,$F8 FCB $0,$AF,$F8 FCB $1,$BF,$FC FCB $0,$F7,$FC FCB $1,$27,$FC FCB $1,$3D,$FC FCB $1,$AC,$FC FCB $0,$86,$B8 FCB $0,$D3,$E8 FCB $0,$76,$B0 FCB $0,$39,$C0 FCB $0,$F,$80 FCB $0,$0,$0 **************************************************************** ASTER1 * frame 0 FCB %00011000,%00000000 FCB %01111110,%00000000 FCB %01111110,%00000000 FCB %11111111,%00000000 FCB %10111111,%00000000 FCB %01101110,%00000000 FCB %01011110,%00000000 FCB %00011000,%00000000 * frame 1 FCB %00001100,%00000000 FCB %00111111,%00000000 FCB %00111111,%00000000 FCB %01111111,%10000000 FCB %01101111,%10000000 FCB %00110111,%00000000 FCB %00101101,%00000000 FCB %00001100,%00000000 * frame 2 FCB %00000110,%00000000 FCB %00011111,%10000000 FCB %00011111,%10000000 FCB %00111111,%11000000 FCB %00101011,%11000000 FCB %00010111,%10000000 FCB %00011101,%10000000 FCB %00000110,%00000000 * frame 3 FCB %00000011,%00000000 FCB %00001111,%11000000 FCB %00001111,%11000000 FCB %00010111,%11100000 FCB %00011101,%11100000 FCB %00001010,%11000000 FCB %00001111,%11000000 FCB %00000011,%00000000 * frame 4 FCB %00000001,%10000000 FCB %00000111,%11100000 FCB %00000111,%11100000 FCB %00001011,%11110000 FCB %00001111,%11110000 FCB %00000101,%01100000 FCB %00000110,%11100000 FCB %00000001,%10000000 * frame 5 FCB %00000000,%11000000 FCB %00000011,%11110000 FCB %00000011,%11110000 FCB %00000111,%11111000 FCB %00000110,%11111000 FCB %00000010,%01010000 FCB %00000011,%01110000 FCB %00000000,%11000000 * frame 6 FCB %00000000,%01100000 FCB %00000001,%11111000 FCB %00000001,%11111000 FCB %00000011,%11111100 FCB %00000010,%11111100 FCB %00000001,%10111000 FCB %00000001,%01011000 FCB %00000000,%01100000 * frame 7 FCB %00000000,%00110000 FCB %00000000,%11111100 FCB %00000000,%11111100 FCB %00000001,%11111110 FCB %00000001,%10110110 FCB %00000000,%01101100 FCB %00000000,%11011100 FCB %00000000,%00110000 **************************************************************** ASTER2 * frame 0 FCB %01100000,%00000000 FCB %11110000,%00000000 FCB %11110000,%00000000 FCB %01100000,%00000000 * frame 1 FCB %00110000,%00000000 FCB %01111000,%00000000 FCB %01111000,%00000000 FCB %00110000,%00000000 * frame 2 FCB %00011000,%00000000 FCB %00111100,%00000000 FCB %00111100,%00000000 FCB %00011000,%00000000 * frame 3 FCB %00001100,%00000000 FCB %00011110,%00000000 FCB %00011110,%00000000 FCB %00001100,%00000000 * frame 4 FCB %00000110,%00000000 FCB %00001111,%00000000 FCB %00001111,%00000000 FCB %00000110,%00000000 * frame 5 FCB %00000011,%00000000 FCB %00000111,%10000000 FCB %00000111,%10000000 FCB %00000011,%00000000 * frame 6 FCB %00000001,%10000000 FCB %00000011,%11000000 FCB %00000011,%11000000 FCB %00000001,%10000000 * frame 7 FCB %00000000,%11000000 FCB %00000001,%11100000 FCB %00000001,%11100000 FCB %00000000,%11000000 SHIP_SPRITE * Dir 0 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $60,$0 FCB $78,$0 FCB $7E,$0 FCB $78,$0 FCB $60,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $30,$0 FCB $3C,$0 FCB $3F,$0 FCB $3C,$0 FCB $30,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $18,$0 FCB $1E,$0 FCB $1F,$80 FCB $1E,$0 FCB $18,$0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $C,$0 FCB $F,$0 FCB $F,$C0 FCB $F,$0 FCB $C,$0 FCB $0,$0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $6,$0 FCB $7,$80 FCB $7,$E0 FCB $7,$80 FCB $6,$0 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $3,$0 FCB $3,$C0 FCB $3,$F0 FCB $3,$C0 FCB $3,$0 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$0 FCB $1,$80 FCB $1,$E0 FCB $1,$F8 FCB $1,$E0 FCB $1,$80 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$C0 FCB $0,$F0 FCB $0,$FC FCB $0,$F0 FCB $0,$C0 FCB $0,$0 * Dir 1 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $10,$0 FCB $38,$0 FCB $3E,$0 FCB $7F,$0 FCB $0,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $8,$0 FCB $1C,$0 FCB $1F,$0 FCB $3F,$80 FCB $0,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $4,$0 FCB $E,$0 FCB $F,$80 FCB $1F,$C0 FCB $0,$0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $2,$0 FCB $7,$0 FCB $7,$C0 FCB $F,$E0 FCB $0,$0 FCB $0,$0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $1,$0 FCB $3,$80 FCB $3,$E0 FCB $7,$F0 FCB $0,$0 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $0,$80 FCB $1,$C0 FCB $1,$F0 FCB $3,$F8 FCB $0,$0 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$40 FCB $0,$E0 FCB $0,$F8 FCB $1,$FC FCB $0,$0 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$20 FCB $0,$70 FCB $0,$7C FCB $0,$FE FCB $0,$0 FCB $0,$0 * Dir 2 ******************************* * frame 0 FCB $0,$0 FCB $10,$0 FCB $38,$0 FCB $78,$0 FCB $3C,$0 FCB $C,$0 FCB $2,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $8,$0 FCB $1C,$0 FCB $3C,$0 FCB $1E,$0 FCB $6,$0 FCB $1,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $4,$0 FCB $E,$0 FCB $1E,$0 FCB $F,$0 FCB $3,$0 FCB $0,$80 FCB $0,$0 * frame 3 FCB $0,$0 FCB $2,$0 FCB $7,$0 FCB $F,$0 FCB $7,$80 FCB $1,$80 FCB $0,$40 FCB $0,$0 * frame 4 FCB $0,$0 FCB $1,$0 FCB $3,$80 FCB $7,$80 FCB $3,$C0 FCB $0,$C0 FCB $0,$20 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$80 FCB $1,$C0 FCB $3,$C0 FCB $1,$E0 FCB $0,$60 FCB $0,$10 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$40 FCB $0,$E0 FCB $1,$E0 FCB $0,$F0 FCB $0,$30 FCB $0,$8 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$20 FCB $0,$70 FCB $0,$F0 FCB $0,$78 FCB $0,$18 FCB $0,$4 FCB $0,$0 * Dir 3 ******************************* * frame 0 FCB $0,$0 FCB $4,$0 FCB $1C,$0 FCB $3C,$0 FCB $1C,$0 FCB $C,$0 FCB $C,$0 FCB $4,$0 * frame 1 FCB $0,$0 FCB $2,$0 FCB $E,$0 FCB $1E,$0 FCB $E,$0 FCB $6,$0 FCB $6,$0 FCB $2,$0 * frame 2 FCB $0,$0 FCB $1,$0 FCB $7,$0 FCB $F,$0 FCB $7,$0 FCB $3,$0 FCB $3,$0 FCB $1,$0 * frame 3 FCB $0,$0 FCB $0,$80 FCB $3,$80 FCB $7,$80 FCB $3,$80 FCB $1,$80 FCB $1,$80 FCB $0,$80 * frame 4 FCB $0,$0 FCB $0,$40 FCB $1,$C0 FCB $3,$C0 FCB $1,$C0 FCB $0,$C0 FCB $0,$C0 FCB $0,$40 * frame 5 FCB $0,$0 FCB $0,$20 FCB $0,$E0 FCB $1,$E0 FCB $0,$E0 FCB $0,$60 FCB $0,$60 FCB $0,$20 * frame 6 FCB $0,$0 FCB $0,$10 FCB $0,$70 FCB $0,$F0 FCB $0,$70 FCB $0,$30 FCB $0,$30 FCB $0,$10 * frame 7 FCB $0,$0 FCB $0,$8 FCB $0,$38 FCB $0,$78 FCB $0,$38 FCB $0,$18 FCB $0,$18 FCB $0,$8 * Dir 4 ******************************* * frame 0 FCB $0,$0 FCB $3E,$0 FCB $3E,$0 FCB $1C,$0 FCB $1C,$0 FCB $8,$0 FCB $8,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $1F,$0 FCB $1F,$0 FCB $E,$0 FCB $E,$0 FCB $4,$0 FCB $4,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $F,$80 FCB $F,$80 FCB $7,$0 FCB $7,$0 FCB $2,$0 FCB $2,$0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $7,$C0 FCB $7,$C0 FCB $3,$80 FCB $3,$80 FCB $1,$0 FCB $1,$0 FCB $0,$0 * frame 4 FCB $0,$0 FCB $3,$E0 FCB $3,$E0 FCB $1,$C0 FCB $1,$C0 FCB $0,$80 FCB $0,$80 FCB $0,$0 * frame 5 FCB $0,$0 FCB $1,$F0 FCB $1,$F0 FCB $0,$E0 FCB $0,$E0 FCB $0,$40 FCB $0,$40 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$F8 FCB $0,$F8 FCB $0,$70 FCB $0,$70 FCB $0,$20 FCB $0,$20 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$7C FCB $0,$7C FCB $0,$38 FCB $0,$38 FCB $0,$10 FCB $0,$10 FCB $0,$0 * Dir 5 ******************************* * frame 0 FCB $0,$0 FCB $10,$0 FCB $1C,$0 FCB $1E,$0 FCB $1C,$0 FCB $18,$0 FCB $18,$0 FCB $10,$0 * frame 1 FCB $0,$0 FCB $8,$0 FCB $E,$0 FCB $F,$0 FCB $E,$0 FCB $C,$0 FCB $C,$0 FCB $8,$0 * frame 2 FCB $0,$0 FCB $4,$0 FCB $7,$0 FCB $7,$80 FCB $7,$0 FCB $6,$0 FCB $6,$0 FCB $4,$0 * frame 3 FCB $0,$0 FCB $2,$0 FCB $3,$80 FCB $3,$C0 FCB $3,$80 FCB $3,$0 FCB $3,$0 FCB $2,$0 * frame 4 FCB $0,$0 FCB $1,$0 FCB $1,$C0 FCB $1,$E0 FCB $1,$C0 FCB $1,$80 FCB $1,$80 FCB $1,$0 * frame 5 FCB $0,$0 FCB $0,$80 FCB $0,$E0 FCB $0,$F0 FCB $0,$E0 FCB $0,$C0 FCB $0,$C0 FCB $0,$80 * frame 6 FCB $0,$0 FCB $0,$40 FCB $0,$70 FCB $0,$78 FCB $0,$70 FCB $0,$60 FCB $0,$60 FCB $0,$40 * frame 7 FCB $0,$0 FCB $0,$20 FCB $0,$38 FCB $0,$3C FCB $0,$38 FCB $0,$30 FCB $0,$30 FCB $0,$20 * Dir 6 ******************************* * frame 0 FCB $0,$0 FCB $4,$0 FCB $E,$0 FCB $F,$0 FCB $1E,$0 FCB $18,$0 FCB $20,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $2,$0 FCB $7,$0 FCB $7,$80 FCB $F,$0 FCB $C,$0 FCB $10,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $1,$0 FCB $3,$80 FCB $3,$C0 FCB $7,$80 FCB $6,$0 FCB $8,$0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $0,$80 FCB $1,$C0 FCB $1,$E0 FCB $3,$C0 FCB $3,$0 FCB $4,$0 FCB $0,$0 * frame 4 FCB $0,$0 FCB $0,$40 FCB $0,$E0 FCB $0,$F0 FCB $1,$E0 FCB $1,$80 FCB $2,$0 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$20 FCB $0,$70 FCB $0,$78 FCB $0,$F0 FCB $0,$C0 FCB $1,$0 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$10 FCB $0,$38 FCB $0,$3C FCB $0,$78 FCB $0,$60 FCB $0,$80 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$8 FCB $0,$1C FCB $0,$1E FCB $0,$3C FCB $0,$30 FCB $0,$40 FCB $0,$0 * Dir 7 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $4,$0 FCB $E,$0 FCB $3E,$0 FCB $7F,$0 FCB $0,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $2,$0 FCB $7,$0 FCB $1F,$0 FCB $3F,$80 FCB $0,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $1,$0 FCB $3,$80 FCB $F,$80 FCB $1F,$C0 FCB $0,$0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $0,$80 FCB $1,$C0 FCB $7,$C0 FCB $F,$E0 FCB $0,$0 FCB $0,$0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $0,$40 FCB $0,$E0 FCB $3,$E0 FCB $7,$F0 FCB $0,$0 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $0,$20 FCB $0,$70 FCB $1,$F0 FCB $3,$F8 FCB $0,$0 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$10 FCB $0,$38 FCB $0,$F8 FCB $1,$FC FCB $0,$0 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$8 FCB $0,$1C FCB $0,$7C FCB $0,$FE FCB $0,$0 FCB $0,$0 * Dir 8 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $3,$0 FCB $F,$0 FCB $3F,$0 FCB $F,$0 FCB $3,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $1,$80 FCB $7,$80 FCB $1F,$80 FCB $7,$80 FCB $1,$80 FCB $0,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $0,$C0 FCB $3,$C0 FCB $F,$C0 FCB $3,$C0 FCB $0,$C0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $0,$60 FCB $1,$E0 FCB $7,$E0 FCB $1,$E0 FCB $0,$60 FCB $0,$0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $0,$30 FCB $0,$F0 FCB $3,$F0 FCB $0,$F0 FCB $0,$30 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $0,$18 FCB $0,$78 FCB $1,$F8 FCB $0,$78 FCB $0,$18 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$C FCB $0,$3C FCB $0,$FC FCB $0,$3C FCB $0,$C FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$6 FCB $0,$1E FCB $0,$7E FCB $0,$1E FCB $0,$6 FCB $0,$0 * Dir 9 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $7F,$0 FCB $3E,$0 FCB $E,$0 FCB $4,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $3F,$80 FCB $1F,$0 FCB $7,$0 FCB $2,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $1F,$C0 FCB $F,$80 FCB $3,$80 FCB $1,$0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $F,$E0 FCB $7,$C0 FCB $1,$C0 FCB $0,$80 FCB $0,$0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $7,$F0 FCB $3,$E0 FCB $0,$E0 FCB $0,$40 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $3,$F8 FCB $1,$F0 FCB $0,$70 FCB $0,$20 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $1,$FC FCB $0,$F8 FCB $0,$38 FCB $0,$10 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $0,$FE FCB $0,$7C FCB $0,$1C FCB $0,$8 FCB $0,$0 * Dir 10 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $20,$0 FCB $18,$0 FCB $1E,$0 FCB $F,$0 FCB $E,$0 FCB $4,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $10,$0 FCB $C,$0 FCB $F,$0 FCB $7,$80 FCB $7,$0 FCB $2,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $8,$0 FCB $6,$0 FCB $7,$80 FCB $3,$C0 FCB $3,$80 FCB $1,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $4,$0 FCB $3,$0 FCB $3,$C0 FCB $1,$E0 FCB $1,$C0 FCB $0,$80 * frame 4 FCB $0,$0 FCB $0,$0 FCB $2,$0 FCB $1,$80 FCB $1,$E0 FCB $0,$F0 FCB $0,$E0 FCB $0,$40 * frame 5 FCB $0,$0 FCB $0,$0 FCB $1,$0 FCB $0,$C0 FCB $0,$F0 FCB $0,$78 FCB $0,$70 FCB $0,$20 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$80 FCB $0,$60 FCB $0,$78 FCB $0,$3C FCB $0,$38 FCB $0,$10 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$40 FCB $0,$30 FCB $0,$3C FCB $0,$1E FCB $0,$1C FCB $0,$8 * Dir 11 ******************************* * frame 0 FCB $0,$0 FCB $10,$0 FCB $18,$0 FCB $18,$0 FCB $1C,$0 FCB $1E,$0 FCB $1C,$0 FCB $10,$0 * frame 1 FCB $0,$0 FCB $8,$0 FCB $C,$0 FCB $C,$0 FCB $E,$0 FCB $F,$0 FCB $E,$0 FCB $8,$0 * frame 2 FCB $0,$0 FCB $4,$0 FCB $6,$0 FCB $6,$0 FCB $7,$0 FCB $7,$80 FCB $7,$0 FCB $4,$0 * frame 3 FCB $0,$0 FCB $2,$0 FCB $3,$0 FCB $3,$0 FCB $3,$80 FCB $3,$C0 FCB $3,$80 FCB $2,$0 * frame 4 FCB $0,$0 FCB $1,$0 FCB $1,$80 FCB $1,$80 FCB $1,$C0 FCB $1,$E0 FCB $1,$C0 FCB $1,$0 * frame 5 FCB $0,$0 FCB $0,$80 FCB $0,$C0 FCB $0,$C0 FCB $0,$E0 FCB $0,$F0 FCB $0,$E0 FCB $0,$80 * frame 6 FCB $0,$0 FCB $0,$40 FCB $0,$60 FCB $0,$60 FCB $0,$70 FCB $0,$78 FCB $0,$70 FCB $0,$40 * frame 7 FCB $0,$0 FCB $0,$20 FCB $0,$30 FCB $0,$30 FCB $0,$38 FCB $0,$3C FCB $0,$38 FCB $0,$20 * Dir 12 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $8,$0 FCB $8,$0 FCB $1C,$0 FCB $1C,$0 FCB $3E,$0 FCB $3E,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $4,$0 FCB $4,$0 FCB $E,$0 FCB $E,$0 FCB $1F,$0 FCB $1F,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $2,$0 FCB $2,$0 FCB $7,$0 FCB $7,$0 FCB $F,$80 FCB $F,$80 * frame 3 FCB $0,$0 FCB $0,$0 FCB $1,$0 FCB $1,$0 FCB $3,$80 FCB $3,$80 FCB $7,$C0 FCB $7,$C0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $0,$80 FCB $0,$80 FCB $1,$C0 FCB $1,$C0 FCB $3,$E0 FCB $3,$E0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $0,$40 FCB $0,$40 FCB $0,$E0 FCB $0,$E0 FCB $1,$F0 FCB $1,$F0 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$20 FCB $0,$20 FCB $0,$70 FCB $0,$70 FCB $0,$F8 FCB $0,$F8 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$10 FCB $0,$10 FCB $0,$38 FCB $0,$38 FCB $0,$7C FCB $0,$7C * Dir 13 ******************************* * frame 0 FCB $0,$0 FCB $4,$0 FCB $C,$0 FCB $C,$0 FCB $1C,$0 FCB $3C,$0 FCB $1C,$0 FCB $4,$0 * frame 1 FCB $0,$0 FCB $2,$0 FCB $6,$0 FCB $6,$0 FCB $E,$0 FCB $1E,$0 FCB $E,$0 FCB $2,$0 * frame 2 FCB $0,$0 FCB $1,$0 FCB $3,$0 FCB $3,$0 FCB $7,$0 FCB $F,$0 FCB $7,$0 FCB $1,$0 * frame 3 FCB $0,$0 FCB $0,$80 FCB $1,$80 FCB $1,$80 FCB $3,$80 FCB $7,$80 FCB $3,$80 FCB $0,$80 * frame 4 FCB $0,$0 FCB $0,$40 FCB $0,$C0 FCB $0,$C0 FCB $1,$C0 FCB $3,$C0 FCB $1,$C0 FCB $0,$40 * frame 5 FCB $0,$0 FCB $0,$20 FCB $0,$60 FCB $0,$60 FCB $0,$E0 FCB $1,$E0 FCB $0,$E0 FCB $0,$20 * frame 6 FCB $0,$0 FCB $0,$10 FCB $0,$30 FCB $0,$30 FCB $0,$70 FCB $0,$F0 FCB $0,$70 FCB $0,$10 * frame 7 FCB $0,$0 FCB $0,$8 FCB $0,$18 FCB $0,$18 FCB $0,$38 FCB $0,$78 FCB $0,$38 FCB $0,$8 * Dir 14 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $2,$0 FCB $C,$0 FCB $3C,$0 FCB $78,$0 FCB $38,$0 FCB $10,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $1,$0 FCB $6,$0 FCB $1E,$0 FCB $3C,$0 FCB $1C,$0 FCB $8,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $0,$80 FCB $3,$0 FCB $F,$0 FCB $1E,$0 FCB $E,$0 FCB $4,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $0,$40 FCB $1,$80 FCB $7,$80 FCB $F,$0 FCB $7,$0 FCB $2,$0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $0,$20 FCB $0,$C0 FCB $3,$C0 FCB $7,$80 FCB $3,$80 FCB $1,$0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $0,$10 FCB $0,$60 FCB $1,$E0 FCB $3,$C0 FCB $1,$C0 FCB $0,$80 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$8 FCB $0,$30 FCB $0,$F0 FCB $1,$E0 FCB $0,$E0 FCB $0,$40 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$4 FCB $0,$18 FCB $0,$78 FCB $0,$F0 FCB $0,$70 FCB $0,$20 * Dir 15 ******************************* * frame 0 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $7F,$0 FCB $3E,$0 FCB $38,$0 FCB $10,$0 FCB $0,$0 * frame 1 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $3F,$80 FCB $1F,$0 FCB $1C,$0 FCB $8,$0 FCB $0,$0 * frame 2 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $1F,$C0 FCB $F,$80 FCB $E,$0 FCB $4,$0 FCB $0,$0 * frame 3 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $F,$E0 FCB $7,$C0 FCB $7,$0 FCB $2,$0 FCB $0,$0 * frame 4 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $7,$F0 FCB $3,$E0 FCB $3,$80 FCB $1,$0 FCB $0,$0 * frame 5 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $3,$F8 FCB $1,$F0 FCB $1,$C0 FCB $0,$80 FCB $0,$0 * frame 6 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $1,$FC FCB $0,$F8 FCB $0,$E0 FCB $0,$40 FCB $0,$0 * frame 7 FCB $0,$0 FCB $0,$0 FCB $0,$0 FCB $0,$FE FCB $0,$7C FCB $0,$70 FCB $0,$20 FCB $0,$0