************************************************************** * * Software: Jake Simpson * Initiated: 10/11/94 * * Modified: * * COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC. * ************************************************************** .file "screen.asm" .title "wrestling game program" .width 132 .option b,d,l,t .mnolist .include "macros.h" .include "mproc.equ" ;Mproc equates .include "display.equ" ;Display proc equates .include "gsp.equ" ;Gsp asm equates .include "sys.equ" .include "wwfsec.equ" .include "game.equ" .INCLUDE "SCREEN.TBL" .include "imgtbl.glo" .ref triple_sound .ref FADERAM, RNDRNG0 .ref ZERO_BITS .ref HALT .ref dpageflip .REF dpageflip_off .ref clear_objs .ref IRQSKYE .ref BGND_UD1 .ref BAKMODS .ref pal_getf .ref SYSCOPY .REF pal_clean .REF WHAT_SPEED .REF GAMSTATE .REF get_all_buttons_cur2 ; .GLOBAL CLOSE_SCREEN_BOX, OPEN_SCREEN_BOX ; .GLOBAL CLOSE_SCREEN_BOX_CENTER, OPEN_SCREEN_BOX_CENTER .GLOBAL CLOSE_SCREEN_LINE, OPEN_SCREEN_LINE .GLOBAL BLOW_0_TO_1,RESET_FROM_PIXEL_WIPE .GLOBAL SET_UP_PIXEL_WIPE .DEF DUMRETS .def special_screen .DEF RESETUP_LINES .DEF dma_it_out .def LINES .DEF CLOSE_VERT_SCREEN_LINE .DEF OPEN_VERT_SCREEN_LINE .DEF LINES_VERT .def HORZTRN1,HORZTRN2 BSSX WHICH_SCREEN,32 BSSX TOP_LEFT,32 BSSX BOT_RIGHT,32 .BSS LINE_1,64*8 .bss LINE_START,32 .BSS WHICH_WAY,16 .bss special_screen,16 .bss which_pal,16 ;array size = 2560*32 ;ARRAYS .equ FADERAM .bss ARRAYS,256*16*80 .text GROW_SCREEN RETP ;************************************************************************** ;* * ;* DO NOT call WIPEOUT or any of that stuff before calling this routine ! * ;* In order to use the pixel wipes, you must call this routine before doing * ;* anything else. It will do ALL screen setting up for you. Don't mess around * ;* with that BLANK or UNBLANK thing. Call this routine with A0 set to the * ;* background module you want to display. Once this routine is done, create * ;* the objects you want to display etc and then do a sleep of 1. Then * ;* JSRP BLOW_0_TO_1 or BLOW_0_TO_1 and then when returned, call * ;* RESET_FROM_PIXEL_WIPE and resume normal processing. * ;* * ;************************************************************************** SET_UP_PIXEL_WIPE PUSH A0 clr a0 move a0,@HALT move a0,@dtype ;2d mode move a0,@IRQSKYE move a0,@WORLDTLX,L move a0,@WORLDTLY,L inc a0 move a0,@special_screen movi SCRNEND,a0 ;[256,405] move a0,@SCRNLR,L clr a0 CALLA dpageflip_off calla clear_objs calla ZERO_BITS movi SCRNEND,a0 ;[256,405] move a0,@SCRNLR,L clr a0 move a0,@WORLDTLX,L move a0,@WORLDTLY,L PULL A0 move a0,@BAKMODS,L JAUC BGND_UD1 ;create objects for background RESET_FROM_PIXEL_WIPE clr a0 move a0,@special_screen movk 1,a0 ;page flipping on move a0,@dpageflip RETS ARRAY_SIZE .EQU 256*32 ARRAYA .EQU ARRAY_SIZE*0 ARRAYB .EQU ARRAY_SIZE*5 BLOW_0_TO_1 CALLR INIT_TABLES SLEEP 1 MOVI ARRAYA+ARRAYS,A3 CALLR RANDOMIZE_TABLES SLEEP 1 MOVI ARRAYB+ARRAYS,A3 CALLR RANDOMIZE_TABLES SLEEP 1 CLR A0 MOVE A0,@DISPLAYON SLEEP 1 MOVI 1C0H,A9 MOVK 10,A10 DO_NEXT_BLOCK MOVI ARRAYA+ARRAYS,A8 SLEEP 3 CREATE0 DISPLAY_ARRAY ADDI 0A0H,A9 MOVI ARRAYB+ARRAYS,A8 SLEEP 3 CREATE0 DISPLAY_ARRAY ADDI 0A0H,A9 DEC A10 JRNZ DO_NEXT_BLOCK SLEEP 25 MOVK 1,A0 MOVE A0,@DISPLAYON RETP DISPLAY_ARRAY MOVI 100000H,A10 callr PAL_RAM_OFF movi 5,a0 next_copy pushp a0 CALLR COPY_ARRAY ; SUBI 256*32,A8 ; CALLR PAL_RAM_ON ; CALLR COPY_ARRAY callr PAL_RAM_OFF sleep 1 pullp a0 dsjs a0,next_copy DIE COPY_ARRAY pushst dint movi DMACMAP,a7 MOVI 256,A2 movi SYSCINIT,a11 move a11,a5 ANDi 0FFFFH-PALENB,a5 .ALIGN COPY_NEXT MOVE *A8+,A3,L ADD A9,A3 MOVE A3,A0 ADD A10,A0 move a5,@SYSCTRL MOVE *A0,*A7 move a11,@SYSCTRL MOVE *A0,*A3 move a5,@SYSCTRL move *a0(1000h),*a7(0) move a11,@SYSCTRL MOVE *A0(1000H),*A3(1000H) DSJS A2,COPY_NEXT popst RETS PAL_RAM_ON movi SYSCINIT,a11 ANDi 0FFFFH-PALENB,a11 move a11,@SYSCOPY move a11,@SYSCTRL rets PAL_RAM_OFF movi SYSCINIT,a11 move a11,@SYSCTRL move a11,@SYSCOPY RETS RANDOMIZE_TABLES MOVI 1279,A2 RAND_NEXT_POINT MOVE A2,A0 CALLA RNDRNG0 SLL 5,A0 ADD A3,A0 MOVE A2,A4 SLL 5,A4 ADD A3,A4 MOVE *A0,A14,L MOVE *A4,*A0,L MOVE A14,*A4,L DSJS A2,RAND_NEXT_POINT RETS INIT_TABLES MOVI 010H,A4 MOVI 2000H-(10*10H),A5 MOVI ARRAYA+ARRAYS,A1 CALLR INIT_ARRAY MOVI ARRAYB+ARRAYS,A1 INIT_ARRAY MOVI 128,A3 CLR A0 NEXT_DOWN MOVI 10,A2 NEXT_ACROSS MOVE A0,*A1+,L ADD A4,A0 DSJS A2,NEXT_ACROSS ADD A5,A0 DSJS A3,NEXT_DOWN RETS ** NOTE !!!! ALL SCREEN CLEAR AND OPENS MUST BE CALLED WITH A JSRP **** ;************************************************************************** ;* * ;* For close/open screen box, send the y:x coor you want to close * ;* to in a9. Send the duration of close in a8 * ;* * ;************************************************************************** .IF 0 OPEN_SCREEN_BOX_CENTER MOVI [127,200],A9 MOVI 25,A8 OPEN_SCREEN_BOX MOVI DRAW_BOXES,A0 MOVE A0,@WHICH_SCREEN,L CALLR CALC_INCREMENTS NEG A0 NEG A1 NEG A2 NEG A3 MOVY A9,A6 MOVY A9,A7 SLL 16,A9 MOVE A9,A4 MOVE A9,A5 JRUC PUT_UP_BOX CLOSE_SCREEN_BOX_CENTER MOVI [127,200],A9 MOVK 25,A8 CLOSE_SCREEN_BOX MOVI DRAW_BOXES,A0 MOVE A0,@WHICH_SCREEN,L CALLR CALC_INCREMENTS MOVI [400,0],A5 MOVI [254,0],A7 PUT_UP_BOX CALLR CALC_BOX PUSHP A0,A1,A2,A3 PUSHP A4,A5,A6,A7 SLEEP 1 PULLP A4,A5,A6,A7 PULLP A0,A1,A2,A3 DSJS A8,PUT_UP_BOX MOVI DUMRETS,A1 MOVE A1,@WHICH_SCREEN,L CLR A0 MOVE A0,@TOP_LEFT,L MOVE A0,@BOT_RIGHT,L RETP CALC_INCREMENTS MOVY A9,A7 CLR A1 MOVX A9,A1 SLL 16,A1 DIVS A8,A1 MOVE A1,A0 CLR A1 MOVX A9,A1 MOVI 400,A5 SUB A5,A1 SLL 16,A1 DIVS A8,A1 CLR A3 MOVY A7,A3 DIVS A8,A3 MOVE A3,A2 CLR A3 MOVY A7,A3 SRL 16,A3 MOVI 254,A5 SUB A5,A3 SLL 16,A3 DIVS A8,A3 CLR A4 CLR A5 CLR A6 CLR A7 DUMRETS RETS ;A0 32BIT ADD FOR LEFT ;A1 32BIT ADD FOR RIGHT ;A2 32BIT ADD FOR TOP ;A3 32BIT ADD FOR BOTTOM ;A4 32BIT XPOS FOR LEFT ;A5 32BIT XPOS FOR RIGHT ;A6 32BIT YPOS FOR TOP ;A7 32BIT YPOS FOR BOTTOM CALC_BOX ADD A0,A4 ADD A1,A5 ADD A2,A6 ADD A3,A7 MOVE A4,A14 SRL 16,A14 MOVY A6,A14 MOVE A14,@TOP_LEFT,L MOVE A5,A14 SRL 16,A14 MOVY A7,A14 MOVE A14,@BOT_RIGHT,L RETS DRAW_BOXES MOVI 01000100H,A5 CLR A8 MOVI 4a748c9H,A11 MOVI 900C0000H,A12 CLR A10 MOVI [255,0],A1 MOVE @TOP_LEFT,A9 jrz no_draw_anything1 MOVY A1,A9 callr dma_it_out no_draw_anything1 MOVI 400,A1 MOVE @BOT_RIGHT,A10 SUB A10,A1 jrz no_draw_anything2 jrn no_draw_anything2 MOVX A1,A9 CLR A10 MOVE @BOT_RIGHT,A10 callr dma_it_out no_draw_anything2 CLR A10 MOVE @TOP_LEFT,A10 MOVE @BOT_RIGHT,A9 SUB A10,A9 JRZ no_draw_anything4 JRN no_draw_anything4 MOVE @TOP_LEFT+010H,A14 JRZ no_draw_anything3 JRN no_draw_anything3 SLL 16,A14 MOVY A14,A9 callr dma_it_out no_draw_anything3 CLR A10 MOVE @TOP_LEFT,A10 MOVE @BOT_RIGHT,A14,L MOVY A14,A10 MOVI 254,A3 SRL 16,A14 SUB A14,A3 JRZ no_draw_anything4 JRN no_draw_anything4 SLL 16,A3 MOVY A3,A9 callr dma_it_out no_draw_anything4 RETS .ENDIF ;A5 SCALE ;A8 PAL|CONST ;A9 YSIZE|XSIZE ;A10 DAG ;A11 SAG ;A12 OCTRL|OFFSET dma_it_out move b2,a1 addxy a1,a10 ;Add the page y offset : XPad mmtm a4,a5,a8,a9,a10,a11,a12 ;Save the dma regs addk 1,b13 ;+1 Q cnt jrgt #nxt ;DMA going? dint setf 1,0,0 ;>Enable DMA int movk 1,a1 move a1,@INTENB+1 ;X1E setf 16,1,0 move *b11,b0 jrn #dmaok ;DMA busy? move b13,b13 jrn #dmaok ;DMA int done? trap 1 ;Cause DMA int #dmaok eint #nxt DUMRETS rets ;#************************************************************************** ;* * ;* ENTRY A8=SPEED OF ONE LINE, A9=DELAY BETWEEN EACH LINE (IF NEG START A * ;* at the top, otherwise start at the bottom * ;* * ;************************************************************************** OPEN_VERT_SCREEN_LINE move @WHAT_SPEED,A8 MOVI HORZTRN1P,A0 CALLA pal_getf move a0,@which_pal MOVI [0,400],A1 MOVE A1,@TOP_LEFT,L CLR A1 MOVE A1,@BOT_RIGHT,L MOVI [256,0],A0 CLR A1 CLR A3 CALLR SET_INITIAL_LINES MOVI LINES_VERT,A1 MOVE A1,@WHICH_SCREEN,L MOVI [255,0],A11 DIVS A8,A11 NEG A11 MOVK 7,A10 #NEXT_LINE2B movk 18,a0 calla triple_sound CREATE0 MOVE_LINE_VERT MOVE A9,A0 CALLA PRCSLP DEC A10 JRNN #NEXT_LINE2B MOVE A8,A0 SUB A9,A0 ADDK 2,A0 CALLA PRCSLP MOVI DUMRETS,A1 MOVE A1,@WHICH_SCREEN,L CLR A1 MOVE A1,@TOP_LEFT,L MOVE A1,@BOT_RIGHT,L ; CALLA pal_clean RETP ;#************************************************************************** ;* * ;* ENTRY A8=SPEED OF ONE LINE, A9=DELAY BETWEEN EACH LINE * ;* IF DELAY IS NEGATIVE (IE TWOS COMPLEMENT) THEN GO FROM TOP DOWN * ;* * ;************************************************************************** CLOSE_VERT_SCREEN_LINE calla get_all_buttons_cur2 jrz #reg_spd srl 1,a8 #reg_spd move a8,@WHAT_SPEED MOVI HORZTRN1P,A0 CALLA pal_getf move a0,@which_pal CLR A1 MOVE A1,@TOP_LEFT,L MOVE A1,@BOT_RIGHT,L CLR A0 CLR A3 MOVI [256,0],A1 CALLR SET_INITIAL_LINES MOVI LINES_VERT,A1 MOVE A1,@WHICH_SCREEN,L MOVI [255,0],A11 DIVS A8,A11 MOVK 7,A10 #NEXT_LINE2A movk 18,a0 calla triple_sound CREATE0 MOVE_LINE_VERT MOVE A9,A0 CALLA PRCSLP DEC A10 JRNN #NEXT_LINE2A MOVE A8,A0 SUB A9,A0 ADDK 2,A0 CALLA PRCSLP MOVI DUMRETS,A1 MOVE A1,@WHICH_SCREEN,L CLR A1 MOVE A1,@TOP_LEFT,L MOVE A1,@BOT_RIGHT,L ; CALLA pal_clean RETP MOVE_LINE_VERT MOVE A11,A11 JRNN NO_NEED_TO_RESET_NOW MOVE A10,A1 MOVI 50,A3 MPYU A3,A1 MOVE A1,@TOP_LEFT NO_NEED_TO_RESET_NOW MOVE A10,A9 SLL 6,A9 ADDI LINE_1,A9 ADD_NEXT_BIT_TO_LINE MOVE A10,A0 SRL 1,A0 JRNC YOU_STAY_HERE MOVE *A9,A0,L SUB A11,A0 MOVE A0,*A9,L YOU_STAY_HERE MOVE *A9(020H),A0,L ADD A11,A0 MOVE A0,*A9(020H),L SLEEPK 1 DSJS A8,ADD_NEXT_BIT_TO_LINE MOVE A11,A11 JRN WE_OPENING MOVI [100H,0],A0 MOVE A0,*A9(020H),L CLR A0 MOVE A0,*A9,L MOVI 9,A1 SUB A10,A1 MOVI 50,A3 MPYU A3,A1 NEG A1 MOVE A1,@BOT_RIGHT DIE WE_OPENING CLR A0 MOVE A0,*A9(020H),L MOVI [100H,0],A0 MOVE A0,*A9,L DIE LINES_VERT MOVI 01000100H,A5 CLR A8 MOVI [256,50],A9 move @which_pal,a8 MOVI 0d0020000H,A12 CLR A14 MOVI LINE_1,A3,L MOVK 8,A2 DO_NEXT_VERT_LINE CALLR DISPLAY_VERT_LINE DSJS A2,DO_NEXT_VERT_LINE RETS DISPLAY_VERT_LINE MOVE @VERTTRN1+040H,A11,L MOVE A2,A0 SRL 1,A0 JRNC GOT_TOP_BAR MOVE @VERTTRN2+040H,A11,L GOT_TOP_BAR MOVE A14,A10 SRL 16,A10 MOVE *A3+,A0,L ;POSITION MOVY A0,A10 MOVE *A3+,A0,L ;SIZE SRA 16,A0 JRZ NO_DISPLAY_VERT_LINE JRN NO_DISPLAY_VERT_LINE MOVE A0,A1 SLL 16,A0 MOVY A0,A9 MOVE A2,A6 SRL 1,A6 JRC NO_SHIFT_SAG MOVI 256,A6 SUB A1,A6 MOVI 50,A1 MPYU A6,A1 MOVE A1,A6 SLL 2,A1 ADD A6,A1 ADD A1,A11 NO_SHIFT_SAG CALLR dma_it_out NO_DISPLAY_VERT_LINE ADDI [50,0],A14 RETS ;#************************************************************************** ;* * ;* ENTRY A8=SPEED OF ONE LINE, A9=DELAY BETWEEN EACH LINE (IF NEG START A * ;* at the top, otherwise start at the bottom * ;* * ;************************************************************************** OPEN_SCREEN_LINE move @WHAT_SPEED,A8 MOVI HORZTRN1P,A0 CALLA pal_getf move a0,@which_pal MOVI LINE_1+040H,A0 MOVE A0,@LINE_START,L CLR A1 CLR A3 MOVI [400,0],A0 CALLR SET_INITIAL_LINES MOVI [400,0],A11 DIVS A8,A11 NEG A11 MOVE A9,A9 JRN #SET_BOT_RIGHT MOVI [254,0],A10 MOVE A10,@TOP_LEFT,L JRUC DO_LINES #SET_BOT_RIGHT MOVI [254,0],A10 NEG A10 MOVE A10,@BOT_RIGHT,L JRUC DO_LINES ;#************************************************************************** ;* * ;* ENTRY A8=SPEED OF ONE LINE, A9=DELAY BETWEEN EACH LINE * ;* IF DELAY IS NEGATIVE (IE TWOS COMPLEMENT) THEN GO FROM TOP DOWN * ;* * ;************************************************************************** CLOSE_SCREEN_LINE MOVE @GAMSTATE,A14 CMPI INAMODE,A14 JREQ MAKE_IT_FAST calla get_all_buttons_cur2 jrz #reg_spd2 MAKE_IT_FAST srl 1,a8 #reg_spd2 move a8,@WHAT_SPEED MOVI HORZTRN1P,A0 ; MOVE @GAMSTATE,A14 ; CMPI INAMODE,A14 ; JRNE NORMAL_COLOURS ; MOVI DRKTRPLTP,A0 ;NORMAL_COLOURS CALLA pal_getf move a0,@which_pal MOVI LINE_1,A0 MOVE A0,@LINE_START,L CLR A0 CLR A3 MOVI [400,0],A1 CALLR SET_INITIAL_LINES MOVI [400,0],A11 DIVS A8,A11 DO_LINES MOVE A9,@WHICH_WAY MOVE A9,A9 JRNN #BOTTOM_UP NEG A9 ;TOP DOWN MOVK 1,A10 #NEXT_LINE1 MOVE @GAMSTATE,A0 CMPI INAMODE,A0 JREQ NO_SOUNDS movk 18,a0 calla triple_sound NO_SOUNDS CREATE0 MOVE_LINE MOVE A9,A0 JRZ #NO_SLEEP_BETWEEN1 CALLA PRCSLP #NO_SLEEP_BETWEEN1 INC A10 CMPI 7,A10 JRNE #NEXT_LINE1 JRUC EXIT_CLOSE_LINE #BOTTOM_UP MOVK 6,A10 #NEXT_LINE2 MOVE @GAMSTATE,A0 CMPI INAMODE,A0 JREQ NO_SOUNDS2 movk 18,a0 calla triple_sound NO_SOUNDS2 CREATE0 MOVE_LINE MOVE A9,A0 JRZ #NO_SLEEP_BETWEEN2 CALLA PRCSLP #NO_SLEEP_BETWEEN2 DSJS A10,#NEXT_LINE2 EXIT_CLOSE_LINE MOVE A8,A0 SUB A9,A0 ADDK 2,A0 CALLA PRCSLP MOVI DUMRETS,A1 MOVE A1,@WHICH_SCREEN,L CLR A1 MOVE A1,@TOP_LEFT,L MOVE A1,@BOT_RIGHT,L MOVE @LINE_START,A1,L CMPI LINE_1,A1 JREQ NO_CLEAR_OUT_PALS CALLA pal_clean NO_CLEAR_OUT_PALS RETP SET_INITIAL_LINES MOVI LINE_1,A2 MOVE A3,*A2+,L MOVE A0,*A2+,L MOVE A1,*A2+,L MOVE A0,*A2+,L MOVE A3,*A2+,L MOVE A0,*A2+,L MOVE A1,*A2+,L MOVE A0,*A2+,L MOVE A3,*A2+,L MOVE A0,*A2+,L MOVE A1,*A2+,L MOVE A0,*A2+,L MOVE A3,*A2+,L MOVE A0,*A2+,L MOVE A1,*A2+,L MOVE A0,*A2+,L MOVI LINES,A1 MOVE A1,@WHICH_SCREEN,L RETS MOVE_LINE MOVE A11,A11 JRN NO_DEC_A10 DEC A10 JRUC A10_POINTS_AT_START_LINE NO_DEC_A10 MOVI 43,A7 DEC A10 MPYS A10,A7 INC A10 MOVE @WHICH_WAY,A0 JRNN LINES_OPEN_DOWN LINES_OPEN_UP ADDI 43,A7 MOVI 254,A0 SUB A7,A0 SLL 16,A0 NEG A0 MOVE A0,@BOT_RIGHT,L JRUC A10_POINTS_AT_START_LINE LINES_OPEN_DOWN SLL 16,A7 MOVE A7,@TOP_LEFT,L A10_POINTS_AT_START_LINE MOVE A10,A9 SLL 6,A9 ADDI LINE_1,A9 EXPAND_LINE MOVE A10,A0 SRL 1,A0 JRNC NO_MOVE_LINE_X MOVE *A9,A0,L SUB A11,A0 MOVE A0,*A9,L NO_MOVE_LINE_X MOVE *A9(020H),A0,L ADD A11,A0 MOVE A0,*A9(020H),L SLEEPK 1 DSJS A8,EXPAND_LINE MOVE A11,A11 JRNN SET_LINES_SOLID CLR A0 MOVE A0,*A9(020H),L DIE SET_LINES_SOLID CLR A0 MOVE A0,*A9,L MOVI [400,0],A0 MOVE A0,*A9(020H),L MOVI 43,A7 MPYS A10,A7 MOVE @WHICH_WAY,A0 JRN LINES_CLOSE_DOWN LINES_CLOSE_UP MOVI 254,A0 SUB A7,A0 SLL 16,A0 NEG A0 MOVE A0,@BOT_RIGHT,L DIE LINES_CLOSE_DOWN ADDI 43,A7 SLL 16,A7 MOVE A7,@TOP_LEFT,L DIE LINES MOVI 01000100H,A5 CLR A8 move @which_pal,a8 MOVI [43,400],A9 MOVI 0d0020000H,A12 CLR A14 MOVE @LINE_START,A3,L MOVK 6,A2 DO_NEXT_LINE CALLR DISPLAY_LINE DSJS A2,DO_NEXT_LINE RETS DISPLAY_LINE MOVE @HORZTRN1+040H,A11,L MOVE A2,A0 SRL 1,A0 JRNC GOT_RIGHT_BAR MOVE @HORZTRN2+040H,A11,L GOT_RIGHT_BAR MOVE *A3+,A0,L ;POSITION SRL 16,A0 MOVX A0,A10 MOVY A14,A10 MOVE *A3+,A0,L ;SIZE SRA 16,A0 JRZ NO_DISPLAY_LINE JRN NO_DISPLAY_LINE MOVI 400,A1 SUB A0,A1 MOVX A1,A12 MOVE A2,A6 MOVE @LINE_START,A0,L CMPI LINE_1,A0 JREQ WHICH_SIDE_CLIP DEC A6 WHICH_SIDE_CLIP SRL 1,A6 JRC NO_SHIFT_CLIP MOVE A1,A6 SLL 2,A1 ADD A1,A6 ADD A6,A11 NO_SHIFT_CLIP CALLR dma_it_out NO_DISPLAY_LINE ADDI [43,0],A14 RETS RESETUP_LINES MOVI LINES,A0 MOVE A0,@WHICH_SCREEN,L MOVI HORZTRN1P,A0 CALLA pal_getf move a0,@which_pal rets SUBR DRKTRPLTP .word 31 .word 00000h,00407h,00407h,00808h,00809h,00c09h,00809h,0100ah .word 0100ah,01009h,0100bh,00808h,00408h,00007h,00408h,01c0bh .word 0140ah,01409h,0180ah,01809h,01c0ah,0180ah,00c08h,00006h .word 0140dh,02410h,00004h,00003h,00001h,0344dh,05ef7h ****************************************************************************** .end