-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathhello.dasm16
18 lines (14 loc) · 1.01 KB
/
hello.dasm16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; Assembler test for DCPU
; by Markus Persson
set a, 0xbeef ; Assign 0xbeef to register a
set [0x1000], a ; Assign memory at 0x1000 to value of register a
ifn a, [0x1000] ; Compare value of register a to memory at 0x1000 ..
set PC, end ; .. and jump to end if they don't match
set i, 0 ; Init loop counter, for clarity
:nextchar ife [data+i], 0 ; If the character is 0 ..
set PC, end ; .. jump to the end
set [0x8000+i], [data+i] ; Video ram starts at 0x8000, copy char there
add i, 1 ; Increase loop counter
set PC, nextchar ; Loop
:data dat "Hello world!", 0 ; Zero terminated string
:end sub PC, 1 ; Freeze the CPU forever