home *** CD-ROM | disk | FTP | other *** search
/ ticalc.org / ticalc_org_rev_b.iso / archives / 83 / asm / source / sos / spacewar.asm < prev    next >
Encoding:
Assembly Source File  |  2001-07-01  |  12.5 KB  |  836 lines

  1. ; /      \      /
  2. ; \ pace  \    / ar
  3. ; /        \/\/     v1.0
  4. ;  by Joe Wingbermuehle
  5.  
  6.     .nolist
  7.     #include    "joeti83.inc"
  8.     #include    "sos.inc"
  9.     ; some custom comments
  10.     #define    sprite    vector0
  11.     #define    rand    vector1
  12.     .org        $9327
  13.     .list
  14.  
  15. #define    max_aliens    15
  16.  
  17. ;---------= Variables =---------
  18. #define    storage        sram    ; max storage=768 bytes
  19. alien_num    =storage    ; number of aliens on field
  20. shipy        =storage+1    ; ship y
  21. shipx        =storage+2    ; ship x
  22. bullety        =storage+3    ; bullet y
  23. bulletx        =storage+4    ; bullet x
  24. bullet_active    =storage+5    ; is bullet active?
  25. bullet_dir    =storage+6    ; bullet direction
  26. active_ship    =storage+7    ; ship direction (specifies sprite)
  27. alien_timer    =storage+8    ; so alien doesn't move too fast
  28. dead        =storage+9    ; 1 if dead, 0 if alive
  29. bomb_map    =storage+10    ; count, x,y  3*10=30 bytes
  30. alien_map    =storage+40    ; type, phase, x, y, movx, movy, count
  31.                 ; 7*max_aliens bytes
  32. level        =storage+145    ; current level 0-15
  33. main_timer    =storage+146    ; move bullets twice before updating
  34. score        =storage+147    ; 2 bytes
  35.  
  36. ;---------= Beginning of Code =---------
  37.     ccf    ; SOS program
  38.     jr    z,start_of_program    ; not detectable until INSTALL is run
  39.     .dw    sos_libraries-$9327
  40.     .dw    sos_description
  41. start_of_program:
  42.     ld    hl,2*256+2
  43.     ld    (currow),hl
  44.     ld    hl,title
  45.     call    putps
  46.     ld    hl,5*256+3
  47.     ld    (currow),hl
  48.     ld    hl,about1
  49.     call    puts
  50.     ld    de,2*256+4
  51.     ld    (currow),de
  52.     call    puts
  53.     ld    de,7
  54.     ld    (currow),de
  55.     call    puts
  56.     ld    hl,(high_score)
  57.     call    disphl
  58.     call    wait_key
  59.     xor    a
  60.     ld    (level),a
  61.     sbc    hl,hl
  62.     ld    (score),hl
  63. new_level:
  64.     ld    hl,level
  65.     inc    (hl)
  66.     call    clrgbuf
  67.     ld    a,1
  68.     ld    (active_ship),a
  69.     ld    hl,40*256+30
  70.     ld    (shipy),hl
  71.     call    draw_my_ship
  72. ;-----> Clear out some variables
  73.     xor    a
  74.     ld    (bullet_active),a
  75.     ld    (main_timer),a
  76.     ld    (alien_timer),a
  77.     ld    (dead),a
  78.     ld    hl,bomb_map
  79.     ld    b,(3*10)+(max_aliens*7)
  80. clear_vars:
  81.     ld    (hl),a
  82.     inc    hl
  83.     djnz    clear_vars
  84.     ld    a,r
  85.     ld    (data),a
  86.     ld    a,(level)
  87.     ld    (alien_num),a
  88. ;-----> Start up aliens
  89.     ld    b,a
  90.     ld    hl,alien_map
  91. spawn_loop:
  92.     push    bc
  93.     ld    b,3
  94.     call    rand
  95.     inc    a
  96.     ld    (hl),a    ; type
  97.     push    af
  98.     inc    hl
  99.     ld    (hl),0    ; phase
  100.     ld    d,h
  101.     ld    e,l
  102.     inc    hl
  103.     ld    (hl),85    ; x
  104.     inc    hl
  105.     ld    b,54
  106.     call    rand
  107.     inc    a
  108.     ld    (hl),a    ; y
  109.     inc    hl
  110.     ld    b,3
  111.     call    rand
  112.     dec    a
  113.     ld    (hl),a    ; movx
  114.     inc    hl
  115.     ld    b,3
  116.     call    rand
  117.     dec    a
  118.     ld    (hl),a    ; movy
  119.     inc    hl
  120.     ld    b,20
  121.     call    rand
  122.     inc    a
  123.     ld    (hl),a    ; count
  124.     pop    af
  125.     ld    b,0
  126.     push    hl
  127.     call    draw_alien_ship
  128.     pop    hl
  129.     inc    hl
  130.     pop    bc
  131.     djnz    spawn_loop
  132.  
  133. ;---------= Main Loop =---------
  134. main:    call    move_bullet
  135.     ld    a,(main_timer)
  136.     xor    %00000001
  137.     ld    (main_timer),a
  138.     jr    z,main
  139.     call    move_aliens
  140.     call    update_bombs
  141.     call    collision_chk
  142.     ld    a,(alien_num)
  143.     or    a
  144.     jp    z,winner
  145.     ld    a,(dead)
  146.     or    a
  147.     jr    nz,exit
  148.     call    bufcopy
  149.     ld    a,$FF
  150.     out    (1),a
  151.     ld    a,$FE
  152.     out    (1),a
  153.     in    a,(1)
  154.     cp    247
  155.     jp    z,mup
  156.     cp    251
  157.     jp    z,mright
  158.     sub    253
  159.     jp    z,mleft
  160.     dec    a
  161.     jp    z,mdown
  162.     ld    a,$BF
  163.     out    (1),a
  164.     in    a,(1)
  165.     cp    191
  166.     jp    z,pause
  167.     cp    223
  168.     jp    z,fire_missle
  169.     cp    127
  170.     jr    nz,main
  171. exit:    call    clrscr
  172.     ld    hl,4*256+2
  173.     ld    (currow),hl
  174.     ld    hl,lost_text
  175. quit:    call    puts
  176.     ld    hl,2*256+4
  177.     ld    (currow),hl
  178.     ld    hl,level_text
  179.     call    puts
  180.     ld    hl,(level)
  181.     ld    h,0
  182.     call    disphl
  183.     ld    hl,2*256+5
  184.     ld    (currow),hl
  185.     ld    hl,score_text
  186.     call    puts
  187.     ld    hl,(score)
  188.     push    hl
  189.     call    disphl
  190.     pop    hl
  191.     ld    de,(high_score)
  192.     call    vector2
  193.     ld    (high_score),hl
  194.     jr    nz,not_nhs
  195.     ld    hl,1*256+7
  196.     ld    (currow),hl
  197.     ld    hl,nhs_text
  198.     call    puts
  199. not_nhs:
  200.     jp    wait_key
  201.  
  202. ;---------= Beat level or game =---------
  203. winner:    ld    a,(level)
  204.     cp    15
  205.     jp    nz,new_level
  206.     call    clrscr
  207.     ld    hl,4*256+2
  208.     ld    (currow),hl
  209.     ld    hl,win_text
  210.     jr    quit
  211.  
  212. ;---------= Move Left =---------
  213. mleft:    call    draw_my_ship
  214.     ld    a,2
  215.     ld    (active_ship),a
  216.     ld    hl,shipx
  217.     ld    a,(hl)
  218.     dec    a
  219.     jr    nz,end_move
  220.     ld    a,89
  221.     jr    end_move
  222.  
  223. ;---------= Move Right =---------
  224. mright:    call    draw_my_ship
  225.     ld    a,1
  226.     ld    (active_ship),a
  227.     ld    hl,shipx
  228.     ld    a,(hl)
  229.     inc    a
  230.     cp    90
  231.     jr    nz,end_move
  232.     ld    a,1
  233.     jr    end_move
  234.  
  235. ;---------= Move Up =---------
  236. mup:    call    draw_my_ship
  237.     ld    a,3
  238.     ld    (active_ship),a
  239.     ld    hl,shipy
  240.     ld    a,(hl)
  241.     dec    a
  242.     jr    nz,end_move
  243.     ld    a,58
  244.     jr    end_move
  245.  
  246. ;---------= Move Down =---------
  247. mdown:    call    draw_my_ship
  248.     ld    a,4
  249.     ld    (active_ship),a
  250.     ld    hl,shipy
  251.     ld    a,(hl)
  252.     inc    a
  253.     cp    59
  254.     jr    nz,end_move
  255.     ld    a,1
  256. end_move:
  257.     ld    (hl),a
  258.     call    draw_my_ship
  259.     jp    main
  260.  
  261. ;---------= Fire a missle =---------
  262. fire_missle:
  263.     ld    a,(bullet_active)
  264.     or    a
  265.     jr    nz,fire_exit
  266.     ld    a,(active_ship)
  267.     ld    (bullet_dir),a
  268.     ld    hl,(shipy)
  269.     inc    h
  270.     inc    l
  271.     ld    (bullety),hl
  272.     ld    a,1
  273.     ld    (bullet_active),a
  274.     call    draw_bullet
  275. fire_exit:
  276.     jp    main
  277.  
  278. ;---------= Pause =---------
  279. pause:
  280. ;    call    getkey
  281. ;    call    getkey        ; for screen shot
  282.  
  283.     set    3,(iy+5)
  284.     ld    hl,3*256+2
  285.     ld    (currow),hl
  286.     ld    hl,paused_text
  287.     call    puts
  288.     ld    de,3*256+3
  289.     ld    (currow),de
  290.     call    puts
  291.     ld    hl,(level)
  292.     ld    h,0
  293.     call    disphl
  294.     ld    hl,3*256+4
  295.     ld    (currow),hl
  296.     ld    hl,score_text
  297.     call    puts
  298.     ld    hl,(score)
  299.     call    disphl
  300.     res    3,(iy+5)
  301.     call    wait_key
  302.     jp    main
  303.  
  304. ;---------= Draw my ship =---------
  305. draw_my_ship:
  306.     ld    ix,my_ships-5
  307.     ld    de,$0005
  308.     ld    bc,(active_ship-1)
  309. draw_my_ship_lp:
  310.     add    ix,de
  311.     djnz    draw_my_ship_lp
  312.     ld    hl,(shipy)
  313.     ld    a,h
  314.     ld    b,e
  315.     jp    sprite
  316.  
  317. ;---------= Update Bombs =---------
  318. update_bombs:
  319.     ld    b,10
  320.     ld    hl,bomb_map
  321. bomb_loop:
  322.     push    bc
  323.     push    hl
  324.     ld    a,(hl)
  325.     or    a
  326.     jr    z,bomb_not_active
  327.     dec    a
  328.     ld    (hl),a
  329.     ld    c,0
  330.     ld    ix,bomb
  331.     cp    21
  332.     jr    nz,bomb_skip0
  333.     inc    c
  334. bomb_skip0:
  335.     cp    11
  336.     jr    z,bomb_is1
  337.     cp    20
  338.     jr    nz,bomb_skip1
  339. bomb_is1:
  340.     ld    ix,bomb2
  341.     inc    c
  342. bomb_skip1:
  343.     cp    10
  344.     jr    z,bomb_is3
  345.     or    a
  346.     jr    nz,bomb_skip3
  347. bomb_is3:
  348.     ld    ix,bomb3
  349.     inc    c
  350. bomb_skip3:
  351.     inc    hl
  352.     inc    hl
  353.     ex    de,hl
  354.     ld    a,(de)
  355.     ld    l,a
  356.     dec    de
  357.     ld    a,(de)
  358.     ld    b,8
  359.     dec    c
  360.     call    z,sprite
  361. bomb_not_active:
  362.     pop    hl
  363.     inc    hl
  364.     inc    hl
  365.     inc    hl
  366.     pop    bc
  367.     djnz    bomb_loop
  368.     ret
  369.  
  370. ;---------= Move Bullet =---------
  371. move_bullet:
  372.     ld    a,(bullet_active)
  373.     or    a
  374.     ret    z
  375.     call    draw_bullet
  376.     ld    a,(bullet_dir)
  377.     dec    a
  378.     jr    nz,bul_nright
  379.     ld    a,(bulletx)
  380.     inc    a
  381.     ld    (bulletx),a
  382.     cp    92
  383.     jr    z,bullet_not_active
  384.     jr    bullet_still_active
  385. bul_nright:    ; left
  386.     dec    a
  387.     jr    nz,bul_nleft
  388.     ld    a,(bulletx)
  389.     dec    a
  390.     ld    (bulletx),a
  391.     jr    z,bullet_not_active
  392.     jr    bullet_still_active
  393. bul_nleft:    ; up
  394.     dec    a
  395.     jr    nz,bul_nup
  396.     ld    a,(bullety)
  397.     dec    a
  398.     ld    (bullety),a
  399.     jr    z,bullet_not_active
  400.     jr    bullet_still_active
  401. bul_nup:    ; down
  402.     ld    a,(bullety)
  403.     inc    a
  404.     ld    (bullety),a
  405.     cp    60
  406.     jr    nz,bullet_still_active
  407. bullet_not_active:
  408.     xor    a
  409.     ld    (bullet_active),a
  410.     ret
  411. bullet_still_active:
  412. ;---------= Draw Bullet =---------
  413. draw_bullet:
  414.     ld    ix,bullet
  415.     ld    hl,(bullety)
  416.     ld    a,h
  417.     ld    b,3
  418.     jp    sprite
  419.  
  420. ;---------= Check for Collision =---------
  421. collision_chk:
  422.     ld    b,max_aliens
  423.     ld    hl,alien_map
  424. collision_lp:
  425.     push    hl
  426.     ld    a,(hl)
  427.     or    a
  428.     jr    z,collision_sk2
  429.     inc    hl    ; phase
  430.     inc    hl    ; x
  431.     ld    a,(shipx)
  432.     sub    6
  433.     cp    (hl)
  434.     jr    nc,collision_sk1
  435.     add    a,10
  436.     cp    (hl)
  437.     jr    c,collision_sk1
  438.     inc    hl
  439.     ld    a,(shipy)
  440.     sub    6
  441.     cp    (hl)
  442.     jr    nc,collision_sk1
  443.     add    a,10
  444.     cp    (hl)
  445.     jr    c,collision_sk1
  446.     ld    a,1
  447.     ld    (dead),a
  448. collision_sk1:
  449.     ld    a,(bullet_active)
  450.     or    a
  451.     jr    z,collision_sk2
  452.     pop    hl
  453.     push    hl
  454.     inc    hl    ; phase
  455.     inc    hl    ; x
  456.     ld    a,(bulletx)
  457.     cp    (hl)
  458.     jr    c,collision_sk2
  459.     sub    6
  460.     cp    (hl)
  461.     jr    nc,collision_sk2    
  462.     inc    hl
  463.     ld    a,(bullety)
  464.     cp    (hl)
  465.     jr    c,collision_sk2
  466.     sub    6
  467.     cp    (hl)
  468.     jr    nc,collision_sk2
  469.     ex    de,hl
  470.     dec    de    ; x
  471.     dec    de    ; phase
  472.     dec    de    ; type
  473.     ld    a,(de)
  474.     ld    b,a
  475.     inc    de    ; phase
  476.     ld    a,(de)
  477.     call    draw_alien_ship
  478.     dec    de    ; type
  479.     xor    a
  480.     ld    (de),a
  481.     ld    hl,alien_num
  482.     dec    (hl)
  483.     ld    hl,(score)
  484.     inc    hl
  485.     ld    (score),hl
  486.     pop    hl
  487.     jr    collision_chk
  488. collision_sk2:
  489.     pop    hl
  490.     ld    de,$0007
  491.     add    hl,de
  492.     djnz    collision_lp
  493.     ld    b,10
  494.     ld    hl,bomb_map
  495. collision_lp2:
  496.     push    hl
  497.     ld    a,(hl)
  498.     or    a
  499.     jr    z,collision_sk3
  500.     cp    50
  501.     jr    nc,collision_sk3
  502.     inc    hl
  503.     ld    a,(shipx)
  504.     sub    8
  505.     cp    (hl)
  506.     jr    nc,collision_sk3
  507.     add    a,12
  508.     cp    (hl)
  509.     jr    c,collision_sk3
  510.     inc    hl
  511.     ld    a,(shipy)
  512.     sub    8
  513.     cp    (hl)
  514.     jr    nc,collision_sk3
  515.     add    a,12
  516.     cp    (hl)
  517.     jr    c,collision_sk3
  518.     ld    a,1
  519.     ld    (dead),a
  520. collision_sk3:
  521.     pop    hl
  522.     inc    hl
  523.     inc    hl
  524.     inc    hl
  525.     djnz    collision_lp2
  526.     ret
  527.  
  528. ;---------= Start a Bomb! =---------
  529. start_bomb:
  530.     push    de
  531.     ld    hl,bomb_map
  532.     ld    b,10
  533. find_bomb:
  534.     ld    a,(hl)
  535.     or    a
  536.     jr    nz,bomb_active
  537.     ld    (hl),$FF
  538.     inc    hl    ; x
  539.     ld    a,(de)
  540.     ld    (hl),a
  541.     inc    hl    ; y
  542.     inc    de
  543.     ld    a,(de)
  544.     ld    (hl),a
  545.     ex    de,hl
  546.     ld    a,(de)
  547.     ld    l,a
  548.     dec    de
  549.     ld    a,(de)
  550.     ld    ix,bomb
  551.     ld    b,8
  552.     call    sprite
  553.     pop    de
  554.     ret
  555. bomb_active:
  556.     inc    hl
  557.     inc    hl
  558.     inc    hl
  559.     djnz    find_bomb
  560.     pop    de
  561.     ret    ; oh well
  562.  
  563. ;---------= Move Aliens =---------
  564. move_aliens:
  565.     ld    a,(alien_timer)
  566.     xor    1
  567.     ld    (alien_timer),a
  568.     ret    z
  569.     ld    de,alien_map
  570.     ld    b,max_aliens
  571. move_alien_loop:
  572.     push    bc
  573.     push    de
  574.     ld    a,(de)    ; type
  575.     or    a
  576.     jr    z,alien_not_active
  577.     ld    b,a
  578.     inc    de
  579.     ld    a,(de)    ; phase
  580.     call    draw_alien_ship
  581.     ld    a,(de)
  582.     xor    1
  583.     ld    (de),a
  584.     inc    de    ; x
  585.     ld    l,e
  586.     ld    h,d
  587.     inc    de    ; y
  588.     inc    de    ; movx
  589.     ld    a,(de)
  590.     ld    b,(hl)
  591.     add    a,b
  592.     ld    (hl),a
  593.     jr    nz,alien_skip1
  594.     ld    a,86
  595.     ld    (hl),a
  596. alien_skip1:
  597.     cp    87
  598.     jr    nz,alien_skip2
  599.     ld    a,1
  600.     ld    (hl),a
  601. alien_skip2:
  602.     inc    hl
  603.     inc    de
  604.     ld    a,(de)
  605.     ld    b,(hl)
  606.     add    a,b
  607.     ld    (hl),a
  608.     jr    nz,alien_skip3
  609.     ld    a,54
  610.     ld    (hl),a
  611. alien_skip3:
  612.     cp    55
  613.     jr    nz,alien_skip4
  614.     ld    a,1
  615.     ld    (hl),a
  616. alien_skip4:
  617.     inc    de
  618.     ld    a,(de)    ; decrease count
  619.     dec    a
  620.     ld    (de),a
  621.     jr    nz,alien_still_active
  622.     push    de
  623. ;-----> Get new direction
  624.     dec    de
  625.     dec    de    ; movx
  626.     ld    b,3
  627.     call    rand
  628.     dec    a
  629.     ld    (de),a
  630.     inc    de
  631.     ld    b,3
  632.     call    rand
  633.     dec    a
  634.     ld    (de),a
  635.     inc    de
  636.     ld    b,20
  637.     call    rand
  638.     inc    a
  639.     ld    (de),a
  640.     dec    de
  641.     dec    de    ; y
  642.     dec    de    ; x
  643.     dec    de    ; phase
  644.     ld    a,(de)
  645.     ld    b,a
  646.     dec    de    ; type
  647.     ld    a,(de)
  648.     pop    de
  649. alien_still_active:
  650.     dec    de    ; movy
  651.     dec    de    ; movx
  652.     dec    de    ; y
  653.     dec    de    ; x
  654.     ld    b,100
  655.     call    rand
  656.     or    a
  657.     call    z,start_bomb
  658.     dec    de    ; phase
  659.     dec    de    ; type
  660.     ld    a,(de)
  661.     ld    b,a
  662.     inc    de    ; phase
  663.     ld    a,(de)
  664.     call    draw_alien_ship
  665. alien_not_active:
  666.     pop    hl
  667.     ld    de,$0007
  668.     add    hl,de
  669.     ex    de,hl
  670.     pop    bc
  671.     djnz    move_alien_loop
  672.     ret
  673.  
  674. ;---------= Draw Alien Ship =---------
  675. draw_alien_ship:
  676.     add    a,b    ; type+phase    (type starts at 1, phase at 0)
  677.     ld    ix,alien_ships-8
  678.     ld    bc,$0008
  679. draw_alien_ship_lp:
  680.     add    ix,bc
  681.     dec    a
  682.     jr    nz,draw_alien_ship_lp
  683.     push    de
  684.     inc    de    ; x
  685.     inc    de    ; y
  686.     ld    a,(de)
  687.     ld    l,a
  688.     dec    de    ; x
  689.     ld    a,(de)
  690.     ld    b,8
  691.     call    sprite
  692.     pop    de
  693.     ret
  694.  
  695. ;---------= Wait for a keypress =---------
  696. wait_key:
  697.     ld    b,50
  698. key_loop1:
  699.     ei
  700.     halt
  701.     djnz    key_loop1
  702. key_loop2:
  703.     call    getk
  704.     or    a
  705.     jr    z,key_loop2
  706.     ret
  707.  
  708. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  709. ;-= Data -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  710. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  711. ;---------= Sprites =---------
  712. bullet:    .db    %01000000
  713.     .db    %11100000
  714.     .db    %01000000
  715. my_ships:
  716.     .db    %11000000    ; right
  717.     .db    %01100000
  718.     .db    %01111000
  719.     .db    %01100000
  720.     .db    %11000000
  721.     .db    %00011000    ; left
  722.     .db    %00110000
  723.     .db    %11110000
  724.     .db    %00110000
  725.     .db    %00011000
  726.     .db    %00100000    ; up
  727.     .db    %00100000
  728.     .db    %01110000
  729.     .db    %11111000
  730.     .db    %10001000
  731.     .db    %10001000    ; down
  732.     .db    %11111000
  733.     .db    %01110000
  734.     .db    %00100000
  735.     .db    %00100000
  736.  
  737. alien_ships:
  738.     ; type 1
  739.     .db    %00001100    ; phase 0
  740.     .db    %01101000
  741.     .db    %00101110
  742.     .db    %11100000
  743.     .db    %00000111
  744.     .db    %01110101
  745.     .db    %00010100
  746.     .db    %00110000
  747.  
  748.     .db    %00101100    ; phase 1
  749.     .db    %01001110
  750.     .db    %11101101
  751.     .db    %11100000
  752.     .db    %00000111
  753.     .db    %10110111
  754.     .db    %01110010
  755.     .db    %00110100
  756.     ; type 3 (types are in increments of 2)
  757.  
  758.     .db    %00111100
  759.     .db    %00011000
  760.     .db    %10011001
  761.     .db    %11111111
  762.     .db    %11111111
  763.     .db    %10011001
  764.     .db    %00011000
  765.     .db    %00111100
  766.  
  767.     .db    %00100100
  768.     .db    %01000010
  769.     .db    %10000001
  770.     .db    %00011000
  771.     .db    %00011000
  772.     .db    %10000001
  773.     .db    %01000010
  774.     .db    %00100100
  775.  
  776. bomb:    .db    %00000000
  777.     .db    %00000000
  778.     .db    %00011000
  779.     .db    %00111100
  780.     .db    %00111100
  781.     .db    %00011000
  782.     .db    %00000000
  783.     .db    %00000000
  784. bomb2:    .db    %00000000
  785.     .db    %00001000
  786.     .db    %01011010
  787.     .db    %00111100
  788.     .db    %00111110
  789.     .db    %01011000
  790.     .db    %00010010
  791.     .db    %00000000
  792. bomb3:    .db    %01010010
  793.     .db    %10101000
  794.     .db    %00011010
  795.     .db    %01101101
  796.     .db    %00110110
  797.     .db    %10011100
  798.     .db    %01100010
  799.     .db    %00010100
  800.  
  801. ;---------= Dialog =---------
  802. paused_text:
  803.     .db    " - Pause - ",0
  804. level_text:
  805.     .db    "Level:",0
  806. score_text:
  807.     .db    "Score:",0
  808. lost_text:
  809.     .db    "You Lost",0
  810. win_text:
  811.     .db    "You Won!",0
  812. high_text:
  813.     .db    "HiScore:",0
  814. nhs_text:
  815.     .db    "New High Score",0
  816. about1:    .db    "by Joe",0
  817. about2:    .db    "Wingbermuehle",0
  818. about3:    .db    "HiScore:",0
  819. high_score:
  820.     .dw    0
  821.  
  822. title:    .db    13
  823. sos_description:
  824.     .db    "SpaceWar v1.0 by Joe W"
  825.     .db    0
  826.  
  827. ;---------= SOS Data =---------
  828. sos_libraries:
  829.     .db    "ZLIB",0,0,0,0,lib1,vec0    ; sprite
  830.     .db    "ZLIB",0,0,0,0,lib2,vec1    ; random
  831.     .db    "ZLIB",0,0,0,0,libD,vec2    ; high score
  832.     .db    $FF
  833.  
  834.  
  835. .end
  836. END