Advertisement
AneMou

Part II - Lesson 14: Getting Started - main.asm

Oct 19th, 2024
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Z80 Assembler 6.31 KB | Source Code | 0 0
  1. INCLUDE "hardware.inc"
  2.  
  3. SECTION "Header", ROM0[$100]
  4.  
  5.     jp EntryPoint
  6.  
  7.     ds $150 - @, 0 ; Make room for the header
  8.  
  9. EntryPoint:
  10.     ; Do not turn the LCD off outside of VBlank
  11. WaitVBlank:
  12.     ld a, [rLY]
  13.     cp 144
  14.     jp c, WaitVBlank
  15.  
  16.     ; Turn the LCD off
  17.     ld a, 0
  18.     ld [rLCDC], a
  19.  
  20.     ; Copy the tile data
  21.     ld de, Tiles
  22.     ld hl, $9000
  23.     ld bc, TilesEnd - Tiles
  24. CopyTiles:
  25.     ld a, [de]
  26.     ld [hli], a
  27.     inc de
  28.     dec bc
  29.     ld a, b
  30.     or a, c
  31.     jp nz, CopyTiles
  32.  
  33.     ; Copy the tilemap
  34.     ld de, Tilemap
  35.     ld hl, $9800
  36.     ld bc, TilemapEnd - Tilemap
  37. CopyTilemap:
  38.     ld a, [de]
  39.     ld [hli], a
  40.     inc de
  41.     dec bc
  42.     ld a, b
  43.     or a, c
  44.     jp nz, CopyTilemap
  45.  
  46.     ; Turn the LCD on
  47.     ld a, LCDCF_ON | LCDCF_BGON
  48.     ld [rLCDC], a
  49.  
  50.     ; During the first (blank) frame, initialize display registers
  51.     ld a, %11100100
  52.     ld [rBGP], a
  53.  
  54. Done:
  55.     jp Done
  56.  
  57. Tiles:
  58.     dw `33333333
  59.     dw `33333333
  60.     dw `33333333
  61.     dw `33322222
  62.     dw `33322222
  63.     dw `33322222
  64.     dw `33322211
  65.     dw `33322211
  66.     dw `33333333
  67.     dw `33333333
  68.     dw `33333333
  69.     dw `22222222
  70.     dw `22222222
  71.     dw `22222222
  72.     dw `11111111
  73.     dw `11111111
  74.     dw `33333333
  75.     dw `33333333
  76.     dw `33333333
  77.     dw `22222333
  78.     dw `22222333
  79.     dw `22222333
  80.     dw `11222333
  81.     dw `11222333
  82.     dw `33333333
  83.     dw `33333333
  84.     dw `33333333
  85.     dw `33333333
  86.     dw `33333333
  87.     dw `33333333
  88.     dw `33333333
  89.     dw `33333333
  90.     dw `33322211
  91.     dw `33322211
  92.     dw `33322211
  93.     dw `33322211
  94.     dw `33322211
  95.     dw `33322211
  96.     dw `33322211
  97.     dw `33322211
  98.     dw `22222222
  99.     dw `20000000
  100.     dw `20111111
  101.     dw `20111111
  102.     dw `20111111
  103.     dw `20111111
  104.     dw `22222222
  105.     dw `33333333
  106.     dw `22222223
  107.     dw `00000023
  108.     dw `11111123
  109.     dw `11111123
  110.     dw `11111123
  111.     dw `11111123
  112.     dw `22222223
  113.     dw `33333333
  114.     dw `11222333
  115.     dw `11222333
  116.     dw `11222333
  117.     dw `11222333
  118.     dw `11222333
  119.     dw `11222333
  120.     dw `11222333
  121.     dw `11222333
  122.     dw `00000000
  123.     dw `00000000
  124.     dw `00000000
  125.     dw `00000000
  126.     dw `00000000
  127.     dw `00000000
  128.     dw `00000000
  129.     dw `00000000
  130.     dw `11001100
  131.     dw `11111111
  132.     dw `11111111
  133.     dw `21212121
  134.     dw `22222222
  135.     dw `22322232
  136.     dw `23232323
  137.     dw `33333333
  138.     ; Paste your logo here:
  139.         dw `33000000
  140.     dw `33000000
  141.     dw `33000000
  142.     dw `33000000
  143.     dw `33111100
  144.     dw `33111100
  145.     dw `33111111
  146.     dw `33111111
  147.     dw `33331111
  148.     dw `00331111
  149.     dw `00331111
  150.     dw `00331111
  151.     dw `00331111
  152.     dw `00331111
  153.     dw `11331111
  154.     dw `11331111
  155.     dw `11333300
  156.     dw `11113300
  157.     dw `11113300
  158.     dw `11113300
  159.     dw `11113311
  160.     dw `11113311
  161.     dw `11113311
  162.     dw `11113311
  163.     dw `00003333
  164.     dw `00000033
  165.     dw `00000033
  166.     dw `00000033
  167.     dw `11000033
  168.     dw `11000033
  169.     dw `11111133
  170.     dw `11111133
  171.     dw `33111111
  172.     dw `33111111
  173.     dw `33111111
  174.     dw `33111111
  175.     dw `33111111
  176.     dw `33111111
  177.     dw `33111111
  178.     dw `33111111
  179.     dw `11331111
  180.     dw `11331111
  181.     dw `11331111
  182.     dw `11331111
  183.     dw `11331111
  184.     dw `11331111
  185.     dw `11331111
  186.     dw `11331111
  187.     dw `11113311
  188.     dw `11113311
  189.     dw `11113311
  190.     dw `11113311
  191.     dw `11113311
  192.     dw `11113311
  193.     dw `11113311
  194.     dw `11113311
  195.     dw `11111133
  196.     dw `11111133
  197.     dw `11111133
  198.     dw `11111133
  199.     dw `11111133
  200.     dw `11111133
  201.     dw `11111133
  202.     dw `11111133
  203.     dw `33111111
  204.     dw `33111111
  205.     dw `33111111
  206.     dw `33111111
  207.     dw `33111111
  208.     dw `33111111
  209.     dw `33111111
  210.     dw `33111111
  211.     dw `11331111
  212.     dw `11331111
  213.     dw `11331111
  214.     dw `11331111
  215.     dw `11331111
  216.     dw `11331111
  217.     dw `11331111
  218.     dw `11331111
  219.     dw `11113311
  220.     dw `11113311
  221.     dw `11113311
  222.     dw `11113311
  223.     dw `11113311
  224.     dw `11113311
  225.     dw `11113311
  226.     dw `11113311
  227.     dw `11111133
  228.     dw `11111133
  229.     dw `11111133
  230.     dw `11111133
  231.     dw `11111133
  232.     dw `11111133
  233.     dw `11111133
  234.     dw `11111133
  235.     dw `33111111
  236.     dw `33111111
  237.     dw `33111111
  238.     dw `33111111
  239.     dw `33111111
  240.     dw `33111111
  241.     dw `33111111
  242.     dw `33111111
  243.     dw `11331111
  244.     dw `11331111
  245.     dw `11331111
  246.     dw `11331111
  247.     dw `11330000
  248.     dw `11330000
  249.     dw `11330000
  250.     dw `33330000
  251.     dw `11113311
  252.     dw `11113311
  253.     dw `00003311
  254.     dw `00003311
  255.     dw `00003311
  256.     dw `00003311
  257.     dw `00003311
  258.     dw `00333311
  259.     dw `11111133
  260.     dw `11111133
  261.     dw `11111133
  262.     dw `11111133
  263.     dw `11111133
  264.     dw `11111133
  265.     dw `11111133
  266.     dw `11113333
  267. TilesEnd:
  268.  
  269. Tilemap:
  270.     db $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $02, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  271.     db $04, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  272.     db $04, $08, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  273.     db $04, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  274.     db $04, $08, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  275.     db $04, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  276.     db $04, $08, $05, $06, $05, $06, $05, $06, $05, $06, $05, $06, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  277.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  278.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  279.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  280.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  281.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  282.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  283.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $0A, $0B, $0C, $0D, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  284.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $0E, $0F, $10, $11, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  285.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $12, $13, $14, $15, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  286.     db $04, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $07, $03, $16, $17, $18, $19, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  287.     db $04, $09, $09, $09, $09, $09, $09, $09, $09, $09, $09, $09, $09, $07, $03, $03, $03, $03, $03, $03, 0,0,0,0,0,0,0,0,0,0,0,0
  288. TilemapEnd:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement