home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games 1995 January / amigagames-1995-01.iso / archive / spiele / publicdomain / sk003.dms / sk003.adf / src / tetrisvars.s < prev    next >
Text File  |  2001-01-01  |  10KB  |  373 lines

  1. ;-----------------------------------------------------------------------------
  2. ; Tetrisvars.s © Copyright 1990 Software Alchemy All Rights Reserved
  3. ;-----------------------------------------------------------------------------
  4.  
  5.     include    'tetris.i'
  6.  
  7. RECT_LX        equ 6            ; Playfield position of Player One
  8. RECT_LY        equ 6
  9. RECT_RX        equ 28            ; Playfield position of Player Two
  10. RECT_RY        equ 6
  11.  
  12. ;-----------------------------------------------------------------------------
  13. ;-----------------------------------------------------------------------------
  14.  
  15. SentryOne                    ; SENTRY MARKER
  16.                         ; Player Stats is FIRST!!!
  17. PlayerStats        dc.l    0        ; Alive.W  Level.B  Count.B
  18. BlockPos        dc.l    0,0        ; Suggested X,Y, Current X,Y
  19. BlockSpeed        dc.l    0        ; Velocity X,Y
  20. BlockID            dc.w    0        ; Block Color # + Last Case
  21. LastButton        dc.b    0        ; Player Last Button State
  22. RotateFlag        dc.b    0        ; Flag of right edge rotate
  23. xbat            dc.l    0        ; Mouse Position x,y
  24. ybat            dc.l    0        ;
  25. olda            dc.l    0        ; Player Mouse private info
  26. RndSeed            dc.l    0        ; Random # generator seed
  27. LevelStuff        dc.l    0        ; Level Specific Flags ect
  28. Counter            dc.l    0
  29.  
  30. BlitRepairAddress    dc.l    0        ; Address for damage repair
  31. BlitWorkSpace        dcb.b    5*34*6,0    ; Blitter Workspace
  32.  
  33. CollapseJunk        dc.l    0            ; timer.b
  34.             dc.l    0            ; A3
  35.             dc.l    0            ; A2
  36.             dc.w    0            ; Line #
  37.  
  38.  
  39. SentryOneEnd                    ; SENTRY MARKER
  40.  
  41.                         ; (pre-initialized data)
  42. PlayerPort        dc.w    $0c,128        ; Player 1 I/O to real world
  43. PlayerArea        dc.w    44*RECT_LY+RECT_LX
  44. PlayerXY        dc.b    RECT_LX+RECT_X/2,0,RECT_LY,0
  45. PlayerArea2        dc.w    RECT_LY,RECT_LX
  46.  
  47. ScoreText        dc.w    RECT_LX*8+16,(RECT_LY+RECT_Y+2)*8-2
  48.             dc.b    '00000000',0,0    ; Score
  49. LevelText        dc.w    (RECT_LX-4)*8,(RECT_LY+2)*8
  50.             dc.b    '00',0,0
  51. LayerText        dc.w    (RECT_LX-4)*8,(RECT_LY+RECT_Y/2)*8
  52.             dc.b    '00',0,0    ; Level
  53.  
  54. ;-----------------------------------------------------------------------------
  55. PlayerDataSize         equ 15*4+2+5*34*6    ; SentryOneEnd-SentryOne
  56. PlayerPostSize        equ 11*4        ; The data after SentryOneEnd
  57. ;-----------------------------------------------------------------------------
  58.                         ; Player 2
  59. SentryTwo
  60.             dcb.b    PlayerDataSize,0
  61.             dc.w    $0a,64        ; Player x I/O to real world
  62.             dc.w    44*RECT_RY+RECT_RX
  63.             dc.b    RECT_RX+RECT_X/2,0,RECT_RY,0
  64.             dc.w    RECT_RY,RECT_RX
  65.  
  66.             dc.w    RECT_RX*8+16,(RECT_RY+RECT_Y+2)*8-2
  67.             dc.b    '00000000',0,0
  68.             dc.w    (RECT_RX-4)*8,(RECT_RY+2)*8
  69.             dc.b    '00',0,0
  70.             dc.w    (RECT_RX-4)*8,(RECT_RY+RECT_Y/2)*8
  71.             dc.b    '00',0,0
  72.  
  73.  
  74. PlayerOneStart         equ 0
  75. PlayerTwoStart         equ PlayerDataSize+PlayerPostSize ;SentryTwo-SentryOne
  76. ;PlayerThreeStart     equ SentryThree-SentryOne  ; and so on and so on...
  77. ;-----------------------------------------------------------------------------
  78.  
  79.  
  80. ;    Shapes are in sets of 4 rotations per color, each rotation is 1 word.
  81. ;
  82. ;    %0100    <<< A Green Shape for example becomes >>> %0100 0110 0100 0000
  83. ;    %0110
  84. ;    %0100
  85. ;    %0000
  86.  
  87. TetrisShapes        dc.w %1100010001000000        ; Purple
  88.             dc.w %1110100000000000
  89.             dc.w %1000100011000000
  90.             dc.w %0010111000000000
  91.             dc.w %0100110001000000        ; Green
  92.             dc.w %1110010000000000
  93.             dc.w %1000110010000000
  94.             dc.w %0100111000000000
  95.             dc.w %0100110010000000        ; Light Blue
  96.             dc.w %1100011000000000
  97.             dc.w %0100110010000000
  98.             dc.w %1100011000000000
  99.             dc.w %1000110001000000        ; Orange
  100.             dc.w %0110110000000000
  101.             dc.w %1000110001000000
  102.             dc.w %0110110000000000
  103.             dc.w %1100100010000000        ; Yellow
  104.             dc.w %1000111000000000
  105.             dc.w %0100010011000000
  106.             dc.w %1110001000000000
  107.             dc.w %1100110000000000        ; Blue
  108.             dc.w %1100110000000000
  109.             dc.w %1100110000000000
  110.             dc.w %1100110000000000
  111.             dc.w %1000100010001000        ; Red
  112.             dc.w %0000111100000000
  113.             dc.w %1000100010001000
  114.             dc.w %0000111100000000
  115.  
  116. ;
  117. ;    The system will perform the mind-dumbing work of calculating what
  118. ;    type of pieces make up each rotation of each object in each color 
  119. ;    Each of 7 basic objects is 4 bytes wide by 4 bytes high as well
  120. ;    there are 4 rotations per object.
  121. ;
  122.             dcb.b    16,0        ; (teat must see zero)
  123. TetrisDetails        dcb.b    7*4*16,0
  124.             dcb.b    16,0        ; <<< Null Object is #7*4
  125.  
  126. ;
  127. ;    Tetris thinks on an internal byte map
  128. ;
  129. TetrisByteMap        dcb.l    11*30,0
  130.  
  131.  
  132.  
  133. ;
  134. ;Aside from background, there are these attributes of each level:
  135. ;    0x2 - raising blocks
  136. ;    0x4 - random blocks
  137. ;
  138. ;Second byte of each level block contains this information
  139.  
  140.  
  141. TetrisLevels
  142.  
  143.     ; (10 bits backdrop, 6 bits other info)
  144.  
  145.     dc.b    %00000000,%00000000    ; Level 0 (unused)
  146.     dc.b    %00000000,%00000000
  147.     dc.b    %00000000,%00000000
  148.     dc.b    %10000000,%01000000
  149.     dc.b    %10000000,%01000000
  150.  
  151.     dc.b    %10000000,%01000000    ; Level 1
  152.     dc.b    %10000000,%01000000
  153.     dc.b    %10000000,%01000000
  154.     dc.b    %10000000,%01000000
  155.     dc.b    %10000000,%01000000
  156.  
  157.     dc.b    %00000000,%00000000    ; Level 2
  158.     dc.b    %00110011,%00000000
  159.     dc.b    %00110011,%00000000
  160.     dc.b    %10000000,%01000000
  161.     dc.b    %01111111,%10000000
  162.  
  163.     dc.b    %10000000,%01000000    ; Level 3
  164.     dc.b    %10000000,%01000000
  165.     dc.b    %10000000,%01000000
  166.     dc.b    %10000000,%01000000
  167.     dc.b    %10000000,%01000000
  168.  
  169.     dc.b    %10101101,%00000000    ; Level 4
  170.     dc.b    %00110001,%00000000
  171.     dc.b    %00100000,%00000000
  172.     dc.b    %00011010,%10000000
  173.     dc.b    %01001001,%00000000
  174.  
  175.     dc.b    %00001100,%00000001    ; Level 5
  176.     dc.b    %00010010,%00000000
  177.     dc.b    %00101101,%00000000
  178.     dc.b    %01010010,%10000000
  179.     dc.b    %10101101,%01000000
  180.  
  181.     dc.b    %00000000,%00000010    ; Level 6
  182.     dc.b    %00000000,%00000000
  183.     dc.b    %00000000,%00000000
  184.     dc.b    %00000000,%00000000
  185.     dc.b    %10101010,%10000000
  186.  
  187.     dc.b    %00000000,%00000110    ; Level 7
  188.     dc.b    %00000000,%00000000
  189.     dc.b    %00000000,%00000000
  190.     dc.b    %00000000,%00000000
  191.     dc.b    %11111111,%11000000
  192.  
  193.     dc.b    %00010000,%11000111    ; Level 8
  194.     dc.b    %00111001,%10000000
  195.     dc.b    %11111111,%11000000
  196.     dc.b    %01101110,%00000000
  197.     dc.b    %11000100,%00000000
  198.  
  199.     dc.b    %01110000,%00000111    ; Level 9
  200.     dc.b    %10001000,%00000000
  201.     dc.b    %11111000,%00000000
  202.     dc.b    %10001000,%00000000
  203.     dc.b    %10001000,%00000000
  204.  
  205.     dc.b    %10001000,%00000111    ; Level 10
  206.     dc.b    %10001000,%00000000
  207.     dc.b    %11111000,%00000000
  208.     dc.b    %10001000,%00000000
  209.     dc.b    %10001000,%00000000
  210.  
  211.     dc.b    %00000000,%00000111    ; Level 11
  212.     dc.b    %00000000,%00000000
  213.     dc.b    %00000000,%00000000
  214.     dc.b    %00000000,%00000000
  215.     dc.b    %00000000,%00000000
  216.  
  217.     dc.b    %00000000,%00000111    ; Level 12
  218.     dc.b    %00000000,%00000000
  219.     dc.b    %00000000,%00000000
  220.     dc.b    %00000000,%00000000
  221.     dc.b    %00000000,%00000000
  222.  
  223.     dc.b    %00000000,%00000111    ; Level 13
  224.     dc.b    %00000000,%00000000
  225.     dc.b    %00000000,%00000000
  226.     dc.b    %00000000,%00000000
  227.     dc.b    %00000000,%00000000
  228.  
  229.     dc.b    %00000000,%00000111    ; Level 14
  230.     dc.b    %00000000,%00000000
  231.     dc.b    %00000000,%00000000
  232.     dc.b    %00000000,%00000000
  233.     dc.b    %00000000,%00000000
  234.  
  235.     dc.b    %00000000,%00000111    ; Level 15
  236.     dc.b    %00000000,%00000000
  237.     dc.b    %00000000,%00000000
  238.     dc.b    %00000000,%00000000
  239.     dc.b    %00000000,%00000000
  240.  
  241.  
  242. ;-----------------------------------------------------------------------------
  243. ;
  244. ;    Format of line-draw list:
  245. ;        Start.w (x+y*44), length.w-1, Type.b, Color.b
  246. ;    Where Type.b is:
  247. ;         0=Horizontal Line
  248. ;         1=Vertical Line
  249. ;         2=Angled Line
  250. ;        -n=Area
  251. ;    Where Area format is:
  252. ;        Start.w (x+y*44), width.w-1, $80+height.b-1, color.b
  253. ;
  254.  
  255. PlayFieldOutline    dc.w    0, RECT_Y-1,$0104
  256.             dc.w    RECT_X+2-1,RECT_Y-1,$0104
  257. PlayFieldClear        dc.w    1, RECT_X-1
  258.             dc.b    $80+RECT_Y-1,0
  259.             dc.w    RECT_Y*44,RECT_X+2-1,$0005
  260.             dc.w    -1
  261. ;-----------------------------------------------------------------------------
  262.  
  263. ;
  264. ;    System Support Related vars
  265. ;
  266.  
  267. GameVideo        dc.l    0        ; Address of Amiga Screen Mem
  268. GameVideo2        dc.l    0        ; Address of Screen / 2
  269. GameCopper        dc.l    0        ; Address of active Copper
  270. KeyEvent        dc.b    0,0        ; Last key pressed/released
  271. BaseSeed        dc.l    0        ; Random Seed for all players
  272.  
  273. PiecesMem        dc.l    $68000        ; System Allocated Memory Ptrs
  274. ;AudioMem        dc.l    $68000
  275. ScreenMem        dc.l    $70000
  276.  
  277. ColorTable
  278.         dc.w    $0000,$0653,$0ff0,$0fff
  279.         dc.w    $0909,$0b0b,$0d0d,$0f0f
  280.         dc.w    $0060,$0091,$00c1,$00f3
  281.         dc.w    $0920,$0b40,$0d70,$0fb0
  282.         dc.w    $0088,$00aa,$00cc,$00ff
  283.         dc.w    $0840,$0f80,$0fb0,$0ff0
  284.         dc.w    $000b,$011c,$032e,$054f
  285.         dc.w    $0900,$0b00,$0d00,$0f00
  286.  
  287. CopperList
  288. ;
  289. ; (i had some problems getting sprites off, so I just wanted to make
  290. ;  sure that they wouldn't show up at all ever in a public release)
  291. ;
  292.     dc.w    $120,0,$122,0,$124,0,$126,0,$128,0,$12a,0,$12c,0,$12e,0
  293.     dc.w    $130,0,$132,0,$134,0,$136,0,$138,0,$13a,0,$13c,0,$13e,0
  294.     dc.w    $140,0,$148,0,$150,0,$158,0,$160,0,$168,0,$170,0,$178,0
  295.     dc.w    $0096,$0020        ; Kills sprites dead
  296.  
  297.     dc.w    $0100,$5300        ; 5 bitplanes, lo-res genlock allowd
  298.     dc.w    $0102,$0000        ; Other bits
  299.     dc.w    $008e,$1171        ; Vertical/Horiz visible region
  300.     dc.w    $0090,$00d1
  301.     dc.w    $0092,$0030        ; Overscan screen
  302.     dc.w    $0094,$00d8
  303.     dc.w    $0108,44*4        ; Modulo for screen
  304.     dc.w    $010a,44*4
  305.  
  306. CopperPlanes
  307.     dc.w    $00e0,0
  308.     dc.w    $00e2,0
  309.     dc.w    $00e4,0
  310.     dc.w    $00e6,0
  311.     dc.w    $00e8,0
  312.     dc.w    $00ea,0
  313.     dc.w    $00ec,0
  314.     dc.w    $00ee,0
  315.     dc.w    $00f0,0
  316.     dc.w    $00f2,0
  317.  
  318.     dc.w    $0120,$0        ; (force sprites off)
  319.     dc.w    $0122,$0
  320.     dc.w    $0124,$0
  321.     dc.w    $0126,$0
  322.     dc.w    $0128,$0
  323.     dc.w    $012a,$0
  324.     dc.w    $012c,$0
  325.     dc.w    $012e,$0
  326.     dc.w    $0130,$0
  327.     dc.w    $0132,$0
  328.     dc.w    $0134,$0
  329.     dc.w    $0136,$0
  330.     dc.w    $0138,$0
  331.     dc.w    $013a,$0
  332.     dc.w    $013c,$0
  333.     dc.w    $013e,$0
  334. CopperColors
  335.     dc.w    $0180,$0000            ; Screen Colors
  336.     dc.w    $0182,$0000
  337.     dc.w    $0184,$0000
  338.     dc.w    $0186,$0000
  339.     dc.w    $0188,$0000
  340.     dc.w    $018a,$0000
  341.     dc.w    $018c,$0000
  342.     dc.w    $018e,$0000
  343.  
  344.     dc.w    $0190,$0000
  345.     dc.w    $0192,$0000
  346.     dc.w    $0194,$0000
  347.     dc.w    $0196,$0000
  348.     dc.w    $0198,$0000
  349.     dc.w    $019a,$0000
  350.     dc.w    $019c,$0000
  351.     dc.w    $019e,$0000
  352.  
  353.     dc.w    $01a0,$0000
  354.     dc.w    $01a2,$0000
  355.     dc.w    $01a4,$0000
  356.     dc.w    $01a6,$0000
  357.     dc.w    $01a8,$0000
  358.     dc.w    $01aa,$0000
  359.     dc.w    $01ac,$0000
  360.     dc.w    $01ae,$0000
  361.     dc.w    $01b0,$0000
  362.     dc.w    $01b2,$0000
  363.     dc.w    $01b4,$0000
  364.     dc.w    $01b6,$0000
  365.     dc.w    $01b8,$0000
  366.     dc.w    $01ba,$0000
  367.     dc.w    $01bc,$0000
  368.     dc.w    $01be,$0000
  369.     dc.w    $ffff,$fffe        ; Wait forever
  370. CopperListEnd
  371.  
  372. ; end of tetrisvars.s
  373.