home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 490a.lha / GAMEBOY_Emulator / TETRIS.Z80 < prev   
Text File  |  1991-04-05  |  11KB  |  915 lines

  1.     org    0
  2.  
  3. ; modifications for z80 argasm:
  4. ;
  5. ; even command
  6. ; dw's
  7. ; out (n),a
  8. ; cnops
  9.  
  10. SIZE_Y    equ    18
  11. SIZE_X    equ    20
  12.  
  13.  
  14.     ld    a,char_set/256
  15.     ld    (60003),a
  16.     ld    a,char_set&255
  17.     ld    (60002),a
  18.     ld    a,char_map/256
  19.     ld    (60001),a
  20.     ld    a,char_map&255
  21.     ld    (60000),a
  22.  
  23.     ld    hl,char_map
  24.     xor    a
  25.     ld    bc,SIZE_Y*SIZE_X
  26. loop
  27.     ld    (hl),0    ; clear the screen
  28.     inc    hl
  29.     dec    bc
  30.     ld    a,b
  31.     or    c
  32.     jr    nz,loop
  33.  
  34.     ld    hl,char_map
  35.     call    draw_wall
  36.     ld    hl,char_map+11
  37.     call    draw_wall
  38.  
  39.     call    random
  40.     and    3
  41.     ld    (next_shape),a
  42.  
  43.     ld    a,35
  44.     ld    (tetris_speed),a
  45.     ld    b,7
  46. rep_loop
  47.     xor    a
  48.     ld    (char),a
  49.     ld    a,15
  50.     ld    (shape_x),a
  51.     ld    a,14
  52.     ld    (shape_y),a
  53.     
  54.     call    draw_nextshape
  55.     ld    a,(next_shape)
  56.     ld    (new_shape),a
  57.     ld    (current_shape),a
  58. get_another
  59.     call    random
  60.     and    7
  61.     jr    z,get_another
  62.     dec    a
  63.     ld    (next_shape),a
  64.     ld    a,2
  65.     ld    (char),a
  66.     call    draw_nextshape
  67.  
  68.     ld    a,5
  69.     ld    (shape_x),a
  70.     ld    (newshape_x),a
  71.     ld    a,1
  72.     ld    (shape_y),a
  73.     ld    (newshape_y),a
  74.     call    display_score
  75.  
  76. main_loop
  77.     halt
  78.     ld    a,(speed_count)
  79.     and    3
  80.     jp    nz,no_moving
  81.     ld    a,(newshape_x)
  82.     ld    c,a
  83.     ld    a,(60004)
  84.     and    3
  85.     jr    nz,xmove_it
  86.     xor    a
  87.     ld    (lastmove),a
  88.     jr    no_xmove
  89. xmove_it
  90.     ld    b,a
  91.     ld    a,(lastmove)
  92.     cp    b
  93.     jr    nz,move_active
  94.     ld    a,(move_count)
  95.     inc    a
  96.     and    7
  97.     jr    nz,xwait
  98.     call    inc_seed
  99.     bit    0,b
  100.     jr    z,noqleft
  101.     dec    c
  102.     jr    x_fin
  103. noqleft    inc    c
  104.     jr    x_fin
  105. xwait
  106.     ld    (move_count),a
  107.     jr    nz,no_xmove
  108.     bit    0,b
  109.     jr    z,norepleft
  110.     dec    c
  111.     jr    x_fin
  112. norepleft    inc    c
  113.     jr    x_fin
  114. move_active    ld    a,b
  115.     ld    (lastmove),a
  116.     xor    a
  117.     ld    (move_count),a
  118.     bit    0,b
  119.     jr    z,noleft
  120.     dec    c
  121.     jr    x_fin
  122. noleft    inc    c
  123. x_fin
  124.     ld    a,c
  125.     ld    (newshape_x),a
  126.  
  127.     call    check_shape
  128.     jr    nc,no_xmove
  129.     ld    a,(shape_x)
  130.     ld    (newshape_x),a
  131. no_xmove
  132.     ld    a,(lastfire)
  133.     or    a
  134.     jr    z,fire_con
  135.     xor    a
  136.     ld    (lastfire),a
  137.     jp    no_fire
  138. fire_con
  139.     ld    a,(60004)
  140.     bit    4,a
  141.     jr    z,no_fire
  142.     ld    a,1
  143.     ld    (lastfire),a
  144.     ld    a,(new_rot)
  145.     inc    a
  146.     and    3
  147.     ld    (new_rot),a
  148.     call    check_shape
  149.     jr    nc,no_fire
  150.     ld    a,(rotation)
  151.     ld    (new_rot),a
  152.  
  153. no_fire
  154.  
  155. no_moving:
  156.     call    update_shape
  157.  
  158.     ld    a,(60004)
  159.     ld    c,a
  160.     ld    a,(tetris_speed)
  161.     ld    b,a
  162.     bit    3,c
  163.     jr    z,no_down
  164. ;*!
  165.     ld    b,3
  166. no_down
  167.     ld    hl,speed_count
  168.     inc    (hl)
  169.     ld    a,(hl)
  170.     cp    b
  171.     jp    c,main_loop
  172.  
  173.     ld    (hl),0
  174.     ld    a,(newshape_y)
  175.     inc    a
  176.     ld    (newshape_y),a
  177.     call    check_shape
  178.     jp    nc,main_loop
  179.  
  180. le_fin
  181.     ld    a,(shape_y)
  182.     cp    2
  183.     jr    c,dead_meat
  184.     ld    a,3
  185.     ld    (char),a
  186.     call    draw_shape
  187.     call    scan_rows
  188.     jr    z,none_completed
  189.     push    hl
  190.     call    flash_rows
  191.     call    remove_rows
  192.     pop    hl
  193.     ld    a,l
  194.     add    a,a
  195.     ld    l,a
  196.     add    a,a
  197.     add    a,a
  198.     add    a,l
  199.     ld    c,a
  200.     ld    b,0
  201.     call    add_score
  202.     ld    a,(tetris_speed)
  203.     dec    a
  204.     jr    z,none_completed
  205.     ld    (tetris_speed),a
  206. none_completed
  207.     jp    rep_loop
  208. dead_meat
  209.     ld    hl,char_map+SIZE_X*SIZE_Y-1
  210.     ld    c,SIZE_Y
  211. splaty    halt
  212.     ld    b,SIZE_X
  213. splatx
  214.     ld    (hl),1
  215.     dec    hl
  216.     djnz    splatx
  217.     dec    c
  218.     jr    nz,splaty
  219.     
  220.  
  221.     db    0d3h    ; stop program
  222.  
  223.  
  224.  
  225. display_score
  226.     ld    hl,score
  227.     ld    de,char_map+13+4*SIZE_X
  228.     ld    b,5
  229. copy_byte    ld    a,(hl)
  230.     ld    (de),a
  231.     inc    hl
  232.     inc    de
  233.     djnz    copy_byte
  234.     ret
  235.  
  236. random
  237. inc_seed    push    hl
  238.     push    bc
  239.     ld    hl,(seed1)
  240.     ld    bc,(seed2)
  241.     ld    a,l
  242.     rla
  243.     rl    h
  244.     rla
  245.     rl    h
  246.     rla
  247.     rl    h
  248.     sub    a,7
  249.     xor    c
  250.     ld    l,a
  251.     ld    (seed2),a
  252.     ld    a,h
  253.     ld    (seed2+1),a
  254.     ld    a,c
  255.     ld    (seed1),a
  256.     ld    a,b
  257.     ld    (seed1+1),a
  258.     ld    a,l
  259.     pop    bc
  260.     pop    hl
  261.     ret
  262.  
  263. draw_wall
  264.     ld    de,SIZE_X
  265.     ld    b,SIZE_Y
  266.     ld    a,4
  267. next_part
  268.     ld    (hl),a
  269.     add    hl,de
  270.     djnz    next_part
  271.  
  272.     ret
  273.  
  274.  
  275. scan_rows:
  276.     ld    de,rowstoremove+3
  277.     xor    a
  278.     ld    (de),a
  279.     dec    de
  280.     ld    (de),a
  281.     dec    de
  282.     ld    (de),a
  283.     dec    de
  284.     ld    (de),a
  285.     push    de
  286.  
  287.     ld    c,a
  288.     ld    hl,char_map+1
  289.     ld    b,SIZE_Y
  290. do_nextrow
  291.     push    bc
  292.     push    hl
  293.     ld    b,10
  294.     xor    a
  295. chk_nextbyte
  296.     cp    (hl)
  297.     jr    z,chk_nextrow
  298.     inc    hl
  299.     djnz    chk_nextbyte
  300. ; now remove the row
  301.     ld    a,c
  302.     ld    (de),a
  303.     inc    de
  304.  
  305. chk_nextrow
  306.     pop    hl
  307.     ld    bc,SIZE_X
  308.     add    hl,bc
  309.     pop    bc
  310.     inc    c
  311.     djnz    do_nextrow
  312.     pop    hl
  313.     xor    a
  314.     ex    de,hl
  315.     sbc    hl,de
  316.     ret
  317.  
  318. remove_rows
  319.     ld    hl,rowstoremove
  320.     ld    b,4
  321. remove_next
  322.     ld    a,(hl)
  323.     call    remove_a_row
  324.     inc    hl
  325.     djnz    remove_next
  326.     ret
  327.  
  328. remove_a_row
  329. ; a = number of row to remove
  330.     push    bc
  331.     push    hl
  332.     or    a
  333.     jr    z,row_0
  334.     add    a,a
  335.     add    a,a
  336.     ld    c,a
  337.     ld    l,a
  338.     ld    h,0
  339.     ld    b,h
  340.     add    hl,hl
  341.     add    hl,hl
  342.     add    hl,bc
  343.     ld    de,char_map-SIZE_X+10
  344.     add    hl,de
  345.     ld    e,l
  346.     ld    d,h
  347.     ld    bc,SIZE_X
  348.     add    hl,bc
  349.  
  350.     srl    a
  351.     srl    a
  352.     ld    c,a
  353. next_row
  354.     ld    b,10
  355. next_column
  356.     ld    a,(de)
  357.     ld    (hl),a
  358.     dec    hl
  359.     dec    de
  360.     djnz    next_column
  361.     ld    a,e
  362.     sub    a,SIZE_X-10
  363.     ld    e,a
  364.     ld    a,d
  365.     sbc    a,0
  366.     ld    d,a
  367.     ld    a,l
  368.     sub    a,SIZE_X-10
  369.     ld    l,a
  370.     ld    a,h
  371.     sbc    a,0
  372.     ld    h,a
  373.     dec    c
  374.     jr    nz,next_row
  375.  
  376.     xor    a    ; clear top row
  377. row_0
  378.     call    clear_row
  379.     pop    hl
  380.     pop    bc
  381.     ret
  382.  
  383. flash_rows
  384. ; this routine flashes any full lines (if any exist)
  385.  
  386.     ld    hl,rowstoremove
  387.     ld    de,temp_store
  388.     ld    a,(hl)
  389.     inc    hl
  390.     call    store_row
  391.     ld    a,(hl)
  392.     inc    hl
  393.     call    store_row
  394.     ld    a,(hl)
  395.     inc    hl
  396.     call    store_row
  397.     ld    a,(hl)
  398.     inc    hl
  399.     call    store_row
  400.  
  401.     ld    c,3
  402.  
  403. next_flash
  404.     ld    b,8
  405. pause1
  406.     halt
  407.     djnz    pause1
  408.     ld    hl,rowstoremove
  409.     ld    a,(hl)
  410.     inc    hl
  411.     call    clear_row
  412.     ld    a,(hl)
  413.     inc    hl
  414.     call    clear_row
  415.     ld    a,(hl)
  416.     inc    hl
  417.     call    clear_row
  418.     ld    a,(hl)
  419.     inc    hl
  420.     call    clear_row
  421.  
  422.     ld    b,8
  423. pause2
  424.     halt
  425.     djnz    pause2
  426.     ld    hl,rowstoremove
  427.     ld    de,temp_store
  428.     ld    a,(hl)
  429.     inc    hl
  430.     call    restore_row
  431.     ld    a,(hl)
  432.     inc    hl
  433.     call    restore_row
  434.     ld    a,(hl)
  435.     inc    hl
  436.     call    restore_row
  437.     ld    a,(hl)
  438.     inc    hl
  439.     call    restore_row
  440.  
  441.     dec    c
  442.     jr    nz,next_flash    
  443.     
  444.     
  445.  
  446. fr_exit    ret
  447.  
  448.  
  449. store_row
  450.     push    hl
  451.     push    bc
  452.     add    a,a
  453.     add    a,a
  454.     ld    c,a
  455.     ld    l,a
  456.     ld    h,0
  457.     ld    b,h
  458.     add    hl,hl
  459.     add    hl,hl
  460.     add    hl,bc
  461.     ld    bc,char_map+1
  462.     add    hl,bc
  463.     ld    b,10
  464. next_copy
  465.     ld    a,(hl)
  466.     ld    (de),a
  467.     inc    hl
  468.     inc    de
  469.     djnz    next_copy
  470.     pop    bc
  471.     pop    hl
  472.     ret
  473.  
  474. restore_row
  475.     push    hl
  476.     push    bc
  477.     add    a,a
  478.     add    a,a
  479.     ld    c,a
  480.     ld    l,a
  481.     ld    h,0
  482.     ld    b,h
  483.     add    hl,hl
  484.     add    hl,hl
  485.     add    hl,bc
  486.     ld    bc,char_map+1
  487.     add    hl,bc
  488.     ld    b,10
  489. next_copy2
  490.     ld    a,(de)
  491.     ld    (hl),a
  492.     inc    hl
  493.     inc    de
  494.     djnz    next_copy2
  495.     pop    bc
  496.     pop    hl
  497.     ret
  498.  
  499.  
  500. clear_row
  501.     push    hl
  502.     push    bc
  503.     add    a,a
  504.     add    a,a
  505.     ld    c,a
  506.     ld    l,a
  507.     ld    h,0
  508.     ld    b,h
  509.     add    hl,hl
  510.     add    hl,hl
  511.     add    hl,bc
  512.     ld    bc,char_map+1
  513.     add    hl,bc
  514.     ld    b,10
  515.     xor    a
  516. next_clear
  517.     ld    (hl),a
  518.     inc    hl
  519.     djnz    next_clear
  520.     pop    bc
  521.     pop    hl
  522.     ret
  523.  
  524.  
  525.  
  526. check_shape
  527.     ld    a,(new_rot)
  528.     ld    b,a
  529.     ld    a,(new_shape)
  530.     call    calc_addr
  531.     ld    b,4    ; 4 blocks
  532.  
  533. ; hl now points to the shape offsets
  534. check_it
  535.     ld    de,(newshape_x)
  536.     ld    a,(hl)
  537.     add    a,e
  538.     cp    SIZE_X
  539.     jr    nc,check_error    ; off limits
  540.     ld    e,a
  541.     inc    hl
  542.     ld    a,(hl)
  543.     add    a,d
  544.     cp    SIZE_Y
  545.     jr    nc,check_error
  546.     ld    d,a
  547.     inc    hl
  548.  
  549.     push    hl
  550.     push    bc
  551.     ld    a,d
  552.     add    a,a
  553.     add    a,a
  554.     ld    c,a
  555.     ld    l,a
  556.     ld    h,0
  557.     ld    b,h
  558.     add    hl,hl
  559.     add    hl,hl
  560.     add    hl,bc
  561.     ld    a,l
  562.     add    a,e
  563.     ld    l,a
  564.     ld    a,h
  565.     adc    a,0
  566.     ld    h,a
  567.  
  568.     ld    de,char_map
  569.     add    hl,de
  570.  
  571.     ld    a,(hl)
  572.     pop    bc
  573.     pop    hl
  574.     cp    2
  575.     jr    z,no_check
  576.     or    a    ; overwriting something
  577.     jr    nz,check_error
  578. no_check
  579.  
  580.     djnz    check_it
  581.     xor    a
  582.     ret
  583. check_error    scf
  584.     ret
  585.  
  586. calc_addr
  587.     add    a,a
  588.     add    a,a
  589.     add    a,a
  590.     add    a,a
  591.     add    a,a
  592.     ld    e,a
  593.     ld    d,0
  594.     ld    hl,shapes
  595.     add    hl,de
  596.     ld    a,b
  597.     add    a,a
  598.     add    a,a
  599.     add    a,a
  600.     add    a,l
  601.     ld    l,a
  602.     ld    a,h
  603.     adc    a,0
  604.     ld    h,a
  605.     ret
  606.  
  607. draw_nextshape
  608.     xor    a
  609.     ld    b,a
  610.     ld    a,(next_shape)
  611.     jp    drawnext
  612.  
  613. draw_shape
  614.     ld    a,(rotation)
  615.     ld    b,a
  616.     ld    a,(current_shape)
  617. drawnext
  618.     call    calc_addr
  619.     ld    b,4    ; 4 blocks
  620.  
  621. ; hl now points to the shape offsets
  622. loop_it
  623.     ld    de,(shape_x)
  624.     ld    a,(hl)
  625.     add    a,e
  626.     ld    e,a
  627.     inc    hl
  628.     ld    a,(hl)
  629.     add    a,d
  630.     ld    d,a
  631.     inc    hl
  632.  
  633.     call    draw_square
  634.  
  635.     djnz    loop_it
  636.     ret
  637.  
  638.  
  639.  
  640.  
  641. draw_square
  642. ; de = y,x
  643.     push    bc
  644.     push    hl
  645.     ld    a,d
  646.     add    a,a
  647.     add    a,a
  648.     ld    c,a
  649.     ld    l,a
  650.     ld    h,0
  651.     ld    b,h
  652.     add    hl,hl
  653.     add    hl,hl
  654.     add    hl,bc
  655.  
  656.     ld    bc,char_map
  657.     add    hl,bc
  658.     ld    a,e
  659.     add    a,l
  660.     ld    l,a
  661.     ld    a,h
  662.     adc    a,0
  663.     ld    h,a
  664.  
  665.     ld    a,(char)
  666.     ld    (hl),a
  667.     pop    hl
  668.     pop    bc
  669.  
  670.     ret
  671.  
  672.  
  673. update_shape
  674.     xor    a
  675.     ld    (char),a
  676.     ld    hl,(newshape_x)
  677.     ld    de,(shape_x)
  678.     sbc    hl,de
  679.     jr    nz,has_changed
  680.  
  681.     ld    a,(new_rot)
  682.     ld    b,a
  683.     ld    a,(rotation)
  684.     cp    b
  685.     ret    z
  686. has_changed
  687.     call    draw_shape    ; delete old shape
  688.     ld    a,(newshape_x)
  689.     ld    (shape_x),a
  690.     ld    a,(newshape_y)
  691.     ld    (shape_y),a
  692.     ld    a,(new_shape)
  693.     ld    (current_shape),a
  694.     ld    a,(new_rot)
  695.     ld    (rotation),a
  696.     ld    a,2
  697.     ld    (char),a
  698.     call    draw_shape
  699.     ret
  700.  
  701. inc_score    ld    hl,score+4
  702. inc_next
  703.     inc    (hl)
  704.     ld    a,(hl)
  705.     cp    5+10
  706.     ret    c
  707.     ld    (hl),5
  708.     dec    hl
  709.     jp    inc_next
  710.  
  711. add_score
  712.     call    inc_score    ; look at this for crap code
  713.     dec    bc        ; who gives a shit though?
  714.     ld    a,b
  715.     or    c
  716.     jp    nz,add_score
  717.     ret
  718.  
  719.  
  720. temp_store    db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  721.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  722.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  723.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  724. rowstoremove    db    0,0,0,0,0
  725. move_count    db    0
  726. lastmove    db    0
  727. lastfire    db    0
  728. shape_x    db    0
  729. shape_y    db    0
  730. current_shape    db    0
  731. rotation    db    0
  732. char    db    0
  733. next_shape    db    0
  734.  
  735. newshape_x    db    0
  736. newshape_y    db    0
  737. new_shape    db    0
  738. new_rot    db    0
  739.  
  740. tetris_speed    db    0
  741. speed_count    db    0
  742. seed1    dw    0
  743. seed2    dw    0
  744.  
  745. score    db    5,5,5,5,5
  746.  
  747. shapes
  748. shape1    
  749. ; long
  750.     db    -1,0,0,0,1,0,2,0
  751.     db    0,-1,0,0,0,1,0,2
  752.     db    1,0,0,0,-1,0,-2,0
  753.     db    0,1,0,0,0,-1,0,-2
  754.  
  755. shape2    
  756. ; square
  757.     db    0,0,0,1,1,1,1,0
  758.     db    0,0,0,1,1,1,1,0
  759.     db    0,0,0,1,1,1,1,0
  760.     db    0,0,0,1,1,1,1,0
  761. shape3    
  762. ; s-shape 1
  763.     db    -1,1,0,1,0,0,1,0
  764.     db    -1,-1,-1,0,0,0,0,1
  765.     db    -1,1,0,1,0,0,1,0
  766.     db    -1,-1,-1,0,0,0,0,1
  767. shape4    
  768. ; s-shape 2
  769.     db    -1,-1,0,-1,0,0,1,0
  770.     db    1,-1,1,0,0,0,0,1
  771.     db    -1,-1,0,-1,0,0,1,0
  772.     db    1,-1,1,0,0,0,0,1
  773. shape5    
  774. ; l-shape 1
  775.     db    0,-1,0,0,0,1,1,1
  776.     db    -1,1,-1,0,0,0,1,0
  777.     db    -1,-1,0,-1,0,0,0,1
  778.     db    -1,0,0,0,1,0,1,-1
  779. shape6    
  780. ; l-shape 2
  781.     db    -1,0,0,0,1,0,1,1
  782.     db    0,-1,0,0,0,1,-1,1
  783.     db    -1,-1,-1,0,0,0,1,0
  784.     db    1,-1,0,-1,0,0,0,1
  785. shape7    
  786. ; t-shape
  787.     db    -1,0,0,0,1,0,0,1
  788.     db    0,-1,0,0,0,1,-1,0
  789.     db    -1,0,0,0,1,0,0,-1
  790.     db    0,-1,0,0,0,1,1,0
  791.  
  792.  
  793.     even
  794.  
  795. char_map    db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  796.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  797.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  798.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  799.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  800.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  801.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  802.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  803.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  804.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  805.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  806.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  807.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  808.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  809.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  810.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  811.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  812.     db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  813.  
  814.     even
  815. char_set    db    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  816.     db    170,0,85,0,170,0,85,0
  817.     db    170,0,85,0,170,0,85,0
  818.     db    255,0,129,36,129,126,129,36
  819.     db    129,36,129,126,129,36,255,0
  820.     db    255,0,129,36,129,126,129,36
  821.     db    129,36,129,126,129,36,255,0
  822.     db    255,255,16,255,16,255,16,255
  823.     db    255,255,66,255,66,255,66,255
  824.  
  825.     db    %00000000,0
  826.     db    %01111100,0
  827.     db    %11001110,0
  828.     db    %11011110,0
  829.     db    %11110110,0
  830.     db    %11100110,0
  831.     db    %11000110,0
  832.     db    %01111100,0
  833.  
  834.     db    %00000000,0
  835.     db    %00110000,0
  836.     db    %01110000,0
  837.     db    %11110000,0
  838.     db    %00110000,0
  839.     db    %00110000,0
  840.     db    %00110000,0
  841.     db    %11111100,0
  842.  
  843.     db    %00000000,0
  844.     db    %01111000,0
  845.     db    %11000110,0
  846.     db    %00001100,0
  847.     db    %00011000,0
  848.     db    %01100000,0
  849.     db    %11000000,0
  850.     db    %11111110,0
  851.  
  852.     db    %00000000,0
  853.     db    %11111110,0
  854.     db    %00001100,0
  855.     db    %00011000,0
  856.     db    %00000110,0
  857.     db    %00000110,0
  858.     db    %11000110,0
  859.     db    %01111100,0
  860.  
  861.     db    %00000000,0
  862.     db    %00001100,0
  863.     db    %00011100,0
  864.     db    %00111100,0
  865.     db    %01101100,0
  866.     db    %11001100,0
  867.     db    %11111110,0
  868.     db    %00001100,0
  869.  
  870.     db    %00000000,0
  871.     db    %11111110,0
  872.     db    %11000000,0
  873.     db    %11111100,0
  874.     db    %00000110,0
  875.     db    %00000110,0
  876.     db    %11000110,0
  877.     db    %01111100,0
  878.  
  879.     db    %00000000,0
  880.     db    %01110000,0
  881.     db    %11000000,0
  882.     db    %11111100,0
  883.     db    %11000110,0
  884.     db    %11000110,0
  885.     db    %11000110,0
  886.     db    %01111100,0
  887.  
  888.     db    %00000000,0
  889.     db    %11111110,0
  890.     db    %00000110,0
  891.     db    %00001100,0
  892.     db    %00011000,0
  893.     db    %00011000,0
  894.     db    %00011000,0
  895.     db    %00011000,0
  896.  
  897.     db    %00000000,0
  898.     db    %01111100,0
  899.     db    %11000110,0
  900.     db    %01111100,0
  901.     db    %11000110,0
  902.     db    %11000110,0
  903.     db    %11000110,0
  904.     db    %01111100,0
  905.  
  906.     db    %00000000,0
  907.     db    %01111110,0
  908.     db    %11000110,0
  909.     db    %11000110,0
  910.     db    %00111110,0
  911.     db    %00000110,0
  912.     db    %00000110,0
  913.     db    %00000110,0
  914.  
  915.