Skip to content

Instantly share code, notes, and snippets.

@dekuNukem
Last active March 15, 2016 11:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dekuNukem/042ecca001205c271a41 to your computer and use it in GitHub Desktop.
Save dekuNukem/042ecca001205c271a41 to your computer and use it in GitHub Desktop.
FAP's second hello world program
vram_char_base_addr .equ 0x8000
vram_attri_base_addr .equ 0x8960
org 0x0
xor b
xor c
xor d
xor e
ld sp, 0x7fff
call disable_vram_copy
; clear screen
ld de, 2400
ld b, 0
ld c, 0
clear: call print
dec de
ld a,d
or e
jp nz,clear
; now print "Hello World!" in white (0x3f)
ld de, 1
ld b, 0x3f
ld c, 'H'
call print
inc de
ld c, 'e'
call print
inc de
ld c, 'l'
call print
inc de
ld c, 'l'
call print
inc de
ld c, 'o'
call print
inc de
inc de
ld c, 'W'
call print
inc de
ld c, 'o'
call print
inc de
ld c, 'r'
call print
inc de
ld c, 'l'
call print
inc de
ld c, 'd'
call print
inc de
ld c, '!'
call print
inc de
call enable_vram_copy
end: jp end
enable_vram_copy:
ld hl, 0x92c1
ld (hl), 0xff
ret
disable_vram_copy:
ld hl, 0x92c1
ld (hl), 0x0
ret
; print character
; c: char
; b: attri
; de: char index
; destories: b, c, d, e, hl
print:
ld hl, vram_attri_base_addr
add hl, de
ld (hl), b
ld hl, vram_char_base_addr
add hl, de
ld (hl), c
ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment